.NET Framework概述

.NET框架是针对开发者提出的一个概念,开发者在进行开发时,要利用开发工具编写源代码,编译后将程序部署到客户端,让它运行,这是一整套开发过程。传统的开发过程可以使用VBVC等不同的开发工具,但在.NET框架下,可以统一开发过程, .NET框架包含两个部分:公共语言运行库和类库。公共语言运行库的概念和Java虚拟机相似,是一个虚拟的运行环境,开发的应用程序都在这个运行库上运行;另一部分是类库,类库支持开发者的功能和系统调用,所以,在类库的支持下,才能开发在公共语言运行库上运行的应用程序。下面从左到右来看这幅图,在.NET框架的支持下,可以利用各种不同的编程语言来开发应用程序,这些编程语言最终产生的程序的内在都是一样的,它们的源代码会被统一地编译成微软中间代码,它是一种专门在虚拟平台上运行的代码,类似于JavaBytecode字节码。中间代码在公共语言运行库的支持下运行,如果虚拟代码要在x86CPU上运行,就必须转换成机器码,那么公共语言运行库有这样的机制,帮助我们在运行的时候把中间代码(MSIL Code)转换成本地代码,这样本地代码就能在操作系统和计算机上运行。所以,.NET框架是开发者最需要关注的部分,应用程序的开发都是针对.NET框架的,应用程序也需要在.NET框架的支持下才能运行。对于开发者来说,所要学习和掌握的主要就是.NET框架,要了解如何使用一种编程语言(VB .NETC#)在.NET框架上开发应用程序。

首先明确的是.NET框架提供了帮助开发应用程序的类库集。但 .NET 框架不仅仅是一种类库集。.NET 框架是创建、部署和运行 Web 服务及其他应用程序的一个环境.NET框架由如下几个部分组成。

位于.NET框架最底层的结构是WINDOWS APICOM+服务。WINDOWS API是操作系统提供的一个很大的服务中心。调用这个服务中心的各种服务(每一种服务就是一个函数),可以帮应用程序达到开启视窗、描绘图形、使用周边设备等目的。COM+是一种组件标准。COM+紧紧地与操作系统结合起来,通过系统服务为应用程序提供全面的服务。WINDOWS APICOM+服务,这里简单了解一下即可。.NET框架建立在这个基础上以后,从而使基于.NET框架开发的应用程序,可以充分利用系统提供的功能和资源。

公共语言运行库主要是指对应用程序代码的管理,同时提供应用程序代码所需要的基本服务,例如内存管理、垃圾收集、结构化异常处理和多线程。同时也加强严格的类型安全和促进代码正确来确保程序的安全性和健壮性。为应用程序编写代码的时候,如果代码是针对公共语言运行库的,则认为是可管理的代码,否则将被认为是不可管理的代码。

.NET Framework类库是由基本数据类型和 .NET 核心功能类组成。基本数据类型包括数值类型、日期类型、字符串类型、数组和集合等等。.NET 核心功能类则提供了文件输入/输出、线程、序列化和安全性等等这些方面的开发支持。

数据层是由用来访问数据相关的类而组成的。与数据访问相关的部分通常被称为 ADO.NETADO.NET就是ADO (ActiveX Data Object) .NET 中相对应的技术。XML层是由操作XML的相关的类而组成的。XML 可以理解成一种文件格式,.NET 用它来存储几乎所有类型的信息。

ASP.NET 既包含了用于生成Web界面的类,也包含了XML Web services,为Web应用程序开发提供支持。Windows窗体则包含了用于生成Windows界面的类。这些类的具体细节部分在后续章节有相关知识的介绍。

       Microsoft 提供了下列语言:
Visual Basic.NETC#Managed C++ JScript。除了这些语言,其他语言(包括 Perl, COBOL, Smalltalk, Eiffel, Python, Pascal APL等)也正朝着与.NET平台兼容的方向发展。.NET 框架与编程语言无关。事实上任何语言都可以支持 .NET 框架。

 

公共语言运行库,这是.NET框架中比较核心的部分,虽然开发者只需掌握类库的内容,但是也需要了解公共语言运行库中的一些内容。

l         类加载器

公共语言运行库分成很多部分,最底层是类加载器,它的作用是调入应用程序,调入代码并执行。

l         Microsoft中间语言(MSIL) 到本机代码编译器

MSIL到本地代码的编译器,前面讲过MSIL是不能直接运行的,要运行程序,就必须通过这个编译器进行实时编译。

l         垃圾回收

垃圾回收器,和Java类似,.NET语言支持垃圾回收功能,只需要通过指令去分配内存,不需要像C++那样删除内存块,内存回收是自动完成的。它的好处是开发简便而且不易出错。

l         线程支持和异常管理器

多线程编程和异常是现代编程语言所必备的特性,.NET对线程和异常的支持是比较独特的,.NET支持在公共语言运行库这一层次上的实现,它的好处是,使用任何编程语言都可以用相同的方式使用多线程,实现异常的抛出,捕获和管理。由于异常管理操作的层次在公共语言运行库上层次比较低,因此在多语言交互的时候,例如同时使用VBC#编程,可以在VB中捕获C#抛出的异常。这一功能对于公共语言运行库是非常重要的,要支持多种语言,就必须在底层实现每个语言所共有的特性。

l         类型检查器

类型检查器的用途是保证系统的类型安全性和程序运行时候的类型安全性,以避免传统编程语言里类型转换出错导致的程序停止运行或者产生漏洞被别人利用,比如,在C语言里,经常会发生安全性问题如缓冲区溢出,在使用内存时,没有注意内存的界限,把数据复制到合法内存区域之外,从而导致错误甚至被恶意代码攻击利用。在.NET中不可能出现这种情况,对任何不属于程序的内存的访问都会被类型检查器所截获,所禁止。在语言的底层就有这样的机制保证类型是安全的。

l         安全引擎

安全引擎是在更高的层次上保证安全性,主要包含两个部分:代码访问安全性和基于角色的安全性。代码访问安全性是根据应用程序的数字签名、下载地址和开发商来决定应用程序在系统中具有什么权限,能访问什么资源,这就避免了以前仅仅通过Windows系统登录账户,根据账户来决定运行程序的权限,如果是Administrator管理员身份,那么所运行的程序能访问所有系统资源,这就有可能造成安全隐患,有了安全引擎的代码访问安全性,就能指定从不知名的站点下载的应用程序仅仅具有有限的权限,这样就能防止安全性漏洞,基于角色的安全性多用于应用程序编程,可以把用户身份映射到一个角色上,根据角色(用户组)来赋予权限,这对编程来说是很大的便利。

l         COM 封送拆收器

COM封送拆收器的用途是和COM进行交互,在.NET之前,微软的主要组件模型和编程技术是COM组件对象模型。COM.NET都是编程对象模型,只是它们的描述机制和协议是有区别的。微软在推出.NET后又不可能放弃对COM的支持,因此.NET必须能够兼容COM,通过这个部件完成.NETCOMCOM.NET的数据转换,有了这个部件.NET运行环境就能和COM进行交互。

l         调试器

调试器对于一般开发者来说也是很少用到的,只有当开发、调试.NET应用程序工具的时候才会用到。它是基于COM结构的,所以通常来说在编程时不会用到。

l         .NET Framework 类库支持

.NET Framework 类库支持位于公共语言运行库最上层的结构,它是和.NET Framework类库交互的部分。

 

.NET Framework类库的功能远远要比一般的类库,如C语言,要强大和全面,因此,像.NETJava这样的开发环境优点在于,不仅提供很好的虚拟执行环境和虚拟机机制,而且在这个虚拟机平台之上,还构建了一个非常全面地用于商业应用程序开发的类库,这个类库非常庞大,里面包括很多的类可以使用,功能都来自这里。

1)跨越所有的编程语言

.NET有很多种编程语言,.NET类库支持所有的编程语言,而且它支持跨语言的继承和调试,所谓跨语言的继承,比如我们可以在C#里面继承一个VB定义的跨语言的调试,使用一段VB.NET编写的代码,这样在C#程序里可以一样调试VB程序。

2)面向对象、有条理

这个类库的组织是以面向对象的方式进行组织的。类库通过一系列的命名空间进行分割,结构非常清晰,因此我们在学习和使用起来也会非常简单。

3)拥有内置的通用类型系统

内置的通用类型系统(CTS),所有的编程语言都要适应这个公共类型系统,才能够实现多语言编程。因此学习.NET类库的重点就是通用类型系统,了解类型系统有哪些元素,类型系统里特殊的地方,这些是.NET类库的基础,是我们特别要注意的地方。

4)可扩展性

.NET Framework类库是可扩展的,也就是说我们可以自定义一些类,向.NET类库中添加自己编写的类库,组织起来也和.NET Framework类库一样,也可以定义我们自己的命名空间,按照面向对象的方式进行划分。因此它是完全可扩展的。

5)安全性

Framework类库设计时就充分考虑到了安全性的需求,它会和公共语言运行环境的安全特性相互配合,我们前面讲过,公共语言运行环境可以提供代码访问安全性和基于角色的安全性等,这些安全性都体现在.NET类库中有相关的类可以实现这一点。这是类库的特点。

 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值