「Open棟梁 wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。
目次 †
概要 †
Web †
Open棟梁を適用したシステムに於けるオンライン処理の処理シーケンスについて説明します。
リッチクライアント †
Open棟梁を適用したシステムに於けるWindows Formsの2層C/Sのオンライン処理の処理シーケンスについて説明します。
初期化イベント処理の詳細(Web) †
ASP.NET Web Formsのイベント発生順 †
ASP.NET Web Formsのイベント発生順 - マイクロソフト系技術情報 Wiki
処理内容 †
コンストラクタ †
ベースクラス1の「コンストラクタ」では、
「Page.Loadイベント」のイベント ハンドラを登録する処理が実行される。
Page.Initイベント †
実装無し。
Page.Loadイベント †
「ベースクラス1」の「Page.Loadイベント」では、順番に以下の処理が実行される。
- 初期処理
- マスタ ページ情報の初期化
- Ajaxの状態を確認(ASP.NET Ajax、ClientCallback?)
- セッション スコープ ロック用オブジェクトを生成
- Sessionタイムアウト検出機能
- 各種HIDDENコントロールの取得
- 「イベント処理用UOCメソッド」の呼出準備
- FindControl?メソッドを使用して、コントロール オブジェクトを取得する。
- 取得したコントロール オブジェクトのイベント プロパティに、
「コントロール イベント毎の共通イベント ハンドラ」を設定する。
- 「ベースクラス2」の「共通の初期処理UOCメソッド」を呼び出す。
- WebForms?の共通の「初回のLoad処理」(UOC_CMNFormInit?)
- WebForms?の共通の「PostBack?のLoad処理」(UOC_CMNFormInit_PostBack?)
- 「ダイアログ表示機能」
- HIDDENフィールドとJavaScript?を使用して、ダイアログ表示する。
- 「ベースクラス1」の「Page.Loadイベント」では、
「子画面」を閉じた際のポストバックの場合、後処理を実行する。
- 「Page.Loadイベント処理の最終処理用UOCメソッド」を呼び出す(UOC_Finally)。
コントロール イベント †
「イベント・ハンドラ設定処理」により「コントロール イベント」が呼び出され、以下の処理が実行される。
※ 「Page.Loadイベント」の後、ASP.NETがポストバックのHTTPリクエストを評価し、コントロールのイベント発生を検出する。
- コントロールのイベントが発生していた場合「ベースクラス1」の「コントロール イベント毎の共通イベント ハンドラ」が呼び出される。
- 「コントロール イベント毎の共通イベント ハンドラ」では、次の処理が実行される。
- 「イベント処理の開始処理用UOCメソッド」(UOC_PreAction?)を呼び出す。
ユーザが実装した「イベント処理の開始処理」を実行する。
- 「イベント処理用UOCメソッド」を呼び出す。
- ユーザが実装した「イベント処理」を実行する。
- UOC_(コントロール名)_(イベント名)メソッドというメソッド名
- 「コントロール イベント毎の共通イベント ハンドラ」から
レイト バインドで呼び出されるので、オーバーライドでは実装しない。
- 「イベント処理の終了処理用UOCメソッド」を呼び出す(UOC_AfterAction?)。
ユーザが実装した「イベント処理の終了処理」を実行する。
- 「イベント処理後の画面遷移処理の実装用UOCメソッド」を呼び出す(UOC_Screen_Transition)。
ユーザが実装した「イベント処理」が「パス」を戻した場合、その「パス」に対して「画面遷移する処理」を実行する。
- 「コントロール イベント処理の最終処理用UOCメソッド」を呼び出す(UOC_Finally)。
ユーザが実装した「イベント処理の最終処理」を実行する。
補足 †
- 情報の引継ぎ方法
画面遷移方式により、情報の引継ぎ方法が異なる。
- Server.Transferの場合は、HTTP Contextを使用する。
- Response.Redirectの場合は、Query Stringを使用する。
- 子画面
- ココでは、モーダル ダイアログ画面などを「子画面」と表現する。
- なお「親画面」は、当該するモーダル ダイアログ画面を起動した、
モードレス画面にあたる。情報の引継ぎには、Query Stringを使用する。
参考 †
処理シーケンスの詳細は利用ガイド(共通編)を参照のこと。
通信制御部品を使用した場合、P層 → B層間にサービス インターフェイス(サーバ エンドポイント)とサービス プロキシ(クライアント エンドポイント)が挿入される。