MANDALA.net 2008 V9 のスタートアップ (AS602532)

このドキュメントは、“AppliTech MANDALA.net 2008 V9”というソフトウェアに初めて出会う方々のために書かれたもので、 見て触れて操作しながら理解を深める遊歩道をご案内するものです。

このドキュメントでは、 MANDALA.net 2008 V9 のセットアップが済んでいることを前提としています。もしも、 まだならば、 まずは別のドキュメント 「MANDALA.net 2008 V9 のセットアップ」 を参照して、 セットアップを済ませてください。

目次

このドキュメントは、 MANDALA.net の概要から始めて、その操作方法、およびこれで開発したアプリへという順に説明しています。

 

1.MANDALA.net とは

2.各種のプログラムアイコンとその操作
 2.1 MANDALA.net マニュアル
 2.2 MANDALA.net バッチ
 2.3 MANDALA.net コード合成

3.合成したプログラムの実行テスト

 


以上は目次ですが、この中には次の事柄が書いてあります。

MANDALA.net の主な構成要素について

 

[1] バッチツール

[2] コード合成ツール

[3] 実動フレームワーク

 


主なトピック

 

☆ ワンピーススタイルとツーピーススタイル

☆ プロジェクトとソリューション

☆ アプリ開発者

☆ フックメソッド

☆ ヘッド部、 ボディ部、 テール部

☆ スムーズにコード合成の指示をするためのヒント

☆ MANDALA アプリケーションプログラムの操作性の特徴

☆ サンプルアプリ Tokui3 の特徴

☆ サンプルアプリ Jutyu2 の特徴

 


各種の操作方法の詳しいご説明

 

(a) バッチツールの操作方法 (ワンピース)

(b) バッチツールの操作方法 (ツーピース)

(c) バッチツールの操作方法 (ワンピースおよびツーピース混在)

(d) コード合成の操作方法 (ワンピース)

(e) フォームの画面レイアウトを表示する操作方法

(f) フッククラスを表示する操作方法

(g) コード合成の指示をする操作方法

(h) 生成されたコードを表示する操作方法

(i) 合成されたプログラムのデバッグを開始する操作方法

(j) コード合成の操作方法 (ツーピース)

(k) ダイアログ画面オプションを登場させる操作方法

(l) 複数のフォームからなるプロジェクトに関する一括の解析・合成の操作方法

(m) 複数のフォームからなるプロジェクトにおける各フォームの解析・合成の操作方法

(n) コード合成の操作の練習

(o) サンプルアプリ Tokui3 の操作方法

(p) サンプルアプリ Jutyu2 の操作方法

(q) 1 台のパソコンでのツーピースアプリの実行テスト

(r) 2 台のパソコンでのツーピースアプリの実行テスト

(s) 新規プロジェクトに関するコード合成の操作方法

(t) 新規プロジェクトに関する実行テスト

(u) フックメソッド追加済みのプロジェクトに関する実行テスト

(v) フックメソッド追加とその効果の確認

 




1.MANDALA.net とは


MANDALA.net は、 業務アプリケーションプログラムを開発する際のご支援をするものです。アプリ開発者の方々と MANDALA.netとは、 以下の作業分担をすることにより協調的に仕事をして、 業務アプリケーションプログラムを完成させます。


          アプリ開発者との分業

アプリ開発者と MANDALA の分業



アプリ開発者の方々の主な仕事は、 次の二つです。

 

  1.  VS2008 のデザイナでの“画面レイアウトのデザイン”というロジックが一切含まれない比較的に簡単な作業、 および
  2.  VB/C# での“ビジネスロジックのプログラミング

 

アプリ開発者の方々は制御に関するプログラムを記述する必要がありません。なぜなら、 MANDALA.net実動フレームワークが、 業務プログラムの操作や処理の流れに沿ったフックメソッドの呼出し制御や動作モードの管理、 HTTP プロトコルによる通信制御などを司るからです。したがって、 十分にテストされた実動フレームワークを使うことになり、 初めから高い品質が確保でき、 高い生産性が約束されます。


各種のプログラムを“合成して仕上げる”という作業も MANDALA.net が責任をもって行います。ここで“責任をもって”という意味は、 MANDALA.net が機械生成したソースコードには、 手を入れることが全く不要だという意味です。


要約すると、 画面レイアウトとビジネスロジックを MANDALA.net に渡し、 各種パラメタの指定とコード合成の指示をすれば、 後は MANDALA.net が働いて、 10 秒ほどで実際に動作する業務アプリケーションプログラムに仕立て上げてくれます。ですから、 すぐに動作することになるので、 即テストを始められます。


さらに、 画面レイアウトやビジネスロジック (プログラム) を修正したときにも MANDALA.net は大活躍します。修正した画面レイアウトおよびビジネスロジックを MANDALA.net に渡してコード合成の指示をすれば、 後は MANDALA.net が働いて、 実際に動作する業務アプリケーションプログラムに仕立て直してくれます。


これらのことによって、 アプリ開発者の方々の負荷は、 大幅に軽減されます。


さあ、 コード合成ツールフレームワークを活用した開発を楽しみましょう。

コード合成ツールとフレームワーク

    コード合成ツール             フレームワーク



MANDALA.net での開発を経験されると分かることですが、 ビジネスロジックは、 再利用性が高くなるよう工夫された形態 (部品と呼ぶのに相応しい塊) になるので、 部品が溜まれば溜まるほど、 新たにビジネスロジックのプログラミングをする必要がなくなり、 さらに生産性が高まります。なお、 ビジネスロジックは、 混じりもののない純粋な VB/C# でプログラミングするのですが、 どのような塊にするのかなどは、 あらかじめ決められている形式に合わせることが必要です。こうすることで、 標準化が進みますし、 MANDALA.netコード合成ツールがビジネスロジック部品をそれと認識できるようになり、 協調的な開発が可能になります。


◆ 旧版 MANDALA V6と比較して

MANDALA.net 2008 V9 は、 基幹系業務アプリケーションプログラム開発向けのツールとして数多くの販売実績を誇る Visual Basic 6.0 対応の MANDALA V6 の後継製品であり、 .NET プラットフォーム上で動作する高品質の業務アプリケーションプログラムを高い生産性で開発できるようにしたものです。

.NET プラットフォームの特徴の一つとして、 ネットワークをまたにかけて活躍するプログラムにしやすいという点が挙げられます。MANDALA.net 2008 V9 で開発した業務アプリケーションプログラムは、 この特徴を生かして、 インターネットやイントラネットなど HTTP プロトコルで通信しあう Web 対応のプログラムにすることもできます。このために、 ワンピーススタイルおよびツーピーススタイルという二つの形態をサポートして、 同一のプログラムをどちらの形態にもできる (生成時の指示で選べる) ようにしました。

.NET プラットフォームのもう一つの特徴として、 継承などのオブジェクト指向の機能がフルにサポートされている点が挙げられます。MANDALA.net 2008 V9 で開発した業務アプリケーションプログラムは、 この特徴を生かして、 差分プログラミングを活用することで、 新たにビジネスロジックのプログラミングが必要とする場合においても、 そのプログラミング量を従来よりもさらに少なくできるようにしました。

最近、 リッチクライアントが見直されてきましたが、 MANDALA シリーズは以前からここを中心に支援してまいりました。MANDALA.net 2008 V9 はここだけでなく、 リッチクライアントに対応するサーバ側のプログラムの開発までも支援する総合システムです。たとえば、 クライアント側でレスポンシブな応答をしようとすると、 それに対応するためのサーバ側のプログラムにそれ相当の配慮が求められます。サーバ側のこうした点までも含めて MANDALA.net 2008 V9 は総合的な支援を行うので“リッチクライアント(スマートクライアント)の Web システム”を簡単に構築することができます。なお、 これは一般のブラウザベースの Web システムでは実現することが大変に難しかったものです。



2.各種のプログラムアイコンとその操作


MANDALA.net 2008 V9 がセットアップ済みならば、 スタートメニューの延長上のメニュー“すべてのプログラム(P)”の先に“AppliTech MANDALA.net 2008 V9”というアイコングループが存在して、 この中に幾つかのツールを収めた MANDALA.net ツールというフォルダ、 および次の三つのプログラムアイコンが見つかります。


MANDALA コード合成ツール MANDALA.net コード合成

MANDALA バッチ MANDALA.net バッチ

MANDALA マニュアル MANDALA.net マニュアル


これらをクリックすることによって、 それぞれを起動することができます。このドキュメントの説明に従って、 下から上に順番に (マニュアル、 バッチ、 コード合成の順に) 試してみることにします。ただし、 次ページの VB および C# に関する説明上のご注意をご覧いただいた後に、 試していくことにします。


◆ ショートカット

MANDALA.net コード合成ツールなどの起動操作を素早くしたければ、 以下のようにしてそれぞれのショートカットを作成して、 デスクトップ上に配置おくとよいでしょう。こうすれば、 それぞれのショートカットをクリックするだけで、 起動できるので、 スピーディな操作になります。


ショートカット

 

ショートカットの作成方法

 

 ショートカットを作成するには、 Windows エクスプローラで以下のそれぞれのファイル名を表示してクリックして反転表示にしてから、 マウスの右クリックで現れるメニュー“ショートカットの作成(S)”をクリックします。すると、 Windows エクスプローラの画面の中にショートカットが作られますから、 それをドラッグアンドドロップ操作でデスクトップ上に配置します。

 

 ・ MANDALA.net コード合成: C:\Mandala9\Automator8.exe

 ・ MANDALA.net バッチ:   C:\Mandala9\MandalaB8.exe

 ・ MANDALA.net マニュアル: C:\Mandala9\Manual8.exe

 



◆ ファイルのパスの記述などに関するご注意

このドキュメントでは MANDALA.net 2008 V9C:\Mandala9 というフォルダにインストールされたものとして説明してあります。これ以外のフォルダにインストールなさった場合には、 C:\Mandala9 と書いてあるところを実際のインストール先フォルダに読み替えて、 この後の各種の操作を行ってください。


このドキュメントでは、 Visual Studio 2008 のことを VS2008 と省略しています。また、 Visual Basic .NET のことを VB と省略し、 Visual C# のことを C# と省略しています。そして、 VB および (または) C# のことを VB/C# という総称名で指し示しています。


◆ VB および C# に関する説明上のご注意

このドキュメントは、 VB および C# の両方を対象にしており、 サンプルプログラムなども、 どちらか一方に偏ることなく、 VB 向けのものと C# 向けのものの両方を取り揃えています。しかし、 説明の中では、 サンプルプログラムのファイル名など VB 用の資材だけを指し示しているところがあります。したがって、 C# をお使いになる方々は、 サンプルプログラムのファイル名などを読みかえることが必要です。読みかえのルールは以下のとおりです。


 (1) 拡張子 vbproj は VB のプロジェクトファイル用なので、 C# 向けには拡張子を csproj と読みかえる。


例:

Jutyu1.vbproj      ⇒   Jutyu1.csproj

Jutyu2Lcl.vbproj   ⇒   Jutyu2Lcl.csproj

Spec2.vbproj       ⇒   Spec2.csproj

Spec2Lcl.vbproj    ⇒   Spec2Lcl.csproj

Tokui3.vbproj      ⇒   Tokui3.csproj

@newTest2.vbproj   ⇒   @newTest2.csproj


 (2) 拡張子 vb は VB のモジュール用なので、 C# 向けには cs と読みかえる。


例:

受注コード.vb         ⇒   受注コード.cs

受注業務.vb           ⇒   受注業務.cs

受注業務FormBase.vb   ⇒   受注業務FormBase.cs

Ae_MsgL8.vb           ⇒   Ae_MsgL8.cs

Form1.vb              ⇒   Form1.cs

HIDUKE.vb             ⇒   HIDUKE.cs


 (3) フォルダ \Vb は VB 関係のファイルを収めたものなので、 C# 向けには \Cs と読みかえる。


例:

C:\Mandala9\Vb\xxxx   ⇒   C:\Mandala9\Cs\xxxx




MANDALA マニュアル

2.1 MANDALA.net マニュアル

プログラムアイコン MANDALA.net マニュアルをクリックすると、 マニュアルの内容が表示されます。


マニュアルの主なものとして次の6つがあり、 すべて HTML 形式のマニュアルになっています。

 

 


このスタートアップをご覧になってウォーミングアップをした後に、 入門の手引きを参考にして MANDALA.net の習得をしていくことをお勧めいたします。


各マニュアルの左フレームには目次があり、 右フレームには本文があります。そして、 左フレームの上部 (下図の赤枠の部分) には、 他のマニュアルへのリンクがあります。 ここには、入門の手引きを取り上げてご説明していますが、 どのマニュアルの左上部も同じ形になっています。


 MANDALA 入門の手引き


他のマニュアルを見たいときには、 左フレーム上部の他のマニュアルへのリンクをクリックしてください。すると、 そのマニュアルの目次が左フレームに表示されます。なお、 マニュアルの本文中のリンクをクリックすることによって、 一時的に他のマニュアルの本文が右フレームに表示されることがありますが、 この場合、 左フレームの目次は変化しません (元のマニュアルの目次が表示されています)。


現マニュアルと他のマニュアルを並べて見たいときなどには、 マニュアルを何冊でも表示できます。通常の左クリックではなく、 他のマニュアルへのリンクを右クリックしてから、 新しいウィンドウで開く(N) をクリックしてください。こうすると、 元のマニュアルの表示に加えて、 指定のマニュアルが登場してきます。


ご案内ですが、 本ソフトウェアには MANDALA.net の基礎となる理論などを説明した 「ビジネスロジック部品」 という参考図書が添付されています。各マニュアルのはじめにからリンクされていますので、 マニュアルと合わせてご参照ください。




MANDALA バッチ

2.2 MANDALA.net バッチ


プログラムアイコン MANDALA.net バッチをクリックすると、 バッチツールが起動され、 バッチファイル (拡張子 bfl) を選択するようにうながされます。


 バッチファイル選択


そこで、 ダイアログバッチファイルの指定に対して BatchOne.bfl を選択してから、 ボタン開く(O) をクリックしてみましょう。

ご注意ですが、 Visual Basic 2008 Express Edition または Visual C# 2008 Express Edition をお使いの場合、 バッチ機能は使えません。


 

(a) バッチツールの操作方法 (ワンピース)

 

  1. プログラムアイコン MANDALA.net バッチをクリックしバッチツールを起動します。
  2. ダイアログバッチファイルの指定でファイル C:\Mandala9\BatchOne.bfl を選択して、 ボタン開く(O) をクリックします。
  3. 表示されたログ BatchOne.log を見て、 エラーのないことを確認します。
    ★ なお、 コード合成ツールなどからの詳細ログ MANDALA.log も表示されます。

 


この操作をすると、 サンプルアプリのワンピースソリューション群のそれぞれに関するコード合成が次々と行われる様子を見ることができます。バッチツールがバッチファイルの指示に従ってコード合成ツールを何回か呼び出して、 コード合成を行わせているのです。

ひと通りコード合成が済むと、 バッチツールは今度は VS2008 を何回か呼び出して、 ワンピースソリューション群のそれぞれに関するビルド処理を行わせます。


バッチファイルで指示されたすべての処理が終わると、 ログが表示されます。

一連の処理の概要を知るには、 ログファイル BatchOne.log をご覧ください。

一連のコード合成処理およびビルド処理の詳細を知るには、 ログファイル MANDALA.log をご覧ください。

なお、 ログをご覧になった後は、 ログを表示しているメモ帳を閉じてください。


◆ ワンピーススタイルとツーピーススタイル

サンプルアプリ中にはワンピースプロジェクト群とツーピースプロジェクトペア群が含まれています。いま対象にしたのは、 前者です。


  ワンピーススタイル            ツーピーススタイル

 

☆ ワンピース (ひと塊)、 およびツーピース (ローカルピースセントラルピース)

 

 ワンピーススタイルの場合は、 業務プログラムが一つの塊となりますが、 ツーピーススタイルの場合は、 業務プログラムがローカルピース (Lcl)セントラルピース (Cnt) の二つから構成されることになります。

 注目: 同一のプログラムをワンピーススタイルにもツーピーススタイルにもすることができるので、 インターネットやイントラネットを始めとする様々なシステムを構築する際に、 自由度が広がり、 より適切なシステム構成を選択することができます。

 

 ワンピーススタイルでは、 次のシステムを構築することができます。

 

 ・ スタンドアローンのシステム

 ・ ローカルシステムとデータベースサーバとを組み合わせた2階層システム

 ・ サーバ側に MetaFrame または WTS など用いた2階層システム

 ・ 前行のシステムとデータベースサーバとを組み合わせた3階層システム

 

 ツーピーススタイルでは、 次のシステムを構築することができます。

 

 ・ ローカルシステムとビジネスロジックサーバからなる2階層システム

 ・ 前行のシステムとデータベースサーバとを組み合わせた3階層システム

 

 ワンピースプロジェクトなのかツーピースプロジェクトなのかは、 プロジェクトに関するある規約によって決まります。ワンピースプロジェクトに対してコード合成の指示をするとワンピース向けの合成用のプログラムコードが生成されます。同様に、 ツーピースプロジェクトペアに対しては、 ツーピース向けの合成用のプログラムコードが生成されます。

 なお、 ツーピースプロジェクトペアとは、 ローカルプロジェクトとセントラルプロジェクトの二つを意味します。したがって、 ツーピース向けの合成用のプログラムコードとは、 ローカルピースおよびセントラルピース向けのプログラムコード群のことです。

 


◆ ツーピースソリューションペア群を対象にバッチ処理

少し前にワンピースソリューション群を対象にしてバッチ処理をしたので、 次はツーピースソリューションペア群を対象にバッチ処理をしてみましょう。

プログラムアイコン MANDALA.net バッチをクリックしてバッチツールを起動してから、 ダイアログバッチファイルの指定BatchTwo.bfl を選択して、 ボタン開く(O) をクリックします。今回は BatchOne.bfl ではなく、 BatchTwo.bfl を選択してください。


 

(b) バッチツールの操作方法 (ツーピース)

 

  1. プログラムアイコン MANDALA.net バッチをクリックしバッチツールを起動します。
  2. ダイアログバッチファイルの指定でファイル C:\Mandala9\BatchTwo.bfl を選択して、 ボタン開く(O) をクリックします。
  3. 表示されたログ BatchTwo.log を見て、 エラーのないことを確認します。
    ★ なお、 コード合成ツールなどからの詳細ログ MANDALA.log も表示されます。

 


この操作をすると、 サンプルアプリのツーピースプロジェクトペア群のそれぞれに関するコード合成が次々と行われる様子を見ることができます。このときにコード合成ツール画面に赤いスタイル表示があることにご注意ください。そして、 コード合成が済むと、 バッチツールは次に VS2008を何回か呼び出して、 ツーピースソリューション群のそれぞれに関するビルド処理を行わせます。


バッチファイルで指示されたすべての処理が終わると、 ログが表示されます。

概要はログファイル BatchTwo.log (今回は BatchOne.log ではありません) に、 詳細はログファイル MANDALA.log にログされます。


ここで注意深くみていただきたいのですが、 ツーピースプロジェクトペアに関するコード合成は、 ローカルプロジェクトおよびセントラルプロジェクトに関して一括して一度に処理されてしまいます。しかし、 ビルドは、 ローカルソリューションおよびセントラルソリューションのそれぞれに関して別々に処理されます。


 

☆ プロジェクトとソリューション

 

 Visual Studio の中で使うプロジェクトという言葉は“開発プロジェクト”というような意味ではありません。このプロジェクトの意味は“幾つかのモジュールから構成されたプログラム”に近いと考えてください。実際にプロジェクトとは、 言わば、 幾つかのモジュールを集めた“モジュールの集合”であり、 このプロジェクトという単位ごとにビルド処理がなされて exe または dll になります。逆にみると、 一つの exe または dll を構成するモジュールの集合がプロジェクトだといえます。

 

 なぜソリューションという意識が必要なのか: ソリューションとは、 旧 Visual Basic におけるプロジェクトグループのことです。VS2008 では (VS2005 も同様ですが) 共通的なプログラムを簡単に dll にできるようになりました。そこで、 dll 化したい共通的なプログラムを別プロジェクトに分離して、 同一のソリューションに組み込んで開発する使い方がよくなされます。したがって、 従来はあまり使われていなかったプロジェクトグループ、 すなわちソリューションという単位を頻繁に用いることになります。

 

 旧 Visual Basic においては、 プロジェクトグループを開くことは稀で、 通常はプロジェクトを開いて開発作業を行っていました。しかし、 VS2003 からは、 必ずプロジェクトグループ、 すなわちソリューションを開いて、 開発作業を行うことになりました。そして、 VS2005 および VS2008 においては、 より戻しがあり、 一つのプロジェクトから構成されるソリューションは、 ソリューションを意識する必要がなくなりました。

 これは初心者にはよいことかもしれませんが、 ソリューションを使うことが中心の熟練者には、 ソリューションを開くつもりが、 誤ってプロジェクトを開くという操作ミスを誘発することになりました。その上、 VS2008 においては、 ソリューションを開く操作を「プロジェクトを開く(P)」と呼ぶことになったので混乱しますが、 プロジェクトを開くと名づけられた操作では、 「ソリューションを開くことにするのだ」と肝に銘じてください。このことを確実にして、 操作ミスを避けるためには、 プロジェクトを開くというダイアログボックスが登場したら、 ファイルの種類(T) の欄を「ソリューションファイル(*.sln)」という設定にしてから操作することをお勧めいたします。

 

 なお、 MANDALA.net 2008 V9 においては、 プロジェクトを指定してコード合成の指示をします。ソリューションを指定するのではありません。

 


ここまでで、 ワンピースソリューション群、 およびツーピースソリューションペア群を対象にしたバッチ処理を行いました。バッチ処理自体は、 ワンピースでもツーピースでも特に変わりないことがお分かりいただけたと思います。外部から違いが見えるのは、 コード合成ツール画面の中の (ワンピースツーピースかの) スタイル表示ぐらいです。


MANDALA バッチ [1] バッチツール

 

バッチツール

 

 バッチツールは、 バッチファイル (拡張子 bfl) をインプットとして読み込み、 その中のコマンドの列に従って、 次々と処理を実施します。たとえば、 コード合成ツールによるコード合成、 および VS2008 によるビルド処理などを自動的に次々と実施します。

 

 バッチツールは、 業務プログラムの開発フェーズで使われます。

 

バッチツールの効用: バッチツールは、 通常は手作業で行う“コード合成のための指示”や“ビルド処理の指示”を機械化します。

 

 このバッチツールに関係して、 [2] コード合成ツール および [3] 実動フレームワーク もご覧ください。

 



◆ ワンピースとツーピースソリューションペア群混在のバッチ処理

バッチ操作の練習の最後として、 ワンピースソリューション群とツーピースソリューションペア群の両方を対象にしてバッチ処理をしてみましょう。

プログラムアイコン MANDALA.net バッチをクリックしてバッチツールを起動してから、 ダイアログバッチファイルの指定BatchAll.bfl を選択して、 ボタン開く(O) をクリックします。


 

(c) バッチツールの操作方法 (ワンピースおよびツーピース混在)

 

  1. プログラムアイコン MANDALA.net バッチをクリックしバッチツールを起動します。
  2. ダイアログバッチファイルの指定でファイル C:\Mandala9\BatchAll.bfl を選択して、 ボタン開く(O) をクリックします。
  3. 表示されたログ BatchAll.log を見て、 エラーのないことを確認します。
    ★ なお、 コード合成ツールなどからの詳細ログ MANDALA.log も表示されます。

 


この操作をすると、 サンプルアプリのツーピースプロジェクトペア群のそれぞれに関するコード合成が次々と行われる様子を見ることができます。そして、 コード合成が済むと、 バッチツールは VS2008を何回か呼び出して、 ツーピースのローカル・セントラル双方のソリューションに関するビルド処理を行わせます。

コード合成ツール画面の中のワンピースツーピースかのスタイル表示に注目して処理の様子をご覧ください。

ツーピースプロジェクトペア群に関する処理が終わると、 バッチツールは次にサンプルアプリのワンピースプロジェクト群に関するコード合成を行わせます。そして、 コード合成が済むと、 バッチツールは今度は VS2008を何回か呼び出して、 ワンピースソリューション群に関するビルド処理を行わせます。


バッチファイルで指示されたすべての処理が終わると、 ログが表示されます。

概要はログファイル BatchAll.log に、 詳細はログファイル MANDALA.log にログされます。



プロジェクトトリオ

◆ プロジェクトトリオ

MANDALA.net 2008 V9 においては、 .NET プラットフォームの特徴を生かして、 ネットワークをまたにかけて活躍するプログラムを開発できるように、 ワンピーススタイルおよびツーピーススタイルという二つの形態をサポートしています。そして、 同一のプログラムをどちらの形態にも簡単に変換できるようにしてあります。

このために、 ワンピースプロジェクト、 およびツーピースプロジェクトペア (すなわちローカルプロジェクトおよびセントラルプロジェクト) という三つのプロジェクト (プロジェクトトリオ) 構成にすることをお勧めしています。


トリオ構成しておくと、 ワンピース・ツーピースどちらの形態にすることも戻すことも簡単です。すなわち、 ワンピースプロジェクトに関するコード合成処理の指示をすると、 ワンピーススタイルになります。そして、 ローカルプロジェクトに関するコード合成の指示をすると、 ローカルおよびセントラル両プロジェクトのコード合成処理が一括してなされ、 ツーピーススタイルになります。


ここでちょっとしたご注意ですが、 ワンピーススタイルにした状態では、 ローカルソリューションやセントラルソリューションをビルドするとエラーが発生してしまいます。逆に、 ツーピーススタイルにした状態では、 ワンピースソリューションをビルドするとエラーが発生してしまいます。

したがって、 ワンピースソリューションをビルドする前には、 ワンピースプロジェクトに関するコード合成処理をして、 ワンピーススタイルにすることが必要です。同様に、 ローカルソリューションおよびセントラルソリューションをビルドする前には、 ローカルプロジェクトに関するコード合成の指示をして、 ツーピーススタイルにすることが必要です。


先ほど、 ワンピースソリューション群とツーピースソリューションペア群の両方を対象にしてバッチ処理を実施しました。そこでは、 プロジェクトトリオを構成するプロジェクト群に対して、 最初はローカルプロジェクトに関するコード合成の指示をすることで、 ツーピーススタイルにしました。しかし、 その後にワンピースプロジェクトに関するコード合成処理の指示をしたので、 ワンピーススタイルになりました。このように、 ワンピースかツーピースかということは、 最後に実施したコード合成がどちらのものだったかによって決まります。


アプリ開発者

 

☆ アプリ開発者

 

 MANDALA.net 2008 V9 の通常のユーザは、 業務アプリケーションプログラムを開発する人々です。なお、 こうした人々のことをアプリ開発者と呼ぶことがあります。

 一般にアプリ開発者は、 普通のパソコンの利用者に比べて、 コンピュータやソフトウェアに関する深い知識と技量を持っています。MANDALA.net 2008 V9 をお使いになるアプリ開発者は、 特に VS2008 に関する操作を習熟していて、 かつ VB/C# によるプログラミングができることを前提としています。

 MANDALA.net 2008 V9 をお使いになるアプリ開発者の主な作業は、 以下のとおりです。

 

 (1) 業務プログラムの画面レイアウトVB/C# のデザイナでデザインする

 (2) 業務に関するプログラムビジネスロジック部品VB/C# でプログラミングする

 (3) MANDALA.net コード合成ツールに指示を与えて合成する

 (4) 合成した業務プログラムを実行させてテストする

 

 ここでは、 (1), (2), (3) を業務プログラムの開発フェーズと呼び、 (4) を業務プログラムの実行テストフェーズと呼びます。

 

 なお、 このスタートアップにおいては、 (1) および (2) の作業を省略していますが、 それにもかかわらず、 見て触れて操作しながら MANDALA.net 2008 V9 の理解を深めることができるように工夫されています。

 





MANDALA コード合成ツール

2.3 MANDALA.net コード合成


バッチツールでは、 複数のプロジェクトを一括して処理しましたが、 ここでは一つのプロジェクトを取り上げて MANDALA.net コード合成ツールによるコード合成処理を行い、 その様子を詳しく見ることにします。


プログラムアイコン MANDALA.net コード合成をクリックすると、 コード合成ツールが起動され、 プロジェクトファイル (拡張子 vbproj または csproj) を選択するようにうながされます。


 プロジェクトファイル選択


ここでワンピースプロジェクトを指定すると、 コード合成ツールはそのプログラムコードを解析して、 アプリ開発者からの指示を待ちます。そして、 コード合成の指示を受けると、 そのワンピースプロジェクトに関するコード合成処理を開始します。こうしてワンピーススタイルの合成処理がなされます。

ここでローカルプロジェクトを指定すると、 コード合成ツールはそのプログラムコードを解析して、 アプリ開発者からの指示を待ちます。そして、 コード合成の指示を受けると、 そのローカルプロジェクトおよびセントラルプロジェクトの双方に関するコード合成処理を開始します。こうしてツーピーススタイルの合成処理がなされます。


ちなみに、 ここでセントラルプロジェクトを指定すると、 以下のメッセージボックスが表示されて、 ローカルプロジェクトを選択してくださいとの案内がなされます。したがって、 セントラルプロジェクトを指定することはできません。


    セントラルプロジェクトファイル選択



◆ (コード合成に先立ち) 解析処理を行わせるための指示

最初の操作練習として、 ワンピースプロジェクトを指定してみましょう。

プログラムアイコン MANDALA.net コード合成をクリックしてコード合成ツールを起動してから、 ダイアログプロジェクトの選択Jutyu1.vbproj を選択して、 ボタン開く(O) をクリックします。

なお、 対象のプロジェクトファイル Jutyu1.vbproj は、 インストール先フォルダの配下のフォルダ C:\Mandala9\Vb\Jutyu1 の中にあります。


 

(d) コード合成の操作方法 (ワンピース)

 

  1. プログラムアイコン MANDALA.net コード合成をクリックしコード合成ツールを起動します。
  2. ダイアログプロジェクトの選択でファイル C:\Mandala9\Vb\Jutyu1\Jutyu1.vbproj を選択し、 ボタン開く(O) をクリックします。
  3. ダイアログフックメソッドとみなされないメソッド一覧に対しては、 ボタン OK をクリックします。
  4. コード合成ツールのメイン画面が登場したら、 ボタンコード合成をクリックします。
    コード合成 ← ツールバーの右端がボタンコード合成です。
    またはメニュー [操作(O)] の中の [コード合成(S)] をクリックします。
  5. コード合成ツールからのログ MANDALA.log を表示し、 確認します。

 


この操作をすると、 Jutyu1.vbproj というワンピースプロジェクトに関するコード合成が行われる様子を見ることができます。

コード合成ツールは、 指定されたプロジェクトの構成要素、 すなわち各種モジュールを解析します。詳しく述べると、 プロジェクト内の各種のモジュールを解析して、 メソッドを洗い出し、 フックメソッドとして認識されるものとそうでないものに分けます。そして、 以下のダイアログフックメソッドとみなされないメソッド一覧を登場させます。

フックメソッド名のスペルミスなどのために、 フックメソッドと認識されなかったものがあれば、 それはこのダイアログに含まれています。アプリ開発者の方々は、 この内容をチェックすることで、 フックメソッドのつもりで記述したにもかかわらず、 そう認識されていないものがあれば、 それに気が付くことでしょう。


フックメソッドと認識されなかったもの


ここではボタン OK をクリックしてください。


フックメソッド

 

☆ フックメソッド

 

 ビジネスロジック部品の各メソッドは、 実動フレームワークとの差分のロジックを記述したものなので一般にフックメソッドと呼ばれます。フックメソッドという名前の由来について述べると、 実動フレームワークの通常の処理の流れの中に幾つかのフックを設けてそこに固有のロジックを記述したものということで、 こう名付けられています。

 フックメソッドは、 一つのデータ項目ごとに、 またはフォームごとにまとめられて、 (オブジェクト指向の) クラスという形態にします。こうしたクラスは、 一般にフッククラスと呼ばれています。そして、 MANDALA.net 2008 V9 においては、 このフッククラスをビジネスロジック部品として位置づけています

 



コード合成ツールは、 指定されたプロジェクトの構成要素、 すなわち各種モジュールの解析を終えると、 次のようなメイン画面 (総括表) を表示して、 アプリ開発者からのコード合成の指示を待ちます。


コード合成ツールが行う解析処理の中では、 プロジェクト内のフォームにどのようなコントロール (項目) が含まれているか、 およびどのようなフックメソッドが含まれているかを調べあげます。そして、 以下の総括表に、 その解析結果を表示します。


Jutyu1 のコード合成



◆ 画面レイアウトの解析内容

この総括表の各行には、 それぞれの項目 (コントロール) の略称が表示されていますが、 これは、 指定されたプロジェクト内のフォーム“Fr_受注業務.vb”の画面レイアウトを解析して、 そのフォームにどのような項目があるのかを抽出した結果です。なお、 このサンプルアプリは、 日本語の項目名を使ってプログラミングしたものなので項目略称の欄に漢字やカナが表示されていますが、 もちろん英数字だけを使ってプログラミングしてもかまいません。


受注コード受注日付発注元コード、 および発注元名称の 4 項目は、 区画ヘッド部 (HD) の項目です。

明細番号商品コード商品名称受注個数商品単価、 および受注金額の 6 項目は、 区画ボディ部 (BD) の項目です。

手入力は、 ボディ部のバーチャル項目 (BV) です。なお、 バーチャル項目とは、 一般の項目と違って、 画面レイアウト上には現れない特殊な項目のことです。

注釈、 および受注合計金額の 2 項目は、 区画テール部 (TL) の項目です。


 

☆ ヘッド部、 ボディ部、 テール部

 

 以下の業務アプリケーションプログラム画面をご覧ください。表のような形になっている表のような形になっている赤枠の部分がボディ部です。ボディ部の上がヘッド部です。そして、 ボディ部の下がテール部です。

 

  Jutyu のボディ部

 

 このように、 画面内に区画を設けて、 各項目はいずれかの区画に含める決まりになっています。そして、 ボディ部は、 何行かの明細行 (下図では 8 行の明細行) から構成されていて、 縦にスクロール可能なのでこの行数よりも多くのデータを取り扱えます。

 この例には含まれていませんが、 ヘッド部、 ボディ部、 テール部の他に、 拡張ボディ部を設けることができます。拡張ボディ部は、 ボディ部と同様に、 何行かの明細行から構成され、 縦にスクロール可能なので表示行よりも多くのデータを取り扱えます。したがって、 ボディ部と拡張ボディ部を設けることによって一つの画面の中に表のような区画を二つまで含めることができます。

 


ここで理解を深めるために、 いまコード合成ツールが解析したフォームの実物を眺めてみましょう。実物を見ることで、 コード合成ツールがどのような解析処理をしたのかその概要が理解できることでしょう。

フォームの実物を見るには、 VS2008 が必要です。VS2008 を起動して、 ソリューション C:\Mandala9\Vb\Jutyu1.sln を開いてください。そして、 フォームの画面レイアウトファイル FR_受注業務.vb をデザイナで表示させてください。


 

(e) フォームの画面レイアウトを表示する操作方法

 

  1. VS2008 を起動します。
  2. VS2008 で、 ソリューション C:\Mandala9\Vb\Jutyu1.sln を開きます。
    この操作: メニュー [ファイル(F)] の中の [プロジェクトを開く(P)...] をクリックしてから、 ソリューション C:\Mandala9\Vb\Jutyu1.sln を指定します。
  3. ソリューションエクスプローラを開きます。
    この操作: メニュー [表示(V)] の中の [ソリューションエクスプローラ(P)] をクリックします。
  4. ソリューションエクスプローラが登場しますから、 その中のフォルダ Forms の中のファイル FR_受注業務.vb をダブルクリックします。

 


デザインされたフォームは、 以下のように特にボディ部に関して、 実行時に現れる形態と少し異なる点があります。デザインの際には、 ボディ部の先頭の明細行だけを貼り付ければよいようになっているからです。すべての明細行を貼り付けるのは手間がかかるので、 このように便利にしてあります。


 Jutyu のフォーム


コード合成ツールは、 このフォームレイアウトを解析して、 主要な項目を洗い出して、 総括表の各行にその項目略称を表示します。この結果が、 先の総括表の図です。

以下に、 総括表の各行の項目略称と上記のデザインされたフォーム内の項目との対応関係を示します。

 

 



◆ 主要な項目とは

コード合成ツールは、 主要な項目を洗い出すと述べましたが、 主要な項目とは、 その項目名が "Hd_"、 "Bd_"、 "Tl_" などのプレフィックス (接頭語) で始まるものを意味します。

逆の見方をすると、 アプリ開発者がフォームの画面レイアウトをデザインするときに、 その中の項目の名前に "Hd_"、 "Bd_"、 "Tl_" などプレフィックスを付けると、 コード合成ツールは、 そうした項目を主要な項目だとみなして解析を行うということになります。


MANDALA コード合成ツール [2] コード合成ツール

 

コード合成ツール

 

 コード合成ツールは、 VB/C# のプロジェクトをインプットして、 その中身を解析します。そして、 合成用のプログラムコードを機械生成します。

 解析の対象は、 アプリ開発者が開発したプロジェクトの中にあるフォームの画面レイアウト、 およびクラスモジュールという形態のビジネスロジック部品です。コード合成ツールは、 これらを解析した結果をそのメイン画面 (総括表) に表示します。そして、 アプリ開発者が行う設定の変更を受け付けます。そして最終的には、 アプリ開発者からコード合成の指示を受けて、 合成用のプログラムコードを機械生成することになります。

 この生成された合成用のプログラムコードは、 画面レイアウトビジネスロジック部品およびで実動フレームワークの三つを結び付けるものであり、 これら四つがまとまって実際に動作する業務プログラムとなります。

 

 コード合成ツールは、 業務プログラムの開発フェーズで使われます。

 

コード合成ツールの効用: コード合成ツールを用いることによって、 業務プログラムの開発作業の一部が機械化されるために生産性が上がります。また、 すでに開発済みの実動フレームワークを再利用することになるので、 これも大いに生産性の向上に寄与します。

 さらにビジネスロジックは、 ビジネスロジック部品という再利用しやすいかなり小粒の塊にする規約になっています。通常はこうした小粒の部品はそれを合成する作業に手間がかかるので敬遠されがちです。しかし、 この合成作業はコード合成ツールが実施するので、 アプリ開発者の方々は、 心置きなく再利用しやすいビジネスロジック部品に傾注できます。この結果として、 ビジネスロジック部分は、 再利用性の高い塊になるように工夫された小粒のビジネスロジック部品になり、 再利用性が大いに高まることになります。この効果として、 メンテナンス作業やカスタマイズ作業の負荷を軽減しますし、 またその後の開発の生産性をジワジワとさらに高めます。

 

 このコード合成ツールに関係して、 [1] バッチツール および [3] 実動フレームワーク もご覧ください。

 



◆ ビジネスロジック部品の解析内容

アプリ開発者は、 画面レイアウトをデザインし、 ビジネスロジック部品をプログラミングします。そして、 コード合成ツールは、 それらの画面レイアウトおよびビジネスロジック部品を解析します。

画面レイアウトの解析に関して、 詳しく見てきたので、 ビジネスロジック部品の解析についても、 そうしてみましょう。すでにダイアログフックメソッドとみなされないメソッド一覧をご紹介したときに、 次のような説明がありました。

 

 コード合成ツールは、 プロジェクト内の各種のモジュールを解析して、 メソッドを洗い出し、 フックメソッドとして認識されるものとそうでないものに分けます。

 


しかし、 これだけでは詳細が分からないので、 実際にどんなフックメソッドがそれと認識されたのかを表示するために、 総括表のボタン H をクリックしてみることにします。


 Jutyu1 のフックメソッド表示


総括表のボタン H をクリックするか、 またはメニュータイトル操作(O) の中のフックメソッド情報表示(H)... をクリックすると、 次のダイアログフックメソッド情報が登場します。


 Jutyu1 のフックメソッド表示


このダイアログフックメソッド情報は、 解析処理の結果どんなフックメソッドが見つかったのかを表示します。フックメソッドは、 ある一つのデータ項目に対応する項目フックメソッドとフォームに対応する画面フックメソッドの2種類に分類されます。上の図では、 受注コードという項目に関する項目フックメソッドが9個あり、 画面フックメソッドが18個あることを示しています。


なお、 ここには受注コードという項目に関するフックメソッドが表示されていますが、 他の項目のフックメソッド情報を見たければ、 このダイアログを一旦閉じてから、 その項目に対応する明細行の H 欄をクリックすればよいでしょう。


ここで理解を深めるために、 いまコード合成ツールが解析したフックメソッドの実物を眺めてみましょう。前回はフォームの実物を見ましたが、 今回はフックメソッドの実物です。実物を見ることで、 コード合成ツールがどのような解析処理をしたのかその概要が理解できることでしょう。

フックメソッドの実物は VS2008 を使って見ることができます。すでに VS2008 は起動済みであり、 ソリューション C:\Mandala9\Vb\Jutyu1.sln が開かれていることでしょう。ですから、 ソリューションエクスプローラを登場させて、 その中のフォルダ Hooks の中のファイル受注コード.vb をダブルクリックするだけで、 9個のフックメソッドを含んだフッククラス受注コードが現れます。


 

(f) フッククラスを表示する操作方法 (斜体で書いてある操作は以前に実施済みです)

 

  1. VS2008 を起動します。
  2. VS2008 で、 ソリューション C:\Mandala9\Vb\Jutyu1.sln を開きます。
    この操作: メニュー [ファイル(F)] の中の [プロジェクトを開く(P)...] をクリックしてから、 ソリューション C:\Mandala9\Vb\Jutyu1.sln を指定します。
  3. ソリューションエクスプローラを開きます。
    この操作: メニュー [表示(V)] の中の [ソリューションエクスプローラ(P)] をクリックします。
  4. ソリューションエクスプローラが登場しますから、 その中のフォルダ Hooks の中のファイル 受注コード.vb をダブルクリックします。

 


このフッククラス受注コードの中には、 9個の Friend Function が含まれていますが、 これらがフックメソッドの実物です。そして、 これらの9個は、 受注コードという項目フッククラスに格納されています。この中には、 受注コードという項目に関するビジネスロジックが集めてられ、 まとめられています。


同様に、 画面フッククラス受注業務の実物も見ることができます。ソリューションエクスプローラの中のフォルダ Hooks の中のファイル受注業務.vb をダブルクリックすれば、 18個のフックメソッドを含んだ画面フッククラス受注業務が現れます。


コード合成ツールは、 こうしたフッククラスを解析して、 フックメソッドを洗い出して、 総括表の H 欄にその個数を表示したのです。

詳細はマニュアルに書いてあるので省略しますが、 ビジネスロジックについては、 どういう塊にするのかなど、 あらかじめ決められた形式に合わせることが必要です。こうすることで、 コード合成ツールはフックメソッドをそれだと認識できるようになります。なお、 形式は決まっていますが、 その中身のロジックは VB/C# で自由に記述できるので、 思い通りのビジネスロジックを実現することができます。少なくともこれまでの 10 年以上の歴史を振り返ると、 形式が決められているために目指すビジネスロジックを書けない、 というようなことはありませんでした。


◆ コード合成とその内容

アプリ開発者の方々が“画面レイアウト”およびビジネスロジックを記述した定形の“フッククラス”をコード合成ツールに渡すと、 コード合成ツールは、 これらを解析した後に、 これら二つと“実動フレームワーク”とを結合・合成するためのコードを機械生成します。

 このスタートアップにおいては、 画面レイアウトをデザインしたり、 フックメソッドをプログラミングしたり、 選んだりする実質的な作業を省略しています。なぜなら、 手軽に見て触れて操作しながら MANDALA.net 2008 V9 の理解を深めていただけることを目指したためです。

 しかし、 実際にはそうした作業が必要であり、 そうした作業を行った後に、 解析・合成の指示をするものだということを、 再確認の意味で、 ここで思い起こしておきましょう。


実際にコード合成の指示をしてみましょう。コード合成ツールのメイン画面のボタンコード合成をクリックするか、 またはメニュー操作(O) の中のコード合成(S) をクリックします。

 

(g) コード合成の指示をする操作方法

 

  1. コード合成ツールのメイン画面のボタンコード合成をクリックします。
    コード合成 ← ツールバーの右端がボタンコード合成です。
    またはメニュー [操作(O)] の中の [コード合成(S)] をクリックします。
  2. コード合成ツールからのログ MANDALA.log を表示し、 確認します。

 


この指示により合成処理が始まります。そして、 これが終わると以下のメッセージボックスが表示されますから、 はい(Y) をクリックして、 ログを表示させます。


    合成終了


ここで VS2008 に目をやると、 普通でない事態が発生しています。ダイアログファイル変更の検出が登場して、 何かをうったえています。


  ファイル変更の検出


これは、 いま開かれているソリューション C:\Mandala9\Vb\Jutyu1.sln の中のプロジェクトの関連ファイルが突然変更されてしまった、 と VS2008 が警告を発しているのです。つまり、 通常は VS2008 という統合開発環境のエディタやデザイナでファイルを変更するものなのに、 それ以外のところで変更されたと訴えているのです。それもそのはず、 いまコード合成ツールがプログラムコードをファイルに書いた (機械生成した) のですから、 全体を総合的に見ると辻褄が合います。


ここでは、 あわてずさわがず、 ボタン再読み込み(R) をクリックしてください。すると、 機械生成されたプログラムコードコードが VS2008 に取り込まれます。こうすれば、 いま生成されたばかりのホヤホヤのコードを表示することもできます。


すでに VS2008 上でソリューション C:\Mandala9\Vb\Jutyu1.sln が開かれていることでしょう。ですから、 ソリューションエクスプローラを登場させて、 その中のフォルダ Glue の中のファイル受注業務FormBase.vb をダブルクリックするだけで生成されたコードを表示できます。


 

(h) 生成されたコードを表示する操作方法 (斜体で書いてある操作は以前に実施済みです)

 

  1. VS2008 を起動します。
  2. VS2008 で、 ソリューション C:\Mandala9\Vb\Jutyu1.sln を開きます。
    この操作: メニュー [ファイル(F)] の中の [プロジェクトを開く(P)...] をクリックしてから、 ソリューション C:\Mandala9\Vb\Jutyu1.sln を指定します。
  3. ソリューションエクスプローラを開きます。
    この操作: メニュー [表示(V)] の中の [ソリューションエクスプローラ(P)] をクリックします。
  4. ソリューションエクスプローラが登場しますから、 その中のフォルダ Glue の中のファイル 受注業務FormBase.vb をダブルクリックします。

 


実は、 生成されたコードを読むこと、 および変更することは、 禁止されています。しかし、 これ以降の部分を読むことは禁止と書かれているところより前は、 読んでもかまいません。そこには、 生成された日付と時刻が書かれているので、 いま生成されたコードであることが確認できます。また、 ワンピーススタイル向けの合成なのかツーピーススタイル向けの合成なのかの区別も書かれています。

なお、 この生成コードの役割は、 繰り返しになりますが、“画面レイアウト”および“フッククラス”および“実動フレームワーク”を結び付けることです。


生成コードを変更することが禁止されていると述べましたが、 そもそも生成されたソースコードに手を入れる必要はありません。なぜなら、 コード合成ツールは、 ここまで操作してみてお分かりのように、 手組みのコードを解析した後に生成処理を行うポスト生成方式を採用しているからです。


 

☆ スムーズにコード合成の指示をするためのヒント

 

 ここまでの操作は、 少しゴタゴタした感があるかもしれません。なぜなら、 解析処理を終えてコード合成処理を行う前に、 VS2008 でその対象プロジェクトを開くという通常は行わない操作をしたからです。このために、 ダイアログファイル変更の検出が登場したりしました。

 通常は、 解析処理を始める前に、 その対象プロジェクトを閉じておくのがよいでしょう。そして、 コード合成処理が終わるまでは、 その対象プロジェクトを開かないようにお勧めしております。こうすれば、 ダイアログファイル変更の検出が登場したりしません。

 

 なお、 解析処理を始める前に、 VS2008 が開かれている場合には、 注意が必要なので、 ダイアログ保存の確認を登場させるようにしています。対象プロジェクトが開かれたままであると、 問題を起こす可能性があるからです。

 

  保存の確認

 

 このダイアログは邪魔だと感じたら、 登場させないように設定することもできますが、 操作方法に熟達するまでは、 そうしないことをお勧めいたします。

 



◆ 合成したプログラムのデバッグの開始

ここでは、 VS2008 が起動済みですから、 VS2008 にデバッグ開始の指示 (メニューデバッグ(D) の中のデバッグ開始(S) のクリック操作) をするだけで、 合成して一体となったプログラムの動作を開始させることができます。つまり、 デバッグを始めることができるのです。

なお、 通常は VS2008 が起動済ではないので、 次に示すように、 VS2008 の起動操作から始めることが必要です。


 

(i) 合成されたプログラムのデバッグを開始する操作方法

 

  1. VS2008 を起動します。
  2. VS2008 で、 ソリューション C:\Mandala9\Vb\Jutyu1.sln を開きます。
    この操作: メニュー [ファイル(F)] の中の [プロジェクトを開く(P)...] をクリックしてから、 ソリューション C:\Mandala9\Vb\Jutyu1.sln を指定します。
  3. デバッグ開始の指示をします。
    この操作: メニュー [デバッグ(D)] の中の [デバッグ開始(S)] をクリックします。

 


なお、 この詳細は 「3.合成したプログラムの実行テスト」 に書いてあるので、 ご参照ください。


◆ ツーピースプロジェクトペア群を対象にした解析・合成指示

サンプルアプリ中にはワンピースプロジェクト群とツーピースプロジェクトペア群が含まれています。ここまで解析・合成の対象にしてきたのは、 前者です。そこで、 次にツーピースプロジェクトペア群を対象に解析・合成の処理をしてみましょう。


プログラムアイコン MANDALA.net コード合成をクリックしてコード合成ツールを起動してから、 ダイアログプロジェクトの選択ローカルピースプロジェクト Jutyu2Lcl.vbproj を選択して、 ボタン開く(O) をクリックします。

なお、 対象のプロジェクトファイル Jutyu2Lcl.vbproj は、 インストール先フォルダの配下のフォルダ C:\Mandala9\Vb\Jutyu2 の中にあります。


 

(j) コード合成の操作方法 (ツーピース)

 

  1. プログラムアイコン MANDALA.net コード合成をクリックしコード合成ツールを起動します。
  2. ダイアログプロジェクトの選択でファイル C:\Mandala9\Vb\Jutyu2\Jutyu2Lcl.vbproj を選択し、 開く(O) をクリックします。
  3. ダイアログフックメソッドとみなされないメソッド一覧のボタン OK をクリックします。
  4. コード合成ツールのメイン画面が登場したら、 ボタンコード合成をクリックします。
    コード合成 ← ツールバーの右端がボタンコード合成です。
    またはメニュー [操作(O)] の中の [コード合成(S)] をクリックします。
  5. コード合成ツールからのログ MANDALA.log を表示し、 確認します。

 


ダイアログフックメソッドとみなされないメソッド一覧が登場したら、 ボタン OK をクリックします。

通常は、 ここでボタンコード合成をクリックして、 コード合成の指示をするのですが、 少し寄り道をして、 ちょっとした調査をしてみます。つまり、 ローカルプロジェクトを指定するだけで、 なぜローカルプロジェクトだけでなくセントラルプロジェクトに関してまでもコード合成処理がなされるのかという調査です。


この秘密は、 ダイアログ画面オプションにあります。コード合成ツールのメイン画面のボタン画面オプションをクリックするか、 またはメニュー操作(O) の中の画面オプション(P)... をクリックして、 このダイアログを登場させてみましょう。

 

(k) ダイアログ画面オプションを登場させる操作方法

 

 ここでは、コード合成ツールを起動し、解析処理を済ませているものとします。すなわち、コード合成の操作方法1. から 3. の操作を行っているものとします。

 

  1. コード合成ツールのメイン画面のボタン画面オプションをクリックします。
    画面オプション ← 左から二つ目がボタン画面オプションです。
    またはメニュー [操作(O)] の中の [画面オプション(P)... ] をクリックします。

 


ダイアログ画面オプションの中には、 Central プロジェクト欄があり、 ここにセントラルプロジェクトのパスが記入されています。コード合成ツールは、 このパス情報を頼りにして、 セントラルプロジェクトの解析・合成処理をするのです。


   画面オプション


少し寄り道をしましたが、 本線にもどってボタンコード合成をクリックして、 コード合成の指示をしましょう。こうすると、 ローカルプロジェクトおよびセントラルプロジェクトに関するコード合成処理がなされます。


◆ 複数のフォームからなるプロジェクトに関するコード合成指示

ここまで、 フォームが一つだけ含まれたプロジェクトに関する解析・合成に関する操作をしてきました。ここでは、 複数のフォームからなるプロジェクトに対して解析・合成の指示を行ってみます。


複数のフォームからなるプロジェクトの場合、 ダイアログ解析・合成対象フォームの選択が登場します。ここで、 あたかもバッチ処理のようにすべてのフォームに関して一括して解析・合成することもできますし、 あるいはどのフォームとどのフォームを対象にして解析・合成処理をするのかを選択した上で、 個々のフォームごとに解析・合成を行うこともできます。


最初に、 複数のフォームからなるワンピースプロジェクトを例に取り上げて、 一括してすべてのフォームに関する解析・合成を行ってみます。

プログラムアイコン MANDALA.net コード合成をクリックしてコード合成ツールを起動してから、 ダイアログプロジェクトの選択Spec2.vbproj を選択して、 ボタン開く(O) をクリックします。

なお、 対象のプロジェクトファイル Spec2.vbproj は、 インストール先フォルダの配下のフォルダ C:\Mandala9\Vb\Spec2 の中にあります。

こうすると、 ダイアログ解析・合成対象フォームの選択が登場するので、 ボタン一括合成をクリックします。


 解析・合成対象フォームの選択


この結果として、 プロジェクト Spec2.vbproj の中のすべてのフォームに関する解析・合成処理が次々となされます。

なお、 一括合成の場合は、 フォームを選択しても無視されて、 すべてのフォームに関する解析・合成処理がなされます。

 

(l) 複数のフォームからなるプロジェクトに関する一括の解析・合成の操作方法

 

  1. プログラムアイコン MANDALA.net コード合成をクリックしコード合成ツールを起動します。
  2. ダイアログプロジェクトの選択でファイル C:\Mandala9\Vb\Spec2\Spec2.vbproj を選択し、 ボタン開く(O) をクリックします。
  3. ダイアログ解析・合成対象フォームの選択が登場しますから、 ボタン一括合成をクリックします。
  4. コード合成ツールからのログ MANDALA.log も表示されるので、 確認します。

 


次に、 複数のフォームからなるツーピースプロジェクトを例に取り上げて、 個々のフォームごとに解析・合成を行ってみます。

プログラムアイコン MANDALA.net コード合成をクリックしてコード合成ツールを起動してから、 ダイアログプロジェクトの選択Spec2Lcl.vbproj を選択して、 ボタン開く(O) をクリックします。

なお、 対象のプロジェクトファイル Spec2Lcl.vbproj は、 インストール先フォルダの配下のフォルダ C:\Mandala9\Vb\Spec2 の中にあります。

こうすると、 ダイアログ解析・合成対象フォームの選択が登場するので、 ボタンすべて選択をクリックするか、 または適当なフォームを選択した後に、 ボタン解析をクリックします。そして、 ボタンコード合成をクリックして、 個々のフォームごとに一つずつコード合成 (個別合成) をしていくことができます。この操作方法の詳細は、 以下を参照してください。


 

(m) 複数のフォームからなるプロジェクトにおける各フォームの解析・合成の操作方法

 

  1. プログラムアイコン MANDALA.net コード合成をクリックしコード合成ツールを起動します。
  2. ダイアログプロジェクトの選択でファイル C:\Mandala9\Vb\Spec2\Spec2Lcl.vbproj を選択し、 ボタン開く(O) をクリックします。
  3. ダイアログ解析・合成対象フォームの選択が登場しますからボタンすべて選択をクリックするか、 または適当なフォームを選択した後に、 ボタン解析をクリックします。
  4. コード合成ツールのメイン画面が登場したら、 ボタンコード合成をクリックします。
    コード合成 ← ツールバーの右端がボタンコード合成です。
    またはメニュー [操作(O)] の中の [コード合成(S)] をクリックします。
  5. ダイアログ MANDALA.net (次のフォームの解析) に対しては、 ボタン はい(Y) をクリックします。
  6. 次のフォームに解析が終わったらメイン画面のボタンコード合成をクリックします。
    またはメニュー [操作(O)] の中の [コード合成(S)] をクリックします。
  7. 上記の 5. および 6. を (フォームの数 − 1) だけ繰り返します。
    つまり、 選択したフォームの数だけ (たとえば、 このプロジェクトに対して、 もしもすべて選択すると五つ) のコード合成処理を実施します。
  8. コード合成ツールからのログ MANDALA.log を表示し、 確認します。

 



◆ コード合成に関する操作の練習

ワンピースプロジェクトに関しては 「コード合成の操作方法 (ワンピース)」 という空色のカラム (以下に再掲) でコード合成の操作方法を示しました。


 

(n) コード合成の操作の練習

 

  1. プログラムアイコン MANDALA.net コード合成をクリックしコード合成ツールを起動します。
  2. ダイアログプロジェクトの選択でファイル C:\Mandala9\Vb\Jutyu1\Jutyu1.vbproj を選択し、 ボタン開く(O) をクリックします。
  3. ダイアログフックメソッドとみなされないメソッド一覧に対しては、 ボタン OK をクリックします。
  4. コード合成ツールのメイン画面が登場したら、 ボタンコード合成をクリックします。
    コード合成 ← ツールバーの右端がボタンコード合成です。
    またはメニュー [操作(O)] の中の [コード合成(S)] をクリックします。
  5. コード合成ツールからのログ MANDALA.log を表示し、 確認します。

 


この操作方法に従って、 以下のワンピースプロジェクトに関してもコード合成の操作を行ってみましょう。

上記の操作方法の 2. のところを少し変更すればよいだけです。


 

 C:\Mandala9\Vb\Jutyu1\Jutyu1.vbproj を選択するのではなく、

 C:\Mandala9\Vb\Tokui3\Tokui3.vbproj を選択します。または、

 C:\Mandala9\Vb\Jutyu2\Jutyu2.vbproj を選択します。または、

 C:\Mandala9\Vb\Jutyu3\Jutyu3.vbproj を選択します。

 



同様に、 ツーピースプロジェクトに関しては 「コード合成の操作方法 (ツーピース)」 という空色のカラムでコード合成の操作方法を示しました。これは、 ワンピースの場合とほとんど同じです。あえて違いを言うと、 ワンピースプロジェクトではなく、 ローカルプロジェクトを指定する点だけです。


この操作方法に従って、 以下のツーピースプロジェクトに関してもコード合成の操作を行ってみましょう。

上記の操作方法の 2. のところを少し変更すればよいだけです。


 

 C:\Mandala9\Vb\Jutyu2\Jutyu2Lcl.vbproj を選択するのではなく、

 C:\Mandala9\Vb\Jutyu2\Jutyu3Lcl.vbproj を選択します。または、

 C:\Mandala9\Vb\Jutyu3\Spec2Lcl.vbproj を選択します。

 




3.合成したプログラムの実行テスト


サンプルアプリ中にはワンピースソリューション群とツーピースソリューションペア群が含まれています。

開発フェーズで行うバッチツールの操作およびコード合成指示の操作については、 ワンピースの場合もツーピースの場合もほとんど同じだということがお分かりいただけたことでしょう。ところが、 実行テストにおいては、 ワンピースの場合とツーピースの場合で、 当然のことながら (種々の動作環境に対応できるようにしているので) 違いが出てきます。

これは、 実行テストフェーズの動作環境にはバラエティを持たせていますが、 開発フェーズにおける違いは極力少なくしていることの現れだといえます。


◆ MANDALA.net 2008 V9 の構成要素のご紹介

MANDALA.net 2008 V9 は、 マニュアルを除くと、 主な構成要素はコード合成ツールバッチツール実動フレームワークの三つです。そして、 MANDALA.net 2008 V9 は、 主に基幹系の業務プログラム開発において、 開発の生産性を高め、 プログラムコードの再利用を推進するというご支援をします。


コード合成ツール、 バッチツールについては、 すでに桃色のカラムご紹介済みです。ここで実動フレームワークをご紹介することで、 すべての構成要素が出そろうことになります。実動フレームワークは“合成したプログラムの実行テスト”において重要な役割を果たすものです。


実動フレームワーク [3] 実動フレームワーク

 

実動フレームワーク

 

 実動フレームワークは、 コード合成ツールによって開発した業務プログラムをテストしたり、 実稼動させたりする際に動作して、 以下の機能を果たします。

 

 ・ 業務プログラムの操作性にかかわる機能

 ・ 業務プログラムのビジネスロジック部品の呼び出しにかかわる機能

 ・ 業務プログラムのローカルピースとセントラルピース間の通信にかかわる機能

 

 実動フレームワークは、 業務プログラムの実行テストフェーズおよび実稼働時に使われます。

 

実動フレームワークの効用 上の3種類の機能は、 実動フレームワークが行うので、 アプリ開発者の方々は、 こうした部分のプログラミングをする必要がなくなり、 生産性の向上に寄与します。また、 実動フレームワークは、 すでにデバッグが済んでいるものなので、 業務プログラムを高い品質にするために大いに寄与します。

 

 この実動フレームワークに関係して、 [1] バッチツール および [2] コード合成ツール もご覧ください。

 


実動フレームワークは、 業務プログラムの操作性にかかわる機能を果たすので、 MANDALA.net 2008 V9 で開発したアプリケーションプログラムの操作性は (オプションの指定による若干のバラエティがありますが) 次のように標準化されるとお考えください。


 

☆ MANDALA アプリケーションプログラムの操作性の特徴

 

 MANDALA.net 2008 V9 で開発したアプリケーションプログラムは、 マウスを使った操作はもちろんのこと、 キーボードだけでの操作も可能です。キーボード上の上矢印 (↑) キー、 下矢印 (↓) キー、 右矢印 (→) キー、 左矢印 (←) キー、 Home キー、 End キーなどでフォーカスを移動させることができます。また、 Tab キーや Shift + Tab キーによってもフォーカスを移動させることができます。フォーカスをもつ項目は、 特定の背景色 (デフォルトでは黄色) になります。これはブライト処理と呼ばれています。

 

 Enter キーの役割は、 インプットしたデータを確定することです。一時的にその項目のデータを確定すると同時にフォーカスを次の項目に移動させます。なお、 Enter キーは、 その時々に最も期待される働きをするように設定されていますから、 大抵の操作は Enter キーで事足ります。たとえば、 画面内でインプットすべき最終の項目Enter キーを押下すると、 画面内にインプットしたすべてのデータをデータベースに書き込みます。つまり、 画面内のすべてのデータを最終的な確定値とする働きをします。

 

 キーボードから文字をインプットすると、 フォーカスをもつ項目のカーソルが指す位置の文字を置き換えます (上書きします)。ただし、 Insert キーによって上書きモードと挿入モードを切り換えることができ、 挿入モードでは文字が追加挿入されます。

 各項目の欄にインプットできる文字数の最大値はあらかじめ決まっているのが普通です。そして、 この数だけの文字をインプットすると、 フォーカスは自動的に次の項目に移動します。これはオートエンター (Auto Enter) と呼ばれています。

 

 アプリケーションプログラムを動作させると、 いろいろなメッセージが表示されます。サンプルアプリは、 少しばかりメッセージを出し過ぎかもしれませんが、 入門の方々にも操作方法を理解しやすい形でご紹介するために、 このようにしています。

 ちなみに、 MANDALA.net 2008 V9 で開発したアプリケーションプログラムは、 表示するメッセージの内容を変更したり、 メッセージを出さないように抑止したりすることが、 簡単に指定できます。

 

 MANDALA.net 2008 V9 で開発したアプリケーションプログラムは、 データの追加 (エントリ)、 データの選択 (検索条件のインプット)、 選択したデータの表示・更新・削除などの操作を一つの同じ画面上で行えるように設定できます。このように、 幾つかの操作を一つの画面上で行うようにすればプログラムは一本で済みます。ですから、 データの追加専用、 更新専用、 ... というようにプログラムを別々に開発する場合に比べて、 プログラム開発の生産性を上げる効果があります (これは MANDALA.net 2008 V9 が生産性を上げる数ある要因の一つに過ぎませんが)。なお、 データの追加専用、 更新専用などのプログラムも開発できることはいうまでもありません。

 

 MANDALA.net 2008 V9 で開発したアプリケーションプログラムは、“徹底したデータ項目指向の部品化”など半歩進んだテクノロジーを特長としています。そして、 インプットされた項目の値を一つずつチェックすることを基本としています。インプットされるやいなやそのチェックがなされるのです。

 さらに、 これだけでなく、 複数の項目にまたがる関係チェックも簡単に行うことができます。複数の項目にまたがる関係チェックでエラーになると、 関係する項目すべてにエラー表示が同時に付いたり、 消えたり、 うまく制御されます。このようなプログラムを組むのは、 一般には面倒なものですが、 MANDALA.net 2008 V9 の実動フレームワークの働きによって、 何も特別なプログラムを作成せずにこうしたことが実現できます。

 



◆ 合成したワンピースソリューションの実行テスト

ここでは、 ワンピースソリューションTokui3.sln および Jutyu2.sln の二つを取り上げて、 それぞれの実行テストを行います。

Tokui3.vbproj のメインフォームの画面レイアウトは、 ヘッド部だけで構成されています。もう一方の Jutyu2.vbproj のメインフォームの画面レイアウトは、 ヘッド部、 ボディ部、 テール部から構成されています。


これらの実行テストを行う前準備として、 ワンピースプロジェクトに関する生成など、 以下の準備が必要です。


★ もしも VS2008 が開かれたままであれば、 すべて終了させてください。

バッチツールの操作方法 (ワンピース) という空色のカラムで示した操作を行ってください。


こうすることで、 ワンピースプロジェクトに関するコード合成処理を実施することになります。こうすれば、 ワンピーススタイルになりますから、 ワンピースソリューションをビルドするときにエラーが発生しません。もしもツーピーススタイルにされた状態だと、 ワンピースソリューションをビルドするとエラーが発生してしまいます。


Tokui3.sln (Tokui3.vbproj) に関する操作は、 ゲーム感覚で、 一通り試していただくのがよいでしょう。


Tokui3 のフォーム

 

☆ サンプルアプリ Tokui3 の特徴

 

 得意先管理プログラム Tokui3 は、 いわゆるマスタ (マスタテーブル) メンテナンスを行うためのプログラムです。その画面レイアウトは、 ヘッド部だけで構成されています。

 画面にメニューを設けるかどうかは開発時に自由に決められるのですが、 この画面には、 編集(E)操作(O) などのメニューがあります。ですから、 これを開くことでどのような操作が可能なのか見当を付けることができます。また、 メニューを開くと、 それぞれの機能に対応しているショートカットキーを知ることもできます。ショートカットキーを活用すれば、 メニューを開かなくてもファンクションキーを押下するだけで、 それぞれの機能を指示することができます。

 このプログラムでは、 データの追加 (エントリ)、 データの選択 (検索条件のインプット)、 選択したデータの表示・更新・削除の操作を一つの同じ画面上で行えるようになっています。このために動作モードという考え方が採用されていて、 メニュー 操作(O) の中の項目をクリックすることで動作モードを変更できるようになっています。そして、 画面の左上、 メニューの下に動作モードを表示する欄が設けられていて、 追加、 更新、 表示などのモードが示されます。

 

 この得意先管理プログラムでは、 得意先の欄に漢字をインプットすると、 カナの欄にその漢字をインプットしたときに用いたカナが表示されるようになっています。また、 F9 という名札の付いたボタンをクリックしても、 ファンクションキー F9 を押下しても、 同じ結果になります。さらに、 郵便番号の欄に数字をインプットする際に、 ハイフンのところをカーソルがスキップしていく点に注目してください。

 


操作方法が分からない場合は、 以下を参考にしてください。

 

(o) サンプルアプリ Tokui3 の操作方法

 

  1. VS2008 を起動します。
  2. VS2008 で、 ソリューション C:\Mandala9\Vb\Tokui3.sln を開きます。
    この操作: メニュー [ファイル(F)] の中の [プロジェクトを開く(P)...] をクリックしてから、 ソリューション C:\Mandala9\Vb\Tokui3.sln を指定します。
  3. このソリューションの実行を開始します。
    この操作: メニュー [デバッグ(D)] の中の [デバッグ開始(S)] をクリックします。
  4. MANDALA.net 2008 V9 で開発した業務プログラム FAA0102のフォームが登場して、 キーボードやマウスからデータをインプットできる状態になります。
    ファンクションキー F9 を押下して、 ダイアログが登場することを確認します。ダイアログのボタン OK をクリックしてダイアログを閉じます。
    ボタン F9 をクリックして、 同じダイアログが登場することを確認します。ダイアログのボタン OK をクリックしてダイアログを閉じます。
  5. フォーカスをマウスまたは矢印キーで得意先名の欄に移動させます。そして、 たとえば 「仮名漢字変換」 と漢字をキーインして、 カナ欄に 「カナカンジヘンカン」 が表示されることを確認します。
  6. アプリケーションプログラムを終了させます。
    この操作: メニュー [終了(F)] の中の [終了] をクリックします。
  7. VS2008 を終了させます。

 


Tokui3.vbproj に続いて、 Jutyu2.vbproj についても、 ゲーム感覚で、 一通り試していただくのがよいでしょう。


 Jutyu2 のフォーム

 

☆ サンプルアプリ Jutyu2 の特徴

 

 受注計上プログラム Jutyu2 の画面レイアウトは、 ヘッド部とボディ部とテール部から構成されています。典型的な事務処理画面だといえます。ボディ部は、 その明細データの数が多くなると、 すべてを同時に表示することができなくなり、 スクロールします。

 

 受注計上プログラム Jutyu2 だけでなく他のプログラムでも同様ですが、 数値は右詰で電卓風にインプットできます。数値以外は左詰で左からインプットします。

 

 画面にメニューを設けるかどうかは開発時に自由に決められるのですが、 この画面には、 編集(E)操作(O) などのメニューがあります。ですから、 これを開くことでどのような操作が可能なのか見当を付けることができます。また、 メニューを開くと、 それぞれの機能に対応しているショートカットキーを知ることもできます。ショートカットキーを活用すれば、 メニューを開かなくてもファンクションキーを押下するだけで、 それぞれの機能を指示することができます。

 

 このプログラムでは、 データの追加 (エントリ)、 データの選択 (検索条件のインプット)、 選択したデータの表示・更新・削除の操作を一つの同じ画面上で行えるようになっています。このために動作モードという考え方が採用されていて、 メニュー 操作(O) の中の項目をクリックすることで動作モードを変更できるようになっています。そして、 画面の左上、 ボタンが並んだ下に動作モードを表示する欄が設けられていて、 追加、 更新、 表示などのモードが示されます。

 

 MANDALA.net 2008 V9 で開発したアプリケーションプログラムは、 フォーカスの移動をダイナミックに制御することができます。たとえば、 この受注計上プログラムでは、 個数の欄に数値をインプットすると、 フォーカスは単価の欄に移動して、 値引きをするのならばそれをすぐにインプットできるようにします。しかし、 個数の欄に何もインプットせずに Enter キーを押下すると、 フォーカスは金額の欄に移動します。この場合は、 個々の単価を問題にするのではなく、 その商品のトータル価格をインプットできるようにしています。

 この例のような、 フォーカスのダイナミックな制御を行うプログラムは一般に面倒なものですが、 MANDALA.net 2008 V9 の実動フレームワークの働きによって、 こうしたことが簡単に実現できます。

 



操作方法が分からない場合は、 以下を参考にしてください。


 

(p) サンプルアプリ Jutyu2 の操作方法

 

  1. VS2008 を起動します。
  2. VS2008 で、 ソリューション C:\Mandala9\Vb\Jutyu2.sln を開きます。
    この操作VS1 のメニュー [ファイル(F)] の中の [プロジェクトを開く(P)...] をクリックしてから、 ソリューション C:\Mandala9\Vb\Jutyu2.sln を指定します。
  3. JutyuVb.sln のソリューションの実行を開始します。
    この操作: メニュー [デバッグ(D)] の中の [デバッグ開始(S)] をクリックします。
    ★ この結果、 MANDALA.net 2008 V9 で開発した業務プログラム受注計上が立ち上がります。
  4. ボタン「発注元コードをクリックして、 ダイアログ発注元の一覧を登場させ、 適当な項目をクリックしてから、 ボタン選択をクリックします。
    ★ この結果、 発注元コードと発注元名が表示されます。そして、 フォーカスが商品欄に移ります。
  5. ボタン「商品をクリックして、 ダイアログ商品の一覧を登場させ、 適当な項目をクリックしてから、 ボタン選択をクリックします。
    ★ この結果、 商品コードと商品名と商品単価が表示されます。そして、 フォーカスが個数欄に移ります。
  6. 個数として適当な値、 たとえば 10 をキーインし、 Enter キーを押下します。
    ★ この結果、 単価と金額と受注金額合計が表示されます。そして、 フォーカスが単価欄に移ります。
  7. ここで単価として適当な値に変更したければ、 つまり値引きをする場合には、 左矢印キーでカーソルを移動させて、 変更したい数字をキーインします。変更した場合も変更しない場合も、 Enter キーを押下します。
    ★ この結果、 フォーカスは次の明細行の商品欄に移動します。
  8. ここで、 9. 10. 11. の操作を繰り返して、 それぞれの明細行にインプットを行っていき、 No. 10 の明細行までデータをインプットします。
  9. Enter キーを押下します。
    ★ この結果、 フォーカスは備考欄に移動します。
  10. Enter キーを押下します。するとダイアログ受注計上 (伝票を発行します。) が登場しますから、 ボタン OK をクリックします。
    ★ この結果、 備考欄の下のステータスバーに 「伝票を発行しました。(伝票番号 XXXXXX)」 と表示されます。
  11. ボタンをクリックします。するとダイアログ伝票の選択が登場するので、 その中から上記の伝票番号 XXXXXX を探してクリックしてから、 さらにボタン選択をクリックします。
    ★ この結果、 今インプットした伝票が表示モードで表示されます。表示モードなのでカーソルは現れません。
  12. ボタンをクリックします。するとダイアログ受注計上 (一つ前のレコードに移ります。) が登場するので、 その中のボタン OK をクリックします。
    ★ この結果、 今インプットした伝票の一つ前のレコードが表示モードで表示されます。表示モードなのでカーソルは現れません。
  13. このアプリケーションプログラムを終了させます。
    この操作: メニュー [主操作(F)] の中の [終了] をクリックします。するとダイアログ受注計上 (終了します。) が登場するので、 その中のボタン OK をクリックします。
  14. VS2008 を終了させます。

 



◆ 合成したツーピースソリューションペアの実行テスト

ここでは、 ツーピースソリューションペア Jutyu2Lcl.sln, Jutyu2Cnt.sln を取り上げて、 その実行テストを行います。

実行テストとしては、 1 台のパソコンによる折り返し形態、 および 2 台のパソコン間で通信をする形態の二つがあります。


これらの実行テストを行う前準備として、 ツーピースプロジェクトペアに関する生成など、 以下の準備が必要です。


★ もしも VS2008 が開かれたままであれば、 すべて終了させてください。

バッチツールの操作方法 (ツーピース) という空色のカラムで示した操作を行ってください。


こうすることで、 ツーピースプロジェクトペアに関するコード合成処理を実施することになります。こうすれば、 ツーピーススタイルになりますから、 ローカルソリューションおよびセントラルソリューションをビルドするときにエラーが発生しません。もしもワンピーススタイルにされた状態だと、 ローカルソリューションやセントラルソリューションをビルドするとエラーが発生してしまいます。


 以下の空色のカラムで示した操作方法 1. から 6. を参考にして、 テストを開始できる環境を整えてください。そして、 実際の操作は、 \Jutyu2\Jutyu の実行テストで行ったのと同様に、 ゲーム感覚で、 いろいろ試していただくのがよいでしょう。


 

(q) 1 台のパソコンでのツーピースアプリの実行テスト

 

  1. VS2008 を起動します。これを VS1 と呼ぶことにします。
  2. VS1 で、 セントラルソリューション C:\Mandala9\Vb\Jutyu2Cnt.sln を開きます。
    この操作VS1 のメニュー [ファイル(F)] の中の [プロジェクトを開く(P)...] をクリックしてから、 ソリューション C:\Mandala9\Vb\Jutyu2Cnt.sln を指定します。
  3. VS2008 を起動します。これを VS2 と呼ぶことにします。
  4. VS2 で、 ローカルソリューション C:\Mandala9\Vb\Jutyu2Lcl.sln を開きます。
    この操作VS2 のメニュー [ファイル(F)] の中の [プロジェクトを開く(P)...] をクリックしてから、 ソリューション C:\Mandala9\Vb\Jutyu2Lcl.sln を指定します。
  5. VS1 のソリューション Jutyu2Cnt.sln の実行を開始します。
    この操作VS1 のメニュー [デバッグ(D)] の中の [デバッグ開始(S)] をクリックします。
    ★ この結果、 コマンドプロンプト画面が登場します。
  6. VS2 のソリューション Jutyu2Lcl.sln の実行を開始します。
    この操作VS2 のメニュー [デバッグ(D)] の中の [デバッグ開始(S)] をクリックします。
    ★ この結果、 MANDALA.net 2008 V9 で開発した業務プログラム受注計上が立ち上がります。
  7. 操作方法 (Jutyu2) の中の 4. から 12. を実施します。
  8. このアプリケーションプログラムを終了させます。
    この操作: メニュー [主操作(F)] の中の [終了] をクリックします。するとダイアログ受注計上 (終了します。) が登場するので、 その中のボタン OK をクリックします。
  9. コマンドプロンプト画面に対して Exit とキーインし、 Enter キーを押下します。
  10. VS1 を終了させます。
  11. VS2 を終了させます。

 


実行テストを終えるには、 上記の空色のカラムで示した操作方法 8. から 11. を参考にしてください。


◆ 2 台のパソコンによるツーピースソリューションペアの実行テスト

2 台のパソコンによる実行テストには、 TCP/IP を介して通信することのできる 2 台のパソコンを必要とします。

さらに、 この 2 台のパソコンによる実行テストには、 MANDALA.net 2008 V9 のライセンスを二つ (あるいは MANDALA.net 2008 V9 のライセンスが一つと MANDALA.net 実動フレームワークのライセンスが一つでも可) を必要とします。ライセンスを一つしかもっていない場合には、 2 台のパソコンによる実行テストを行うことはできませんので、 ご注意ください。それから、 VS2008 についてもパソコン単位のライセンスの場合には、 二つ必要としますので、 これについてもご注意ください。


TCP/IP を介して通信することのできる 2 台のパソコンをご用意いただいたならば、 確認の意味で、 コマンドプロンプト画面を登場させて、 PING コマンドを発して通信機能が正常に働いていることを確かめてください。

PING 192.168.0.10 のようなコマンド、 すなわち相手パソコンの IP アドレスをパラメタとした PING コマンドを発することで、 通信機能が働いているかどうかを確認できます。



この 2 台のパソコンの両方に、 VS2008 および MANDALA.net 2008 V9 がインストールされていることが必要です。

 

 なお、 一方のパソコンに MANDALA.net 2008 V9 がインストールされていて、 もう一方のパソコンに MANDALA.net 実動フレームワークがインストールされている環境でもかまいません。

 


これらの実行テストを行う前準備として、 ツーピースプロジェクトペアに関する生成など、 以下の準備を両方のパソコンで行ってください。


★ もしも VS2008 が開かれたままであれば、 すべて終了させてください。

バッチツールの操作方法 (ツーピース) という空色のカラムで示した操作を行ってください。


こうすることで、 ツーピースプロジェクトペアに関するコード合成処理を実施することになります。こうすれば、 ツーピーススタイルになりますから、 ローカルソリューションおよびセントラルソリューションをビルドするときにエラーが発生しません。もしもワンピーススタイルにされた状態だと、 ローカルソリューションやセントラルソリューションをビルドするとエラーが発生してしまいます。

 

 なお、 一方のパソコンだけに MANDALA.net 2008 V9 がインストールされている場合には、 そこでバッチツールの操作方法 (ツーピース) の操作を行った後に、 ソリューション Jutyu2Lcl.sln または Jutyu2Cnt.sln をもう一方のパソコンにコピーしてください。

 


これで環境のセットアップは完了です これで環境のセットアップは完了です。

以下の空色のカラムで示した操作方法 1. から 10. を参考にして、 テストを開始できる環境を整えてください。そして、 実際の操作は、 Jutyu2 の実行テストで行ったのと同様に、 ゲーム感覚で、 いろいろ試していただくのがよいでしょう。


 

(r) 2 台のパソコンでのツーピースアプリの実行テスト

 

  1. 片方のパソコンで VS2008 を起動します。この VS2008VS1 と呼ぶことにします。そして、 このパソコンを CntPC (セントラル側パソコン) と呼ぶことにします。
  2. VS1 で、 セントラルソリューション C:\Mandala9\Vb\Jutyu2Cnt.sln を開きます。
    この操作VS1 のメニュー [ファイル(F)] の中の [プロジェクトを開く(P)...] をクリックしてから、 ソリューション C:\Mandala9\Vb\Jutyu2Cnt.sln を指定します。
  3. もう一方のパソコンで VS2008 を起動します。この VS2008VS2 と呼ぶことにします。そして、 このパソコンを LclPC (ローカル側パソコン) と呼ぶことにします。
  4. VS2 で、 ローカルソリューション C:\Mandala9\Vb\Jutyu2Lcl.sln を開きます。
    この操作VS2 のメニュー [ファイル(F)] の中の [プロジェクトを開く(P)...] をクリックしてから、 ソリューション C:\Mandala9\Vb\Jutyu2Lcl.sln を指定します。
  5. VS2 のソリューションエクスプローラを開きます。
    この操作VS2 のメニュー [表示(V)] の中の [ソリューションエクスプローラ(P)] をクリックします。
  6. ソリューションエクスプローラが登場しますから、 その中フォルダ Customize をダブルクリックして開き、 その中のファイル Ae_MsgL8.vb をダブルクリックします。
  7. プログラムコード C:\Mandala9\Ae_MsgL8.vb が登場しますから、 その中の文字列
    "http://localhost:8080/REMOTING" を "http://192.168.0.10:8080/REMOTING" のように変更します。なお、 ここでは CntPC の IP アドレスを 192.168.0.10 と仮定していますが、 ここには実際の IP アドレスを指定してください。
    この操作VS2 のメニュー [編集(F)] の中の [クイック置換(R)] をクリックすると、 ダイアログ検索と置換が登場します。そこで、 フォルダを指定して置換に変更してから、 その中の検索する文字列および置換後の文字列を以下のように設定します。
    検索する文字列(N): "http://localhost:8080/REMOTING"
     置換後の文字列(P): "http://192.168.0.10:8080/REMOTING"
     このように設定してから、 ボタン次を検索(F) をクリックし、 ボタン置換(R) をクリックし、 最後にボタン閉じるをクリックします。
    ここで、 プログラムコード C:\Mandala9\Ae_MsgL8.vb の中が狙いどおりに変更されているか見てください。変更箇所は1つだけです。
  8. 確認の意味で、 LclPCコマンドプロンプト画面を起動して、 PING コマンドを発して、 IP アドレスが正しいことを確かめます。
    この操作VS1[スタートメニュー] - [プログラム] - [アクセサリ] - [コマンドプロンプト] をクリックすると、 LclPCコマンドプロンプト画面が登場するので、 次のような PING コマンドを発します (実際の IP アドレスを指定してください)。
    PING 192.168.0.10
    この応答があれば、 IP アドレスは正しいと考えてよいでしょう。
    確認が終わったら EXIT コマンドを発して、 LclPCコマンドプロンプト画面を終了させます。
  9. CntPCJutyuVbCnt.sln のソリューションの実行を開始します。
    この操作VS1 のメニュー [デバッグ(D)] の中の [デバッグ開始(S)] をクリックします。
    ★ この結果、 CntPCコマンドプロンプト画面が登場します。
  10. LclPCJutyuVbLcl.sln のソリューションの実行を開始します。
    この操作VS2 のメニュー [デバッグ(D)] の中の [デバッグ開始(S)] をクリックします。
    ★ この結果、 LclPC 上に、 MANDALA.net 2008 V9 で開発した業務プログラム受注計上が立ち上がります。
  11. 操作方法 (Jutyu2) の中の 4. から 12. を実施します。
  12. このアプリケーションプログラムを終了させます。
    この操作LclPCJutyu のメニュー [主操作(F)] の中の [終了] をクリックします。するとダイアログ受注計上 (終了します。) が登場するので、 その中のボタン OK をクリックします。
  13. CntPCコマンドプロンプト画面に対して Exit とキーインし、 Enter キーを押下します。
  14. CntPCVS1 を終了させます。
  15. LclPCVS2 を終了させます。

 


実行テストを終えるには、 上記の空色のカラムで示した操作方法 12. から 15. を参考にしてください。


 アプリテック株式会社
 アプリテック株式会社
 電話: 055-973-6823
 FAX: 055-973-6824
 http://www.applitech.co.jp/




付録.新規プロジェクトの合成と実行



◆ (a) 新規プロジェクト @newTest1.vbproj に関するコード合成

★ この操作を2回行うと、 2回目は新規プロジェクトでなく既存プロジェクトとなるので同じ結果にはなりません。

 

(s) 新規プロジェクトに関するコード合成の操作方法

 

  1. プログラムアイコン MANDALA.net コード合成をクリックしコード合成ツールを起動します。
  2. ダイアログプロジェクトの選択でファイル C:\Mandala9\Vb\@newTest1\@newTest1.vbproj を選択し、 ボタン開く(O) をクリックします。
  3. ダイアログ MANDALA.net (総括表... ) に対しては、 ボタン OK をクリックします。
  4. コード合成ツールのメイン画面が登場したら、 以下のようにインプットします。
      明細総行数 20
      表示行数  10
  5. コード合成ツールのメイン画面のボタンコード合成をクリックします。
    コード合成 ← ツールバーの右端がボタンコード合成です。
    またはメニュー [操作(O)] の中の [コード合成(S)] をクリックします。
  6. ダイアログ MANDALA.net (フォーム... ) に対しては、 ボタン OK をクリックします。
  7. ダイアログ MANDALA.net (プロジェクト... ) に対しては、 ボタン OK をクリックします。
  8. コード合成ツールからのログ MANDALA.log を表示し、 確認します。

 


◆ (b) 新規プロジェクト @newTest1.sln に関する実行テスト

★ これは、 (a)を実施した後に実施してください。

 

(t) 新規プロジェクトに関する実行テスト

 

  1. VS2008 を起動します。これを VS1 と呼ぶことにします。
  2. VS1 で、 ソリューション C:\Mandala9\Vb\@newTest1.sln を開きます。
    この操作: メニュー [ファイル(F)] の中の [プロジェクトを開く(P)...] をクリックしてから、 ソリューション C:\Mandala9\Vb\@newTest1.sln を指定します。
  3. ソリューションエクスプローラを開きます。
    この操作: メニュー [表示(V)] の中の [ソリューションエクスプローラ(P)] をクリックします。
  4. ソリューションエクスプローラが登場しますから、 その中のファイル Form1.vb をダブルクリックします。
  5. Form1.vb [デザイン]* が登場しますから、 その中の 「モード」 というテキストボックスを少し上に移動して、 他のコントロールと重ならないようにします。
  6. このソリューションの実行を開始します。
    この操作: メニュー [デバッグ(D)] の中の [デバッグ開始(S)] をクリックします。
  7. アプリケーションプログラムのフォームが登場して、 キーボードやマウスからデータをインプットできる状態になります。
    ここでいろいろな操作を行って、 @newTest2.vbproj の場合と比較してみるとよいでしょう。ただし、 比較のためには、 次の (c) の実施が必要です。

 



◆ (c) ワンピースソリューション @newTest2.sln に関する実行テスト

★ これは、 (b) の延長線上で実施してください。

 

(u) フックメソッド追加済みのプロジェクトに関する実行テスト

 

  1. 二つ目の VS2008 を起動します。これを VS2 と呼ぶことにします。
  2. VS2 で、 ソリューション C:\Mandala9\Vb\@newTest2.sln を開きます。
    この操作VS2 のメニュー [ファイル(F)] の中の [プロジェクトを開く(P)...] をクリックしてから、 ソリューション C:\Mandala9\Vb\@newTest2.sln を指定します。
  3. このソリューションの実行を開始します。
    この操作VS2 のメニュー [デバッグ(D)] の中の [デバッグ開始(S)] をクリックします。
  4. アプリケーションプログラムのフォームが登場して、 キーボードやマウスからデータをインプットできる状態になります。
     ここでいろいろな操作を両方に行ってみて、 @newTest1.vbproj の場合と比較します。
  5. 比較結果として、 @newTest2.vbproj の場合は日付項目へのインプットデータのチェックがなされるのに対して、 @newTest1.vbproj の場合は日付項目へのインプットデータのチェックがなされません。この違いがありますが、 これ以外には同じ動作をすることが確認できれば、 正常です。

 




◆ (d) ビジネスロジック部品への Check フックメソッドの追加

★ これは、 (b) の後に実施してください。

★ もしも (b) で次の 1.2. がなされた状態になっているのならば、 それらを再度行う必要はありませんからスキップしてください。

 

(v) フックメソッド追加とその効果の確認

 

  1. VS2008 を起動します。これを VS1 と呼ぶことにします。
  2. VS1 で、 ソリューション C:\Mandala9\Vb\@newTest1.sln を開きます。
    この操作: メニュー [ファイル(F)] の中の [プロジェクトを開く(P)...] をクリックしてから、 ソリューション C:\Mandala9\Vb\@newTest1.sln を指定します。
  3. ソリューションエクスプローラを開きます。
    この操作: メニュー [表示(V)] の中の [ソリューションエクスプローラ(P)] をクリックします。
  4. ソリューションエクスプローラが登場しますから、 その中のファイル HIDUKE.vb をダブルクリックします。
  5. プログラムコード HIDUKE.vb が登場しますから、 その中に以下のコードを追加します。

     

     

        Function Check(ByVal HIDUKE As String) As Integer

            If HIDUKE = ClearedVal Then

                Return ItemBase.CHECK_OK '---------- '正常終了。

            ElseIf IsDate(HIDUKE) Then

                Return ItemBase.CHECK_OK '---------- '正常終了。

            Else

                Return 100 '---------- 'エラーコード 100。

            End If

        End Function 'Check

     

     

     これを追加することで、 HIDUKE.vb の内容は以下のようになります。つまり、 @newTest1.vbprojHIDUKE.vb の内容を @newTest2.vbproj のそれと同じにするのです。

     

     

    Friend Class HIDUKE

     

        Private Const ClearedVal As String = "   .  .  "

     

        Function InitVal() As String

            Return ClearedVal '----------

        End Function 'InitVal

     

        Function Check(ByVal HIDUKE As String) As Integer

            If HIDUKE = ClearedVal Then

                Return ItemBase.CHECK_OK '---------- '正常終了。

            ElseIf IsDate(HIDUKE) Then

                Return ItemBase.CHECK_OK '---------- '正常終了。

            Else

                Return 100 '---------- 'エラーコード 100。

            End If

        End Function 'Check

     

    End Class 'HIDUKE

     

     

  6. VS1 の中に開かれているこのソリューションを閉じます。
    この操作VS1 のメニュー [ファイル(F)] の中の [ソリューションを閉じる(T)...] をクリックします。
    ★ 新たに Check フックメソッドを追加したので、 再合成が必要です。このために、 この上の操作でひとますソリューションを閉じておき、 以下の操作をすることで再合成を行います。
  7. プログラムアイコン MANDALA.net コード合成をクリックしコード合成ツールを起動します。
  8. ダイアログプロジェクトの選択でファイル C:\Mandala9\Vb\@newTest1\@newTest1.vbproj を選択し、 ボタン開く(O) をクリックします。
  9. ダイアログ保存の確認が表示されたら、 その中のボタン保存済みをクリックします。
  10. コード合成ツールのメイン画面が登場したら、 ボタンコード合成をクリックします。
    コード合成 ← ツールバーの右端がボタンコード合成です。
    またはメニュー [操作(O)] の中の [コード合成(S)] をクリックします。
  11. コード合成ツールからのログ MANDALA.log を表示し、 確認します。
    ★ ここまでで、 再合成ができました。
  12. VS1 で、 ソリューション C:\Mandala9\Vb\@newTest1.sln を開きます。
    この操作VS1 のメニュー [ファイル(F)] の中の [プロジェクトを開く(P)...] をクリックしてから、 ソリューション C:\Mandala9\Vb\@newTest1.sln を指定します。
  13. このソリューションの実行を開始します。
    この操作VS1 のメニュー [デバッグ(D)] の中の [デバッグ開始(S)] をクリックします。
  14. アプリケーションプログラムのフォームが登場して、 キーボードやマウスからデータをインプットできる状態になります。
    ここでいろいろな操作を行って、 @newTest2.vbproj の場合と比較します。
    この比較は、 (c) の延長線上で行います。
    今回は Check フックメソッドが追加されたために、 @newTest1.vbproj と場合と、 @newTest2.vbproj の場合で違いがないはずです。これが確認できれば、 正常です。

 


 

 MANDALA.net 2008 V9 で開発したアプリケーションプログラムは、 ヘッド部の項目値の変更の影響がボディ部やテール部の項目に及ぶような場合にも、 うまく制御されます。これに関しては、 レンタルビデオアプリの操作を参照してください。この例のような、 変更の影響にもきちんと対応するプログラムを組むのは、 一般に面倒なものですが、 こんなことを意識せずにプログラミングしも MANDALA.net 2008 V9 の実動フレームワークの働きによって、 データの変更の影響が正しく反映されるようになっています。