gpt4 book ai didi

c# - .NET Core 与 .NET Framework 在内部如何工作?

转载 作者:行者123 更新时间:2023-11-30 12:22:16 26 4
gpt4 key购买 nike

在程序构建和运行方面,.NET Core 在内部实现方面与 .NET Framework 有何不同?我知道常规的 .NET Framework/C# 项目基本上被编译成 CIL 代码,分发,然后在运行时由 JITer 编译,最终将它们逐个函数地转换为机器代码(除非程序员指定了预编译选项)。 .NET Core 应用程序也是如此吗?有什么主要区别吗?

注意事项:

  1. 是的,我知道这两件事都非常复杂,我不希望回答者详细解释每个小组件。

  2. 我以前听说过 .NET Framework 的 CLR 被称为虚拟机,但我知道这是有争议的,并且在 this one 等帖子中看到过这样的争论。 ,CIL 与 Java 字节码的比较也是如此。这些都是无聊的争论,与问题无关。

  3. 我在那里发现了类似的问题,但是,这些问题似乎集中在 .NET Core 在功能/可用性方面对我们作为客户端程序员有何不同。这个问题与此无关,而是在询问 .NET Core 在内部实现方面与 .NET Framework 有何不同。

谢谢。

最佳答案

IL 或 JIT 过程没有区别。我有直接执行在 Core 上运行良好的 IL 的旧 .NET 代码。他们都完全实现了 CLI ECMA standard , 它们都具有相同的运行时组件。

每个平台的实现可能存在非常细微的差异,就像 Windows .NET 和 Mono 之间的差异一样。 , 但我不知道有什么。

CLI 步骤和框架实际上是不同的东西:您可能可以构建编译为有效 IL 而无需 .NET 或 Core 的 C# 代码,但我不确定即使没有原始类型您实际上能做什么。

区别几乎完全在于支持的框架 - 虽然全功能 .NET 与 Windows 绑定(bind),但 .NET Standard libraries是真正的跨平台。

这个问题太大了:人们一直在齐心协力将 .NET 中的所有内容移植到 .NET Standard 1.5,但这样的问题还很多。对于 .NET Core,有几个地方有一个全新的范例(例如 ASP.MVC 和 ASP Core MVC 是完全不同的)。您最好将问题缩小到特定区域和平台。

很快 所有 .NET 将在 .Net Standard 2.0 库上运行,而 .NET Framework 4/5/无论什么都将只是遗留的和仅限 Windows 的组件(WPF、WinForms 等) ) 在上面运行。

关于c# - .NET Core 与 .NET Framework 在内部如何工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41479118/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com