Open棟梁 wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。

目次

概要

各レイヤについて説明します。

各レイヤ

各レイヤの構成方法については、「モジュール構成」を参照。

引数・戻り値クラス

B層の呼び出しに必要な引数、戻り値。

引数、戻り値クラスのクラス構造

P層

画面処理を実装するレイヤ。「画面の構成」も参考にできる。

  • 単項目のチェック処理を除く業務処理はB層
  • データアクセス処理はD層に実装する。
P層クラスのクラス構造

画面デザイン

  • 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層に実装する。
B層クラスのクラス構造

トランザクション

トランザクション ルート(Tx-Root)

トランザクション ルートとなるB層

  • トランザクション ルートなのでB層からネストして呼び出すことはできない。
  • コネクション管理処理にて生成したデータ アクセス制御クラス(Dam)を保持する。
  • ファサード パターンで、処理を集約する(3層C/S方式でも1イベント、1リクエストに集約しトラフィックを軽減)

共通処理

処理の共通化を行うためのクラス

  • トランザクション ルートでないのでB層からネストして呼び出すことができる。
  • コネクション管理処理にて生成したデータ アクセス制御クラス(Dam)を、別途持ち回る必要がある。

Tx-Rootの構造

業務コード親クラス1

ベースクラス1相当

業務コード親クラス2

ベースクラス2相当

業務コード クラス

派生の末端。

D層

データ アクセス処理を実装するレイヤ。

  • 画面処理はP層
  • 業務処理はB層に実装する。
B層クラスのクラス構造

データ アクセス オブジェクト(Dao)

自作 Dao

任意の複数のSQLの実行、テーブルへのアクセスを実装できる。

汎用 Dao

  • 汎用Daoは呼び出し元が指定したSQLを処理可能。
  • 主に「参照系」の処理を実行する際に利用する。

自動生成 Dao

  • 自動生成Daoは1つのテーブルへのCRUD処理が可能。
  • 主に「更新系」の処理を実行する際に利用する。

Dao集約層

汎用Dao、自動生成Daoを集約し、論理的なデータ アクセスを構成するD層追加レイヤ。

Daoの構造

データアクセス親クラス1

ベースクラス1相当

データアクセス親クラス2

ベースクラス2相当

データアクセス クラス

派生の末端。

データ アクセス制御クラス(Dam)

概要

動的パラメタライズド・クエリなど、各種D層機能を実装するデータ プロバイダのラッパークラス。

  • 業務処理で複数の接続が必要な場合は、前述のコネクション管理処理において複数のDamを生成・保持する必要がある。
  • また、複数のDBMS(データプロバイダ)に対応させる場合は、
    コネクション管理処理にてDBMS(データプロバイダ)毎に用意された指定の型でDamを生成・保持し、
    以降の処理ではDamをベースの型で扱うようにしてDBMS(データプロバイダ)固有型(機能)の使用を局所化する必要がある。

種類

  • 同梱Dam
  • DamSqlSvr?
    System.Data.SqlClient?用(SQLServer)
  • DamOLEDB
    System.Data.OleDb?用(OLEDB)
  • DamODBC
    System.Data.Odbc用(ODBC)
  • NuGet?有り(OSS)
  • DamMySQL
    MySql?.Data.MySqlClient?用(MySQL)
  • DamPstGrS
    Npgsql用(PostgreSQL)
  • DamManagedOdp?
    Oracle.ManagedDataAccess?.Client用(Oracle)
  • Legacy
  • DamDB2
    DB2用
  • DamHiRDB
    HiRDB用
  • DamOraOdp?
    Oracle.DataAccess?.Client用(Oracle)
  • Discon
  • DamOraClient?
    System.Data.OracleClient?用(Oracle)
  • その他
    • DamSqlDbWithMultiShard?

添付ファイル: filePresentation.png 34件 [詳細] fileDataAccess.png 59件 [詳細] fileBusiness.png 50件 [詳細] fileParamAndReturn.png 72件 [詳細] filefx_image_s.png 118件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2018-12-20 (木) 10:54:42 (28d)