ASP.NET MVC 入门教程:什么是、架构

什么是 ASP.NET MVC?

ASP.NET MVC 是微软推出的一个开源 Web 开发框架,它提供了模型-视图-控制器 (MVC) 架构。ASP.NET MVC 提供了 ASP.NET Web Forms 之外的另一种构建 Web 应用程序的方案。它是 .NET 平台的一部分,用于构建、部署和运行 Web 应用。你可以借助 HTML、CSS、jQuery、Javascript 等来开发 Web 应用和网站。

通过这个 ASP.NET MVC 教程学习 MVC,它涵盖了 MVC 的所有基本概念,适合初学者。

为什么选择 ASP.NET MVC?

尽管 Web Forms 非常成功,但微软仍然考虑开发 ASP.NET MVC。ASP.NET Web Forms 的主要问题是性能。

Web 应用程序中,有四个主要方面决定了性能:

  • 响应时间问题
  • 单元测试问题
  • HTML 自定义
  • 代码隐藏类的可重用性

ASP.NET MVC 在以上参数上表现出色。

MVC 的版本历史

ASP.NET MVC1

  • 发布于 2009 年 3 月 13 日
  • 它运行在 .NET 3.5 上
  • Visual Studio 2008
  • MVC 模式架构,带有 WebForm 引擎
  • 主要功能包括 HTML 和 单元测试、Ajax 助手、路由等。

ASP.NET MVC2

  • 此版本发布于 2010 年 3 月 10 日
  • 运行在 .NET 3.5、4.0 上,并与 Microsoft Visual Studio 2008 兼容
  • 包含模板化助手、带自动脚手架和可自定义模板的 UI 助手等功能
  • 它支持 DataAnnotations 属性,可在客户端和服务器端应用模型验证

ASP.NET MVC3

  • 发布于 2011 年 1 月 13 日
  • 运行在 .NET 4.0 上,并与 Microsoft Visual Studio 2010 兼容
  • 使用 NuGet 来交付软件,并允许您跨平台管理依赖项
  • 对 JavaScript 的支持更好,包括 jQuery 验证和 JSON 绑定
  • 它提供了 Razor 视图引擎等功能;增强的 Data Annotations 属性,用于在客户端和服务器端进行模型验证

ASP.NET MVC4

  • 此版本发布于 2012 年 8 月
  • 运行在 .NET 4.0、4.5 上,并与 Visual Studio 2010 和 Visual Studio 2012 兼容
  • 对默认项目模板的增强
  • 提供移动项目模板(使用 jQuery Mobile)、异步控制器任务支持、捆绑、最小化等功能

ASP.NET MVC5

  • 发布于 2013 年 10 月 17 日
  • 运行在 .NET 4.5、4.5.1 上,并与 Visual Studio 2012 和 OneASP.NET 兼容
  • 支持 MVC 中的属性路由

MVC 的特点

  • 轻松无缝的测试性
  • 完全控制您的 HTML、JavaScript 和 URL
  • 利用现有的 ASP.NET 功能
  • ASP.NET 的新演示选项
  • 一种更简单的 ASP.NET 编程方式
  • 逻辑分离清晰:模型、视图、控制器
  • 测试驱动开发
  • 支持并行开发

创建 MVC 应用程序时需要注意的事项

在此 ASP.NET MVC 教程中,有一些您在创建 MVC 应用程序时需要记住的有用事项。

  • 您需要记住,ASP.NET MVC **不是** ASP.NET Web Forms 应用程序的替代品。
  • MVC 应用程序开发的方法应根据应用程序需求和 ASP.NET MVC 提供的功能来决定,以适应特定的开发需求。
  • 与基于 Web Forms 的应用程序相比,ASP.NET MVC 的应用程序开发过程更加复杂。
  • 由于应用程序任务的分离,应用程序的可维护性始终更高。
MVC architectural Pattern
MVC 架构模式

MVC 是一种遵循关注点分离方法的软件架构模式。在此模型中,.NET 应用程序被划分为三个相互关联的部分,称为模型、视图和控制器。

MVC 模式的目标是,这三个部分都可以相对独立地进行开发、测试,并将它们组合起来创建一个非常健壮的应用程序。

让我们详细看看它们。

模型

模型对象是应用程序的一部分,它们实现了应用程序数据域的逻辑。它从数据库检索和存储模型状态。例如,产品对象可能会从数据库检索信息,对其进行操作。然后将信息写回 SQL Server 中的产品表。

视图

视图是用于显示应用程序用户界面 (UI) 的组件,在 MVC 中也称为视图模型。它显示了由模型数据创建的 .NET MVC 应用程序。

常见的例子是“项目”表的编辑视图。它根据产品和对象的当前状态显示文本框、弹出窗口和复选框。

控制器

控制器处理用户交互,与模型协同工作,并选择一个视图来渲染该显示 UI。在 .NET MVC 应用程序中,视图仅显示信息,控制器使用 MVC 中的操作筛选器来管理用户输入和交互并响应它们。

例如,控制器管理查询字符串值并将这些值传递给模型。

Web Forms 与 MVC

参数 WebForms MVC
模型 ASP.NET Web Forms 遵循事件驱动开发模型。 ASP.NET MVC 使用 MVC 模式的开发模型。
使用时间 自 2002 年以来一直存在 它于 2009 年首次发布
视图状态支持 ASP.NET Web Forms 支持视图状态进行客户端状态管理。 .NET MVC 不支持视图状态。
URL 类型 ASP.NET Web Forms 具有基于文件的 URL。这意味着 URL 中存在文件名,并且它们必须真实存在。 ASP.NET MVC 具有基于路由的 URL,这意味着 URL 会被重定向到控制器和操作。
语法 ASP.NET MVC 遵循 Web Forms 语法。 ASP.NET MVC 遵循可自定义的语法。
视图类型 在 Web Forms 中,视图与代码隐藏 (ASPX-CS) 紧密耦合,即逻辑。 在 MVC 中,视图和逻辑始终分开存放。
一致的外观和感觉 它有母版页,以实现一致的外观。 ASP.NET MVC 有布局,以实现一致的外观。
代码可重用性 Web Forms 提供用户控件用于代码可重用性。 ASP.NET MVC 提供了部分视图用于代码可重用性。
HTML 控制 对渲染的 HTML 控制较少。 完全控制 HTML
状态管理 控件的自动状态管理。 手动状态管理。
TDD 支持 需要弱或自定义 TDD。 鼓励并包含 TDD!

ASP.NET MVC 的优势

  • 默认情况下,应用程序高度可维护
  • 它允许您替换应用程序的任何组件。
  • 对测试驱动开发有更好的支持
  • 由于模型、视图和控制器的划分,复杂应用程序易于管理
  • 提供强大的路由机制和前端控制器模式
  • 通过消除视图状态和服务器端表单,可以更好地控制应用程序行为
  • ASP.NET MVC 应用程序由大型开发团队和 Web 设计师支持
  • 它提供对应用程序行为的更多控制。它还利用优化的带宽来处理向服务器发出的请求

ASP.NET MVC 的缺点

  • 您无法像 .aspx 页面那样看到设计页面预览。
  • 您需要每次都运行程序才能看到其实际设计。
  • 理解应用程序的流程可能具有挑战性
  • 实现起来相当复杂,因此对于小型应用程序来说不是理想的选择
  • 学习 ASP.NET 的 MVC 很难,因为它需要对 MVC 模式有深入的理解

使用 ASP.NET MVC 的最佳实践

  • 对于大型复杂的代码,请创建一个单独的模型程序集,以避免任何不期望的情况。
  • 模型应包含业务逻辑、会话维护、验证部分和数据逻辑部分。
  • 视图不应包含任何业务逻辑和会话维护,使用 ViewData 来访问视图中的数据
  • 业务逻辑和数据访问永远不应发生在 ControllerViewData 中
  • 控制器仅负责准备和返回视图、调用模型、重定向到操作等。
  • 创建应用程序时删除演示代码,删除 AccountController
  • 仅使用特定的视图引擎来从视图创建 HTML 标记,因为它结合了 HTML 和编程代码。

摘要

  • ASP.NET MVC 是微软推出的一个开源 Web 开发框架,它提供了一个模型-视图-控制器 (MVC) 架构
  • ASP.NET MVC 提供了 ASP.NET Web Forms 之外的另一种构建 Web 应用程序的方案。
  • ASP.NET Web Forms 的主要问题是性能。
  • ASP.NET MVC 提供轻松无缝的测试性,并完全控制您的 HTML 和 URL。
  • 您需要记住,ASP.NET MVC **不是** ASP.NET Web Forms 应用程序的替代品。
  • MVC 应用程序开发或 ASP.NET MVC 生命周期的方法必须根据应用程序的需求和 ASP.NET MVC 提供的功能来决定,以适应特定的开发需求。
  • ASP.NET MVC 默认提供高度可维护的应用程序。
  • 使用 ASP.NET,您无法像 .aspx 页面那样看到设计页面预览。
  • 作为最佳实践,模型应包含业务逻辑、会话维护、验证部分和数据逻辑部分。