三 .Net中的普通语言运行时(Common Language Runtime)指什么?它在.Net中处什么位置?
CLR(Common Language Runtime)普通语言运行时是整个.net framework构建的基础,是实现.Net跨平台,跨语言,代码安全等核心特性的关键。它实际上是驻留在内存里的一段代理代码,负责在整个.net整个执行期间的代码管理工作,比较典型的有:内存管理,线程管理,远程管理,代码强制安全类型等。这些都可称得上.net framework的生命线。实际上,普通语言运行时代理了一部分操作系统的管理功能。
.Net语言的互操作性是指遵循普通语言运行时(Common Language Runtime)规范的语言在对象继承方面的支持,即用一种语言在.Net平台下开发的类可在另一语言中重用,这通过一种称作微软中间语言MIL来实现,即语言编译器首先将该语言编译成微软中间语言,再在相应平台下编译出本地代码。这一切都是在普通语言运行时的规范下进行。
六 .Net支持的平台有哪些?它的跨平台实现得如何?
目前支持.Net的平台有Windows 2000, NT4 SP6a, Windows Me和Windows 98。其声称支持的平台有Unix,Linux等,目前有三个项目正在开发Linux下的.Net平台:Ximian公司的Mono项目,DotGNU以及 Potable .NET.
.Net中的中间语言是指可以在普通语言运行时规范下,.执行时通过即时(Just In Time)编译器转化为本地代码的,与CPU独立的一族指令集合。它在.Net平台中是实现语言互操作的一个核心环节,所有.Net平台的语言都要先被编译成中间语言(IL)。程序员也可以直接利用中间语言(IL)来编程,但不推荐那样做,中间语言对理解.Net对象某些行为和程序的调试很有帮助
.Net的受管代码(Managed Code)是指符合普通语言运行时(Common Language Runtime)规范,在内存中受运行时代码代理进行内存管理,线程管理,远程管理,代码强制安全类型的代码。非受管代码指对内存,文件,数据库等非受管资源进行操作的代码,他们通常不受运行时代码代理管理,是不安全的。对受管代码的编程只需专注于编程的逻辑,对于内存等资源的管理交由普通语言运行时(Common Language Runtime)来负责,而对非受管代码的编程,则要开发人员精心负责各种非受管资源的分配和回收工作。