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

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

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

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

### 1.1 開発環境の確認

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

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

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

#### 1.1.1 備考

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

## 2 サーバ環境の整備

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

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

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

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

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

##### 備考

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

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

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

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

1. terasoluna-sample-server-web-cs-blank.zipを任意のフォルダに解凍する。
2. 解凍されたフォルダ内にあるソリューションファイル（"TutorialServerWeb.sln"）を読み込めることを確認する。

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

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

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

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

ファイル格納場所 | ファイル名 | 実装対象 | 説明 |
TutorialServerWeb\App_Data | Database.mdf | × | SQLデータベース | チュートリアルアプリケーションで使用する商品情報が格納されたデータベース。
TutorialServerWeb\BLogic | - | ○ | - | ビジネスロジッククラスを格納するフォルダ。
TutorialServerWeb\Config | BLogicConfiguration.config | ○ | ビジネスロジック設定ファイル | ビジネスロジックの名前および型を定義する。
| ExceptionTransition.config | × | エラーコード設定ファイル | エラーコード・例外の型を定義する。
| PageConfiguration.config | ○ | 画面遷移設定ファイル | 画面遷移機能および画面遷移保証機能の管理対象となる画面を定義する。
| SqlConfiguration.config | × | SQL文設定ファイル | SQL文を定義する。
TutorialServerWeb\Dto | - | ○ | - | ビジネスロジックの入力データセットおよび出力データセットを格納するフォルダ。
TutorialServerWeb\Form | - | ○ | - | 画面（aspxファイル）を格納するフォルダ。
TutorialServerWeb | Web.config | × | Web構成ファイル | アプリケーション全体の構成を定義。

※実装対象とは、第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>
        <!-- exceptionTransitionConfiguration要素と解析クラス -->
        <section name="exceptionTransitionConfiguration" type="TERASOLUNA.Fw.Web.Configuration.ExceptionTransition.ExceptionTransitionConfigurationSection, TERASOLUNA.Fw.Web"/>
        <!-- pageConfiguration要素と解析クラス -->
        <section name="pageConfiguration" type="TERASOLUNA.Fw.Web.Configuration.Page.PageConfigurationSection, 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"/>
      </configSections>

      <appSettings>
      </appSettings>

      <connectionStrings>
      </connectionStrings>

      <!--利用するエラー画面遷移設定ファイルのリスト-->
      <exceptionTransitionConfiguration mode="on" logging="on">
        <files>
          <file path="Config\ExceptionTransition.config" />
        </files>
      </exceptionTransitionConfiguration>

      <!-- 利用するページ設定ファイルのリスト -->
      <pageConfiguration>
        <files>
          <file path="Config\PageConfiguration.config"/>
        </files>
      </pageConfiguration>

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

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

      <system.web>
        <!--
            メモ：
              コンパイルされたページにデバッグシンボルを挿入するためには、
              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"/>
            <add assembly="System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
          </assemblies>
        </compilation>
        <!--
                <authentication> セクションは、ユーザーを識別するため
                に、ASP.NET で使用されるセキュリティ認証モードの構成
                を有効にします。
        -->
        <authentication mode="Windows"/>

        <httpModules>
          <!-- 画面遷移機能の設定 -->
          <add name="TransitionListenerImpl" type="TERASOLUNA.Fw.Web.HttpModule.TransitionListenerImpl, TERASOLUNA.Fw.Web"/>
          <!-- 画面遷移保障機能の設定
          <add name="TokenProcessorImpl" type="TERASOLUNA.Fw.Web.HttpModule.TokenProcessorImpl, TERASOLUNA.Fw.Web"/>
          -->
          <!-- 二度押下防止機能の設定
          <add name="PreventDoubleSubmitImpl" type="TERASOLUNA.Fw.Web.HttpModule.PreventDoubleSubmitImpl, TERASOLUNA.Fw.Web"/>
          -->
          <!-- エラー画面遷移機能の設定 -->
          <add name="ExceptionTransitionListerImpl" type="TERASOLUNA.Fw.Web.HttpModule.ExceptionTransitionListenerImpl, TERASOLUNA.Fw.Web"/>
        </httpModules>

      <!--
            メモ：
              ハンドリングされていないエラーが発生した場合の処理を有効にする場合、
              <customErrors>要素を設定します。
              例えば、開発者がHTMLエラーページをスタックトレースの変わりに
              表示するようにすることができます。
      -->
      <!--
            <customErrors mode="RemoteOnly" defaultRedirect="ErrorPage.htm">
                <error statusCode="403" redirect="NoAccess.htm" />
                <error statusCode="404" redirect="FileNotFound.htm" />
            </customErrors>
      -->
      </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.3 サーバアプリケーションの起動方法

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

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

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

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

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

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

図2.3.1-1 TutorialServerWebプロジェクト

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

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

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

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

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

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

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

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

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

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

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

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

図2.3.2-2 TurorialServerWebのプロパティ画面(アプリケーション作成前)

図2.3.2-3 TurorialServerWebのプロパティ画面(アプリケーション作成後)

3. 認証方法の確認を行う。

- TutorialServerWebのプロパティのディレクトリセキュリティタブを選択し、編集ボタンを押下する。

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

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

図2.3.2-5 認証方法画面

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

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

       URL：http://localhost/TutorialServerWeb/Form/CalcForm.aspx

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

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

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