分为以下几个部分,以便您全面了解:

(图片来源网络,侵删)
- ASP.NET 的演进历史:理解不同版本的定位和特点。
- 现代 ASP.NET Core 核心技术:当前主流和推荐的技术栈。
- 经典 ASP.NET 4.x 技术:仍在维护和使用的旧技术。
- 前端技术:ASP.NET 项目中必不可少的部分。
- 数据访问技术:与数据库交互的方式。
- 开发工具与生态:提高开发效率的工具。
- 技术选型建议:如何根据项目需求选择合适的技术。
ASP.NET 的演进历史
了解历史有助于你理解为什么会有这么多技术,以及它们各自的设计哲学。
a. ASP.NET Web Forms (早期 ~ 2025)
- 核心理念:事件驱动、控件化开发,模仿桌面应用的开发体验,开发者通过拖拽控件、编写事件处理程序来构建页面。
- 特点:
- ViewState:自动维护页面状态,简化了状态管理,但也带来了性能开销和复杂性。
- 服务器端控件:如
Button,GridView,Repeater等,封装了复杂的 HTML 和 JavaScript 逻辑。 - 开发速度快:对于快速构建企业级内部管理系统非常高效。
- 封闭性:生成的 HTML 结构有时难以控制,对前端开发不够友好。
- 现状:虽然仍被维护,但已不再是微软主推的技术,新项目不推荐使用。
b. ASP.NET MVC (Model-View-Controller) (2009 ~ 2025)
- 核心理念:经典的 MVC 设计模式,强调关注点分离,使代码结构更清晰、更易于测试。
- 特点:
- MVC 模式:模型负责数据,视图负责展示,控制器负责业务逻辑和用户交互。
- 完全控制:开发者可以完全控制生成的 HTML 和 URL 结构,对前端开发非常友好。
- RESTful 支持:天然支持构建符合 RESTful 风格的 API。
- 可测试性强:由于关注点分离,各个部分都可以独立进行单元测试。
- 现状:在 .NET Core 中被升级为 ASP.NET Core MVC,是现代 Web 开发的核心组成部分之一。
c. ASP.NET Web API (2012 ~ 2025)
- 核心理念:专门用于构建 HTTP 服务的框架。
- 特点:
- 专注于 API:简化了创建 RESTful API 的过程。
- 内容协商:支持多种数据格式,如 JSON、XML 等。
- HTTP 管道:提供了强大的 HTTP 消息处理管道。
- 现状:在 .NET Core 中,Web API 的功能被完全整合到了 ASP.NET Core MVC 中,你只需要创建一个返回
IActionResult或ObjectResult的 Controller Action,它就可以同时服务于 Web 页面和 API 请求。
d. ASP.NET Core (2025 ~ 至今)
- 核心理念:跨平台、高性能、开源的全新框架,这是目前和未来微软 Web 开发的唯一方向。
- 特点:
- 跨平台:可以在 Windows, macOS, Linux 上开发和运行。
- 高性能:经过重新设计,性能极高,在多个基准测试中名列前茅。
- 模块化与轻量级:通过 NuGet 包按需引入功能,项目启动更快,占用资源更少。
- 开源:在 GitHub 上完全开源,社区活跃,贡献者众多。
- 统一了 MVC 和 Web API:如上所述,MVC 和 Web API 的功能现在统一在
Microsoft.AspNetCore.Mvc命名空间下。 - 内置依赖注入:从底层支持依赖注入,便于解耦和测试。
- 新的配置系统:支持 JSON, XML, 环境变量等多种配置来源。
- 现状:绝对的主流和首选,所有新的 .NET Web 项目都应基于 ASP.NET Core。
现代 ASP.NET Core 核心技术
如果你要开始一个新项目,这就是你需要学习的全部。
a. 项目模板
ASP.NET Core 提供了强大的项目模板,快速搭建应用骨架:
- Web 应用:创建一个 MVC 或 Razor Pages 应用。
- Web API:创建一个专门提供 API 服务的项目。
- Blazor:创建一个使用 C# 编写前端 UI 的单页应用。
- Razor 类库:创建可重用的 UI 组件库。
- 最小 API:在 .NET 6 中引入,用最少的代码创建高性能 API,非常适合微服务和无服务器场景。
b. 核心组件
-
MVC (Model-View-Controller)
(图片来源网络,侵删)- Model:表示应用程序的数据和业务逻辑,通常对应数据库中的表,使用 Entity Framework Core 等 ORM 框架来操作。
- View:负责 UI 展示,使用 Razor 语法(在 HTML 中嵌入 C# 代码)来动态生成 HTML 页面。
- Controller:接收用户请求,调用 Model 处理业务逻辑,然后选择一个 View 返回给用户。
-
Razor Pages
- 更简单的 MVC 替代品,它采用基于页面的编程模型,将页面逻辑 (
PageModel) 和视图 (cshtml) 放在一起,对于简单的 CRUD(创建、读取、更新、删除)比 MVC 更直观、更容易上手。
- 更简单的 MVC 替代品,它采用基于页面的编程模型,将页面逻辑 (
-
Blazor
- 革命性的前端技术,允许你使用 C# 和 Razor 语法来构建交互式的客户端 Web UI。
- Blazor Server:UI 在服务器上渲染,通过 SignalR 实时更新客户端浏览器。
- Blazor WebAssembly:整个应用在客户端的浏览器中以 WebAssembly 的形式运行,无需服务器交互,实现真正的客户端 C# 开发。
-
Middleware (中间件)
- 处理 HTTP 请求的“管道”,每个中间件都可以接收请求、做一些处理(如日志、认证、静态文件服务),然后决定是传递给下一个中间件还是直接返回响应。
- 常用中间件:
UseStaticFiles():提供静态文件(CSS, JS, 图片)。UseRouting():启用路由。UseAuthentication()/UseAuthorization():处理身份验证和授权。UseEndpoints():将请求映射到对应的 MVC 或 Razor Pages 端点。
-
依赖注入
(图片来源网络,侵删)- 核心设计模式,ASP.NET Core 内置了 DI 容器,你可以在
Startup.cs(或Program.csin .NET 6+) 中注册服务(接口和实现类),然后在任何需要的地方通过构造函数“注入”使用,而不是自己new对象,这极大地提高了代码的可测试性和可维护性。
- 核心设计模式,ASP.NET Core 内置了 DI 容器,你可以在
经典 ASP.NET 4.x 技术
维护旧项目时可能会用到。
- Web Forms:如上所述,基于控件和事件驱动。
- Web Pages:一个轻量级的、类似 PHP 的模型,混合了 HTML 和 C# 代码 ( 语法),非常简单,但功能有限。
- Web API (旧版):与 MVC 分离,用于构建 API。
- WCF (Windows Communication Foundation):一个更通用的框架,用于构建服务,可以支持多种协议(HTTP, TCP, MSMQ 等),现在主要用于遗留系统。
前端技术
ASP.NET 主要处理后端逻辑,但现代 Web 开发离不开前端。
- HTML5, CSS3, JavaScript (ES6+):基础中的基础。
- JavaScript 框架/库:
- React:由 Facebook 开发,组件化思想,生态庞大。
- Angular:由 Google 开发,全面的前端框架,自带路由、HTTP 客户端等。
- Vue.js:渐进式框架,易学易用,灵活性强。
- 构建工具:
- Webpack:模块打包器,处理资源、编译代码。
- Vite:新一代的前端构建工具,启动和热更新速度极快。
- CSS 框架:
- Bootstrap:最流行的 CSS 框架,提供响应式布局和 UI 组件。
- Bulma, Tailwind CSS 等。
在 ASP.NET Core 项目中,你可以通过 libman (客户端库管理器) 或 NPM/Yarn 来轻松集成这些前端技术。
