私の考えでは、達成しようとしていることはプロジェクトを設計する良い方法です。私も同じことをやっています。私は以下で説明する小さな違いです。 APIでDALを参照していないと、DALへのすべての呼び出しはBLLを介してのみ行われます。すべてのデータ処理ロジックを1か所にまとめたいからです。配布されている場合、問題を見つけるのは難しいです。
私は4つのプロジェクトがあります
- Utilsの(あなたの "blabla" のものはここに行く)[参照]何]
- DAL(データベースのものをここに)[参考資料のUtils]
- BLL(あなたをロジックのもの)は、ここで[必要に応じて参考文献BLLとのUtils] [参照] DALとUtilsの必要に応じて]
- APIを(あなたのAPIのものをここに)行く
これは片方向リファレンスチェーンです。 DAL => BLL => API
。逆の順序での参照は存在してはいけません。 Utils
は、エンティティ宣言、例外、列挙型のような共通のものが必要な共通のものでなければなりません。
注:APIでDALを参照していないにもかかわらず、それを展開する必要があります。
APIでUtils
を使用しないようにするには、もう1つのDTOレイヤーを追加し、それらをエンティティにマップする必要があります。同じ私の他のquestionを参照してください。
BLLが依存している場合は、メインプロジェクトをDALで参照する必要があります。さもなければ、BLLはどのように呼び出す関数を見つけるでしょうか? DALのコンパイルされたコードが失われます。それはちょうどそれが動作する方法です、それは心配することは何もありません。 – ADyson
しかし、BLLはどこかでDALを使うべきですか? – McNets
@ADyson私のBLLプロジェクトはDALを使用していますが、BLLを参照するとAPIのDALへの参照を追加する理由は何ですか? –