年が近づいていて、物事ははるかに少なくなっています。3層構造のプロジェクトに触れたことはありますが、最初から最後まで慎重に作成したことはありません。多くのことはまだあいまいです。今回は、最初から最後まで数日かけて書きました。そのような小さなデモが出てきて、その過程がここに記録されています。将来的にもっと便利に復習して、友達を助けたいと思っています。
プロジェクトはモデル、IDAL、IBLL、DAL、BLL、WebUIに分割され、データベースはSQLServerであり、データアクセスはEntityFramework5.0を使用し、シンプルファクトリ、シングルトン、抽象ファクトリを使用し、リフレクション+構成ファイルを使用してクラスライブラリをロードします。コンパイル時間を実行時間に変更します。
メリット:
1.開発効率を向上させるために並行して開発できます。
2.データベースに制限はなく、データベースは低コストで交換できます。
3.コードの再利用。データアクセスレイヤーは複数のビジネスロジックレイヤーに使用でき、ビジネスロジックレイヤーは複数の式にデータを提供できます。
4.カップリングが削減され、モジュールの相互依存性が低下し、プラグイン可能なモジュールの保守、更新が容易になり、BUGの配置がより正確になります。
5.そこにあるはずです、私には考えられません...
ソースコードがコードクラウドに公開されました:https://gitee.com/xianglikai1/CSharpSanCengKaiFaDemo
3層構造:データアクセス層、ビジネスロジック層、プレゼンテーション層、およびプロジェクト構造は次のとおりです。
モデル:データエンティティモデル
IDAL:データアクセスインターフェイスの説明
IBLL:ビジネスロジックインターフェイスの説明
TestDAL:データアクセスインターフェイスの実装ライブラリ
TestBLL:ビジネスロジックインターフェイスの実装ロジックライブラリ
WebUI:Webプレゼンテーションレイヤー
データベースは、UsersとNationの2つのテーブルを使用します。構造は次のとおりです。
EntityFramework5.0を使用するモデルレイヤーは、拡張クラスファイルを追加しました
ExtendModel.csコード
IDALデータアクセスインターフェイスの説明。このようなライブラリは、基本インターフェイス、2つのエンティティクラス操作インターフェイス、およびファクトリを含むモデルを参照する必要があります。
IBaseIDAL.cs基本インターフェイスコード
IUsersIDAL.csおよびINationIDAL.csエンティティクラスの操作インターフェイスコード
DALFactory.csファクトリクラスコード。リフレクションファイルと構成ファイルの読み込みを使用して、クラスライブラリとオブジェクトを実現し、外部での使用の難しさを軽減します。
TestDALデータアクセスインターフェイスの実装。モデルとIDALを参照する必要がありますが、動的にロードされます
DbContextFactory.csデータコンテキストシングルトンファクトリコード
BaseDAL.csデータアクセス基本インターフェイス実装クラス。特定のデータアクセスクラスごとに繰り返しメソッドを実装する必要はありません。
UsersDAL.csおよびNationDAL.csの特定の実装コード
現在、モデル、IDAL、DALの3つの部分が完了しています。プロセスは
IDALの役割は、カップリングを理解することです。IDALは、モデルデータアクセス操作インターフェイスの説明を提供します。DALはIDALを実装します。IDALのファクトリは、ランタイムモードを通じてDALをロードし、外部使用の度合いを簡素化し、並行開発を実現し、同時に置き換えられます。データベースの作業が最小限に抑えられ、BUGレートが低下します。
次の記事では、IBLL、BLL、WebUIについて説明します。