連載
» 2015年08月19日 05時00分 UPDATE

Windows Server 2003のサポート切れにどう対応すべきか(後編):WS2003難民に捧ぐ、VB/ASPのシステムを.NETに移行するための勘所、ツールの選定ポイント (1/2)

2015年7月15日でサポートが終了になったWindows Server 2003。本企画では、Windows Server 2003からアプリケーションを移行するには、どのような検討が必要か、どのような選択肢があるのか、どのように移行したらいいのかを解説します。

[樫山友一,オン・デマンド・ワン]

ツールを使ったマイグレーション概要

 前編の「WS2003移行で泣かないための基礎知識と仮想化、パッケージ購入、スクラッチ開発のメリット/デメリット」では、「Windows Server 2003のサポート切れに対応するためにどのような選択肢があるのか」を解説しました。後編の今回は、変換ツールを使ったマイグレーションについて解説します。サポート切れの対応方法を選択する際における、コード変換ツールによるマイグレーションという選択肢をよく理解していただければと思います。

 以下のマイクロソフトのページにいくつかマイグレーションツールの情報があります。

 マイグレーションツールは、Visual Basic(以下、VB)やASP(Active Server Pages)のソースコードを.NETのソースコードであるC#やVB.NET、ASP.NETに変換します。

マイグレーションのメリット・デメリット

 マイグレーションツールは、パッケージへの移行や再開発に対して、メリットとデメリットがあります。

メリット

 パッケージへ移行する場合や、再度開発を行う場合は、仕様書を作成する必要があります。多くの場合、VBやASPのシステムは、仕様書が存在しないか、現状動作しているものとマッチしていません。仕様書を作成するためのコストは、開発においてかなりのパーセンテージを占めます。マイグレーションでは、この仕様書を再作成しなくてもプロジェクトを進めることが可能です。

 コード変換ツールがコード変換を行うため、コーディングのための工数を再開発に比べて20%以下に抑えることが可能です。

デメリット

 VBやASPの現行システムの基になるソースコードの品質が悪い場合、変換後のコードの品質も同様となるため、コード変換後のメンテナンスコストが改善されません。

 サードパーティーコンポーネントを組み込んでいる場合、移行の工数が掛かることがあります。また、サードパーティーコンポーネントの.NET版がない場合、同様の機能を開発する必要があるので、この場合も工数が掛かることになります。

移行のステップ

 変換ツールを用いて、マイグレーションする場合、まずソースコードの調査が必要です。以下のような点を調査します。

  • コードの行数
  • 有効行数(コメント、空の行を除いた行数)
  • 利用しているOCXやDLL、特にサードパーティーコンポーネントを利用している場合は、その製品とバージョン
  • Variant、Goto、On Error Gotoなど、できれば利用しない方がいい文法を使っているコードの量

 分析については、マイグレーションツールに付属している場合も多く、フリーの分析ツールなどもあるので、必要に応じて、インストールして情報収集します。分析の結果から、おおよそのマイグレーションの工数を割り出すことが可能です。

 特に気を付ける点は、サードパーティーコンポーネントの.NET版がない場合、同様の機能を開発する必要があります。この場合、開発に多くの工数が必要となります。

ASPからASP.NETへ

 ASPとASP.NETは、ファイル構造が異なります。ASP.NETでは、HTMLを生成する部分とビジネスロジックを格納する部分を分けて実装する構造となっています。ビジネスロジックは、「コードビハインド」と呼ばれる部分に格納されます(拡張子は、C#の場合が「*.aspx.cs」、VB.NETの場合は、「*.aspx.vb」)。

 ASPでは、シンプルな構造の場合は、HTML生成部分とビジネスロジックは一つのASPファイルに格納されています。その場合、ASPファイルの中にあるビジネスロジックは変換時に分離して、コードビハインドに移動する必要があります(図1)。

ws2003ikou2_1.jpg 図1 シンプルなASPの構造

 明示的にビジネスロジックが分離されているASPのシステムは、ASPからビジネスロジックを格納したVB6のライブラリを利用しています。*.aspファイルは、シンプルな構造の場合と同様に、*.aspxとコードビハインド(*.aspx.cs/*.aspx.vb)に変換し、ライブラリは、C#またはVB.NETのライブラリに変換して、コードビハインドから呼び出す形になります。(図2)

ws2003ikou2_2.jpg 図2 VB6ライブラリを利用する構造

 ASPからASP.NETへの変換では、データベースの利用以外に特殊なコンポーネントやAPI、サードパーティー製品を組み込んでいるケースは少ないために、VBのWindowsアプリケーションと比較して少ない工数で移行することが可能です。

VB6からVB.NETへ

 WindowsアプリケーションであるVB6のアプリケーションは、.NETベースのWindowsアプリケーションに変換します。多くのWindowsアプリケーションは、サードパーティーコンポーネントを利用しています。

 まず、.NET版があるかを確認し、ない場合は、他の製品に変更するか、一から開発を行うかを検討する必要があります。.NET版が存在する場合でも、設計が大きく異なっていて、APIの互換性がない場合もあります。APIの互換性がない場合は、.NET版を使うのか、一から開発するのかを検討します。

       1|2 次のページへ

Copyright© 2017 ITmedia, Inc. All Rights Reserved.

@IT Special

- PR -

TechTargetジャパン

この記事に関連するホワイトペーパー

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。