このチュートリアルでは Visual Studio IDE を紹介し、COBOL で簡単な Windows アプリケーションを作成する方法を説明します。
アンマネージ COBOL で簡単な Windows アプリケーションを作成する方法については、Visual COBOL IDE のヘルプでチュートリアル『Visual COBOL の使用方法』を参照してください。
Visual COBOL では、.NET 環境でマネージコードアプリケーションとして動作する COBOL アプリケーションを開発し、ビルドすることができます。COBOL コードを新規に作成してマネージコードとしてコンパイルしたり、既存の COBOL をマネージコードとして再コンパイルすることができます。
Visual Studio でプロジェクトを作成し、既存の COBOL ソースファイルを追加して、そのプロジェクトをリビルドするだけで、既存の COBOL プログラムを再コンパイルできます。
このチュートリアルでは、Visual Studio IDE を紹介し、"Hello World" と表示する Windows フォームを持つ Windows アプリケーションのソリューションを作成する方法を説明します。
このチュートリアルを実行するには、あらかじめ Microsoft Visual Studio 2010 と Micro Focus Net Express の両方をインストールしておく必要があります。
Visual Studio を起動する方法は、次のとおりです。
次の図のような IDE が画面に表示されます。
大きいペインには、ソリューションとプロジェクトが開きます。この段階では、ソリューションとプロジェクトを作成していないので、リストには何も表示されません。その下のペインは、「出力」ウィンドウです。ここには、IDE のメッセージとコンパイラメッセージが表示されます。右側のペインは、ソリューション エクスプローラです。ここには、ソリューションの構造が表示されます。「ソリューション エクスプローラ」ペインの下には、タブが表示されます。ソリューションエクスプローラは、デフォルトで表示されます。
これらのペインのいずれかが表示されていない場合は、[表示] メニューから表示できます。
最初の作業は、ソリューションとプロジェクトの作成です。ソリューションは、アプリケーション作成のために連携して動作するプロジェクトを格納するコンテナーです。ソリューションの拡張子は .sln で、人間が理解できるテキストファイルです。Microsoft では、Visual Studio 以外ではファイルを編集をしないことを推奨しています。
COBOL プロジェクトの拡張子は .cblproj です。この場合も人間が理解できるファイルですが、Microsoft では、編集しないことを推奨しています。Net Express のユーザーにとっては、.cblproj プロジェクトファイルは、これまでの .app ファイルと似たようなものであると考えられます。プロジェクトの種類が異なると、拡張子も異なります。たとえば、C# プロジェクトの拡張子は .csproj です。
ここでは、プロジェクトとソリューションを作成します。次の手順で行います。
「プロジェクト名」フィールドと「ソリューション名」フィールドの名前が同じであることに注意してください。どちらか一方を変更すると、他方も自動的に変更されます。
ソリューション、プロジェクト、および空のフォームが作成されます。空のフォームは、フォーム デザイナで開かれます。ソリューション エクスプローラに、WinHello プロジェクトが表示されます。このプロジェクトには、次のものが含まれます。
ここでは、ページやフォームのボタンとラベルのペイントを行います。
ここでは、イベントハンドラーを追加し、ボタンをクリックすると "Hello World" と表示されるようにします。
コードに button1_Click というメソッドが生成されます。
move "Hello World!" to self::label1::Text
または、同じことを、次のように書くこともできます。
set self::label1::Text to "Hello World!"
これにより、テキスト "Hello World" が、ペイントしたラベルのテキストプロパティに転記されます。
[ビルド] メニューで、ソリューションやプロジェクトを、ビルドするか、リビルドするかを選択できます。[ビルド] を選択すると、前回のビルド後に変更されたファイルのみがビルドされます。[リビルド] を選択すると、前回のビルド後に変更があったかどうかにかかわらず、プロジェクト内のすべてのファイルがビルドされます。
プロジェクトをビルドして実行する方法は、次のとおりです。
プロジェクトを作成すると、「参照」フォルダーが作成されます。このフォルダーには、System アセンブリや Windows アプリケーション用の System.Windows.Forms など、プロジェクトで使用するクラスを含むアセンブリが含まれています。ソリューション エクスプローラで「参照」フォルダーを展開すると、これらを表示することができます。
他のアセンブリの他のクラスを使用するコードを作成する場合は、参照としてアセンブリを追加します。次の手順を行います。
詳細は、Visual Studio のヘルプを参照してください。
プロジェクトのプロパティは、プロジェクトの特性を定義し、特にプロジェクトの動作を制御できるようにします。
ソリューション エクスプローラの下の「プロパティ」ウィンドウに、プロジェクトのプロパティの概要がデフォルトで動的に表示されます。プロジェクトのプロパティの概要を表示する方法について、次に説明します。
プロジェクトのプロパティの詳細な内容は、ソリューション エクスプローラでプロジェクトを選択して、[プロジェクト] > [プロパティ] をクリックすると表示できます。詳細なプロパティには、共通プロパティと構成プロパティの 2 つのカテゴリがあります。共通プロパティはすべての構成に適用されます。構成プロパティは、デバッグやリリースなど、選択した構成のみに適用されます。
ヘルプトピック『
各プロジェクトは、1 つのコードアセンブリにビルドされます。
アセンブリについては、Visual Studio のヘルプを参照してください。Visual Studio のヘルプでは、アセンブリを「1 つの単位としてバージョンが設定されディプロイされた 1 つまたは複数のファイルの集合」と説明しています。アセンブリは、.NET フレームワークアプリケーションの主要なビルドブロックです。マネージタイプとマネージリソースはすべてアセンブリに格納され、アセンブリ内のみでアクセス可能であるか、または、他のアセンブリのコードからアクセス可能であるかがマークされます。アセンブリは、セキュリティ面でも重要な役割を果たします。コードアクセスセキュリティシステムでは、アセンブリの情報を使用して、アセンブリ内のコードが与えられた特権セットを判断します。アセンブリの基本概念については、Visual Studio のヘルプを参照してください。
アセンブリは、プロジェクトをビルドすると、自動的に作成されます。アセンブリをグローバルアセンブリキャッシュに含める場合は、厳密な名前のアセンブリを作成する必要があります。厳密な名前を使用すると、アセンブリのセキュリティを向上させ、マシン上のすべてのアプリケーションでそのアセンブリを共有できます。
このチュートリアルのページまたはフォームに対し、2 つのパーシャルクラスがフォームデザイナによって作成されます。一方のパーシャルクラスには、アプリケーションの生成コードが含まれています。このコードは、編集や追加ができます。他方のパーシャルクラスは、ファイル Form1.Designer.cbl にあります。このファイルにはデザイナに所有されているコードが含まれています。このコードは編集しないでください。
生成コードを含むパーシャルクラスには、特に次のものが含まれています。
class-id. Form1 as "Hello2.Form1" is partial inherits class-form.
System.Windows.Forms.Button クラスの宣言があります。ソリューション エクスプローラを見ると、対応する System.Windows.Forms パッケージが自動的にプロジェクトの参照に含まれていることを確認できます。
COBOL 名では大文字と小文字は区別されませんが、パッケージ名では区別されます。
デザインビューのコントロールをダブルクリックすると、クリックイベントハンドラーが作成され、メソッドが生成コードに挿入されます。この方法で、Button1_Click イベントハンドラーを作成しました。
イベントハンドラーは、名前を変更したり、他のものを追加および削除したりすることができます。ただし、これらの作業はデザインビューで行う必要があります。アプリケーションのコード上では行わないでください。コードでこれを行うと、デザインからコードが再生成された場合に上書きされる可能性があります。
イベントハンドラーの名前を変更する方法は、次のとおりです。
誤ってコントロール (たとえばラベルコントロールなど) をダブルクリックした場合は、要求していないイベントハンドラーが生成されます。このイベントハンドラーは、コードビューで単純に削除することはできません。イベントハンドラーコードはデザインにもあるからです。つまり、この場合はイベントハンドラーをデザインビューで削除する必要があります。方法は、イベントハンドラーの名前を編集したときとほぼ同じですが、この場合は、名前を編集するのではなく、削除します。
ここでは、もう 1 つ別のフォームを追加しスタートアップフォームとして使用します。
先に作成したフォームは、Form1 という名前になりました。アプリケーションを実行すると、このフォームが開きます。フォームの名前を変更する場合は、アプリケーションを起動するフォームの名前も変更する必要があります。同様に、このフォームを削除する場合は、別のフォームをスタートアップフォームとして指定する必要があります。
この作業を実際に行ってみるために、もう 1 つフォームを追加し、これをスタートアップフォームとして使用します。次の手順で行います。
class class-main-form as "Form1"
この行を、次のように変更します。
class class-main-form as "HelloAgain"
Visual Studio の COBOL プロジェクトのビルド構成には、リリースとデバッグの 2 種類あります。デフォルトでは、デバッグがアクティブな構成として設定されます。ビルド構成は、「構成」ドロップダウンリストで変更することができます。「構成」ドロップダウンリストは、ツールバーとプロジェクトプロパティにあります。
プロジェクトをデバッグするには、デバッグ構成でプロジェクトを正しくビルドする必要があります。ここでは、ビルドは済ませているので、プロジェクトをステップ実行して、正しく動作することを確認します。
プロジェクト構成をリビルドするかどうかを確認するメッセージが表示されたら、[はい] をクリックします。
IDE ウィンドウを閉じます。ファイルはビルドすると自動的に保存されるので、保存操作を行う必要はありません。