前端开发者学 .NET:零基础到部署上线
前端开发者学 .NET零基础到部署上线面向已有 HTML/CSS/JavaScript或 TypeScript经验、希望系统学习 .NET 并能把服务部署上线的读者。类比前端概念减少「从零猜语义」的成本。一、为什么要学、学什么目标说明做 BFF / 聚合层用 ASP.NET Core 统一对接多个后端、裁剪字段、做鉴权转发全栈或团队需要与现有 .NET 后端协作、读代码、改接口、排错独立上线后端提供 REST/gRPC API与 Vue/React 等前端分离部署建议学习顺序约 48 周按投入时间浮动安装环境与命令行 → 2. C# 语法与 OOP 基础 → 3. ASP.NET Core Web API → 4. 依赖注入与配置 → 5. 数据访问EF Core 入门→ 6. 发布与部署 → 7. 生产环境要点HTTPS、日志、环境变量。二、环境搭建2.1 安装 .NET SDK官网https://dotnet.microsoft.com/download选择SDK不是仅 Runtime。SDK 包含dotnet命令行、编译器、模板。终端验证dotnet--versiondotnet --list-sdks2.2 编辑器推荐Visual Studio 2022Windows功能最全或Visual Studio Code C# 扩展。跨平台Rider付费体验好。2.3 常用 CLI类比 npm前端类比.NET 命令npm initdotnet new console/webapi等npm installdotnet add package 包名npm run builddotnet buildnpm startdotnet run全局工具dotnet tool install -g 工具名创建 Web API 项目示例dotnet new webapi-nMyApi-oMyApicdMyApi dotnet run浏览器访问https://localhost:5xxx/swagger若模板启用了 Swashbuckle可看接口文档。三、核心概念对照前端 → .NET3.1 语言C# 与 JavaScript/TypeScript概念JS/TSC#变量let/constvar少用/ 常用int,string, 或var推断类型类型TS 可选类型静态类型为主可string?表示可空引用函数function/ 箭头函数void Foo()/ 表达式体类classclass支持接口interface、继承、多态模块import/exportusing引用命名空间项目间用「项目引用」publicAPI异步async/awaitPromiseasync Task/TaskTawait几乎同样心智模型空值null/undefined主要null值类型用Nullableint或int?3.2 运行时与生态概念说明CLR类似 JS 引擎 部分运行时负责执行 IL中间语言.NET / .NET Core / .NET 5现统一叫.NET跨平台版本如 8、9NuGet包管理类似 npm包在 nuget.orgcsproj项目文件类似package.json 构建配置合体3.3 ASP.NET Core 在栈里的位置Kestrel内置 Web 服务器开发、生产都常用。生产常在前面加Nginx / IIS / 反向代理做 TLS 终结与静态资源。中间件管道类似 Express 的中间件链请求依次经过认证、路由、端点等。四、第一个 Web API 要理解的文件典型Program.cs.NET 6 常用「顶级语句」模板无显式Main里你会看到WebApplication.CreateBuilder注册服务DI 容器。builder.Services.AddControllers()/AddEndpointsApiExplorer()等。var app builder.Build()构建管道。app.MapGet/MapControllers路由与端点。依赖注入DI类似「容器里注册单例/作用域服务」构造函数里写接口框架自动注入。前端可类比不是到处import具体实现而是注入抽象便于测试与替换。五、学习路径按周拆解可压缩第 12 周C# 基础值类型与引用类型、string、集合ListT、DictionaryTKey,TValue。控制流、LINQ对集合做Where、Select类似map/filter。类、接口、record简化不可变数据。异常try/catch/finally少用异常做流程控制。第 34 周ASP.NET CoreMinimal APIsProgram.cs里MapGet与Controllers传统 MVC/Web API 风格二选一深入即可公司项目用哪种跟哪种。路由、模型绑定、验证DataAnnotations或 FluentValidation。返回 JSONResults.Ok(...)或ActionResultT。中间件顺序认证要在路由前等官方文档有顺序图。第 5 周数据层入门EF CoreCode First、迁移dotnet ef migrations add/dotnet ef database update。理解DbContext、实体关系先会用再谈性能优化。第 6 周及以后与前端联调、鉴权CORS在 API 里配置AddCors开发环境允许前端域名。JWTAddAuthentication().AddJwtBearer(...)与前端Authorization: Bearer对齐。HTTPS开发用 dev 证书生产用反向代理或平台证书。六、发布Publish——部署的第一步把应用编译成可部署的文件类比npm run build产出dist。cdMyApi dotnet publish-cRelease-o./publish-c Release优化后的发布配置。-o输出目录内含.dll、依赖、web.config若目标为 IIS等。常见输出类型框架依赖默认目标机器需安装对应ASP.NET Core Runtime。自包含把运行时打进目录体积大但机器不必预装 .NET。自包含示例按 RID 指定平台dotnet publish-cRelease-rwin-x64 --self-containedtrue-o./publish dotnet publish-cRelease-rlinux-x64 --self-containedtrue-o./publishRID参考https://learn.microsoft.com/dotnet/core/rid-catalog七、部署方式概览7.1 Windows IIS适用公司已有 Windows 服务器与 IIS。要点安装.NET Hosting Bundle含 Runtime IIS 模块版本与项目目标框架一致。在 IIS 中创建站点应用程序池选无托管代码ASP.NET Core 由 Kestrel/ANCM 处理。指向publish输出目录配置环境变量ASPNETCORE_ENVIRONMENTProduction。用 HTTPS 绑定证书。官方文档https://learn.microsoft.com/aspnet/core/host-and-deploy/iis/7.2 Linux常见Nginx 反向代理 systemd服务器安装 Runtime 或拷贝自包含发布包。systemd守护进程示例单元文件思路WorkingDirectory指向发布目录ExecStart/usr/bin/dotnet /path/MyApi.dll或自包含可执行文件环境变量EnvironmentASPNETCORE_ENVIRONMENTProductionNginxproxy_pass到http://127.0.0.1:5000以应用实际端口为准。证书Let’s Encryptcertbot或云厂商证书。官方https://learn.microsoft.com/aspnet/core/host-and-deploy/linux-nginx7.3 DockerDockerfile思路多阶段构建阶段一SDK 镜像里dotnet publish。阶段二Runtime 镜像里只拷贝发布产物设置ENTRYPOINT启动dll或可执行文件。优势环境一致、易与 K8s、云容器服务配合。官方示例https://learn.microsoft.com/dotnet/core/docker/publish-as-container7.4 云平台任选其一练手平台说明Azure App Service与 .NET 集成好Git/容器部署阿里云 / 腾讯云 / 华为云云主机 上文 Linux 或 Windows 流程Railway / Render 等小项目体验发布与 HTTPS上线前 checklist环境变量连接字符串、密钥勿进仓库、日志Serilog 等、健康检查/health、反向代理真实 IPForwardedHeaders。八、上线后常见操作配置appsettings.jsonappsettings.Production.json敏感项用环境变量或密钥管理服务覆盖。日志结构化日志、日志级别、集中收集可选 Application Insights、ELK 等。健康与监控存活探针、APM、错误追踪。数据库迁移生产迁移策略启动时迁移 vs 独立 Job团队规范为准。CI/CDGitHub Actions / Azure DevOps / GitLab CIdotnet test→dotnet publish→ 部署到服务器或推送镜像。九、官方与权威资料优先阅读C# 语言https://learn.microsoft.com/dotnet/csharp/ASP.NET Corehttps://learn.microsoft.com/aspnet/core/EF Corehttps://learn.microsoft.com/ef/core/部署总览https://learn.microsoft.com/aspnet/core/host-and-deploy/十、给前端的实践作业建议用 Minimal API 写一个 CRUD内存列表即可用 Swagger 自测。同一个接口用 Vue/React 发fetch/axios调用处理 CORS。把项目dotnet publish在本地用 IIS Express 或 Docker 跑起来。加一条 JWT 保护接口前端存 token 调用。按上述顺序做完你对「开发 → 发布 → 部署 → 联调」会有完整体感再按需深入性能、安全与运维即可。文档版本2026-04适用于 .NET 8/9 系通用概念具体命令以你安装的 SDK 文档为准。