「Open棟梁 wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。
目次 †
概要 †
各レイヤについて説明します。
各レイヤの構成方法については、「モジュール構成」を参照。
引数・戻り値クラス †
B層の呼び出しに必要な引数、戻り値。
P層 †
画面処理を実装するレイヤ。「画面の構成」も参考にできる。
- 単項目のチェック処理を除く業務処理はB層
- データアクセス処理はD層に実装する。
画面デザイン †
- ASP.NETの場合Page
- Windows Formsの場合Form、
- WPFの場合Window / Page
を使用して、個別デザインを実装する。
デザイン ベース †
またOpen棟梁では「デザイン ベース」中の
コントロールのイベント処理を「個別デザイン」で
オーバーライドして処理を変更できる。
マスタページ †
ASP.NETの場合、マスタページを使用して、枠のデザイン・処理の共通化を図る。
ベースFormクラス †
Windows Formsの場合、ベースFormクラスを使用して、枠のデザイン・処理の共通化を図る。
コントロール †
ユーザ コントロール †
ASP.NET Web Forms、Windows Forms、WPFなどで
複数のコントロールを集約しパーツ化して、デザイン・処理の共通化を図ることができる。
またOpen棟梁では
「ユーザ コントロール」中のコントロールのイベント処理を
「個別デザイン」でオーバーライドして処理を変更できる。
カスタム コントロール †
ASP.NET Web Forms、Windows Forms、WPFの
標準のコントロールを継承し、動作をカスタマイズできる。
HTMLヘルパー †
※ASP.NET MVCで使用
従来のASP.NET Web Formsでは、コントロールを使用して、ラベルやテキストボックスなどのコントロールを表示していたが、
ASP.NET MVCでは、コントロールは使用できない。その代わりに、ASP.NET MVCでは HTMLヘルパーを使用する。
コード・ビハインド †
- ページのデザインとプログラム コードを分離して記述する、
コード ビハインド モデルにおける、プログラム実装側のモジュール。
に実装する。
画面コード親クラス1 †
ベースクラス1相当
画面コード親クラス2 †
ベースクラス2相当
画面コード クラス †
派生の末端。
B層 †
業務処理を実装するレイヤ。
- 画面処理はP層
- データアクセス処理はD層に実装する。
トランザクション †
トランザクション ルート(Tx-Root) †
トランザクション ルートとなるB層
- トランザクション ルートなのでB層からネストして呼び出すことはできない。
- コネクション管理処理にて生成したデータ アクセス制御クラス(Dam)を保持する。
- ファサード パターンで、処理を集約する(3層C/S方式でも1イベント、1リクエストに集約しトラフィックを軽減)
共通処理 †
処理の共通化を行うためのクラス
- トランザクション ルートでないのでB層からネストして呼び出すことができる。
- コネクション管理処理にて生成したデータ アクセス制御クラス(Dam)を、別途持ち回る必要がある。
Tx-Rootの構造 †
業務コード親クラス1 †
ベースクラス1相当
業務コード親クラス2 †
ベースクラス2相当
業務コード クラス †
派生の末端。
D層 †
データ アクセス処理を実装するレイヤ。
データ アクセス オブジェクト(Dao) †
自作 Dao †
任意の複数のSQLの実行、テーブルへのアクセスを実装できる。
汎用 Dao †
- 汎用Daoは呼び出し元が指定したSQLを処理可能。
- 主に「参照系」の処理を実行する際に利用する。
自動生成 Dao †
- 自動生成Daoは1つのテーブルへのCRUD処理が可能。
- 主に「更新系」の処理を実行する際に利用する。
Dao集約層 †
汎用Dao、自動生成Daoを集約し、論理的なデータ アクセスを構成するD層追加レイヤ。
データアクセス親クラス1 †
ベースクラス1相当
データアクセス親クラス2 †
ベースクラス2相当
データアクセス クラス †
派生の末端。
データ アクセス制御クラス(Dam) †
動的パラメタライズド・クエリなど、各種D層機能を実装するデータ プロバイダのラッパークラス。
- 業務処理で複数の接続が必要な場合は、前述のコネクション管理処理において複数のDamを生成・保持する必要がある。
- また、複数のDBMS(データプロバイダ)に対応させる場合は、
コネクション管理処理にてDBMS(データプロバイダ)毎に用意された指定の型でDamを生成・保持し、
以降の処理ではDamをベースの型で扱うようにしてDBMS(データプロバイダ)固有型(機能)の使用を局所化する必要がある。