.NetFramework框架工作原理.

上传人:scccc 文档编号:12987202 上传时间:2021-12-09 格式:DOC 页数:7 大小:110KB
返回 下载 相关 举报
.NetFramework框架工作原理._第1页
第1页 / 共7页
.NetFramework框架工作原理._第2页
第2页 / 共7页
亲,该文档总共7页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《.NetFramework框架工作原理.》由会员分享,可在线阅读,更多相关《.NetFramework框架工作原理.(7页珍藏版)》请在三一文库上搜索。

1、.Net Framework 框架工作原理 从.Net Framework 1.0 到现在的.Net Framework 4.0 ,版本在不断升级,那么,这些版本升级了什么东 西?在哪些方面进行了增加或者增强?它们之间有什么相同之处和不同之处呢? .Net Framework 从出现到现在的.Net Framework 4.0 ,其框架结构没什么大的变化,都是 CLR 在 OS 上面,基类库在 CLR 上面,再之上是 ADO.NET,XML 等,再之上是 window form ,最上层就是 我们经常用到的各种.Net 开发工具了 框架图如下: Microsoft .NET Framework

2、 由应用程序开发技术、 Microsoft .NET Framework 类库、基类库和公共语言 运行库(CLR4 个部分组成。这 4 个部分如图所示,每个较高的层都使用一个或多个较低的层。 1 应用程序开发技术 应用程序开发技术位于框架的最上方,是应用程序开发人员开发的主要对象。它包括 ASP .NET 技术和 WinFroms 技术等高级编程技术。 2. Microsoft .NET Framework 类库 Microsoft .NET Framework 类库是一个综合性的类型集合,用于应用程序开发的一些支持性的通用功 能。开发人员可以使用它开发多种模式的应用程序,可以是命令行形式,也

3、可以图形界面形式的应用。 Microsoft .NET Framework 中主要包括以下类库:数据库访问 (ADO .NET 等、XML 支持、目录服务(LDAP 等、正则表达式和消息支持。 3基类库 基类库提供了支持底层操作的一系列通用功能。 Microsoft .NET 框架主要覆盖了集合操作、线程支持、 代码生成、输入输岀(10、映射和安全等领域的内容。 4 公共语言运行库(CRL 公共语言运行库是 Microsoft .NET Framework 的基础内容,也是 Microsoft .NET 程序的运行环境,用 于执行和管理任何一种针对 Microsoft .NET 平台的所有代码

4、。CLR 可以为应用程序提供很多核心服务,如内 存管理、线程管理和远程处理等,并且还强制实施代码的安全性和可靠性管理。 下面简要介绍 Microsoft .NET 框架的一些核心技术特点,以便读者能够更深入地了解 C#程序后台运行 的原理。 (1 多语言支持。在 Microsoft .NET 平台上,所有的语言都是等价的,它们都是基于公共语言运行库 (CLR 的运行环境进行编译运行。所有 Microsoft .NET 支持的语言,不管是 Visual Basic .NET 、Visual C+、C#还是 Jscript .NET,都是平等的。用这种语言编写的代码都被编译成一种中间代码,在公共语

5、言运 行库中运行。在技术上这种语言与其他语言相比没有很大的区别,用户可以根据自己熟悉的编程语言进行操 作。在本书中使用 C#进行编程,因为 C#是一种优秀的程序开发语言,它简洁、高效且便于使用。主要用于 Microsoft .NET 框架中面向组件的领域。(2 多平台支持。Microsoft .NET 框架的另一个重要特点就是多平台支持。不过相对于 Java 技术能够跨 越 UNIX、Linux 和 Windows 等众多平台,目前 Microsoft .NET 的跨平台性仅限于各种 Windows 操作系统, 如 Windows 95/98、Windows NT、Windows 2000 和

6、 Windows XP 等。 (3 性能。Microsoft .NET 的基本设计目标之一就是具有强大的性能和可伸缩性。对于 Microsoft .NET 来 说,要具备很好的性能要靠公共语言运行库来执行中间代码。为了确保最佳性能,在某种意义上公共语言运行 库将所有引用程序代码都编译成本机代码。这种转换既可以在应用程序运行时完成,也可以在应用程序首次安 装时完成。 有了公共语言运行库,就可以很容易地设计岀对象能够跨语言交互的组件和应用程序。也就是说,用不 同语言编写的对象可以互相通信,并且它们的行为可以紧密集成。例如,可以定义一个类,然后使用不同的语 言从原始类派生岀另一个类或调用原始类的方法

7、。还可以将一个类的实例传递到用不同的语言编写的另一个类 的方法。这种跨语言集成之所以成为可能,是因为基于公共语言运行库的语言编译器和工具使用由公共语言运 行库定义的通用类型系统,而且它们遵循公共语言运行库关于定义新类型以及创建、使用、保持和绑定到类型 的规则。图 1.32 列出了各种程序与 CLR 之间的关系。 公共语言运行库具有以下一些优点 改进了性能。 能够轻松使用其他语言开发的组件。 类库提供的可扩展类型。 公共语言运行库的执行模型包括以下几种。 将源代码(VB、CS 编译成托管代码块。托管代码块由中间语言和元数据组成。 将托管代码合并成程序集。 加载公共语言运行库 我们平时用 csc.

8、exe 编译器编译后的程序都是 MSIL 形式的,包括 window form 和 中 的.exe 和.dll 软件或者组件.这些软件和组件在 CLR 环境下由 CLR 环境的 JIT 编译器编译成本地代码,之后 本地代码在 CLR 托管环境下 运行.CLR 负责内存管理,垃圾回收等工作,同时负责与 OS 通信,包括 OS 上的其他非托管软件. 何为托管代码和非托管代码? 托管代码是在.NET 基础上开发出来的代码,这些代码经编译成 MSIL 后,在 CLR 的 JIT 即时编译后在 CLR 托管下运行,故这些代码称为托管代码而没在 .NET 的基础上开发出来的代码,如 C/C+/vb 开发出

9、来 的 COM 组件或者 API,它们一旦编译后就编译成基于 OS 的本地代码,它们直接与 OS 通信,中间没有经过 CLR 这个中间者,而且内存等管理是手动管理的,此类代码称之为非托管代码. 前面讲的是.Net Framework 各版本之间相同之处,即主要框架结构模型是相同的,那么,他们之间的最 主要的区别是什么呢?先看看 .Net Framework3.0 的框架图: 可以看到,3.0 还是用的 2.0 的基类库和 CLR,只不过在 2.0 的原有 2.0,window forms2.0 技术 的基础上增加了 WCF,WPF,WWF 等新技术,其底层还是和 2.0 一样,故如果 3.0

10、开发编译后的东西没有用到 新的基类库的话,一样可以在 2.0 上运行. 这里需要再说明下 CLR 的 JIT 是如何加载编译程序集的.JIT 并非所有 using 引用的程序集都加载编译 的,它只加载编译要用到的程序集,故把一个类作为一个类文件编译成一个组件或者说是程序集,比并把几个 类写成一个文件编译成一个程序集,可以减少很多的加载编译量,所以最好一个功能,一个类单独写成一个程 序集. .Net 3.5 在 3.0 的基础上对之前功能的增强外,还新增加了几个新技术. .NET 3.5 并未对.NET 2.0 现存 的技术进行任何改动,包括 ASP.NET、ADO.NET 和 WinForm

11、在内的主要技术都保持原样,这对熟练掌 握.NET 2.0 的技术人员是个好消息,他们所掌握的技术仍然很有价值。根据微软 .NET 平台发展趋势来 看,.NET2.0 平台将为.NET 3.5 提供基础类库,.NET 3.5 将着重引入语法,数据访问和 些创新。可以把.NET3.5 看做是.NET 2.0 的超集,是对.NET 2.0 的一次补充。 如果开发者是从.NET 1.0 或 1.1 迁移到 3.5, 那么需要考虑代码的兼容性问题,尽管 保证向后兼容性,不过由于一些安全方面的改进,仍然有少数重要操作存在不兼容的现象。从 则完全不存在这个问题,因为.NET Framework 3.5 的所

12、有组件都可在支持 行。 .NET 3.5 还增加了 LINQ (语言整合查询)和 ASP.NET 的 OR/M 框架(ASP.NET Entity Framework ) 等新功能。这些新功能增强了 VB 和 C#等语言的作用,为.NET 环境提供了 OR/M 框架,它们都可以和 WPF/WCF 和 WF 共同工作,创建强大的应用程序。 net framework 2.0 ,3.0 与 3.5 三个版本之间关系如下: .net framework 2.0 = CLR 2.0 + FCL(framework class library .net framework 3.0 = .net fram

13、ework 2.0 + SP1 + WPF + WCF + WF + CardSpace .net framework 3.5 = .net framework 3.0 + SP2 + new compiler 这三个版本 framework 的 CLR 都是 2.0,因此, 的 runtime 还是只有 1.1 和 2.0,像 Linq 这些 新功能其实只是用新的编译器加上一些新的类库来实现的, 3.5 版本并没有对 CLR 做大的升级。 VS2008 支持在 2.0,3.0 和 3.5 三种版本下开发项目 VS2005 的项目可以平稳的升到 VS2008 上,在 VS2008 下做 VS2

14、005 的项目用的编译器和类库同 VS2005 都是一样的,但是提供了更好的开发环境。 Framework 3 SP1 除了修正了一些 Framework 2 的 bug 之外,主要的扩展是加了 3W 框架,分别是 WPF,WCF,WWF。F3.5 和 F3 类似,在修正之前的 Bug 之外,主要的扩展是: LINQ,WF,WCF,Add- in(今后会被 MEF 替代。Framework 3.5 SP1 ,又添了几个新东东: MVC, Dynamic Data , Entity Framework , Data Services 等。当然这里面我们也不能忽略了 Framework 3 在语言

15、上进行的改进,例如 Linq, Lambda,扩展函数,var 类型的使用等等。 現在看看 Framework 4.0 又给我们带来了什么? .NET Framework 4 与 Framework 3.5 SP1 并行工作。在旧版的 Framework 中可以运行的应用程序, 将继续能够运行在.NET Framework 4 上。 Web 客户端上的一 .NET 框架已经尽力 .NET 2.0 至 U 3.5 .NET Framework 3.5 的平台上运 在 Visual Basic 和 C 井语言中有所创新,例如声明 lambdas、隐线 continuations 、动态调度、并命名

16、/ 可选参数等。 在 ADO.NET 实体框架中增加了许多新的功能,通过提高抽象层次,从而简化开发人员的关系数据库的 程序。这些新功能包括:持续忽略、 POCO 支持、延迟加载,测试驱动开发的支持、功能模型以及新的 LINQ 运营商等。 一、 以下是 ASP.NET 中的改进: 改进 JavaScript 用户界面模板和 AJAX 中的数据绑定功能; 改进 ASP.NET 的图表控制; 二、 以下是 WPF 中的改进: 在 WPF|中增加 Windows 7 多触控、ribbon 控制、 任务栏扩展功能 支持; 在 WPF 中增加 Surface 2.0 SDK 支持; 新的业务线控制,包括图

17、表控制,智能编辑,数据网格,以及其他 能够提高 建立数据中心的应用程序”的开发者经验的控制。 提高性能和可扩展性; 在文字、像素布局、本地化和互操作性中添加可视化改进; 三、 Windows Workflow (WF)中的改进让开发者能够更好地控制 工作流程,具体改进如下: 改善活动规划模型; 改进设计体验; 一个新的流程建模方式; 扩大调色板的活动范围; 工作流程规则一体化; 新邮件相关的功能。 四、 .NET 框架还为基于 WF|的工作流程提供重大的性能改进: 改进 Windows 通讯基础(WCF )构架,例如流服务相关支持,双 向通信的持久性等。 NET 框架 4|还提供了新的 WCF

18、 功能,例如服务发现、路由器服 务、简化配置、REST 支持、诊断和性| visual studio 2005 是 IDE,就是集成开发环境,只是一个工具,你可以 理解为一个功能强大的编辑器(记事本? .net framework2.0 是运行环境,.net framework2.0 sdk 是开发环境,没有 前者,你就不能运行.net 程序,没有后者,你就不能做.net 开发。 通常 vs 会自带.net framework sdk,但做.net 开发一定要明白什么是什 么。其实即使没有 vs2005 之类的 ide,在纯命令行下都可以用.net sdk 做开发的。 我是做 java 的,没

19、装 vs,但是概念肯定是这样。这就好比 eclipse 和 jre 和jdk 的关系。 .NET Framework|与|NET Framework SDK 的区别,以及使用上的不同 1、 .NET Framework 与.NET Framework SDK|有区别 2、 什么是.NET Framework .NET Framework是微软开发的运行于各个操作系统之上的.NET软件运 行平台,相对独立于微软的各个操 作系统之上。 只要安装了 .NET Framework,则从 Windows 98 到 Windows XP都可以运行.NET 程序。 3、 是否要安装.NET Framewor

20、k 同时对于基于.NET Framework 开发的程序,必须运行在.NET Framework 的平台上。目前至少有超过 20%的 自己开发的应用程序是基于.NET Framework 开发的,所以一般建议安 装Microsoft 的各种操作系统之后, 安装.NET Framework。 4、 .NET Framework 的功能 .NET Framework 是一种新的软件运行平台,提供了 .NET 程序运行时支 持和功能强大的类库。可以从微软网站免费下载。 5、 .NET Framework 版本 目前包括的版本包括.NET Framework V1.1 版、目前包括的版本包 括.NET

21、 Framework V2.0 版、目前包括的版本包括.NET Framework V3. ,版,最新版本为目前包括的版本包括.NET Framework V4 版。其中 1.1 版和2.0 版之间有本质差别,可能出现不兼容情况。一般使用 V2.0 以 上版本就够了。 二、.NET Framework 与.NET Framework SDK 的区别,以及使用上的不 同 1、.NET Framework 与.NET Framework SDK 的区别 只有一句话,如果只安装了 .NET Framework,只能运行.NET 应用程 序,而不能开发.NET 应用程序。 2、什么是.NET Fram

22、ework SDK .NET Framework SDK 包括了微软提供的.NET 语言编译器(如 C#编译 器 CSC.exe 和 VB.NET 编译器 VBC.exe),完整的.NET Framework 文 档,以及各种工具(如 AL.exe 和 SN.exe 等),大概有 110 多 MB。 好 像只有两个版本:.NET Framework SDK V1.1 版、 .NET Framework SDK V2.0 版 3、.NET Framework SDK 可以干什么用? 装了这两个东西之后,你就可以用记事本来编写代码,然后在 DOS 窗 口中手动编译.NET 程序啦。 4、开发人员是

23、否必须安装.NET Framework SDK开发人员不必安装.NET Framework SDK, Visual Studio 的各个版本中 基本都自带了,除非一些特殊的情况,才需要安装 .NET Framework SDK。 首先我要讲一点 C#C#的程序的可移植性还不够强大,目前,在微软以外的操作系统 上运行我还没有看到。一般 C#C#程序只能运行在 WindowsWindows 操作系统上,或者经微软 授权的相在系统上。C#C#编译的文件是 EXEEXE 文件。但他和 C+C+的 exeexe 文件是有区别 的。C#C#的 exeexe文件是运行在 构架之上的。没有 构架,C#C#程序将无法运行。 C#C#的 exeexe 文件有点于类似于汇编语言。这种汇编语言叫中间语言。在运行这种 EXEEXE 文件时,要 进行解释。所以这种程序即编译又解释

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1