使用者可以使用任何一种与普通语法规范(CLS)一致的编程语言建立自己的.NET应用程序。开发者们可以使用不同的编程语言(包括全异语言)来进行一个项目的开发,只要他们对.NET FRAMEWORK 有足够充分的理解,他们就可以把自己在其他任何语言中的使用技巧在一个项目中发挥得淋漓尽致。
在通用计算机语言可执行的领域里 (包括源程序,数据和元数据), 汇编语言 (包括列表清单或者更多的模块),通用的类型体系 (CTS) 常用的惯例的集合.当编程人员在用自己喜欢的编程语言写源代码的时候, 这个源代码在被转化成媒介语言(IL)之前,先被编译成了一个独立的可执行单元(PE)。
Windows PE and a .NET PE的主要区别在于Windows PE 是由操作系统执行的,而.NET PE 被转变成为.NET Framework的CLR.
识别一个PE是 .NET还是Windows取决于他的通用的目标文件格式 (COFF) 是否使用Windows的操作系统. 目标文件格式 (COFF)
指定了任何文件都分成两个部分:文件数据本身以及描述文件内包含的数据内容的头文件串。特别注意:为了方便所有的使用微软操作平台的用户进行目标文件格式
(COFF) 的修改以便使用.NET PE, 微软已经发布了新的可以支持所有.NET的操作系统 (Win98, Win2000,Win Me).
元数据是组件对象模型中关于PE的信息, 元数据之间是通过非标准类型的库通信的. 在.NET中,这些数据包含在目标文件格式中,包括与目标文件格式相匹配的PE以及某些确定的指导方针;他所包含的信息像汇编的名字,版本号,语言(口语化的非计算机专用术语,也称之为文化用语),外部的形式用作参考注释,
内部形式也很透明,清楚的阐明了使用的方法,引用的函数,类等等。
通用计算机语言(CLR)使用元数据是有专用目的的。安全性是由一个公用的秘钥在PE的头文件中管理的. CLR可以知道一些关于类和模块的信息, 如果需要的话甚至结构的信息也可以掌握。
CLR中类装载器的组件也使用元数据载汇编中定位特殊的类,本地的或者网络间的均可。一种名为Just-in-time (JIT) 的编译执行技术也使用了元数据来把媒介语言(IL)转换成可执行的代码。
一些其他的程序也同样在使用元数据时受益匪浅。这里有一个很普遍的在Windows 2000下使用Word 文档的例子。如果这个文档文件已经完成了内容,作者,标题,或者其他的一些元数据,
他的文本内容会像工具注释一样的显示出来,当使用者挥动着鼠标到这个文本文件图标的上方时。你可以使用Ildasm.exe
的功能来看PE库中的元数据。我们也可以称这个工具是媒介语言(IL)的反编译器。