Skip to content

.NET 各版本区别

.NET 生态系统速览

  • .NET Framework:仅 Windows 的传统框架
  • .NET (Core):跨平台的开源框架(原 .NET Core)
  • .NET Standard:统一 API 规范的代码共享标准

2020年起,.NET 5+ 成为所有新应用的首选

问题解析:理解 .NET 的不同版本

微软的 .NET 平台经过多年发展,产生了多个不同名称的版本,导致开发者经常混淆:

  • 为什么同时存在 .NET Framework、.NET Core、.NET 和 .NET Standard?
  • 它们之间究竟有何本质区别?
  • 新项目应该如何选择?

这些疑问源于 .NET 平台从仅支持 Windows 到跨平台的战略转型。下面我们系统梳理各版本的核心区别和适用场景。

.NET Framework:传统的 Windows 应用框架

仅支持 Windows 系统,是 .NET 生态的原始实现:

csharp
// 典型 .NET Framework 应用结构
using System.Windows.Forms;

class Program {
    static void Main() {
        // Windows 专属 API
        MessageBox.Show("Hello .NET Framework!");
    }
}

主要特征:

  • ⚠️ 已停止新增功能开发(最新版本为 4.8.x)
  • 🔒 闭源实现,Windows 平台专属
  • 🏢 支持 WPF、WinForms 等传统桌面技术
  • 🛡️ 仍提供长期安全更新(延续至 Windows 11+ 生命周期)

适用场景:

  • 维护现有 Windows 桌面应用程序
  • 使用 WCF、WebForms 等遗留技术的项目

.NET Core:跨平台革命的开始

完全重写 的开源框架,支持 Windows/Linux/macOS:

bash
# 创建跨平台 .NET 应用
dotnet new console -o HelloWorld
cd HelloWorld
dotnet run

核心优势:

  • ✅ 真正的跨平台支持(Windows、Linux、macOS)
  • 🐧 开源(MIT 许可证)社区驱动
  • 🚀 高性能与模块化设计
  • 📦 内置依赖管理(NuGet + 自包含部署)

版本更名

  • .NET Core 1.0-3.1 作为独立品牌存在
  • 2020年发布 .NET 5,实现品牌统一
  • 现行版本:.NET 6/7/8 = .NET Core 的延续

.NET (5+):统一的新时代框架

从 .NET 5 开始,微软统一了开发平台: {.NET} = 跨平台 + 开源 + 高性能

csharp
// .NET 6+ 的顶级语句简化入口
Console.WriteLine("现代 .NET 应用!");

版本演进:

  • 5.0 → 6.0(LTS)→ 7.0 → 8.0(LTS)
  • 跳过 4.x 避免与 .NET Framework 混淆
  • 每两年发布长期支持版(LTS)

推荐方案:

  • 所有新项目首选 .NET LTS 版本(8.0+)
  • 需移动开发时选择 MAUI(iOS/Android 支持)

.NET Standard:共享代码的 API 契约

不是运行时框架,而是 API 规范:

csharp
// 支持 .NET Standard 的跨平台类库
public class SharedLogic {
    public static string GetPlatformInfo() {
        return Environment.OSVersion.ToString();
    }
}

应用场景:

  • 创建在 Framework 和 Core 间共享的类库
  • 目标版本取决于需支持的平台:
    • .NET Standard 2.0:兼容 Framework 4.6+ 和 .NET Core 2.0+
    • .NET Standard 2.1:需 .NET Core 3.0+ 或 .NET 5+

现代迁移建议

使用 .NET 5+ 后,无需再创建 .NET Standard 库

  • 直接使用 TargetFramework: net8.0
  • 现有 Standard 库仍可被消费

.NET 版本选择决策树▲ .NET 跨平台支持路线(来源:Microsoft Docs)

如何选择合适的 .NET 版本

✅ 选择 .NET (8+) 当:

  • 开发全新应用项目
  • 需支持多平台部署
  • 需要容器化(Docker/Kubernetes)
  • 要求最佳性能和内存效率

⚠️ 选择 .NET Framework 当:

  • 维护现有的 Windows 遗留系统
  • 依赖第三方仅限 Framework 的组件
  • 使用 WebForms 或 WCF 服务(部分 WCF 功能需兼容性包)

🔁 迁移路径建议

结论与最佳实践

  1. 首选 .NET 8 (LTS):所有新项目的默认选择
  2. 放弃创建 .NET Standard 新库:直接使用目标框架 net8.0
  3. .NET Framework 仅用于维护场景:需 Windows 专用 API 时
  4. 定期检查迁移策略:利用 .NET Upgrade Assistant

随着 .NET 每年发布新版本,开发者应积极采用最新 LTS 版本获取性能优化、容器支持和云原生特性,享受统一平台带来的开发效率提升。

微软官方支持策略: