In this tip, I will explain what is MVC and how it is different from web forms. I will start a series of learning MVC soon.
What is MVC?
Let’s start first with what is MVC?
In a general sense, MVC stands for Model-View-Controller. It is a software design pattern. It is different from MVVC pattern.
MVC is a pattern based on separation of concerns, which means that View, Model and Controller are independent of each other. As a result, working in teams, maintenance and testing of the application become simpler and easier.
So, now what is this Model, View and Controller?
Model – The
Model in MVC is a set of classes or project that describe your business logic. It represents all the business logic, like manipulating of data for your business/application, and data access operations like how you connect with database and get the data. In MVC, Model directly communicates with the
View – The
Controller and also sends back data to the
Controller. It does not communicate directly with the
Controller – The
Controller in MVC is the base of MVC architecture. Every request comes first to
Controller requests the required information from
Model and then it sends that information (data) to
View in various formats. It works as a communicator and validator between
So, now what is ASP.NET MVC and how it is different from ASP.NET Web Forms?
ASP.NET MVC is based on the MVC design pattern which provides us the facility to create an application fast, easily and full control. It is not a substitute of Web Forms but it is a new technology which keeps you updated with new web technologies like HTML5, Ajax, Web API, SignalR, OAuth, Identity 2.0, etc. You don’t need to learn these in order to learn MVC but you can use them inside MVC.
So, let’s compare features of MVC and Web Form.
ASP.NET MVC vs Web Forms
|ASP.NET MVC||Web Forms|
MVC focuses on separation of concern, i.e., there is no any fixed code behind page for every view. A view can be called from multiple action.
Web form based on functions and page behind code, i.e., there is code behind page for each view. You have to write code in that class related to this view only.
|2||First request comes to controller and action, then view gets called.||First request comes to Page (View) then it will go to code behind page.|
|3||MVC provides HTML Helpers to create form controls. This is optional. You can use simple HTML controls also.||For everything in webforms, you have a server control.|
|4||There is no viewstate for state management in View.||
|5||Good for SEO friendly urls. No need to map to existing physical files.||Not that good for friendly URLs. File must have to exist physically.|
|6||We create partial views for reusable views.||We create user controls for reusable view or control.|
|8||Maintaining Id of form controls are easy and you can fully control them when working with Jquery.||It is difficult to mange Id of server controls, you don’t know adject id of server controls most of the time. Specially working with user controls.|
There are many other differences related to architecture because MVC gets created from scratch. Although it is inherited from the same library
Sysyem.Web, it has all the functionalities which we have earlier.
If you are developing a new application, then definitely go with ASP.NET MVC because it will give all the flexibility you need for current and future web development. It supports very well with EntityFrameWork, WebAPI, OAuth, SignalR, Jquery, Ajax, AngularJs, CSS and other latest technologies.