目次＞　第2章 チュートリアル学習環境の整備

# 第2章 チュートリアル学習環境の整備

本章では、チュートリアルを学習するにあたって、 必要となる環境を準備する。

## 1 サーバフレームワークと環境整備との対応

### 1.1 開発環境の確認

開発環境を確認する。本チュートリアルでは以下の開発環境を想定して解説している。

- フレームワーク : TERASOLUNA Server/Client Framework for .NET ver 2.1.x.x
- OS　:　Windows XP Professional SP2 (日本語版)
- CLR　:　.NET Framework 2.0
- 統合開発環境　:　Visual Studio 2005 SP1、Visual Studio 2008 SP1
- Webサーバ　：　インターネット インフォメーション サービス（以下、IIS） 5.1
- ライブラリ : Enterprise Library 3.1 - May 2007

なお、本チュートリアルでは、以上の製品が既にインストールされているものとして解説を行うため、 これらの製品が、学習を行うPCにインストールされていることを確認する。各製品がシステムにインストールされているかどうかは、コントロールパネルの「プログラムの追加と削除」で確認することができる。

##### 備考

- TERASOLUNA Server/Client Framework for .NET ver 2.1.x.x のインストーラは、"http://sourceforge.jp/projects/terasoluna/files/"からダウンロードすることができる。
- 資材は、Visual Studio 2005 SP1対応版、Visual Studio 2008 SP1対応版の2種類を提供している 。
- サンプルアプリケーションを動作させるだけの場合は、統合開発環境はインストールされていなくてもよい。
- Visual Studio 2005 SP1、Visual Studio 2008 SP1のインストールを既定の設定のまま進めた場合、同時に.NET Framework 2.0もインストールされるため、別途インストールする必要はない。
- IISと.NET Framework 2.0をインストールする場合は、必ず、IISを先にインストールすること。IISでASP.NETが動作しない場合は、IISと.NETFrameworkのインストール順序についてを参照のこと。
- Enterprise Library 3.1 - May 2007のインストーラは、"http://www.microsoft.com/DownLoads/details.aspx?familyid=4C557C63-708F-4280-8F0C-637481C31718&displaylang=en"からダウンロードすることができる。

## 2 サーバ環境の整備

本節では、第3章 サンプルアプリケーションの構築のチュートリアルを実施するために必要な環境の整備を行う。

### 2.1 使用するアーカイブ

サーバ側のチュートリアルの学習に使用するアーカイブは以下の通りである。

表2.1-1 アーカイブファイル一覧

アーカイブ | 説明
terasoluna-sample-client-cs-complete.zip | C#版のチュートリアル実施後のクライアントサンプルアプリケーションの完成ソリューション。クライアントサンプルアプリケーションの動作確認や、C#で記述された完成版ソースコードを参照する場合にこのソリューションを利用する。
terasoluna-sample-server-rich-cs-blank.zip | C#版のチュートリアル実施前のサーバサンプルアプリケーションのブランクソリューション。C#でサンプルアプリケーションを構築する場合は、このソリューションを利用する。
terasoluna-sample-server-rich-cs-complete.zip | C#版のチュートリアル実施後のサーバサンプルアプリケーションの完成ソリューション。サーバサンプルアプリケーションの動作確認や、完成版ソースコードを参照する場合にこのソリューションを利用する。

##### 備考

- 本チュートリアルでは、参考としてチュートリアル実施後の完成版ソリューションも提供している。
  完成版を利用する場合は、「terasoluna-sample-server-rich-cs-blank.zip」の代わりに「terasoluna-sample-server-rich-cs-complete.zip」を利用する。

### 2.2 チュートリアル学習用のブランクソリューションの準備

チュートリアルにより学習を行うサーバアプリケーションの初期プロジェクトであるブランクソリューションの準備を行う。

#### 2.2.1 ソリューションの準備

1. terasoluna-sample-server-rich-cs-blank.zipを任意のフォルダに解凍する。
2. 解凍されたフォルダ内にあるソリューションファイル（"TutorialServerRichBlank.sln"）が実行できることを確認する。

以上でブランクソリューションの準備は完了である。以降ではブランクソリューションのソリューション構成と、ソリューション中に含まれるWeb構成ファイル(Web.config)について解説する。必要に応じて読んでいただければよい。

#### 2.2.2 ソリューションの構成

ブランクソリューションの構成を以下に示す。

表2.2.2-1 ソリューションの構成

ファイル格納場所 | ファイル名 | 実装対象 | 説明 |
TutorialServerRich\BLogic | - | ○ | - | ビジネスロジッククラスを格納するフォルダ。
TutorialServerRich\Config | BLogicConfiguration.config | ○ | ビジネスロジック設定ファイル | ビジネスロジックの名前および型を定義する。
| ExceptionCodeConfiguration.coonfig | × | エラーコード設定ファイル | エラーコード・例外の型を定義する。
TutorialServerRich\Dto | - | ○ | - | ビジネスロジックの入力データセットおよび出力データセットを格納するフォルダ。
TutorialServerRich\File | てらそるな.csv | × | csvファイル | クライアントへ送信するcsvファイル。
| てらそるな.png | × | 画像ファイル | クライアントへ送信するpngファイル。
| てらそるな.txt | × | テキストファイル | クライアントへ送信するtxtファイル。
TutorialServerRich\Validation | CalcFormDsValidation.config | × | 入力値検証設定ファイル | 入力値検証を行うビジネスロジック入力データセットのカラムと入力値検証ルールを定義する。
TutorialServerRich\Work | - | × | - | ファイルアップロードしたファイルを保存するフォルダ。
TutorialServerRich | Web.config | × | Web構成ファイル | アプリケーション全体の構成を定義。
TutorialServerRich | Program.cs | × | エントリポイント | アプリケーションを実行する。

※実装対象とは、第3章 サンプルアプリケーションの構築で実装するファイルや、実装したファイルを格納するフォルダのことを指す。

#### 2.2.3 Web構成ファイル（Web.config）について

ブランクソリューションが提供するWeb構成ファイルを以下に示す。
チュートリアルを進める上で、初期設定でそのまま動作するようになっているが、外部設定ファイルのパスやリクエストサイズなどを変更する場合には、Web構成ファイルを変更すること。

Web.config

    <?xml version="1.0"?>
    <!--
        メモ:
          プロジェクトをWeb アプリケーションに変換すると、
          Web管理ツールを使用してアプリケーションの設定を構成することができます。
          Web管理ツールを使用する場合は、Visual Studio の[Web サイト]メニューにある
          [ASP.NET 構成]オプションを選択してください。
          Web管理ツールで設定できる項目およびコマンドの一覧は、
          "\Windows\Microsoft.Net\Framework\v2.x\Config"にある"machine.config.comments"で確認できます。
    -->

    <configuration>
      <configSections>
        <!-- exceptionCodeConfiguration要素と解析クラス -->
        <section name="exceptionCodeConfiguration" type="TERASOLUNA.Fw.Web.Configuration.ExceptionCode.ExceptionCodeConfigurationSection,TERASOLUNA.Fw.Web"/>
        <!-- blogicConfiguration要素と解析クラス -->
        <section name="blogicConfiguration" type="TERASOLUNA.Fw.Common.Configuration.BLogic.BLogicConfigurationSection,TERASOLUNA.Fw.Common"/>
        <!-- sqlConfiguration要素と解析クラス
        <section name="sqlConfiguration" type="TERASOLUNA.Fw.Web.Configuration.Sql.SqlConfigurationSection, TERASOLUNA.Fw.Web"/>
        -->
        <!-- requestControllerConfiguration要素と解析クラス
        <section name="requestControllerConfiguration" type="TERASOLUNA.Fw.Web.Configuration.RequestController.RequestControllerConfigurationSection,TERASOLUNA.Fw.Web"/>
        -->
      </configSections>

      <appSettings>
      </appSettings>

      <connectionStrings>
      </connectionStrings>

      <!-- 利用するエラーコード設定ファイルのリスト -->
      <exceptionCodeConfiguration>
        <files>
          <file path="Config\ExceptionCodeConfiguration.config"/>
        </files>
      </exceptionCodeConfiguration>

      <!-- 利用するビジネスロジック設定ファイルのリスト -->
      <blogicConfiguration>
        <files>
          <file path="Config\BLogicConfiguration.config"/>
        </files>
      </blogicConfiguration>

      <!-- 利用するSQL文設定ファイルのリスト -->
      <!--
      <sqlConfiguration>
        <files>
          <file path="Config\SqlConfiguration.config" />
        </files>
      </sqlConfiguration>
      -->

      <!-- リクエストタイプ名とリクエストコントローラの対応 -->
      <!--
      <requestControllerConfiguration>
        <controllers>
          <controller name="Normal" type="TERASOLUNA.Fw.Web.Controller.BLogicRequestController, TERASOLUNA.Fw.Web"/>
          <controller name="Download" type="TERASOLUNA.Fw.Web.Controller.FileDownloadRequestController, TERASOLUNA.Fw.Web"/>
          <controller name="Upload" type="TERASOLUNA.Fw.Web.Controller.FileUploadRequestController, TERASOLUNA.Fw.Web"/>
          <controller name="MultipartUpload" type="TERASOLUNA.Fw.Web.Controller.MultipartUploadRequestController, TERASOLUNA.Fw.Web"/>
          <controller name="Unknown" type="TERASOLUNA.Fw.Web.Controller.UnknownRequestController, TERASOLUNA.Fw.Web"/>
        </controllers>
      </requestControllerConfiguration>
      -->

      <system.web>
        <httpHandlers>
          <!-- リクエストコントローラの設定 -->
          <add verb="POST" path="Request.aspx" type="TERASOLUNA.Fw.Web.Controller.RequestControllerFactory, TERASOLUNA.Fw.Web"/>
        </httpHandlers>

        <!--
            メモ：
              コンパイルされたページにデバッグシンボルを挿入するためには、
              compilation要素のdebug属性を"true"に設定します。
              この設定はパフォーマンスに影響してしまうため、
              開発時のみ、この属性を"true"に設定することを推奨します。
        -->
        <compilation debug="true">
          <assemblies>
            <add assembly="System.Transactions, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
            <add assembly="System.Management, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
            <add assembly="System.Data.OracleClient, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
            <add assembly="System.Configuration.Install, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
          </assemblies>
        </compilation>

        <!--
            メモ：
              ASP.NETで使用されるセキュリティ認証モードの構成を有効にするためには、
              <authentication>セクションを設定する必要があります。
        -->
        <authentication mode="Windows"/>

      </system.web>

      <!-- ログ出力設定 -->
      <!--
      <system.diagnostics>
        <sources>
          <source name="Default" switchName="DefaultLogSwitch"
            switchType="System.Diagnostics.SourceSwitch">
            <listeners>
              <add name="DefaultLogFile"/>
              <remove name="Default"/>
            </listeners>
          </source>
        </sources>
        <switches>
          <add name="DefaultLogSwitch" value="Error"/>
        </switches>
        <sharedListeners>
          <add name="DefaultLogFile"
           type="System.Diagnostics.TextWriterTraceListener"
           initializeData="DefaultLog.txt">
          </add>
        </sharedListeners>
      </system.diagnostics>
    -->
    </configuration>

表2.2.3-1 Web構成ファイルの設定

項目 | 説明
外部設定ファイルのパス指定 | Server frameworkで利用する設定ファイルには、ビジネスロジック設定ファイル、エラーコード設定ファイル、入力値検証設定ファイルの3種類があり、そのうちビジネスロジック設定ファイルおよびエラーコード設定ファイルのパス(絶対パスまたは、相対パス)を設定する。指定方法の詳細は、「WB-01 リクエストコントローラ機能」、「CM-04 ビジネスロジック生成機能」を参照すること。
リクエストコントローラの設定 | Server Frameworkで提供しているリクエストコントローラを作成するリクエストコントローラのファクトリクラスを設定する。指定方法の詳細は、「WB-01 リクエストコントローラ機能」を参照すること。

### 2.3 サーバアプリケーションの起動方法

本アプリケーションは、IISを利用してサーバを起動する。初回の起動方法は以下の手順で行う。

- サーバアプリケーションの発行
- サーバアプリケーションの作成
- サーバアプリケーションの動作確認

2回目以降の起動方法はサーバアプリケーションの発行およびサーバアプリケーションの動作確認のみでよい。

サーバアプリケーションのデバッグ実行を行う方法については、デバッグ実行を行う方法を参照すること。

#### 2.3.1 サーバアプリケーションの発行

1. TutorialServerRichプロジェクトを右クリック⇒発行を押下する。

図2.3.1-1 TutorialServerRichプロジェクト

2. Webの発行画面の"..."ボタンを押下する。

図2.3.1-2 Webの発行画面(初期)

3. Webサイトを開く画面のフォルダのテキストボックスに"C:\Inetpub\wwwroot\TutorialServerRich"と入力し、開くボタンを押下する。

図2.3.1-3 Webサイトを開く画面

4. フォルダを作成するかどうかの画面が表示されるので、はいボタンを押下する。

図2.3.1-4 フォルダ作成画面

5. Webの発行画面の発行ボタンを押下する。

図2.3.1-5 Webの発行画面(登録済み)

#### 2.3.2 サーバアプリケーションの作成

1. IISの管理画面(コントロールパネル→管理ツール→インターネット インフォーメーション サービス)を起動して、TutorialServerRichフォルダのプロパティ画面を開く。

図2.3.2-1 インターネットインフォメーションサービス画面

2. TutorialServerRichのプロパティ画面のディレクトリタブで、アプリケーションの作成を行う。

図2.3.2-2 TurorialServerRichのプロパティ画面

3. TutorialServerRichのプロパティ画面のディレクトリセキュリティタブで、認証方法の確認を行う。

図2.3.2-3 TutorialSererRichのプロパティのディレクトリセキュリティタブ画面

- 匿名アクセスのチェックを行う。

図2.3.2-4 認証方法画面

4. IISが起動していることを確認する。

- 再生ボタンの色が灰色になっていることを確認する。黒くなっている場合は、再生ボタンを押下し、IISを起動する。

図2.3.2‐5 サーバ起動状態画面

#### 2.3.3 サーバアプリケーションの動作確認

1. Webブラウザから、サーバアプリケーションへアクセスする。

       URL：http://localhost/TutorialServerRich/Index.aspx

2. サーバアプリケーションが正常に動作している場合、Webブラウザに以下のメッセージが表示される。

図3.3-1 サーバアプリケーションの動作確認

## 3 クライアント環境の整備

サーバアプリケーションへ通信を行うクライアントアプリケーションを整備する。
なお、ここではサーバアプリケーション構築の学習を行うため、terasoluna-sample-client-cs-complete.zipを解凍し、TutorialClient.slnを開く。

### 3.1 クライアントアプリケーションの起動方法

#### 3.1.1 クライアントアプリケーションの構成マネージャの変更

- ビルド⇒構成マネージャを押下する。

図3.1.1-1 Visual Studio画面

- アクティブソリューション構成のプルダウンからReleaseを選択し、閉じるボタンを押下する。

図3.1.1-2 クライアントアプリケーションの構成マネージャ

#### 3.1.2 クライアントアプリケーションのビルドおよび確認

- ビルド⇒ソリューションのビルドを押下し、ビルドを行う。

図3.1.2-1 ビルドを行う画面

- TutorialClientプロジェクトのbin\ReleaseフォルダにTutorialClient.exeが作成されていることを確認する。

図3.1.2-2 Releaseフォルダ

#### 3.1.3 クライアントアプリケーションの動作確認

- 作成されたTutorialClient.exeをダブルクリックし、ログオン画面が表示されることを確認する。第3章での動作確認では、TuotrialClient.exeを利用する。

図3.1.3-1 ログオン画面

次章：第3章 サンプルアプリケーションの構築