Evaluation of web application frameworks

  • Published on
    14-Feb-2017

  • View
    214

  • Download
    2

Embed Size (px)

Transcript

  • Chalmers University of Technology University of Gothenburg Department of Computer Science and Engineering Gteborg, Sweden, June 2010

    Evaluation of web application frameworks Evaluation of web application frameworks with regards to rapid

    development.

    Master of Science Thesis in Software Engineering and Technology

    MARTIN BJREMO

    PREDRAG TRNINI

  • The Author grants to Chalmers University of Technology and University of Gothenburg the non-exclusive right to publish the Work electronically and in a non-commercial purpose make it accessible on the Internet. The Author warrants that he/she is the author to the Work, and warrants that the Work does not contain text, pictures or other material that violates copyright law. The Author shall, when transferring the rights of the Work to a third party (for example a publisher or a company), acknowledge the third party about this agreement. If the Author has signed a copyright agreement with a third party regarding the Work, the Author warrants hereby that he/she has obtained any necessary permission from this third party to let Chalmers University of Technology and University of Gothenburg store the Work electronically and make it accessible on the Internet.

    Evaluation of web application frameworks

    Evaluation of web applications frameworks with regards to rapid development

    MARTIN BJREMO

    PREDRAG TRNINI

    MARTIN BJREMO, June 2010. PREDRAG TRNINI, June 2010.

    Examiner: SVEN-ARNE ANDREASSON

    Chalmers University of Technology

    University of Gothenburg

    Department of Computer Science and Engineering

    SE-412 96 Gteborg

    Sweden

    Telephone + 46 (0)31-772 1000

    [Cover: Logos of frameworks evaluated in this report, from upper left to right; Ruby on

    Rails, Wicket, CakePHP, Stripes, Grails, Spring Roo.]

    Department of Computer Science and Engineering

    Gteborg, Sweden July 2010

  • Abstract This report focuses on evaluating several web application frameworks for use in rapid

    development. As there is a need for the possibility to deploy new applications in a short period of time there is also a need for a framework, which facilitates those demands. Creating an application from scratch would most likely be too time consuming and not very rapid. Thus the report will look closer at some of the application frameworks (CakePHP, Grails, Ruby on Rails, Stripes, Spring Roo and Wicket) to see what they have to offer and how they do it. The frameworks are evaluated based on six criteria (documentation and learning, convention over configuration, integrated development environment, internationalization (localization), user data input validation and testing) and one promising is chosen to be used to implement a web application. The conclusions of this evaluation are that there is no superior framework and one should not learn a new programming language just for using a recommended web framework. And also, one should choose framework wisely based on the size of ones application and the scope of the application.

  • Sammanfattning Denna rapport fokuserar p utvrdering av ett antal webbramverk fr anvndning i

    snabb utveckling. Eftersom det finns ett behov av att kunna distribuera nya applikationer p kort tid finns det ocks ett behov av ramverk som underlttar detta krav. Skapa en webbapplikation frn brjan skulle sannolikt bli alltfr tidskrvande och inte srskilt snabb. Sledes kommer rapporten att se nrmare p ngra av webbramverken som finns (CakePHP, Grails, Ruby on Rails, till Stripes, Spring Roo och Wicket) och se vad de har att erbjuda och hur de lser vissa tidskrvande uppgifter det. Ramverken bedms utifrn sex kriterier (dokumentation och lrande, konvent ver konfigurationen, integrerad utvecklingsmilj, internationalisering (lokalisering), kontroll och validering av indata frn anvndare) och ett lovande ramverk vljs ut fr att anvndas fr att skapa en webbapplikation. Slutsatserna i denna utvrdering r att det inte finns ett verlgset ramverk och man br inte lra sig ett nytt programmeringssprk bara fr att anvnda en rekommenderat webbramverk. Dessutom br man vlja webbramverk noga baserat p storleken av ens webbapplikation och omfattningen av webbapplikationen.

  • Acknowledgements This masters thesis report has been written as the final part of the Masters program Software Engineering and Technology at Chalmers University of Technology, Sweden 2010. The subject was chosen in cooperation with Logica in Gothenburg, where the thesis also has been performed. The writers of this report would like to thank their supervisor at Logica, Jesper Forslund, and at Chalmers, Sven-Arne Andreasson, for their support during this project. Martin Bjremo Predrag Trnini Gothenburg, Sweden June 2010

  • Table of Contents 1. Introduction ....................................................................................................................... 1

    1.2. About Logica ......................................................................................................................... 1

    2. Background ........................................................................................................................ 2

    2.1. What is a web framework? ................................................................................................... 2

    2.2. Framework vs. libraries ......................................................................................................... 3

    2.3. Degrees of activeness web frameworks ............................................................................... 4

    2.4. Advantages of using a framework ......................................................................................... 4

    2.5. Disadvantage of using a framework ...................................................................................... 5

    2.6. Who should use a framework? ............................................................................................. 5

    2.7. Rapid development ............................................................................................................... 6

    3. Problem ............................................................................................................................. 7

    3.1. Purpose .................................................................................................................................. 7

    3.2. Scope ..................................................................................................................................... 7

    4. Method .............................................................................................................................. 8

    4.1. Investigation .......................................................................................................................... 8

    4.2. Evaluation .............................................................................................................................. 8

    4.3. Implementation ..................................................................................................................... 9

    5. Evaluation Criteria ............................................................................................................ 10

    5.1. Documentation and Learning .............................................................................................. 10

    5.2. Convention over Configuration ........................................................................................... 10

    5.3. Integrated Development Environment ............................................................................... 11

    5.4. Internationalization (Localization) ...................................................................................... 11

    5.5. Validation ............................................................................................................................ 11

    5.6. Testing ................................................................................................................................. 11

    5.7. Additional Criteria ............................................................................................................... 11

    6. The Frameworks ............................................................................................................... 13

    6.1. CakePHP .............................................................................................................................. 13

    6.2. Grails .................................................................................................................................... 13

    6.3. Ruby on Rails ....................................................................................................................... 13

    6.4. Stripes .................................................................................................................................. 13

  • 6.5. Spring Roo ........................................................................................................................... 13

    6.6. Wicket .................................................................................................................................. 14

    6.7. Other Frameworks .............................................................................................................. 14

    7. Results .............................................................................................................................. 15

    7.1. Documentation and Learning .............................................................................................. 15

    7.1.1. CakePHP ....................................................................................................................... 15

    7.1.2. Grails ............................................................................................................................. 15

    7.1.3. Ruby on Rails ................................................................................................................ 15

    7.1.4. Spring Roo .................................................................................................................... 15

    7.1.5. Stripes ........................................................................................................................... 16

    7.1.6. Wicket ........................................................................................................................... 16

    7.2. Convention over Configuration ........................................................................................... 16

    7.2.1. CakePHP ....................................................................................................................... 16

    7.2.2. Grails ............................................................................................................................. 16

    7.2.3. Ruby on Rails ................................................................................................................ 17

    7.2.4. Spring Roo .................................................................................................................... 17

    7.2.5. Stripes ........................................................................................................................... 17

    7.2.6. Wicket ........................................................................................................................... 17

    7.3. Integrated Development Environment ............................................................................... 17

    7.3.1. CakePHP ....................................................................................................................... 18

    7.3.2. Grails ............................................................................................................................. 18

    7.3.3. Ruby on Rails ................................................................................................................ 19

    7.3.4. Spring Roo .................................................................................................................... 19

    7.3.5. Stripes ........................................................................................................................... 19

    7.3.6. Wicket ........................................................................................................................... 19

    7.4. Validation ............................................................................................................................ 20

    7.4.1. CakePHP ....................................................................................................................... 20

    7.4.2. Grails ............................................................................................................................. 20

    7.4.3. Ruby on Rails ................................................................................................................ 21

    7.4.4. Spring Roo .................................................................................................................... 22

    7.4.5. Stripes ........................................................................................................................... 22

    7.4.6. Wicket ........................................................................................................................... 23

    7.5. Internationalization (Localization) ...................................................................................... 23

  • 7.5.1. CakePHP ....................................................................................................................... 24

    7.5.2. Grails ............................................................................................................................. 24

    7.5.3. Ruby on Rails ................................................................................................................ 24

    7.5.4. Spring Roo .................................................................................................................... 25

    7.5.5. Stripes ........................................................................................................................... 25

    7.5.6. Wicket ........................................................................................................................... 25

    7.6. Testing ................................................................................................................................. 25

    7.6.1. CakePHP ....................................................................................................................... 25

    7.6.2. Grails ............................................................................................................................. 26

    7.6.3. Ruby on Rails ................................................................................................................ 26

    7.6.4. Spring Roo ......................................................................