托管执行概述
基于组件的设计概述
.NET是微软公司于2002年(1.0版本)正式发布的新型开发平台。它是一种采用系统虚拟机运行的编程平台,以通用语言运行库(Common Language Runtime)为基础,支持多种编程语言的开发,并具有安全性高,可移植性强的特点。
.NET时代
新的执行方式——托管
新的开发方式——基于组件
安全性
跨平台的可移植性
多开发语言支持
避免DLL陷阱
简便的部署方式
运行.NET 程序的客户端必须安装 Microsoft .NET Framework
当前最新.NET版本:.NET Framework4.5,2012年发布, 集成于Visual Studio 2012
运行于Windows XP之上版本(客户端)
什么是MS .NET Framework和MS Visual Studio有什么关系?
设计上的权衡
可移植性
安全执行性(托管代码)
效率
由通用语言运行库(CLR)环境(而不是直接由操作系统)执行的代码,是一种中间语言,可由20多种语言翻译而来,再编译为.NET平台专用文件。
C#, VB, J# 编译器会生成托管代码
C++有两种选择
托管代码
非托管代码(native exe/dll)
常用于操作系统级编程和原有应用程序
历史版本的兼容
托管代码应用程序可以获得通用语言运行库服务,例如自动垃圾回收、运行时类型检查和安全支持等,从而避免一些安全黑洞和不可靠设计带来的隐患。
CIL:Common Intermediate Language(IL/MSIL)
等价于Managed Code
是CLR上的汇编语言
各种语言共享统一类库集合,并被编码为中间语言。
应用程序提供所需assemblies的名称和版本号。
三步搜索:
搜索GAC(全局程序集缓存 windows/assembly)
根据配置文件(.config)在指定路径搜索
搜索可执行文件所在的当前工作目录
Assemblies搜索
.NET Assemblies的优点
无需注册表注册
避免DLL陷阱
版本信息保证了不同应用程序可以使用正确的版本,且不发生版本覆盖
部署方便