Frameworks: Compare Hosting
Oops! No Hosting Plans Match Your Search
You've selected a combination of features that none of the web hosts we profile offer. We suggest you remove your last filter or reset & start again.
Ask Our Experts
Need help with your hosting? Tell us exactly what you are looking for and we’ll do our very best to help. Please allow one working day for a response.
Please fill in all fields.
Thanks! Your request has been sent. We'll reply within 24 hours.
Framework Options and Hosting
A web application framework is a generic web-based software application which is extended and modified by developers to create a specific application.
The framework provides generic functionality, built-in solutions to a number of common programming problems, a structure for organizing code, and a development philosophy or architectural paradigm.
Most software applications have a number of very similar features or functionalities. This is especially true of web applications:
- URL routing
- Templating / View
- Database interaction
- Form controls
- DOM manipulation
- Asynchronous requests
- Input validation
- User management
- Session management
This is even more the case when dealing with web applications within a certain domain. For example, all eCommerce applications have to deal with payment processing, security, product management, and pricing. Every content management system has to deal with authors, content editing, comments, categories, media uploading, and menus.
In most business cases, there’s very little sense in spending the time and money to develop all these functions over and over again. It is a better use of programming resources to focus on new features and business-specific functions.
A good application development framework solves most of these problems so that they don’t have to be dealt with by the application developers. This not only saves time, but it also usually ensures that those low-level foundational features are well-built and tested in production.
Frameworks and Architecture
An application development framework is more than a series of boilerplate libraries. It isn’t just an assemblage of tools. Rather, it is a generic form of an application, which is made specific by a development team. (Somewhat analogous to an abstract class being subclassed.)
The result of this is that application frameworks necessarily impose an architectural paradigm and sometimes a development philosophy. Some developers consider this imposition a reason not to use a framework, but actually it is precisely their most important benefit.
Providing an architectural structure eliminates the need to decide how the various parts of the application are going to work together. It promotes a well-designed organization of code and a sensible separation of concerns. It saves coders from arbitrary decisions about where to place certain types of logic.
Model View Controller
Most web application frameworks follow some version of the Model-View-Controller architecture pattern. This is one of the simplest and most fundamental architectural patterns and is particularly well-suited to the web, which is essentially a network of user-interface clients.
Model-View-Controller, or MVC, is a way of organizing an application into three distinct areas of concern:
- Model — The data structure.
- View — The formatted output to a user.
- Controller — The connection between Model and View, and application logic.
The Model defines the data schema. It usually takes the form of a series of classes which specify the main items of interest to the application. For example: people, blog posts, orders, products, stores. In most web application frameworks, the Model classes are used to generate the database structure, and an underlying framework class (often called
ActiveRecord) communicates with the database. This provides a layer of abstraction, which allows many frameworks to be database-agnostic.
The View is usually a set of template files which determine how specific models are displayed to the user. There is usually at least one view per model, and sometimes several — for example, if the same data might be presented in three different types of charts.
The Controller can often be broken down into two distinct parts (though this depends on the framework).
There is the application controller as a whole, which takes requests from the web server and calls models and views to fill that request. This is the original meaning of controller in MVC parlance.
There can also often be individual controllers that deal with specific types of functionality, such as a forms controller, or an email controller. In the conventional MVC paradigm, the Controller is simply the glue that holds the Model and View together. But in many real-world situations, especially with strong command-and-control requirements (robotics, dispatch, traffic management), the controller can become a very large part of the application.
Choosing a Development Framework
One of the problems in selecting a web application framework is that they tend to be fairly similar, especially at the level of textual descriptions. Most of them are MVC, most of them handle basic needs like session management, most of them promise to speed up development, most of them claim to improve developer happiness.
A big part of the reason for this is that success creates imitators. As the various framework developers have seen what the others are doing, they have each worked the best ideas into their own code. There is a convergence on excellence which makes most popular frameworks both very good and very similar.
The biggest determining factor is language. If you already know how to write PHP, you should probably use a PHP framework, rather than try to learn a new language just for the sake of using a new framework. (The big exception to that is, of course, Ruby on Rails, which has caused many people to start learning Ruby.)
Beyond that, your best bet is to actually look at some applications built using the frameworks you are considering. Has someone built something remarkably similar to what you want to build? Use the same framework. Does one framework just seem to make more sense to you than the others? Use that one.
Most frameworks provide remarkably similar features. So instead of trying to find the framework that is right, try looking for the one that is right for you.
Web Development Frameworks by Language
- PHP: CakePHP, CodeIgniter, Horde, Symfony, Yii, Zend, Zikula
- Ruby: Ruby on Rails, Lotus
- Python: Django, Flask
- Microsoft: Chili!Soft ASP, Microsoft Expression Web Support, Silverlight
Hosting Considerations: Your choice in language and framework will affect your needs in hosting. Read more about server requirements and find hosting plans that support specific frameworks:
Hosting Frequently Asked Questions
What is a Web Application Framework?
The line which distinguishes a web-site from a web application is generally determined by looking to see if an individual user has data (like a profile) which is handled by a web “application.” The application allows for interactivity between the user’s computer and the web application’s server. A Web Application Framework is the technology upon which a Web Application is built – the framework is a library of software which lives on top of a programming language.
How does a Web Application Framework work?
The Framework is essentially a library of tools which can be used to build a web application. The tools are powered and manipulated with a programming language, and certain tools can be accessed through the framework’s Application Program Interface (API). When a programmer is building a website, they will use components of the framework to handle control of features such as user login, page templates, data storage, and many other capabilities. The framework is an easy to use set of programming tools that allow developers to put a web application together quickly from parts instead of starting completely from scratch.
What does a Web Application Framework do?
A framework creates the controls which enable a web application to run in the first place. What that application does is entirely up to the administrator or developer of the application. Generally, the framework allows application construction from a single programming language, or core group of inter-related technologies. The application itself can be derived from a general purpose framework, or it can be a framework which specializes in a particular application, such as a discussion forum, Wiki system, blogging system, organization portal, or more generally – any type of Content Management System (CMS).
What types of Web Application Frameworks exist?
What is the difference between various Framework architectures?
The two most common approaches are called the Model View Controller (MVC), and the Three-Tier Organization. The MVC pattern splits the data model separate from the business rules of the site and the user-facing interface. The User makes changes which are handled by the Controller, and receives updates from the View. Deviations of the MVC model exist as well, such as the Model-View-View-Model. The Three-Tier pattern is generally more focused on data abstraction and having a tiered application. A Presentation Tier is where the site interactions occur, an Application Tier handles logic for user input/output, and the Data Tier figures out storage/retrieval of information. Framework Technologies can follow either paradigm, or only a single portion of one architecture, and figuring out the “best” architecture is a hotly contested debate.
Does the operating system matter to a Web Application Framework?
Sometimes. Most web frameworks can be made to run on either Windows of Linux/Unix, but rely on the installation of core dependencies which must be installed as pre-requisites to the Framework itself. This often comes in the form of a particular programming language, a Software Development Kit (SDK), or special compilers for deeper-level software to run. Other dependencies might include having the right database technology installed, or having a third party web server for handling HTTP communication. Frameworks built on Microsoft’s ASP.NET are made to run on Windows servers, but sometimes can be compiled too run on Linux with a tool called Mono. Most other frameworks use languages which can compile on any operating system, including JAVA, which runs somewhat independently on a Java Virtual Machine.
How does a Framework relate to a Web Server?
Sometimes the Framework comes bundled with the web server, other times, a separate web server needs to be setup in a special way to handle requests a certain way. In some cases, just running a static web server of any kind is enough, allowing the programming language of the framework itself to run independently. A Static Web Server will generally construct the URL paths based on the folder structure which the files are contained in. A dynamic server will manage web page routing, and can construct URLs based on user inputs without mapping to a storage folder of the same name. For application frameworks using the MVC approach, the web server is generally more tightly connected to the application.
How do I install a web application framework?
How do I pick the framework which is right for me?