.NET Framework概述

转载 2007年09月26日 14:34:00
NET框架是针对开发者提出的一个概念,开发者在进行开发时,要利用开发工具编写源代码,编译后将程序部署到客户端,让它运行,这是一整套开发过程。传统的开发过程可以使用VB、VC等不同的开发工具,但在.NET框架下,可以统一开发过程, .NET框架包含两个部分:公共语言运行库和类库。公共语言运行库的概念和Java虚拟机相似,是一个虚拟的运行环境,开发的应用程序都在这个运行库上运行;另一部分是类库,类库支持开发者的功能和系统调用,所以,在类库的支持下,才能开发在公共语言运行库上运行的应用程序。下面从左到右来看这幅图,在.NET框架的支持下,可以利用各种不同的编程语言来开发应用程序,这些编程语言最终产生的程序的内在都是一样的,它们的源代码会被统一地编译成微软中间代码,它是一种专门在虚拟平台上运行的代码,类似于Java的Bytecode字节码。中间代码在公共语言运行库的支持下运行,如果虚拟代码要在x86CPU上运行,就必须转换成机器码,那么公共语言运行库有这样的机制,帮助我们在运行的时候把中间代码(MSIL Code)转换成本地代码,这样本地代码就能在操作系统和计算机上运行。所以,.NET框架是开发者最需要关注的部分,应用程序的开发都是针对.NET框架的,应用程序也需要在.NET框架的支持下才能运行。对于开发者来说,所要学习和掌握的主要就是.NET框架,要了解如何使用一种编程语言(VB .NET或C#)在.NET框架上开发应用程序。
首先明确的是.NET框架提供了帮助开发应用程序的类库集。但 .NET 框架不仅仅是一种类库集。.NET 框架是创建、部署和运行 Web 服务及其他应用程序的一个环境.NET框架由如下几个部分组成。
位于.NET框架最底层的结构是WINDOWS API和COM+服务。WINDOWS API是操作系统提供的一个很大的服务中心。调用这个服务中心的各种服务(每一种服务就是一个函数),可以帮应用程序达到开启视窗、描绘图形、使用周边设备等目的。COM+是一种组件标准。COM+紧紧地与操作系统结合起来,通过系统服务为应用程序提供全面的服务。WINDOWS API和COM+服务,这里简单了解一下即可。.NET框架建立在这个基础上以后,从而使基于.NET框架开发的应用程序,可以充分利用系统提供的功能和资源。
公共语言运行库主要是指对应用程序代码的管理,同时提供应用程序代码所需要的基本服务,例如内存管理、垃圾收集、结构化异常处理和多线程。同时也加强严格的类型安全和促进代码正确来确保程序的安全性和健壮性。为应用程序编写代码的时候,如果代码是针对公共语言运行库的,则认为是可管理的代码,否则将被认为是不可管理的代码。
.NET Framework类库是由基本数据类型和 .NET 核心功能类组成。基本数据类型包括数值类型、日期类型、字符串类型、数组和集合等等。.NET 核心功能类则提供了文件输入/输出、线程、序列化和安全性等等这些方面的开发支持。
数据层是由用来访问数据相关的类而组成的。与数据访问相关的部分通常被称为 ADO.NET。ADO.NET就是ADO (ActiveX Data Object) 在 .NET 中相对应的技术。XML层是由操作XML的相关的类而组成的。XML 可以理解成一种文件格式,.NET 用它来存储几乎所有类型的信息。
ASP.NET 既包含了用于生成Web界面的类,也包含了XML Web services,为Web应用程序开发提供支持。Windows窗体则包含了用于生成Windows界面的类。这些类的具体细节部分在后续章节有相关知识的介绍。
       Microsoft 提供了下列语言:
Visual Basic.NET、C#、Managed C++ 和 JScript。除了这些语言,其他语言(包括 Perl, COBOL, Smalltalk, Eiffel, Python, Pascal 和 APL等)也正朝着与.NET平台兼容的方向发展。.NET 框架与编程语言无关。事实上任何语言都可以支持 .NET 框架。
 
公共语言运行库,这是.NET框架中比较核心的部分,虽然开发者只需掌握类库的内容,但是也需要了解公共语言运行库中的一些内容。
<!--[if !supportLists]-->l         <!--[endif]-->类加载器
公共语言运行库分成很多部分,最底层是类加载器,它的作用是调入应用程序,调入代码并执行。
<!--[if !supportLists]-->l         <!--[endif]-->Microsoft中间语言(MSIL) 到本机代码编译器
MSIL到本地代码的编译器,前面讲过MSIL是不能直接运行的,要运行程序,就必须通过这个编译器进行实时编译。
<!--[if !supportLists]-->l         <!--[endif]-->垃圾回收
垃圾回收器,和Java类似,.NET语言支持垃圾回收功能,只需要通过指令去分配内存,不需要像C++那样删除内存块,内存回收是自动完成的。它的好处是开发简便而且不易出错。
<!--[if !supportLists]-->l         <!--[endif]-->线程支持和异常管理器
多线程编程和异常是现代编程语言所必备的特性,.NET对线程和异常的支持是比较独特的,.NET支持在公共语言运行库这一层次上的实现,它的好处是,使用任何编程语言都可以用相同的方式使用多线程,实现异常的抛出,捕获和管理。由于异常管理操作的层次在公共语言运行库上层次比较低,因此在多语言交互的时候,例如同时使用VBC#编程,可以在VB中捕获C#抛出的异常。这一功能对于公共语言运行库是非常重要的,要支持多种语言,就必须在底层实现每个语言所共有的特性。
<!--[if !supportLists]-->l         <!--[endif]-->类型检查器
类型检查器的用途是保证系统的类型安全性和程序运行时候的类型安全性,以避免传统编程语言里类型转换出错导致的程序停止运行或者产生漏洞被别人利用,比如,在C语言里,经常会发生安全性问题如缓冲区溢出,在使用内存时,没有注意内存的界限,把数据复制到合法内存区域之外,从而导致错误甚至被恶意代码攻击利用。在.NET中不可能出现这种情况,对任何不属于程序的内存的访问都会被类型检查器所截获,所禁止。在语言的底层就有这样的机制保证类型是安全的。
<!--[if !supportLists]-->l         <!--[endif]-->安全引擎
安全引擎是在更高的层次上保证安全性,主要包含两个部分:代码访问安全性和基于角色的安全性。代码访问安全性是根据应用程序的数字签名、下载地址和开发商来决定应用程序在系统中具有什么权限,能访问什么资源,这就避免了以前仅仅通过Windows系统登录账户,根据账户来决定运行程序的权限,如果是Administrator管理员身份,那么所运行的程序能访问所有系统资源,这就有可能造成安全隐患,有了安全引擎的代码访问安全性,就能指定从不知名的站点下载的应用程序仅仅具有有限的权限,这样就能防止安全性漏洞,基于角色的安全性多用于应用程序编程,可以把用户身份映射到一个角色上,根据角色(用户组)来赋予权限,这对编程来说是很大的便利。
<!--[if !supportLists]-->l         <!--[endif]-->COM 封送拆收器
COM封送拆收器的用途是和COM进行交互,在.NET之前,微软的主要组件模型和编程技术是COM组件对象模型。COM.NET都是编程对象模型,只是它们的描述机制和协议是有区别的。微软在推出.NET后又不可能放弃对COM的支持,因此.NET必须能够兼容COM,通过这个部件完成.NETCOMCOM.NET的数据转换,有了这个部件.NET运行环境就能和COM进行交互。
<!--[if !supportLists]-->l         <!--[endif]-->调试器
调试器对于一般开发者来说也是很少用到的,只有当开发、调试.NET应用程序工具的时候才会用到。它是基于COM结构的,所以通常来说在编程时不会用到。
<!--[if !supportLists]-->l         <!--[endif]-->.NET Framework 类库支持
.NET Framework 类库支持位于公共语言运行库最上层的结构,它是和.NET Framework类库交互的部分。
 
.NET Framework类库的功能远远要比一般的类库,如C语言,要强大和全面,因此,像.NET或Java这样的开发环境优点在于,不仅提供很好的虚拟执行环境和虚拟机机制,而且在这个虚拟机平台之上,还构建了一个非常全面地用于商业应用程序开发的类库,这个类库非常庞大,里面包括很多的类可以使用,功能都来自这里。
1)跨越所有的编程语言
.NET有很多种编程语言,.NET类库支持所有的编程语言,而且它支持跨语言的继承和调试,所谓跨语言的继承,比如我们可以在C#里面继承一个VB定义的跨语言的调试,使用一段VB.NET编写的代码,这样在C#程序里可以一样调试VB程序。
2)面向对象、有条理
这个类库的组织是以面向对象的方式进行组织的。类库通过一系列的命名空间进行分割,结构非常清晰,因此我们在学习和使用起来也会非常简单。
3)拥有内置的通用类型系统
内置的通用类型系统(CTS),所有的编程语言都要适应这个公共类型系统,才能够实现多语言编程。因此学习.NET类库的重点就是通用类型系统,了解类型系统有哪些元素,类型系统里特殊的地方,这些是.NET类库的基础,是我们特别要注意的地方。
4)可扩展性
.NET Framework类库是可扩展的,也就是说我们可以自定义一些类,向.NET类库中添加自己编写的类库,组织起来也和.NET Framework类库一样,也可以定义我们自己的命名空间,按照面向对象的方式进行划分。因此它是完全可扩展的。
5)安全性
Framework类库设计时就充分考虑到了安全性的需求,它会和公共语言运行环境的安全特性相互配合,我们前面讲过,公共语言运行环境可以提供代码访问安全性和基于角色的安全性等,这些安全性都体现在.NET类库中有相关的类可以实现这一点。这是类库的特点。

 

 

转自http://blog.csdn.net/msonchina/archive/2007/09/21/1794232.aspx

 

.NET Framework 各版本介绍和下载链接汇总

一、.NET Framework 版本介绍 自2000年6月22日微软向全球宣布自己的.NET战略,到现在已经十年多了。作为.NET战略的基础,Microsoft .NET Framework ...
  • my98800
  • my98800
  • 2016年03月16日 08:32
  • 2005

.NET Framework详解之内存机制

.NET Framework详解之内存机制:在.NET Framework中,内存中的资源(即所有二进制信息的集合)分为"托管资源"和"非托管资源".托管资源必须接受.NET Framework的CL...
  • xiaoran1985
  • xiaoran1985
  • 2014年03月11日 11:22
  • 618

.NET Framework各版本汇总以及之间的关系

.NET Framework .NET版本 1.0 1.1 2.0 3.0 3.5 4.0 4.5 完整版本 1.0.3705.0 1.1.4322.573 ...
  • kingmax54212008
  • kingmax54212008
  • 2014年05月15日 13:37
  • 42395

搞懂.NET Framework 历史版本(2017年)

最近被.NET平台各种名词、以及各种版本弄得有些疑惑,开发和部署,对于开发平台版本选择是个基本问题,因此,花了些时间,学习汇总了有关.NET版本演进的历史。 .NET简介 这个平台相信我们都知道...
  • MePlusPlus
  • MePlusPlus
  • 2017年08月02日 22:20
  • 1122

.NET Framework 各个版本之间的关系以及下载地址整理汇总

http://www.cnblogs.com/robnetcn/p/3383481.html .NET Framework 各个版本之间的关系以及下载地址   Version...
  • wlanye
  • wlanye
  • 2015年11月24日 15:56
  • 1412

C#与.Net Framework的联系和区别

C#语言    C#是微软公司发布的一种面向对象的、运行于.NET Framework之上的高级程序设计语言。并定于在微软职业开发者论坛(PDC)上登台亮相。C#是微软公司研究员Anders H...
  • xjc1278003262
  • xjc1278003262
  • 2013年02月23日 19:16
  • 13535

.NET Framework各版本操作系统支持

.NET Framework .NET版本 1.0 1.1 2.0 3.0 3.5 4.0 4.5 完整版本 1.0.3705.0 1.1.4322.573 ...
  • wangcs017
  • wangcs017
  • 2013年08月20日 16:15
  • 4481

如何手动删除并重新安装 .NET Framework 2.0

如何手动删除并重新安装 .NET Framework 2.0 本文可能包含一个指向 Windows 安装程序清理实用程序 ...
  • luoye7422
  • luoye7422
  • 2015年04月01日 23:37
  • 4298

如何让.Net 程序脱离.net framework框架运行

Net 框架目前逐步在普及了,仍然有很多人在寻找如何让.NET程序脱离.NET框架的方法。现成的工具有 Xenocode 的postbuidle或者vas,还有 Salamander .NET Lin...
  • demo1573
  • demo1573
  • 2015年09月15日 17:00
  • 654

.NET Framework 各版本区别

.NET Framework 各版本区别 .NET Framework 1.1 自1.0版本以来的改进: 自带了对mobile asp .net控件的支持。这在1.0版本...
  • kasama1953
  • kasama1953
  • 2016年06月27日 08:54
  • 2124
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:.NET Framework概述
举报原因:
原因补充:

(最多只允许输入30个字)