WS2003難民に捧ぐ、VB/ASPのシステムを.NETに移行するための勘所、ツールの選定ポイント:Windows Server 2003のサポート切れにどう対応すべきか(後編)(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)。
明示的にビジネスロジックが分離されているASPのシステムは、ASPからビジネスロジックを格納したVB6のライブラリを利用しています。*.aspファイルは、シンプルな構造の場合と同様に、*.aspxとコードビハインド(*.aspx.cs/*.aspx.vb)に変換し、ライブラリは、C#またはVB.NETのライブラリに変換して、コードビハインドから呼び出す形になります。(図2)
ASPからASP.NETへの変換では、データベースの利用以外に特殊なコンポーネントやAPI、サードパーティー製品を組み込んでいるケースは少ないために、VBのWindowsアプリケーションと比較して少ない工数で移行することが可能です。
VB6からVB.NETへ
WindowsアプリケーションであるVB6のアプリケーションは、.NETベースのWindowsアプリケーションに変換します。多くのWindowsアプリケーションは、サードパーティーコンポーネントを利用しています。
まず、.NET版があるかを確認し、ない場合は、他の製品に変更するか、一から開発を行うかを検討する必要があります。.NET版が存在する場合でも、設計が大きく異なっていて、APIの互換性がない場合もあります。APIの互換性がない場合は、.NET版を使うのか、一から開発するのかを検討します。
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- サヨウナラ Windows Server 2003! マルウエア対策の定義更新はいつまで続く?
2015年7月15日のWindows Server 2003のサポート終了まで、残り数日です。この日は、Windows XPに対するマイクロソフトのマルウエア対策ソフトの定義ファイル提供も終了する予定です。さて、Windows Server 2003に対するマルウエア対策ソフトへの今後の対応はどうなるのでしょうか。 - Windows Server 2003のタスクをWindows Server 2012 R2に移行する
Windows Server 2003のタスクスケジューラにはエクスポート機能がない。そこでWindows Server 2012 R2側の機能を活用することで、タスクをエクスポート/インポートして移行する方法を解説。 - サポート切れのサーバーOSを使い続けるリスクは経営課題と考えるべき
OSのサポートが終了すると、セキュリティ面で大きな問題を抱えることになる。では、サポート終了後もWindows Server 2003を使い続けることによって、企業はどのようなリスクを負うことになるのだろうか。IPAの渡辺貴仁氏に話を聞いた。 - Windows Server 2003のサポート終了に思うこと
Windows Server 2003のサポート終了まで1年を切った今、あらためてWindows Serverの歴史を振り返ってみたい。また、今後のサーバーOSの方向性についても展望しよう。 - マイクロソフト、新たなWindows Server 2003移行支援策を提供――あらためて早期移行を呼び掛け
2014年7月8日、日本マイクロソフトは「2015年7月15日」にサポートが終了するWindows Server 2003からの移行に関する説明会を開催。新たに2つの移行支援策を提供する。 - Windows Server 2003からの移行前にやっておくべきこと
「2015年7月15日」にサポートが終了するWindows Server 2003。本連載では、現在稼働中のWindows Server 2003から、Windows Server 2012 R2への移行ポイントと手順を解説する。 - Windows Server 2012 R2で行こう!
Windows Server 2003のサポート終了日「2015年7月」がいよいよ迫ってきた。現在Windows Server 2003を利用している企業は、新しいOSへの移行を本格的に検討する必要があるだろう。本稿では、Windows Server 2003から最新のWindows Server 2012 R2へ移行する理由やメリットについて取り上げる。