(声明:本系列只想给大家介绍.net框架,并不是语法和类的使用的讲解,所以只能概括的描述一下所提到的类,如果有疑问可以到MSDN上面去查)
前面我们讲解了.net大体的运行框架,和一些常用的Dll,现在我们就要来学习具体的应用程序了,首先来讲解一下Winform的运行框架吧.
我们现在先来看图:
在本系列的第一篇中,我们也是用这张图,在这里只是加了些注解,虚线连接的方块就是Winform加载时和别的应用程序的不同之处.
首先从第一个方块说起:加载Winform的进程,这里加载的并不是你所创建的应用程序,而是.net框架已经创建好的系统进程.启动Winform时,加载Winform的进程,启动Asp.NET时,加载IIS的进程,各应用程序是不同的.
第二个方块:在CLR挑选好了要加载Mscorewk.dll还是Mscorsvr.dll以后,就要加载MScorlib.dll和你所编译好的Winform的EXE,然后交给JIT去编译成当前平台可疑使用的机器码.
第三个方块:编译好机器码以后,就可以执行指令了,这里会创建Systemdomain,它包含了SharedDomain和默认的应用程序域,也就是当前应用程序自己的域,前面我们说过一个.net进程中可以包含多个默认的应用程序域,而这些应用程序域都会用到mscorlib.dll,如果每个默认的应用程序域中都去加载它,那么无疑会造成内存的浪费,所以就有了SharedDomain,它是用来放所有Domain都要用到的Dll,这样就避免了浪费内存.也优化了加载的速度.