-
Notifications
You must be signed in to change notification settings - Fork 55
Tutorial_Template_development.ja
2014年11月27日
Open 棟梁は、C/S や Web などのアプリケーション形態や、SQL Server や Oracle などの DBMS など、さまざまなアーキテクチャをサポートしています。この Open 棟梁本体から、プロジェクトのアーキテクチャに合わせて、不要な機能を削除し、プロジェクト固有の機能を追加したものを「テンプレート」と呼んでいます。たとえば、SQL Server 向けのアプリケーションでは、Oracle や PostgreSQL への DB アクセス機能は必要ではありません。
本チュートリアルは、この Open 棟梁のテンプレートの作成手順等を習得することを目的としています。
Open 棟梁のアーキテクチャを理解しているアーキテクト。(Open 棟梁の利用ガイドを読んだことがあり、内容を理解できる人)
Open 棟梁は、SQL Server 向けのテンプレート・ベース (テンプレートを作るための元になるもの) を提供しています。本チュートリアルでは、このテンプレートベースから、プロジェクトに合わせたテンプレートを作成する手順を、順を追って説明します。
本ドキュメントに記載の会社名・商品名は、各社の商標または登録商標です。
本ドキュメントは、クリエイティブ・コモンズ CC BY 2.1 JP ライセンスの下で利用可能です。
Open 棟梁は、.NET 用のアプリケーションフレームワークです。Open 棟梁は、.NET Framework 4.6 以上を対象に、C/S(Windows Forms, WPF)、Web(ASP.NET)、RIA(Silverlight) など、さまざまなアプリケーションで利用できます。
Open 棟梁のクラス構成図を図 1-1 に示します。図 1-1 のように、Open 棟梁のアーキテクチャは P 層 (Presentation) / B 層 (Business Logic) / D 層 (Data Access) の 3 層構造を基本とし、それぞれ Open 棟梁提供クラスを継承します。トランザクション管理や共通例外処理など、アプリケーションで共通的な処理を Open 棟梁側に任せることで、開発者は個別の業務処理の開発に注力できます。これにより、コーディング量の削減、および開発者のスキルによるコーディング品質のばらつきを抑えることができます。
図 1-1 Open棟梁のクラス構成図
Open 棟梁は、適用プロジェクトごとに、プロジェクトのアーキテクチャに合わせて、不要な機能を削除し、プロジェクト固有の機能を追加することができます。この、プロジェクトのアーキテクチャに合わせてカスタマイズした Open 棟梁クラス (図 1-1 では、「Open 棟梁提供クラス」部分) を「テンプレート」と呼びます。 開発者は、このテンプレートを継承したクラスに対して業務機能 (図 1-1 では、「開発者が作成するクラス」部分) を追加していくことで開発を進めることができます。 Open 棟梁では、SQL Server 向けのテンプレート・ベース (テンプレートを作るための元になるもの) を提供しています。本チュートリアルでは、以下のアーキテクチャを前提に、このテンプレートベースをカスタマイズする方法を説明いたします。
- DBMS
- Oracle
- アプリケーション形態
- Web 2 層
本チュートリアルでは、以下の環境を前提としています。
- 開発環境
- IDE
- Visual Studio 2012 (Express Edition も利用できます)
- アプリケーション フレームワーク
- Open 棟梁テンプレート・ベース (Visual Studio 2015 用)
- IDE
- 実行環境
- ランタイム
- .NET Framework 4.6
- DB
- Oracle Database Express Edition 11g Release 2
- ランタイム
- その他
- OS
- Windows 7
- 開発言語
- C#
- OS
あらかじめ、マイクロソフトのサイトなどを参考に、Visual Studio をインストールしておいてください。
次に、Open 棟梁テンプレート・ベース、データベースをセットアップします。
-
GitHub で [Download ZIP] ボタンを押下して OpenTouryoTemplates.zip を入手し、これを解凍して Open 棟梁テンプレート・ベース (Visual Studio 2015 用) を取得します。
-
root_VS2015 フォルダにある Readme.md の手順に従って、Open 棟梁テンプレート・ベースのセットアップを行います。
-
サンプルデータベースとして、Oracle Database Express Edition をインストールします。(本チュートリアルでは、Oracle Database のインストール手順は割愛します)
-
インストールした Oracle Database で
C:\root\files\resource\Sql\oracle\テストテーブル.txt
を実行し、テスト用テーブルを作成します。
本チュートリアルでは、図 3-1 のように、既存の Open 棟梁テンプレート・ベースから、DBMS に Oracle を用いた、Web 2 層 (ASP.NET) アプリケーション向けテンプレートを作成する形で演習を行います。Open 棟梁テンプレートの作成手順を表 3-1 に示します。
図 3-1 既存のテンプレート・ベースおよび本チュートリアルで作成するテンプレート (図中の数字は表 3-1 の項番に対応)
表 3-1 Open 棟梁テンプレートの作成手順
# | 区分 | 作業 | 説明 | 備考 |
---|---|---|---|---|
1 | フレームワーク本体 | データプロバイダーの変更 | 既存のテンプレート・ベースのデータプロバイダを、使用する DBMS のデータプロバイダに変更する | 4.1 節で説明 |
2 | フレームワーク本体 | プロジェクトで共通的に実行させたいロジックの追加 | Open 棟梁の「親クラス 2」に、プロジェクトで共通的に実行させたいロジックを実装する | 4.2 節で説明 |
3 | 共通 | Open 棟梁テンプレートの構成変更 | Open 棟梁適用プロジェクトのアーキテクチャや開発標準にあわせ、不要な機能の削除、フォルダ構成変更などを行う | 4.3 節で説明 |
4 | サンプルプログラム | データプロバイダーの変更 | サンプルプログラムのデータプロバイダを、使用する DBMS のデータプロバイダに変更する | 4.4 節で説明 |
5 | サンプルプログラム | アプリケーション設定ファイルの設定 | Open 棟梁適用プロジェクトの処理方式に従い、アプリケーション設定ファイルの各パラメータを設定する | 4.5 節で説明 |
6 | 共通 | サンプルプログラムの動作確認 | サンプルプログラムを実行し、正常に実行できることを確認する | 4.6 節で説明 |
Open 棟梁テンプレートの作成手順を、順を追って説明します。
既存のテンプレート・ベースのデータプロバイダを、ODP.NET に変更します。(本チュートリアル作成時点で、Open 棟梁は ODP.NET Managed Driver に対応していません)
Oracle Data Access Components (ODAC) をインストールします。(なお、本チュートリアルでは、ODAC のインストール手順は割愛します)
Open 棟梁では、SQL Server や Oracle などの DBMS 向けのデータアクセス部品を提供しています。既存のテンプレート・ベースでは SQL Server 向けのデータアクセス部品を使用しているため、これを Oracle 向けのデータアクセス部品に差し替えます。
-
C:\root\programs\C#\Frameworks\Infrastructure\AllComponent.sln
を開きます。 -
ソリューションエクスプローラーで、
AllComponent
ソリューションを右クリックし、「追加(D)」-「既存のプロジェクト(E)」を選択します。 -
既存プロジェクトの追加ダイアログで、
C:\root\programs\C#\Frameworks\Infrastructure\Public\Db\DamOraOdp\DamOraOdp.csproj
を選択し、Oracle 向けのデータアクセス部品をソリューションに追加します。 -
ソリューションエクスプローラーで、
DamOraOdp
プロジェクトの「参照設定」-「Oracle.DataAccess」を削除します。 -
ソリューションエクスプローラーで、
DamOraOdp
プロジェクトを右クリックし、「参照の追加(R)」を選択します。 -
参照するファイルの選択ダイアログで、ODAC インストールフォルダ内の Oracle.DataAccess.dll を選択し、「追加」ボタンをクリックします。
-
Oracle.DataAccess.dll にチェックが入っていることを確認し、「OK」ボタンを押下します。
-
ソリューション エクスプローラーから、
Business
プロジェクトを右クリックし、「参照の追加(R)」を選択します。 -
参照マネージャーダイアログで、「ソリューション」を選択し、一覧の中から、先ほど追加した「DamOraOdp」にチェックを入れて「OK」ボタンをクリックします。
-
ソリューション エクスプローラーから、
Business
プロジェクトのBusiness\MyFcBaseLogic.cs
を開きます。 -
MyFcBaseLogic.cs
の「データ プロバイダ選択」region を、以下のように編集します。#region データ プロバイダ選択 // Oracle / ODP.NET用のDamを生成 dam = new DamOraOdp(); // 接続文字列をロード(Instant Client) connstring = GetConfigParameter.GetConnectionString("ConnectionString_ODP2"); #endregion
-
Business
プロジェクトのBusiness\MyBaseLogic.cs
を削除します。【注意】
MyBaseLogic
クラスは、旧バージョンの Open 棟梁との後方互換のために残されているクラスです。そのため、新規アプリケーション開発では、新機能に対応したMyFcBaseLogic
クラスを使用すればよいため、MyBaseLogic
クラスは削除しても問題ありません。 -
ツールバーの「すべてを保存」アイコンをクリックし、変更内容を保存します。
-
Open 棟梁のフレームワーク本体をビルドします。
-
C:\root\programs\C#\1_DeleteDir.bat
を実行し、Open 棟梁のフレームワーク本体のアセンブリファイル格納フォルダを削除します。 -
C:\root\programs\C#\2_DeleteFile.bat
を実行し、一時ファイルなどを削除します。 -
C:\root\programs\C#\3_Build_Framework.bat
を実行し、Open棟梁のフレームワーク本体をビルドします。
【注意】
3_Build_Framework.bat
は、Open 棟梁のフレームワーク本体と、リッチクライアント向けフレームワークをビルドするバッチファイルです。しかし、リッチクライアント向けフレームワークは現段階では未修正のため、リッチクライアント向けフレームワークのビルド時にエラーが発生します。ここでは無視して Open 棟梁のフレームワーク本体のみビルドできることを確認します。 -
次に、Open 棟梁のリッチクライアント向けフレームワークについても、同様に Oracle 向けのデータアクセス部品に差し替えます。なお、今回は ASP.NET アプリケーション開発プロジェクトを対象としていますが、Open 棟梁提供のツール群の中に、このリッチクライアント向けフレームワークを使用しているものがありますので、こちらも Oracle 向けのデータアクセス部品に差し替える必要があります。
-
C:\root\programs\C#\Frameworks\Infrastructure\RichClient.sln
を開きます。 -
ソリューション エクスプローラーで、
Business.RichClient
プロジェクトを右クリックし、「参照の追加(R)」を選択します。 -
参照マネージャーダイアログで、
C:\root\programs\C#\Frameworks\Infrastructure\Build\DamOraOdp.dll
を追加します。 -
4.1.2 項と同様、
Business.RichClient
プロジェクトのBusiness\MyFcBaseLogicTEMPLATE.cs
の「データ プロバイダ選択」region を、Oracle のデータアクセス部品を使用するように書き換えます。 -
Business.RichClient
プロジェクトの、Business\MyBaseLogicTEMPLATE.cs
を削除します。【注意】
フレームワーク本体の時と同様、MyBaseLogicTEMPLATE
クラスは、旧バージョンの Open 棟梁との後方互換のために残されているクラスのため、削除しても問題ありません。 -
ツールバーの「すべてを保存」アイコンをクリックし、変更内容を保存します。
-
再度
C:\root\programs\C#\3_Build_Framework.bat
を実行し、Open 棟梁のフレームワーク本体 (リッチクライアント部分) をビルドします。今度は、フレームワーク本体、リッチクライアント向けフレームワークともにビルドが通ることを確認します。
次に、Open 棟梁の付属ツールが利用するデータアクセス部品を差し替えます。
-
C:\root\programs\C#\Frameworks\Tools\DPQuery_Tool\DPQuery_Tool.sln
を開きます。 -
ソリューション エクスプローラーで、
DPQuery_Tool
プロジェクトを右クリックし、「参照の追加(R)」を選択します。 -
参照マネージャーダイアログで、
Oracle.DataAccess.dll
、DamOraOdp.dll
を追加します。 -
ソリューション エクスプローラーから、
DummyDaps.cs
を開き、DamOraOdp
クラス部分、Oracle.DataAccess.Client
名前空間部分を削除またはコメントアウトします。
【注意】
Open 棟梁は SQL Server や Oracle など、複数の DBMS をサポートしており、フレームワーク本体から、それぞれの DBMS に対応したデータプロバイダを参照しています。しかし、実際の開発では使用するデータプロバイダのみ参照すればよく、それ以外のデータプロバイダを参照する必要はありません。この DummyDaps.cs
は、参照する必要がないデータプロバイダに対する代理オブジェクト (スタブ) です。今回、実際の ODP.NET
および DamOraOdp
プロジェクトを使用しますので、代理オブジェクトは必要なく、該当するスタブコードを削除します。
-
ツールバーの「すべてを保存」アイコンをクリックし、変更内容を保存します。
-
C:\root\programs\C#\Frameworks\Tools\DaoGen_Tool\DaoGen_Tool.sln
を開きます。 -
4.1.4 項と同様に、
DaoGen_Tool
プロジェクトからもOracle.DataAccess.dll
、DamOraOdp.dll
への参照を追加します。 -
ツールバーの「すべてを保存」アイコンをクリックし、変更内容を保存します。
-
C:\root\programs\C#\4_Build_Framework_Tool.bat
を実行し、Open 棟梁付属のツールをビルドします。
Open 棟梁は、図 1-1 に示したように階層構造になっており、「親クラス 2」と呼ばれるクラスにロジックを追加することで、プロジェクトで共通的にロジックを実行させることができます。(詳しくは、Open棟梁の利用ガイド (共通編および纏め者編)、および Atypical_work_list.xlsx の「カスタマイズ」シート、「参考資料_フレームワーク要件」シートをご覧ください)
-
C:\root\programs\C#\Frameworks\Infrastructure\AllComponent.sln
を開きます。 -
ソリューション エクスプローラーで、
Business
プロジェクトのPresentation\MyBaseController.cs
を開きます。 -
MyBaseController
クラスのメソッドに共通処理を追加します。Open 棟梁の利用ガイド (共通編) に記載の処理フローを参考に、処理を実行させたいタイミングによって、それぞれ以下のメソッドに共通処理を追加します。
- 画面初期ロード時
- MyBaseController.UOC_CMNFormInit
- ポストバック時
- MyBaseController.UOC_CMNFormInit_PostBack
- イベントハンドラ実行前
- MyBaseController.UOC_PreAction
- イベントハンドラ実行後
- MyBaseController.UOC_AfterAction
- 例外発生時
- MyBaseController.UOC_ABEND
- 全てのイベントの最後
- MyBaseController.UOC_Finally
たとえば、画面初期ロード時にログを出力するには、UOC_CMNFormInit
メソッドに以下のように実装します。
protected override void UOC_CMNFormInit()
{
// フォーム初期化(初回ロード)時に実行する処理を実装する
// TODO:
LogIF.InfoLog("ACCESS", "P 層共通処理サンプル");
// フォーム初期化共通処理
this.CMN_FormInit("init");
}
-
ソリューション エクスプローラーで、
Business
プロジェクトの、Business\MyFcBaseLogic.cs
を開きます。 -
MyFcBaseLogic
クラスのメソッドに共通処理を追加します。Open 棟梁の利用ガイド (共通編) に記載の処理フローを参考に、処理を実行させたいタイミングによって、それぞれ以下のメソッドに共通処理を追加します。
- 業務ロジック実行前
- MyFcBaseLogic.UOC_PreAction
- 業務ロジック実行後
- MyFcBaseLogic.UOC_AfterAction
- トランザクション終了後
- MyFcBaseLogic.UOC_AfterTransaction
- 例外発生時
- MyFcBaseLogic.UOC_ABEND
たとえば、業務ロジック実行前にログを出力するには、UOC_PreAction
メソッドに以下のように実装します。
protected override void UOC_PreAction(BaseParameterValue parameterValue)
{
LogIF.InfoLog("ACCESS", "B 層共通処理サンプル");
// ACCESSログ出力-----------------------------------------------
(略)
}
-
ソリューション エクスプローラーで、
Business
プロジェクトの、Dao\MyBaseDao.cs
を開きます。 -
MyBaseDao
クラスのメソッドに共通処理を追加します。Open 棟梁の利用ガイド (共通編) に記載の処理フローを参考に、処理を実行させたいタイミングによって、それぞれ以下のメソッドに共通処理を追加します。
- SQL 実行前
- MyBaseDao.UOC_PreQuery
- SQL 実行後
- MyBaseDao.UOC_AfterQuery
たとえば、SQL 実行後にログを出力するには、UOC_AfterQuery
メソッドに以下のように実装します。
protected override void UOC_AfterQuery(string sql)
{
LogIF.InfoLog("ACCESS", "D 層共通処理サンプル: " + sql);
// 性能測定終了
(略)
}
プロジェクトで共通的に実行させたいロジックを実装したら、フレームワーク・付属ツールをビルドします。
-
ツールバーの「すべてを保存」アイコンをクリックし、変更内容を保存します。
-
C:\root\programs\C#\3_Build_Framework.bat
を実行し、Open 棟梁のフレームワーク本体をビルドします。 -
C:\root\programs\C#\4_Build_Framework_Tool.bat
を実行し、Open 棟梁付属のツールをビルドします。
Open 棟梁のフレームワーク本体およびサンプルプログラムは、Web や C/S などのアーキテクチャごとの機能を提供しています。Open 棟梁適用プロジェクトのアーキテクチャに合わせて、不要な機能を削除します。
-
Open 棟梁適用プロジェクトのアーキテクチャに不要な機能・サンプルが含まれるフォルダを削除します。
(例)
- ASP.NETアプリケーションのため、C/S 用サンプルプログラムを削除する
- ASP.NETアプリケーションのため、UWP 用サンプルプログラムを削除する
- Web 2層アプリケーションのため、通信制御 (サービス インタフェース) 部品を削除する
- Web 2層アプリケーションのため、3 層アプリ用サンプルプログラムを削除する
- 開発言語に C# を利用するので、VB 版プログラムを削除する
【注意】
Open 棟梁のリッチクライアント向けフレームワークは、Open 棟梁付属のツール群も使用しているため、Web アプリケーション開発プロジェクトであっても、このリッチクライアント向けフレームワークは削除しないでください。 -
C:\root\programs\C#
フォルダに格納されているビルドバッチファイルの中で、Open 棟梁適用プロジェクトのアーキテクチャに不要なものを削除します。(例)
- ASP.NET アプリケーションのため、2 層 C/S サンプルプログラム用ビルドバッチファイル (5_Build_TEMPLATE_sample.bat) を削除する
- ASP.NET アプリケーションのため、UWP サンプルプログラム用ビルドバッチファイル (11_Build_UWP_sample.bat) を削除する
- Web 2 層アプリケーションのため、3 層アプリ用ビルドバッチファイル (6_Build_WSSrv_sample.bat、7_Build_Framework_WS.bat、8_Build_WSClnt_sample.bat、9_Build_WSClnt_sample.bat) を削除する
1 章で示しましたように、Open 棟梁のテンプレートを用いた開発では、テンプレートに含まれるサンプルプログラムに実機能を加えていくことで開発を進めることを前提としています。このため、サンプルプログラムにつけられている Visual Studio のプロジェクト名やフォルダ構成などを、実際の開発標準にあわせる必要があります。なお、本作業は、修正漏れをなくすため、テキスト置換ツールを使用することを推奨いたします。
-
プロジェクト名、フォルダ構造を決定します。既定では、ASP.NET 向けサンプルプログラムは
C:\root\programs\C#\Samples\WebApp_sample\WebForms_Sample\WebForms_Sample.sln
にあり、プロジェクト名は WebForms_Sample です。ここでは、以下のように変更することとします。- Samples フォルダ -> App フォルダ
- 各フォルダおよびプロジェクト名から _sample を削除
-
フォルダ構造を置換します。ファイル名やフォルダ名の一括置換には、「Flexible Renamer」などのツールが便利です。
-
ファイルの中身を置換します。ファイルの中身の一括置換には、「GrepReplace」などのツールが便利です。
-
ツールバーの「すべてを保存」アイコンをクリックし、変更内容を保存します。
-
C:\root\programs\C#\10_Build_WebApp_sample.bat
を実行し、サンプルプログラムをビルドします。
既存のサンプルプログラムで使用しているデータプロバイダを、ODP.NET に変更します。
-
C:\root\programs\C#\Frameworks\DaoGen_Tool\bin\Debug\DaoGen_Tool.exe
を実行し、D 層自動生成ツールを起動します。 -
以下のように値を設定し、「取得」ボタンをクリックします。
- データプロバイダ: Oracle ODP.NET
- 接続文字列: Oracle データベースへの接続文字列
- プルダウン: 概要情報
-
接続文字列等の情報に誤りがなければ、「DBMSのスキーマ情報の表示(概要情報)ダイアログ」が表示されます。
本ダイアログが表示されたことを確認し、「閉じる」ボタンをクリックして、ダイアログを閉じます。
-
「テーブル一覧の取得」ボタンをクリックします。
テーブル名称に関する注意を促すダイアログが表示されますが、「OK」ボタンをクリックして閉じてください。
-
SHIPPERS テーブル以外を選択して、「削除」ボタンをクリックします。
-
リスト内の項目が、SHIPPERS テーブルのみになったことを確認し、「ロード」ボタンをクリックします。
-
「D層定義情報を生成」ボタンが活性化されますので、出力エンコーディングとして「utf-8」を選択し、「D層定義情報を生成」ボタンをクリックします。
D 層定義情報ファイルの保存ダイアログが表示されますので、
C:\root\Info.csv
にファイルを保存します。 -
D 層定義情報ファイルが正常に生成できたことを示すダイアログが表示されますので、「OK」ボタンをクリックして閉じます。
-
「STEP2へ遷移」ボタンをクリックします。
-
「ステップ2」画面が表示されますので、以下のように値を設定し、「プログラムを生成する」ボタンをクリックします。
- D 層定義情報ファイル: C:\root\Info.csv
- ソーステンプレートフォルダ: C:\root\files\tools\DGenTemplates
- 出力ファイル: C:\root
- 上記以外はデフォルトのまま
-
Dao、SQL ファイルが正常に生成できたことを示すダイアログが表示されますので、「OK」ボタンをクリックして閉じます。
-
C:\root
フォルダ以下に、Dao ファイル、SQL ファイルが生成されていることを確認します。【注意】Open 棟梁では、SQL ファイルとして、拡張子が
.sql
のファイルと、.xml
のファイルがあります。(詳しくは Open 棟梁の説明書をご覧ください) -
自動生成した Dao クラスをサンプルプログラムに含めるため、Visual Studio でサンプルプログラムを開き、
Dao
フォルダを選択し、ツールバーの「プロジェクト(P)」-「既存の項目の追加(G)」を選択します。
-
既存項目の追加ダイアログで、
C:\root\DaoSHIPPERS.cs
ファイルを選択し、「追加(A)」ボタンをクリックします。 -
ソリューション エクスプローラーで、
App_Code\sample\Business\LayerB.cs
を開きます。 -
Oracle では、
DaoSHIPPERS
のようにテーブル名やカラム名の部分がすべて大文字になります。このため、Visual Studio で、以下の文字列を一括置換します。- DaoShippers -> DaoSHIPPERS
- genDao.PK_ShipperID -> genDao.PK_SHIPPERID
- genDao.CompanyName -> genDao.COMPANYNAME
- genDao.Phone -> genDao.PHONE
- genDao.Set_CompanyName_forUPD -> genDao.Set_COMPANYNAME_forUPD
- genDao.Set_Phone_forUPD -> genDao.Set_PHONE_forUPD
-
ツールバーの「すべてを保存」アイコンをクリックし、変更内容を保存します。
-
C:\root\programs\C#\10_Build_WebApp_sample.bat
を実行し、サンプルプログラムをビルドします。 -
自動生成した SQL ファイル、XML ファイルを、
C:\root\files\resource\Sql
フォルダーに移動します。 -
D 層自動生成ツールを終了します。
Open 棟梁適用プロジェクトの処理方式に従い、アプリケーション設定ファイル (Web.config または app.config) の各パラメータを設定します。
-
C:\root\programs\C#\App\WebApp\ProjectX\ProjectX.sln
を開きます。 -
ソリューション エクスプローラー で、
web.config
を開きます。 -
Web.config
にアプリケーションの設定を行います。-
connectionStrings
タグに、データベースへの接続文字列を設定します。<connectionStrings> <!-- Oracle用 --> <add name="ConnectionString_ODP2" connectionString="Data Source=localhost/XE;User Id=scott;Password=tiger;"/> </connectionStrings>
-
その他、アプリケーションの処理方式に従い、
Web.config
の<system.web>
タグ内にアプリケーションの設定を行います。
-
-
ソリューション エクスプローラー で、
app.config
を開きます。 -
その他、アプリケーションの処理方式に従い、Open 棟梁の設定を行います。
【注意】
Open 棟梁の設定項目および設定値については、Open棟梁の利用ガイドをご覧ください。 -
ツールバーの「すべてを保存」アイコンをクリックし、変更内容を保存します。
-
C:\root\programs\C#\10_Build_WebApp_sample.bat
を実行し、サンプルプログラムをビルドします。
-
Visual Studio でサンプルプログラムをデバッグ実行します。
-
ブラウザが起動し、ログイン画面が表示されますので、以下のように値を入力し、「ログイン」ボタンを押下します。
- ユーザID: 空でない任意の文字列
- パスワード: 任意の文字列 (空でもよい)
-
メニュー画面が表示されるので、「ノーマル」リンクをクリックします。
-
サンプル画面で、画面下部の「件数取得」ボタンをクリックします。
-
メッセージエリアにデータ件数が表示され、正常にデータベースにアクセスできていることを確認します。
-
C:\root\files\resource\Log\ACCESS.yyyy-mm-dd.log
をメモ帳などで開きます。(yyyy-mm-dd には、実行日付が入ります) -
各画面へのアクセスがトレースログとして記録されていることを確認します。(以下はトレースログを抜粋したものです。
OrderList
画面、OrderDetails
画面がそれぞれトレースされていることが分かります)[2013/08/08 15:04:19,263],[DEBUG],[10],,-,127.0.0.1,-----↓,Global.asax,Application_OnPreRequest [2013/08/08 15:04:19,310],[INFO ],[10],P 層共通処理サンプル [2013/08/08 15:04:19,326],[INFO ],[10],,未認証,127.0.0.1,init,login [2013/08/08 15:04:19,373],[DEBUG],[10],,-,127.0.0.1,-----↑,Global.asax,Application_OnPostRequest,-,-,102,78 [2013/08/08 15:04:19,592],[DEBUG],[9],,-,127.0.0.1,-----↓,Global.asax,Application_OnPreRequest [2013/08/08 15:04:19,592],[INFO ],[9],P 層共通処理サンプル [2013/08/08 15:04:19,592],[INFO ],[9],,未認証,127.0.0.1,init,login [2013/08/08 15:04:19,592],[DEBUG],[9],,-,127.0.0.1,-----↑,Global.asax,Application_OnPostRequest,-,-,2,0 [2013/08/08 15:04:21,814],[DEBUG],[9],,-,127.0.0.1,-----↓,Global.asax,Application_OnPreRequest [2013/08/08 15:04:21,814],[INFO ],[9],,未認証,127.0.0.1,postback,login [2013/08/08 15:04:21,814],[INFO ],[9],,未認証,127.0.0.1,----->,login,btnButton1 [2013/08/08 15:04:21,830],[INFO ],[9],,user01,127.0.0.1,<-----,login,btnButton1,,10,0 [2013/08/08 15:04:21,830],[DEBUG],[9],,-,127.0.0.1,-----↑,Global.asax,Application_OnPostRequest,-,-,17,0 [2013/08/08 15:04:21,892],[DEBUG],[10],,-,127.0.0.1,-----↓,Global.asax,Application_OnPreRequest [2013/08/08 15:04:21,908],[INFO ],[10],P 層共通処理サンプル [2013/08/08 15:04:21,908],[INFO ],[10],,user01,127.0.0.1,init,menu [2013/08/08 15:04:21,908],[DEBUG],[10],,-,127.0.0.1,-----↑,Global.asax,Application_OnPostRequest,-,-,18,16 [2013/08/08 15:04:21,955],[DEBUG],[5],,-,127.0.0.1,-----↓,Global.asax,Application_OnPreRequest [2013/08/08 15:04:21,955],[DEBUG],[5],,-,127.0.0.1,-----↑,Global.asax,Application_OnPostRequest,-,-,0,0 [2013/08/08 15:04:24,799],[DEBUG],[9],,-,127.0.0.1,-----↓,Global.asax,Application_OnPreRequest [2013/08/08 15:04:24,845],[INFO ],[9],P 層共通処理サンプル [2013/08/08 15:04:24,845],[INFO ],[9],,user01,127.0.0.1,init,sampleScreen [2013/08/08 15:04:24,845],[DEBUG],[9],,-,127.0.0.1,-----↑,Global.asax,Application_OnPostRequest,-,-,55,47 [2013/08/08 15:04:27,541],[DEBUG],[10],,-,127.0.0.1,-----↓,Global.asax,Application_OnPreRequest [2013/08/08 15:04:27,556],[INFO ],[10],,user01,127.0.0.1,postback,sampleScreen [2013/08/08 15:04:27,556],[INFO ],[10],,user01,127.0.0.1,----->,sampleScreen,btnMButton1 [2013/08/08 15:04:27,978],[INFO ],[10],B 層共通処理サンプル [2013/08/08 15:04:27,978],[INFO ],[10],,user01,127.0.0.1,----->>,sampleScreen,btnMButton1,SelectCount,SQL%individual%static%- [2013/08/08 15:04:27,994],[INFO ],[10],D 層共通処理サンプル: [commandText]:SELECT COUNT(*) FROM Shippers [commandParameter]: [2013/08/08 15:04:28,010],[INFO ],[10],,user01,127.0.0.1,<<-----,sampleScreen,btnMButton1,SelectCount,SQL%individual%static%-,30,31 [2013/08/08 15:04:28,010],[INFO ],[10],,user01,127.0.0.1,<-----,sampleScreen,btnMButton1,,461,47 [2013/08/08 15:04:28,010],[DEBUG],[10],,-,127.0.0.1,-----↑,Global.asax,Application_OnPostRequest,-,-,467,63