【问题标题】:Integrating WF4.0 with Silverlight 4.0将 WF4.0 与 Silverlight 4.0 集成
【发布时间】:2011-03-17 11:45:19
【问题描述】:

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

提前致谢。

【问题讨论】:

  • 这可以通过使用WorkflowInvoker来完成吗??

标签: silverlight-4.0 workflow-foundation-4


【解决方案1】:

在 WF 4.0 中,您可以通过 WCF 端点启动(或推进)工作流。因此,如果您可以从 Silverlight 应用程序调用 WCF 端点,您应该可以很容易地做到这一点。很多关于Microsoft's WF Developer Centre.的信息

假设您使用的是 Visual Studio 2010,您可以通过一个非常简单的 Silverlight -> WF 示例快速启动并运行...

  1. 从“WCF 工作流服务应用程序”模板创建一个新项目(和新解决方案)。该项目将命名为 DeclarativeServiceLibraryX。这应该为您提供一个非常简单的 WorkflowService 定义,它使用 SequentialService 简单地接收来自客户端的请求(使用单个整数参数)并发送响应(使用相同的值)。此项目是作为 Web 项目创建的,因此包含一个 Web.config。
  2. 创建一个新的 Silverlight 4 应用程序。系统将询问您是否要在现有 Web 项目(在步骤 #1 中创建)中托管 Silverlight 应用程序。同意可能是个好主意。
  3. 在 Silverlight 应用程序中,选择“添加服务引用...”,然后选择“发现/解决方案中的服务”。 Service1.xamlx 将作为一个选项出现,选择它并单击确定。
  4. VS 随后会生成一个 WCF 服务引用客户端。然后,您可以添加一个文本框和按钮来捕获一些数据、创建客户端并将服务调用通过网络发送到 WCF 工作流服务。然后可以根据需要修改此工作流服务(或使用这些步骤将 WCF 工作流服务添加到您自己的 Web 项目中)。

一个可能具有挑战性的领域是修改 WCF 服务绑定以与 Silverlight 兼容;也许首先在您的服务器端项目中创建一个与 Silverlight 兼容的 WCF 服务,然后创建一个 WF WCF 端点并查看生成的代码和配置以了解如何将它们组合在一起。

MSDN Endpoint blog 也是了解更多关于 WF 和 WCF 的有用资源(尤其是新样式的轻量级 REST 样式“WCF Web HTTP”绑定,它可能更适合 Silverlight 客户端使用。

我假设您不想在 Silverlight 应用程序本身中托管工作流,因为 WF 是一个完整的 .Net 框架组件,而不是与 Silverlight 兼容。我相信您可以编写自己的在 Silverlight 中运行的轻量级工作流框架,但考虑到工作流通常是多用户的服务器端问题,这可能不是很有用的问题。

【讨论】:

  • 您是否建议我应该创建一个 WCF 并从该 WCF 调用工作流,如果是这样,那么我认为它会影响我的应用程序的性能。
  • 你为什么这么说? WCF 不一定会影响您的应用程序的性能,它只是一个用于组织分布式应用程序之间/内部通信的框架。如果 Silverlight 和应用程序的服务器端组件之间的通信过于繁琐,或者使用“繁重”的协议(例如 SOAP 与轻量级 REST WCF 服务),可能会影响性能。但无论您是使用 WCF 还是其他机制来启用应用程序通信,这些都是围绕分布式应用程序架构的挑战。
  • 无论如何,我更新了我的答案,包括创建 WCF 工作流服务和可以触发它的 Silverlight 客户端的分步示例,希望它有用!
【解决方案2】:

我为这些 samples 找到了 WPF here 的示例。希望他们能对您有所帮助,或者至少对这个主题有一个大致的了解。

【讨论】:

    【解决方案3】:

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

    【讨论】:

      【解决方案4】:

      您不能将 WF 与 silverlight 一起使用....唯一的方法是,您可以按照 James Webster 的说明调用 WCF 服务来访问 WF。

      【讨论】:

      • 即您可以将(调用)WF 与silverlight 一起使用吗? :p
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-02-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多