![清华电脑学堂:ASP.NET 4.5网站开发与应用实践教程](https://wfqqreader-1252317822.image.myqcloud.com/cover/49/26944049/b_26944049.jpg)
1.1 .NET Framework概述
.NET Framework即Microsoft .NET Framework,它是用于Windows的新托管代码编程模型。将.NET Framework的强大功能与新技术结合起来,可以构建具有视觉上引人注目的用户体验的应用程序,并且能支持各种业务流程。
1.1.1 .NET Framework的组件
.NET Framework包含两个组件:公共语言运行时(Common Language Runtime, CLR)和.NET Framework类库。
1.公共语言运行时
公共语言运行时是.NET Framework的基础,开发者可以将它看作是一个在执行时管理代码的代理,提供内存管理、线程管理和远程处理等核心服务,并且还强制实施严格的类型安全以及可提高安全性和可靠性的其他形式的代码准确性。实际上,代码管理的概念是公共语言运行时的基本原则,以公共语言运行时为目标的代码称为托管代码,不以公共语言运行时为目标的代码称为非托管代码。
通过公共语言运行时可以方便地设计出跨语言交互的组件和应用程序,它具有以下几个优点。
(1)使性能得到改进。
(2)能够轻松使用其他语言开发的组件。
(3)类库提供的可扩展类型。
(4)语言功能,如面向对象的编程的继承、接口和重载。
(5)允许创建多线程的可缩放应用程序的显式自由线程处理支持。
(6)结构化异常处理支持。
(7)自定义特性支持。
(8)垃圾回收。
(9)使用委托取代函数指针,从而增强了类型安全和安全性。
2..NET Framework类库
.NET Framework类库是一个综合性的面向对象的可重用类型集合,使用它可以开发多种应用程序,如传统的命令行、图形用户界面应用程序和Web窗体应用程序等。
.NET Framework类库包含一系列丰富的接口、抽象类和非抽象类。System是.NET Framework中基本类型的根命名空间,它包括由所有应用程序使用的基本数据类型的类,如Object、Byte、Array和String等。除了基本类型外,System命名空间还包含几百个类和多个二级命名空间,如表1-1所示为常用的二级命名空间。
表1-1 System命名空间下的常用二级命名空间
![](https://epubservercos.yuewen.com/AE0DA4/15367254404221506/epubprivate/OEBPS/Images/figure_0016_0001.jpg?sign=1739343289-QgypQIrCjEnyeouzcuzYTJyShXgem5OF-0-feb326259e998e44de1221121826febc)
1.1.2 了解.NET Framework 4.5
从2002年发布.NET Framework 1.0版本开始,多年来,.NET Framework的版本又经过多次升级。目前,最新的版本是.NET Framework 4.5.1,它伴随着Visual Studio 2013一起发布。但是,由于最新版本的功能和性质并不稳定,因此,本节不介绍.NET Framework 4.5.1版本,而是对.NET Framework 4.5进行介绍。
.NET Framework 4.5伴随着Visual Studio 2012一起发布,新增功能如下。
(1)能够在部署期间通过检测并关闭.NET Framework 4应用程序来减少系统重启。
(2)在64位平台下支持大于2GB的数组,该功能可在应用程序配置文件中启用。
(3)通过服务器后台垃圾回收提高性能。当开发者在.NET Framework 4.5中使用服务器垃圾回收时,后台垃圾回收自动启用。
(4)后台实时编译,可在多核处理器上使用此功能改进应用程序性能。
(5)限制正则表达式引擎在超时之前要多久才能尝试解决正则表达式的能力,这需要使用Regex.MatchTimeout属性。
(6)定义应用程序域的默认区域性的能力。
(7)Unicode编码的控制台支持。
(8)支持对区域性字符串排序和比较数据进行版本控制。
(9)Zip压缩改进,可减少压缩文件的大小。
(10)可以通过CustomReflectionContext类自定义用于重写默认反射行为的反射上下文。
(11)支持应用程序的国际域名(IDNA)标准的2008版(在Windows 8操作系统上使用System.Globalization.IdnMapping类时)。
(12)在Windows 8中使用.NET Framework时,将字符串比较委托给操作系统,这将实现Unicode 6.0。在其他平台上运行时,.NET Framework包括自己的字符串比较数据,这将实现Unicode 5.x。
(13)能够在每个应用程序域基础上计算字符串的哈希代码。
(14)类型反射支持Type和TypeInfo类之间的拆分。