
1.2 .NET Framework
.NET Framework由微软开发,致力于敏捷软件开发(Agile Software Development)、快速应用开发(Rapid Application Development)、平台无关性和网络透明化的软件开发平台。
Visual Studio与.NET Framework不可分割,本节介绍.NET Framework,以及它与Visual Studio之间的关系。
1.2.1 .NET Framework简介
.NET Framework是Microsoft推出的一套类库,它被称为.NET框架,支持多种开发语言(如C#、VB、C++、Python等)。
.NET Framework类库包括ADO.NET、ASP.NET、Windows窗体和Windows Presentation Foundation(WPF)和Windows Workflow Foundation(WF)。
.NET Framework是一种采用系统虚拟机运行的编程平台,以通用语言运行时(Common Language Runtime)为基础,用于Windows的新托管代码编程模型。.NET Framework的主要特点和功能如下所示。
□ NET为应用程序接口(API)提供了新功能和开发工具。这些革新使得程序设计员可以同时进行Windows应用软件和网络应用软件以及组件和服务(Web服务)的开发。
□ .NET提供了一个新的反射性的且面向对象程序设计编程接口。其通用化使许多不同高级语言都得以被汇集。.NET Framework中的所有语言都提供基类库(BCL)。
□ 微软的Windows作为操作系统运行于.NET框架之下,在Windows XP SP2/Windows Server 2003/Windows Vista系统中内置.NET框架。
□ .NET框架作为.NET开发平台的核心组件为Web服务及其他应用提供构建、移植和运行的环境。
□ .NET组件是用于创建网络和Windows应用程序的,这些应用程序使一个应用程序所需的功能可以显示在外部。
□ .NET平台还包含Web表单,Web表单是可从网上下载的标准接口。一个Web表单包含供使用者输入数据资料的文本框,然后使用者可以将表单提交给接收器。
□ .NET平台至关重要的一部分就是网络服务器。网络服务器查询协议和标准的合集。应用程序可以使用网络服务器通过计算机网络交换数据资料。例如在线上订购火车票。
□ .NET Framework安全解决方案基于管理代码的概念,以及由通用语言运行时(CLR)加强的安全规则。
□ .NET Framework提供了一个特殊的功能——隔离存储,用于存储数据,甚至是当不允许对文件进行访问时。
□ .NET Framework引入了基于证据的安全的概念。
□ 一些活动,如读写文件,显示对话框,读写环境变量,可以通过包含在框架安全构架中的.NET Framework方法实现。
□ .NET Framework提供了一组加密对象,它们支持加密算法、数字签名、散列、生成随机数。同时还支持在IETF和W3C开发的XML数字签名规范。
□ .NET Framework使用加密对象支持内部服务。这些对象还作为管理代码提供给需要加密支持的开发人员。
当前.NET Framework的最新版本为.NET Framework 4.5版本,该版本不支持Windows 2000、Windows XP。
.NET Framework 4.5发行于2012年8月16日,是支持生成和运行下一代应用程序和Web服务的内部Windows组件,.NET Framework的关键组件为通用语言运行时(CLR)和.NET Framework类库。与先前版本相比,其更新内容如下所示。
□ 在部署期间,能够通过检测和关闭.NET Framework 4应用程序来减少系统重启。
□ 为大于20GB在64位平台上(GB)的数组支持。此功能可在应用程序配置文件中启用。
□ 通过服务器的后台垃圾回收改进性能。当您使用服务器垃圾回收在.NET Framework 4.5中时,后台垃圾回收自动启用。
□ 背景实时(JIT)生成,可以选择用在多核处理器改进应用程序性能。
□ 在它超时之前,能够限制正则表达式引擎要多久能尝试解决正则表达式。
□ 能够定义应用程序域的默认区域性。
□ Unicode(UTF-16)编码的控制台支持。
□ 为版本控制区域性字符串排序和比较数据支持。
□ 在检索资源时,请改进性能。请参见打包和部署桌面应用程序中的资源。
□ Zip压缩改进可减少压缩文件的大小。
□ 通过CustomReflectionContext类,能够自定义反射上下文来重写默认反射行为。
□ 对于国际化域名的2008版在应用程序(IDNA)标准的支持,当System.Globalization.IdnMapping选件类在Windows 8使用时。
□ 当.NET Framework在Windows 8使用时,到操作系统的字符串比较的委托实现Unicode 6.0。在其他平台上运行时,.NET Framework包括其自己的实现Unicode 5.x的字符串比较数据。每个应用程序域的基础上能够计算字符串的哈希代码。
□ 用于SQL Server(SQL Client)的.NET Framework数据提供程序新增了对SQL Server 2008中的文件流和稀疏列功能的支持。
1.2.2 .NET Framework与Visual Studio
Visual Studio是一套完整的开发工具,它用来生成ASP.NET Web应用程序、XML Web Services、桌面应用程序和移动应用程序等。Visual BASIC、Visual C#和Visual C++都使用相同的集成开发环境(IDE),这样可以进行工具共享,并且能够轻松地创建混合语言解决方案。另外,这些语言使用.NET Framework的功能,它提供了可简化的ASP Web应用程序和XML Web Services开发的关键技术。
Visual Studio可以调用.NET Framework所提供的服务,这些服务包括Microsoft公司或者第三方提供的语言编译器,开发人员在安装Visual Studio时会自动安装.NET Framework,如图1-1所示为Visual Studio与.NET Framework的关系。

图1-1 Visual Studio与.NET Framework的关系
执行C#程序时,程序集将加载到CLR中根据清单中的信息执行不同的操作,如果符合要求,CLR执行实时JIT编辑以将IL代码转换为本机机器指令,如图1-2所示为C#资源文件、类库、程序集和CLR的编译时与运行时的关系。

图1-2 .NET Framework与C#的关系图