DAL をクラス ライブラリに何度も入れると聞いたことがあります。それは理にかなっており、アプリケーション間でのコードの重複を減らすことができるようにしたいと考えています。Entity Framework を使用してその DAL を構築することにしました。
ただし、N層アプリケーションについて私が理解していることから、DALは実際にはPOCOクラスを公開するだけであり、これをDTOのように扱います。これを簡単にするために、私の DAL.dll は のようなクラスと のようなEmployeeDto
メソッドを公開GetEmployeeDtoByID(int ID)
して、このレイヤーが最終的なドメイン モデルを生成しないことを明確にします。
しかし、完成したドメイン モデルを生成する再利用可能な DLL が必要な場合はどうすればよいでしょうか? 新しいプロジェクトを作成し、CompanyBLL.dll 参照を追加して、GetAllEmployees
ここで公開されているクラスがそのオブジェクトのドメイン モデルの真の表現であることを認識して呼び出しを開始できると便利です。基本的に、私が作成する各プロジェクトは、必要なさまざまなツールの新しいプレゼンテーション レイヤーになります。
これらは、N 層アプリケーションのデプロイを開始するときに行うべき個人的な選択であることはわかっていますが、それは合理的な目標でしょうか? もしそうなら、DAL.dll を作成し、BLL クラス ライブラリを構築するときに実際に参照するだけですか? それらを 1 つのクラス ライブラリに結合する方が理にかなっているでしょうか。
作成するアプリケーションごとにビジネス ロジックを再構築したくないことに夢中になっているかどうか、またこれが正しい方法であるかどうかはわかりません。