ASP.NET MVC - 概述


ASP.NET MVC基本上是微软的一个Web开发框架,它结合了MVC(模型-视图-控制器)架构的特点、敏捷开发的最新思想和技术以及现有ASP的最佳部分.NET 平台。

ASP.NET MVC 并不是从零开始构建的。它是传统 ASP.NET Web 窗体的完全替代方案。它构建在 ASP.NET 之上,因此开发人员在构建 MVC 应用程序时可以享受几乎所有 ASP.NET 功能。

构建 MVC 应用程序

历史

ASP.NET 1.0 于 2002 年 1 月 5 日发布,作为 .Net Framework 1.0 版的一部分。当时,人们很容易将 ASP.NET 和 Web 窗体视为同一事物。然而,ASP.NET 始终支持两层抽象 -

  • System.Web.UI - Web 表单层,包括服务器控件、ViewState 等。

  • System.Web - 它提供基本的 Web 堆栈,包括模块、处理程序、HTTP 堆栈等。

到 2007 年 ASP.NET MVC 发布时,MVC 模式已成为构建 Web 框架最流行的方法之一。

2009 年 4 月,ASP.NET MVC 源代码在 Microsoft 公共许可证 (MS-PL) 下发布。“ASP.NET MVC 框架是一个轻量级、高度可测试的表示框架,与现有的 ASP.NET 功能集成。

其中一些集成功能包括母版页和基于成员资格的身份验证。MVC 框架是在 System.Web.Mvc 程序集中定义的。

2012 年 3 月,微软在开源许可证(Apache License 2.0)下发布了部分 Web 堆栈(包括 ASP.NET MVC、Razor 和 Web API)。ASP.NET Web 窗体未包含在该计划中。

为什么选择 ASP.NET MVC?

Microsoft 决定创建自己的 MVC 框架来构建 Web 应用程序。MVC 框架简单地构建在 ASP.NET 之上。当您使用 ASP.NET MVC 构建 Web 应用程序时,不会有状态错觉,不会出现页面加载和根本没有页面生命周期等情况。

ASP.NET MVC 的另一个设计目标是可以在框架的各个方面进行扩展。因此,当我们谈论视图时,视图必须由特定类型的视图引擎呈现。默认的视图引擎仍然可以接受 ASPX 文件。但如果您不喜欢使用 ASPX 文件,您可以使用其他文件并插入您自己的视图引擎。

MVC 框架内有一个组件可以实例化您的控制器。您可能不喜欢 MVC 框架实例化控制器的方式,您可能想自己处理该工作。因此,MVC 中有很多地方可以注入您自己的自定义逻辑来处理任务。

使用模型视图控制器设计模式背后的整个想法是保持关注点分离。您的控制器不再受制于与 ASP.NET 运行时或与 ASPX 页面的大量联系,这些联系非常难以测试。现在,您只有一个带有常规方法的类,您可以在单元测试中调用该方法来查明该控制器是否会正常运行。

ASP.NET MVC 的优点

以下是使用 ASP.NET MVC 的好处 -

  • 通过将应用程序划分为模型、视图和控制器,可以更轻松地管理复杂性。

  • 实现对渲染的 HTML 的完全控制,并提供清晰的关注点分离。

  • 对 HTML 的直接控制还意味着更好的可访问性,以实现与不断发展的 Web 标准的合规性。

  • 有助于为现有应用程序添加更多交互性和响应能力。

  • 为测试驱动开发(TDD)提供更好的支持。

  • 非常适合由大型开发团队支持的 Web 应用程序以及需要对应用程序Behave进行高度控制的 Web 设计人员。