2009-03-19 27 views
3

現在、「データ駆動型」状態マシンアプリケーションを開発中です。現在、状態フローはすべてデータベースに設定されていますが、意思決定/ビジネスロジックは現在の設計のDBでは設定できません。このため、コードでは基本的に状態フローも把握する必要があるため、データベースにフローを設定することは実際には必要ありません。データ駆動型ステートマシンアプリケーション

依存性注入(Spring.NET)を使用して状態パターンを結びつけることができるように設計されていますが、このデータ駆動型の最適な方法についてはわかりません。私はデータベース内にコードのようなもの(クラス名やメソッド名のようなもの)を設定するのは大したことではありませんが、私が念頭に置いておくべき設計は、アプリケーションをDBでワイヤリングする必要があります(Spring XMLファイル)、それは悪いようです。

Windows WFを使用して調査しましたが、私たちはWFの将来について少し気になりました。私はルールエンジンを扱ったことがないので、ここでそれが使用されているのだろうかと思っています。誰もこれを実装する方法に関する提案はありますか?

答えて

2

おそらく、データ格納された動作と、それらを実装するために使用された技術とを切り離すのが最もよい方法です。

これを行う方法は、DSL(ドメイン固有言語)です。抽象的な(つまり、マイクロ言語)でビジネスロジックを表現し、そのテーブルの文字列をテーブルに格納し、コード内にインタプリタを実装できる形式を思いついてください。そうすれば、基礎となる技術が変わったら、単にインタープリタを再実装するだけです。

私は1980年代半ばにこの手法を使用したアプリケーションで作業しましたが、必要なビジネスルールを軽微(自動化可能)に変更して何度も移植されました。

+0

答えをありがとう。 .NETコードへのDSL変換を扱うサードパーティのツールに関する提案はありますか? –

1

ドメイン固有の言語サポートについては、here in the MSDNをご覧ください。 Ironyもご覧になるかもしれませんが、これはおそらくまだ生産的なコードの解決策ではありません。

関連する問題