Learning MVC-Part 1
Introductionto MVC Architecture and Separationof Concerns
Introduction:
After having gone through numerous of blogs and articles, I came to a
conclusion that very few of the genuine writers haveexplained the topic from
basics to its details in a full-fledged way with a working application. My effort in
this MVC articles series would be to cover almost all the aspects of MVC
starting from creating simple app and connecting with the databasewith
various Microsoftproviders. We’llbe gradually moving forward partby part to understand and
practically implement all the scenarios.
Road Map:
Part1: Introduction to MVC architecture and Separation of Concerns.
Part 2: Creating MVC Application from scratch and connecting it with databaseusing LINQ to
SQL.
Part 3: Connecting the MVC Application with the help of EntityFramework DB-Firstapproach.
Part 4: Connecting the MVC Application with the help of EntityFramework Code-First
approach.
Part 5: Implementing Repository Pattern in MVC Application with EntityFramework.
Part 6: Implementing a generic Repository Pattern and Unit Of Work pattern in MVC
Application with EntityFramework.
All set, now wecan start our journey with Part1.
Part1: Introduction to MVC architecture and Separation of Concerns.
Topics to be covered:
1. What does MVC mean.
2. Understand MVC Architecture.
3. Separation of Concerns
Players:
Model: The business entity on which the overallapplication operates. Many applications usea
persistentstorage mechanism(such as a database) to storedata. MVC does not specifically
mention the data access layer becauseit is understood to be encapsulated by the Model.
View: The user interface that renders the model into a formof interaction.
Controller: Handles a request froma view and updates the model that results a change in
Model’s state.
To implement MVC in .NET weneed mainly three classes (View, Controller and the Model).
MVC Architecture:
The choice of MVC comes when wego for a solution where separation of concerns, ease
of maintainability and extensibility of an application matters a lot. As per the architecture
given below, we can see the request-responseflow of a MVC application.
The architecture is self explanatory in itself. Browser as usualsends a requestto IIS,IIS
searches for the route defined in MVC application and passes requestto the controller as per
route, the controller communicates with model and passes the populated model(entity) to
View(frontend), Views are populated with model properties, and are rendered on the
browser, passing theresponseto browser through IISvia controllers which invoked the
particular View.
Separation of Concern:
As per Wikipedia 'the process of breaking a computer programinto distinct features that
overlap in functionality as little as possible'. MVC design pattern aims to separatecontent
frompresentation and data-processing fromcontent. Theoretically well, but where do wesee
this in MVC? Oneis reasonably clear - between the data-processing (Model) and the restof the
application.
When we talk about Views and Controllers, their ownership itself explains separation.The
views are justthe presentation formof an application, it does not haveto know specifically
about the requests coming fromcontroller. The Model is independent of View and Controllers,
it only holds business entities that can be passed to any View by controller as per need of
exposing them to end user.Thecontroller in independent of Views and Models, its sole
purposeis to handle requests and pass it on as per the routes defined and as per need of
rendering views.Thus our business entities(model), business logic(controllers) and
presentation logic(views) lie in logical/physical layers independent of each other.
Conclusion:
Now we know why and whereto useMVC, in another partof learning MVC we’ll be creating a
MVC application fromscratch, exploring the practical implementation of MVC.

IntroductionToMVC

  • 1.
    Learning MVC-Part 1 IntroductiontoMVC Architecture and Separationof Concerns Introduction: After having gone through numerous of blogs and articles, I came to a conclusion that very few of the genuine writers haveexplained the topic from basics to its details in a full-fledged way with a working application. My effort in this MVC articles series would be to cover almost all the aspects of MVC starting from creating simple app and connecting with the databasewith various Microsoftproviders. We’llbe gradually moving forward partby part to understand and practically implement all the scenarios. Road Map: Part1: Introduction to MVC architecture and Separation of Concerns. Part 2: Creating MVC Application from scratch and connecting it with databaseusing LINQ to SQL. Part 3: Connecting the MVC Application with the help of EntityFramework DB-Firstapproach. Part 4: Connecting the MVC Application with the help of EntityFramework Code-First approach. Part 5: Implementing Repository Pattern in MVC Application with EntityFramework. Part 6: Implementing a generic Repository Pattern and Unit Of Work pattern in MVC Application with EntityFramework. All set, now wecan start our journey with Part1.
  • 2.
    Part1: Introduction toMVC architecture and Separation of Concerns. Topics to be covered: 1. What does MVC mean. 2. Understand MVC Architecture. 3. Separation of Concerns Players: Model: The business entity on which the overallapplication operates. Many applications usea persistentstorage mechanism(such as a database) to storedata. MVC does not specifically mention the data access layer becauseit is understood to be encapsulated by the Model. View: The user interface that renders the model into a formof interaction. Controller: Handles a request froma view and updates the model that results a change in Model’s state. To implement MVC in .NET weneed mainly three classes (View, Controller and the Model). MVC Architecture: The choice of MVC comes when wego for a solution where separation of concerns, ease of maintainability and extensibility of an application matters a lot. As per the architecture given below, we can see the request-responseflow of a MVC application. The architecture is self explanatory in itself. Browser as usualsends a requestto IIS,IIS searches for the route defined in MVC application and passes requestto the controller as per route, the controller communicates with model and passes the populated model(entity) to View(frontend), Views are populated with model properties, and are rendered on the
  • 3.
    browser, passing theresponsetobrowser through IISvia controllers which invoked the particular View. Separation of Concern: As per Wikipedia 'the process of breaking a computer programinto distinct features that overlap in functionality as little as possible'. MVC design pattern aims to separatecontent frompresentation and data-processing fromcontent. Theoretically well, but where do wesee this in MVC? Oneis reasonably clear - between the data-processing (Model) and the restof the application. When we talk about Views and Controllers, their ownership itself explains separation.The views are justthe presentation formof an application, it does not haveto know specifically about the requests coming fromcontroller. The Model is independent of View and Controllers, it only holds business entities that can be passed to any View by controller as per need of exposing them to end user.Thecontroller in independent of Views and Models, its sole purposeis to handle requests and pass it on as per the routes defined and as per need of rendering views.Thus our business entities(model), business logic(controllers) and presentation logic(views) lie in logical/physical layers independent of each other. Conclusion: Now we know why and whereto useMVC, in another partof learning MVC we’ll be creating a MVC application fromscratch, exploring the practical implementation of MVC.