【问题标题】:How .net framework works.net 框架的工作原理
【发布时间】:2011-05-21 14:27:42
【问题描述】:

伙计们,我一直在从事一个项目,我的一位老师希望我解释 .net Framework 的工作原理。

我写道,我们可以使用 .net 框架代码在其他语言中使用它,我需要解释原因。你能帮帮我吗?

【问题讨论】:

  • 网上有很多关于这个的文档,试试:msdn.microsoft.com/pt-br/netframework/default.aspx
  • 这是你真正需要自己研究和弄清楚的作业类型。当然,除了“问一个已经知道的人”之外,这个任务还有一个意义。

标签: .net frameworks


【解决方案1】:

.NET 语言(C#、VB.net 和许多其他语言)编译为 .NET 字节码,然后由虚拟机公共语言运行时 (CLR) 解释。这是简短的答案。

Wikipedia article about CLR 上有一张漂亮的图片,说明了源代码如何转换为本机代码。

.NET 字节码包含有关类、方法的信息,以及可供其他基于 .NET 的语言使用的信息。

一个有用的实用工具是.NET reflector,它可用于对 .NET 字节码进行逆向工程并将其转换为 C# 或 Visual Basic 代码。

更多细节,在网上搜索CLR,你会发现很多资源。

【讨论】:

  • 你如何在其他语言中使用它?
  • @user371612:“其他语言”需要一个可以将它们解释为 CIL 代码的编译器,这是由 .NET 运行时编译/运行的。
【解决方案2】:

无论是 C# 编译器、VB 还是 Delphi,任何编译器的输出都是使用相同的中间语言 (IL) AKA 字节码创建的。因此,它们中的任何一个的输出都可以组合(链接)在一起以执行。这也允许在任何具有可用 JIT 编译器的处理器上运行此代码(JIT - 及时将 IL 中的字节码编译为给定处理器架构的硬件特定的)

【讨论】:

    【解决方案3】:

    编译/解释代码是关于转换代码,通常是从人类可读的形式到更接近处理器语言的更有效的形式。

    Microsoft 制作了一个名为 Common Language Runtime 的虚拟机。您可以将 CLR 视为创建为软件的更灵活的处理器。 CLR 还引入了一些约束,有助于确保与 Microsoft 操作系统的可比性。

    任何旨在编译为 CLR 理解的字节码的编程语言都可以用作 .NET 语言。 CLR 并不关心字节码是如何产生的,因此您甚至可以制作自己的语言来生成字节码。

    【讨论】:

      【解决方案4】:

      我需要解释原因

      简单的解释是因为不管是哪种编码语言,它都会编译成框架可以执行的.net伪代码。无论使用哪种原始编码语言,编译后的伪代码对于相同的操作看起来都是一样的。

      这当然过于简单,但这是一个起点,您可以做一些快速研究来填写细节。

      【讨论】:

      • 无法反驳 - 这不是最好的词选择。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-24
      相关资源
      最近更新 更多