有些事情是容易只是用手(代码)来实现,但有些是通过WF容易。 它看起来像WF可以用来创建(几乎)任何一种算法。 因此,(理论上),我可以做我的WF所有的逻辑,但它可能是一个坏主意,这样做对所有项目。
在什么情况下是它使用WF一个好主意,它的时候会使事情更难,然后他们必须? 有什么利弊/手动WF与编码的成本是多少?
有些事情是容易只是用手(代码)来实现,但有些是通过WF容易。 它看起来像WF可以用来创建(几乎)任何一种算法。 因此,(理论上),我可以做我的WF所有的逻辑,但它可能是一个坏主意,这样做对所有项目。
在什么情况下是它使用WF一个好主意,它的时候会使事情更难,然后他们必须? 有什么利弊/手动WF与编码的成本是多少?
您可能需要WF仅如有以下为真:
有关详细信息,请参阅保罗·安德鲁的帖子: 用什么Windows工作流基础呢?
请不要混淆或涉及WF与任何形式的可视化编程。 这是错误的,并可能导致非常糟糕的建筑/设计决策。
决不。 你可能会后悔:
我曾经设想利用WF的唯一情况是,如果我想主办终端用户的设计师,也许甚至没有然后。
相信我,什么也不会永远是那么简单,功能强大,或灵活,因为你写到底该怎么做,你需要做的代码。 远离WF路程。
当然,这只是我的意见,但我认为这是一个该死的好一个。 :)
通过WF生成的代码是讨厌的。 该WF带来的价值是在系统的可视化表示,虽然我还没有看到任何东西(在现在,我一直在参与WF工作6-7项目),我不会首选简单的手工编码项目。
一般来说,如果你不需要持久性和跟踪功能(这在我看来是主要功能),你不应该使用工作流基础。
以下是工作流基础的我从我的经验收集的优点和缺点:
好处
缺点
我发现使用工作流基础的主要原因是多少它给你带来的开箱跟踪和持久性方面。 这是很容易得到持久性的服务和运行,这带来了多个实例和主机之间的可靠性和负载分配。
在另一方面,就像表格应用,工作流设计器推动你走向不好的代码模式。 但是你可以通过写的工作流程没有代码,并委托一切工作的其他类,可以组织和单位比测试流程更优雅地避免问题的发生。 然后你得到了设计师的很酷的视觉效果方面无面条代码的冗余代码后面。
就个人而言,我不WF出售。 它的用处是不是明显对我其他新的MS技术,如WPF或WCF。
我认为WF将在很大程度上在未来的商业应用程序中使用,但我不打算使用它,因为它似乎不喜欢这份工作为我的项目的工具。
公司我目前正在为建立一个Windows工作流基础(WF)和他们选择使用它是因为规则会频繁地发生变化,这将迫使他们做不同的dll等重新编译,因此他们的解决方案的原因是放置规则在数据库中,并从那里调用它们。 这样,他们可以改变规则,而不必重新编译和重新发布的DLL等。
窗口工作流程勾引非编码IT经理的BA等作为执行其表弟的BizTalk但在实践中的单元测试,调试和代码覆盖率只是三个许多陷阱。 你可以克服其中的一些,但你必须在实现这一目标而使用明码你只拿到大量投资。 如果你真的有一个长期运行的要求,那么你可能需要一些更复杂。 我听到的说法大约能降的新XAML文件投产无需重新编译的dll但老实说,这工作流程会消耗可以更好地用于改善持续集成的地步编译展开时是没有问题的时间。
在同一起选择K2甚至SharePoint 2007的平台的力量是真正有用的使用时,我会用它在我需要的工作流程的工作任何环境,但是。 当发展与商务智能专家的业务应用,建议使用该平台的,这通常只会是有关简化和改进业务流程。
为了记录WF在联合开发与K2的开发团队和新的K2 blackpearl的是建立在WF的顶部,所以是MOSS 2007和WSS 3.0的工作流引擎。
如果你不想手动编写所有的代码,以保持可视化界面,跟踪和持久性,这是一个明智的选择投票给WF。
我一直在使用Windows工作流几个月来开发定制的活动,并重新托管设计师,非开发人员可以用它来构建工作流。 WF是很强大,但它只能作为由开发商建造的自定义活动为好。 当它发生的时候,开发者必须过目由非开发人员测试和调试,但是从他们可以创建草案workflows-这是梦幻般的点创建的工作流。
此外,在你有很长的流程WF是当你需要动态更新进程使用了良好的技术堆栈的情况下 - 而无需重新安装/下载或做任何事情,只是新的XAML文件添加到一个目录,你的架构应该是设置了版本放弃旧的,并使用新的。