MVC 模式——第3章

    在深入到 ASP.NET MVC 框架的细节之间,最好熟悉 MVC 的设计模式及其背后的思想。良好地理解 MVC 背后的内容,有助于在阅读本书的过程中将该框架的特性放到相关的情境之中。

3.2 理解 MVC 模式

    从高级术语上说,MVC 模式意味着一个 MVC 应用程序将被分离成至少3个部分

    · 模型(Model):含有或表现用户进行操作的数据

        模型可以是简单的视图模型:它们只表现视图与控制器之间传递的数据;(可以在Web项目的Models文件夹中创建)

        也可以是域模型:它包含业务领域的数据,以及处理这些数据的操作、转换和规则。(可以在类库项目中创建Entity文件夹并在里面创建域模型)

    · 视图(View):用于将模型的某些部分渲染成用户界面

    · 控制器(Controller):处理传入的请求 — 执行模型上的操作,并选择渲染给用户的视图

    模型是对应用程序工作的定义。
    模型也由不是其职责的内容来定义:
      模型不涉及 UI 渲染或请求处理——那些是视图和控制器的职责。(不要将视图和控制器的职责放到模型中进行定义,这些不是模型的
    职责)

    视图含有将模型元素显示给用户的逻辑,仅此而已。(它们不直接感知模型,也不以任何方式与模型直接通信)

    控制器是视图与模型之间的桥梁——请求来自客户端,并由控制器对其进行服务,进而选择一个相应的视图向用户进行显示,并在必要时
  执行模型上的相应操作。

    MVC 架构的每一个部分都是定义良好和自包含的,这称为关注分离

        模型中操作数据的逻辑仅包含在模型中,

        显示数据的逻辑仅包含在视图中,

        而处理用户请求和用户输入的代码仅包含在控制器中。

    利用各部分之间清晰的分离,无论应用程序有多大,在其整个生命周期中都会更易于维护和扩充。

3.2.1 理解域模型

    MVC 应用程序最重要的部分是域模型(而不是只表现视图与控制器之间传递的数据的视图模型)。—— 对于应用程序必须支持的业务或活动中存在的现实实体、操作以及规则等,可以通过对它们进行标识的方法创建模型,这种模型被称为域模型。

    为了实现 MVC 框架的这一目的,域模型往往是一组 C# 类型(类、结构等),统称为域类型。

    域中的操作由域类型中定义的方法来实现,而域规则表示成这些方法中的逻辑。或者通过运用 C# 的注解属性来实现。

    当创建一个域类型的实例来表现特定的数据片段时,便创建了一个域对象。

    域模型通常是持久化的,且一直处于活动状态;其实现有许多不同方式,但关系型数据库是最通常的选择。

3.2.2 MVC 的 ASP.NET 实现

    在 MVC(ASP.NET)中 ,控制器是 C# 类,其中每一个 public 方法都称为是一个动作方法,这种动作方法通过 ASP.NET 的路由系统与一个可配置的 URL 相关联。

    当一个请求被发送给与一个动作方法相关联的 URL 时,便会执行控制器类中的语句,以进行域模型上的一些操作,然后选择一个视图显示给客户端。

    ASP.NET MVC 框架使用试图引擎处理视图,以便为浏览器生成响应。

    提示:visual studio 提供了对 Razor 的智能感应支持,十分便于对控制器提供的视图数据进行注入和响应。

    ASP.NET MVC 对域模型的实现没有任何约束,可以用常规的 C# 对象创建模型,并可以用 .NET 支持的任何数据库,对象关系映射(ORM)框架,或其他数据工具来实现持久化。

上一篇:BLOB 操作


下一篇:P2046 [NOI2010]海拔