This article is for the beginners who do not have much idea about MVC. As a beginner all you’ll be knowing is that MVC is a pattern but how do we develop applications using this MVC pattern.
So before understanding what MVC is lets understand first what ASP.NET is?
ASP.NET supports 3 development models:
- Web Pages
- Web Form
MVC (Model View Controller):
MVC is one of the development models of ASP.NET.
- The Model represents the data of application (database records)
- The View displays the data
- The controller handles the flow of data
MVC Model defines application within 3 logic layers.
- Input logic(Controller handles Input Logic)
- Business Logic(Model handles logic of application data)
- UI Logic(View display the application data)
I. This part of application manages data of the application or state of data, i.e. basically model object retrieves data from database.
II. There is no fixed size or shape of model object because data of one application may not be same as other application.
III. It includes Validation logic, business logic and data access logic of an application
E.g. Student object (Model) might retrieves information from database, do some operation on it, validate it and then update information back to Student table in database.
This part of application controls the flow of application data. Basically it reads from a view, control user input and sends data to model.
This part of application display the data, basically it creates UI for data from model and display the data
E.g.: Edit View for Student table that displays textboxes, dropdown list and checkbox on the current state of a Student object.
I. MVC helps in managing complex task by focusing on one aspect at time, a developer can work on model without depending on views or controller.
II. Separating the view from rest of application logic enables changing of view technology in future without affecting the rest of the application.
E.g. Client might want view in Silverlight or HTML5
MVC vs Traditional Web Form:
I. It is lighter than Web from because it does not use view state or server based forms or server controls.
II. It provides better support for test-driven development (TDD)
III. It has integrated with all existing Asp.net features like Routing, Master Page, Security and Authentication.
So I hope this article has given you a brief idea about what exactly ASP.NET MVC is…..