`
touchinsert
  • 浏览: 1315966 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

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

分享到:
评论

相关推荐

    Shared Source CLI Essentials.chm

    《Shared Source CLI Essentials》是关于共享源码CLI(Common Language Infrastructure)基础的一份重要文档,主要探讨了.NET Framework的核心部分,尤其是针对那些想要深入理解.NET平台工作原理的开发者。CLI是.NET...

    Shared Source CLI 2.0 Internals

    《共享源代码CLI 2.0 内部结构》一书深入探讨了Microsoft Shared Source CLI(简称Rotor)的内部机制,这是对ECMA-335 CLI标准的可移植实现,以源代码形式分发。本书由Joel Pobar、Ted Neward与David Stutz和Geoff ...

    Shared-Source-CLI-2.0-Internals.rar_Shared Source CLI_编译器

    《Shared Source CLI 2.0 Internals》是微软发布的一款开源工具,允许开发者深入了解和学习CLI(Common Language Infrastructure)的内部工作原理,特别是其编译器的实现。CLI是.NET框架的基础,它定义了中间语言...

    sscli_Shared Source CLI 2.0 (开发代号Rotor)

    Shared Source CLI 2.0 (开发代号Rotor) 是微软.NET Framework 2.0的Shared Source实现版本。Shared Source是微软推出的源代码共享计划,可以在一定限制的情况下获得/使用源代码,详情可以参考Microsoft Shared ...

    Shared Source CLI 2.0 Internals DRAFT

    《共享源代码CLI 2.0 内部结构》一书深入探讨了Microsoft Shared Source CLI(简称Rotor)的内部机制,这是对ECMA-335 CLI标准的可移植实现,以源代码形式分发。本书由Joel Pobar、Ted Neward与David Stutz和Geoff ...

    Shared Source CLI Essentials (2nd Edition) Draft

    #### 共享源代码 CLI(Shared Source CLI)介绍 - **定义与背景**:共享源代码 CLI(Common Language Infrastructure),代号为“Rotor”,是微软公开发布的 ECMA CLI 和 C# 语言规范的具体实现。它包含了大约三百万...

    微软.NET Framework开源代码SSCLI

    源码简介:Microsoft 发布了 sscli 2.0,所谓的 sscli 就是 Shared Source CLI。基本上是 .NET Framework 2.0 的 Microsoft 实现,当然是实际发布的 .NET Framework 2.0 的一个简化版本。 sscli 2.0 中包含很多有趣...

    SSCLI2.pdf

    SSCLI2.pdf是一个技术文档,主要探讨了SSCLI(Shared Source Common Language Infrastructure)以及与并发编程和C#中的线程管理相关的主题。SSCLI是微软公开的部分.NET框架源代码,它为开发者提供了一个深入理解.NET...

    sscli:共享源公共语言基础设施 2.0 版本

    SSCLI,全称 Shared Source Common Language Infrastructure,是微软发布的一种开源实现.NET框架的一部分,它揭示了.NET运行时环境的内部工作原理。这个版本,即2.0,提供了一个深入理解.NET运行时和编译器如何协同...

    azcopy 基本使用11

    #### 一、AzCopy简介与安装配置 AzCopy是一个由Microsoft提供的免费命令行工具,主要用于高效地迁移数据至Azure Blob、File或Data Lake Storage Gen2等服务。它作为免安装的可执行文件,方便用户快速上手使用。为了...

Global site tag (gtag.js) - Google Analytics