各モジュールが強力なインターフェイスを持つ他のモジュールを介してのみ通信するモジュラー アプリケーションを作成しました。最近、各モジュールがアクセスするオブジェクトの共有セットが下にあるため、モジュールを完全に分離できていないことがわかりました。
このレイヤーを分離する最良の方法は何ですか? データ オブジェクトは、新しいレコードの画面に表示されるものを表します。
各モジュールが強力なインターフェイスを持つ他のモジュールを介してのみ通信するモジュラー アプリケーションを作成しました。最近、各モジュールがアクセスするオブジェクトの共有セットが下にあるため、モジュールを完全に分離できていないことがわかりました。
このレイヤーを分離する最良の方法は何ですか? データ オブジェクトは、新しいレコードの画面に表示されるものを表します。
私はあなたと同じ船に乗っているようです。ORM (EF など) とある種のビジネス オブジェクト フレームワーク (RIA サービス、DevForce) がある場合は、両端 (クライアント/サーバー) で 1 つのアセンブリを持つことにほとんど「ロック」されています。
先に進んでこれを分解したい場合は、それがより多くの問題を引き起こすと思います。異なるモジュールからエンティティを結合する際に問題が発生したり、異なるデータ モジュールでエンティティが繰り返されたりします。既に ORM レイヤーが壊れている場合は、必ずクライアントで同じにしてください。
データ プロジェクトを 1 つだけ作成し (Prism のモジュールでさえありません)、すべてのモジュールから参照します。私の場合、メイン プロジェクトから参照して「CopyLocal=true」を設定するので、MEF はそれらのエンティティを認識し、他のモジュールから参照して「CopyLocal=false」を設定します。
通常、すべての共有クラスを含むアプリケーション (myproject. Infrastructure) のドメイン アセンブリを作成します。このアセンブリは、すべてのプロジェクトによって参照されます。このアプローチでは、モジュールは互いに直接参照しません。(prism株トレーダーの参照実装も参照)