.NET与Microsoft Shared Source CLI

1. .NET

.NET本质上是一个新的开发框架,为传统Windows操作系统(尤其是Windows2000API和服务提供全新的编程接口,它同时还将Microsoft90年代晚期开发的各种技术融合起来,这些技术包括COM+组件服务,ASP Web开发框架,对XML和面向对象设计的全面支持,对新的Web服务协议(如SOAPWSDL,和UDDI)的支持,现在以Internet为中心,都集成在原来的DNA体系中。

.NET平台包括4个不同的产品群:

1 一组语言,包括C#VB.NET;一套开发工具,包括Visual Studio.NET;一个创建Web服务,Web程序和Windows程序的综合类库;以及内置于框架中执行对象的运行期环境CLRCommon Language Runtime,公共语言运行期)。

2 一组.NET企业级服务器,即原先称为SQL Server 2000Exchange 2000Biztalk 2000等服务器产品,提供了关系型数据存储,电子邮件和B2B商务等各种专门功能。

3 一组商用Web服务,即最近发布的Hailstorm计划;开发者在付费后可以使用这些服务。

4 新的应用.NET的非PC设备,从手机到游戏机。

Microsoft .NET不仅支持语言无关性,而且支持语言的集成性。这意味着可以跨越不同语言继承类,捕捉异常并应用多态性。.NET框架通过所有.NET组件都需遵守的类型规范CTSCommon Type System,公用类型系统)实现了这一点。

而且.NET还引入CLSCommon Language Specification,公用语言规范),提供了语言继承必须的一系列基本规则。CLS规定了成为.NET语言的最低要求,符合CLS的编译器都可以生成彼此能互相操作的对象。整个FCLFramework Class Library,框架类库)可以被符合CLS的任何语言使用。

.NET中,程序并不编译为可执行文件,而是编译成Microsoft ILMicrosoft Intermediate LanguageMicrosoft中间语言)文件,而后由CLR去执行,C#生成的Microsoft IL文件与其他.NET语言完全相同,平台不会区分语言。关于CLR关键的一点在于,它是公用的,这个运行期系统既支持用C#,也支持用VB.NET

C#代码在Build工程时将被编译为IL,在运行时,IL会使用即时(JITJust in time)编译器再次编译,这一过程常被称为JITing,生成的结果就是机器码,可以由机器的处理器执行。

2. Microsoft Shared Source CLI的运行引擎包括源代码,并支持remoting, context model, threading,code access security。所有这些加在一起是一个包括9000多源文件的代码库。这是微软发布的最大的代码库。微软的这个代码库严格遵循CLI规范。Microsoft Shared Source CLI还包括完整的C#Jscript编译器源代码。还有

ILASM,ILDASM,cordbg.exe, sn.exe, gacutil.exe, al.exe caspol.exe peverify.exe等。

Share Source CLI将源代码最终编译为5个文件:Mscorlib.dll, System.dll, System.xml.dll, System.runtime.remoting.dllSystem.runtime.serialization.formatters.soap.dll

Share Source CLI和商业CLR的差异:

Library

What's Missing

Public Classes

Public Classes Missing

System.dll

Most of Microsoft.Win32
Most of System.ComponentModel
Most of System.Diagnostics
System.IO classes
System.Timers

237

274

System.runtime.remoting.dll

HttpRemotingHandler

25

3

System.xml.dll

No public classes changed

212

0

Mscorlib.dll

Microsoft.Win32.Registry Lots of System.Runtime.Interop-Services All of System.Security.Cryptography

867

188

System.runtime.Serial-ization.formatters
Soap.dll

Nothing

2

0

因为Share Source CLICLRdemo版,不是商业版,你找不到windows formsado.net 或者web service这样的服务。

Share Source CLIclass库层次
<shapetype id="_x0000_t75" stroked="f" filled="f" path="m@4@5l@4@11@9@11@9@5xe" o:preferrelative="t" o:spt="75" coordsize="21600,21600"><stroke joinstyle="miter"></stroke><formulas><f eqn="if lineDrawn pixelLineWidth 0"></f><f eqn="sum @0 1 0"></f><f eqn="sum 0 0 @1"></f><f eqn="prod @2 1 2"></f><f eqn="prod @3 21600 pixelWidth"></f><f eqn="prod @3 21600 pixelHeight"></f><f eqn="sum @0 0 1"></f><f eqn="prod @6 1 2"></f><f eqn="prod @7 21600 pixelWidth"></f><f eqn="sum @8 21600 0"></f><f eqn="prod @7 21600 pixelHeight"></f><f eqn="sum @10 21600 0"></f></formulas><path o:connecttype="rect" gradientshapeok="t" o:extrusionok="f"></path><lock aspectratio="t" v:ext="edit"></lock></shapetype><shape id="_x0000_i1025" style="WIDTH: 189pt; HEIGHT: 177pt" type="#_x0000_t75"><imagedata o:title="CLIProfiles" src="file:///C:%5CDOCUME~1%5CADMINI~1%5CLOCALS~1%5CTemp%5Cmsohtml1%5C01%5Cclip_image001.png"></imagedata></shape>

Share Source CLIdll依赖:

<shape id="_x0000_i1026" style="WIDTH: 279pt; HEIGHT: 122.25pt" type="#_x0000_t75"><imagedata o:title="dependencies" src="file:///C:%5CDOCUME~1%5CADMINI~1%5CLOCALS~1%5CTemp%5Cmsohtml1%5C01%5Cclip_image003.png"><font size="3"></font></imagedata></shape>

运行时框架

Share Source CLI的运行时环境实行3个主要认为:

1 loading,实行代码

2 内存管理

3 安全管理

运行时的何姓包含3个类

ClassLoader(clsload.h) 管理ILmetadata的加载和监管什么时候如何运行JIT编译器。ClassLoader的运行涉及到EEClass对象(class.hclass.cpp)的事例维护。

FJit (fjit.h) 读取IL,生成x86机器代码。JITsscli/clr/src/fjit编译code

GCHeap(gc.h)内存管理和garbage collection

<shape id="_x0000_i1027" style="WIDTH: 369pt; HEIGHT: 148.5pt" type="#_x0000_t75"><imagedata o:title="coreclasses" src="file:///C:%5CDOCUME~1%5CADMINI~1%5CLOCALS~1%5CTemp%5Cmsohtml1%5C01%5Cclip_image005.png"><font size="3"></font></imagedata></shape>

下载Share Source CLI

http://msdn.microsoft.com/net/sscli/

建立build环境,调用env.bat文件,创建环境变量,和所需要到目录。之后巡行buildall.cmd文件。结果会生成\build目录包括30 dll23Exe,还有一些其它支持文件。

你可能感兴趣的:(.net,Microsoft,F#,asp.net,VB.NET)