In case you have considerable experience in ASP.NET development, much of the knowledge and expertise would come handy during the creation of Model View Controller application. Since MVC is a component of the .NET framework, most of the interfaces, class and namespaces can be utilized in these applications. Here we will discuss the positive aspects of both Web Forms as well as MVC models.
An overview of web forms
Web forms were introduced to solve great many problems for web developers through creation of abstraction of a higher level over stateless web as well as simulated stateful model. Concepts such as ViewState, which helps in maintenance of control values at the time of postbacks, along with self postback, which facilitates posting of form data within same page, were introduced. The striking aspect is that not a single line of code needs to be written. The Visual Basic model is brought back into web by Microsoft. Let us examine the major strengths:
1. Event Model: An event-oriented programming style is supported which is similar to Windows applications. A number of events are available. Moreover, there are server controls to render support to these.
2. State Management: The intricacy of managing state is reduced through the use of server-based controls and view state.
3. Page-oriented architecture: Here we have an architecture which merges a page having declarative markup (in fact an .aspx file) along with a code-behind file which includes functionality. This structure makes room for convenient creation of pages which implement common tasks like markup rendering from server code and responding to user gestures.
4. Extensive set of controls: A plethora of server controls as well as components that help in the reduction of development time are provided by the .NET web development community.
A glance at MVC
ASP.NET MVC is one of Microsoft’s web application framework developed with separation of concerns as well as testability in mind. It is designed on CLR and entirely revolves around MVC architecture. There is no support for ViewState or server controls. The strengths are as follows:
I. Separation of concerns: A “separation of concerns” is enforced, which facilitates the division of the application into loosely-bound and discrete parts, incorporating the view, model and controller components of the application. In this way, testing and maintenance of MVC applications becomes more convenient.
II. Enhanced control for rendered HTML: Significant boost of control for rendered HTML is realized.
III. Test-oriented development: With MVC, it is easier to go for test driven development. An MVC project as well as its test project can be created simultaneously. Following this, unit tests can be designed with respect to every action method within the application, and they can be run without the need to invoke the web application’s total request cycle.
ASP.NET framework aspects in sync with MVC
MVC and web forms might appear to be distinct technologies. However, both these technologies are developed across the ASP.NET framework. As a result, most features utilized in the development of web forms are also available for Model View Controller application design. This incorporates features like authentication, membership, configuration and roles, which work in an identical manner in both categories of apps. Most of the interfaces, classes and namespaces can be utilized in an MVC app.
ASP.NET framework aspects that are not in line with MVC
Since in case of Model View Controller, state information is not maintained by utilization of view state, other ways need to be sought for state information management, if the same is required. In addition to this, server controls relying on postback and viewstate would not operate as designed for an MVC application. So, controls like Repeater, GridView as well as DataList controls should not be used. In case of a Web Forms page, the life cycle is complex, incorporating a number of events. Model View Controller application does not render support to such events since the interactions between the view, model and controller utilize distinct life-cycle models.