[读书笔记] .Net 框架程序设计 (1)
1. 什么是元数据
每个托管模块都包含的一些元数据表。元数据表主要包括两种:
描述源代码中定义的类型和成员;
描述源代码中引用的类型和成员;
2. 什么是JIT(Just-In-Time)
所谓即时编译器,就是只有在运行时等到代码被第一次执行的时候才将IL代码编译成CPU指令,这一次相对来说比较损耗性能,但是之后该代码再次被调用时,就不再重新编译,而是直接调用上次已经调用的CPU指令。一般而言JIT编译器在性能上已经做好许多优化。但是如果觉得还不满意的话,可以利用NGen.exe工具(C:\Windows\Microsoft.NET\Framework\v2.0.50727\NGen.exe),它可以预先把IL代码编译好放在一个文件中。
3. 如何一个进程中运行多个托管应用程序?
一个托管应用程序称为应用程序域(AppDomain),一般情况下一个EXE进程仅执行一个AppDomain(其实它可以
执行多个,例如IIS宿主进程)
4. 特性标记:CLSCompliant
每个托管模块都包含的一些元数据表。元数据表主要包括两种:
描述源代码中定义的类型和成员;
描述源代码中引用的类型和成员;
2. 什么是JIT(Just-In-Time)
所谓即时编译器,就是只有在运行时等到代码被第一次执行的时候才将IL代码编译成CPU指令,这一次相对来说比较损耗性能,但是之后该代码再次被调用时,就不再重新编译,而是直接调用上次已经调用的CPU指令。一般而言JIT编译器在性能上已经做好许多优化。但是如果觉得还不满意的话,可以利用NGen.exe工具(C:\Windows\Microsoft.NET\Framework\v2.0.50727\NGen.exe),它可以预先把IL代码编译好放在一个文件中。
3. 如何一个进程中运行多个托管应用程序?
一个托管应用程序称为应用程序域(AppDomain),一般情况下一个EXE进程仅执行一个AppDomain(其实它可以
执行多个,例如IIS宿主进程)
4. 特性标记:CLSCompliant
1
// 告知编译器检查CLS(通用语言规范)的兼容性
2
[assembly:CLSCompliant(true)]
3
public class App
4
{
5
// UInt32 与CLS 不兼容
6
public UInt32 Abc(){return 0;}
7
8
// 不能用大小写来区别标识符
9
public void abc(){}
10
11
// 正确,因为是私有的
12
private UInt32 ABC() {return 0;}
13
14
}

2

3

4

5

6

7

8

9

10

11

12

13

14
