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 Forms 层,包括服务器控件、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 Forms 未包含在该计划中。

为什么使用 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 应用程序以及需要对应用程序行为进行高度控制的 Web 设计人员。