在工作流程方面,MS WF和NServiceBus之间是否有重叠? 如果另一个已被使用,是否需要使用一个? 他们一起玩得怎么样?WF和nServiceBus是否重叠?怎么样?和哪个使用?
回答
NServiceBus通过“传奇”支持工作流程, http://nservicebus.com/Sagas.aspx
的主要区别是,传奇故事更容易单元测试,并且你没有因为NSB的底层队列的使用担心的一致性和DTC确保失败的步骤会自动重试。
乌迪有一个播客讨论这一切:
http://www.udidahan.com/2007/10/23/podcast-durable-services-with-wcf-wf-and-nservicebus/
简而言之:如果您使用NSB就没有必要海事组织MS WF。
我想给我的2美分:
我在新的项目正在与一个相当复杂的领域,其中一些领域的工作流程可能演变并在一些不同的情况而改变。我们一直在分析可能的解决方案来编排不同的应用程序服务器(WCF服务)。我们分析的第一个架构解决方案是使用Service Bus + PubSubs模式(nservicebus,rhino ESB,masstransit,Shuttle ESB ...)。我们分析的另一个解决方案是WF 4.0。我们正在接近做出决定,现在WF 4.0被选择的一个原因是:
- 工作流程的自定义应用程序使用workflow diagrams
- 工作流程diagram designer can be embedded建模,可用于生产过程中进化的工作流程,因为它们是在XAML中定义。
- PubSubs与传奇故事模式,在某种程度上会冲淡工作流建模方式,并在一些复杂的情况它会是很难有工作流程是如何工作的
- WF 4.0工作流程服务提供清晰的观点是on top of WCF,所以你可以有发送/接收与WCF端点通话的活动。因此,我们拥有所有的力量和WCF的灵活性:安全,可靠的通讯科,MSMQ,WS *标准,...
- WF 4.0服务可以在Appfabric托管:可扩展性,可维护性,监控和故障诊断变得容易
有一个问题,我们已经在分析这个事实,即WF 4.0不支持状态机(就像它在3.5版中那样)。虽然MSFT explains how to implement state machines使用随4.0
希望这有助于
Juanjo
[WF4 State Machine](http://blogs.msdn.com/b/endpoint/archive/2011/04/20/wf4-state-machine-user -experience.aspx)现在可用。 – TrueWill 2011-09-22 20:14:56
我有@Andreas奥朗德不同意新Fowchart活动。这就像是说“我拥有C#和.NET Framework,那么为什么我需要购买ERP系统?” @ juanjo.arana的答案更加平衡。
NServiceBus documentation for Sagas是一个页面(我的显示器上有5个屏幕)。该书Pro WF是850页。 (我读过它,它不是填充。)书Professional K2 blackpearl(讨论完整的BPM系统)是870页(亚马逊的计数是关闭的)。
即使WF 4(不包括SharePoint)也不是一个全功能的BPM系统。它缺少活动级别的安全模型,锁定(“Bob已声明此工作单尚未完成”),高级版本控制和报告。你可以构建所有这些东西,但它们不在“盒子”中。
看看NServiceBus Sagas页面的超时部分。将其与做expiration in WF 4的可视化方法进行比较。想象一下,在一个复杂的工作流程中跟踪这一点,每当管理者希望得到一个员工在文件处理系统中花费太长时间的通知时,都需要超时(升级)。
我同意工作流程有时候是矫枉过正的,而且他们可能很难测试。 (有ways to unit test WF 4。)但我不想用NServiceBus构建真实世界的BPM风格工作流。
- 1. 使用git和rtc - rsync怎么样?
- 2. google map api v2和v3怎么样,哪个更好
- 3. 是否可以在dataview.rowfilter中使用2个参数?怎么样?
- 4. 为什么使用RavenDB和NServiceBus
- 5. 你怎么知道何时使用折叠和何时使用折叠权?
- 6. 是否可以在没有IIS的情况下安装和使用OpenRasta?如果是这样,怎么样?
- 7. 使用matlabFunction,我怎样才能指定哪个是变量,哪些是常量?
- 8. 如果我有两个时间段,我怎么知道它们是否重叠?
- 9. 是否有可能确定使用JavaScript将滚动到哪里?如果是这样,怎么样?
- 10. 是否可以在WPF中使用Kit3D?如果是这样,怎么样?
- 11. 是否可以在try块中使用return语句?怎么样?
- 12. clojure是否允许线延续?如果是这样,怎么样?
- 13. 怎样用TestStack.White和C#
- 14. 我怎样才能使用JQuery和PHP
- 15. 是否可以删除一个FieldSet然后重新添加它?怎么样?
- 16. rails 3和ajax:set动作怎么样?
- 17. XSLT:分组和排序....怎么样?
- 18. 如果`lang`属性重叠怎么办?
- 19. 无法使用ASP.NET和WF 4重定向到另一页面
- 20. 的Java:如何使用克隆()和怎么样的投检查
- 21. 我怎样才能使用什么:=在VBA中like和multiple condition
- 22. window.setInterval - 是否可以有多个?怎么样?
- 23. 使用jQuery Masonry重叠问题和Typekit
- 24. 检查两个矩形是否重叠
- 25. args和args [..]是否一样?
- 26. Alias和CTE是否一样?
- 27. dict()和add_csrf()是否一样?
- 28. 是否一起使用WF和WCF来构建消息传递系统?
- 29. WF规则和CodeTypeReferenceExpression
- 30. 如何检查2个WPF路径(使用MatrixTransform)是否重叠
这是不正确的。工作流程远不只是传奇故事。即使乌迪自己说:http://www.udidahan.com/2007/12/17/no-more-workflow-for-nservicebus-please-welcome-the-saga。所有常见模式实现在哪里? http://www.workflowpatterns.com/patterns/resource/ – Den 2015-02-19 17:36:43