C# .NET 工作流引擎
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/905389/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
Workflow Engine for .NET
提问by Luke Schafer
This is a multipart question:
这是一个多部分问题:
First, what is your personal opinion of Workflow?
首先,您对 Workflow 的个人看法是什么?
Second, are there any other good .NET-based workflow engines? Some information about my usage:
其次,还有其他好的基于 .NET 的工作流引擎吗?关于我的使用情况的一些信息:
- Using both static and dynamic workflows
- Integrate with Castle (Monorail and Windsor)
- Utilizing queuing via MSMQ
- We want a simple, clean, non-leviathan framework.
- GUI workflow editing is not really required, but I don't care if it has it.
- 使用静态和动态工作流
- 与 Castle 集成(单轨列车和温莎)
- 通过 MSMQ 使用排队
- 我们想要一个简单、干净、非利维坦的框架。
- GUI 工作流编辑并不是真正必需的,但我不在乎它是否有。
I don't care whether the workflow is defined in DB, XML or Code, as however we decide to define it we can write an adapter if it's not already supported. Proprietary (free or fee) is fine, but open source is preferred.
我不在乎工作流是在 DB、XML 还是 Code 中定义的,因为我们决定定义它,如果它不被支持,我们可以编写一个适配器。专有(免费或收费)很好,但首选开源。
采纳答案by Alex
I don't like the fact that workflows are persisted to the database in a binary format. It means you can't make sense of it by just looking at the database.
我不喜欢工作流以二进制格式持久保存到数据库的事实。这意味着您无法通过查看数据库来理解它。
There is only very weak support for versioning. This means that if you update your workflow it is a real hassle to make sure any existing workflows running on the previous version can finish. You need to mess around with web.config and specify the different version's of your .dll files.
对版本控制的支持非常弱。这意味着,如果您更新您的工作流程,要确保在先前版本上运行的任何现有工作流程都可以完成是一个真正的麻烦。您需要处理 web.config 并指定不同版本的 .dll 文件。
I did play around with a couple. WorkflowGenwas pretty easy to use and powerful. But in the end I just decided to roll my own because we only needed workflows for simple tasks such as sending emails to suppliers when purchase orders were raised and invoices needed to be paid. I also had complete control of the source and could make modifications this way.
我确实和一对夫妇一起玩。WorkflowGen非常易于使用且功能强大。但最后我决定自己动手,因为我们只需要执行简单任务的工作流程,例如在提出采购订单和需要支付发票时向供应商发送电子邮件。我还完全控制了源代码,可以通过这种方式进行修改。
回答by DodyG
I have used http://codeplex.com/simplestatemachinein one production system successfully (an ASP.NET system for handling 350+ different government business license issuance).
我已经成功地在一个生产系统中使用了http://codeplex.com/simplestatemachine(一个 ASP.NET 系统,用于处理 350 多个不同的政府营业执照颁发)。
A simple state machine is implemented in Boo, so we just expose the definition in a text file which the system administrator can modify. In the editor we do verification to make sure the editing is correct and the workflow is actually functional.
在 Boo 中实现了一个简单的状态机,所以我们只在系统管理员可以修改的文本文件中公开定义。在编辑器中,我们进行验证以确保编辑正确且工作流程实际运行。
Today I found this, https://github.com/nblumhardt/stateless, which looks interesting.
今天我发现了这个,https://github.com/nblumhardt/stateless,看起来很有趣。
We switched to an open source alternative simply because our experience with Workflow was not good.
我们切换到开源替代方案仅仅是因为我们对 Workflow 的体验不佳。
回答by Marcus
We've been using for one of our product lines that reqiuires simple workflows;
我们一直在用于需要简单工作流程的产品线之一;
回答by John Hansen
You may wish to take a look at Jazz which allows you to write workflows in C# - http://jazz.codeplex.com/
您可能希望查看 Jazz,它允许您用 C# 编写工作流 - http://jazz.codeplex.com/