Lift, Wicket, Ruby on Rails, ... are great web frameworks. But all of them have their controllers on the server side, making them essential server side frameworks (even though they all have ajax support).
I want to make a client side framework. This is an experimental repository for now. The code is written in scala + javascript and the database is mongodb.I borrow some stuff from the Lift Web Framework (since this is written in scala).
Finished:
- extremely easy way to make ajax calls, including client side proxy.
- prove of concept implementation of mongodb serialization.
- handle default url /
- improve error handling of ajax call.
- views
- code cleanup/ separation library code and project code.
- maven archetypes
- views which suppport i18n, and user-agent detection.
Still todo:
- finish the ToDo sample code.
- looser json deserialisation, supporting untyped collections.
- generic db code?
- documentation
Future goals:
- something for nice urls.
- that's about it.... this is not a big framework. Just a minimal one to get a nice ajax app up and running and do some really really rapid development.
- Make sure maven 2 and JDK >= 1.5 and MongoDB installed.
- clone the git repo or download it from github
- in the project dir : ./refresh_archetype.sh
- --------------- now the fun part begins (you can repeat this as often if you want)-----------------
- go to a directory in which you want to create a new ajaxframe project
- path/to/ajaxframe/create_project.sh
I haven't got nice batch files for windows yet, so there is slightly more typing needed for installing on windows.
-
Make sure maven 2 and JDK >= 1.5 and mongoDB are installed.
-
clone the git repo or download it from github.
-
open a command prompt window in the directory you've just downloaded/cloned.
-
cd library
-
mvn clean install
-
cd ..
-
cd default_webapp
-
mvn clean compile archetype:create-from-project
-
cd ..
-
rmdir default_webapp-archetype /s /q (usually this dir will not exist and you can skip this step)
-
xcopy default_webapp\target\generated-sources\archetype default_webapp-archetype
-
make a small fix in default_webapp-archetype\src\main\resources\archetype-resources\src\main\webapp\WEB-INF\web.xml:
${package} should be replaced by org.tuitman.ajaxframe
-
cd default_webapp-archetype
-
mvn install
-
--------------- now the fun part begins (you can repeat this as often if you want)-----------------
-
go to a directory in which you want to create a new ajaxframe project
-
mvn archetype:generate -DarchetypeArtifactId=default_webapp-archetype -DarchetypeGroupId=org.tuitman.ajaxframe