基本仕様 ツーピース入門 前の章 次の章

VB C# ALL プログラミング言語によるフィルタ (ここで選んだ言語で選別された説明や図だけが表示されます)

ツーピース入門

この章では、ツーピーススタイルのアプリケーションを様々な方式で動作させるための説明をします。順を追って作業をすすめることで、アプリケーションの機能を一通り使用してみることができるようになっています。

対象ソリューション

このツーピース入門で扱うシステムの素材は、次の場所にあります。

VB の場合
(MANDALA.net をインストールしたディレクトリ)\Vb\TwoPieceTutorial
C# の場合
(MANDALA.net をインストールしたディレクトリ)\Cs\TwoPieceTutorial

TwoPieceTutorial はフォルダですが、最初にエクスプローラなどでフォルダごと別の場所にコピーしてください。このツーピース入門では、C:\Work というフォルダ配下にコピーしたものとして説明しています。この場合 TwoPirceTutorial のフルパスは次のようになります。

C:\Work\TwoPieceTutorial

このツーピース入門で使用するソリューションは、次のものになります。

C:\Work\TwoPieceTutorial\MyComputer.sln

Visual Studio でこのソリューションを開いてください。ソリューションには、 2 つのプロジェクトが収められています。

MyComputerCnt はセントラルピース用プロジェクト、MyComputerLcl はローカルピース用プロジェクトです。これらのアプリケーションにはまだコード合成が施されておらず、未完成の状態です。また、セントラルピース用プロジェクトのためにホスティングを行うプロジェクトを追加する必要があります。

CentralMain の追加

(1) プロジェクトの新規作成

コンソールアプリケーション型のホスティングプロジェクトである CentralMain をソリューションに追加します。Visual Studio のメニューバーから ファイル(F) - 追加(D) - 新しいプロジェクト(N) とクリックしてください。次のダイアログボックス「新しいプロジェクトの追加」が表示されます。

VB の場合

(クリックすると原寸大の図が登場します)

C# の場合

(クリックすると原寸大の図が登場します)

OK ボタンをクリックすると、ソリューションに新しいプロジェクトが追加されます。このプロジェクトに対して必要な設定などを行います。

(2) デフォルトモジュールの削除

VB の場合、デフォルトで加えられているモジュール Module1.vb を削除します。ソリューションエクスプローラのウィンドウで、CentralMain プロジェクト配下にある Module1.vb ファイルをクリックして選択し、Visual Studio のメニューバーから 編集(E) - 削除(V) をクリックし、確認メッセージボックスで OK ボタンをクリックします。

C# の場合、デフォルトで加えられているモジュール Program.cs を削除します。ソリューションエクスプローラのウィンドウで、CentralMain プロジェクト配下にある Program.cs ファイルをクリックして選択し、Visual Studio のメニューバーから 編集(E) - 削除(V) をクリックし、確認メッセージボックスで OK ボタンをクリックします。

(3) CentralMain モジュールの追加

削除したモジュールの代わりに、CentralMain モジュールを追加します。ソリューションエクスプローラのウィンドウで、CentralMain プロジェクトをクリックして選択し、Visual Studio のメニューバーから プロジェクト(P) - 既存項目の追加(G) をクリックします。ファイル選択ダイアログボックス「既存項目の追加」が表示されますので、次のファイルを選択してください。

VB の場合
(MANDALA.net をインストールしたディレクトリ)\CentralMain9.vb
C# の場合
(MANDALA.net をインストールしたディレクトリ)\CentralMain9.cs

(4) ビルド出力フォルダの設定

コンパイル結果の出力フォルダをセントラルピースのプロジェクトと同じ場所に設定します。

VB の場合、ソリューションエクスプローラのウィンドウで、CentralMain プロジェクトをクリックして選択し、Visual Studio のメニューバーから プロジェクト(P) - CentralMain のプロパティ(P) をクリックしてください。プロパティページが表示されますので、「コンパイル」タブをクリックしてコンパイル情報のページを選択してください。

図のようにアクティブ構成が Debug になっていることを確認したうえで、ビルド出力パスを次のように入力します。

..\bin\Debug\

C# の場合、ソリューションエクスプローラのウィンドウで、CentralMain プロジェクトをクリックして選択し、Visual Studio のメニューバーから プロジェクト(P) - CentralMain のプロパティ(P) をクリックしてください。プロパティページが表示されますので、「ビルド」タブをクリックしてビルド情報のページを選択してください。

アクティブ構成が Debug になっていることを確認したうえで、ビルド出力パスを次のように入力します。

..\bin\Debug\

(5) スタートアップオブジェクトの設定

引き続きプロパティページでの設定になります。

VB の場合、プロパティページにおいて「アプリケーション」タブをクリックし、アプリケーションについてのページを選択します。 「スタートアップオブジェクト」項目を次のように CentralMain.CentralMain に設定します。

C# の場合、設定は必要ありません。

(6) 参照の設定

参照設定を行います。ソリューションエクスプローラのウィンドウで、CentralMain プロジェクトをクリックして選択し、Visual Studio のメニューバーから プロジェクト(P) - 参照の追加(R) とクリックしてください。「参照の追加」ダイアログボックスが表示されますので、「.NET」タブで System.Configuration および System.Runtime.Remoting の 2 つのアセンブリを指定して OK ボタンをクリックします。リストでは Ctrl キーを押下しながら項目をクリックすることで 2 つのアセンブリを同時に指定できます。

引き続き参照の追加を行います。先ほどと同じ手順で「参照の追加」ダイアログボックスを表示させ、「参照」タブで MANDALA.net をインストールしたディレクトリから AppliTech.Remoting8.dll および AppliTech.WorkFrame8Cnt.dll の 2 つのアセンブリを指定して OK ボタンをクリックします。

(7) 構成ファイルの追加

プロジェクトに構成ファイルを追加します。ソリューションエクスプローラのウィンドウで CentralMain プロジェクトをクリックして選択し、Visual Studio のメニューバーから プロジェクト(P) - 既存項目の追加(G) をクリックします。「既存項目の追加」ダイアログボックスが表示されますので、次のファイルを指定します。

C:\Work\TwoPieceTutorial\Customize\app.config

そして追加ボタンをクリックするのですが、このときにボタンの右端にあるドロップダウン用の下向き三角形イメージの部分をクリックしてドロップダウンリストを表示させます。そして「リンクとして追加」項目をクリックしてください。

(8) プロジェクトの保存とコード合成

ここまでの作業をすべて保存します。Visual Studio のメニューバーから ファイル(F) - すべてを保存(L) とクリックしてください。

保存が無事終わったら MANDALA.net コード合成ツールを起動してください。ファイル選択ダイアログボックスが表示されますので、次のファイルを指定します。

VB の場合
C:\Work\TwoPieceTutorial\MyComputerLcl.vbproj
C# の場合
C:\Work\TwoPieceTutorial\MyComputerLcl.csproj

本来ならばここでアプリケーションの仕様に関する様々な情報を設定するのですが、このツーピース入門ではこの作業を省略できるようにあらかじめ smr ファイルを作成してあります。 ただし、セントラルプロジェクトおよび CentralMain に関する設定は行っていただきます。

MANDALA.net コード合成ツール 上で F6 キーを押下して「画面オプション」ダイアログボックスを表示します。このダイアログボックス上でプロジェクトオプション設定/変更ボタンをクリックし、「プロジェクトオプション」ダイアログボックスを表示します。このダイアログボックス上で、「Central プロジェクト」項目に次の値を入力します。

VB の場合
C:\Work\TwoPieceTutorial\MyComputerCnt.vbproj
C# の場合
C:\Work\TwoPieceTutorial\MyComputerCnt.csproj

また、「CentralMain プロジェクト」項目に次の値を入力します。

VB の場合
C:\Work\TwoPieceTutorial\CentralMain\CentralMain.vbproj
C# の場合
C:\Work\TwoPieceTutorial\CentralMain\CentralMain.csproj

「プロジェクト オプション」ダイアログボックスで即時設定ボタンをクリックし、「画面オプション」ダイアログボックスで設定ボタンをクリックすると、入力値が確定されてコード合成ツールのウィンドウに戻ります。

F12 キーを押下するとコード合成が行われます。コード合成中に、何回か情報を通知するメッセージボックスが表示されるかもしれませんが、適当に相槌をうっておけば問題ありません。

Visual Studio に戻ると次のようなダイアログボックスが表示されます。

これには必ず再読み込み(R) ボタンをクリックするようにしてください。無視(I)をクリックしてしまうとコード合成ツールでのプロジェクトファイル編集が反映されず、アプリケーションが正しく動作しません。

HTTP チャネルでの実行

(1) スタートアッププロジェクトの設定

実行指示を与えたときに動作するスタートアッププロジェクトを指定します。ソリューションエクスプローラのウィンドウでソリューション MyComputer をクリックして選択し、Visual Studio のメインメニューで プロジェクト(P) - プロパティ(P) とクリックしてソリューションのプロパティページを表示させます。ここでスタートアッププロジェクトを「マルチスタートアップ プロジェクト」と設定し、CentralMain プロジェクトおよび MyComputerLcl プロジェクトのアクションを「実行」に設定して、OK ボタンをクリックします。


(クリックすると原寸大の図が登場します)

(2) 実行確認

ビルドとデバッグ (実行) を行います。Visual Studio のメインメニューで ビルド(B) - ソリューションのリビルド(R) とクリックして全体をリビルドし、コンパイルエラーがないことを確認してください。

Visual Studio のメインメニューで デバッグ(D) - デバッグ開始(S) とクリックしてアプリケーションを実行し、動作している状態をご覧ください。CentralMain は次のようにコマンドプロンプトウィンドウで実行されます。

ローカルピースのアプリケーション実行ウィンドウにはローカルとセントラル双方のコンピュータ名などが表示されますが、ループバックホスティングでの実行ですから、どちらにも同じ値が表示されます。

このツーピーススタイルのアプリケーションは、次のような通信条件下で実行されています。

この章のこれ以降の部分では、このような通信条件を変えながら実行確認をしていきます。

TCP チャネルでの実行

(1) アドレス設定の変更

プロジェクト MyComputerLcl の Customize フォルダにあるファイル app.config を開き (開発言語のソースファイル同様、ソリューションエクスプローラでダブルクリックすると開けます)、次の箇所を探してください。

<add key="CentralServerURL" value="http://localhost:8080/REMOTING" />

これを編集し、次のように書き換えます。青太字で表示されているのが書き換える部分です。

<add key="CentralServerURL" value="tcp://localhost:9090/REMOTING" />

この書き換えで、次のように設定が変わります。

なお、このファイル app.config は、プロジェクト CentralMain の app.config にもリンクしていますので、こちらの内容も同時に書き換えられています。つまり、書き換えは一度行うだけですが、2 つのプロジェクトの設定を変更していることに留意してください。

(2) セキュリティ設定の変更

続いて、同じく app.config ファイルで、次の箇所を探してください。

<add key="EnsureSecurity" value="False" />

これを編集し、次のように書き換えます。青太字で表示されているのが書き換える部分です。

<add key="EnsureSecurity" value="True" />

この書き換えで、次のように設定が変わります。

(3) 実行確認

HTTP チャネルでの実行 - 実行確認の場合同様、ビルド後に実行してください。CentralMain はユーザ認証無しの場合と同様に起動しますが、ローカル・アプリケーションのウィンドウが表示される前に、ログインウィンドウが表示されます。

ユーザ名とパスワードの欄には、Windows OS へのログイン時に使用している値と同じものを入力してください。ユーザ認証が行われ、ローカルピースのアプリケーションが起動されます。

IIS にホストされた .NET リモート処理方式

IIS にホストされた .NET リモート処理方式での実行を設定します。

(1) CentralMain の削除

まず、CentralMain プロジェクトが不要になりますのでこれをソリューションから削除します。ソリューションエクスプローラのウィンドウで CentralMain プロジェクトをクリックして選択状態とし、メニューバーから 編集(E) - 削除(V) とクリックします。削除を確認するメッセージボックスが表示されたら OK ボタンをクリックしてください。

(2) CentralWeb の追加

CentralMain プロジェクトに代わって、ソリューションに Web サイト CentralWeb を追加します。メニューバーから ファイル(F) - 追加(D) - 新しい Web サイト(W) をクリックしてください。「新しい Web サイトの追加」というダイアログボックスが表示されます。


(クリックすると原寸大の図が登場します)

OK ボタンをクリックすると、ソリューションに新しい Web サイトが追加されます。このプロジェクトに対して必要な設定などを行います。

(3) Web サイト 構成ファイルの追加

web.config ファイルを既定のものから置き換えます。セントラルピース・ホスティングのための標準的な web.config ファイルが MANDALA.net をインストールしたフォルダに用意されていますので、これを使用するようにします。

ソリューションエクスプローラのウィンドウで CentralWeb サイトをクリックして選択し、Visual Studio のメニューバーから Web サイト(S) - 既存項目の追加(G) をクリックしてください。ファイル選択ダイアログボックスが表示されますので、次のファイルを指定します。

(MANDALA.net をインストールしたディレクトリ)\web.config

すでに存在しているメンバと置き換えるか確認するダイアログボックスが表示されますので、置き換えを容認するように回答します。

(4) Web サイト 参照の設定

Web サイトが参照するアセンブリを設定します。ソリューションエクスプローラのウィンドウで CentralWeb サイトをクリックして選択し、Visual Studio のメニューバーから 表示(V) - プロパティページ(Y) をクリックしてください。Web サイトのプロパティページが表示されますので、左側のペインで「参照設定」ノードをクリックしてください。


(クリックすると原寸大の図が登場します)

参照の追加ボタンをクリックするとダイアログボックス「参照の追加」が表示されますので、CentralMain の場合と同じ要領で、MANDALA.net をインストールしたフォルダから AppliTech.Remoting8.dll および AppliTech.WorkFrame8Cnt.dll の 2 つのアセンブリを指定して OK ボタンをクリックします。

(5) Web サイト 開始オプションの設定

Web サイトの振る舞いについて設定します。ソリューションエクスプローラのウィンドウで CentralWeb サイトをクリックして選択し、Visual Studio のメニューバーから 表示(V) - プロパティページ(Y) をクリックしてください。Web サイトのプロパティページが表示されますので、左側のペインで「開始オプション」ノードをクリックしてください。


(クリックすると原寸大の図が登場します)

「開始動作」グループの「ページを開かずに外部アプリケーションからの要求を待つ」項目と、「サーバー」グループの「NTLM 認証」項目の 2 つをクリックしてオン状態にし、OK ボタンをクリックします。

(6) セントラルプロジェクトのビルド出力設定

セントラルプロジェクトのアセンブリが、Web サイトの bin フォルダに出力されるように設定します。ソリューションエクスプローラのウィンドウでセントラルピースのプロジェクト MyComputerCnt をクリックして選択し、Visual Studio のメニューバーから プロジェクト(P) - MyComputerCnt のプロパティ(P) をクリックします。プロパティページが表示されます。

VB の場合、「コンパイル」タブをクリックしてコンパイル情報のページを表示してください。

図のようにアクティブ構成が Debug になっていることを確認したうえで、ビルド出力パスを次のように入力します。

CentralWeb\bin\

C# の場合、「ビルド」タブをクリックしてビルド情報のページを表示してください。

アクティブ構成が Debug になっていることを確認したうえで、ビルド出力パスを次のように入力します。

CentralWeb\bin\

(7) スタートアップオブジェクトの設定

実行指示を与えたときに動作するスタートアッププロジェクトを指定します。ソリューションエクスプローラのウィンドウでソリューション MyComputer をクリックして選択し、Visual Studio のメインメニューで プロジェクト(P) - プロパティ(P) とクリックしてソリューションのプロパティページを表示させます。ここでスタートアッププロジェクトを「マルチスタートアップ プロジェクト」と設定し、CentralMain プロジェクトおよび MyComputerLcl プロジェクトのアクションを「実行」に設定して、OK ボタンをクリックします。


(クリックすると原寸大の図が登場します)

(8) アドレスの設定

プロジェクト MyComputerLcl の Customize フォルダにあるファイル app.config を開き、次の箇所を探してください。これは TCP チャネルでの実行を行う際に書き換えた値になっているものです。

<add key="CentralServerURL" value="tcp://localhost:9090/REMOTING" />

これを編集し、次のように書き換えます。青太字で表示されているのが書き換える部分です。

<add key="CentralServerURL" value="http://localhost:8080/CentralWeb/Communicator.rem" />

この書き換えで、次のように設定が変わります。

(9) ポート番号の設定

デバッグ用 Web サーバが待ち受けに使用するポート番号を設定します。ソリューションエクスプローラのウィンドウで CentralWeb サイトをクリックして選択し、Visual Studio のメニューバーから 表示(V) - プロパティウィンドウ(W) をクリックしてください。

(10) 実行確認

HTTP チャネルでの実行 - 実行確認の場合同様、ビルド後に実行してください。今度は CentralMain は起動しません(プロジェクを削除したので当然ですが)。

TCP チャネルでの実行 - 実行確認の場合同様、ログイン情報入力ダイアログボックスが表示されますので、同じように Windows にログインするために使用するユーザ情報を入力します。

CentralMain が見えない状態でもローカルピース・アプリケーションは正しく起動されているのが確認できます。CentralMain に代わって、デバッグ用 Web サーバがホスティングを行い、セントラルピースとの通信が正常に行われているためです。

HTTP ダイレクト方式

HTTP ダイレクト方式を使用してアプリケーションを実行する方法を説明します。前節で IIS にホストされた .NET リモート処理方式のための設定を行いましたが、HTTP ダイレクト方式のための設定は、大部分がこれと重複します。

ここでは、前節と異なる部分についてのみ説明します。

(1) コンパイル定数の設定

HTTP ダイレクト方式であることを示すために、ローカルピースのプロジェクトでコンパイル定数を設定します。ソリューションエクスプローラのウィンドウでローカルピースのプロジェクト MyComputerLcl をクリックして選択し、Visual Studio のメニューバーから プロジェクト(P) - MyComputerLcl のプロパティ(P) をクリックします。プロパティページが表示されます。

VB の場合、「コンパイル」タブをクリックしてコンパイル情報のページを表示します。ページの最も左上にある項目「構成」を「すべての構成」に設定した後で、詳細コンパイルオプションボタンをクリックします。「ビルドの詳細設定」ダイアログボックスが表示されますので、「カスタム定数」欄に HttpDirect=True という宣言を追加します。先に定義されている定数との間にはカンマを記述して区切ってください。

OK ボタンをクリックして設定を確定します。

C# の場合、「ビルド」タブをクリックしてビルド情報のページを表示します。ページの最も左上にある項目「構成」を「すべての構成」に設定した後で、「全般」グループの「条件付きコンパイル シンボル」欄に HttpDirect という宣言を追加します。先に定義されている定数との間には空白文字を記述して区切ってください。

(2) 実行確認

プロジェクト MyComputerLcl の Customize フォルダにあるファイル app.config を開き、次の箇所を探してください。これは IIS にホストされた .NET リモート処理方式設定時に書き換えた値になっているものです。

<add key="CentralServerURL" value="http://localhost:8080/CentralWeb/Communicator.rem" />

これを編集し、次のように書き換えます。青太字で表示されているのが書き換える部分です。

<add key="CentralServerURL" value="http://localhost:8080/CentralWeb/AppRequest.appmsg" />

この書き換えで、次のように設定が変わります。

(3) 実行確認

実行方法、および実行の状態については IIS にホストされた .NET リモート処理方式 - 実行確認の場合とまったく同様です。