ScienceDirect. Designing an MVC Model for Rapid Web Application Development
|
|
|
- Daniel McDowell
- 10 years ago
- Views:
Transcription
1 Available online at ScienceDirect Procedia Engineering 69 ( 2014 ) th DAAAM International Symposium on Intelligent Manufacturing and Automation, 2013 Designing an MVC Model for Rapid Web Application Development Dragos-Paul Pop*, Adam Altar Romanian-American University, 1b Expozitiei Blvd., Bucharest, , Romania Abstract In this paper, we present a model for rapid web application development. This model is based on the Model-View-Controller architecture (MVC) and has several other useful components like security, form generation and validation, database access and routing. This model was implemented using the PHP programming language, but it can be implemented in other development languages and environments using the same concepts. Improvements in both development and maintenance time have been the main objectives of this research, with the added benefit of correct and maintainable code The Authors. Published by Elsevier Ltd. Selection 2014 The and Authors. peer -review Published under by responsibility Elsevier Ltd. Open access under CC BY-NC-ND license. of DAAAM International Vienna. Selection and peer-review under responsibility of DAAAM International Vienna Keywords: model; view; controller; MVC; web application; design pattern 1. Introduction Web application development has come a long way since the beginning of the World Wide Web. A myriad of technologies and programming languages are now used to build web applications, but because of the way the World Wide Web evolved and because of the speed at which it did so these technologies didn t really have time to evolve and cope with the pace. Many players tried to come up with different and exotic technologies to mainly improve the user experience and help developers build faster and more powerful web applications. Some of these technologies have played an important role in web development but have seen an important drop in usage over the last years, like Java Applets and Microsoft Silverlight. On the other hand many technologies have evolved from simple toys to powerful and important parts of todays web ecosystem, like JavaScript, Flash and XML. * Corresponding author. Tel.: ; address:[email protected] The Authors. Published by Elsevier Ltd. Open access under CC BY-NC-ND license. Selection and peer-review under responsibility of DAAAM International Vienna doi: /j.proeng
2 Dragos-Paul Pop and Adam Altar / Procedia Engineering 69 ( 2014 ) The web environment today uses HTML and CSS to present data to users and interaction is accomplished via JavaScript. These technologies are called front-end or client-side technologies. On the other hand, back-end or server-side technologies refer to data storage and processing technologies. 2. Problem formulation Front end and back end technologies come together to build web applications, but because the World Wide Web has evolved at such a fast pace and because developers need to use a rather large number of technologies to build just a single web application, the result of their work is oftentimes difficult to maintain and fix. Developers combine HTML code with server side programming languages to create dynamic web pages and applications and this leads to highly entangled and unmaintainable code. Another problem has grown out of the fact that web technologies are increasingly used to build all sorts of complex applications. Microsoft embraces web technologies to encourage developers to build applications for its latest operating system, Windows 8. Also, a lot of frameworks exist that help web developers write applications for mobile devices, like PhoneGap and Appcelerator Titanium. Even more, a mobile operating system is in the works and devices are expect later this year that uses web technologies entirely for the developer API (Mozilla Firefox OS). For these reasons a web application is generally created by a whole team of specialized developers, each working with their favorite technology, like HTML and CSS for the presentation layer, JavaScript for client-side interaction, PHP (or ASP, Java, Python, Pearl, Ruby, etc.) for server-side logic and MySQL (or Oracle Database, Microsoft SQL Server, etc.) for data storage and management. Each of these specialist needs to work with their colleagues in such a way that their code pieces fit inside the overall design of the application. For example, the client-side (data presentation) developer needs to alter the HTML and CSS code in such a way that he doesn t break the server-side developers code that resides in the same file. Also, when a database developer alters the schema for an application the server-side developer may need to change a lot of code to make the application work. The important thing to note here is that there is an acute need to separate presentation from logic and data storage in an application. There are some application design paradigms and patterns that offer solutions to this problem, but the focus nowadays is on the MVC pattern. In conducting the research we have used our experience is building web applications with various systems and frameworks and we have tried to identify both strengths and weaknesses of these systems while providing our own view on how these practices could be improved. Studied frameworks and systems include: Symfony, CakePHP, CodeIgniter Zend Framework, Laravel, Fuel PHP, Ruby on Rails and ASP.NET MVC. 3. The MVC pattern and literature overview In this section we will review the current status of the research in this field and take a look at the literature behind the MVC pattern, describing the main functional parts of the pattern. The MVC design pattern was first envisioned by Trygve Reenskaug in the 1970s at the Xerox Parc. According to him, the essential purpose of MVC is to bridge the gap between the human user's mental model and the digital model that exists in the computer. [1] Later on, in 1988, the MVC paradigm was described in detail by Krasner and Pope in their article A cookbook for using the model-view controller user interface paradigm in Smalltalk-80, published in the Journal of Object- Oriented Programming. They stress out that there are enormous benefits to be had if one builds applications with modularity in mind. Isolating functional units from each other as much as possible makes it easier for the application designer to understand and modify each particular unit without having to know everything about the other units. [2] An application is divided into three main categories: the model of the main application domain, the presentation of data in that model and user interaction. [2] The MVC pattern splits responsibilities into three main roles thus allowing for more efficient collaboration. [3] These main roles are development, design and integration.
3 1174 Dragos-Paul Pop and Adam Altar / Procedia Engineering 69 ( 2014 ) The development role is taken on by experienced programmers that are responsible for the logic of the application. They take care of data querying, validation, processing and more. The design role is for the developers that are responsible for the application look and feel. They display data that is fed from the developers working on the first role. The integration role gathers developers with the responsibility to glue the work of the previous two roles. [3] The MVC design pattern is such a good fit for web application development because they combine several technologies usually split into a set of layers. Also, MVC specific behavior could be to send specific views to different types of user-agents. [13] User interaction with an MVC application follows a natural cycle: the user takes an action, and in response the application changes its data model and delivers an updated view to the user. And then the cycle repeats. This is a very convenient fit for web applications delivered as a series of HTTP requests and responses. [4] 3.1. The Model Fig. 1 The MVC pattern. Source: The Model is the part of the system that manages all tasks related to data: validation, session state and control, data source structure (database). The Model greatly reduces the complexity of the code the developer needs to write. [5] The Model layer is responsible with the business logic of an application. It will encapsulate methods to access data (databases, files, etc.) and will make a reusable class library available. Usually a Model is built with data abstraction in mind, validation and authentication. [4] Moreover, the Model is made up of classes that define the domain of interest. These objects that belong to the domain often times encapsulate data that is stored in databases, but also include code that is used to manipulate this data and enforce business rules. [6] As a conclusion, the Model mainly handles data access abstraction and validation. The Model holds methods for interaction with different data sources. We believe in the Thin Model approach, which says that a model should be kept as simple as possible, only encompassing data processing that is strictly tied to the real life object that is modeled. The Thin Model is coupled with a Fat Controller, which houses most of the data processing required by the application. This way, the models become highly reusable between applications and most of a developer s work is kept inside controllers.
4 Dragos-Paul Pop and Adam Altar / Procedia Engineering 69 ( 2014 ) The novelty our Model system brings to the MVC world is a system for versioning control, based on the idea of migrations, that doesn t only keep track of data structure but of data itself. The system uses xml files to store data between migrations, making the versioning process for databases an easily accomplishable thing The View The View is responsible with graphical user interface management. This means all forms, buttons, graphic elements and all other HTML elements that are inside the application. Views can also be used to generate RSS content for aggregators or Flash presentations. By separating the design of the application from the logic of the application we greatly reduce the risk of errors showing up when the designer decides to alter the interface of that application by changing a logo or a table. In the same time, the developers job is greatly reduced because he no longer needs to see HTML code elements, design elements and graphical elements. [5] The View layer is what can normally be called web design or templates. It controls the way data is displayed and how the user interacts with it. It also provides ways for data gathering from the users. The technologies that are mainly used in views are HTML, CSS and JavaScript. [4] As a general rule, a view should never contain elements that belong to application logic, in order to make it easier for the designer to work with it. This means logical blocks should be kept at a minimum. Most web application frameworks today use some sort of template engine that takes advantage of generator elements in order to keep HTML code at a minimum and reduce the risk of typing mistakes. These generators are usually used to make complex web partials, like forms, tables, lists, menus and so on. The problem we identified in this case is that all implementations of this idea use behind the scenes or opaque generation of partials. This way, a front-end developer can only see the resulting code after it s been generated, having little to no way of modifying the template. Our system uses special HTML comments to insert and generate partials based on templates that are also HTML-only files. The pre-processing system uses the comments to interpret special commands in order to insert data into the templates. This makes the whole process very transparent for the front-end developer, who can see the whole markup before rendering the view The Controller The Controller is responsible for event handling. These events can be triggered by either a user interacting with the application or by a system process. A controller accepts requests and prepares the data for a response. It is also responsible with establishing the format of that response. The Controller interacts with the Model in order to retrieve the needed data and generates the View. This process is also known as an action or a verb. [5] When a request arrives at the server, the MVC framework dispatches it to a method in a controller based on the URL. [14] The Controller binds all application logic and combines the display in the View with the functionality in the Model. It is responsible with data retrieval from the View and with establishing the execution path for the application. The Controller will access the Model functionality and it will interpret the data received so that it can be displayed by the View. It is also responsible with error handling. [4] A Controller manages the relationship between a View and a Model. It responds to user requests, interacts with the Model and decides which View should be generated and displayed. [6] As mentioned above, we embrace the Fat Controller approach, believing that all application-specific data processing should be handled at the controller level. Our controller system is RESTful and supports JSON(P), text and XML data formats for requests and responses. 4. Database abstraction In object oriented programming applications are built using objects. These objects reflect real life objects and they contain both data and behavior. The relational model that is widely used for data storage in applications uses tables to store data and data manipulation languages to interact with that data. Some database management systems have object oriented features, but they are not fully compatible. It is very clear that these two architectures are widely used and will be for a long time from now. Moreover, the relational model and object oriented programming
5 1176 Dragos-Paul Pop and Adam Altar / Procedia Engineering 69 ( 2014 ) are used together most of the time to build applications of every scale. But the way the two technologies combine is far from perfect. The term used for this mismatch is object-relational impedance mismatch. [7] The reason behind this mismatch is that the two technologies rely on different concepts. Object oriented programming relies on proved programming concepts, while the relational models follows mathematical principles. Object-relational mapping systems were developed solely to address this issue. Fig. 2 ORM System. Source: An object-relational mapping system (ORM) is defined as being a tool that provides a methodology and a mechanism for object oriented systems to store data in safe way and for a long period of time in a database, having transactional control over them, but being expressed, if needed, as objects inside the application. [8] An ORM system frees the developer from the worry of knowing the database structure or schema. Data access is done using a conceptual model that reflects the developers business objects. [9] In conclusion, we can say that an object-relational mapping system is a way to correlate data from a relational system with classes in a programming language, allowing the developer to work with well-known concepts from object oriented programming to manage data from that relational system. An MVC platform must provide developers with a way to interact with a database management system to store and retrieve data. Most of the times, this is an integrated ORM system. Because in the MVC architecture the Model is the layer that interacts with data, the ORM system is hidden behind it. Basically, each Model is connected to the ORM systems and it uses the system to interact with data. But developers may access the resources of the ORM system without the need to use a Model. Our ORM system supports many-to-many relations between objects and has a setting for maximum depth level for object linkage. Also, we provide an option to keep certain data sets in memory and skip database querying, reducing response times at a minimum. As far as NoSQL data stores are concerned, we support an interface to access a number of such systems. This interface is part of the ORM system.
6 Dragos-Paul Pop and Adam Altar / Procedia Engineering 69 ( 2014 ) Security Web application vulnerabilities are the main cause of attack on users from the business environment. [10] There are a lot of things developers need to be aware when building web applications. Security risks can be divided into several categories: [11] User input validation: buffer overflow, cross-site scripting, SQL injection, canonicalization; Authentication: network sniffing, brute-force attacks, dictionary attacks, cookie faking, identity theft; Authorization: access privilege violation, private data display, data altering, stalking attacks; Configuration management: unauthorized access to the management interface, unauthorized access to configuration zones, access to configuration data stored as text, lack of action logging; Sensible information: access to sensible data in the database, network sniffing, data altering; Session management: session theft, session altering, man in the middle attacks; Encryption: weak security keys, weak encryption; Parameter manipulation: query string, form field, cookie and HTTP header manipulation; Exception management: DOS attacks; Developers need to defend against all of these types of attacks and security needs to be handled at every layer in the MVC architecture. Our system proposal has built in CSRF attack prevention, a simple authentication schema, a complex role based security system and highly customizable access control lists for resources. 6. Routing The way the HTTP protocol handles URL writing is very similar to the way resource paths are written in the Unix environment. [12] Web servers bear this in mind and implicitly look for data in a hierarchical file system. This way of accessing resources is relatively easy and intuitive, but as web application complexity grows, the need for a better system arises. To solve this, we can configure the web server and the development framework in such a way that it will interpret results in a unique manner and access the resources. These systems are called URL Mapping or URL Routing systems. The technique is also known as URL Beautifying and helps developers build ordered and nice URLs data both users and search engines can handle better. Our system is built on the controller/action/params paradigm, but it also allows developers to configure their own static routes. Access control is done at the routing level in order to reduce unneeded processing time. 7. Rapid prototyping In the world of web application development a lot of application parts seem to be used multiple times. For example web forms are a tool that is used really often. So are tables and lists. But building such elements from scratch is rather difficult many times, because the involve writing a lot of complex markup. Each system can benefit from a rapid prototyping module that not only generates these tools quickly, but also provides ways to validate data (for forms). Such tools are really useful when combined with ORM systems to build CRUD systems from the ground up with very few lines of code. As stated in the section on Views above, our system is based on a flexible and fully transparent template engine, that comes to benefit both back-end and front-end developers alike.
7 1178 Dragos-Paul Pop and Adam Altar / Procedia Engineering 69 ( 2014 ) System proposal overview Our platform proposal unifies all of the above aspects in one single package that is robust and easy to use and maintain. The structure above can be described as follows. The data source can be any type of database. The ORM system is a set of classes built specifically for most well-known database management systems. One main class provides basic mapping, relations and management for a general type of table in the desired DBMS. Relations should be mapped as to allow fetching of related data in an object oriented way, without the need for complex queries written by the developer. Both eager and lazy loading of data should be considered. Models are built as children of the main ORM class inheriting functionality from that main class. In addition, Models are enriched with unique capabilities that describe the real life object that should be modeled. The Controller is a base class that handles Model querying, access security and route resolving. Controllers are built as children of the base Controller and inherit the functionality and are enriched with application logic corresponding with the desired actions. The Rapid Prototyping system is as set of classes that allow developers to build complex HTML objects like forms and tables without the need to write HTML code. Forms should provide the possibility of data validation and tables that of sorting and nesting. The Rapid Prototyping system should provide DOM-like manipulation capabilities in order to access the data. Fig. 3. MVC structure proposal. The View is a base class containing all display logic. Views are built as children of this main class and should be tied to a specific action and controller. Views should be pre-rendered for performance reasons and should be capable of caching. The View system can depend of a Template system and a Partials system for code reuse.
8 Dragos-Paul Pop and Adam Altar / Procedia Engineering 69 ( 2014 ) Conclusion Based on the proposal formulated above, we have built a solid framework that is capable of reducing web application development times drastically, allowing developers to focus on application specific tasks, rather than wasting time trying to implement well-known patterns and practices. Web technologies have come a long way in little time and the market for web applications is ever growing. Our system helps developers improve their work speed and quality and provides a nice working framework and platform for both beginners and experienced users. We have built a number of applications using components form the platform proposition and these applications showthat the system we are building is on the right track, while giving us valuable input on things that need to be improved. 10. Further research The focus of our future research in this area is improving support for the various NoSQL systems that are available, because we think this area is of big future interest for the IT community. Also, we aim at improving the speed of the rendering engine by incorporating caching techniques for data and views. Another important step is launching the project in the open source community in order to build more test case applications that generate valid results. These results will be used to further optimize the platform. Also, we aim to support packages built by the community in order to further extend the platform. Acknowledgements This work was co-financed from the European Social Fund through Sectorial Operational Program Human Resources Development , projects POSDRU/107/1.5/S/77213 and POSDRU/88/1.2/S/55287 Ph.D. for a career in interdisciplinary economic research at the European standards. References [1] Trygve Reenska, heim.ifi.uio.no / ~trygver/themes/mvc/mvc-index.html. [2] Glenn E. Krasner, Stephen T. Pope, A cookbook for using the model-view controller user interface paradigm in Smalltalk-80, Journal of Object-Oriented Programming, vol. 1, no. 3, 1988, pp [3] Kevin McArthur, Pro PHP: Patterns, Frameworks, Testing and More, Apress, [4] A Freeman, S Sanderson, Pro ASP.NET MVC 3 Framework, Apress, [5] W. J. Gilmore, Easy PHP Websites, Columbus, Ohio: W.J. Gilmore, LLC, [6] J. Galloway, P. Haack, B. Wilson și K. S. Allen, Professional ASP.NET MVC 3, John Wiley & Sons, Inc., [7] [8] E. J. O'Neil, Object/relational mapping 2008: hibernate and the entity data model (edm), Proceedings of the 2008 ACM SIGMOD international conference on Management of data [9] J. Lerman, Programming Entity Framework, O Reilly, [10] [11] J.D. Meier, Alex Mackman, Michael Dunner, Srinath Vasireddy, Ray Escamilla and Anandha Murukan, Improving Web Application Security: Threats and Countermeasures, Microsoft Press, Iunie [12] [13] Badurowicz, M, Mvc Architectural Pattern In Mobile Web-Applications, Actual Problems Of Economics, 2011, pp [14] Stratmann, E., & Ousterhout, J., Integrating Long Polling with an MVC Web Framework, 2nd USENIX Conference on Web Application Development, 2011, pp
A Comparative Study of Web Development Technologies Using Open Source and Proprietary Software
Available Online at www.ijcsmc.com International Journal of Computer Science and Mobile Computing A Monthly Journal of Computer Science and Information Technology IJCSMC, Vol. 4, Issue. 2, February 2015,
Web Development Frameworks
COMS E6125 Web-enHanced Information Management (WHIM) Web Development Frameworks Swapneel Sheth [email protected] @swapneel Spring 2012 1 Topic 1 History and Background of Web Application Development
DESIGNING HTML HELPERS TO OPTIMIZE WEB APPLICATION DEVELOPMENT
Abstract DESIGNING HTML HELPERS TO OPTIMIZE WEB APPLICATION DEVELOPMENT Dragos-Paul Pop 1 Building a web application or a website can become difficult, just because so many technologies are involved. Generally
Framework as a master tool in modern web development
Framework as a master tool in modern web development PETR DO, VOJTECH ONDRYHAL Communication and Information Systems Department University of Defence Kounicova 65, Brno, 662 10 CZECH REPUBLIC [email protected],
Högskoleexamen. Web application Security. Sektionen för informationsvetenskap, data- och elektroteknik. Rapport för Högskoleexamen, January 2013
Rapport för Högskoleexamen, January 2013 Högskoleexamen Sektionen för informationsvetenskap, data- och elektroteknik Web application Security Jose Enrique Charpentier Rojas Web application security Network
Developing ASP.NET MVC 4 Web Applications MOC 20486
Developing ASP.NET MVC 4 Web Applications MOC 20486 Course Outline Module 1: Exploring ASP.NET MVC 4 The goal of this module is to outline to the students the components of the Microsoft Web Technologies
The Weakest Link: Mitigating Web Application Vulnerabilities. webscurity White Paper. webscurity Inc. Minneapolis, Minnesota USA
The Weakest Link: Mitigating Web Application Vulnerabilities webscurity White Paper webscurity Inc. Minneapolis, Minnesota USA January 25, 2007 Contents Executive Summary...3 Introduction...4 Target Audience...4
Secure Web Application Coding Team Introductory Meeting December 1, 2005 1:00 2:00PM Bits & Pieces Room, Sansom West Room 306 Agenda
Secure Web Application Coding Team Introductory Meeting December 1, 2005 1:00 2:00PM Bits & Pieces Room, Sansom West Room 306 Agenda 1. Introductions for new members (5 minutes) 2. Name of group 3. Current
Case Study. Data Governance Portal. www.brainvire.com 2013 Brainvire Infotech Pvt Ltd Page 1 of 1
Case Study Data Governance Portal www.brainvire.com 2013 Brainvire Infotech Pvt Ltd Page 1 of 1 Client Requirement The website is the Data Governance intranet portal. Data Governance is the practice of
What s really under the hood? How I learned to stop worrying and love Magento
What s really under the hood? How I learned to stop worrying and love Magento Who am I? Alan Storm http://alanstorm.com Got involved in The Internet/Web 1995 Work in the Agency/Startup Space 10 years php
This course provides students with the knowledge and skills to develop ASP.NET MVC 4 web applications.
20486B: Developing ASP.NET MVC 4 Web Applications Course Overview This course provides students with the knowledge and skills to develop ASP.NET MVC 4 web applications. Course Introduction Course Introduction
Chapter 1 Web Application (In)security 1
Introduction xxiii Chapter 1 Web Application (In)security 1 The Evolution of Web Applications 2 Common Web Application Functions 4 Benefits of Web Applications 5 Web Application Security 6 "This Site Is
International Journal of Engineering Technology, Management and Applied Sciences. www.ijetmas.com November 2014, Volume 2 Issue 6, ISSN 2349-4476
ERP SYSYTEM Nitika Jain 1 Niriksha 2 1 Student, RKGITW 2 Student, RKGITW Uttar Pradesh Tech. University Uttar Pradesh Tech. University Ghaziabad, U.P., India Ghaziabad, U.P., India ABSTRACT Student ERP
A benchmark approach to analyse the security of web frameworks
Radboud University Nijmegen Master Thesis Computer Science A benchmark approach to analyse the security of web frameworks Author: K. Reintjes, BSc. [email protected] Supervisor: Prof. dr. M.C.J.D. van
Last update: February 23, 2004
Last update: February 23, 2004 Web Security Glossary The Web Security Glossary is an alphabetical index of terms and terminology relating to web application security. The purpose of the Glossary is to
BEST WEB PROGRAMMING LANGUAGES TO LEARN ON YOUR OWN TIME
BEST WEB PROGRAMMING LANGUAGES TO LEARN ON YOUR OWN TIME System Analysis and Design S.Mohammad Taheri S.Hamed Moghimi Fall 92 1 CHOOSE A PROGRAMMING LANGUAGE FOR THE PROJECT 2 CHOOSE A PROGRAMMING LANGUAGE
Web Frameworks. web development done right. Course of Web Technologies A.A. 2010/2011 Valerio Maggio, PhD Student Prof.
Web Frameworks web development done right Course of Web Technologies A.A. 2010/2011 Valerio Maggio, PhD Student Prof.ssa Anna Corazza Outline 2 Web technologies evolution Web frameworks Design Principles
Server-Side Scripting and Web Development. By Susan L. Miertschin
Server-Side Scripting and Web Development By Susan L. Miertschin The OOP Development Approach OOP = Object Oriented Programming Large production projects are created by teams Each team works on a part
Web Cloud Architecture
Web Cloud Architecture Introduction to Software Architecture Jay Urbain, Ph.D. [email protected] Credits: Ganesh Prasad, Rajat Taneja, Vikrant Todankar, How to Build Application Front-ends in a Service-Oriented
Developing ASP.NET MVC 4 Web Applications
Course M20486 5 Day(s) 30:00 Hours Developing ASP.NET MVC 4 Web Applications Introduction In this course, students will learn to develop advanced ASP.NET MVC applications using.net Framework 4.5 tools
Where every interaction matters.
Where every interaction matters. Peer 1 Vigilant Web Application Firewall Powered by Alert Logic The Open Web Application Security Project (OWASP) Top Ten Web Security Risks and Countermeasures White Paper
Pentesting Web Frameworks (preview of next year's SEC642 update)
Pentesting Web Frameworks (preview of next year's SEC642 update) Justin Searle Managing Partner UtiliSec Certified Instructor SANS Institute [email protected] // @meeas What Are Web Frameworks Frameworks
ONLINE SCHEDULING FOR THE PRIVATE CLINIC "OUR DOCTOR" BASED ON WEB 2.0 TECHNOLOGIES
Bulletin of the Transilvania University of Braşov Vol. 3 (52) - 2010 Series VI: Medical Sciences ONLINE SCHEDULING FOR THE PRIVATE CLINIC "OUR DOCTOR" BASED ON WEB 2.0 TECHNOLOGIES L. SANGEORZAN 1 M.VARCIU
Ruby on Rails. Object Oriented Analysis & Design CSCI-5448 University of Colorado, Boulder. -Dheeraj Potlapally
Ruby on Rails Object Oriented Analysis & Design CSCI-5448 University of Colorado, Boulder -Dheeraj Potlapally INTRODUCTION Page 1 What is Ruby on Rails Ruby on Rails is a web application framework written
A MODEL FOR THE AUTOMATION OF HTML FORM CREATION AND VALIDATION. Keywords: html, form, web, automation, validation, class, model.
A MODEL FOR THE AUTOMATION OF HTML FORM CREATION AND VALIDATION Abstract Dragos-Paul Pop 1 Adam Altar 2 Forms are an essential part of web applications, but handling large forms proves to be very time
Web application development landscape: technologies and models
Web application development landscape: technologies and models by Andrea Nicchi Relatore: Prof. Antonio CISTERNINO Controrelatore: Prof. Giuseppe ATTARDI WEB APPLICATION an Information System providing
Lecture 15 - Web Security
CSE497b Introduction to Computer and Network Security - Spring 2007 - Professor Jaeger Lecture 15 - Web Security CSE497b - Spring 2007 Introduction Computer and Network Security Professor Jaeger www.cse.psu.edu/~tjaeger/cse497b-s07/
Java Technology in the Design and Implementation of Web Applications
Java Technology in the Design and Implementation of Web Applications Kavindra Kumar Singh School of Computer and Systems Sciences Jaipur National University Jaipur Abstract: This paper reviews the development
WHITE PAPER. FortiWeb and the OWASP Top 10 Mitigating the most dangerous application security threats
WHITE PAPER FortiWeb and the OWASP Top 10 PAGE 2 Introduction The Open Web Application Security project (OWASP) Top Ten provides a powerful awareness document for web application security. The OWASP Top
Criteria for web application security check. Version 2015.1
Criteria for web application security check Version 2015.1 i Content Introduction... iii ISC- P- 001 ISC- P- 001.1 ISC- P- 001.2 ISC- P- 001.3 ISC- P- 001.4 ISC- P- 001.5 ISC- P- 001.6 ISC- P- 001.7 ISC-
CSE 373: Data Structure & Algorithms Lecture 25: Programming Languages. Nicki Dell Spring 2014
CSE 373: Data Structure & Algorithms Lecture 25: Programming Languages Nicki Dell Spring 2014 What is a Programming Language? A set of symbols and associated tools that translate (if necessary) collections
Java Application Developer Certificate Program Competencies
Java Application Developer Certificate Program Competencies After completing the following units, you will be able to: Basic Programming Logic Explain the steps involved in the program development cycle
Extending Desktop Applications to the Web
Extending Desktop Applications to the Web Arno Puder San Francisco State University Computer Science Department 1600 Holloway Avenue San Francisco, CA 94132 [email protected] Abstract. Web applications have
Electronic Ticket and Check-in System for Indico Conferences
Electronic Ticket and Check-in System for Indico Conferences September 2013 Author: Bernard Kolobara Supervisor: Jose Benito Gonzalez Lopez CERN openlab Summer Student Report 2013 Project Specification
SiteCelerate white paper
SiteCelerate white paper Arahe Solutions SITECELERATE OVERVIEW As enterprises increases their investment in Web applications, Portal and websites and as usage of these applications increase, performance
Document management and exchange system supporting education process
Document management and exchange system supporting education process Emil Egredzija, Bozidar Kovacic Information system development department, Information Technology Institute City of Rijeka Korzo 16,
zen Platform technical white paper
zen Platform technical white paper The zen Platform as Strategic Business Platform The increasing use of application servers as standard paradigm for the development of business critical applications meant
An Introduction to the Development of Web Applications using Ruby on Rails with Ajax
An Introduction to the Development of Web Applications using Ruby on Rails with Ajax Ansgar Berhorn, B.Sc. Dept. of Computer Science University of Applied Sciences / Hochschule Darmstadt Haardtring 100
http://msdn.microsoft.com/en-us/library/4w3ex9c2.aspx
ASP.NET Overview.NET Framework 4 ASP.NET is a unified Web development model that includes the services necessary for you to build enterprise-class Web applications with a minimum of coding. ASP.NET is
5 Mistakes to Avoid on Your Drupal Website
5 Mistakes to Avoid on Your Drupal Website Table of Contents Introduction.... 3 Architecture: Content.... 4 Architecture: Display... 5 Architecture: Site or Functionality.... 6 Security.... 8 Performance...
2311A: Advanced Web Application Development using Microsoft ASP.NET Course 2311A Three days Instructor-led
2311A: Advanced Web Application Development using Microsoft ASP.NET Course 2311A Three days Instructor-led Introduction This three-day, instructor-led course provides students with the knowledge and skills
BUILDING OLAP TOOLS OVER LARGE DATABASES
BUILDING OLAP TOOLS OVER LARGE DATABASES Rui Oliveira, Jorge Bernardino ISEC Instituto Superior de Engenharia de Coimbra, Polytechnic Institute of Coimbra Quinta da Nora, Rua Pedro Nunes, P-3030-199 Coimbra,
Ruby on Rails. a high-productivity web application framework. blog.curthibbs.us/ http://blog. Curt Hibbs <[email protected]>
Ruby on Rails a high-productivity web application framework http://blog blog.curthibbs.us/ Curt Hibbs Agenda What is Ruby? What is Rails? Live Demonstration (sort of ) Metrics for Production
The Great Office 365 Adventure
COURSE OVERVIEW The Great Office 365 Adventure Duration: 5 days It's no secret that Microsoft has been shifting its development strategy away from the SharePoint on-premises environment to focus on the
An introduction to creating JSF applications in Rational Application Developer Version 8.0
An introduction to creating JSF applications in Rational Application Developer Version 8.0 September 2010 Copyright IBM Corporation 2010. 1 Overview Although you can use several Web technologies to create
What is Web Security? Motivation
[email protected] http://www.brucker.ch/ Information Security ETH Zürich Zürich, Switzerland Information Security Fundamentals March 23, 2004 The End Users View The Server Providers View What is Web
LAMP [Linux. Apache. MySQL. PHP] Industrial Implementations Module Description
LAMP [Linux. Apache. MySQL. PHP] Industrial Implementations Module Description Mastering LINUX Vikas Debnath Linux Administrator, Red Hat Professional Instructor : Vikas Debnath Contact
The Learn-Verified Full Stack Web Development Program
The Learn-Verified Full Stack Web Development Program Overview This online program will prepare you for a career in web development by providing you with the baseline skills and experience necessary to
(WAPT) Web Application Penetration Testing
(WAPT) Web Application Penetration Testing Module 0: Introduction 1. Introduction to the course. 2. How to get most out of the course 3. Resources you will need for the course 4. What is WAPT? Module 1:
Modern Web Application Framework Python, SQL Alchemy, Jinja2 & Flask
Modern Web Application Framework Python, SQL Alchemy, Jinja2 & Flask Devert Alexandre December 29, 2012 Slide 1/62 Table of Contents 1 Model-View-Controller 2 Flask 3 First steps 4 Routing 5 Templates
Business Application Development Platform
Business Application Development Platform Author Copyright Last update Version Document type Sclable Business Solutions GmbH Attribution-NonCommercial-NoDerivatives 4.0 International 01/28/2014 1.0 Technical
Developing ASP.NET MVC 4 Web Applications Course 20486A; 5 Days, Instructor-led
Developing ASP.NET MVC 4 Web Applications Course 20486A; 5 Days, Instructor-led Course Description In this course, students will learn to develop advanced ASP.NET MVC applications using.net Framework 4.5
GOA365: The Great Office 365 Adventure
BEST PRACTICES IN OFFICE 365 DEVELOPMENT 5 DAYS GOA365: The Great Office 365 Adventure AUDIENCE FORMAT COURSE DESCRIPTION STUDENT PREREQUISITES Professional Developers Instructor-led training with hands-on
YouTrack MPS case study
YouTrack MPS case study A case study of JetBrains YouTrack use of MPS Valeria Adrianova, Maxim Mazin, Václav Pech What is YouTrack YouTrack is an innovative, web-based, keyboard-centric issue and project
Executive Summary On IronWASP
Executive Summary On IronWASP CYBER SECURITY & PRIVACY FOUNDATION 1 Software Product: IronWASP Description of the Product: IronWASP (Iron Web application Advanced Security testing Platform) is an open
A Comparison of Service-oriented, Resource-oriented, and Object-oriented Architecture Styles
A Comparison of Service-oriented, Resource-oriented, and Object-oriented Architecture Styles Jørgen Thelin Chief Scientist Cape Clear Software Inc. Abstract The three common software architecture styles
ASP.NET Using C# (VS2012)
ASP.NET Using C# (VS2012) This five-day course provides a comprehensive and practical hands-on introduction to developing applications using ASP.NET 4.5 and C#. It includes an introduction to ASP.NET MVC,
Web-Application Security
Web-Application Security Kristian Beilke Arbeitsgruppe Sichere Identität Fachbereich Mathematik und Informatik Freie Universität Berlin 29. Juni 2011 Overview Web Applications SQL Injection XSS Bad Practice
Design and Functional Specification
2010 Design and Functional Specification Corpus eready Solutions pvt. Ltd. 3/17/2010 1. Introduction 1.1 Purpose This document records functional specifications for Science Technology English Math (STEM)
PHP FRAMEWORK FOR DATABASE MANAGEMENT BASED ON MVC PATTERN
PHP FRAMEWORK FOR DATABASE MANAGEMENT BASED ON MVC PATTERN Chanchai Supaartagorn Department of Mathematics Statistics and Computer, Faculty of Science, Ubon Ratchathani University, Thailand [email protected]
Category: Business Process and Integration Solution for Small Business and the Enterprise
Home About us Contact us Careers Online Resources Site Map Products Demo Center Support Customers Resources News Download Article in PDF Version Download Diagrams in PDF Version Microsoft Partner Conference
CAKEPHP & EXTJS - RESPONSIVE WEB TECHNOLOGIES
CAKEPHP & EXTJS - RESPONSIVE WEB TECHNOLOGIES Davor Lozić, Alen Šimec Tehničko veleučilište u Zagrebu Sažetak Ovaj rad prikazuje današnje, moderne tehnologije za responzivni web. Prikazuje način na koji
Web Development. Owen Sacco. ICS2205/ICS2230 Web Intelligence
Web Development Owen Sacco ICS2205/ICS2230 Web Intelligence Brief Course Overview An introduction to Web development Server-side Scripting Web Servers PHP Client-side Scripting HTML & CSS JavaScript &
Front-End Performance Testing and Optimization
Front-End Performance Testing and Optimization Abstract Today, web user turnaround starts from more than 3 seconds of response time. This demands performance optimization on all application levels. Client
Web applications. Web security: web basics. HTTP requests. URLs. GET request. Myrto Arapinis School of Informatics University of Edinburgh
Web applications Web security: web basics Myrto Arapinis School of Informatics University of Edinburgh HTTP March 19, 2015 Client Server Database (HTML, JavaScript) (PHP) (SQL) 1 / 24 2 / 24 URLs HTTP
WebObjects Web Applications Programming Guide. (Legacy)
WebObjects Web Applications Programming Guide (Legacy) Contents Introduction to WebObjects Web Applications Programming Guide 6 Who Should Read This Document? 6 Organization of This Document 6 See Also
Ruby on Rails is a web application framework written in Ruby, a dynamically typed programming language The amazing productivity claims of Rails is
Chris Panayiotou Ruby on Rails is a web application framework written in Ruby, a dynamically typed programming language The amazing productivity claims of Rails is the current buzz in the web development
A Comparison of Open Source Application Development Frameworks for the Enterprise
A Comparison of Open Source Application Development Frameworks for the Enterprise Webinar on March 12, 2008 Presented by Kim Weins, Sr. VP of Marketing at OpenLogic and Kelby Zorgdrager, President of DevelopIntelligence
Base One's Rich Client Architecture
Base One's Rich Client Architecture Base One provides a unique approach for developing Internet-enabled applications, combining both efficiency and ease of programming through its "Rich Client" architecture.
Short notes on webpage programming languages
Short notes on webpage programming languages What is HTML? HTML is a language for describing web pages. HTML stands for Hyper Text Markup Language HTML is a markup language A markup language is a set of
Client vs. Server Implementations of Mitigating XSS Security Threats on Web Applications
Journal of Basic and Applied Engineering Research pp. 50-54 Krishi Sanskriti Publications http://www.krishisanskriti.org/jbaer.html Client vs. Server Implementations of Mitigating XSS Security Threats
Database Management System Choices. Introduction To Database Systems CSE 373 Spring 2013
Database Management System Choices Introduction To Database Systems CSE 373 Spring 2013 Outline Introduction PostgreSQL MySQL Microsoft SQL Server Choosing A DBMS NoSQL Introduction There a lot of options
A review and analysis of technologies for developing web applications
A review and analysis of technologies for developing web applications Asha Mandava and Solomon Antony Murray state University Murray, Kentucky Abstract In this paper we review technologies useful for design
Lotus Domino Security
An X-Force White Paper Lotus Domino Security December 2002 6303 Barfield Road Atlanta, GA 30328 Tel: 404.236.2600 Fax: 404.236.2626 Introduction Lotus Domino is an Application server that provides groupware
Advanced Web Application Development using Microsoft ASP.NET
Course Outline Other Information MS2311 Days 3 Starting Time 9:00 Finish Time 4:30 Lunch & refreshments are included with this course. Advanced Web Application Development using Microsoft ASP.NET Course
Dynamic Web Programming BUILDING WEB APPLICATIONS USING ASP.NET, AJAX AND JAVASCRIPT
Dynamic Web Programming BUILDING WEB APPLICATIONS USING ASP.NET, AJAX AND JAVASCRIPT AGENDA 1. Introduction to Web Applications and ASP.net 1.1 History of Web Development 1.2 Basic ASP.net processing (ASP
DTWMS Required Software Engineers. 1. Senior Java Programmer (3 Positions) Responsibilities:
DTWMS Required Software Engineers 1. Senior Java Programmer (3 Positions) Responsibilities: Responsible to deliver quality software solutions using standard end to end software development cycle Collaborate
EC-Council CAST CENTER FOR ADVANCED SECURITY TRAINING. CAST 619 Advanced SQLi Attacks and Countermeasures. Make The Difference CAST.
CENTER FOR ADVANCED SECURITY TRAINING 619 Advanced SQLi Attacks and Countermeasures Make The Difference About Center of Advanced Security Training () The rapidly evolving information security landscape
Performance Evaluation of PHP Frameworks (CakePHP and CodeIgniter) in relation to the Object-Relational Mapping, with respect to Load Testing
This thesis is submitted to the School of Computing at Blekinge Institute of Technology in Master s Thesis partial fulfillment of the requirements for the degree of Master of Science in Computer Science.
Basic & Advanced Administration for Citrix NetScaler 9.2
Basic & Advanced Administration for Citrix NetScaler 9.2 Day One Introducing and deploying Citrix NetScaler Key - Brief Introduction to the NetScaler system Planning a NetScaler deployment Deployment scenarios
http://alice.teaparty.wonderland.com:23054/dormouse/bio.htm
Client/Server paradigm As we know, the World Wide Web is accessed thru the use of a Web Browser, more technically known as a Web Client. 1 A Web Client makes requests of a Web Server 2, which is software
A SURVEY OF CLOUD COMPUTING: NETWORK BASED ISSUES PERFORMANCE AND ANALYSIS
A SURVEY OF CLOUD COMPUTING: NETWORK BASED ISSUES PERFORMANCE AND ANALYSIS *Dr Umesh Sehgal, #Shalini Guleria *Associate Professor,ARNI School of Computer Science,Arni University,[email protected]
Lecture 11 Web Application Security (part 1)
Lecture 11 Web Application Security (part 1) Computer and Network Security 4th of January 2016 Computer Science and Engineering Department CSE Dep, ACS, UPB Lecture 11, Web Application Security (part 1)
Web Application Hacking (Penetration Testing) 5-day Hands-On Course
Web Application Hacking (Penetration Testing) 5-day Hands-On Course Web Application Hacking (Penetration Testing) 5-day Hands-On Course Course Description Our web sites are under attack on a daily basis
A Tool for Evaluation and Optimization of Web Application Performance
A Tool for Evaluation and Optimization of Web Application Performance Tomáš Černý 1 [email protected] Michael J. Donahoo 2 [email protected] Abstract: One of the main goals of web application
How To Build A Web App
UNCLASSIFIED Next Gen Web Architecture for the Cloud Era Chief Scientist, Raytheon Saturn 2013 28 Apr - 3 May Copyright (2013) Raytheon Agenda Existing Web Application Architecture SOFEA Lessons learned
A Framework for Developing the Web-based Data Integration Tool for Web-Oriented Data Warehousing
A Framework for Developing the Web-based Integration Tool for Web-Oriented Warehousing PATRAVADEE VONGSUMEDH School of Science and Technology Bangkok University Rama IV road, Klong-Toey, BKK, 10110, THAILAND
Finding and Preventing Cross- Site Request Forgery. Tom Gallagher Security Test Lead, Microsoft
Finding and Preventing Cross- Site Request Forgery Tom Gallagher Security Test Lead, Microsoft Agenda Quick reminder of how HTML forms work How cross-site request forgery (CSRF) attack works Obstacles
Business Application Services Testing
Business Application Services Testing Curriculum Structure Course name Duration(days) Express 2 Testing Concept and methodologies 3 Introduction to Performance Testing 3 Web Testing 2 QTP 5 SQL 5 Load
elearning for Secure Application Development
elearning for Secure Application Development Curriculum Application Security Awareness Series 1-2 Secure Software Development Series 2-8 Secure Architectures and Threat Modeling Series 9 Application Security
MEng, BSc Applied Computer Science
School of Computing FACULTY OF ENGINEERING MEng, BSc Applied Computer Science Year 1 COMP1212 Computer Processor Effective programming depends on understanding not only how to give a machine instructions
Rails Cookbook. Rob Orsini. O'REILLY 8 Beijing Cambridge Farnham Koln Paris Sebastopol Taipei Tokyo
Rails Cookbook Rob Orsini O'REILLY 8 Beijing Cambridge Farnham Koln Paris Sebastopol Taipei Tokyo Table of Contents Foreword : ; xi Preface ; ;... xiii 1. Getting Started 1 1.1 Joining the Rails Community
Web App Security Audit Services
locuz.com Professional Services Web App Security Audit Services The unsecured world today Today, over 80% of attacks against a company s network come at the Application Layer not the Network or System
