開発基盤部会 Blog

開発基盤部会 Blog >> 記事詳細

2016/08/10

Open 棟梁の使い方(基礎編)第3回

Tweet ThisSend to Facebook | by nishino

第 3 回 サンプルアプリケーションを動かしてみよう

こんにちは!
今回は、Open 棟梁に付属のサンプルアプリケーションを動かしていきます。第 1 回でもお話いたしましたが、このサンプルアプリケーションには、2 つの用途があります。

  • Open 棟梁の動作や、実装方法などの確認用として
  • アプリケーションを実装する際のテンプレート (土台) として

Open 棟梁のアプリケーションを実行するには、いろいろな設定ファイルや、アセンブリの参照設定が必要になります。 サンプルアプリケーションには、これらの設定ができた状態になっていますので、新規にプロジェクトを作成するのではなく、このサンプルアプリケーションを土台とし、プログラムを実装する方式をオススメしています。

それでは、始めていきましょう。

ネットワークプロキシの設定をする (使用している場合)

フレームワークやサンプルアプリのビルド時、NuGet パッケージのダウンロードが実行されます。 このとき、企業ポリシーなどでネットワークプロキシを設置している場合、うまくパッケージがダウンロードできない場合があります。 これを回避するために、http_proxy 環境変数を定義します。

C:\root\programs\C#\z_Common.bat および C:\root\programs\VB\z_Common.bat を、テキストエディタで開きます。 既定では、http_proxy 環境変数の定義箇所はコメントアウトされていますので、以下を実施してください。

  • "@rem" を削除して、コメントアウトを解除する
  • 環境変数 http_proxy に、お使いのプロキシ情報を設定する
@echo --------------------------------------------------
@echo Set the proxy settings of Nuget.
@echo --------------------------------------------------
set http_proxy=http://[username]:[password]@[proxy fqdn or ip address]

プログラムをビルドする

通常、プログラムをビルドするときは、もちろん Visual Studio を使います。 ところが、Open 棟梁のプログラムをビルドするときは、初回のみ、MSBuild を使用したビルドバッチファイルを実行して、プログラムをビルドします。 これは、Open 棟梁のテンプレートベースには、「フレームワーク部分 (ベースクラス1,2)」と「サンプルアプリケーション」がありますが、フレームワーク部分のビルド生成物 (DLL ファイル) を Open 棟梁の既定の置き場にコピーするなどの処理が必要なためです。 これらの一連のビルドプロセスをまとめたバッチファイルを実行します。

ここがポイント!
Open 棟梁のプログラムのビルド生成物 (DLL ファイル) は、既定のフォルダに配置する必要がある。 このため、初回のみ、ビルドバッチファイルで Open 棟梁のプログラムをビルドする必要がある。(以降は、すでに既定のフォルダ内にビルド生成物 (DLL ファイル) が格納されているので、通常通り Visual Studio でビルドして問題ない。ただし、フレームワーク部分 (ベースクラス1,2) をカスタマイズした場合は、再度ビルド生成物を既定のフォルダにコピーするため、初回のみビルドバッチファイルを実行する必要がある。)

具体的には、C:\root\programs\C#またはC:\root\programs\VBフォルダのバッチファイルを実行します。 なお、バッチファイルは、以下の表の上から順番に実行してください。 つまり、

  1. [C#] フォルダのバッチファイルを 1 番から順番に
  2. [VB] フォルダのバッチファイルを 1 番から順番に

という順番です。

実行するバッチファイルは、以下の表のとおりです。なお、以下の表で、

  • ○: 必ず実行する
  • △: アプリケーションの形態などによっては、実行する必要がある
  • 空白: 実行する必要はない
を表します。

フォルダ名バッチファイル名説明アプリの
開発言語
C#VB
C:\root\programs\C#1_DeleteDir.batビルドによってできたフォルダを削除 (クリーン) する。
2_DeleteFile.bat一時ファイルなどを削除 (クリーン) する。
3_Build_Framework.batフレームワーク部分 (ベースクラス1,C# 用ベースクラス2) をビルドする。
3_Build_PortableClassLibrary.batポータブルクラスライブラリをビルドする。*1
3_Build_RichClientCustomControl.batC# 用リッチクライアント用カスタムコントロールをビルドする。*2*2
4_Build_Framework_Tool.bat付属ツールをビルドする。
5_Build_2CS_sample.batサンプルアプリ (2 層 C/S) をビルドする。*3
5_Build_Bat_sample.batサンプルアプリ (バッチ) をビルドする。
6_Build_WSSrv_sample.batサンプルアプリ (Web サービス (サーバー側ロジック)) をビルドする。
7_Build_Framework_WS.batC# 用フレームワーク (サービスインタフェース部分) をビルドする。
8_Build_WSClnt_sample.batサンプルアプリ (Web サービスクライアント (Windows フォーム)) をビルドする。
9_Build_WSClnt_sample.batサンプルアプリ (Web サービスクライアント (WPF)) をビルドする。
10_Build_WebApp_sample.batサンプルアプリ (ASP.NET) をビルドする。
11_Build_UWP_sample.batサンプルアプリ (UWP アプリ) をビルドする。
z_Common.bat共通設定 (MSBuild 用)
z_Common2.bat共通設定 (Visual Studio 用)
C:\root\programs\VB1_DeleteDir.batビルドによってできたフォルダを削除 (クリーン) する。
2_DeleteFile.bat一時ファイルなどを削除 (クリーン) する。
3_Build_Framework.batフレームワーク (VB 用ベースクラス2) をビルドする。
3_Build_RichClientCustomControl.batVB 用リッチクライアント用カスタムコントロールをビルドする。*2
5_Build_2CS_sample.batサンプルアプリ (2 層 C/S) をビルドする。*3
5_Build_Bat_sample.batサンプルアプリ (バッチ) をビルドする。
6_Build_WSSrv_sample.batサンプルアプリ (Web サービス (サーバー側ロジック)) をビルドする。
7_Build_Framework_WS.batVB 用フレームワーク (サービスインタフェース部分) をビルドする。
8_Build_WSClnt_sample.batサンプルアプリ (Web サービスクライアント (Windows フォーム)) をビルドする。
10_Build_WebApp_sample.batサンプルアプリ (ASP.NET) をビルドする。
z_Common.bat共通設定 (MSBuild 用)
z_Common2.bat共通設定 (Visual Studio 用)

*1 UWP アプリなどで、汎用 DTOなど、ポータブルクラスライブラリ化された部品を使用する場合は必須
*2 リッチクライアント アプリケーションを作成する場合は必須
*3 実際のアプリケーションの形態に応じて選択してください

例えば、ASP.NET のサンプルアプリケーション (C#) をビルドするには、どのファイルを実行すればよいでしょうか。 上の表を見ながら、考えていきましょう。

  • アプリケーションの開発言語が C# である
    • C:\root\programs\C# フォルダ以下のバッチファイルのみが対象である
  • ビルドするのは ASP.NET アプリケーションである
    • UWP アプリではないので、以下のファイルは実行する必要がない
      • 3_Build_PortableClassLibrary.bat
      • 11_Build_UWP_sample.bat
    • リッチクライアント (C/S) やバッチプログラムではないので、以下のファイルは実行する必要がない
      • 3_Build_RichClientCustomControl.bat
      • 5_Build_2CS_sample.bat
      • 5_Build_Bat_sample.bat
      • 8_Build_WSClnt_sample.bat
      • 9_Build_WSClnt_sample.bat
  • 以下のファイルは、もともと実行する必要がない
    • z_Common.bat
    • z_Common2.bat

このことから、実行するバッチファイルと、その順番は以下のようになります。 それでは、以下のファイルを順番に実行して、プログラムをビルドしてください。

  1. C:\root\programs\C#\1_DeleteDir.bat
  2. C:\root\programs\C#\2_DeleteFile.bat.bat
  3. C:\root\programs\C#\3_Build_Framework.bat
  4. C:\root\programs\C#\4_Build_Framework_Tool.bat.bat
  5. C:\root\programs\C#\6_Build_WSSrv_sample.bat
  6. C:\root\programs\C#\7_Build_Framework_WS.bat
  7. C:\root\programs\C#\10_Build_WebApp_sample.bat

ここがポイント!
実行するアプリケーションの形態に応じて、実行するビルドバッチファイルを選択する。VB アプリケーションを作成する場合でも、[C#] フォルダ内の 1 ~ 4 のバッチファイルを実行する必要がある。

なお、ビルド時に以下のようなエラーが発生することがあります。

C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(2863,5): error MSB3086: タスクは SdkToolsPath "" またはレジストリ キー "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SDKs\Windows\v8.0A\WinSDK-NetFx40Tools-x86" を使用して "AL.exe"を見つけられませんでした。SdkToolsPath が設定されていること、SdkToolsPath の下の適切なプロセッサ固有の場所にツールが存在すること、および Microsoft Windows SDK がインストールされていることを確認してください。 [C:\root\programs\C#\Frameworks\Infrastructure\Public\Public.csproj]
このエラーが発生した場合は、Microsoft Japan Visual Studio Support Team Blogを参考に、Windows SDK をインストールしてください。

サンプルアプリケーションを実行する

事前準備

テンプレートベースに含まれる ASP.NET サンプルアプリケーションは、既定ではセッション状態モードがStateServer モードになっています。このため、あらかじめ ASP.NET 状態サービスを開始しておく必要があります。ASP.NET 状態サービスは、以下のいずれかの方法で開始できます。
  • GUI で開始する
    [コントロールパネル]-[管理ツール]-[サービス]とメニューをたどるか、services.mscを実行することで、サービス一覧を表示できます。 その中で、「ASP.NET 状態サービス」を選択して「サービスの開始」をクリックしてください。
  • コマンドラインで開始する
    以下のコマンドを管理者権限で実行することでも、ASP.NET 状態サービスを起動できます。
    net start "aspnet_state"
    なお、このコマンドは、C:\root\files\bat\iis_aspnet\aspnet_state-stat.bat にも書かれていますので、このバッチファイルを実行しても、同様に ASP.NET 状態サービスを開始できます。

アプリケーションを実行する

  1. Visual Studio で、C:\root\programs\C#\Samples\WebApp_sample\ProjectX_sample\ProjectX_sample.sln を開いてください。

  2. [ソリューション エクスプローラー] で、[Aspx]-[start]-[menu.aspx] を右クリックして、「スタート ページの設定」を選択してください。

  3. アプリケーションをデバッグ実行 (またはデバッグなしで実行) してください。

  4. 以下のようなログイン画面が表示されます。 ユーザー名、パスワードに任意の文字を入力してください。 (サンプルアプリでは、特に認証処理を実装していません。任意のユーザー名、パスワードでログインできます)

  5. 以下のようなメニュー画面が表示されたら、成功です。 試しに、いろいろ操作してみてください。

実行ログを確認する

Open 棟梁では、log4net を使用してさまざまな実行ログを取ることができます。 既定の出力先はC:\root\files\resource\Logです。(C:\root\files\resource\Log\SampleLogConf.xml をカスタマイズすることで、設定を変更可能です)

ログのフォーマットや見方については、こちらをご覧ください。

ファイル名説明
ACCESS.yyyy-mm-dd.logアクセスログ
OPERATION.yyyy-mm-dd.log操作ログ
SQLTRACE.yyyy-mm-dd.logSQL トレースログ
ACCESS_2CS.yyyy-mm-dd.logアクセスログ (2 層 C/S 用)
OPERATION_2CS.yyyy-mm-dd.log操作ログ (2 層 C/S 用)
SQLTRACE_2CS.yyyy-mm-dd.logSQL トレースログ (2 層 C/S 用)
ACCESS_WS.yyyy-mm-dd.logアクセスログ (Web サービス用)
OPERATION_WS.yyyy-mm-dd.log操作ログ (Web サービス用)
SQLTRACE_WS.yyyy-mm-dd.logSQL トレースログ (Web サービス用)
SERVICE-IF.yyyy-mm-dd.logアクセスログ (サービスインタフェース用)

いかがでしょうか? うまく実行できましたでしょうか?

今回はここまでです。 次回は、プロジェクトテンプレートを作っていきます!

お楽しみに!


11:02 | 投票する | 投票数(1) | コメント(0) | お知らせ