欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

.NET与Microsoft Shared Source CLI Microsoft.netASP.netVB.NETF# 

程序员文章站 2022-07-05 23:01:43
...

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>

.NET与Microsoft Shared Source CLI
            
    
    
        Microsoft.netASP.netVB.NETF# 

Share Source CLIdll依赖:

.NET与Microsoft Shared Source CLI
            
    
    
        Microsoft.netASP.netVB.NETF# 

<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

.NET与Microsoft Shared Source CLI
            
    
    
        Microsoft.netASP.netVB.NETF# 

<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,还有一些其它支持文件。