我开始着手一个新项目,该项目将使用WF4处理业务流程,Silverlight 4作为UI界面。
我知道Silverlight无法托管WF; 我对此不感兴趣。
我想知道我是否应该:
创建工作流服务,并直接在Silverlight中添加服务引用
或者
通过DomainService公开这些工作流
我的工作流将是长时间运行的,并需要进行持久化。
有什么建议吗?
我开始着手一个新项目,该项目将使用WF4处理业务流程,Silverlight 4作为UI界面。
我知道Silverlight无法托管WF; 我对此不感兴趣。
我想知道我是否应该:
创建工作流服务,并直接在Silverlight中添加服务引用
或者
通过DomainService公开这些工作流
我的工作流将是长时间运行的,并需要进行持久化。
有什么建议吗?
这有点取决于您想在服务器上放置多少其他逻辑。在大多数情况下,我直接从Silverlight UI使用工作流服务。无论哪种方式,如果工作流程长时间运行,我都更喜欢使用工作流服务。
个人而言,我会使用WCF RIA服务,并将WF链接到这些端点(调用和CUD)。如果您必须处理不一定是短期运行的WF,则引入消息队列是一种处理方式。
我两种方法都尝试过。一开始我使用服务,但是由于AppFabric的问题、调试、同时支持http和https等方面的问题,我转而将工作流托管在IIS中(或者应用服务器也可以),并使用Web服务进行接口。
这条路也非常困难,因为没有一个包含足够企业级功能的工作流托管组件,我不得不编写它们。这并不容易,我不认为我会推荐这样做。
最后,莫里斯是我在微软以外找到的唯一真正的WF4专家(我现在在微软工作,但在上述项目时还没有加入)。