第一部分 基础入门

.Net Framework, .NET Standard, .Net Core, Mono 是什么关系? #

  • .NET 是规范,其他是实现
    • 由于 .NET 对库函数的引用类似动态链接库,程序集内并不包含库函数的实现,只包含库函数的签名,然后运行的时候才去加载对应的有实现的程序集完成“链接”过程最后调用
    • 再后来 mono 和 .NET Core 完成了基础库的统一,变成了新的 .NET,于是 .NET Standard 的使命也结束了,只剩下一个统一的 .NET
  • 最开始 .NET Framework 只支持 Windows
  • 而 mono 是一个社区的跨平台实现
    • mono 能跑大部分的 .NET Framework 程序集
    • mono 也不能跑 .NET Core 的程序集
  • 后来出了个 .NET Core 跨平台了
    • 无法跑 .NET Framework 程序集
    • 无法跑 mono 程序集
  • .NET Standard
    • .NET Standard 参考三个实现的情况,划定了一组 API 的子集,这组 API 在 .NET Framework、mono 和 .NET Core 上都有实现
    • 然后使 .NET Framework、mono 和 .NET Core 都能加载 .NET Standard 程序集
    • 这样当用户调用 .NET Standard 里的 API 的时候,会把调用转发到当前运行时的基础库的实现上
    • 只要用户的代码基于 .NET Standard 编写,就能同时在 .NET Framework、mono、.NET Core 上跑了
    • 后来到了 .NET Standard 2.1 的时候,由于 .NET Framework 掉了队,不再新增新的功能,于是 .NET Standard 2.1 干脆不支持 .NET Framework 了,只支持 mono 和 .NET Core

参考:


本文访问量

本站总访问量

本站总访客数