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

下载本文档

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

文档简介

.NET.NETProgramming,anfdeng,.NET框架基本原理,.NET框架概述,.NET框架是由微软开发的一个致力于敏捷软件开发、快速应用开发、平台无关性和网络透明化的软件开发平台。.NET框架是一种采用系统虚拟机运行的编程平台。它以CLR为基础,支持多种语言(C#、C+等)的开发。.NET使得程序设计员可以同时进行Windows应用软件、网络应用软件、Web服务、WindowsPhone开发。,.NET框架版本的演进,1.0发行于2002年。微软第一个VisualStudio.NET版本(VisualStudio.NET2002)的一部分。1.1首个主要的.NET框架升级版本,发行于2003年。微软第二个VisualStudio.NET版本的一部分(VisualStudio.NET2003)。首个被Windows操作系统(WindowsServer2003)所内置的.NET框架版本。内置了对ODBC和Oracle数据库的支持。.NETCompactFramework(.NETCF)-一个用于手机等智能设备的.NET框架的子集。支持IPV6,.NET框架版本的演进,2.0发行于2005年10月。被包含在VisualStudio2005和SQLServer2005内。提供的新特性支持泛型支持64位平台,.NET框架版本的演进,3.0发布于2006.11(曾用名WinFX),附带于Vista中。依然使用2.0版本的CLR,但加入了适应未来软件发展方向的4个框架:WPF(WindowsPresentationFoundation):提供更好的UI体验。WCF(WindowsCommunicationFoundation):提供支持SOA的安全的Web服务框架。WF(WindowsWorkflowFoundation):支持设计与开发工作流相关的应用程序。WCS(WindowsCardSpace):曾用名InfoCard,用于SSO(单点登录)。,.NET框架3.0,.NET框架版本的演进,3.5随VS2008一起发布。支持LINQ和ASP.NETAJAX,统一了WF和WCF。2008年8月,微软推出了.NETFramework3.5SP1。ADO.NETEntityFramework。对SQLServer2008的数据提供程序支持。,.NET框架版本的演进,4.0随VS2010一起发布动态语言运行时DLR并行计算扩充了ADO.NETEntityFramework、3W4.52011.10发布技术预览版每一版本具体更新情况参看,.NET框架版本的演进,.NET框架的两个主要组件,CLR多种语言的互操作性托管和非托管代码之间的互操作性,可以继续使用COM组件和DLL可由SQLServer或IIS承载框架类库(FCL)与CLR紧密集成的可重用的面向对象类型集合。能够完成一系列常见编程任务(诸如字符串管理、数据库连接以及文件访问等)支持多种专用开发方案的类型:控制台应用程序、Windows窗体程序、ASP.NET应用程序、Web服务、手机应用等,CLR的主要功能,基础类库支持(BaseClassLibraySupport)内存管理、线程管理、内存自动回收安全性、型别检查、异常管理、除错管理中间码(CIL)编译到机器码(Native)开发人员使用高级编程语言编写程序。编译器将代码编译成微软的中间语言(CIL)。程序执行时CLR会将CIL码转换为操作系统的本地码。CLR内置有JITCompiler。.NET平台大部分编译优化并不是通过开发语言的编译器来完成类装载器ClassLoader,CIL(CommonIntermediateLanguage),CIL类似一个面向对象的汇编语言,完全基于堆栈,运行在虚拟机上.NET平台上的语言只能执行CIL可以执行的操作CIL原名MSIL,.assemblyHello.methodpublicstaticvoidMain()cilmanaged.entrypoint.maxstack1ldstrHello,world!callvoidmscorlibSystem.Console:WriteLine(string)ret,高级语言代码,CIL代码,本地机器码,CLR编译,你自己的语言,编译器,编译器只要能把你的语言转化为CIL即可,.NETvsJavaEE,CLI/CIL/C#与Sun的Java虚拟机/bytecode/Java语言之间有不少的相似之处,也是竞争者。两者都使中间码(CILvs.bytecode)。CIL被设计来JIT编译,而Java的字节码在最初的时候则是设计成用于解释运行.NET现在只在Windows上被完美地支持(类Unix系统下有Mono等支持,但有待完善),Java多平台支持较好。Java和.NET可经由IKVM(在.NET上实现的JVM和Java类库)作更多的沟通。,公共类型系统CTS,定义了如何在运行库中声明、使用和管理类型的规范是CLR支持多语言的一个重要组成部分(符合CTS规范的编程语言所撰写出的程序,都可以在CLR中使用)。提供可在许多编程语言中完全实现的面向对象模型。,CTS支持两种类别的类型,值类型值类型直接包含它们的数据,值类型的实例要么在堆栈上,要么内联在结构中。.NET类库中被称为“结构”或“枚举”的类型都是值类型。引用类型存储变量内存地址的引用,位于堆上。.NET类库中被称为“类”的类型都是引用类型。多个引用类型的变量可以引用同一对象。所有类型都派生自System.Object。内建4个方法:Equals()、GethashCode()、GetType()、ToString(),boxing和unboxing,Boxing:值类型-引用类型,反之称unboxing程序并不一定要明确的告知编译器要将值类型转换成引用类型,Int32x=5;objecto1=(object)x;/显式Boxingobjecto2=x;/隐式Boxingx=(int)o2;/显式Unboxing,在拆箱时必须知道类型,值和对象,值是数据的二进制表示形式,类型提供了一种解释该数据的方式。值类型直接以类型数据的二进制形式存储。引用类型的值是表示该类型的数据的位序列的位置。每个值都有一个准确的类型,完全定义了值的表示形式和针对值定义的操作。自描述类型的值称为对象通过检查值,总是可以确定对象的准确类型,一种实现某一接口的类型,其值也是该接口类型的值。从某一基本类型派生的类型,其值也是该基本类型的值。,类型和程序集,CLR使用程序集来定位和加载类型。程序集清单包含运行库用来解析在程序集范围内进行的所有类型引用的信息。CLR中的类型名称有两个逻辑部分:程序集名称和程序集内类型的名称。程序集在开发人员所看到的名称范围与运行库系统所看到的名称范围之间提供了一致性。开发人员在程序集的上下文中创作类型。开发人员正在构建的程序集内容确立了在运行时的可用名称范围。,CLS公共语言规范,所有.NET语言都必须遵循CLS才能创建与其他语言可互操作的应用程序,CLS是CTS的子集CLS是面向.NET的开发语言必须支持的最小集合比如变量的命名规范等要保证互操作,只能使用CLS所列出的功能对象例如:C#支持无符号数字类型(满足CTS),但CLS却仅仅识别符号数字类型。因此,如果用户在一个组件中使用C#的无符号类型,就无法与不使用无符号数字类型的语言(如VB.NET)设计的.NET组件实现互操作指针类型和函数指针类型是不符合CLS的如果不存在语言互操作的情况,则无需过多考虑CLS,CLR、CLS关系示意,CLR/CTS,CLS,C#,VB.NET,C+/CLI,程序集Assembly,程序集是任何.NET应用程序的基本构造块。EXE或DLL形式程序集包含描述自己的内部版本号和其包含的所有数据和对象类型的详细信息的元数据。可以使用反射来以编程方式获取关于程序集的信息。可在单个应用程序中使用相同程序集的两个版本程序集仅在需要时才加载,是在大型项目中管理资源的有效途径。程序集可以包含一个或多个模块。可以让多个开发人员负责单独的模块,并通过组合所有这些模块来创建单个程序集。,程序集Assembly,CLR支持两种程序集:强命名程序集和非强命名程序集程序集有两种部署方式:私有或全局非强命名只能以私有方式部署部署到应用程序所在目录,移动整个目录就可以实现程序的安装和卸载强命名用发布者的密钥进行签名,能被全局部署,GAC(全局程序集缓存),DLLHell问题通过将程序集放在GAC中,可在多个应用程序之间共享程序集。GAC的目的是容纳同一个程序集的多个版本GAC中存储了需要被多个应用程序共享的程序集。一般目录为“windows/assembly”不允许手动在DOS下复制程序集到GAC无法只根据文件名来区分程序集主文件名+版本号+语言文化标识+公钥用”密钥对“而不是GUID或URL等方式的原因是密钥对可以识别同一家公司发布的多个程序集,在GAC中安装强命名程序集,GAC采用一种特殊的目录结构存储程序集,.NET框架自带一个扩展ShFusion.dll用于显示GAC的结构,该扩展还支持以鼠标拖放的方式部署程序集到GAC专用工具GACUtil.exe的/i和/u开关分别用来安装和卸载一个程序集GACUtil只能由管理员或PowerUser运行如果没有共享的要求,应尽量避免全局部署到GAC中,应尽

温馨提示

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

评论

0/150

提交评论