1

誰でも助けてもらえますか、私は2つのアプリケーションを持っていますが、それらはほぼ同じです。それらは完全に異なるプレゼンテーション レイヤー (Web) を持ち、ビジネス ロジックとデータベースはほぼ同じです。基本的に、あるアプリには他のアプリにはない機能があります。

だから私はルールなどを破ることなく次のことができるかどうか疑問に思っていました

各アプリには独自のプレゼンテーション レイヤーがあります。
各アプリには独自のサービス レイヤーがあります。
各アプリには、独自のデータ アクセス レイヤーがあります。
各アプリは別のサービス レイヤーを共有します。

したがって、ビジネスロジックが同一であるため、両方のアプリがアクセスできる共有サービス層ですが、実際のアプリに固有の 5 つまたは 6 つのメソッドが含まれる別のサービス層があります。

データ アクセス レイヤー - エンティティ フレームワークを備えた 2 つの異なるデータベースがあり、そこに EDM があるため動的ではないため、これを共有する方法はわかりません。テーブルはわずかに異なります。

共有データアクセスレイヤーでIOCを使用できると思います

誰かが助けたりコメントしたりしますか、これは良い習慣です..私がやりたくなかったのは、多くが共有されているときに別のサービスレイヤーしか持たないことです..

これは良い考えですか?私のやり方が間違っているのかもしれませんが、もっと良い方法はありますか?

4

3 に答える 3

1

Arjen de Blok が言ったように、ビジネス エンティティはリポジトリを使用する必要があります。リポジトリは、ドメイン エンティティをクエリ、更新、または挿入するメソッドを持つオブジェクトです。

リポジトリを記述するインターフェイスはドメイン レイヤーに属しますが、実装はインフラストラクチャ レイヤー (DAL) に属します。

2 つのプロジェクト間でドメイン ライブラリとインフラストラクチャ ライブラリを共有できます。これら 2 つのプロジェクトが共有 Web サービスまたは共有データベースを介してデータを取得する必要がある場合は、リポジトリの正しい実装を選択 (つまり、注入) する必要があります (ドメイン オブジェクトは、具体的なものではなく、リポジトリのインターフェースのみを認識します)。タイプ)

于 2009-04-22T12:42:21.880 に答える
0

DAL をリポジトリ インターフェイスと統合できます。その後、プロジェクト間でインターフェイスを実装できます。おそらく、EF リポジトリの基本クラスも作成されます。同様の手法をサービスに適用し、共通のインターフェイスを利用して、サービスの実装を特化することができます。

于 2009-04-01T15:36:01.003 に答える