
- 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 - Razor
- ASP.NET MVC - 数据注释
- Nuget 包管理
- ASP.NET MVC - Web API
- ASP.NET MVC - 脚手架
- ASP.NET MVC - Bootstrap
- 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 Public License (MS-PL) 下发布。“ASP.NET MVC 框架是一个轻量级、高度可测试的表示框架,它与现有的 ASP.NET 功能集成在一起。
其中一些集成功能包括母版页和基于成员身份的身份验证。MVC 框架定义在 System.Web.Mvc 程序集中。
2012 年 3 月,微软在其 Web 堆栈(包括 ASP.NET MVC、Razor 和 Web API)的一部分发布了一个开源许可证(Apache License 2.0)。ASP.NET Web 窗体未包含在此计划中。
为什么选择 ASP.NET MVC?
微软决定创建他们自己的 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 设计师。