Hi. I am doing research study on open source frameworks. One of its requirements is to provide comparison analysis that which framework support which feature (These are the feature, which could be used for selection of framework). Because I have not worked on these framework, so I need any of you to help me out and please fill in the below matrix. You only have to respond in scale of 1-3.
1 = No Support 2 = Partial Support (Either through some 3rd party tool or little support) 3 = Full Support You can only fill in the framework you have worked on. Thanks in Advance for your support. Comparison *Feature* *Struts* *Turbine* *Tapestry* *WebWork* *Velocity* *JSF* 1. Provide Designer/developer separation? 1. Can be Coupled easily with Organization Code? 1. Built-in Internationalization (I18N) Support? 1. Provide built-in Security framework? 1. Provide Validation and conversion support? 1. Can Manage Component State? 1. Support new Component's development? 1. Provide built-in Standard components? 1. Provide User documentation? 1. Provide Error handling support? 1. Built-in Testability? 1. Increase Developer productivity? 1. Have IDE/tool support? 1. Is easy to learn? 1. Is Extensible? 1. Free Licensing? 1. Which programming language is supported? 1. Support Integration with other technologies? Appendix: *Features Definition* 1 Designer/developer separation This attribute will help us in identifying the extent to which framework supports the separation of different roles 2 Coupling Whenever choosing an application framework, it is important to recognize that the framework might be outgrown. Regardless of the reason, if there is a clear separation (loose coupling) of the framework's code and the organization's code, it will be a fairly painless migration from the original framework to a new framework 3 Internationalization (I18N) A web application framework must provide support for internationalization to allow for web applications to be localized because framework support for internationalization (I18N) can save a considerable amount of development time and effort in handling items like character encoding and addressing locale-specific requirements 4 Security The framework selected should have support for your organization's security infrastructure. However, the framework might also provide additional security functionality that can be very useful to the organization. 5 Validation and conversion An essential feature of any web application framework is strong support for validation. Type conversion is a closely related task, in the sense that successful type conversion is often a precondition to successful validation of an inputted value. 6 Component state management Another important feature for any framework is how well it manages the state of the components. These days most of the frameworks support the state management of component and it leads to less development time and cost. 7 Component development In spite of the variety of existing components available, it probably won't be long before you find the need (or urge) to create your own components. How successful, enjoyable and productive this process is depends on the component development model of the framework you're using. 8 Standard components The standard components are the well documented, out of the box components that you get for free. They are the components that you can confidently expect to be ported to future versions of the framework. Most of the frameworks provide a set of standard components. By restricting yourself to using standard components, you can avoid vendor lock-in, component compatibility issues and license costs. 9 User documentation Reviewing documentation and sample applications will probably reveal the framework architect's expectations and intentions as to how exceptions should be handled. 10 Error handling The framework might favor or accommodate certain ways of handling errors than other error-handling methods. For example, it might be more appropriate to pass exceptions up the hierarchy if the framework uses declarative programming for handling errors rather than trying to handle the exception where it took place. 11 Testability An increasingly important requirement for web applications is that they can be easily unit tested. The testability of an application depends directly on how free your application code is from framework specific dependencies. 12 Developer productivity Frameworks are very productive compared to traditional MVC frameworks largely because they allow you to write applications with less code. How they measure up against each other also depends on how efficiently this code can be created and modified, and how easily and quickly errors can be detected and corrected. 13 IDE/tool support Development tools such as IDE's are tremendous time-savers for developers. Similarly, organizations tend to adopt and have the infrastructure in place for a particular Version Control Systems (example, PVCS). A certain amount of testing of the framework and these tools during a trial period might be necessary to make sure that they can be integrated. 14 Ease of learning In the same way that powerful features and the promise of greater productivity in the future will draw developers to a framework, the perception that a framework is complex or hard to learn will put many off. 15 Extensibility The extensibility of a framework is how easily you can replace or add to the parts of the framework that don't meet your needs, without affecting other parts of the framework. 16 Licensing Licensing of a framework is also very important aspect while selecting a framework because open sources are not always available for free, they have licensing costs. So one should consider the licensing options before selecting any framework. 17 Language requirement Frameworks tend to target a specific programming language. If your organization has settled on a particular programming language, the language and platform will be two of the major criteria in determining what frameworks are available to you. 18 Integration with other technologies When we talk about the open source web frameworks then one should consider the availability of long list of other open source technologies and a framework should be able to work along with those technologies e.g. hibernate. It could save lot of re-work and cost. Moreover integration with Enterprise Java Beans, Web Services Object/Relational tools, XML-RPC consumption and WAP/WML device/browser support is very critical while deciding framework for an application. Thanks again, Sohaib