DOTNET框架基本原理.ppt_第1页
DOTNET框架基本原理.ppt_第2页
DOTNET框架基本原理.ppt_第3页
DOTNET框架基本原理.ppt_第4页
DOTNET框架基本原理.ppt_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

.NET 技术.NET框架开发平台体系架构 .NET是微软推出的第三代网络平台。它激 发了新的程序开发方式,在新的架构中,.NET 强调语言归语言,系统归系统,在平台上推出 新的 .NET Framework(.NET框架),通过一 致的 Common Language Runtime 执行应用程 序。 .NET 技术.NET框架开发平台体系架构 .NET架构 WindowsCOM+ Services 公共语言运行时(CLR) 基类库(Base Class Library) ADO.NET and XML ASP.NETWindows Forms 公共语言规范(Common Language Specification) VBC+C#JScript .NET 技术.NET框架开发平台体系架构 1、将源代码编译成托管模块 .NET框架的核心是通用语言运行时(Common Language Runtime,简称CLR),顾名思义它是一个可被 各种不同的编程语言所使用的运行时。实际上,CLR在 运行时对开发人员用何种编程语言来完成源代码一无所知 ;也就是说我们可以使用任何自己喜欢的编程语言来编写 代码(我们使用的编译器能编译面向CLR的代码)。 编译器可以看作是一个语法检查器和“正确代码”的分 析器。它们对我们的源代码进行检查,确保我们编写的所 有东西有意义,最后输出描述我们意图的指令序列。 .NET 技术.NET框架开发平台体系架构 下图演示了源代码文件的编译过程: .NET 技术.NET框架开发平台体系架构 不管我们使用的是何种编译器,最后生成的都是一个托管模块( managed module)。托管模块是一个需要CLR才能执行的标准Windows可移 植可执行(portable executable,简称PE)文件。 表:托管模块的组成部分 部分 描述 PE表头 该表头指出了文件的类型:GUI、CUI,或者DDL(程序集文 件),文件创建时间 等信息 CLR表头 包含托管模块所需要的CLR版本号、托管模块入口点方法( Main方法)的MethodDef元数据标记 等信息 元数据 每个托管模块都包含有一些元数据表,描述源代码中定义/ 引用的类型和成员 中间语 言 (IL)代码 编译 器在编译 源代码时产 生的指令。CLR在运行时会将IL 代码编译 成本地CPU指令 .NET 技术.NET框架开发平台体系架构 2、将托管模块组合为程序集 实际上,直接和CLR打交道的对象是程序集(assembly )。它由一个或多个托管模块,以及一些资源文件的逻辑组 合,是组件复用及实施安全策略和版本控制的最小单位。程 序集可以是一个或多个文件。 默认情况下,编译器会将产生的托管模块转换为一个程 序集。也就是说,C#编译器产生的是一个包含了清单( manifest)的托管模块。清单仅仅是另外一些元数据表的集 合。这些表描述了组成程序集的文件,程序集所有文件中实 现的仅有导出类型,以及一些和程序集相关的资源文件或数 据文件。 .NET 技术.NET框架开发平台体系架构 程序集中的模块也包含它所引用的程序集的一些信 息。这些信息使得一个程序集得以实现自描述(self- describing)。换句话说,CLR知道执行一个程序集所 需要的所有内容,不需要再在注册表或活动目录中获取 额外的信息。 .NET 技术.NET框架开发平台体系架构 3、加载通用语言运行时 4、执行程序集代码 .NET 技术.NET框架开发平台体系架构 5、.NET框架类库 在.NET框架中包括有一组.NET框架类库( Framework Class Library,简称FCL)程序集,其中含有 几千个类型的定义,每个类型提供某种功能;相关的类型 放在一个由命名空间(namespace)组织的集合中提供给 开发人员。 .NET框架类库是一个由.NET Framework SDK中包 含的类、接口和值类型组成的库。该库提供对系统功能的 访问,是建立.NET Framework应用程序、组件和控件的 基础。 .NET 技术.NET框架开发平台体系架构 6、通用类型系统 大家应该很清楚CLR的所有内容都是围绕着类型展 开的。类型为应用程序和组件提供了它们所需要的功能 类型也作为一种机制使得不同语言之间的代码进行无缝 地集成。由于类型是CLR的基础,Microsoft为此专门 制定了一个正式的规范通用类型系统(Common Type System,简称CTS)来描述类型的定义和行为。 .NET 技术.NET框架开发平台体系架构 7、通用语言规范 大家清楚各种编程语言之间有着很大的差别,如果 希望创建的类型可以被其他编程语言方便地访问,只能 使用编程语言中那些对其他语言来说也可用的特性。为 了解决这一问题,Microsoft定义了一个通用语言规范( Common Language Specification,简称CLS),该规范 为编译器厂商详细描述了面向CLR的编译必须支持的一 个最小特性的集合。 .NET 技术.NET框架开发平台体系架构 8、与非托管模块互操作 .NET框架提供了许多较其他开发平台优越的特性。 然而,很少有公司能够负担得起重新设计并实现所有现存代码。 Microsoft意识到了这一点,并为此对CLR做了特殊的设计,从而使 其允许应用程序同时包含托管和非托管部分。CLR支持三种互操作情 形: 方式 描述 托管代码调 用DLL 中的非托管函数 托管代码使用一种称作P/Invoke机制来调用DLL(传 统的动态链 接库文件)中的函数。实际 上,许多FCL 中定义的类型内部都调用了从Kernel

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论