C# 入门
.NET、ASP.NET Core 概览。
35 分钟
C# 入门
C# 与 .NET 一体:微软系企业、游戏(Unity)、Azure 云原生里常见。语法上 像 Java(类、接口、泛型、async/await),运行时从 .NET Framework 演进到 跨平台 .NET 8+。若你熟 java-fundamentals,读 C# 业务代码 上手快,差异主要在 属性、LINQ、值类型 struct 与 NuGet 生态。
学习目标
- 读懂 ASP.NET Core 最小 API 与 Controller 两种风格
- 理解 .NET 运行时与 JVM 的粗粒度对比
- 说清 C# 在异构企业里的典型位置
最小 Web API(.NET 8)
var builder = WebApplication.CreateBuilder(args);
var app = builder.Build();
app.MapGet("/tracks/{slug}", (string slug) =>
Results.Json(new { slug, title = "Java 语言基础" }));
app.Run();
对比 Spring Boot @RestController:路由在 Program.cs 或 attribute,依赖注入内置 builder.Services,配置 appsettings.json 类似 application.yml。
与 Java 的对照
| 主题 | C# / .NET | Java |
|---|---|---|
| 包管理 | NuGet + .csproj | Maven / Gradle |
| Web 框架 | ASP.NET Core | Spring MVC / WebFlux |
| ORM | Entity Framework Core | JPA / Hibernate |
| 异步 | async/await Task | CompletableFuture、Virtual Thread |
| 跨平台 | .NET 8 Linux 容器 | JVM everywhere |
LINQ 用类 SQL 语法查集合,Java 侧常用 Stream API 类比。
ASP.NET Core 要点
- Middleware 管道:类似 Servlet Filter / Spring Filter Chain
- Kestrel:内置 Web 服务器,前面可挂 IIS / Nginx
- Minimal APIs:小服务;大项目仍用 Controller + 分层
- Identity:认证授权与 Spring Security 同层问题
部署:单文件发布、容器、Azure App Service 文档齐全;与 spring-cloud-essentials 的 服务网格、配置中心 可异构共存(HTTP/gRPC 边界)。
何时选 C#
- 团队 Windows / Azure / AD 存量深
- Unity 游戏 后端、Matchmaking