@H_502_2@
@H_502_2@
net framework目的:试图将多种语言在“任意系统”中无阻碍地运行,解决语言过度依赖系统,也解决一些突出@H_502_2@
的问题(如dll hell)@H_502_2@
多个语言都生成一个中间代码,中间代码在任意操作系统中(这个系统只要安装了net framework),就可再次@H_502_2@
1、多语言集一身@H_502_2@
2、任意移植不同系统@H_502_2@
于是,重点就是推出net framework(如下图),上层是任意语言开发,最终到netframewwork中被分成两大类:web与窗体@H_502_2@
@H_502_2@
@H_502_2@
@H_502_2@
@H_502_2@
@H_502_2@
@H_502_2@
@H_502_2@
因此,从vs2002开始,它努力的方向就是尽量把语言纳入一个IDE中,因为它努力将它们转化成一个不差别相互识别的中间语言。@H_502_2@
有人说,各种语言就是外在不同的表现,就如同你喜欢红色的衣服,而另外的人喜欢黑色的衣服一样,只是不同的口味而矣。@H_502_2@
至于微软怎么做,最终是否达到,我们试目以待。@H_502_2@
@H_502_2@
@H_502_2@
@H_502_2@
@H_502_2@
@H_502_2@
@H_502_2@
@H_502_2@
@H_502_2@
@H_502_2@
如下图,这是整个net framework的工作过程。@H_502_2@
1、先由IDE中的vb.net、C#等语句编写出源代码;@H_502_2@
2、由net framework中的语言编译器,编译成中间代码@H_502_2@
注意中间代码是不可执行的,但它在net framework透明的,即vb.net编的中间代码是“识别”C#编译的中间代码。@H_502_2@
上面过程就是程序员编写、并生成安装程序的过程。@H_502_2@
3、它程序安装或第一次执行时,它会再次被net framework中另一个编译器JIT再次编译,生成本地可执行代码。@H_502_2@
注意,它只是第一次才编译,后面就直接运行已经编译的,所以第一次执行时都会感觉很慢,后面就好了。@H_502_2@
第3步,就是移植安装的过程。@H_502_2@
两者都是要有net frmework。因此net framework中有两个编译器。@H_502_2@
@H_502_2@
@H_502_2@
@H_502_2@
@H_502_2@
net framework有点类似vb,和Java,但两者是有显著的区别:@H_502_2@
vb 是解释性语言,边解译边执行。@H_502_2@
java 是在虚拟机中翻译执行,每次都要这样。@H_502_2@
net framework却不同,它的成品程序,只在JIT中即时编译一次(这一次就点象jave或vb),@H_502_2@
正因为仅这一次,它生成了本地可执行的二进制代码,因此下一次它将不会再次经JIT编译。@H_502_2@
@H_502_2@
@H_502_2@
@H_502_2@
总结,net framework就是一中介公司,你只须和中介公司接触即可,它会自动处理不同语言的交互,与底层硬件和不同的@H_502_2@