.NET 托管代码 IL CLR关系
2013-04-15 17:04
148 查看
托管代码是由公共语言运行库环境(而不是直接由操作系统)执行的代码。托管代码应用程序可以获得公共语言运行库服务,例如自动垃圾回收、运行库类型检查和安全支持等。这些服务帮助提供独立于平台和语言的、统一的托管代码应用程序行为。 托管代码是可以使用20多种支持Microsoft .NET Framework的高级语言编写的代码,它们包括:C#, J#, Microsoft Visual Basic .NET, Microsoft JScript .NET, 以及C++。所有的语言共享统一的类库集合,并能被编码成为中间语言(IL)。运行库编译器(runtime-aware compiler)在托管执行环境下编译中间语言(IL)使之成为本地可执行的代码,并使用数组边界和索引检查,异常处理,垃圾回收等手段确保类型的安全。 在托管执行环境中使用托管代码及其编译,可以避免许多典型的导致安全黑洞和不稳定程序的编程错误。同样,许多不可靠的设计也自动的被增强了安全性,例如 类型安全检查,内存管理和释放无效对象。程序员可以花更多的精力关注程序的应用逻辑设计并可以减少代码的编写量。这就意味着更短的开发时间和更健壮的程序。 简单点说,托管代码是一microsoft的中间语言,他主要的作用是在.NET FRAMEWORK的CLR执行代码前去编译源代码,也就是说托管代码充当着翻译的作用,源代码在运行时分为两个阶段: 1.源代码编译为托管代码;(所以源代码可以有很多种,如VB,C#,J#) 2.托管代码编译为microsoft系统的.net平台专用文件(如类库、可执行文件等),即中间语言。 20多种语言写的代码 => 托管代码 => IL => CLR 执行
相关文章推荐
- [读书心得] .NET中 类型,对象,线程栈,托管堆在运行时的关系
- .NET Interop: 从IErrorInfo错误对象获得托管代码的异常信息
- .NET / Rotor源码研究3 – 调试Rotor托管代码的利器:WinDbg和SOS
- .NET Interop: 从IErrorInfo错误对象获得托管代码的异常信息
- .NET Interop: 从IErrorInfo错误对象获得托管代码的异常信息
- C#温故而知新学习系列之.NET运行机制—.NET中非托管代码是指什么?(二)
- .net平台和java虚拟机中托管代码的优点和区别
- 改善代码设计 “.NET研究”—— 处理概括关系(Dealing with Generalization)
- .NET / Rotor源码研究3 – 调试Rotor托管代码的利器:WinDbg和SOS
- .NET / Rotor源码研究3 – 调试Rotor托管代码的利器:WinDbg和SOS
- .NET / Rotor源码研究3 – 调试Rotor托管代码的利器:WinDbg和SOS
- 一起谈.NET技术,改善代码设计 —— 处理概括关系(Dealing with Generalization)
- .net 托管代码与非托管代码
- .NET Interop: 从IErrorInfo错误对象获得托管代码的异常信息
- asp调用.Net 托管代码
- .NET Interop: 从IErrorInfo错误对象获得托管代码的异常信息
- .NET Interop: 从IErrorInfo错误对象获得托管代码的异常信息
- .NET 托管、非托管、本地:这些代码有什么区别?
- .NET Framwork 之 托管代码的执行过程
- .net 托管代码与非托管代码