C#程序设计教程
上QQ阅读APP看书,第一时间看更新

1.2.2 .NET Framework

.NET Framework覆盖了在操作系统上开发软件的所有方面,为集成Microsoft或任意平台上的显示技术、组件技术和数据技术提供了最大的可能。创建出来的整个体系可以使Internet应用程序的开发就像桌面应用程序的开发一样简单。

随着计算机技术的发展,越来越多的需求和越来越高的要求让开发人员必须不断地进行新技术的学习,包括云计算和云存储等。微软的.NET平台另一个优势就是为多核化、虚拟化、云计算做准备。

1..NET Framework的功能

.NET Framework提供了基于Windows的应用程序所需的基本架构,开发人员可以基于.NET Framework快速建立各种应用程序解决方案。.NET Framework具有下列功能特点:

(1)支持不同的编程语言

.NET Framework支持多种不同的编程语言,因此开发人员可以选择他们所需的语言。公共语言运行库提供内置的语言互操作性支持,它通过指定和强制公共类型系统及提供元数据为语言互操作性提供必要的基础。

(2)支持使用不同语言开发的编程库

.NET Framework提供了一致的编程模型,可使用预打包的功能单元(库),从而能够更快、更方便、更低成本地开发应用程序。

(3)支持各种标准Internet协议和规范

.NET Framework使用标准的Internet协议和规范(如TCP/IP、SOAP、XML和HTTP等),支持实现信息、人员、系统和设备互连的应用程序解决方案。

(4)支持不同的平台

.NET Framework可用于各种Windows平台,从而允许使用不同计算平台的人员、系统和设备联网,例如,使用Windows XP/Vista/7/8/10等台式计算机平台或Windows CE之类的设备平台的人员可以连接到使用Windows Server 2003/2008/2012/2016的服务器系统。

2..NET Framework组件结构

.NET Framework实际上“封装”了操作系统,把用.NET开发的软件与大多数操作系统特性独立开来,例如文件处理和内存分配等。这样,.NET开发的软件就可以移植到许多不同的硬件和操作系统上。

.NET Framework组件结构如图1-2所示,.NET Framework具有两个主要组件:公共语言运行库(Common Language Runtime,CLR)和.NET Framework类库(Framework Class Library,FCL)。

图1-2 .NET Framework组件结构

3.公共语言运行库

公共语言运行库的作用是管理内存、执行线程、执行代码、验证代码安全、编译及其他系统服务。这些功能是在公共语言运行库上运行的托管代码所固有的。

公共语言运行库强制实施代码访问安全。例如,嵌入在网页中的可执行文件能够在屏幕上播放动画或音乐,但不能访问用户的个人数据、文件系统或网络。这样,通过Internet就可以部署运行库的安全设置,使得合法软件能够得到正确的判别。

公共语言运行库通过通用类型系统(CTS)的实现来严格进行类型验证和代码验证,通过验证基础结构来加强代码的可靠性。CTS确保所有的托管代码都是可以自我描述的。这些托管代码可以是各种Microsoft编译器或第三方语言编译器生成的符合CTS的托管代码。这意味着托管代码可在严格实施类型保真和类型安全的同时使用其他托管类型和实例。

此外,公共语言运行库的托管环境还消除了许多常见的软件问题。例如,公共语言运行库可以自动处理对象布局并管理对象的引用,当不再使用它们时将它们释放。这种自动内存管理的方式解决了两个最常见的应用程序问题:内存泄漏和无效内存引用。

公共语言运行库提高了开发人员的工作效率。例如,程序员可以用他们选择的开发语言编写应用程序,通过公共语言运行库还可以使用其他开发语言编写的运行库、类库和组件。而且任何选择以运行库为目标的编译器供货商都可以这样做,这大大减轻了现有应用程序在迁移过程中的工作负担。

公共语言运行库旨在增强性能。尽管公共语言运行库提供了许多标准运行库服务,但是它从不解释托管代码,而是一种称为实时(JIT)编译的功能使得所有托管代码能够以本机语言运行。同时,内存管理器排除了出现零碎内存的可能性,并增大了内存引用区域以进一步提高性能。

4..NET Framework类库

.NET Framework类库是一个与公共语言运行库紧密结合的可重用的类型集合。该类库是面向对象的,并提供可导出功能的类型。这不但使.NET Framework类型易于使用,而且还减少了学习.NET Framework的新功能所需要的时间。此外,第三方组件(如用C++编写的组件)也可与.NET Framework中的类无缝集成。第三方开发的集合类与接口同样也可以与.NET Framework中的类无缝连接。

正如面向对象的类库所希望的那样,.NET Framework类库能够完成一系列常见的编程任务(包括诸如字符串管理、数据收集、数据库连接以及文件访问等任务)。除常见任务之外,类库还包括支持多种专用开发方案的类型。

.NET Framework类库为数据、输入/输出、安全性等提供了服务和对象模型。.NET Class Framework含有上千个类和接口。下面列出其中的一些主要功能:

①数据访问和处理。

②执行线程的创建和管理。

③从.NET到外界的接口——Windows窗体、Web窗体、Web服务和控制台应用程序。

④应用程序安全性的定义、管理和实施。

⑤加密、磁盘文件I/O、网络I/O、对象的串行化和其他系统级的功能。

⑥应用程序配置。

⑦使用目录服务、事件日志、性能计数器、消息队列和计时器。

⑧使用各种网络协议发送和接收数据。

⑨访问存储在程序集中的元数据信息。

.NET Framework类库被组织为一套具有层次结构的命名空间,每个命名空间可以包含类型(如类和接口),以及其他子命名空间。整个体系的根命名空间为System,每一个.NET Framework应用程序都会用到System所含的一些类型;C#中的类是利用命名空间组织起来的。命名空间提供了一种从逻辑上组织类的方式,可以防止命名冲突。用namespace关键字声明一个命名空间。此命名空间范围允许组织代码并提供创建全局唯一类型的方法。