Microsoft MVC 5 is a standard design pattern that many developers are familiar with. Some types of Web applications will benefit from the MVC 5 framework. Others will continue to use the traditional ASP.NET application pattern that is based on Web Forms and postbacks. Other types of Web applications will combine the two approaches, but neither approach excludes the other.

MVC 5 was released in October of 2013, although we still support and work with MVC 3 and MVC 4.

The Model-View-Controller (MVC) architectural pattern separates an application into three main components: the model, the view, and the controller.


Microsoft MVC Concepts

Models

Model objects are the parts of the application that implement the logic for the application’s data domain. Often, model objects retrieve and store model state in a database. For example, a Product object might retrieve information from a database, operate on it, and then write updated information back to a Products table in a SQL Server database.

The logic drives performance

Views

Views are the components that display the application’s user interface (UI). Typically, this UI is created from the model data. For example, an edit view of a Products table that displays text boxes, drop-down lists, and check boxes based on the current state of a Product object.

How you see your data is vital

Controllers

Controllers 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.

User interaction is how it all comes together

What is ASP Web Application Development with MVC 5

ASP.NET MVC 5 is a powerful, pattern-based method of building dynamic websites that enable separation of concerns that gives you full control over markup for agile development. ASP.NET MVC 5 includes many features that enable fast, TDD-friendly development for creating sophisticated applications that use the latest web standards.

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, which are simulated objects that imitate the behavior of actual objects in the application. You can unit-test the application without having to run the controllers in an ASP.NET process, which makes unit testing fast and flexible. You can use any unit-testing framework that is compatible with the .NET Framework.

It makes it easier to manage complexity by dividing an application into the model, the view, and the controller.

In addition to managing complexity, the MVC 5 pattern makes it easier to test applications than it is to test a Web Forms-based ASP.NET Web application.

It works well for Web applications that are supported by large teams of developers and for Web designers who need a high degree of control over the application behavior.

Extensive support for ASP.NET routing, which is a powerful URL-mapping component that lets you build applications that have comprehensible and searchable URLs. URLs do not have to include file-name extensions, and are designed to support URL naming patterns that work well for search engine optimization (SEO) and representational state transfer (REST) addressing.