This section is a continuation of our journey of learning ASP.NET Core 2.0 fundamentals that we started in the previous chapter. We will (re)visit the fundamentals, so that we can use them correctly while coding the app. In this section, we will take a quick lap around MVC and we will further discuss routing, filters, error handling, and so on. Let's start with MVC.
MVC stands for Model-View-Controller. The intent of this pattern is to achieve separation of concerns. In general terms, we can draw an analogy of MVC with "Division of labour". In this architectural pattern, the application is divided into three distinct components: the Model, the View, and the Controller. When a user requests a resource in the server, it is routed to a Controller which works with the Model to perform user actions and/or CRUD (Create, Read, Update, Delete) operations. The Controller then chooses the View to display the user interface to the user, and provides...