在 Microsoft .NET Framework 1.1 版的基础上,.NET Framework 2.0 版进行了扩展,不仅对现有的功能做了改进,还新增了一些功能,并对文档进行了增强。本节提供有关某些主要添加和修改的信息。
有关兼容性的更多信息,以及对类库所做的可能影响应用程序兼容性的公共 API 修改列表,请参见
新一代的 64 位计算机使人们能够创建比 32 位应用程序运行更快并且能够比 32 位应用程序更好地利用内存的应用程序。对 64 位应用程序的新支持使用户能够在 64 位计算机上生成托管代码库或方便地使用非托管代码库。有关更多信息,请参见
访问控制列表 (ACL) 用于授予或撤消对计算机上的资源的访问权限。.NET Framework 中已添加了允许托管代码创建和修改 ACL 的新类。I/O 类、注册表类和线程类中添加了使用 ACL 的新成员。
ADO.NET 中的新功能包括对用户定义类型 (UDT)、异步数据库操作、XML 数据类型、大值类型和快照隔离的支持,以及对允许应用程序通过 SQL Server 2005 支持多活动结果集 (MARS) 的新属性的支持。有关 ADO.NET 的这些新功能以及其他 ADO.NET 新功能的更多信息,请参见
Microsoft .NET Framework 2.0 包含了对 ASP.NET 各个方面的重要增强。对于网页开发,新的控件使得向动态网页添加常用功能更加方便。新的数据控件使得无需编写代码即可在 ASP.NET 网页上显示和编辑数据成为可能。经过改善的代码隐藏模型使得开发 ASP.NET 页更容易也更可靠。缓存功能提供了用来缓存页的多种新方式,包括在 SQL Server 数据库的表上生成缓存依赖项的能力。
现在,您可以以多种方式自定义网站和网页。配置文件属性使 ASP.NET 能够自动跟踪单个用户的属性值。通过使用 Web 部件,您可以创建用户可在浏览器中自定义的页。您可以使用简单控件添加导航菜单。
对网站功能的改进使您可以更加方便快捷地创建专业网站。母版页使您可以为站点中的所有页创建一致的布局,而主题使您可以为控件和静态文本定义一致的外观。若要帮助保护您的站点,您可以预编译网站以从源文件(代码文件和 .aspx 页中的标记)生成可执行代码。然后,您可以将结果输出部署到成品服务器,结果输出不包含任何源信息。对 ASP.NET 的增强还包括可使网站开发人员、服务器管理员和托管人员更容易地进行网站管理的新的工具和类。
ASP.NET 适合于多种浏览器和设备。默认情况下,控件呈现符合 XHTML 1.1 标准的输出。您可以使用设备筛选针对不同的浏览器为相同的控件指定不同的属性值。
有关 ASP.NET 新增功能的更完整列表,请参见
应用程序可使用新的
类和工具中增加了四种支持与 COM 的互操作性的主要增强功能:
操作系统维护有限数量的句柄,这些句柄用来引用关键操作系统资源。新的
对封送处理的改进使得与本机代码交互操作更加容易。对互操作封送拆收器的两种增强功能满足了最常见的两种用户要求:将本机函数指针包装到委托中的能力以及在结构内部封送固定大小的结构数组的能力。
对于常见调用类型,不同应用程序域中的应用程序之间的调用性能速度更快。
新的数据保护 API (DPAPI) 包含四种方法可使应用程序无需调用平台调用即可加密密码、密钥、连接字符串等。您还可以在运行 Windows Server 2003 或更高版本操作系统的计算机上加密内存块。
现在,您可以控制当调试应用程序时 Visual Studio 显示类或成员的方式。调试器的显示属性功能使您能够标识要在调试器中显示的最有用的信息。
.NET Framework 2.0 重新引入了“编辑并继续”功能,该功能使在 Visual Studio 中调试应用程序的用户能够在以中断模式执行的同时更改源代码。在应用对源代码所做的编辑之后,用户可以继续执行代码并观察效果。而且,“编辑并继续”功能在 Visual Studio 所支持的任何编程语言中都可用。
在
在 System.Web.Services 命名空间中,添加了对 SOAP 1.2 和可空元素的支持。
在 System.Runtime.Remoting.Channels 命名空间中,添加了信道安全功能。TCP 信道现在支持身份验证和加密,以及多种用于更好地支持负载平衡的新功能。
现在您可以对
.NET Framework 现在支持 X.509 证书存储区、证书链和证书扩展。此外,您可以使用 X.509 证书签名和验证 XML,而无需使用平台调用。还有对 PKCS7 签名和加密以及 CMS(Microsoft Windows 2000 和更高版本操作系统上可用的 PKCS7 标准的超集)的支持。PKCS7 是安全/多用途 Internet 邮件扩展 (S/MIME) 中用于签名和加密数据的基础格式。有关更多信息,请参见
应用程序现在可以使用
.NET Framework 2.0 引入了泛型以使您能够创建灵活的可重用代码。合称为泛型的语言功能充当模板,这些模板允许使用未指定的或泛型的类型参数(而不是使用具体的类型)来声明和定义类、结构、接口、方法和委托。使用泛型时,实际类型是在稍后指定的。多个命名空间(如
反射已得到扩展以允许泛型类型和方法的运行时检查和操作。System.Type 和 System.Reflection.MethodInfo 添加了新成员,包括标识泛型类型(例如 class Gen<T,U> {...}
)的
new Gen<int, long>()
)的
五个新的全球化功能对于开发用于不同语言和区域性的应用程序提供了更广泛的支持。
对自定义区域性的支持使您能够根据需要定义和部署区域性相关的信息。此功能对于对现有区域性定义进行少量自定义以及创建 .NET Framework 中尚不存在的区域性定义非常有用。有关更多信息,请参见
编码和解码操作将 Unicode 字符与可传输到物理介质(如磁盘或通信线路)的字节流进行相互映射。如果映射操作无法完成,则可以使用
实现 UTF-8 编码的
.NET Framework 现在支持 Unicode 联合会定义的最新规范化标准。该规范化过程将文本的字符表示形式转换为标准形式以便可以比较这些表示形式是否相等。
已经对各种 I/O 类的可用性和功能进行了改进。用户现在可以更加容易地读写文本文件并获取有关驱动器的信息。
现在您可以使用
此功能提供了通过使用清单加载和激活应用程序的新支持。基于清单的激活对于支持 ClickOnce 应用程序至关重要。传统上,应用程序是通过对包含应用程序入口点的程序集的引用激活的。例如,从 Windows 外壳程序内单击应用程序的 .exe 文件将使外壳程序加载公共语言运行库 (CLR) 并调用该 .exe 文件的程序集内的已知入口点。
基于清单的激活模型使用应用程序清单而不是程序集来激活。清单完全描述应用程序、应用程序的依赖项、安全要求等。与基于程序集的激活模型相比,清单模型具有几个优点,特别是对于 Web 应用程序而言。例如,清单包含应用程序的安全要求,这使得用户能够决定在下载代码前是否允许应用程序执行。清单还包含有关应用程序依赖项的信息。
基于清单的激活由一组 API 提供,这些 API 允许托管主机激活由清单描述的应用程序和外接程序。这些 API 混合包含了新类以及对现有类的扩展。
此激活模型还调用称为“信任关系管理器”的实体,该实体执行以下任务:
确定是否允许激活应用程序。此决定可通过提示用户、查询策略或任何其他认为适合于给定“信任关系管理器”的方式作出。
设置在其中运行应用程序的安全上下文。通常,此步骤涉及在要运行应用程序的应用程序域上设置一个代码访问安全 (CAS) 策略树。
.NET Framework 远程处理现在支持 IPv6 地址以及泛型类型的交换。
通过使用
您可以使用 HttpListener 类来创建响应 HTTP 请求的简单 Web 服务器。该 Web 服务器在 HttpListener 对象的生存期内是活动的,并以应用程序的权限在应用程序中运行。此类仅在运行 Windows XP Service Pack 2 或 Windows Server 2003 操作系统的计算机上可用。
通过使用
四种 Microsoft 编程语言明确针对 .NET Framework。有关这些语言中的新增功能和增强的更多信息,请参见以下主题:
Visual Basic 中的语言改进简化了源代码,并且启用了与使用高级功能的组件的交互。
Visual Basic 为所有项目引入了新的条件编译常数 VBC_VER。此版本的值为 VBC_VER 8.0。
Visual Basic 命令行编译器现在将默认命令行选项存储在 Vbc.rsp 文件中,该文件与命令行编译器 (Vbc.exe) 位于同一个目录中。您可以编辑 Vbc.rsp 以重新配置默认命令行选项。
有四个新的命令行编译器选项:
有关更多信息,请参见
在此版本的 Visual Basic 语言中有多个新元素:
新的
XML 序列化现在支持使用属性而不是字段来表示架构元素,支持泛型类型的序列化,并且支持使用
新的
通过使用
现在,您可以命名完全在托管代码中创建的进程间通信事件。
.NET Framework 2.0 提供了跟踪和记录与 I/O、应用程序启动和关闭等有关的系统事件的类。然而,由于跟踪信息数量巨大而且类型多样,这使得用户难以分析这些数据。新的对跟踪数据筛选的支持使您能够指定要记录的信息的类型。
新的
Web 服务支持 SOAP 1.2 和 WS-I 基本概要 1.0,后者记录在“
在使用定义共享类型的两个或更多 Web 服务时,为这些 Web 服务生成的客户端代理共享客户端上相应的类型。这使客户端可以在 Web 服务之间方便地传递共享类型的实例。
现在您可以使用基于事件的编程模式异步调用 Web 方法。
ClickOnce 部署使您能够部署自行更新的 Windows 应用程序,这类应用程序可以像 Web 应用程序一样轻松地安装和运行。您可以部署 Windows 客户端和命令行应用程序。新的 Publish Project 命令位于 Visual Studio 中的 Build 和 Project 菜单上。有关更多信息,请参见
Windows 窗体的应用程序设置使得在客户端上创建、存储和维护自定义应用程序和用户首选项变得容易进行。通过 Windows 窗体设置,您不仅可以存储应用程序数据(如数据库连接字符串),还可以存储特定于用户的数据(如工具栏位置和最近使用的列表)。有关更多信息,请参见
因为
DataGridView 控件提供了一种强大而灵活的方法,用来以表格的形式显示数据。它可以用来显示少量数据的只读视图,或可以缩放以显示非常大的数据集的可编辑视图。数据可以驻留在外部数据源中,也可以直接添加到控件。有关更多信息,请参见
Windows 窗体
可以将 Windows 窗体
ListView、
组件的异步模式是一种事件驱动的模型,它提供了多线程应用程序的优点,同时隐藏了多线程设计中固有的很多复杂问题。有关更多信息,请参见
.NET Framework 2.0 提供了很多增强功能,包括新的 XSL 转换 (XSLT) 处理器;