《Pro ASP.NET MVC4 4th Edition》第三章(一)
《Pro ASP.NET MVC4 4th Edition》第三章(一)
本文地址: http://www.cnblogs.com/outtamyhead/archive/2013/04/08/3007234.html ,转载需保留本地址。
说在前面:
1、由于是头次翻译整本书籍,所以错误难免,希望大家都提出来,翻译的不好还望大家少拍砖多鼓励。
2、该系列没有按照原文直译,而是加入了我的一些言语在里面(在没有改变 原意 的情况下),所以大家在看的时候希望有所对照。
3、该系列每周出一或二篇博客,因为我最近很忙,一直在加班,很累的说。
4、该系列不提供原版文字,希望看原版的可以自行下载Pdf。
5、该系列省去了前面的废话,单刀直入,讲主体内容。
第三章:MVC模式(一)
在第 7 章,我们打算创建一个比较复杂的 ASP.NET MVC 示例。在开始挖掘更多 MVC 框架详细功能之前,我们希望你能大致熟悉 MVC 设计模式,并以它的方式进行思考。在本章,我们将描述下述内容:
MVC 架构模式
域模型和数据仓库
用依赖注入( DI )创建松耦合系统
自动测试基础
你可能已经熟悉了本章描述的一些想法和规范,尤其是如果你完成过高级 ASP.NET 开发或者 C# 开发。如果没有,我们希望你能认真的阅读本章内容 -- 很好的理解 MVC 背后的事情, 有助于在阅读本书的过程中,把这个框架的特性放到相关的语境中。
MVC 历史
略
理解 MVC 模式
在高级层面来说, MVC 模式意味着 MVC 应用程序至少会被分为 3 部分:
Models :包含或者描述用户使用的数据。这些可以是简单的视图模型,它只描述在视图和控制器之间传递的数据;或者它们可以是主域模型,它包含在业务方面的数据以及处理这些数据的操作、转换、和规则。
Views :被用在渲染模型的某些部分作为用户界面。
Controllers :它处理传入的请求,在模型上执行操作,并选择和渲染要展现给用户的视图。
模型是你用来工作的应用程序世界的定义。例如,在一个银行项目中,模型描述了应用程序支持的银行的任何东西,如账号、总账、客户的的信用额度 -- 以及那些可以用来操作模型数据的操作,像存入资金,从账户提款。模型也负责保存全局状态和数据的一致性 -- 例如,确保所有交易添加在分账中,客户没有提取超过他存入银行数额上限的钱。
理解域模型
MVC 程序中最重要的部分是域模型。我们通过存在于工业或活动中的真实世界的对象、操作和规则来创建模型并且我们的程序必须支持,这就是域。
随后我们创建这个域的软件标识 -- 域模型。为了我们的目的,这个域模型是一组 C# 类型(类,结构,等),统称为域类型。域中的操作由定义为域类型的方法标识,而域规则则由这些方法里的逻辑来标识 -- 或者,如我们在前面章节看到的,通过在方法上添加 C# 特性来标识。当我们创建一个域类型的实例来描述特定数据,我们就创建了一个域对象。域模型通常是保持的并长期活动的 -- 这有很多种不同的方式来实现,但是关系型数据库是最常用的选择。
简言之,域模型是程序中业务数据和数据处理唯一权威的定义。一个保持的域模型也是域表现状态的权威定义 。
域模型的方法解决了许多智能 UI 模式中出现的问题 . 我们的逻辑方法只包含在一个地方 -- 如果你需要操作模型里的数据或者添加一个新的过程或者规则,域模型是你应用程序中唯一变化的部分。
提示: 从一个 ASP.NET MVC 应用程序的其余部分分离域模型的一种常见方式是把模型放在单独的 C# 程序集中。用这种方式,你可以从程序的其他部分创建对域模型的引用,但是要确保没有在其他方向进行引用。这在大规模的项目中十分有用。我们会在第 7 章的示例中使用这种方式。
模型也可以由不是它们负责的内容来定义:模型不涉及渲染 UI 和处理请求 -- 那些是视图和控制器的职责。视图包含模型元素要显示给用户的逻辑 -- 其它什么都没有。它们并不直接的感知模型并且不直接与模型进行通信。控制器则是视图和模型的沟通桥梁 -- 来自客户端的请求由控制器提供服务,选择合适的视图展现给用户,并且,如果需要,执行模型上的相应操作。
MVC 架构的每一部分都是明确定义和自包含的 -- 这叫做关系分离。模型数据的逻辑操作只包含在模型中;展现数据的逻辑只包含在视图中并且处理用户请求和输入的代码只包含在控制器中。每一部分的彼此都有清晰的区分,你的应用程序会很容易维护和扩展,无论它会变多大。
ASP.NET MVC 的实现
在 MVC 中,控制器是 C# 类,通常源自 System.Web.Mvc.Controller 类。类里的每一个源自 Controller 类的 Public 方法都被称作动作方法,它与一个通过 ASP.NET 路由系统可配置的 URL 相关联。当一个请求发送到一个与动作方法相关联的 URL 时,控制器类的相应代码块就会被执行以完成在域模型上的一些操作然后选择一个视图展现在客户端。图 3-1 说明了控制器、模型和视图之间的交互。
MVC 框架为视图引擎的选择提供支持。 MVC 的早起版本使用标准的 ASP.NET 视图引擎,通过使用 Web 窗体标记语言的精简版来处理 ASPX 页面。 MVC3 引入了 Razor 视图引擎,并在 MVC4 中得到细化并且使用了完全不同的语法(在第 5 章会介绍)。 Visual Studio 提供智能感应支持对这两个视图引擎, 使得把控制器提供的数据注入到视图和对视图进行响应成为一件简单的事 。
MVC 没有在实现你的域模型时添加任何约束。你可以用规则的 C# 对象生成一个模型并可以用任何数据库、 ORM 框架、或者 .NET 支持的其他数据工具来实现保持。 Visual Studio 创建了一个 Models 文件夹作为 MVC 项目模板的一部分。这对简单的项目很合适,但是更复杂的程序倾向在单独的项目中定义他们的域模型。我们会在本章的后面讨论域模型的实现。
文章作者:禁止吸烟
道本无话可说,皆当全力以赴。
我们的QQ群:ASP.NET MVC 高级编程群,232404244。
博客地址: http://www.cnblogs.com/outtamyhead/
分类: MVC , 敏捷开发
标签: MVC4 , MVC3
当前标签: MVC4
【译】《Pro ASP.NET MVC4 4th Edition》第三章(一)
【译】《Pro ASP.NET MVC4 4th Edition》第二章(五)
【译】《Pro ASP.NET MVC4 4th Edition》第二章(四)
【译】《Pro ASP.NET MVC4 4th Edition》第二章(三)
【译】《Pro ASP.NET MVC4 4th Edition》第二章(二)
【译】《Pro ASP.NET MVC4 4th Edition》第二章(一)
结合EF5.0讲MVC4(四)--将我们的程序改成数据库优先模式
结合EF5.0讲MVC4(三)--为我们的程序添加过滤器
结合EF5.0讲MVC4(二)--为先前程序添加查询及主外键关系
结合EF5.0讲MVC4(一)--创建一个MVC4应用程序
结合EF5.0讲MVC4--目录
MVC4中常用的短句及配置归结(部分)
作者: Leo_wl
出处: http://www.cnblogs.com/Leo_wl/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
版权信息
查看更多关于《Pro ASP.NET MVC4 4th Edition》第三章(一)的详细内容...
声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://haodehen.cn/did46324
说在前面:
1、由于是头次翻译整本书籍,所以错误难免,希望大家都提出来,翻译的不好还望大家少拍砖多鼓励。
2、该系列没有按照原文直译,而是加入了我的一些言语在里面(在没有改变 原意 的情况下),所以大家在看的时候希望有所对照。
3、该系列每周出一或二篇博客,因为我最近很忙,一直在加班,很累的说。
4、该系列不提供原版文字,希望看原版的可以自行下载Pdf。
5、该系列省去了前面的废话,单刀直入,讲主体内容。
第三章:MVC模式(一)
在第 7 章,我们打算创建一个比较复杂的 ASP.NET MVC 示例。在开始挖掘更多 MVC 框架详细功能之前,我们希望你能大致熟悉 MVC 设计模式,并以它的方式进行思考。在本章,我们将描述下述内容:
MVC 架构模式
域模型和数据仓库
用依赖注入( DI )创建松耦合系统
自动测试基础
你可能已经熟悉了本章描述的一些想法和规范,尤其是如果你完成过高级 ASP.NET 开发或者 C# 开发。如果没有,我们希望你能认真的阅读本章内容 -- 很好的理解 MVC 背后的事情, 有助于在阅读本书的过程中,把这个框架的特性放到相关的语境中。
MVC 历史
略
理解 MVC 模式
在高级层面来说, MVC 模式意味着 MVC 应用程序至少会被分为 3 部分:
Models :包含或者描述用户使用的数据。这些可以是简单的视图模型,它只描述在视图和控制器之间传递的数据;或者它们可以是主域模型,它包含在业务方面的数据以及处理这些数据的操作、转换、和规则。
Views :被用在渲染模型的某些部分作为用户界面。
Controllers :它处理传入的请求,在模型上执行操作,并选择和渲染要展现给用户的视图。
模型是你用来工作的应用程序世界的定义。例如,在一个银行项目中,模型描述了应用程序支持的银行的任何东西,如账号、总账、客户的的信用额度 -- 以及那些可以用来操作模型数据的操作,像存入资金,从账户提款。模型也负责保存全局状态和数据的一致性 -- 例如,确保所有交易添加在分账中,客户没有提取超过他存入银行数额上限的钱。
理解域模型
MVC 程序中最重要的部分是域模型。我们通过存在于工业或活动中的真实世界的对象、操作和规则来创建模型并且我们的程序必须支持,这就是域。
随后我们创建这个域的软件标识 -- 域模型。为了我们的目的,这个域模型是一组 C# 类型(类,结构,等),统称为域类型。域中的操作由定义为域类型的方法标识,而域规则则由这些方法里的逻辑来标识 -- 或者,如我们在前面章节看到的,通过在方法上添加 C# 特性来标识。当我们创建一个域类型的实例来描述特定数据,我们就创建了一个域对象。域模型通常是保持的并长期活动的 -- 这有很多种不同的方式来实现,但是关系型数据库是最常用的选择。
简言之,域模型是程序中业务数据和数据处理唯一权威的定义。一个保持的域模型也是域表现状态的权威定义 。
域模型的方法解决了许多智能 UI 模式中出现的问题 . 我们的逻辑方法只包含在一个地方 -- 如果你需要操作模型里的数据或者添加一个新的过程或者规则,域模型是你应用程序中唯一变化的部分。
提示: 从一个 ASP.NET MVC 应用程序的其余部分分离域模型的一种常见方式是把模型放在单独的 C# 程序集中。用这种方式,你可以从程序的其他部分创建对域模型的引用,但是要确保没有在其他方向进行引用。这在大规模的项目中十分有用。我们会在第 7 章的示例中使用这种方式。
模型也可以由不是它们负责的内容来定义:模型不涉及渲染 UI 和处理请求 -- 那些是视图和控制器的职责。视图包含模型元素要显示给用户的逻辑 -- 其它什么都没有。它们并不直接的感知模型并且不直接与模型进行通信。控制器则是视图和模型的沟通桥梁 -- 来自客户端的请求由控制器提供服务,选择合适的视图展现给用户,并且,如果需要,执行模型上的相应操作。
MVC 架构的每一部分都是明确定义和自包含的 -- 这叫做关系分离。模型数据的逻辑操作只包含在模型中;展现数据的逻辑只包含在视图中并且处理用户请求和输入的代码只包含在控制器中。每一部分的彼此都有清晰的区分,你的应用程序会很容易维护和扩展,无论它会变多大。
ASP.NET MVC 的实现
在 MVC 中,控制器是 C# 类,通常源自 System.Web.Mvc.Controller 类。类里的每一个源自 Controller 类的 Public 方法都被称作动作方法,它与一个通过 ASP.NET 路由系统可配置的 URL 相关联。当一个请求发送到一个与动作方法相关联的 URL 时,控制器类的相应代码块就会被执行以完成在域模型上的一些操作然后选择一个视图展现在客户端。图 3-1 说明了控制器、模型和视图之间的交互。
MVC 框架为视图引擎的选择提供支持。 MVC 的早起版本使用标准的 ASP.NET 视图引擎,通过使用 Web 窗体标记语言的精简版来处理 ASPX 页面。 MVC3 引入了 Razor 视图引擎,并在 MVC4 中得到细化并且使用了完全不同的语法(在第 5 章会介绍)。 Visual Studio 提供智能感应支持对这两个视图引擎, 使得把控制器提供的数据注入到视图和对视图进行响应成为一件简单的事 。
MVC 没有在实现你的域模型时添加任何约束。你可以用规则的 C# 对象生成一个模型并可以用任何数据库、 ORM 框架、或者 .NET 支持的其他数据工具来实现保持。 Visual Studio 创建了一个 Models 文件夹作为 MVC 项目模板的一部分。这对简单的项目很合适,但是更复杂的程序倾向在单独的项目中定义他们的域模型。我们会在本章的后面讨论域模型的实现。
文章作者:禁止吸烟
道本无话可说,皆当全力以赴。
我们的QQ群:ASP.NET MVC 高级编程群,232404244。
博客地址: http://www.cnblogs.com/outtamyhead/
分类: MVC , 敏捷开发
标签: MVC4 , MVC3
当前标签: MVC4
【译】《Pro ASP.NET MVC4 4th Edition》第三章(一)
【译】《Pro ASP.NET MVC4 4th Edition》第二章(五)
【译】《Pro ASP.NET MVC4 4th Edition》第二章(四)
【译】《Pro ASP.NET MVC4 4th Edition》第二章(三)
【译】《Pro ASP.NET MVC4 4th Edition》第二章(二)
【译】《Pro ASP.NET MVC4 4th Edition》第二章(一)
结合EF5.0讲MVC4(四)--将我们的程序改成数据库优先模式
结合EF5.0讲MVC4(三)--为我们的程序添加过滤器
结合EF5.0讲MVC4(二)--为先前程序添加查询及主外键关系
结合EF5.0讲MVC4(一)--创建一个MVC4应用程序
结合EF5.0讲MVC4--目录
MVC4中常用的短句及配置归结(部分)
作者: Leo_wl
出处: http://www.cnblogs.com/Leo_wl/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
版权信息查看更多关于《Pro ASP.NET MVC4 4th Edition》第三章(一)的详细内容...