3.7 WCF
.NET Framework 3.5 统一了 WF和WCF框架,以便可以使用 WF 作为一种创作 WCF 服务的方式或将现有 WF 工作流作为服务公开。这样就可以创建具有以下特点的服务:可以保持,可以轻松地向工作流传入或传出数据,并且可以强制实施应用程序级协议。
持久性服务
.NET Framework 3.5 还引入了对 WCF 服务的支持,这些服务使用 WF 持久模型来保存服务的状态信息。这些持久性服务将其状态信息保存在应用程序层上,以便在取消然后重新创建会话时,可以从持久存储区中重新加载该服务的状态信息。
WCF Web 编程模型
WCF Web 编程模型使开发人员可以使用 WCF 来生成 Web 风格的服务。Web 编程模型包括丰富的URI 处理功能、对包括 GET 在内的所有 HTTP 谓词的支持以及一个简单的编程模型。该编程模型可以处理各种消息格式,包括 XML、JSON 和不透明度二进制流。
(WCF 3.5 增加了对 REST 的支持 —— System.ServiceModel.Web。WCF 3.5 引入了 WebGetAttribute、WebInvokeAttribute、UriTemplate 来增加对 REST 的支持,这使得我们用很简单的方式就可以实现 RESTful WCF Service。)
WCF 整合
WCF 现在包含一个强类型对象模型,可用于处理整合源,包括 Atom 1.0 和 RSS 2.0 格式。有关更多信息,请参见 WCF 联合。有关代码示例,请参见 联合示例。
WCF 和部分信任
在 .NET Framework 3.5 中,在减少的权限下运行的应用程序可以使用 WCF 功能的有限子集。在 ASP.NET 中等信任权限下运行的服务器应用程序可以使用 WCF 服务模型来创建基本 HTTP 服务。在 Internet 区域权限下运行的客户端应用程序(如 XAML 浏览器应用程序或使用 ClickOnce 部署的未签名的应用程序)可以使用 WCF 代理来使用 HTTP 服务。此外,WCF Web 编程模型(WCF REST Programming Model )功能(包括 AJAX 和整合)可供部分信任的应用程序使用。
WCF 和 ASP.NET AJAX 集成
WCF 与 ASP.NET 中的异步 JavaScript 和 XML (AJAX) 功能的集成提供了一个端对端的编程模型,可用于构建可以使用 WCF 服务的 Web 应用程序。在 AJAX 样式的 Web 应用程序中,客户端(例如,Web 应用程序中的浏览器)通过使用异步请求来与服务器交换少量的数据。在 ASP.NET 中集成 AJAX 功能可提供一种生成 WCF Web 服务的简单方法,通过使用浏览器中的客户端 JavaScript 可以访问这些服务。
Web 服务互操作性
在 .NET Framework 3.5 中,Microsoft 遵守了有关互操作性和公共标准的承诺,引入了对新的安全、可靠和事务化 Web 服务标准的支持:
Web Services Reliable Messaging v1.1(Web 服务可靠消息传递 1.1 版)
Web Services Reliable Messaging Policy Assertion v1.1(Web 服务可靠消息传递策略断言 1.1 版)
WS-SecureConversation v1.3(WS-SecureConversation 1.3 版)
WS-Trust v1.3(WS-Trust 1.3 版)
WS-SecurityPolicy v1.2(WS-SecurityPolicy 1.2 版)
Web Services Atomic Transaction (WS-AtomicTransaction) Version 1.1(Web 服务原子事务 (WS-AtomicTransaction) 1.1 版)
Web Services Coordination (WS-Coordination) Version 1.1(Web 服务协作 (WS-Coordination) 1.1 版)
Web Services Policy 1.5 - Framework(Web 服务策略 1.5 – 框架)
Web Services Policy 1.5 - Attachment(Web 服务策略 1.5 – 附件)
通过使用新的标准绑定 <ws2007HttpBinding> 和 <ws2007FederationHttpBinding>(在 Web 服务协议互操作性指南Web Services Protocols Interoperability Guide中介绍),可以使用这些协议的实现。有关代码示例,请参见 WS 绑定示例。
3.8 WPF
在 .NET Framework 3.5 中,WPF 包含多个方面的更改和改进,其中包括版本控制、应用程序模型、数据绑定、控件、文档、批注和三维 UI 元素。
WCF 和 WF 集成 — 工作流服务规则
现在,WF 规则引擎支持扩展方法、运算符重载和在规则中使用新的运算符。
3.10 Windows 窗体
已经对 ClickOnce 进行了一些改进。这些改进包括从多个位置进行部署和第三方署名。
更新了 .NET Framework 3.5 的 Mage.exe 工具,该工具有时与 ClickOnce 一起使用。
身份验证、角色和设置服务
客户端应用程序服务是 .NET Framework 3.5 中的新增功能,这些服务使基于 Windows 的应用程序可以方便地访问 ASP.NET 登录、角色和配置文件服务。通过这些服务,可以对用户进行身份验证,并且可以从共享服务器中检索用户角色和应用程序设置。
通过在应用程序配置文件中或在 Visual Studio 项目设计器中指定和配置客户端服务提供程序,可以启用客户端应用程序服务。这些提供程序插入到 Web 扩展性模型中,使您可以通过现有的 .NET Framework 登录、角色和设置 API 访问 Web 服务。通过在应用程序脱机时存储和检索本地数据缓存中的用户信息,客户端应用程序服务还支持偶尔连接。
Windows Vista 支持
现有 Windows 窗体应用程序可在 Windows Vista 上无缝运行,如果可能,还可以进行升级,使其具有与专为 Windows Vista 编写的应用程序相同的外观。公用文件对话框将自动更新为 Windows Vista 版本。.NET Framework 3.5 还支持用户帐户控制 (UAC) 盾牌图标。
WPF 支持
可以使用 Windows 窗体来承载 Windows 窗体控件以及 Windows Presentation Foundation (WPF) 控件和内容。还可以从 Windows 窗体打开 WPF 窗口。
3.11 LINQ
语言集成查询 (LINQ) 是 Visual Studio 2008 和 .NET Framework 3.5 中的新功能。NET Framework 3.5 包含 LINQ 提供程序程序集,这些程序集支持使用 LINQ 来查询 .NET Framework 集合、SQL Server 数据库、ADO.NET 数据集和 XML 文档。
作为 .NET Framework 3.5 的一部分的 LINQ 的组件包括:
System.Linq 命名空间,其中包含用于 LINQ 查询的基础结构中的标准查询运算符、类型和接口的集合。此命名空间位于 System.Core.dll 程序集中。
System.Data.Linq 命名空间,其中包含支持与 LINQ to SQL 应用程序中的关系数据库进行交互的类。
System.Data.Linq.Mapping 命名空间,其中包含可用于生成表示关系数据库的结构和内容的 LINQ to SQL 对象模型的类。
System.Xml.Linq 命名空间,其中包含 LINQ to XML 的类。LINQ to XML 是内存中的 XML 编程接口,使您可以轻松有效地修改 XML 文档。通过使用 LINQ to XML,可以加载 XML,序列化 XML,从头创建 XML 树,操作内存中的 XML 树以及使用 XSD 进行验证。还可以组合使用这些功能,将 XML 树从一种形状转换为另一种形状。
System.Web.UI.WebControls 和 System.Web.UI.Design.WebControls 命名空间中的新类型。这些新类型(如 LinqDataSource)支持通过数据源控件在 ASP.NET 网页中使用 LINQ。
System.Data 命名空间中的 DataRowComparer、 DataRowExtensions 和 DataTableExtensions 类支持 LINQ 针对 ADO.NET DataSet 对象的查询。
在类库中,在“内容”窗格和“索引”窗格中的类的成员页中列出了适用于该类的 LINQ 扩展方法。
3.12 表达式目录树
表达式树是 .NET Framework 3.5 中的新增功能,提供了一种以数据形式表示语言级代码的方法。 System.Linq.Expressions 命名空间包含属于表达式树的构建块的类型。这些类型可用来表示不同类型的代码表达式,例如,方法调用或相等比较。
表达式树在针对远程数据源(如 SQL 数据库)的 LINQ 查询中得到了广泛使用。这些查询以表达式树的形式表示,此表示形式可让查询提供程序检查这些查询并将其转换为特定于域的查询语言。
System.Linq.Expressions 命名空间位于 System.Core.dll 程序集中。
3.13 编程语言
有三种 Microsoft 编程语言是明确针对 .NET Framework 的。有关这些语言中的新增功能和增强的更多信息,请参见以下主题:
C# 中的新增功能 Visual C++ 2008 中的新增功能 Visual Basic 语言的新增功能
.NET Framework 3.5 Service Pack 1 更新了 .NET Framework 3.5 附带的一些程序集。更新的内容包括非重大更改、新的 API 元素和针对 .NET Framework 3.5 附带的技术的附加功能。.NET Framework 3.5 SP1 中包含以下技术:
ASP.NET 动态数据。
ADO.NET Entity Framework。
对 SQL Server 2008 的数据提供程序支持。
对 .NET Framework 客户端配置文件的支持。
.NET Framework 3.5 SP1 中的新增功能
4.1 ASP.NET
新增的 ASP.NET 功能包括 ASP.NET 动态数据和 ASP.NET AJAX 附加功能,前者提供了无需编写代码就可实现数据驱动的快速开发的丰富支架框架,后者为管理浏览器历史记录提供了支持(后退按钮支持)。
4.2 公共语言运行时
对公共语言运行时的核心改进包括:
·提高了应用程序启动和工作集的性能。
·为 .NET Framework 本机映像提供了更好的布局。
·选择性退出对完全受信任程序集的强名称验证。
·生成更好的代码,可加快端对端应用程序的执行。
·通过 垃圾回收通知检测即将发生的完整垃圾回收。
·在操作系统支持情况下,选择使用 ASLR(地址空间布局随机化)运行托管代码。
·从网络共享打开的托管应用程序与完全信任下运行的本机应用程序具有相同的行为。
4.4 .NET Framework 客户端配置文件
.NET Framework 客户端配置文件是完整版 .NET Framework 的子集,面向客户端应用程序。这改善了尚未安装 .NET Framework 的计算机上的安装体验。
4.5 WPF
已经改进 WPF的性能,其中包括启动速度的位图效果性能的提高。为 WPF 增加的功能包括对业务线应用程序的更好支持、本机闪屏支持、DirectX 像素着色器支持以及新的 WebBrowser 控件。
4.6 ClickOnce
ClickOnce 应用程序发布者可以根据具体情况决定是否取消签名和散列,开发人员可以以编程方式安装显示自定义署名的 ClickOnce 应用程序,ClickOnce 错误对话框支持指向网络上特定于应用程序的支持站点的链接。
4.7 通过 ADO.NET 访问数据
用于 SQL Server 的 .NET Framework 数据提供程序 ( System.Data.SqlClient) 完全支持 SQL Server 2008 数据库引擎的所有新功能。
ADO.NET 数据平台是一种多版本策略,它使开发人员能够针对概念性实体数据模型进行编程,从而减轻他们的编码和维护工作。此平台提供了 ADO.NET Entity Framework、实体数据模型 (EDM)、对象服务、LINQ to Entities、Entity SQL、EntityClient、ADO.NET 数据服务及实体数据模型工具。
4.8 WCF
现在提供了改进的互操作性支持,增强了部分信任方案中的调试体验,并扩展了整合协议支持以更广泛地应用于 Web 2.0 应用程序,从而使 DataContract 序列化程序更易于使用。
4.9 Windows 窗体控件
Microsoft.VisualBasic.PowerPacks 命名空间引入了新的 DataRepeater 控件,该控件以可自定义的列表格式显示数据。此命名空间还包含新的矢量形状。
*************************************************************************************************************************