文章目录

1. 后端框架(Backend Frameworks)
(1) ASP.NET Core(微软官方,主流选择)
定位:高性能、跨平台、模块化的 Web 框架
适用场景:API 服务、MVC 应用、微服务、企业级应用
关键特性:
- 支持 REST API、gRPC、SignalR(实时通信)
- 内置 依赖注入 (DI)、中间件管道、日志系统
- 高性能(Kestrel 服务器 + System.Text.Json)
- 支持 Blazor(全栈 .NET 开发)
- 集成 Entity Framework Core(ORM)
- 支持 Docker、Kubernetes 部署
示例代码(API 开发):
[ApiController]
[Route("api/[controller]")]
public class ProductsController : ControllerBase
{
private readonly IProductService _productService;
public ProductsController(IProductService productService)
{
_productService = productService;
}
[HttpGet]
public async Task<IActionResult> GetAll()
{
var products = await _productService.GetAllAsync();
return Ok(products);
}
}
(2) ABP Framework(企业级应用开发框架)
定位:基于 DDD(领域驱动设计) 的企业级开发框架
适用场景:SaaS、ERP、CRM 等复杂业务系统
关键特性:
- 模块化架构(类似 Java 的 Spring Boot)
- 内置 身份认证、权限管理、多租户
- 集成 Entity Framework Core、MongoDB、RabbitMQ
- 提供 自动 API 生成(动态 Web API)
- 支持 微服务(结合 Kubernetes)
示例代码(自动生成 API):
public class ProductAppService : ApplicationService, IProductAppService
{
private readonly IRepository<Product, Guid> _productRepository;
public ProductAppService(IRepository<Product, Guid> productRepository)
{
_productRepository = productRepository;
}
public async Task<List<ProductDto>> GetAllAsync()
{
var products = await _productRepository.GetListAsync();
return ObjectMapper.Map<List<Product>, List<ProductDto>>(products);
}
}
2. 前端框架(Frontend Frameworks)
(1) Blazor(微软官方,.NET 全栈开发)
定位:使用 C# 替代 JavaScript 构建交互式 Web UI
两种模式:
- Blazor Server(实时 SignalR 连接,适合企业内网应用)
- Blazor WebAssembly(前端运行 WASM,适合 SPA 应用)
关键特性:
- C# 代替 JS,共享后端代码
- 支持 Razor 组件(类似 React/Vue 组件化)
- 集成 SignalR 实时通信
- 支持 PWA(渐进式 Web 应用)
示例代码(Razor 组件):
@page "/counter"
<h1>Counter</h1>
<p>Current count: @currentCount</p>
<button @onclick="IncrementCount">Click me</button>
@code {
private int currentCount = 0;
private void IncrementCount() => currentCount++;
}
(2) React/Angular/Vue + .NET API(传统前后端分离)
适用场景:大型 SPA 应用,前端团队使用 JavaScript 技术栈
推荐组合:
- 前端:React(Ant Design)、Angular(Material UI)、Vue(Element Plus)
- 后端:ASP.NET Core Web API
- 通信:REST API / GraphQL(HotChocolate)
示例架构:
Frontend (React) → ASP.NET Core API → SQL Server
3. 微服务 & 云原生框架
(1) Steeltoe(.NET 微服务工具包)
定位:让 .NET 应用无缝集成 Spring Cloud Netflix(Eureka、Hystrix)
关键特性:
- 服务发现(Eureka)
- 配置中心(Spring Cloud Config)
- 熔断器(Hystrix)
- 适用于 Kubernetes + .NET 微服务架构
(2) Dapr(Distributed Application Runtime)(微软 & CNCF 项目)
定位:云原生微服务开发框架
关键特性:
- 服务调用、Pub/Sub、状态管理、Actor 模型
- 支持 Kubernetes、Azure、AWS
- 语言无关(Go/Java/.NET/Python 均可使用)
示例代码(Dapr Pub/Sub):
[Topic("pubsub", "orders")]
[HttpPost("orders")]
public async Task<ActionResult> CreateOrder(Order order)
{
await _repository.SaveAsync(order);
return Ok();
}
4. 数据库 & ORM
(1) Entity Framework Core(微软官方 ORM)
关键特性:
- 支持 SQL Server、PostgreSQL、MySQL、SQLite
- Code First / Database First
- LINQ 查询
- 迁移(Migrations)
示例代码(EF Core 查询):
var users = await _dbContext.Users
.Where(u => u.Age > 18)
.OrderBy(u => u.Name)
.ToListAsync();
(2) Dapper(轻量级高性能 ORM)
适用场景:需要极致性能的 SQL 查询
示例代码:
using var connection = new SqlConnection(connectionString);
var users = connection.Query<User>("SELECT * FROM Users WHERE Age > @Age", new { Age = 18 });
5. 实时通信
(1) SignalR(微软官方实时 Web 框架)
适用场景:聊天应用、实时数据推送、股票行情
关键特性:
- 支持 WebSocket、Server-Sent Events (SSE)、长轮询
- 自动选择最佳传输协议
- 适用于 Blazor、React、Vue、Angular
示例代码(Hub 类):
public class ChatHub : Hub
{
public async Task SendMessage(string user, string message)
{
await Clients.All.SendAsync("ReceiveMessage", user, message);
}
}
总结:如何选择?
场景 | 推荐框架 |
---|---|
企业级 Web 应用 | ASP.NET Core + Angular/React + EF Core |
全栈 C# 开发 | Blazor WebAssembly + ASP.NET Core API |
微服务架构 | Dapr + Kubernetes + Steeltoe |
高性能 API | ASP.NET Core Minimal API + Dapper |
实时应用 | SignalR + Blazor Server |