预览加载中,请您耐心等待几秒...
1/4
2/4
3/4
4/4

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

.NET平台前⾔“对于刚开始接触C#的初学者来说,了解⼀下.NET平台是很有必要的。”这是我在看C#的时候常听到的⼀句话,所以就总结了⼀下有关.NET平台的⼀些基础知识。事先声明:以下所述,错误难免,如有误导之处,请⼤家给予指正。.NET平台.NET平台⼜称.NET框架(.NETFramework),是.NET的核⼼组成部分,提供了⼀个多语⾔组件开发和执⾏的环境,⼀个完全可操控的安全的和特性丰富的应⽤开发执⾏环境,这不但使得应⽤程序的开发和发布更加简单,并且实现了众多语⾔间的⽆缝集成。⼀个.NET应⽤程序⼀定是⼀个运⾏在.NETFramework上的应⽤程序,如果⼀个应⽤程序跟.NETFramework⽆关,它就不能叫做.NET程序。.NET体系结构⾸先,给出.NET作为开发平台在计算机中的位置,如图所⽰:然后,给出.NETFramework的体系结构,如图:在图中可见,.NETframework体系结构的最顶层是各种语⾔,有VisualBasic.net、Visual,visualC++和C#.netvisual等⼏⼗种j#.net。其中,C#是为了更好的发挥.NET的各种优势,Microsoft公司在⼏⼗年开发程序设计语⾔的基础上,精⼼设计的全新程序设计语⾔。图中可以看出,CLR是.NetFramework的底层,它定义了在不同的编程语⾔之间通⽤的数据类型,提供程序运⾏所需要的内存管理和⽣命期管理。CLR的意义在于:从运⾏时的⾓度看,.NET是基于Windows系列操作系统(包括服务器、⼯作站、智能⼿机、PDA)的跨设备的统⼀运⾏平台;从开发者的⾓度看,凡事符合CLS的程序语⾔所开发的程序都可以在任何有CLR的操作系统上执⾏和互操作,具有与平台⽆关的特性,同时可以相互调⽤。从图中还可以看出,CLR之上的是.NETFramework类库,它提供了⼀整套从基本输⼊输出到数据访问以及⽤于构建Web应⽤和Windows桌⾯应⽤的组件类库。上⾯这幅图是程序执⾏过程,我们可以看到,⼏乎所有语⾔在进⼊.NET的时候必须重新设计编译器,在语⾔外部特征不变的情况下,语⾔的内在规则最好尽量符合公共语⾔规范(commonlanguagespecification),编译器向公共语⾔运⾏,CLS库(commonlanguageruntime,CLR)提供原始信息。需要注意的是,编译器向CLR提供的编译结果并不是机器代码,⽽是⼀种中间语⾔(Microsoftintermediatelanguage,MSIL).中间语⾔再由JIT(justintime)编译器编译,JIT将中间语⾔快速地转换称本地机器指令,在CLR中执⾏。在图中,CLS外⾯使⽤了⼀个虚线框,⽬的是说明CLS并不是⼀个实体,⽽是编译器遵守的规范。CLS不能⽀持所有的语⾔的所有成分,对于不受CLS⽀持的成分,则需根据不同的情况另⾏处理。另外,如果还是不太理解的话,我可以再举⼀个C#的具体例⼦,如图所⽰:.NET平台的实体.NET平台有两个重要的实体:公共语⾔运⾏库和.NETFramework类库,下⾯分别加以了解。公共语⾔运⾏库CLR(CommonLanguageRuntime),⼜称公共语⾔运⾏时或公共语⾔运⾏环境,是.NET系统架构中核⼼的部分,CLR和Java虚拟机⼀样是⼀个运⾏时环境。其主要功能包括:执⾏和管理:完成运⾏过程中的代码加载/应⽤程序和托管对象的内存管理/对象⾃动布局,使⽤JIT(justintime)编译器将MSIL编译成本地代码并且控制代码执⾏、处理⼀场等全部步骤。提供安全保证:类型安全、代码访问安全、控制托管和⾮托管代码的互操作。对开发者的⽀持:提供界⾯信息,帮助调试。CLR还能够⾃动地处理对象的存储分配、管理对象的引⽤,在对象⽣命期结束时回收资源,以防内存泄漏和⼀些程序错误,这种技术⼜称为垃圾收集器(garbagecollection,GC)。.NET的⼀⼤特⾊是⽀持跨语⾔集成,⼜称跨语⾔编程、混合编程或者跨语⾔互操作。在.NET上⽤不同语⾔⽣成的对象可以互相通信,它们的⾏为能够紧密集成。如:⽤⼀种语⾔定义⼀个类,可以在另⼀种语⾔环境中继承这个类;⽤⼀种语⾔写的⽅法,被调⽤时,可以⽤另⼀种语⾔编写的对象作为实参。为了实现这⼀⽬标,.NET框架中采⽤了很多新技术,但是这些技术不能涵盖现有语⾔的所有成分,有的甚⾄彼此⽭盾。因此,在.NET中,将代码分为托管代码和⾮托管代码两种。下图中显⽰了CLR、⾮托管代码和托管代码之间的关系:.NETFramework类库FCL(FrameworkClassLibrary)和CLR⼀样,.NET框架类库(.NETFrameworkclasslibrary)是构成.NET框架的另⼀个实体,它提供数千个类、接⼝等⼯具供程序员使⽤,其