第一章:.NET 生态全景
大家好,我是你们的老朋友。今天咱们聊聊 .NET 生态的全貌。
说实话,我刚开始接触 .NET 时,也被它庞大的体系搞得有点懵。但别担心,我会用最直白的方式,带你理清这条线。
1.1 .NET 发展史:从 .NET Framework 到 .NET 8
.NET 最早是微软在 2002 年推出的,那时候叫 .NET Framework。它只跑在 Windows 上,像个「温室里的花朵」。
我记得 2014 年,微软宣布 .NET 开源,还推出了 .NET Core。这步棋走得真漂亮。从此 .NET 可以跑在 Linux、macOS 上了。
到了 2020 年,.NET 5 发布,微软把 .NET Framework 和 .NET Core 合并了。之后每年一个大版本:.NET 6、.NET 7、.NET 8。
核心变化:
- .NET Framework:仅 Windows,闭源,老项目在用
- .NET Core:跨平台,开源,新项目首选
- .NET 5+:统一了,不再有 Framework 和 Core 的区分
嗯,这里要注意:如果你还在维护 .NET Framework 4.x 的项目,别急着迁移。我见过不少团队盲目升级,结果第三方库不兼容,折腾了两个月。
1.2 .NET 6/7/8 版本差异:我该选哪个?
很多新手会问:「老师,我该学 .NET 6 还是 .NET 8?」
我的建议是:新项目直接用 .NET 8。为什么?
| 版本 | 发布时间 | 关键特性 | 我的建议 |
|---|---|---|---|
| .NET 6 | 2021.11 | LTS 长期支持,MAUI 预览 | 老项目稳定用,新项目不推荐 |
| .NET 7 | 2022.11 | 性能提升,容器化优化 | 非 LTS,适合尝鲜 |
| .NET 8 | 2023.11 | LTS,AOT 编译,性能大幅提升 | 新项目首选 |
我个人习惯是:生产环境用 LTS 版本(.NET 6 或 .NET 8),开发环境可以试试最新版。但别在生产环境用 .NET 7,它只有 18 个月支持期,到期就得升级,麻烦。
避坑指南:我曾经在 .NET 7 刚发布时就上了生产,结果半年后微软宣布 .NET 8 预览版,我不得不提前做升级计划。从那以后,我学乖了——生产环境只用 LTS。
1.3 应用场景:Web / API / 微服务
.NET 能做什么?说白了,三件事:
- Web 应用:用 ASP.NET Core MVC 或 Razor Pages 做传统网站。我做过一个电商后台,页面渲染快,SEO 友好。
- API 服务:用 ASP.NET Core Web API 做 RESTful 接口。现在大部分新项目都是前后端分离,后端只提供 API。
- 微服务:用 .NET 配合 Docker、Kubernetes 做分布式系统。我参与过一个金融项目,拆了 20 多个微服务,每个服务独立部署、独立扩展。
你想想看,一个 .NET 项目,可能同时包含 Web 页面和 API 接口。比如用户管理页面用 MVC,数据查询接口用 Web API。这很常见。
注意:别一上来就搞微服务。我见过太多团队,项目还没跑起来,先拆了 10 个服务,结果连基本的 CRUD 都搞不定。微服务是架构演进的结果,不是起点。
1.4 开发环境搭建:VS2022 / SDK / CLI
搭建环境其实很简单,但很多人第一步就卡住了。我来说说我的做法。
第一步:安装 .NET SDK
去 dotnet.microsoft.com 下载 .NET 8 SDK。安装完后,打开命令行验证:
dotnet --version
# 输出:8.0.100
如果看到版本号,说明 SDK 装好了。
第二步:安装 Visual Studio 2022
我个人习惯用 VS2022 Community 版(免费)。安装时记得勾选「ASP.NET 和 Web 开发」工作负载。
如果你喜欢轻量级工具,用 VS Code 也行。但调试体验不如 VS2022。
第三步:熟悉 CLI 命令
CLI 是 .NET 的灵魂。我平时开发很少点鼠标,全靠命令行:
# 创建新项目
dotnet new webapi -n MyApi
# 运行项目
dotnet run
# 添加 NuGet 包
dotnet add package Dapper
嗯,这里要注意:CLI 命令不区分大小写,但参数区分。比如 -n 和 -N 不一样。
我的小技巧:把常用命令写成脚本。比如我有个 new-api.sh,一键创建项目并打开 VS Code。省时间。
好了,环境搭好了。下一章我们开始写第一个 .NET 项目。
记住:工具只是手段,理解原理才是关键。别在环境搭建上花太多时间,遇到问题直接搜「.NET SDK 安装失败」,99% 的问题都能解决。
我是你们的 .NET 架构师,咱们下章见。
公众号:蓝海资料掘金营,微信deep3321