- ASP.NET MVC 教程
- ASP.NET MVC - 主页
- ASP.NET MVC - 概述
- ASP.NET MVC - 模式
- ASP.NET MVC - 环境设置
- ASP.NET MVC - 入门
- ASP.NET MVC - 生命周期
- ASP.NET MVC - 路由
- ASP.NET MVC - 控制器
- ASP.NET MVC - 操作
- ASP.NET MVC - 过滤器
- ASP.NET MVC - 选择器
- ASP.NET MVC - 视图
- ASP.NET MVC - 数据模型
- ASP.NET MVC - 帮助程序
- ASP.NET MVC - 模型绑定
- ASP.NET MVC - 数据库
- ASP.NET MVC - 验证
- ASP.NET MVC - 安全
- ASP.NET MVC - 缓存
- ASP.NET MVC - 剃刀
- ASP.NET MVC - 数据注释
- Nuget包管理
- ASP.NET MVC - Web API
- ASP.NET MVC - 脚手架
- ASP.NET MVC - 引导程序
- ASP.NET MVC - 单元测试
- ASP.NET MVC - 部署
- ASP.NET MVC - 自托管
- ASP.NET MVC 有用资源
- ASP.NET MVC - 快速指南
- ASP.NET MVC - 有用的资源
- ASP.NET MVC - 讨论
ASP.NET MVC - 概述
ASP.NET MVC基本上是微软的一个Web开发框架,它结合了MVC(模型-视图-控制器)架构的特点、敏捷开发的最新思想和技术以及现有ASP的最佳部分.NET 平台。
ASP.NET MVC 并不是从零开始构建的。它是传统 ASP.NET Web 窗体的完全替代方案。它构建在 ASP.NET 之上,因此开发人员在构建 MVC 应用程序时可以享受几乎所有 ASP.NET 功能。
历史
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 设计人员。