将WF4.0与Silverlight 4.0集成

时间:2011-03-09 10:23:27

标签: silverlight-4.0 workflow-foundation-4

我是Silverlight和WF(两者都是4.0版本)的新手,我想知道我们是否可以将WF4.0与Silverlight 4.0集成在一起,当我们点击sliverlight UI中的某个按钮时,应该执行工作流程并且工作流程的最终活动的输出显示在Silverlight屏幕中。如果可以,那么请提供一些链接或任何教程,我可以从中了解并开始实施。

提前致谢。

4 个答案:

答案 0 :(得分:4)

在WF 4.0中,您可以通过WCF端点启动(或推进)工作流。因此,如果您可以从Silverlight应用程序调用WCF端点,则应该可以非常轻松地执行此操作。有关Microsoft's WF Developer Centre.

的大量信息

假设您使用的是Visual Studio 2010,您可以使用非常简单的Silverlight启动并运行 - > WF的例子很快......

  1. 从“WCF工作流服务应用程序”模板创建新项目(和新解决方案)。该项目将命名为DeclarativeServiceLibraryX。这应该使用SequentialService为您提供一个非常简单的WorkflowService定义,它只接收来自客户端的请求(带有一个整数参数)并发送一个响应(具有相同的值)。该项目是作为Web项目创建的,因此包括Web.config。
  2. 创建一个新的Silverlight 4应用程序。系统将询问您是否要在现有Web项目(在步骤#1中创建)中托管Silverlight应用程序。说是的好主意可能是个好主意。
  3. 在Silverlight应用程序中,选择“添加服务引用...”,然后选择“解决方案中的发现/服务”。 Service1.xamlx将作为选项显示,选择它并单击“确定”。
  4. VS将生成WCF服务引用客户端。然后你可以添加一个TextBox&按钮捕获一些数据,创建客户端并通过线路将服务调用发送到WCF工作流服务。然后可以根据需要修改此工作流服务(或使用这些步骤将WCF工作流服务添加到您自己的Web项目中)。
  5. 可能面临挑战的一个方面是修改WCF服务绑定以与Silverlight兼容;也许首先在服务器端项目中创建一个与Silverlight兼容的WCF服务,然后创建一个WF WCF端点并查看生成的代码&配置以了解如何将事物放在一起。

    MSDN Endpoint blog也是一个有用的资源,可以更多地了解WF和WCF(特别是新样式的轻量级REST风格的'WCF Web HTTP'绑定,它可能更适合Silverlight客户端使用。

    我假设你不想在Silverlight应用程序本身内部托管工作流,因为WF是一个完整的.Net框架组件,而不是Silverlight兼容。我确信您可以编写自己的轻量级工作流框架,该框架在Silverlight中运行,但由于工作流通常是一个多用户,服务器方面的问题,这可能不是非常有用的问题。

答案 1 :(得分:0)

我为这些here找到了WPF samples的示例。希望他们能帮到你一点,或者至少对这个话题给出一般看法。

答案 2 :(得分:0)

Workflow Foundation未包含在Silverlight 4.0运行时中,因此无法在Silverlight应用程序中使用。 Silx的答案与Silverlight完全没有关系。 James Websters的回答是唯一能够利用Silverlight中的WF的解决方案。

答案 3 :(得分:0)

您无法在Silverlight中使用WF ....唯一的方法是,您可以按照James Webster的说明调用WCF服务来访问WF。