Web Application Frameworks (WAF)
By formal definition a web application framework (WAF) is a re-usable program, set of programs, and/or code library that performs common tasks for an application or layer of one application (Johnson, 2005). These “non-full-stack frameworks” may perform such common tasks as database operations, URL routing, caching, security, et cetera. By using the framework, we as the developers will only need to customize specific portions of the application that we deem necessary. Conversely, agile web frameworks such as Ruby on Rail (RoR) are considered mature “full-stack web frameworks” and useful for the development of web applications. In contrast with WAFs, agile web frameworks are not limited to one layer, but rather they serve the full stack. In essence, the full-stack web application brings together multiple libraries, and provides all the applications that are required to build the website. As with the WAF, the agile frameworks are reusable as well, and may be utilized countless times for any of the applications that are included within the framework (Ignacio Fernández-Villamor, Díaz-Casillas & Iglesias, 2008).
Agile Web Frameworks
Having performed a cursory introduction of the agile web frameworks, we are now prepared for a more detailed discussion. Of the agile web frameworks, perhaps the most well-known is Ruby on Rails (Thomas, 2006), which fostered the ability to create a website, with a single web framework. The RoR framework, as with most of the other agile frameworks follows the principles of convention over configuration; which is customize portions of the application only if deemed necessary, and don't repeat yourself.
Ruby on Rails Alternatives
Ruby on Rails is based on the Ruby language, however Java is the industry standard for business applications. This has brought about the need for Java-based web frameworks, which will work with legacy Java systems and permit the reuse of Java libraries, subsystems and technologies already developed in Java. One popular Java-based framework alternative is Grails. Grails is an open-source framework, that will run on a JVM (Rudolph, 2007), and follows the principles of convention over configuration, and don't repeat yourself. Trails, is another Java-based full-stack web application framework alternative. It makes use of the maturity of existing frameworks, and tight integration and automatic code generation for common tasks. (“Overview Of Trails”, 2014). Finally, there is the agile Java-based alternative framework, Roma. The Roma framework is a meta-framework with an API to Java frameworks such as Hibernate, Spring, and JPOX (Tate, 2006).
Black, D. (2006). Ruby for Rails: Ruby Techniques for Rails Developers
Dauzon, S. (2014). Getting Started with Django. Packt Publishing Ltd.
Ignacio Fernández-Villamor, J., Díaz-Casillas, L., & Iglesias, C. Á. (2008). A comparison model for agile web frameworks. Proceedings of the 2008 Euro American Conference on Telematics and Information Systems - EATIS ’08. doi:10.1145/1621087.1621101
Johnson, R. (2005). J2EE development frameworks. Computer, 38(1), 107–110. doi:10.1109/mc.2005.22
Overview Of Trails. (2014). Retrieved from http://trails.codehaus.org/Overview
Rudolph, J. (2007). Getting started with Grails. Lulu. com. Retrieved from http://jasonrudolph.com/downloads/presentations/Getting_Started_with_Grails.pdf
Tate, B. (2006). From Java to Ruby. consultazione differenze tra Java e Ruby.
Thomas, D. (2006). Agile web development with Rails. Retrieved from http://limi.googlecode.com/svn-history/r43/reading/Agile+Web+Development+with+Rails.pdf