.NET Web开发技术简单整理.NET 作为微软推出的跨平台开发框架历经二十余年演进如今已形成以 .NET 6/7/8 为核心的统一生态。在 Web 开发领域.NET 提供了从传统 MVC 到现代 Minimal API、从服务端渲染到前后端分离的完整解决方案。本文将梳理其核心技术脉络并辅以可运行代码示例帮助开发者快速建立知识框架。### 一、核心框架ASP.NET Core 的基石ASP.NET Core 是 .NET 下构建 Web 应用的主干框架。它基于中间件Middleware管道模型每个请求都会经过一系列有序的组件处理。这种设计让开发者能灵活控制请求生命周期例如添加日志、认证、静态文件服务等。中间件管道示例csharp// Program.cs - 最小化 Web 应用入口var builder WebApplication.CreateBuilder(args);var app builder.Build();// 自定义中间件记录请求耗时app.Use(async (context, next) { var start DateTime.UtcNow; await next(); // 调用下一个中间件 var elapsed DateTime.UtcNow - start; Console.WriteLine($请求 {context.Request.Path} 耗时 {elapsed.TotalMilliseconds} ms);});app.MapGet(/, () Hello .NET Web!); // 极简路由app.Run(); // 启动应用这段代码展示了现代 .NET 的极简编程风格。Use方法注入自定义逻辑MapGet直接绑定 HTTP GET 请求与响应。与旧版 ASP.NET 相比它无需额外配置 IIS可独立运行于 Kestrel 服务器并支持跨平台部署。### 二、MVC 模式经典且强大的 Web 框架尽管 Minimal API 适合微服务和小型项目但大部分企业级应用仍选择 MVCModel-View-Controller模式。它通过分离关注点提升了代码可维护性。ASP.NET Core MVC 提供模型绑定、验证、过滤器Filter等高级特性。控制器与视图示例csharp// Controllers/HomeController.csusing Microsoft.AspNetCore.Mvc;public class HomeController : Controller{ // GET /Home/Index public IActionResult Index() { var data new Liststring { ASP.NET, C#, EF Core }; return View(data); // 传递模型数据到视图 } // POST /Home/Submit [HttpPost] public IActionResult Submit(string keyword) { if (string.IsNullOrWhiteSpace(keyword)) { ModelState.AddModelError(, 关键词不能为空); return View(Index); } return Content($你搜索了{keyword}); }}配套的 Razor 视图Views/Home/Index.cshtml可使用model指令强类型访问数据htmlmodel Liststringh2.NET Web 技术列表/h2ul foreach (var item in Model) { liitem/li }/ulform asp-actionSubmit methodpost input namekeyword / button typesubmit搜索/button/formMVC 强调“约定优于配置”控制器文件名、视图路径都有默认规则降低了团队沟通成本。同时过滤器如[Authorize]可声明式地实现安全策略。### 三、数据访问EF Core 与 Dapper 的选择数据层是 Web 应用的核心。.NET 首选 EF CoreEntity Framework Core一个轻量级、可扩展的 ORM支持 LINQ 查询、迁移Migration和多种数据库。EF Core 快速使用csharp// 定义实体public class Product{ public int Id { get; set; } public string Name { get; set; } public decimal Price { get; set; }}// DbContext 配置public class AppDbContext : DbContext{ public DbSetProduct Products { get; set; } protected override void OnConfiguring(DbContextOptionsBuilder options) options.UseSqlite(Data Sourceapp.db); // 使用 SQLite 示例}// 数据操作using var db new AppDbContext();db.Database.EnsureCreated(); // 自动建表var product new Product { Name 键盘, Price 199.9m };db.Products.Add(product);db.SaveChanges();var cheapProducts db.Products.Where(p p.Price 500).ToList();EF Core 的延迟加载、跟踪查询等功能简化了复杂业务但性能敏感场景可改用 Dapper——一个轻量级微 ORM直接执行 SQL 映射到对象适合查询密集型应用。两者可以共存于同一项目按需选用。### 四、前端集成SPA 与 Blazor 的双车道现代 Web 开发离不开前端。.NET 提供两条主流路线1.前后端分离通过 Web API 提供 JSON 数据前端使用 React/Vue/Angular。.NET 6 简化了 API 定义支持ResultsT返回类型和 OpenAPI 文档自动生成。2.Blazor使用 C# 替代 JavaScript 构建交互式 UI。Blazor Server 通过 SignalR 实时通信Blazor WebAssembly 则在浏览器中运行 .NET 字节码。以下是一个 Blazor 组件示例razorpage /counterh3计数器/h3p当前值count/pbutton onclickIncrement1/buttoncode { private int count 0; private void Increment() count;}Blazor 让 .NET 开发者无需切换技术栈即可完成全栈工作尤其适合内网管理后台等场景。### 五、部署与生态容器化与云原生.NET 应用可发布为单文件可执行程序或打包成 Docker 镜像。官方还提供dotnet publish命令配合 GitHub Actions 实现 CI/CD。此外.NET 与 Azure 深度集成但也能轻松部署到 AWS、阿里云或自建服务器。Docker 部署示例dockerfileFROM mcr.microsoft.com/dotnet/aspnet:8.0 AS baseWORKDIR /appEXPOSE 80FROM mcr.microsoft.com/dotnet/sdk:8.0 AS buildWORKDIR /srcCOPY . .RUN dotnet publish -c Release -o /appFROM base AS finalCOPY --frombuild /app .ENTRYPOINT [dotnet, MyWebApp.dll]### 总结.NET Web 开发技术已经高度模块化、现代化。无论是构建简单的 REST API 还是复杂的企业级系统开发者都能从 MVC、Minimal API、Blazor 等方案中找到合适工具。核心优势在于统一的开发体验、强大的类型系统C#以及逐步完善的性能表现。建议初学者从 ASP.NET Core MVC 入手结合 EF Core 操作数据再通过容器化部署上线。随着 .NET 8 LTS 的推出该平台在未来几年将持续保持竞争力。