asp.net core是什么 怎么学

来源:这里教程网 时间:2026-02-21 17:40:04 作者:

ASP.NET Core 是一个跨平台、高性能、开源的 Web 框架,用于构建现代 Web 应用、API、微服务甚至物联网后端。它不是 .NET Framework 的升级版,而是从头重写的轻量级实现,和 .NET 运行时深度解耦(比如你可以在 Linux 上用

dotnet
命令直接跑一个 ASP.NET Core API)。

学它不靠“背概念”,靠“写一个能跑通的最小闭环”——比如:命令行创建项目 → 启动 → 浏览器看到 “Hello World” → 改成返回 JSON → 加个数据库查一条数据。这个闭环越快打通,后续理解

Program.cs
、中间件、依赖注入就越有体感。

怎么快速跑通第一个 ASP.NET Core 项目(别卡在环境上)

新手最常卡在环境没对齐,尤其是 .NET SDK 版本和模板不匹配。2025 年底主流是 .NET 9.0(LTS),Visual Studio 2022 17.12+ 或 VS Code + C# Dev Kit 都能支持。

先确认终端里能执行
dotnet --version
,输出应为
9.0.x
(不是 6.0、7.0 或 8.0);如果不是,去 dotnet.microsoft.com/download 下最新 SDK
别用 Visual Studio 的“旧模板”(如带 “.NET Core” 字样的),选
ASP.NET Core Web API
ASP.NET Core Web App (Model-View-Controller)
,且明确勾选
.NET 9.0
创建完立刻进项目目录,执行
dotnet run
—— 不要急着加控制器或数据库,先确保控制台打印出
Now listening on: https://localhost:5001
并能在浏览器打开
如果报错
Unable to configure HTTPS endpoint
,说明开发证书没信任:运行
dotnet dev-certs https --trust
(Windows/macOS),Linux 用户需手动配置或改用 HTTP

Program.cs 里那几行代码到底在干什么

从 .NET 6 开始,

Program.cs
是唯一入口,没有
Startup.cs
了。它表面简洁,实则浓缩了三大关键动作:注册服务、配置中间件、启动宿主。初学者容易把
builder.Services.AddXxx()
app.UseXxx()
搞混顺序。

builder.Services
是“准备阶段”:告诉框架“我之后要用数据库、日志、JWT 认证”,但此时什么都没发生,只是记下来
app.UseXxx()
是“执行阶段”:定义请求进来时按什么顺序经过哪些处理环节(比如先走 CORS,再走认证,最后才到控制器)
常见错误:
app.UseAuthentication()
写在
app.UseAuthorization()
后面 → 认证永远不触发;或者
app.MapControllers()
被写在
app.UseStaticFiles()
前面 → 静态资源 404
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddControllers(); // 注册 MVC 控制器服务
builder.Services.AddEndpointsApiExplorer();
<p>var app = builder.Build();
app.UseHttpsRedirection();          // 中间件:强制跳 HTTPS
app.UseAuthorization();            // 中间件:检查权限(必须在 UseAuthentication 之后)
app.MapControllers();              // 中间件:把路由映射到控制器方法
app.Run();

学的时候该跳过什么、该盯住什么

路线图里堆满“Entity Framework Core”“Redis 缓存”“AutoFac”“SOLID 原则”,但刚起步时,只盯死三件事就够了:HTTP 生命周期、依赖注入的实际用法、配置加载逻辑。其他全是“有需求再查”的扩展项。

先别碰 ORM:用
new HttpClient()
调一个公开 API(如
https://jsonplaceholder.typicode.com/posts/1
),理解
IHttpClientFactory
怎么注册、怎么注入、怎么避免连接泄漏
别一上来就建 Repository 层:把数据库操作直接写在 Controller 里(临时),跑通 EF Core 连接字符串、
DbContext
注册、
DbSet<post></post>
查询就行
配置优先学
IConfiguration
的层级:
appsettings.json
→ 环境变量 → 命令行参数,比如
dotnet run --environment Production
会自动加载
appsettings.Production.json

真正卡住人的,从来不是语法,而是“为什么这个中间件不生效”“为什么 DI 报

Cannot resolve scoped service
”“为什么配置值读出来是 null”。这些问题的答案,全藏在请求流经
Program.cs
的那十几行里——而不是文档首页。

相关推荐