-
.NET Framework类库
-
内容丰富的托管代码类集合
-
划分成模块
- 不同平台根据特性支持部分或全部模块
- IL提供的核心功能,例如,通用类型系统中的基本数据类型
Windows GUI支持和控件
Web窗体
数据访问
目录访问
文件系统和注册表访问
网络和web浏览
NET特性和反射
访问Windows操作系统的各个方面(如环境变量等)
COM互操作性
-
公共语言运行库CLR
- Common Language Runtime
-
.NET 运行库
- .NET核心执行环境
-
任务
-
托管代码的
- 编译
-
运行
- 垃圾回收
- garbage collection
- 频繁检查内存,删除不再需要的内容
- 没有时间帧
- 在不可与之的时间进行
-
管理方式
- 管理内存
- 允许进行夸语言调试
-
程序集
- 包含编译好的、面向.NET Framework的代码的逻辑单元
-
IL代码储存
- 可执行的应用程序*.exe
- 程序使用的库*.dll
-
元信息/元数据
- 数据的信息
- 允许程序集是完全自我描述的
- 不需要其他信息就能使用程序集
-
不会遇到
- 不能把需要的数据添加到注册表
-
可选资源
- 声音,图片等
-
共享程序集
- 可重用的代码放在所有应用程序都可以访问的地方
-
全局程序集高速缓存GAC
- Global Assembly Cache
- 把包含代码的程序集放在包含该高速缓存的目录下
-
托管代码
- 平台无关性
-
性能提高
- IL是即时编译
-
JIT不是一次性编译所有代码
- 只编译调用到的代码
-
保存已编译的内部可执行代码
- 下次调用无需重新编译
- 大部分代码不是每次运行都执行
-
非托管
- 不在CLR控制下的应用程序
- 可以访问操作系统的低级功能
-
编译代码
- 把代码转换成目标操作系统能够理解的语言,本机代码
- 把代码编译成中间语言IL代码
-
JIT编译器把IL编译成专用目标机器的本机代码
- Just-In-Time
- IL代码仅在需要时才编译
-
IL代码
- Intermediate Language
- 独立于机器、操作系统、CPU
- 面向对象和使用接口
-
值类型与引用类型
- 预定基本数据类型
-
值类型
- 变量直接保存其数据,在堆栈上面分配存储空间
-
引用类型
- 变量保存数据的地址,引用类型的数据在堆上分配存储空间。
-
强数据类型
- 所有的变量都清晰地标记为属于某个特定数据类型
- 语言互操作性
-
公共语言规范CLS
- Common Language Specification
-
通用类型系统 CTS
- Common Type System
-
最低标准集
- 所有.NET语言必须支持
- 实现在各种语言之间进行交互
-
定义IL中可使用的预定义数据类型
- .NET的语言生成基于这些类型的编译代码