The Model-View-Controller (MVC) architectural pattern separates an application into three main components namely the model, the view and the controller. The ASP.NET MVC framework is a very lightweight framework and it is also integrated with existing ASP.NET features such as master pages.
The MVC framework is defined in the System.Web.Mvc assembly.
They are part of application’s data domain. Often, model objects retrieve and store model state in a database.
They are the components that display the application’s user interface (UI). This UI is created from the model data.
They are the components that handle user interaction, work with the model, and ultimately select a view to render that displays UI.
In an MVC application, the view only displays information; the controller handles and responds to user input and interaction. For example, the controller handles query-string values, and passes these values to the model, which in turn might use these values to query the database.
1. Since application components are divided into 3 i.e the model, the view, and the controller, It makes it easier to manage complexity.
2. It does not use view state or server-based forms.
3. It enables you to design an application that supports a rich routing infrastructure.
4. It provides better support for test-driven development (TDD).
5. It is ideal for large teams of developers and for Web designers who need a high degree of control over the application behaviour.
1. Separation of application tasks (input logic, business logic, and UI logic), testability, and test-driven development (TDD). All core contracts in the MVC framework are interface-based and can be tested by using mock objects
2. An extensible and pluggable framework.
3. Extensive support for ASP.NET routing.
4. You can use existing ASP.NET features with the ASP.NET MVC framework, such as nested master pages, in-line expressions (<%= %>), declarative server controls, templates, data-binding, localization, and so on.
5. Support for existing ASP.NET features such as forms authentication and Windows authentication, membership and roles, output and data caching, session management etc.