以下组件可视为 .NET Framework 3.5 SP1 的一部分:
.NET Framework 2.0
.NET Framework 2.0 SP 1 和 2,它们更新了 .NET Framework 2.0 中包含的程序集。
.NET Framework 3.0,它使用 .NET Framework 2.0 及其 Service Pack 中存在的程序集,并包含在 .NET Framework 3.0 中引入的技术所必需的程序集。例如,WPF 所必需的 PresentationFramework.dll 和 PresentationCore.dll 就随 .NET Framework 3.0 一起安装。
.NET Framework 3.0 SP 1 和 2,它们更新了 .NET Framework 3.0 中引入的程序集。
.NET Framework 3.5,它包含为 .NET Framework 2.0 和 3.0 提供附加功能的新程序集。
2 .NET Framework 3.5 SP1 中的功能
本节概括了 .NET Framework 3.5 SP1 中所包含的技术,以及它所包含的每个 Framework 版本。此列表并不详尽;它仅列出了 .NET Framework 中附带的某些主要技术。
下列技术是 .NET Framework 2.0 附带的技术。
公共语言运行时 (CLR) 和基类库。
对泛型类型和方法的支持。
C#、Visual Basic、C++ 和 J# 的编译器。
ADO.NET。
ASP.NET。
Windows 窗体。
NET Framework 2.0 SP1 和 SP2
.NET Framework 2.0 SP 1 和 SP 2 更新了 .NET Framework 2.0 附带的 CLR 和一些程序集,并可以独立于 .NET Framework 3.5 SP1 进行安装。对 .NET Framework 2.0 的大部分更新都不是重大更改,但也有少数几处地方添加了新的 API 元素或更改了行为,属于重大更改。如果应用程序依赖于 .NET Framework 2.0 SP1 或 SP2 附带的更改,则可以让应用程序面向 .NET Framework 2.0,并要求客户下载 .NET Framework 2.0 SP1 或 SP2。但如果应用程序依赖于新的或更改的功能,则建议应用程序面向 .NET Framework 3.5 或 .NET Framework 客户端配置文件。
.NET Framework 3.0 需要在计算机上安装 .NET Framework 2.0。如果用户在未安装 .NET Framework 2.0 的计算机上安装 .NET Framework 3.0,则会自动安装 .NET Framework 2.0。
下列技术是随 .NET Framework 3.0 引入的技术:
Windows Presentation Foundation (WPF).
Windows Communications Foundation (WCF)。
Windows Workflow Foundation (WF)。
单独发布 .NET Framework 3.0 版 是为了在 .NET Framework 和 Windows 软件开发包 (SDK) 中包含以下技术。
Windows Communication Foundation
Windows Presentation Foundation
Understanding Windows Workflow Foundation
在 Windows Communication Foundation 中使用 CardSpace
.NET Framework 3.5
.NET Framework 3.5 版是在 2.0 和 3.0 版及其 Service Pack 的基础上构建的。.
.NET Framework 3.5 为 2.0 和 3.0 中的技术引入了新功能,并以新程序集的形式引入了其他技术。下列技术是随 .NET Framework 3.5 引入的技术:
语言集成查询 (LINQ)。
C#、Visual Basic 和 C++ 的新编译器。
ASP.NET AJAX。
3 .NET Framework 3.5 版中的新增功能
本主题包含有关 .NET Framework 3.5 版 中的新功能和增强功能的信息。
3.1 .NET Compact Framework
.NET Compact Framework 3.5 版通过包含WCF技术扩展了对分布式移动应用程序的支持。它还添加了新的语言功能(如 LINQ)和基于社区反馈的新API,并使用更新的诊断工具和功能来改进调试。
3.2 ASP.NET
.NET Framework 3.5 针对 ASP.NET 和 Visual Web Developer 中的特定方面提供了增强功能。最重要的改进在于,改进了对支持 AJAX 的网站的开发支持。
ASP.NET 支持使用一组新的服务器控件和 API 进行以服务器为中心的 AJAX 开发。
ASP.NET 还支持使用名为 Microsoft AJAX Library 的新客户端库进行以客户端为中心的 AJAX 开发。Microsoft AJAX Library 支持以客户端为中心、面向对象且独立于浏览器的开发。借助 ECMAScript (JavaScript) 中的库类,可以提供丰富的 UI 行为,而无需反复访问服务器。此外,Visual Web Developer 还包括改进的对 JavaScript 的 IntelliSense 支持和对 Microsoft AJAX Library 的支持。
现在,ASP.NET 和 Visual Web Developer 支持创建基于 ASMX 和 WCF 的 Web 服务,还支持在采用了 Microsoft AJAX Library 的网页中无缝使用任一实现。此外,包括 Forms 身份验证、角色管理和配置文件的服务器端应用程序服务现已作为 Web 服务公开。
ASP.NET 中的其他改进包括:用于显示数据的新数据控件 ListView;通过 ASP.NET 数据源控件结构向 Web 开发人员公开语言集成查询 (LINQ) 的新数据源控件 LinqDataSource;用于合并预编译程序集的新工具 ASP.NET 合并工具 (Aspnet_merge.exe);与 IIS 7.0 的紧密集成。
ListView 是一个可高度自定义的控件(使用模板和样式),该控件还支持编辑、插入和删除操作以及排序和分页功能。一个名为 DataPager 的新控件为 ListView 提供了分页功能。可以使用合并工具来合并程序集以支持各种部署和发布管理方案。ASP.NET 和 IIS 7.0 的集成提供了对任何内容类型使用 ASP.NET 服务(如身份验证和缓存)的能力,还提供了使用 ASP.NET 托管代码开发服务器管线模块的能力,并且支持模块和处理程序的统一配置。
Visual Web Developer 中的其他改进包括:多目标支持、包含 Web 应用程序项目、新的“设计”视图、新的级联样式表 (CSS) 设计工具以及对 LINQ for SQL 数据库的支持。多目标功能使您能够使用 Visual Web Developer 针对特定的 .NET Framework 版本(包括 2.0、3.0 和 3.5 版)开发 Web 应用程序。
3.3 外接程序和扩展性
.NET Framework 3.5 中的 System.AddIn.dll 程序集向可扩展应用程序的开发人员提供了强大而灵活的支持。它引入了新的结构和模型,可帮助开发人员完成向应用程序添加扩展性的初始工作,并确保开发人员的扩展在宿主应用程序发生更改时仍可继续工作。该模型提供了以下功能:
--发现
使用 AddInStore 类可以很容易地在计算机上的多个位置中查找和管理外接程序集。可以使用此类来按照外接程序的基类型搜索和获取有关它们的信息,而不必加载它们。
--激活
使用 AddInToken 类可以轻松地激活应用程序选中的外接程序。只需选择隔离和沙盒级别,系统就会完成剩余的工作。
--隔离
提供了对应用程序域和外接程序的进程隔离的内置支持。每个外接程序的隔离级别由宿主控制。系统将处理应用程序域和进程的加载,并在这些域和进程的外接程序停止运行后关闭它们。
--沙盒
可以轻松地将外接程序配置为具有默认信任级别或自定义信任级别。提供的支持包括 Internet、Intranet、完全信任和“与宿主相同”权限集,以及让宿主指定自定义权限集的重载。
--UI 构成
外接程序模型支持直接构成跨应用程序域边界的WPF控件。可以轻松地允许外接程序直接构成宿主的UI,同时保留隔离、卸载能力、沙盒和版本控制的好处。
--版本控制
外接程序结构使宿主可以引入新版本的宿主对象模型,而不中断现有外接程序或不影响开发人员对新版本的体验。
3.4 公共语言运行时
HashSet<(Of <(T>)>) 提供对 .NET Framework 的高性能集合运算。集合是一组不重复出现且无特定顺序的元素。
诊断
EventSchemaTraceListener 类提供端到端、符合架构的事件的跟踪。可以对包含跨线程、 AppDomain、进程和计算机边界的异类组件的系统使用端到端跟踪。已定义一个标准化事件架构来启用跨这些边界的跟踪。此架构由多种跟踪技术共享,其中包括类似事件查看器这样的 Windows Vista 诊断工具。该架构还可支持添加符合架构的自定义元素。
EventSchemaTraceListener 类已针对日志记录性能进行了调整,现在隐式支持无锁定的跟踪。
I/O 和管道
管道提供在同一台计算机上或网络中任意其他 Windows 计算机上运行的任何进程之间的进程间通信。.NET Framework 提供对两种类型的管道的访问:匿名管道和命名管道。
垃圾回收
GCSettings 类具有一个新的 LatencyMode 属性,可用来调整垃圾回收器侵入应用程序的时间。可以将此属性设置为新的 GCLatencyMode 枚举值之一。
GC 类具有一个新的 Collect(Int32, GCCollectionMode) 方法重载,可用来调整强制垃圾回收的行为。例如,可以使用此重载来指定垃圾回收器应确定当前时间是否为回收对象的最佳时间。此重载采用新的 GCCollectionMode 枚举中的值。
部分信任环境中的反射和反射发出
现在,在部分信任下运行的程序集可以发出并执行代码。已发出的只调用公共类型和方法的代码不需要超出所访问的类型和方法要求的权限。使用新的 DynamicMethod(String, Type, array<Type>[]()[]) 构造函数可以很容易地发出类似的代码。
当发出的代码需要访问私有数据时,新的 DynamicMethod(String, Type, array<Type>[]()[], Boolean) 构造函数将允许进行受限制的访问。宿主必须授予 ReflectionPermission 新的 RestrictedMemberAccess 标志以启用此功能,这使发出的代码能够访问私有数据,但仅对具有等于或小于信任级别的程序集中的类型和方法适用。
对于反射,授予 RestrictedMemberAccess 的宿主同样允许受限制地使用用来访问私有属性、调用私有方法等的方法,但仅对具有等于或小于信任级别的程序集适用。
线程处理
更好的读取器/编写器锁
新的 ReaderWriterLockSlim 类提供明显优于 ReaderWriterLock 的性能,可与 lock 语句相当(在 Visual Basic 中为 SyncLock)。锁定状态之间的转换已得到简化,从而使编程更容易并减少发生死锁的几率。新类支持递归,可简化从 lock 和 ReaderWriterLock 的迁移。
ThreadPool 性能增强
显著提高了在托管线程池中调度工作项和 I/O 任务的吞吐量。现在,调度可在托管代码中进行处理,而无需转换到非托管代码,并且具有较少的锁。建议对特定于应用程序的线程池实现使用 ThreadPool。
时区改进
两种新的类型 DateTimeOffset 和 TimeZoneInfo 改进了对时区的支持,可以更容易地开发使用不同时区中的日期和时间的应用程序。
3.5 加密
新增了一些密码类,用于验证和获取有关 ClickOnce 应用程序的清单签名的信息。
Suite B 支持
.NET Framework 3.5 支持由美国国家安全机构 (NSA) 发布的 Suite B 加密算法集。
3.6 网络
对等网络是一种无服务器网络技术,允许若干个网络设备相互之间共享资源和直接通信。 System.Net.PeerToPeer 命名空间提供了一组支持对等名称解析协议 (PNRP) 的类,此协议允许通过在对等群中注册的 PeerName 对象发现其他的对等节点。PNRP 可以将对等名称解析为 IPv6 或 IPv4 IP 地址。
使用对等网络的协作
System.Net.PeerToPeer.Collaboration 命名空间提供了一组支持使用对等网络基础结构的协作的类。这些类简化了应用程序执行以下操作的过程:
·在不使用服务器的情况下跟踪对等方状态。
·向参与者发送邀请。
·发现同一子网或局域网中的对等方。
·管理联系人。
·与对等方交互。
Microsoft 的对等协作基础结构为协作性无服务器活动提供了一个基于对等网络的框架。通过使用此框架,分散的网络应用程序可以使用子网或 Internet 中的计算机的协作能力。这些类型的应用程序可用于如下类似的活动:协作计划、通信、内容分发,或者甚至多个玩家参与的游戏比赛。
套接字性能增强
Socket 类得到了增强,以供使用异步网络 I/O 来获得最高性能的应用程序使用。一系列新类已经作为增强功能集的一部分添加到了 Socket 命名空间中。这些类提供了可由专用的高性能套接字应用程序使用的可选异步模式。这些增强功能是专为需要高性能的网络服务器应用程序而设计的。