WebappFrameworkComparison/Planning
WebappFrameworkComparison / PlanningThe best way to compare web frameworks IMHO is to implement a (not so) simple CRUD application.
In addition to simple webframeworks i would like to see how google mashup would perform on how easy it is to do something (almost) useful
1. Which Webframeworks ?
see WebappFrameworkComparison for a few frameworks i already started to evaluate.
- Django: http://www.djangoproject.com/ (Python)
- Catalyst http://www.catalystframework.org/ (Perl)
- Struts2 + Hibernate (Java)
- Ruby on Rails (Ruby)
- Gentics Portal.Node
- Google Mashups (probably not really doable ?)
-
Other interesting/popular frameworks
- Mason http://www.masonhq.com/ (Perl)
- Grails http://grails.codehaus.org/ (Groovy)
- Shale http://shale.apache.org/ (Java)
- Zope http://www.zope.org/ (Python)
- TurboGears http://turbogears.org/ (Python)
- Rife http://rifers.org/ (Java)
- Spring MVC + Hibernate http://www.springframework.org/ (Java)
WebappFrameworkComparison/JavaFrameworks
2. What CRUD application ?
So - what will our simple but useful CRUD application look like ? My proposal:
-
Manage a list of bars with the following attributes
- Name
- Location
- Beers (n:m relation to another model)
- Wifi (yes/no/paid)
-
List should be editable by every logged in user - viewable by everone
- No workflow required. everything which is entered by the user is trusted.
- Users should be able to comment on bars and rate them EDIT: NO RATING
Let's call it BarCrud ;) (what a stupid name.. whatever)
2.1. Requirements
-
Views
- List of bars (Sortable by name, rating)
- View details of a bar + List of comments
- Create a comment (might be integrated int the list of comments above)
- Edit details of a bar (only for loggedin users - might be merged with the view details)
-
Models (core models, without authentication, session & co)
-
Bar
- name
- location
- wifi (yes, no, paid)
- creationdate
- editdate
- lasteditor
- n:m relation to beer (available beers)
-
Beer
- name
-
Comment
- Reference to the user
- Rating (e.g. 1-5) EDIT: NO RATING !
- comment text
-
Bar
2.2. Not to have
There shouldn't be any attached images, fanzy modification history, workflows, etc. involved. Just the information listed above.
3. Comparing the frameworks
- How easy was the framework to learn ?
- How easy was the setup ?
- How easy is the deployment of new versions ?
- How extend able is the result ? (e.g. Imagine i would like to add a workflow where changes get online once an administrator approves them)
- How much duplication was necessary ? (e.g. need to describe the models in the database as well as in code or xml ? / need to describe attributes of models in models and views ?, etc.)
- How much useless code (code which is the same for every application, view, model, ...) was required
-
URLs
- How does the mapping of URLs work ?
- How can you link within templates to other actions/views/... ?
4. Interesting links
Last Modified: 2008-10-13 22:33:12 by Herbert Poul - [ Snip Changes ] [ Wiki History ]
0 Comments
No comments yet.
Please login to create a new thread.