私は、Clientsプロジェクト(Clients.csproj)に含まれるC#プロジェクトに取り組んでいます。データベース(Products.DAL.csproj)からクライアント用のデータを取得するDALライブラリがあります。 Inside Products.DAL.SQL.csproj私はメソッドGetProducts()(MS SQLデータベースから製品を読み込む)を持つIProductsServiceインターフェイスを持っています。今では別のプロジェクト(Products.DAL.Mongo.csproj)を作成するために余分なデータソースを追加するという要件があります。この新しいプロジェクトでIProductsServiceインターフェイスを実装する必要がありますが、インターフェイスを取得するためにProducts.DAL.SQL.csprojを参照したくありません。これを行うための推奨される方法は何ですか?事前リポジトリとしての契約ライブラリ
答えて
に私は名前空間がProducts.Core.BusinessとProducts.Core.Interfaceになりますので、フォルダ内のすべてのビジネスクラスとインタフェースを保持しているコアプロジェクトをやる
感謝。 コアプロジェクトを参照するだけです。
このようにして、SQLプロジェクトを参照せずにProducts.DAL.SQLとProducts.DAL.Mongoの両方でIProductServiceを実装する必要があります。
[EDIT]:
私はDDDについてfrench postを引用します:
あなたのソリューションは、5層があります:
- インフラ:サービスインフラストラクチャ(インターフェース)
- をリポジトリ:データアクセス層と持続性
- ドメイン:エンティティとドメイン層とビジネスロジック
- サービス:Webアプリケーションまたはあなたのサービスを消費クライアントアプリケーション:
- クライアントは、ユーザーにサービスを提供しています。
に属していますが、DALがCoreプロジェクトを参照すると、Core.Businessへのアクセスはすぐに得られますが、Core.Contractsのみが必要です。 – pantonis
私はここで何をしますか(私はあなたがビジュアルスタジオを使用していると仮定します):コアプロジェクト用のソリューションフォルダを作成し、次にこのフォルダにビジネス、契約、プロジェクトを作成します。 –
別のプロジェクトでそれらを分割することは悪いことではないと思います。特に多くのプロジェクトがある場合は特にそうです。読みやすさとメンテナンス性を提供します。 –
- 1. データ契約としてのSTE?
- 2. 春クラウド契約のデバッグ契約テストケース
- 3. Firebaseのルール - 共有ユーザー契約とユーザー固有の契約
- 4. ペックスとコード契約
- 5. コード契約とコードアナライザ
- 6. Acumatica - 契約テンプレートに契約項目がある場合の契約エラーを設定して有効にする
- 7. 契約
- 8. エルム - 擬似契約を考えると契約
- 9. スプリングクラウド契約フレームワークと契約確認テスト実行
- 10. HTTPSと春クラウド契約スタブランナー
- 11. Spring KafkaとSpring Cloud契約
- 12. コード契約と非同期
- 13. サービス契約図
- 14. 契約tapply
- 15. スプリングクラウド契約 - ファーンクライアント
- 16. コード契約ビルドパフォーマンス
- 17. コード契約エラー
- 18. トラブルトリュフ契約モジュール
- 19. iPhoneデベロッパプログラムの契約
- 20. コード契約のベストプラクティス
- 21. 春クラウド契約:1つのファイルに複数の契約
- 22. 契約第1対契約現在の世代で最後に
- 23. 春クラウド契約スタブファットジャー
- 24. JSON.Netカスタム契約のシリアル化とコレクション
- 25. C#契約の実装と例外
- 26. スマート契約の機密性とプライバシー
- 27. 契約とファサードの違いlaravel
- 28. Debug.Assertとコード契約の使用
- 29. Biztalk 2010でのパーティーと契約作成?
- 30. Jaxerとの契約は何ですか?
IProductServiceは、アプリケーションのDataServiceです。アプリケーションがデータを要求/送信する方法について説明します。したがって、そのインタフェースはアプリケーションに多く属し、DALには属しません。 IProductServiceの具体的な実装はDAL –