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