3層データバインドの実装方法
それでは、3層データバインドの具体的な実装方法について解説していきます。今回は、会議室予約システムの中でも、会議室のマスターデータを編集するための仕組みを実装します。
サンプルの画面、動作イメージ
作成するサンプルの最終イメージは以下のようになります。
アプリケーションの構成
アプリケーションの構成は次の通りです。
MRRS.sln ソリューションファイル | +-MRRS Webサイト | +-MRRS.BLL ビジネスロジック層 プロジェクト | +-MRRS.DAL データアクセス層 プロジェクト | +-MRRS.Entity エンティティ プロジェクト
それぞれのWebサイト、プロジェクトは以下のような役割で分割しています。
(1)プレゼンテーション層
-
MRRS Webサイト
会議室予約システムのフロントエンドとなるWebフォームや、SQLCE 4.0のデータベースファイルを配置します。
(2)ロジック層
-
MRRS.BLL ビジネスロジック層
ビジネスロジックを実装するクラスを配置します。データアクセスを行う際は、後述のデータアクセス層を経由して行うようにします。そうすることにより、データアクセステクノロジーが変化してもビジネスロジックに変更を加える必要がなくなります。また、データアクセス部分をモックに差し替えるなどして、ビジネスロジック単体でのコードによる自動化テストも可能になります。
-
MRRS.DAL データアクセス層
実際にデータアクセスを行うクラスを配置します。データアクセスに用いるテクノロジーには最終的にビジネスロジック層が必要とするデータを返せるのなら何を利用しても構いませんし、なるべくそう作るべきです。例えば、接続型、非接続のデータベースへのデータアクセス、CSVファイルなどへのファイルアクセス、WCF(Windows Communiation Faundation)をはじめとしたネットワークアクセスなど、あらゆるものが使用できます。今回はEFコードファーストを採用し、SQLCE 4.0にアクセスします。
(3)各層共通
-
MRRS.Entity エンティティ
場所、会議室、予約情報といったエンティティクラスを配置します。定義したエンティティクラスは、Webサイト、ビジネスロジック層、データアクセス層すべてで参照が可能とします。今回はEFコードファーストに対応したPOCO(Plain-Old CLR Object)として作成します。