翻译:ASP.NET MVC的概览
ASP.NET MVC的概览
该模型视图控制器(MVC)架构模式分成三个主要部分组成:模型,视图的应用程序,和控制器。ASP.NET MVC框架提供了一种替代的ASP.NET Web窗体创建Web应用程序的模式。ASP.NET MVC框架是一个轻量级的,高度可测试的框架,并提出(与网页窗体的应用程序)与现有的ASP.NET功能,如母版页和会员制身份验证,整合。 MVC框架定义在System.Web.Mvc程序集。
MVC设计模式
MVC是一个标准的设计模式,很多开发人员都熟悉。有些类型的Web应用程序将受益于MVC框架。有些人将继续使用传统的ASP.NET应用程序模式,它是基于 Web窗体和回发。还有些类型的Web应用程序将两种方法结合起来,也不排除其他的方法。
MVC框架包括以下内容:
- Models:模 型。模型对象是在应用程序实施的时候,为应用程序逻辑提供数据的部分。通常,模型对象是对数据库检索和把数据存储到数据库中。例如,一个产品对象可能从一个数据库中的信息检索,它操作产品 表,然后写在SQL Server数据库的更新信息并返回。
在小应用中,往往是一个模型,而不是一个物理概念上的分离之一。例如,如果应用程序只读取一个数据集,并把它发送到视图,应用程序不具有物理模型层和相关的类。在这种情况 下,dataset,就在一个模型对象的作用。
- Views:视图。视图是显示的组件,用来应用程序的用户界面(UI)。通常,该用户界面是通过模型层数据创建的。例子:一个编辑产品表里的一个产品,这时候用到了文本框,下拉列表,和用来显示产品状态的CheckBox。
- Controllers:控制器。控制器的组件处理用 户交互,与模型的工作,并最终选择一个视图来呈现,显示用户界面。在MVC应用程序中,视图只显示信息,控制器用来处理和回应用户的输入和互动。例如,控制器处理查询的字符串值,并传递这些值到模型层,这些值可能用来查询数据库。
MVC模式可以帮助您创建单独的应用程序的应用程序的不同方面(输入逻辑,业务逻辑和UI逻辑),同时提供这些要素之间的松散耦合。该模式指定每个逻辑应该在应用程序的位置。 The UI logic belongs in the view.所属的UI逻辑在(View)视图中。 输入逻辑在控制器。 业务逻辑在模型层。 这种分离可以帮助您管理复杂的应用程序,因为它使您能够在一个集中的实施某个方面。例如,你可以专注于View,不用管业务逻辑。
这三个松散耦合的MVC应用程序的主要组件是相互促进并行发展的。例如,一个开发人员可以专注于视图,第二个开发人员可以专注控制器上的逻辑,而第 三个开发人员可以专注于模型中的业务逻辑。
支持测试驱动开发
除了管理的复杂性,MVC模式比ASP.NET Web应用程序更容易去测试。例如,在Web窗体的ASP.NET Web应用程序,一个类是既用于显示输出和响应用户输入。编写Web窗体,ASP.NET应用 程序的自动化测试可以很复杂,因为要测试一个个人网页,你必须实例化的页面类,它的所有子控件,并在申请额外的依赖类。因为如此多的类实例化运行页面时,它很难为应用程序的各个部分编写测试。因此,测试一个ASP.NET应用程序比测试执行一个MVC应用程序更困难。此外, MVC框架解耦的组件,因为大量使用的接口,这使得它可以测试脱离框架其余的各个组成部分。
当创建一个MVC应用程序的时候,你必须仔细考虑是否实施通过使用ASP.NET MVC框架的ASP.NET Web窗体或Web应用程序模型。 MVC框架不会取代Web窗体模型,你可以使用Web应用程序的框架。 (如果您有现有的Web窗体的应用程序,它们将会和以前一样工作的很好。)
当你使用什么框架开发一个网站的时候,先衡量每一种方法的优点:
基于MVC的Web应用程序 的优势
ASP.NET MVC框架提供了以下优点:
- 它 可以更容易地降低应用程序的复杂性,划分为Models,View,和controller。
- 它不使用视图状态或基于服务器的Forms。这使得MVC框架是一个想要完全控制一个应用程序行为的程序员的理想选择。它使 用一个前端控制器模式,它通过这个单一的过程控制Web应用程序的请求。这使您能够设计一个应用程序支持丰富的Routing。
- 它提供了更好的测试驱动开发(TDD)的支持。
- 它运作良好的网络是由大型团队的开发人员和网页设计师谁需要一个应用程序的控制权行为 的高度支持的应用程序。