


[ASP.NET MVC Mavericks Road] 01 - Understanding the MVC pattern
ASP.NET
MVC Mavericks Road]01 - Understanding the MVC pattern
PS: MVC has been out for a long time, but I have never had the opportunity to use it at work. Out of interest, I will carry out in-depth study of MVC after work, record what I have learned through blog posts, and hope to get corrections from fellow gardeners.
Contents of this article
Understanding the MVC pattern in a general sense
MVC pattern (Model-View-Controller) is a key concept in software engineering A software architecture pattern that divides the software system into the following three basic parts:
Model (Model): The model is used to encapsulate data related to the business logic of the application and how to process the data. A "model" has direct access to data, such as a database. The "model" does not depend on the "view" and "controller", that is, the model does not care how it will be displayed or how it will be manipulated.
View: View can achieve purposeful display of data. There is generally no procedural logic in views.
Controller (Controller): The controller plays an organizational role between different levels and is used to control the process of the application. It handles events and responds. "Events" include user behavior and changes in the data model.
The above text comes from Wikipedia. Based on the above text and my personal understanding, I drew the following diagram showing the relationship between various parts of MVC:
Note, different platforms and different languages Frameworks have different definitions of MVC, and there is no clear definition. But generally speaking, each part in the MVC model has a clear division of labor and clear definition. The logic for manipulating data exists only in the model, the logic for rendering data exists only in the view, and the logic for handling user requests and input exists only in the controller. No matter how big the application is or what stage of its life cycle it is in, this clear separation of concerns MVC pattern makes our application easier to maintain and expand.
Understanding the domain model
The domain model (Domain Model) is a visual representation of conceptual classes in the domain or objects in the real world. Also known as conceptual model, domain object model, and business object model. It focuses on analyzing the problem domain itself, discovering important business domain concepts, and establishing relationships between business domain concepts. The domain model is an object model that describes the implementation of business use cases. It is an abstraction of how business roles and business entities should be related and collaborated to perform business.
For MVC applications, the domain model is a very important part. In a certain industry, we create models based on real-world entities, related operations, and rules. For C# programs, the domain model is a set of C# types (classes, structures, etc.) that encapsulate real-world objects; some operations (or processing) on objects in the domain are methods (Methods) defined in C# types. ; Some of the rules for object operations in the field are the logical processing within the method, such as the control of reading and writing class members by the get and set methods of the attribute reader and writer in C#. For example:
For example, in the field of banking, a personal "bank account" can be built into a model. Each account has the operation of "bank card consumption", which is a method under the bank account model. "No overdraft consumption" is a constraint rule for the use of bank cards in this account. This rule is the logical processing defined within the bank card consumption method.
Although the above is a bit abstract, it is still easy to understand. My understanding of the domain model can only go so far, friends, please experience it. In short, in MVC applications, we need to have this concept: to operate data through the Model, or to add an operation, or to add or change a rule to an operation, these are all changing the domain model of the application.
Understanding MVC in ASP.NET
In summary, ASP.NET MVC has the following characteristics:
By dividing the project into model view and controller, this separation of tasks (also known as separation of concerns) makes complex projects easier to maintain and test. Driver components also make applications easier to test.
Extensible and simple framework. The mvc framework is designed to make porting and customization easier. You can add your own view engine, url rewriting strategy, overloaded action methods, etc. mvc also supports Dependency Injection (DI) and Inversion of Control (IOC). The powerful URL rewriting mechanism makes it easier for you to create understandable and searchable URLs. The url can not contain any file extension, and the url can be rewritten to make it more search engine friendly.
Support for existing asp.net programs, you can use asp.net's existing page tags, user controls, template pages, data binding, etc.
……
In ASP.NET MVC, controllers are usually classes that inherit System.Web.Mvc.Controller. Each public method of a class in a controller is called an Action method. The ASP.NET routing system internally calls the corresponding Action method based on the requested URL and routing configuration. After completing the operation of the domain model, it selects a view to present to the client. The following figure shows the relationship between Controller, Model and View in ASP.NET MVC:
In addition, the ASP.NET MVC framework can use any database supported by .NET , ORM frameworks and other tools.
For beginners, I think it’s almost enough to understand the concept of ASP.NET MVC. If you want to better understand the concept of MVC in ASP.NET, it is recommended to visit the MSDN documentation.
If you are a novice, in order to help you understand, it is recommended to make a few simple demos yourself. You can refer to another garden friend's no-nonsense MVC introductory tutorial series of blog posts.
The above is [ASP.NET MVC Maverick’s Road] 01 - Understanding the content of the MVC model. For more related content, please pay attention to the PHP Chinese website (www.php.cn)!

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

AI Hentai Generator
Generate AI Hentai for free.

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics



As web applications continue to evolve, it is important to develop applications more quickly and efficiently. And, as RESTful API is widely used in web applications, it is necessary for developers to understand how to create and implement RESTful API. In this article, we will discuss how to implement MVC pattern and RESTful API using CodeIgniter framework. Introduction to MVC pattern MVC (Model-Vie

Laravel is a popular PHP framework that is widely used in the field of web development. It provides many powerful functions and features that allow developers to quickly build high-quality, maintainable web applications. In this article, we will delve into the functions and features that Laravel can implement, and provide specific code examples. 1.MVC architecture Laravel adopts an architecture based on the MVC (Model-View-Controller) design pattern to organize and manage code.

ThinkPHP6 is a popular PHP framework that uses the MVC (Model-View-Controller) pattern to organize the logical structure of the application. The MVC pattern is a design pattern for object-oriented programming that divides an application into three parts: Model, View, and Controller. Each part has its own independent responsibilities, making the application easy to maintain and extend. This article will introduce how to use

With the rapid development of Internet technology, various programming languages and frameworks are constantly emerging. PHP, as a globally popular programming language, is widely used in the field of Web development. As Web applications continue to increase and become more complex, in order to better organize and manage code, developers have adopted the MVC (Model-View-Controller) architecture pattern. The MVC pattern is a software design pattern that divides the application into three parts: data (Model), user interface (View) and controller (C

CodeIgniter is a simple, lightweight PHP framework that is widely used to quickly develop web applications. Since its inception in 2006, CodeIgniter has been the framework of choice for many developers. In this article, we will explore why to choose the CodeIgniter framework and discuss its main advantages. Lightweight CodeIgniter is a lightweight framework. The core file of the framework is only about 2MB, which makes it excellent in terms of running speed and performance. with other pangs

In web development, request response is a very important concept. For PHP developers, it is necessary to understand the design of request responses. In PHP, a request refers to the data sent by the client to the server. Generally speaking, this data is sent by form submission or AJAX request. The content of the request can include HTTP request method, request header, request parameters, request body and other information. The response represents the server's response to the client's request. Generally speaking, the content of the response may include H

PHP8 framework development MVC pattern: best practices to improve code maintainability Introduction: With the rapid development of the Internet, the needs of websites and web applications are becoming more and more diverse and complex. To meet this demand, developers need to use efficient and reliable frameworks to streamline the development process. Among the many PHP frameworks, the MVC (Model-View-Controller) pattern is one of the most common and powerful architectures. This article will introduce the best practices for developing the MVC pattern in the PHP8 framework to improve generation

[Introduction] The MVC (Model-View-Controller) pattern is widely used in Web application development. PHP is a very popular programming language and has many excellent development frameworks, such as Laravel and Symfony. With the release of PHP8, developers have raised some challenges on how to properly develop MVC pattern applications in PHP8. This article will provide you with some practical suggestions to help developers overcome these challenges. [1. What’s new in PHP8
