In the modern web development, web framworks ( simply say frameworks) play a major role. These frameworks provide a lot of comfortable to developers.
In this article, I will tell the following points:
- What are web frameworks?
- Why do we need frameworks?
- How do they work?
- Which are the popular frameworks?
What are web frameworks?
According to wikipedia.org, A web application framework (WAF) is a software framework that is designed to support the development of dynamic websites, web applications, web services and web resources. The framework aims to alleviate the overhead associated with common activities performed in web development. For example, many frameworks provide libraries for database access, templating frameworks and session management, and they often promote code reuse.
For newbies this definition will be abstract to understand frameworks. Frameworks are collection of libraries which provide a number of functions to the users to develop a web application very quickly with minimum affords. In simple words they save your time by providing common things that are required for any application. The frameworks also focus on the crucial part of web development just like security and code efficiency. The frameworks take care of reusability and portability of code. Portability means you can extend the code for any purpose but you need not to read/change the code of framework. Usually they are not built for specific purposes so users/developers have options to write their own functions also.
Why do we need frameworks?
We do not need frameworks for all types of applications. Consider the time of 90’s when there was not any framework. At that time the web applications were also not so complicated. Even now we do not require any framework for any simple website. But for complicated and huge projects, using a framework is a good idea.
When you make a web application, you usually don’t do (or at least – you shouldn’t do) everything from scratch. Some parts of the code are very similar across the application, and you can see that you write many things in a very similar way. If you take this “shared” code and design concepts you are using and make a reusable library from it, you get a framework. Then you can put it into your new project and speed up it, because many parts are already done and ready to use. Of course, most of such home-made frameworks will simply suck, especially if you have no experience, but technically speaking they are still frameworks.
The idea of “professional” frameworks is similar, but of course they are well-designed, well-tested, flexible and provide lots of features for different purposes. They give you pieces of a complete code, tools, automatic code generators and some techniques and you build a web application using them, just like building a house from ready bricks.
If you do use a framework, you’ll be able to benefit from the good, usually peer-reviewed and very well tested work of dozens if not hundreds of other developers, who may well be better than you. You’ll get to build what you want rapidly, without having to spend time building or worrying too much about the infrastructure items.
How do they work?
There are a lot of frameworks with their unique identities. Frameworks have these distinguishing features that separate them from libraries or normal user applications:
- Inversion of control – In a framework, unlike in libraries or normal user applications, the overall program’s flow of control is not dictated by the caller, but by the framework.
- Default behavior – A framework has a default behavior. This default behavior must actually be some useful behavior and not a series of no-ops.
- Extensibility – A framework can be extended by the user usually by selective overriding or specialized by user code providing specific functionality.
- Non-modifiable framework code – The framework code, in general, is not allowed to be modified. Users can extend the framework, but not modify its code.
Basically frameworks can be divided in two categories: front-end frameworks and back-end frameworks.
Front End Frameworks are mainly based on HTML, CSS and JS. These frameworks provide attractive UI for user side design. Bootstrap and Angular JS are famous examples of this catagory. These frameworks have predefined classes, ids and java script functions for most popular web designs. The developers can use them directly.
Back End Frameworks are most important specially when you are going to develop a complicated website full of modern technologies. These frameworks help by saving a lot of time.
Which are the popular frameworks?
Here is list of popular frameworks: