Web Application Framework
A web application framework or web framework is a software framework that is designed for the development of dynamic websites, web applications or web services. This repetitive tasks code reuse and the self-documentation of software development can be simplified encouraged.
The capabilities of a web frameworks are designed to rapidly achieve and create executable Web applications results.
These offer today's web frameworks database access (usually via an object- relational mapping ), templating mechanisms, a clean separation of presentation and code by using the Model-View- Controller architectural pattern as, and often also opportunities for rapid prototyping by scaffolding.
Some web frameworks offer a database access. For easy handling, it is often an object- relational mapper that takes care of the persistence and offers ready-made classes to use. This can be explicit, such as in Django, or done but also implicitly via introspection, such as Ruby on Rails.
The database access from the GUI out is generally regarded controversial in computer science. The frequently encountered strict layered architecture with three layers, for example, prohibits general access from the presentation layer to the persistence layer. Even the commonly used in web frameworks MVC pattern does not allow database access from the GUI out ( but only on the model ).
A web framework also usually provides the ability to control the display via a template engine. These HTML pages are generated on demand, which are filled with dynamic content. At this point can also usually be separated between static and dynamic content, so that about a designer defines the look, by designing a template that fills the application developer with data. The syntax of the template languages is most similar to HTML or expanded this only slightly.
Scaffolding ( in German scaffolding) supports the developer by generating CRUD Pages ( Create- Read- Update - Delete) in the development and prototyping. This makes it possible to offer directly from the design of a model as a Web interface can be via the data immediately entered and managed in the database. In this way, can already be developed and tested with sample data. The administrative views ( admin interface) of a Web application can be partly generated with scaffolding, as these often only basic controls need.
Through the implementation of concepts such as Do not repeat yourself, or KISS Convention over configuration simple, clear and maintainable with minimal effort structures are available that support development teams.