Modern Web Application Frameworks
Total Page:16
File Type:pdf, Size:1020Kb
MASARYKOVA UNIVERZITA FAKULTA INFORMATIKY Û¡¢£¤¥¦§¨ª«¬Æ°±²³´µ·¸¹º»¼½¾¿Ý Modern Web Application Frameworks MASTER’S THESIS Bc. Jan Pater Brno, autumn 2015 Declaration Hereby I declare, that this paper is my original authorial work, which I have worked out by my own. All sources, references and literature used or ex- cerpted during elaboration of this work are properly cited and listed in complete reference to the due source. Bc. Jan Pater Advisor: doc. RNDr. Petr Sojka, Ph.D. i Abstract The aim of this paper was the analysis of major web application frameworks and the design and implementation of applications for website content ma- nagement of Laboratory of Multimedia Electronic Applications and Film festival organized by Faculty of Informatics. The paper introduces readers into web application development problematic and focuses on characte- ristics and specifics of ten selected modern web application frameworks, which were described and compared on the basis of relevant criteria. Practi- cal part of the paper includes the selection of a suitable framework for im- plementation of both applications and describes their design, development process and deployment within the laboratory. ii Keywords Web application, Framework, PHP,Java, Ruby, Python, Laravel, Nette, Phal- con, Rails, Padrino, Django, Flask, Grails, Vaadin, Play, LEMMA, Film fes- tival iii Acknowledgement I would like to show my gratitude to my supervisor doc. RNDr. Petr So- jka, Ph.D. for his advice and comments on this thesis as well as to RNDr. Lukáš Hejtmánek, Ph.D. for his assistance with application deployment and server setup. Many thanks also go to OndˇrejTom for his valuable help and advice during application development. iv Contents Introduction . 1 1 Problematic and Basic Terms ..................... 2 1.1 Web Applications . 2 1.2 Web Frameworks and Design Patterns . 3 1.3 Modern Web Application Technologies . 4 1.3.1 Code Simplification Technologies . 4 1.3.2 Bootstrap . 6 1.4 Design Patterns . 6 1.4.1 Model View Controller . 7 1.4.2 Component Based Architecture . 8 1.5 Programming Languages . 8 1.5.1 PHP . 9 1.5.2 Ruby . 9 1.5.3 Python . 10 1.5.4 Java . 10 1.6 Selection of Comparison Form . 11 1.6.1 Comparison Criteria . 11 1.7 Chapter Conclusion . 12 2 Framework Analysis .......................... 14 2.1 Laravel . 14 2.1.1 Framework Usage and Properties . 15 2.1.2 Comparison Criteria . 16 2.1.3 Summary . 17 2.2 Nette . 18 2.2.1 Framework Usage and Properties . 18 2.2.2 Comparison Criteria . 20 2.2.3 Summary . 21 2.3 Phalcon . 21 2.3.1 Framework Usage and Properties . 22 2.3.2 Comparison Criteria . 23 2.3.3 Summary . 24 2.4 Ruby on Rails . 25 2.4.1 Framework Usage and Properties . 25 2.4.2 Comparison Criteria . 26 2.4.3 Summary . 27 2.5 Padrino . 28 2.5.1 Framework Usage and Properties . 28 v 2.5.2 Comparison Criteria . 29 2.5.3 Summary . 30 2.6 Django . 31 2.6.1 Framework Usage and Properties . 31 2.6.2 Comparison Criteria . 32 2.6.3 Summary . 33 2.7 Flask . 33 2.7.1 Framework Usage and Properties . 34 2.7.2 Comparison Criteria . 35 2.7.3 Summary . 36 2.8 Grails . 37 2.8.1 Framework Usage and Properties . 37 2.8.2 Comparison Criteria . 38 2.8.3 Summary . 39 2.9 Vaadin . 40 2.9.1 Framework Usage and Properties . 40 2.9.2 Comparison Criteria . 42 2.9.3 Summary . 43 2.10 Play . 43 2.10.1 Framework Usage and Properties . 44 2.10.2 Comparison Criteria . 45 2.10.3 Summary . 46 2.11 Framework Overview . 46 2.12 Summary and Comparison Tables . 50 2.13 Chapter Conclusion . 54 3 Web Application Development .................... 55 3.1 Application Requirements . 55 3.1.1 Application for LEMMA . 56 3.1.2 Application for Film Festival . 56 3.2 Framework Selection . 57 3.3 Application Design . 58 3.3.1 User Roles . 59 3.3.2 Administration . 60 3.3.3 Content Management . 61 3.3.4 Graphic Design . 62 3.4 Application Implementation . 67 3.4.1 Development Tools . 67 3.4.2 Creating the Project . 67 3.4.3 Project Structure . 68 3.4.4 General Development Process . 71 vi 3.4.5 Content Management Implementation . 73 3.4.6 User Authentication . 75 3.5 Deployment . 76 4 Conclusion ................................ 78 Attachments . 79 A. Design Diagrams for LEMMA Applications . 79 B. Contents of Attached CD . 82 Glossary . 83 Bibliography . 86 vii Introduction Since the introduction of Web 2.0, website content management has rede- fined the way modern websites are used. There are numerous ways to man- age the content of a certain website to make it secure and user friendly. Most importantly, the whole management system has to be effective. In order to accomplish this, programmers often face a large amount of time consuming development that would later include rewriting parts of code and reusing it in other projects. With countless hours spent on programming from scratch, it is necessary to look for new ways to build high end web applications fast and easily. Web frameworks have become crucial for creating effective web ap- plications, not only for managing its contents. Today we are able to uti- lize over a hundred different frameworks written in various different lan- guages, with often a very distinct way of approaching a certain develop- ment problematic. Web developers were given a powerful tool for creating complex web applications easily and fast, which relieved from the burden of developing each system core separately from the beginning. The aim of this paper is to analyze functionality of modern web frame- works, describe distinctions between them and present different ways of development approach. Since there are over a hundred of these frameworks, this paper includes analysis of a representative sample of them and de- scribes their advantages when using them for certain application type based on requirements of a given application. In the first chapter the paper introduces important terminology used to describe procedures and technologies that are crucial for developing web applications. The chapter also covers the specifications of chosen criteria for the quality assessment of the chosen frameworks. In chapter 2, every framework is verbally described on the base of research and its output is structured in a research summary and transparent comparison tables. The practical part consists of designing the web application for the Laboratory of Multimedia Electronic Applications (LEMMA) and the website of the film festival organized by Faculty of Informatics in the best suited frame- work according to its usability, extensibility and deployment requirements, based on the research conducted in chapter 2. 1 1 Problematic and Basic Terms This chapter covers the introduction to the web application problematic and briefly describes basic terms and common development approaches used in the thesis. It also briefly covers modern code simplification technologies that allow developers to save time by simply generating large parts of the code or writing such parts using special macros. The last part of the chapter focuses on describing the terminology used in the final selection of tested web frameworks. 1.1 Web Applications Since early 90’s the internet has become the world’s most popular center of information sharing, advertisement and marketing, and it is responsi- ble for the revolution of information technologies. There is no reason to doubt that it is a headstone for applications that are accessible from any lo- cation using just the internet browser, without any need of installation, yet still maintaining the functionality of a desktop application. Since the inter- net was not originally built for such purposes, numerous new technologies were created to provide developers with the tools needed for building such applications. Thus emerged the term “Web Application”, which refers to any software running in a web browser and created in a browser-supported programming language relying on the browser to render the contents of the application. Web applications have become very popular due to the ubiq- uity of the web browser in a role of a client (known as thin client, because it itself does not contain the application logic). Even though web applications were written to perform and look like desktop applications, there are differences that make them rather unique. Accessing the application from anywhere is its biggest advantage. Users can log in to the system from different destinations simply via browser and manipulate data on the server, giving them access to their own personal settings of the application, bringing the value of portability. Another ad- vantage of web applications is that they can be be operated by more users at once. They can also be used to mediate communication between them, creating a network of operations that is usually required for community- based projects. On the other hand, web browsers were created to browse the web pages, and “Back” and “Forward” functions that are used to navi- gate in website history can be confusing for the application. Also, web ap- plications are unable to access the file system of a client computer, which 2 1. PROBLEMATIC AND BASIC TERMS can be both advantageous and detrimental. Users cannot manipulate with files on their drives but there is also no danger to their security. Access to the web application is mediated by the internet browser, which is closely connected to the client/server architecture. Such architecture rep- resents a server that provides various contents or services to its users. Also, it is possible to connect to it from different locations using a simple ac- cess point – the browser.