介绍VS2010中WCF 工具的新功能

微软服务器与开发工具事业部 薛敏敏

如果你在VS2008中开发过WCF服务应用,那你应该使用过集成在其中的WCF开发工具。如果你刚刚开始使用WCF技术,那么可以先阅读这两篇博文对这些WCF开发工具有一个初步的了解:VS2008中的WCF开发工具VS2008 SP1中WCF开发工具的新功能和增强点

而在VS2010中我们团队继续为WCF开发工具添加了一系列新功能,希望能为大家提供更好的开发体验。在本文中我将它们逐一罗列出来:

在工作流4.0应用中添加服务引用

当你在一个工作流4.0应用中添加服务引用时,你会看到和以前一样的添加服务引用对话框,可以输入服务的mex或wsdl地址,来生成客户端的代理。不同于以往生成的代码,这时还会生成一组基于XAML的预先配置好的消息活动,和服务中的方法一一对应。当你build你的工作流4.0应用后,这些活动会加到Toolbox中,你可以拖拽使它们成为你的工作流的一部分,并且使用它们来调用服务。

image image image

新的WCF工作流服务模板

在.net4.0中,我们新添加了一个新的WCF工作流服务应用模板,帮助创建可长时间运行的工作流服务。

image  image

简化配置的WCF服务模板

在WCF4.0中对配置作了简化,包括:使<Services>部分变为可选的,在运行时获得服务的终结点信息;支持服务行为和绑定配置、终结点配置的名字为空等等。所以在4.0的服务模板中也在配置文件中体现了这些简化的配置,以下是WCF服务应用模板的例子:

<system.serviceModel>

<behaviors>

<serviceBehaviors>

<behavior>

<!-- To avoid disclosing metadata information, set the value below to false and remove the metadata endpoint above before deployment -->

<serviceMetadata httpGetEnabled="true"/>

<!-- To receive exception details in faults for debugging purposes, set the value below to true. Set to false before deployment to avoid disclosing exception information -->

<serviceDebug includeExceptionDetailInFaults="false"/>

</behavior>

</serviceBehaviors>

</behaviors>

</system.serviceModel>

在WCF和工作流服务应用中F5自动启动WCF测试客户端

在VS2008中,只支持在WCF服务库模板中F5自动启动WCF测试客户端。在VS2010 中,从WCF和工作流服务应用模板创建的WCF服务应用也支持F5自动启动WCF测试客户端。在F5前,请先选中特定服务的.svc或.xamlx文件。

WCF测试客户端支持DataSet类型

WCF测试客户端可以测试WCF服务或者.NET服务中使用的DataSet数据类型。

image

在WCF和工作流服务应用中全新的服务发布机制

当基于WCF或WCF工作流服务应用模板创建服务应用后,你可以使用全新的发布机制来部署这些服务应用。对于WCF服务库应用还是继续沿用老的发布机制。

Web包:在VS2010中使用MSDeploy打包应用,在Web包中包含了IIS设置信息,相关的web内容,SQL服务器数据库,安全认证,GAC组件,等等。所以Web包可以直接拿到任何服务器上发布。

image image

配置文件转换:在VS2010中引入了XML Document Transform (XDT),用于灵活地转换开发时或发布时的配置文件。在配置转换文件web.debug.config, web.release.config中存储在web.config文件中需要被替换的内容。

image image

服务发布一步到位:VS2010支持使用IIS远程管理服务把应用发布到远程服务器上。通过创建好特定的profile,可以支持一键式的发布。

image

以上是对VS2010中WCF工具的简单小结。在后续的文章中,我们将会对其中的一些功能作更详细的描述。

有用的链接:

WCF 和WF新功能:  https://msdn.microsoft.com/en-us/netframework/cc896557.aspx

WCF,WF和AppFabric的网上实验室: https://msdn.microsoft.com/en-us/cc814756.aspx