1. .NET平台全景解析
作为深耕C#开发十余年的老码农,第一次接触.NET时的震撼感至今记忆犹新。2002年微软推出.NET Framework时,我还沉浸在VB6和MFC的泥潭里挣扎。如今.NET已演进为跨平台、开源的现代化开发平台,而C# 10则是这个生态中最锋利的武器。让我们拨开云雾,看看这个技术栈的庐山真面目。
提示:本文讨论的.NET包含传统.NET Framework和跨平台的.NET Core/.NET 5+系列,虽然它们有差异,但核心概念相通。
1.1 技术栈定位
.NET不是单一技术,而是包含运行时、类库和工具链的完整开发生态。就像Java的JVM+JDK组合,.NET提供了CLR(公共语言运行时)+BCL(基础类库)的基础设施。但与Java不同,.NET原生支持多语言开发——C#、F#、VB.NET都可以编译为统一的中间语言(IL)在CLR上运行。
最新的.NET 6/7更是实现了"统一平台"愿景:一个SDK支持桌面、Web、移动、云原生等各种应用场景。我在实际项目中使用.NET 6开发过Windows服务、Linux容器微服务和Blazor WASM前端,体验相当一致。
1.2 核心组件解剖
-
CLR :相当于.NET的操作系统,负责内存管理(带GC)、异常处理、线程调度等基础服务。其即时编译(JIT)机制让IL代码在运行时转换为本地机器码,既保持跨平台性又接近原生性能。
-
BCL :包含System.*命名空间下的数千个类,提供集合、IO、网络等基础功能。比如处理JSON时常用的System.Text.Json就属于BCL。
-
ASP.NET Core :现代Web开发框架,我经手的电商系统用它处理过10万+QPS。其管道中间件设计非常灵活,轻松实现鉴权、缓存等横切关注点。
-
EF Core :ORM工具的代表作,支持Code First开发模式。最近用它为物流系统实现了多租户数据隔离,通过全局查询过滤器几行代码就搞定。
2. C#与.NET的共生关系
2.1 语言特性演进史
C#从1.0到10.0的每次迭代都与.NET平台能力提升紧密相关。举几个里程碑:
-
C# 2.0 (2005):泛型问世,.NET 2.0的BCL随之全面泛型化。现在写List 觉得理所当然,当年可是革命性的。
-
C# 5.0 (2012):async/await语法糖配合.NET 4.5的TPL库,让异步编程变得优雅。我重构过一个基于回调的旧系统,代码量直接减半。
-
C# 9.0/.NET 5 (2020):记录类型(record)简化不可变模型,顶级语句让小程序更简洁。做DTO映射时特别省事。
2.2 现代开发范式
C# 10 + .NET 6的组合带来了诸多现代编程体验:


1126

被折叠的 条评论
为什么被折叠?



