首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >.NET for Visual FoxPro Developers(4)

.NET for Visual FoxPro Developers(4)

作者头像
firstxinjie
发布2024-12-06 14:47:26
发布2024-12-06 14:47:26
2670
举报
文章被收录于专栏:X#(XSharp)X#(XSharp)

托管代码(Managed Code)

从 .NET 的角度出发,世界上存在两种类型的代码:托管代码非托管代码

托管代码 是由公共语言运行库(CLR)执行和管理。托管代码包含一些元数据,它提供了一些信息,允许在运行时刻提供诸如内存管理、安全、垃圾回收这样的服务。所有的 MSIL 代码都是托管代码。关于元数据的更多信息,参看本章后面的 “清单(Manifests)” 小节。关于垃圾回收的更多信息,参看第五章“C# 和 Visual Basic .NET 中的面向对象”。

非托管代码 是在 .NET 之外运行的代码。这包括位于 COM 服务中的 Visual FoxPro 代码。(图 3)。

图 3. 在.NET 公共语言运行库外运行的非托管代码

代码和非托管代码是不同的。关于不安全的代码的有关信息,参看第三章“C# 入门”。

程序集(Assemblies)

在 Visual FoxPro 中,依赖于你编译的项目类型,结果会是 APP、EXE 或DLL 文件。在 .NET 中,Windows Forms 和 控制台项目被编译成包含 MSIL 的 EXE 文件;Web Forms、Web Services 和类库项目(包含 Windows 控件库)被编译成包含 MSIL 的 DLLs 。这些 EXE和 DLL 文件被称为程序集(assemblies)。

程序集是 .NET 应用程序的主要构成部分。程序集这个术语比物理设计要更合乎逻辑,因为,尽管一个程序集通常是由一个单一文件组成,但是它也可以由一个或多个文件组成。 (图 4).

多文件程序集允许你将程序集分解为更小的单元,它们很容易维护并具有易于下载的很小的文件尺寸。它也允许你创建一个程序集,其中的组件由多种语言构建。

图4. 一个程序集可以由一个或多个物理文件组成。

程序集是自描述的——它并不需要在 Windows 注册表中注册,因为它拥有一个包含关于程序集元数据的清单(manifest)。

清单(Manifests)

程序集的清单包含一些诸如程序集身份的信息(名称、版本以及区域性(culture)),在程序集中有所有文件的列表、所有引用的程序集以及所有类及成员的详细资料。

查看程序集清单的最好方式是使用 .NET IL 反汇编工具。IL 反汇编程序(ildasm.exe)可以在 FrameworkSDK\Bin 路径下找到,该路径在包含 .NET Framework 的目录下。(译者注:该文件在 VS2003 和 VS2005 中可找到,在 VS2008 中未找到。且,打开的文件,需是对应 VS 版本生成的文件。)你只需要在资源管理器中双击它就可以运行。要查看一个程序集,请执行 文件|打开,然后选择一个 .NET 程序集。反汇编结果显示了程序集清单以及在程序集中声明的任何命名空间(namespaces)(图 5)。关于命名空间(namespaces)的更多信息,参看本章后面的“命名空间(Namespaces)”一节。

图5. IL 反汇编程序允许你查看一个程序集的内容,包括任意的 MSIL 代码。

如果你展开命名空间节点,将会显示属于该命名空间的所有的类。图 6 显示了一些在反汇编程序中使用的图标列表及其描述。你可以在反汇编工具的帮助中找到这个列表。针对这些内容的详细描述(如类、接口、方法、静态方法等)请参看第五章 “C# 和 Visual Basic .NET 中的面向对象”。

图6. IL 反汇编程序使用不同的图标来表示程序集中不同的项目。

如果你双击反汇编器中树状视图的 Manifest节点,将会打开一个子窗口,在其中显示程序集的清单。当你打开程序集后,在窗口的顶部,你或许能看到程序集所引用的外部程序集列表(例如:“assembly extern System.Windows.Forms”)。你看到的第一行没有“extern”关键字的程序集引用表示从那里开始是清单的“identity”小节。在清单的 identity 段指定了程序集的名字。Identity 段也包含程序集的版本号。版本号显示在 “.ver” 的后面。

IL 反汇编程序最酷的特性大概是可以预览 MSIL 代码。如果你双击一个类的方法,它会打开一个窗口来显示 MSIL 代码。如果你想看到图 7所显示的 IL 代码,你可以选择 视图|显示源行 菜单。对许多开发者来说,相对于工具能带来的其他好处而言,可以看到源代码是所有想做的很酷的事情之一。

图 7. IL 反汇编程序允许你预览实际的 IL 代码、并随意的查看源代码。

未完待续......

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-09-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 xinjie的VFP 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 托管代码(Managed Code)
  • 程序集(Assemblies)
    • 清单(Manifests)
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档