I am doing some research on Java web development frameworks for an upcoming article and a Java Users Group (JUG) presentation. The goal of my research is to show how using frameworks for Java web development reduces development time and increases application quality. I have worked on numerous web development projects, and I have seen many people "reinvent the wheel", when using an existing framework would have resulted in better, more maintainable code with less work. I think that frameworks fill an important gap between the base Java API's (JSDK + JSP + servlet engine) and the high end EJB application servers. I plan on first developing a simple application using nothing but the JSDK and JSP on the Tomcat reference implementation. Then, the same application will be rewritten using a few of the major frameworks. The resulting applications will be compared in terms of ease of development, quality of code, and some basic performance metrics. I am trying to identify frameworks that meet all the required criteria, and any of the extra criteria, listed below. If anyone can suggest a framework that meets these requirements and is not listed below, please send me an email off-list. When I have completed my research, I will post my findings to the list. Any other comments or suggestions are also welcome. Required Criteria: * The framework must be compatible with any platform supporting Java Servlet API 2.1 or greater, and JavaServer Pages 1.0 or greater. * The framework must support and facilitate the "Model 2" Architecture, i.e. the Model - View - Controller (MVC) design pattern in which a template or JSP page serves as a view, a servlet serves as a controller, and javabeans or other components serve as the model. * The framework must provide methods to secure resources and authenticate users. * The framework must provide database connection pooling. * The framework must facilitate database persistence through database objects that abstract away some of the complexities of SQL and JDBC. The persistence layer should support a number of major database platforms. * The framework must have facilities to log errors and events. Extra Criteria: * Object Caching * Open Source License * Job Automation * Administrative screens for application administration, database connection pool allocations, etc. * Compatibility with EJB's * Object - Relational Database mapping capabilities So far, I have identified the following Java web frameworks that meet these requirements: Expresso http://www.javacorporate.com Turbine http://java.apache.org/turbine/ the WebApp Framework http://www.webapp.de/ Webmacro http://webmacro.org/ Note: I have also taken a close look at the STRUTS framework (http://jakarta.apache.org/struts/index.html) developed by Craig R. McClanahan. This appears to be an excellent tool for creating MVC designs. However, the STRUTS framework was designed to be more lightweight then the frameworks listed above, and does not include (to my knowledge), facilities for security, persistence, etc. Nonetheless, the STRUTS framework has the best MVC architecture that I have seen, and it is definitely worth a look for anyone interested. Thank you for you help. Regards, Adam Rossi PlatinumSolutions, Inc. http://www.platinumsolutions.com [EMAIL PROTECTED] ___________________________________________________________________________ To unsubscribe, send email to [EMAIL PROTECTED] and include in the body of the message "signoff SERVLET-INTEREST". Archives: http://archives.java.sun.com/archives/servlet-interest.html Resources: http://java.sun.com/products/servlet/external-resources.html LISTSERV Help: http://www.lsoft.com/manuals/user/user.html
