マネージ コードに移行する際の考慮事項

技術によっては制約事項があるか、マネージ コードではサポートされていない場合があります。マネージ コードに移行するには、次の事項を事前に検討する必要があります。

データベース サポート

SQL(DBMAN=ADO) 指令で OpenESQL を使用して、マネージ アプリケーションをコンパイルできます。Micro Focus では、OpenESQL ネイティブ コードとマネージ コードのランタイム システム間で可能な限りソース コードの互換性が維持されるよう努めています。各ランタイム システムには、基盤となるデータベース API および実行環境に基づく拡張、制限、および相違がありますが、埋め込み SQL 文 (DECLARE CURSOR、OPEN、FETCH、CLOSE、SELECT、INSERT、UPDATE、DELETE、CONNECT、DISCONNECT、COMMIT、ROLLBACK など) の大部分は完全に互換性があり、変更は必要ありません。

ADO.NET ランタイム システムには、EXEC ADO 文を使用したオフラインの DataSet および DataTable をサポートする拡張機能があります。また、オブジェクト ホスト変数および従来の COBOL ホスト変数をサポートしています。

次の制約事項は、マネージ コードにおけるデータベース サポートに適用されます。

  • Oracle は、Pro*COBOL を使用したマネージ コードはサポートしていません。対策として、まずコードを ODBC で OpenESQL に移行し、次に ADO.NET でマネージ コードに移行します。
  • OpenESQL に移行する前に、Pro*COBOL 指令 MODE=ANSI および FIPS でコンパイルして、マネージ コードでサポートされていない非 ANSI 規格の構文がコードに含まれるかどうかを確認する必要があります。また、一部の Oracle 拡張機能は OpenESQL によってサポートされている場合がありますが、その他は修正が必要になることがあります。
  • 一部の PL/SQL 文およびブロックは機能する可能性がありますが、マネージ コードに PL/SQL サポートはありません。
  • ストアド プロシージャ呼び出しから出力パラメーターを使用するアプリケーションは、COBOL 指令 NOILNATIVE を使用する必要があります。オブジェクト ホスト変数は、ストアド プロシージャ呼び出しで出力パラメーターには使用できません。
  • ロックを行うペシミスティック同時実行は、Microsoft SQL Server 以外のデータベースの ADO ではサポートされていません。代わりにランタイム システムが、オプティミスティック同時実行の代替となります。

Dialog System アプリケーション

マネージ コードは、Enterprise Developer for Visual Studio 2017 を通して Dialog System アプリケーションをモダナイズする優れた方法です。最初のステップとして、Enterprise Developer でアプリケーションをインポートし、それを新しい IDE でビルドおよび実行できます。次に、アプリケーションを徐々にモダナイズしていくことができます。たとえば、ある Dialog System スクリーンを Windows Form に置き換えたり、.NET ユーザー コントロールを ActiveX としてラップし、それを Dialog System で使用したりすることができます。一方、残りのコードは変更しないまま保持できます。モダナイゼーションのさまざまな技法の詳細については、「Dialog System アプリケーションのモダナイズ」を参照してください。

ライブラリ ルーチン

特定のライブラリ ルーチンは、ネイティブ コードでのみサポートされています。マネージ コードで使用できるルーチンの詳細については、本ドキュメントの「ライブラリ ルーチン」セクションを参照してください。

マネージ コードおよびネイティブ コード

ネイティブ コードは、マネージ コードから呼び出すことができますが、禁止されている環境もあります。たとえば、.NET ストアド プロシージャおよび特定の Java アプリケーション サービスから、ネイティブ COBOL を呼び出すことはできません

ユーザー インターフェイスのモダナイゼーション

Enterprise Developer は、アプリケーションのユーザー インターフェイスをモダナイズするための優れたオプションを提供します。.NET の Windows Presentation Foundation を使用できます。アプリケーション アーキテクチャ、および元のユーザー インターフェイスとバックエンド モジュールの関連付けの強さによっては、問題が発生する可能性がある点に注意してください。

オブジェクト指向プログラミング

.NET フレームワークなどのマネージ環境でコンパイルおよび実行される、手続き型 COBOL を作成して使用できます。ただし、マネージ環境で利用可能なすべての機能を最大限に活用し、コードを他のマネージ言語に公開できるようにするには、マネージ COBOL 構文の使用が必要になる場合があります。マネージ COBOL コードの作成については、次のリソースを参照してください。

  • Micro Focus SupportLine Web サイトで閲覧可能な『COBOL 開発者向けのオブジェクト指向プログラミング入門』 - ダウンロードするには、ここをクリックしてください
  • Enterprise Developer とともにインストールされる [Visual COBOL Samples] サンプル ブラウザーの [Moving to .NET] セクションに含まれるサンプルを確認してください。
  • Microsoft の MSDN の .NET プログラミングに関する大量のリソース、および Java Web サイト上の Java の例も参照できます。

サード パーティ製ソフトウェア

オペレーティング システムを呼び出すサード パーティ API に対する、既存の手続き型コードを確認してください。他のソフトウェア ベンダーによって提供される技術は、マネージ コードでの利用向けに書き替える必要がある場合があります。

Win32 API ルーチン

Win32 API ルーチンは、マネージ コードではサポートされていません。手続き型コードをマネージ COBOL に移行する場合、意図した結果を得るには、Win32 API ルーチンの呼び出しを削除し、同等の .NET 機能を代わりに使用する必要があります。