fbpx
Wikipedia

Web framework

A web framework (WF) or web application framework (WAF) is a software framework that is designed to support the development of web applications including web services, web resources, and web APIs. Web frameworks provide a standard way to build and deploy web applications on the World Wide Web. Web frameworks aim to automate the overhead associated with common activities performed in web development. For example, many web frameworks provide libraries for database access, templating frameworks, and session management, and they often promote code reuse.[1] Although they often target development of dynamic web sites, they are also applicable to static websites.[2]

History

As the design of the World Wide Web was not inherently dynamic, early hypertext consisted of hand-coded HTML text files that were published on web servers. Any modifications to published pages needed to be performed by the pages' author. In 1993, the Common Gateway Interface (CGI) standard was introduced for interfacing external applications with web servers, to provide a dynamic web page that reflected user inputs.[3]

Original implementations of the CGI interface typically had adverse effects on the server load however, because each request started a separate process.[4] More recent implementations utilize persistent processes amongst other techniques to reduce the footprint in the server's resources and offer a general performance boost.[citation needed]

In 1995, fully integrated server/language development environments first emerged and new web-specific languages were introduced, such as ColdFusion, PHP, and Active Server Pages.[citation needed]

Although the vast majority of languages for creating dynamic web pages have libraries to help with common tasks, web applications often require specific libraries for particular tasks, such as creating HTML (for example, Jakarta Server Faces).[citation needed]

In the late 1990s, mature, "full stack" frameworks began to appear, that often gathered multiple libraries useful for web development into a single cohesive software stack for web developers to use. Examples of this include ASP.NET, Java EE, WebObjects, web2py, OpenACS, Catalyst, Mojolicious, Ruby on Rails, Laravel, Grails, Django, Zend Framework, Sails.js, Yii,[5] CakePHP,[6] and Symfony.[citation needed]

Types of framework architectures

Most web frameworks are based on the model–view–controller (MVC) pattern.[citation needed]

Model–view–controller (MVC)

Many frameworks follow the MVC architectural pattern to separate the data model into business rules (the "controller") and the user interface (the "view"). This is generally considered a good practice as it modularizes code, promotes code reuse, and allows multiple interfaces to be applied. In web applications, this permits different views to be presented, for example serving different web pages for mobile vs. desktop browsers, or providing machine-readable web service interfaces.

Push-based vs. pull-based

Most MVC frameworks follow a push-based architecture also called "action-based". These frameworks use actions that do the required processing, and then "push" the data to the view layer to render the results.[7] Django, Ruby on Rails, Symfony, Spring MVC, Stripes, Sails.js, CodeIgniter[8] are good examples of this architecture. An alternative to this is pull-based architecture, sometimes also called "component-based". These frameworks start with the view layer, which can then "pull" results from multiple controllers as needed. In this architecture, multiple controllers can be involved with a single view. Lift, Tapestry, JBoss Seam, Jakarta Server Faces, and Wicket are examples of pull-based architectures. Play, Struts, RIFE, and ZK have support for both push- and pull-based application controller calls.[citation needed]

Three-tier organization

In three-tier organization, applications are structured around three physical tiers: client, application, and database.[9][10][11][12] The database is normally an RDBMS. The application contains the business logic, running on a server and communicates with the client using HTTP.[13] The client on web applications is a web browser that runs HTML generated by the application layer.[14][15] The term should not be confused with MVC, where, unlike in three-tier architecture, it is considered a good practice to keep business logic away from the controller, the "middle layer".[16][17]

Framework applications

Frameworks are built to support the construction of internet applications based on a single programming language, ranging in focus from general purpose tools such as Zend Framework and Ruby on Rails, which augment the capabilities of a specific language, to native-language programmable packages built around a specific user application, such as content management systems (CMS), some mobile development tools and some portal tools.[18]

General-purpose website frameworks

Web frameworks must function according to the architectural rules of browsers and protocols such as HTTP, which is stateless. Webpages are served up by a server and can then be modified by the browser using JavaScript. Either approach has its advantages and disadvantages.[citation needed]

Server-side page changes typically require that the page be refreshed, but allow any language to be used and more computing power to be utilized. Client-side changes allow the page to be updated in small chunks which feels like a desktop application, but are limited to JavaScript and run in the user's browser, which may have limited computing power. Some mix of the two is typically used.[19] Applications which make heavy use of JavaScript and only refresh parts of the page, are called single-page applications and typically make use of a client-side JavaScript web framework to organize the code.[citation needed]

Server-side

Client-side

Examples include Backbone.js, AngularJS, Angular, EmberJS, ReactJS, jQuery UI, Svelte, and Vue.js.[20]

Discussion forums, wikis and weblogs

Features

Frameworks typically set the control flow of a program and allow the user of the framework to "hook into" that flow by exposing various events.[21] This "inversion of control" design pattern is considered to be a defining principle of a framework, and benefits the code by enforcing a common flow for a team which everyone can customize in similar ways.[21] For example, some popular "microframeworks" such as Ruby's Sinatra (which inspired Express.js) allow for "middleware" hooks prior to and after HTTP requests. These middleware functions can be anything, and allow the user to define logging, authentication and session management, and redirecting.[22]

Web template system

Caching

Web caching is the caching of web documents in order to reduce bandwidth usage, server load, and perceived "lag". A web cache stores copies of documents passing through it; subsequent requests may be satisfied from the cache if certain conditions are met. Some application frameworks provide mechanisms for caching documents and bypassing various stages of the page's preparation, such as database access or template interpretation.[citation needed]

Security

Some web frameworks come with authentication and authorization frameworks, that enable the web server to identify the users of the application, and restrict access to functions based on some defined criteria. Drupal is one example that provides role-based access to pages, and provides a web-based interface for creating users and assigning them roles.[citation needed]

Database access, mapping and configuration

Many web frameworks create a unified API to a database backend, enabling web applications to work with a variety of databases with no code changes, and allowing programmers to work with higher-level concepts. Additionally, some object-oriented frameworks contain mapping tools to provide object-relational mapping, which maps objects to tuples.[23]

Some frameworks minimize web application configuration through the use of introspection and/or following well-known conventions. For example, many Java frameworks use Hibernate as a persistence layer, which can generate a database schema at runtime capable of persisting the necessary information. This allows the application designer to design business objects without needing to explicitly define a database schema. Frameworks such as Ruby on Rails can also work in reverse, that is, define properties of model objects at runtime based on a database schema.[23]

Other features web frameworks may provide include transactional support[24] and database migration tools.[23]

URL mapping

A framework's URL mapping or routing facility is the mechanism by which the framework interprets URLs. Some frameworks, such as Drupal and Django, match the provided URL against pre-determined patterns using regular expressions, while some others use rewriting techniques to translate the provided URL into one that the underlying engine will recognize. Another technique is that of graph traversal such as used by Zope, where a URL is decomposed in steps that traverse an object graph (of models and views).[citation needed]

A URL mapping system that uses pattern matching or rewriting to route and handle requests allows for shorter more "friendly URLs" to be used, increasing the simplicity of the site and allowing for better indexing by search engines. For example, a URL that ends with "/page.cgi?cat=science&topic=physics" could be changed to simply "/page/science/physics". This makes the URL easier for people to remember, read and write, and provides search engines with better information about the structural layout of the site. A graph traversal approach also tends to result in the creation of friendly URLs. A shorter URL such as "/page/science" tends to exist by default as that is simply a shorter form of the longer traversal to "/page/science/physics".[citation needed]

AJAX

Ajax, shorthand for "Asynchronous JavaScript and XML", is a web development technique for creating web applications. The intent is to make web pages feel more responsive by exchanging small amounts of data with the server behind the scenes, so that the entire web page does not have to be reloaded each time the user requests a change. This is intended to increase a web page's interactivity, speed, maintainability, and usability.[25]

Due to the complexity of Ajax programming in JavaScript, there are numerous Ajax frameworks that exclusively deal with Ajax support. Some Ajax frameworks are even embedded as a part of larger frameworks. For example, the jQuery JavaScript library is included in Ruby on Rails.[citation needed]

With the increased interest in developing "Web 2.0" rich web applications, the complexity of programming directly in Ajax and JavaScript has become so apparent that compiler technology has stepped in, to allow developers to code in high-level languages such as Java, Python and Ruby. The first of these compilers was Morfik followed by Google Web Toolkit, with ports to Python and Ruby in the form of Pyjs and RubyJS following some time after. These compilers and their associated widget set libraries make the development of rich media Ajax applications much more akin to that of developing desktop applications.[citation needed]

Web services

Some frameworks provide tools for creating and providing web services. These utilities may offer similar tools as the rest of the web application.[26]

Web resources

A number of newer Web 2.0 RESTful frameworks are now providing resource-oriented architecture (ROA) infrastructure for building collections of resources in a sort of Semantic Web ontology, based on concepts from Resource Description Framework (RDF).[citation needed]

See also

References

  1. ^ Multiple (wiki). . Docforge. Archived from the original on 2015-07-23.
  2. ^ "Top Open-Source Static Site Generators". StaticGen.
  3. ^ . Archived from the original on 2009-04-09.
  4. ^ "CGI". www.ibm.com. Retrieved 2021-05-07.
  5. ^ "Yii PHP Framework".
  6. ^ "CakePHP".
  7. ^ Thomson, Kris (2003-10-29). "Clarification on MVC= Pull and MVC Push". Retrieved 2007-07-29.
  8. ^ "What are the fundamental differences between Struts and JSF". Struts.apache.org. 2011-02-14. Retrieved 2013-06-14.
  9. ^ Microsoft. "Three-tiered distribution". Retrieved 2011-09-19.
  10. ^ Oracle. "clustering_concepts_10en" (PDF). Retrieved 2011-09-19.
  11. ^ Robert R. Perkoski. . Archived from the original on 2013-11-07.
  12. ^ IBM. "Using Client Access Express in a three tier environment". Retrieved 2011-09-19.
  13. ^ Oracle. "Understanding the Three-Tier Architecture". Retrieved 2011-09-19.
  14. ^ Microsoft. "Pragmatic Architecture: Layering". Retrieved 2011-09-19.
  15. ^ Arokia. "3-Tier Web Architecture". Retrieved 2011-09-19.
  16. ^ . Archived from the original on 2011-10-11. Retrieved 2011-09-19.
  17. ^ Jamis Buck. . Archived from the original on 2015-05-16.
  18. ^ "Getting Started With Web Frameworks". Wired Magazine. Retrieved 2018-04-02.
  19. ^ KLIMUSHYN, Mel (6 April 2015). "Web Application Architecture – Client-Side vs. Server-Side". Atomic Spin. Retrieved 2016-03-06.
  20. ^ "AngularJS vs. Backbone.js vs. Ember.js". www.airpair.com. Retrieved 2016-06-04.
  21. ^ a b Fowler, Martin. "bliki: InversionOfControl". martinfowler.com. Retrieved 2016-03-06.
  22. ^ Xue, Qiang. "Capital One Engineering – Philosophies that Shaped Successful Frameworks". www.capitalone.io. Retrieved 2016-03-06.
  23. ^ a b c "Active Record Basics". Ruby on Rails. Retrieved March 20, 2021. Object Relational Mapping, commonly referred to as its abbreviation ORM, is a technique that connects the rich objects of an application to tables in a relational database management system...Active Record automatically creates methods to allow an application to read and manipulate data stored within its tables.
  24. ^ "Active Record Transactions". Ruby on Rails. Retrieved March 20, 2021.
  25. ^ "What is AJAX". www.dlsweb.rmit.edu.au. Retrieved 2021-05-07.
  26. ^ Maximilien, E.M. (December 19, 2006). "Web Services on Rails: Using Ruby and Rails for Web Services Development and Mashups". IEEE Xplore. Chicago. doi:10.1109/ICWS.2006.139. ISBN 0-7695-2669-1.

framework, framework, application, framework, software, framework, that, designed, support, development, applications, including, services, resources, apis, provide, standard, build, deploy, applications, world, wide, automate, overhead, associated, with, comm. A web framework WF or web application framework WAF is a software framework that is designed to support the development of web applications including web services web resources and web APIs Web frameworks provide a standard way to build and deploy web applications on the World Wide Web Web frameworks aim to automate the overhead associated with common activities performed in web development For example many web frameworks provide libraries for database access templating frameworks and session management and they often promote code reuse 1 Although they often target development of dynamic web sites they are also applicable to static websites 2 Contents 1 History 2 Types of framework architectures 2 1 Model view controller MVC 2 1 1 Push based vs pull based 2 2 Three tier organization 3 Framework applications 3 1 General purpose website frameworks 3 1 1 Server side 3 1 2 Client side 3 2 Discussion forums wikis and weblogs 4 Features 4 1 Web template system 4 2 Caching 4 3 Security 4 4 Database access mapping and configuration 4 5 URL mapping 4 6 AJAX 4 7 Web services 4 8 Web resources 5 See also 6 ReferencesHistory EditFurther information Rich web application As the design of the World Wide Web was not inherently dynamic early hypertext consisted of hand coded HTML text files that were published on web servers Any modifications to published pages needed to be performed by the pages author In 1993 the Common Gateway Interface CGI standard was introduced for interfacing external applications with web servers to provide a dynamic web page that reflected user inputs 3 Original implementations of the CGI interface typically had adverse effects on the server load however because each request started a separate process 4 More recent implementations utilize persistent processes amongst other techniques to reduce the footprint in the server s resources and offer a general performance boost citation needed In 1995 fully integrated server language development environments first emerged and new web specific languages were introduced such as ColdFusion PHP and Active Server Pages citation needed Although the vast majority of languages for creating dynamic web pages have libraries to help with common tasks web applications often require specific libraries for particular tasks such as creating HTML for example Jakarta Server Faces citation needed In the late 1990s mature full stack frameworks began to appear that often gathered multiple libraries useful for web development into a single cohesive software stack for web developers to use Examples of this include ASP NET Java EE WebObjects web2py OpenACS Catalyst Mojolicious Ruby on Rails Laravel Grails Django Zend Framework Sails js Yii 5 CakePHP 6 and Symfony citation needed Types of framework architectures EditMost web frameworks are based on the model view controller MVC pattern citation needed Model view controller MVC Edit Main article Model view controller Many frameworks follow the MVC architectural pattern to separate the data model into business rules the controller and the user interface the view This is generally considered a good practice as it modularizes code promotes code reuse and allows multiple interfaces to be applied In web applications this permits different views to be presented for example serving different web pages for mobile vs desktop browsers or providing machine readable web service interfaces Push based vs pull based Edit Most MVC frameworks follow a push based architecture also called action based These frameworks use actions that do the required processing and then push the data to the view layer to render the results 7 Django Ruby on Rails Symfony Spring MVC Stripes Sails js CodeIgniter 8 are good examples of this architecture An alternative to this is pull based architecture sometimes also called component based These frameworks start with the view layer which can then pull results from multiple controllers as needed In this architecture multiple controllers can be involved with a single view Lift Tapestry JBoss Seam Jakarta Server Faces and Wicket are examples of pull based architectures Play Struts RIFE and ZK have support for both push and pull based application controller calls citation needed Three tier organization Edit In three tier organization applications are structured around three physical tiers client application and database 9 10 11 12 The database is normally an RDBMS The application contains the business logic running on a server and communicates with the client using HTTP 13 The client on web applications is a web browser that runs HTML generated by the application layer 14 15 The term should not be confused with MVC where unlike in three tier architecture it is considered a good practice to keep business logic away from the controller the middle layer 16 17 Framework applications EditFrameworks are built to support the construction of internet applications based on a single programming language ranging in focus from general purpose tools such as Zend Framework and Ruby on Rails which augment the capabilities of a specific language to native language programmable packages built around a specific user application such as content management systems CMS some mobile development tools and some portal tools 18 General purpose website frameworks Edit Web frameworks must function according to the architectural rules of browsers and protocols such as HTTP which is stateless Webpages are served up by a server and can then be modified by the browser using JavaScript Either approach has its advantages and disadvantages citation needed Server side page changes typically require that the page be refreshed but allow any language to be used and more computing power to be utilized Client side changes allow the page to be updated in small chunks which feels like a desktop application but are limited to JavaScript and run in the user s browser which may have limited computing power Some mix of the two is typically used 19 Applications which make heavy use of JavaScript and only refresh parts of the page are called single page applications and typically make use of a client side JavaScript web framework to organize the code citation needed Server side Edit Apache Wicket ASP NET Core CakePHP Catalyst CodeIgniter CppCMS Django Flask Jam py Yii Laravel Mojolicious Ruby on Rails Sails js Symfony Spring MVC VIEwoNLY Wt web toolkit Zend FrameworkClient side Edit Main article Single page application Examples include Backbone js AngularJS Angular EmberJS ReactJS jQuery UI Svelte and Vue js 20 Discussion forums wikis and weblogs Edit WikiBase WikiWikiWeb citation needed Features EditFrameworks typically set the control flow of a program and allow the user of the framework to hook into that flow by exposing various events 21 This inversion of control design pattern is considered to be a defining principle of a framework and benefits the code by enforcing a common flow for a team which everyone can customize in similar ways 21 For example some popular microframeworks such as Ruby s Sinatra which inspired Express js allow for middleware hooks prior to and after HTTP requests These middleware functions can be anything and allow the user to define logging authentication and session management and redirecting 22 Web template system Edit Main article Web template system Caching Edit Main article Web cache Web caching is the caching of web documents in order to reduce bandwidth usage server load and perceived lag A web cache stores copies of documents passing through it subsequent requests may be satisfied from the cache if certain conditions are met Some application frameworks provide mechanisms for caching documents and bypassing various stages of the page s preparation such as database access or template interpretation citation needed Security Edit Main article Web application security Some web frameworks come with authentication and authorization frameworks that enable the web server to identify the users of the application and restrict access to functions based on some defined criteria Drupal is one example that provides role based access to pages and provides a web based interface for creating users and assigning them roles citation needed Database access mapping and configuration Edit Many web frameworks create a unified API to a database backend enabling web applications to work with a variety of databases with no code changes and allowing programmers to work with higher level concepts Additionally some object oriented frameworks contain mapping tools to provide object relational mapping which maps objects to tuples 23 Some frameworks minimize web application configuration through the use of introspection and or following well known conventions For example many Java frameworks use Hibernate as a persistence layer which can generate a database schema at runtime capable of persisting the necessary information This allows the application designer to design business objects without needing to explicitly define a database schema Frameworks such as Ruby on Rails can also work in reverse that is define properties of model objects at runtime based on a database schema 23 Other features web frameworks may provide include transactional support 24 and database migration tools 23 URL mapping Edit See also Front controller and URL redirection A framework s URL mapping or routing facility is the mechanism by which the framework interprets URLs Some frameworks such as Drupal and Django match the provided URL against pre determined patterns using regular expressions while some others use rewriting techniques to translate the provided URL into one that the underlying engine will recognize Another technique is that of graph traversal such as used by Zope where a URL is decomposed in steps that traverse an object graph of models and views citation needed A URL mapping system that uses pattern matching or rewriting to route and handle requests allows for shorter more friendly URLs to be used increasing the simplicity of the site and allowing for better indexing by search engines For example a URL that ends with page cgi cat science amp topic physics could be changed to simply page science physics This makes the URL easier for people to remember read and write and provides search engines with better information about the structural layout of the site A graph traversal approach also tends to result in the creation of friendly URLs A shorter URL such as page science tends to exist by default as that is simply a shorter form of the longer traversal to page science physics citation needed AJAX Edit Main article Ajax framework Ajax shorthand for Asynchronous JavaScript and XML is a web development technique for creating web applications The intent is to make web pages feel more responsive by exchanging small amounts of data with the server behind the scenes so that the entire web page does not have to be reloaded each time the user requests a change This is intended to increase a web page s interactivity speed maintainability and usability 25 Due to the complexity of Ajax programming in JavaScript there are numerous Ajax frameworks that exclusively deal with Ajax support Some Ajax frameworks are even embedded as a part of larger frameworks For example the jQuery JavaScript library is included in Ruby on Rails citation needed With the increased interest in developing Web 2 0 rich web applications the complexity of programming directly in Ajax and JavaScript has become so apparent that compiler technology has stepped in to allow developers to code in high level languages such as Java Python and Ruby The first of these compilers was Morfik followed by Google Web Toolkit with ports to Python and Ruby in the form of Pyjs and RubyJS following some time after These compilers and their associated widget set libraries make the development of rich media Ajax applications much more akin to that of developing desktop applications citation needed Web services Edit Main article Web service Some frameworks provide tools for creating and providing web services These utilities may offer similar tools as the rest of the web application 26 Web resources Edit Main article Web resource A number of newer Web 2 0 RESTful frameworks are now providing resource oriented architecture ROA infrastructure for building collections of resources in a sort of Semantic Web ontology based on concepts from Resource Description Framework RDF citation needed See also EditComparison of JavaScript based web frameworks client side Comparison of server side web frameworks Application server Application framework Application security Convention over configuration Don t repeat yourself DRY List of web service frameworks Rich web application obsolete List of rich web application frameworks Solution stack Mobile development frameworkReferences Edit Multiple wiki Web application framework Docforge Archived from the original on 2015 07 23 Top Open Source Static Site Generators StaticGen CGI Common Gateway Interface Archived from the original on 2009 04 09 CGI www ibm com Retrieved 2021 05 07 Yii PHP Framework CakePHP Thomson Kris 2003 10 29 Clarification on MVC Pull and MVC Push Retrieved 2007 07 29 What are the fundamental differences between Struts and JSF Struts apache org 2011 02 14 Retrieved 2013 06 14 Microsoft Three tiered distribution Retrieved 2011 09 19 Oracle clustering concepts 10en PDF Retrieved 2011 09 19 Robert R Perkoski Introduction to Web Development Archived from the original on 2013 11 07 IBM Using Client Access Express in a three tier environment Retrieved 2011 09 19 Oracle Understanding the Three Tier Architecture Retrieved 2011 09 19 Microsoft Pragmatic Architecture Layering Retrieved 2011 09 19 Arokia 3 Tier Web Architecture Retrieved 2011 09 19 ASP NET MVC Controller Best Practices Archived from the original on 2011 10 11 Retrieved 2011 09 19 Jamis Buck Skinny Controller Fat Model Archived from the original on 2015 05 16 Getting Started With Web Frameworks Wired Magazine Retrieved 2018 04 02 KLIMUSHYN Mel 6 April 2015 Web Application Architecture Client Side vs Server Side Atomic Spin Retrieved 2016 03 06 AngularJS vs Backbone js vs Ember js www airpair com Retrieved 2016 06 04 a b Fowler Martin bliki InversionOfControl martinfowler com Retrieved 2016 03 06 Xue Qiang Capital One Engineering Philosophies that Shaped Successful Frameworks www capitalone io Retrieved 2016 03 06 a b c Active Record Basics Ruby on Rails Retrieved March 20 2021 Object Relational Mapping commonly referred to as its abbreviation ORM is a technique that connects the rich objects of an application to tables in a relational database management system Active Record automatically creates methods to allow an application to read and manipulate data stored within its tables Active Record Transactions Ruby on Rails Retrieved March 20 2021 What is AJAX www dlsweb rmit edu au Retrieved 2021 05 07 Maximilien E M December 19 2006 Web Services on Rails Using Ruby and Rails for Web Services Development and Mashups IEEE Xplore Chicago doi 10 1109 ICWS 2006 139 ISBN 0 7695 2669 1 Retrieved from https en wikipedia org w index php title Web framework amp oldid 1146176403, wikipedia, wiki, book, books, library,

article

, read, download, free, free download, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, picture, music, song, movie, book, game, games.