チュートリアル: .NET マネージCOBOLの開発

このチュートリアルでは 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 アプリケーションのソリューションを作成する方法を説明します。

Visual Studio の起動

このチュートリアルを実行するには、あらかじめ Microsoft Visual Studio 2010 と Micro Focus Net Express の両方をインストールしておく必要があります。

Visual Studio を起動する方法は、次のとおりです。

  1. スタートメニューから、[スタート > すべてのプログラム > Micro Focus Visla COBOL 2010 > Micro Focus Visual COBOL 2010] を順にクリックします。
  2. 初めて Studio を起動した場合は、環境を設定するように求められます。[全般的な開発設定] を選択します。

次の図のような IDE が画面に表示されます。

大きいペインには、ソリューションとプロジェクトが開きます。この段階では、ソリューションとプロジェクトを作成していないので、リストには何も表示されません。その下のペインは、「出力」ウィンドウです。ここには、IDE のメッセージとコンパイラメッセージが表示されます。右側のペインは、ソリューション エクスプローラです。ここには、ソリューションの構造が表示されます。「ソリューション エクスプローラ」ペインの下には、タブが表示されます。ソリューションエクスプローラは、デフォルトで表示されます。

これらのペインのどれかが表示されていない場合は、[表示] メニューから表示できます。

ソリューションとプロジェクトの作成

最初の作業は、ソリューションとプロジェクトの作成です。ソリューションは、アプリケーション作成のために連携して動作するプロジェクトを格納するコンテナです。ソリューションの拡張子は .sln で、人間が理解できるテキストファイルです。Microsoft では、Visual Studio 以外ではファイルを編集をしないことを推奨しています。

COBOL プロジェクトの拡張子は .cblproj です。この場合も人間が理解できるファイルですが、Microsoft では、編集しないことを推奨しています。Net Express のユーザにとっては、.cblproj プロジェクトファイルは、これまでの .app ファイルと似たようなものであると考えられます。プロジェクトの種類が異なると、拡張子も異なります。たとえば、C# プロジェクトの拡張子は .csproj です。

ここでは、プロジェクトとソリューションを作成します。次の手順で行います。

  1. Visual Studio を起動します。
  2. [ファイル] > [新規作成] > [プロジェクト] の順にクリックして、プロジェクトを新規作成します。
  3. 「プロジェクトの種類」の下で、「COBOL プロジェクト」 を展開します。
  4. [Windows Formsアプリケーション] テンプレートを選択します。
  5. プロジェクト名」フィールドで、プロジェクトの名前として WinHello を指定します。
  6. プロジェクト名」フィールドと「ソリューション名」フィールドの名前が同じであることに注意してください。どちらか一方を変更すると、他方も自動的に変更されます。

  7. 場所」フィールドで、このチュートリアルを配置するディレクトリを指定します。たとえば、c: ドライブに Tutorials というフォルダを作成する場合は、場所を c:¥tutorials に変更します。ソリューションは、プロジェクト名に対応したサブディレクトリ WinHello に保存されます。
  8. [OK] をクリックします。

ソリューション、プロジェクト、および空のフォームが作成されます。空のフォームは、フォーム デザイナで開かれます。ソリューション エクスプローラに、WinHello プロジェクトが表示されます。このプロジェクトには、次のものが含まれます。

ボタンとラベルのペイント

ここでは、ページやフォームのボタンとラベルのペイントを行います。

  1. 次の手順で、ボタンをペイントします。
    • 、または [表示] > [ツールボックス] をクリックします。
    • ボタン」 オブジェクトが表示されていない場合は、テキストボックスの [コモン コントロール] をクリックします。
    • ボタン」オブジェクトにマウスポインタを移動します。
    • ボタンをページまたはフォームの上へドラッグします。
  2. ボタンのテキストプロパティを編集してボタンのテキストを "Say Hello" に変更します。次の手順で行います。
    • ボタンを右クリックし、[プロパティ] をクリックします。
    • 「表示」セクションのテキストプロパティまでスクロールします。
    • テキストを Say Hello と編集します。
    • ボタンの名前のプロパティは button1 です。
  3. フォーム上にラベルをペイントします。
  4. テキストプロパティを編集して、ラベルのデフォルトのテキストを消去します。
  5. ラベルコントロールの名前のプロパティは Label1 (または label1) です。

クリックイベントハンドラの追加

ここでは、イベントハンドラを追加し、ボタンをクリックすると "Hello World" と表示されるようにします。

  1. ボタンをダブルクリックして、ボタンにクリックイベントハンドラを作成します。

    コードに button1_Click というメソッドが生成されます。

  2. button1_Click メソッドのコードを確認します。コードはスケルトンで、何も行いません。手続き部は空です。このチュートリアルでは、アプリケーションの実行後に、残りのコードを確認します。
  3. button1_Click メソッドの手続き部に、次の行を挿入します。
    move "Hello World!" to self::label1::Text

    または、同じことを、次のように書くこともできます。

    set self::label1::Text to "Hello World!"

これにより、テキスト "Hello World" が、ペイントしたラベルのテキストプロパティに転記されます。

COBOL アプリケーションのビルドと実行

[ビルド] メニューで、ソリューションやプロジェクトを、ビルドするか、リビルドするかを選択できます。[ビルド] を選択すると、前回のビルド後に変更されたファイルのみがビルドされます。[リビルド] を選択すると、前回のビルド後に変更があったかどうかにかかわらず、プロジェクト内のすべてのファイルがビルドされます。

プロジェクトをビルドして実行する方法は、次のとおりです。

  1. [ビルド] > [構成マネージャ] の順にクリックし、使用するビルド構成を確認します。
  2. [アクティブなソリューション構成] で[デバッグ]が選択されていることを確認し、[閉じる] をクリックします。
  3. [ビルド] > [WinHello のビルド] の順にクリックします。
  4. 「出力」ビューを表示して、プロジェクトが正しくコンパイルされたことを確認します。このビューを表示するには、[表示] > [出力] をクリックします。
  5. [デバッグ] > [デバッグなしで開始] をクリックします。
  6. ページまたはフォームが表示されたら、[Say Hello] をクリックします。
  7. 右上にある X をクリックして、ページまたはフォームを閉じます。

プロジェクトの参照

プロジェクトを作成すると、「参照」フォルダが作成されます。このフォルダには、System アセンブリや Windows アプリケーション用の System.Windows.Forms など、プロジェクトで使用するクラスを含むアセンブリが含まれています。ソリューション エクスプローラで「参照」フォルダを展開すると、これらを表示することができます。

他のアセンブリの他のクラスを使用するコードを作成する場合は、参照としてアセンブリを追加します。次の手順を行います。

  1. ソリューション エクスプローラでプロジェクトを右クリックします。
  2. [参照の追加] をクリックします。
  3. [.NET] タブでは、.NET Framework のアセンブリか他の.NET アセンブリを選択できます。Micro Focus までスクロールすると、使用できる Micro Focus アセンブリがわかります。
  4. [COM] タブでは、マシンに登録した COM オブジェクトを選択できます。
  5. [プロジェクト] タブでは、.NET コードが参照する他のアセンブリを選択できます。このチュートリアルでは、プロジェクトに使用できるアセンブリはありません。

詳細は、Visual Studio のヘルプを参照してください。

プロジェクトのプロパティ

プロジェクトのプロパティは、プロジェクトの特性を定義し、特にプロジェクトの動作を制御できるようにします。

ソリューション エクスプローラの下の「プロパティ」ウィンドウに、プロジェクトのプロパティの概要がデフォルトで動的に表示されます。プロジェクトのプロパティの概要を表示する方法について、次に説明します。

プロジェクトのプロパティの詳細な内容は、ソリューション エクスプローラでプロジェクトを選択して、[プロジェクト] > [プロパティ] をクリックすると表示できます。詳細なプロパティには、共通プロパティと構成プロパティの 2 つのカテゴリがあります。共通プロパティはすべての構成に適用されます。構成プロパティは、デバッグやリリースなど、選択した構成のみに適用されます。

ヘルプトピック『COBOL プロジェクトのプロパティ』を参照してください。Visual Studio のヘルプも参照してください。

アセンブリ

各プロジェクトは、1 つのコードアセンブリにビルドされます。

アセンブリについては、Visual Studio のヘルプを参照してください。Visual Studio のヘルプでは、アセンブリを「1 つの単位としてバージョンが設定されディプロイされた 1 つまたは複数のファイルの集合」と説明しています。アセンブリは、.NET フレームワークアプリケーションの主要なビルドブロックです。マネージタイプとマネージリソースはすべてアセンブリに格納され、アセンブリ内のみでアクセス可能であるか、または、他のアセンブリのコードからアクセス可能であるかがマークされます。アセンブリは、セキュリティ面でも重要な役割を果たします。コードアクセスセキュリティシステムでは、アセンブリの情報を使用して、アセンブリ内のコードが与えられた特権セットを判断します。アセンブリの基本概念については、Visual Studio のヘルプを参照してください。

アセンブリは、プロジェクトをビルドすると、自動的に作成されます。アセンブリをグローバルアセンブリキャッシュに含める場合は、厳密な名前のアセンブリを作成する必要があります。厳密な名前を使用すると、アセンブリのセキュリティを向上させ、マシン上のすべてのアプリケーションでそのアセンブリを共有できます。

生成コードの確認

このチュートリアルのページまたはフォームに対し、2 つのパーシャルクラスがフォームデザイナによって作成されます。一方のパーシャルクラスには、アプリケーションの生成コードが含まれています。このコードは、編集や追加ができます。他方のパーシャルクラスは、ファイル Form1.Designer.cbl にあります。このファイルにはデザイナに所有されているコードが含まれています。このコードは編集しないでください。

生成コードを含むパーシャルクラスには、特に次のものが含まれています。

デザインビューでのイベントハンドラの確認

デザインビューのコントロールをダブルクリックすると、クリックイベントハンドラが作成され、メソッドが生成コードに挿入されます。この方法で、Button1_Click イベントハンドラを作成しました。

イベントハンドラは、名前を変更したり、他のものを追加および削除したりすることができます。ただし、これらの作業はデザインビューで行う必要があります。アプリケーションのコード上では行わないでください。コードでこれを行うと、デザインからコードが再生成された場合に上書きされる可能性があります。

イベントハンドラの名前を変更する方法は、次のとおりです。

  1. デザインビューを表示します。1 つの方法としては、ソリューション エクスプローラでページまたはフォームを選択して をクリックします。
  2. Say Hello] ボタンを選択します。
  3. 「プロパティ」ペインで、 をクリックしてイベントを表示します。イベントをスクロールして、使用できるものを確認します。
  4. クリックイベントハンドラの名前を「readButton1_Click」に変更します。
  5. コードビューを表示します。末尾にあるメソッドの名前が「readButton1_Click」に変更されていることと、手続き部はまだそのままであることに注意してください。

誤ってコントロール (たとえばラベルコントロールなど) をダブルクリックした場合は、要求していないイベントハンドラが生成されます。このイベントハンドラは、コードビューで単純に削除することはできません。イベントハンドラコードはデザインにもあるからです。つまり、この場合はイベントハンドラをデザインビューで削除する必要があります。方法は、イベントハンドラの名前を編集したときとほぼ同じですが、この場合は、名前を編集するのではなく、削除します。

スタートアップフォームの変更

ここでは、もう 1 つ別のフォームを追加しスタートアップフォームとして使用します。

先に作成したフォームは、Form1 という名前になりました。アプリケーションを実行すると、このフォームが開きます。フォームの名前を変更する場合は、アプリケーションを起動するフォームの名前も変更する必要があります。同様に、このフォームを削除する場合は、別のフォームをスタートアップフォームとして指定する必要があります。

この作業を実際に行ってみるために、もう 1 つフォームを追加し、これをスタートアップフォームとして使用します。次の手順で行います。

  1. 2 番目のフォームを最初のフォームと同様に作成します。
    1. ソリューション エクスプローラでプロジェクトを右クリックします。
    2. [追加] > [新しい項目] をクリックします。
    3. 必要に応じて、Web フォームまたは Windows フォームを選択します。フォームに名前 (HelloAgain など) を指定します。
    4. フォームをペイントし、イベントハンドラを追加します。Hello World の場合と同じようなフォームをペイントすることができますが、テキストを "Hello again" などのように少し変えます。
  2. プログラム main.cbl を編集して、メインフォームを新しいフォームに設定します。メインフォームを定義する行を編集します。次の行を編集します。
    class class-main-form as "Form1"

    この行を、次のように変更します。

    class class-main-form as "HelloAgain"
  3. アプリケーションをビルドして実行します。

COBOL プロジェクトのデバッグ

Visual Studio の COBOL プロジェクトのビルド構成には、リリースとデバッグの 2 種類あります。デフォルトでは、デバッグがアクティブな構成として設定されます。ビルド構成は、「構成」ドロップダウンリストで変更することができます。「構成」ドロップダウンリストは、ツールバーとプロジェクトプロパティにあります。

プロジェクトをデバッグするには、デバッグ構成でプロジェクトを正しくビルドする必要があります。ここでは、ビルドは済ませているので、プロジェクトをステップ実行して、正しく動作することを確認します。

  1. 「構成」ドロップダウンリストを確認します。「構成」ドロップダウンリストは、ツールバーと、詳細のプロジェクトプロパティにあります。アクティブな構成が「デバッグ」になっていることを確認してください。これで、プロジェクトのデバッグ準備が整いました。
  2. [デバッグ] > [ステップ イン] をクリックします。

    プロジェクト構成をリビルドするかどうかを確認するメッセージが表示されたら、[はい] をクリックします。

  3. ウィンドウの左側にある黄色の矢印が、実行する最初の行を指していることがわかります。[デバッグ] > [続行] をクリックします。または、ツールバーで青色の [続行] 矢印をクリックします。

IDE ウィンドウを閉じます。ファイルはビルドすると自動的に保存されるので、保存操作を行う必要はありません。