返回「资料来源、摘录与归档」

【ChatGPT】dotNet与Mono

更多
Markdown 结构化数据

【ChatGPT】dotNet与Mono

note · ChatGPT 问答录 本文保存一次 ChatGPT 问答原始输出,仅作为资料来源;其中结论未自动视为已验证知识,使用前应结合可靠来源复核。

# 【ChatGPT】dotNet与Mono

.NET .NETStandard .Net Framework的区别。 assets/image-20230819121447990.png

  1. .NET Framework:
    • 这是最初的 .NET 实现,由微软在 2000 年发布。
    • 它是 Windows 平台的完整开发框架,包括运行时、库和编译器等。
    • 适用于 Windows 桌面应用、Web 应用和服务等。
    • 最新的主要版本是 .NET Framework 4.8。
  2. .NET Core:
    • 这是 .NET 的轻量级、模块化和跨平台版本。
    • 它旨在支持 Windows、macOS 和 Linux 平台。
    • 主要用于服务器和云应用,但也可以用于桌面应用。
    • 随着 .NET 5 的发布,.NET Core 和原始的 .NET Framework 合并为一个统一的平台,称为 .NET 5。
  3. .NET Standard:
    • 这不是一个实际的框架实现,而是一种规范或接口。
    • 它定义了一组 API,这些 API 期望在所有 .NET 实现中可用。
    • 你可以将 .NET Standard 看作是 .NET 实现(如 .NET Framework、.NET Core、Xamarin)之间的桥梁。当你针对 .NET Standard 编写代码时,你可以确保代码在所有这些实现中都能运行。
    • 它的主要目的是使库开发者能够开发跨所有 .NET 实现工作的库。

总结:

  • .NET Framework 是原始的、完整的、仅限 Windows 的 .NET 实现。
  • .NET Core 是 .NET 的轻量级、跨平台版本。
  • .NET 5 是 .NET Core 和 .NET Framework 的合并,并将在未来成为主要的 .NET 版本。
  • .NET Standard 是一种规范,旨在使跨所有 .NET 实现工作的代码开发成为可能。

Unity 的mono Api Compatibility Level中的.NET4.x 和.NET Standard 2 分别对应于上述的哪个版本。 assets/image-20230819121507239.png 在 Unity 中,Mono 的 API Compatibility Level 设置用于决定你的项目将使用哪个 .NET 版本的功能集。具体来说:

  1. .NET 4.x:
    • 这个选项允许 Unity 项目使用更接近 .NET Framework 4.x 的 API。
    • 这意味着你可以使用更多的现代 C# 特性和更多的 .NET 类库。
    • 它并不是完整的 .NET Framework 4.x,但提供了接近的 API 覆盖率。
  2. .NET Standard 2.0:
    • 这个选项是基于 .NET Standard 2.0 规范的。
    • .NET Standard 是一个规范,定义了跨各种 .NET 实现(如 .NET Framework、.NET Core 和 Xamarin)应有的 API 集。
    • 当你为 Unity 项目选择这个选项时,你的代码将在遵循 .NET Standard 2.0 的任何平台上工作。这使得库的重用和跨平台开发变得更容易。 总结来说:
  • Unity 中的 ".NET 4.x" 更接近上述的 .NET Framework
  • Unity 中的 ".NET Standard 2.0" 对应于上述的 .NET Standard

值得注意的是,这些选项主要涉及到你可以在 Unity 项目中使用的 API。例如,选择 .NET 4.x 通常允许更多的 C# 7.x 和 8.x 特性,而 .NET Standard 2.0 为你提供了一个稳定且广泛受支持的 API 集,确保了在各种平台上的互操作性。