誰かがビジネスルール/検証エンジンにWindowsワークフローを正常に使用しましたか?


11

誰もがWindows Workflow FoundationをBusinessRules / Validationエンジンに正常に使用したかどうか、またはこれに関するサンプルコードや記事を知っているかどうか疑問に思っていました。

以前に使用したことがある場合、それについてどう思いますか?他のBusinessRule / Validationシステムと比較してどうですか?

私は次のようなルールを考えています

if (A, B, and C) 
    AllowAccess();

または

if (Value between X and Y)
    return true;

回答:


6

私は数か月前にWWF WCFを使用してエンジンの構築を開始しました。ルールベースがどれほど複雑かはわかりませんが、私たちのルールはかなり大きかったです。40,000のブランチのような可能性がある場合、WWFは適切ではありません。別の方法として、SQLのロジック例外テーブルを使用するエンジンを構築することになりました。行には、基本値と、例外ごとに異なる数式の書式設定された文字列が格納されます。動的言語(私はラッパーで組み込みのIronPythonエンジンを使用し、組み込みのJScriptエンジンを使用できます)と組み合わせて、ロジックをその場で高度に抽象化されたレベルで決定できました。このルートに行ってとてもうれしいです。ドラッグアンドドロップロジックは素晴らしいように見えますが、ビジネスの人々はマーケティングにもかかわらずそれを使用することはできず、開発者のIMHOが遅くなり、すぐにネズミの巣になります。

更新:まだ興味がある場合は、初心者向けガイドをご覧ください。それは確かに広大ではありませんが、いくつかのまともなビデオがあります。セットアップについては、ネットワークエンジニアが私のためにセットアップを行いました(サーバーのメンテナンス、セキュリティなどの企業ポリシー)が、基本的なWCFサービスのセットアップとほとんど同じでした。基本的には、ISSの仮想ディレクトリにスローします。通常は長時間実行されるプロセスであるため、サービスの作成中はメモリ管理に特に注意してください。6か月間、リソースを何度も何度も破棄しないと、サーバーが不満になります。


どのようにセットアップされましたか?はじめに、またはサンプルコードを含むオンラインの記事をご存知ですか?
レイチェル

ありがとう。ビジネスルールの実行のパフォーマンスはどうでしたか?
レイチェル

そして、かなり正直に、私はこのためにWWFを使用するという考えに反対ですそれにチャンスを与える少なくとも私はしたいと思いますので、しかし、私のチームメイトは:)それのためにすべてをある
レイチェル

1
@ Rachel-のパフォーマンスは妥当でした(UI設定で実行できるほど高速で、それが何かを意味する場合は、マルチスレッドを少し使用します)。非常に高速でもありませんが、分散WCFサービスを使用するものは何もありません。
モーガンハーロッカー

ロジックエンジンとIronPythonのアプローチを示す資料がインターネット上でまだ入手可能ですか?(「初心者向けガイド」リンクは機能しなくなります)。
ロバートハーベイ

1

Ironcodeに同意する必要があります。新しいBiztalkが登場する数年前(奇妙なことに)、ドラッグアンドドロップのフローチャートスタイルのシステムを作成しました。アイデアは、プログラマーではない人がプログラミングでき、システムを簡単に保守および変更できるというものでした。

その結果、プログラマーと同じくらい高度なトレーニングを必要とする「ビジネスアナリスト」が必要でしたが、WWFシステムの新しい「言語」が必要でした。ですから、あなたはそこではあまり利益を得ませんでした。デバッガーは真の開発システムほど優れていなかったため、そこに負けました。また、データとGUI処理の中核であるトリッキーなモジュールを作成するプログラマーも必要でした。スケーラビリティも非常に急速に低下しました。シンプルなビジネスルールをまとめるのは簡単でしたが、一度ダースを過ぎるとスパゲッティになりました。

いくつかの利点はあったと思いますが、基本的には、スクリプトエンジンを使用してカスタム作成モジュールを結合する方が良いでしょう。

マーケティングの種類には本当にクールに見えましたが、素晴らしいデモになりました:)

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.