3

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

依存性注入 (Spring.NET) を使用して状態パターンを結び付けることができる設計を念頭に置いていますが、これをデータ駆動型にする最良の方法はわかりません。私はデータベースでコードのようなもの (クラス名やメソッド名など) を構成することはあまり好きではありませんが、私が考えている設計では、DB でアプリケーションを接続する必要があります (Spring XML での接続と同様)。ファイル)、それは悪いようです。

Windows WF を使って検討してきましたが、WF の将来性と、採用するのに今が良い時期かどうかについて、少し懸念していると思います。私はルール エンジンを扱ったことがないので、それがここで役立つのではないかと考えています。これを実装する方法について何か提案はありますか?

4

2 に答える 2

2

おそらく最善の策は、データに保存された動作を、それらを実装するために使用されるテクノロジから分離することです。

これを行う方法が DSL (ドメイン固有言語) です。ビジネス ロジックを抽象的に表現できる形式 (つまり、マイクロ言語) を考え出し、その文字列をテーブルに格納し、そのためのインタープリターをコードに実装します。そうすれば、基盤となるテクノロジーが変更された場合でも、インタープリターを再実装するだけで済みます。

私は 1980 年代半ばにこの手法を使用するアプリケーションに取り組みましたが、必要なビジネス ルールにわずかな (そして自動化可能な) 変更を加えただけで、何度か移植されました。

于 2009-03-19T23:40:46.187 に答える
1

ドメイン固有の言語サポートについては、MSDN のこちらを参照してくださいIronyもご覧になるかもしれませんが、これはおそらくまだ生産的なコードのソリューションではありません。

于 2009-03-20T00:14:15.077 に答える