There are different types of web frameworks. If you know the differences between them, you can choose which one you prefer. Once you decide your type of framework, it is easier to choose the framework. There are five types of web frameworks: Request-based, Component-based, Hybrid, Meta and RIA-based frameworks.
- Request-based: The frameworks directly handle incoming requests. Each request is essentially stateless but with server-side sessions, a certain degree of statefulness has been achieved. Examples: Django, Ruby on Rails, Struts, Grails.
- Component-based: The framework abstracts the internals of the request handling and encapsulates the logic into reusable components. The state is automatically handled by the framework. Together with some form of event handling, this development model is very similar to the features by desktop GUI toolkits. Examples: JSF, Tapestry, Wicket.
- Hybrid Framework: The framework combines both request-based and component-based frameworks by taking control of the entire data and logic flow in a request-based model. Developers have full control over URLs, forms, parameters, cookies and pathinfos. However, instead of mapping actions and controllers directly to the request, a hybrid framework provides a component object model that behaves identically in many different situations such as individual pages, intercepted requests, portal-like pages fragments and integratable widgets. Components can be wired together and be packaged as groups that are components in their own right.They can be distributed separately and be seamlessly integrated into other projects. This combines the form of reusability in component-based frameworks with the raw controls of a request-based approach”. Example: RIFE.
- Meta framework: The framework has a set of core interfaces for common services and a highly extensible backbone for integrating components and services. A meta framework is close to a framework of frameworks. Example: Keel.
- RIA-based framework: The framework for developing Rich Internet Applications (RIA). RIA refers to a web page-based application running in a browser with rich user interface features which are common in desktop application such as drag and drop. Generally, a plugin is needed to run the application. Example: Flex.
Most common web frameworks types are request-based or component-based. If you are building a web application as Gmail, close to a desktop application, a component-based framework would be the right choice. On the other hand, if you are developing a classical 2.0 website, with CRUD operations (Create, read, update, and delete) a request-based framework would suit it better.
Thanks for reading. Comments, criticism and sharing will be appreciated.