• セキュリティ
  • マイグレーション

Visual Basic 6.0(VB6.0)を使い続けるリスク・移行課題、ご存知ですか? 

2018年10月26日

  • 3
  •  

Visual Basic(以下 VB)はマイクロソフトが開発したプログラミング言語で、1990年代に普及していたクライアントサーバーシステムの構築に多用されました。しかし、Webシステムが時代の主流となり、1998年に言語仕様を大幅変更してリリースされたVisual Basic 6.0(VB6.0)が最終バージョンとなっています。現在のVisual Basic .NET(VB.NET)は名称こそ似ているものの、中身はまったく異なるものです。
VB6.0で開発された業務システムは一時期、爆発的に普及したため、いまだに利用している企業もありますが、継続して使用することには多くのリスクがあります。
本記事ではVB6.0で開発された業務システムを使用し続けるリスクや、移行の課題と解決策をお伝えします。


見過ごせない!「Visual Basic 6.0」の継続リスク

VB6.0で開発された業務システムは、「開発環境」「実行環境」の両面でリスクを抱えているため、継続使用は推奨できません。どのようなリスクがあるのか、詳しくご紹介します。

【開発環境のリスク】

業務システムを利用するうえで、仕様変更や機能追加といった改修は日常的に発生します。しかし、VB6.0で開発された業務システムの改修が必要になっても、次のような理由から、安全な開発環境を整備することは困難です。

  • VB6.0の統合開発環境(IDE)は、2008年4月8日でマイクロソフトの延長サポートが終了しています。
  • その後リリースされたWindows 7以降のOSでは、統合開発環境の動作保証はありません。Windows XPでは統合開発環境が動作することが確認されていましたが、2014年4月9日 にOSのサポートが終了したため、使用にはセキュリティリスクが伴うようになりました。
  • VB6.0の開発支援ツールとしてサードパーティが提供していた表計算、入力支援、帳票レポート支援などのコンポーネントも、次々にサポート停止を迎えています。
  • VB6.0の技術者は減少し、保守要員の確保が次第に難しくなります。

【実行環境のリスク】

VB6.0で開発された業務システムは、次の理由から、クライアント側アプリケーションの実行環境(ランタイム)にも不安があるでしょう。

  • マイクロソフトは、現状Windows 7/8/10の有効期間内はランタイムをサポートすることを表明していますが、今後いつまでサポートされるかは定かではありません。
  • サードパーティ製のコンポーネントに実装されているActiveXコントロールは、Windows 7以降では動作保証されていないケースがあります。今、動作しているからといって安心できません。

このようにVB6.0で開発された業務システムを使い続けることには多大なリスクを伴います。VB.NETへと早期に移行することがおすすめです。


 

困った!VBマイグレーションの課題

VB6.0からの移行を検討する際にもっとも有力な手段は、後継言語であるVB.NETへのマイグレーションです。しかし、VB6.0とVB.NETは言語としての仕様が異なっており、互換性はほとんどありません。単純な変換ができないため、多くの問題が発生します。

1. アップグレードウィザードでの最新版への移行は不可能

マイクロソフトはかつてVB6.0のアプリケーションをVB.NETに移行するアップグレードウィザードを提供していましたが、近年では提供をやめています。最後に当該機能が組み込まれたVisual Studio 2008も、2018年4月10日に延長サポートが終了しました。現在、VB.NETの最新版ではアップグレードウィザードを使った移行は不可能です。ウィザードを使用してアップグレードする場合、一度VB6.0からVB.NET 2008にアップグレードして、さらにVB.NETの最新版に変換するという2段階が必要なのです。

2. プログラム生成・実行時に大量のエラーが発生

アップグレードウィザードによるコード変換では、プログラムの生成時や実行時にしばしば大量のエラーが発生します。システムの規模やコーディング内容にもよりますが、一般的な業務システムでは数万~数十万件のエラーが発生するケースも珍しくはありません。通常こうしたエラーはVB6.0およびVB.NETに習熟した技術者が手作業で修正する必要があります。対応できる要員は限られ、原因の調査や修正に多大な工数がかかります。

3. サードパーティ製品への対応の手間が膨大

VBのマイグレーションにおける最大の問題が、サードパーティ製品への対応です。VB6.0のアプリケーションの多くに、表計算、入力支援、帳票レポート支援などのサードパーティ製品が実装されています。しかし、VB6.0向けに提供されていた旧来製品のActiveXコントロールと、後継製品の.NETコントロールには互換性はなく、一般的には移行ツールも提供されていません。アップグレードウィザードを使用しても自動的に変換されないため、ほとんどの場合ソースコードの修正が必須です。それぞれの製品に対する深い知識と、膨大な手作業が必要となります。


ここが違う!シーイーシーのVBマイグレーションサービス

こうした課題を持つ企業に向けて、シーイーシーでは、VB6.0で構築されたシステムをVB.NETに移行するマイグレーションサービスを提供しています。独自の「.NETシステム移行ツール」を活用し、現行システムに蓄積された業務ノウハウを失わずに、戦略的投資が可能なシステムへと再生します。

  現行 マイグレーション後
PCクライアント VB6.0
サードパーティOCX(ActiveX版)
VB6.0ランタイム
windows 7
VB.NET(C#.NET)
サードパーティコンポーネント(.NET版)
.NET Framework
windows 10
DBサーバー Oracle,SQLServer など Oracle,SQLServer など


【シーイーシーのVBマイグレーションの特長】


1.独自の「.NETシステム移行ツール」

マイクロソフト製の移行ツールに加えて、シーイーシーが独自に開発した「.NETコンバートツール」を活用し、平均変換率90%以上という高い変換率を実現します。
.NETコントロールに準拠したソースコードに変換するため、高い可読性、保守性を維持できます。

■ 手作業によるシステム移行の軽減


2.豊富なサードパーティ製品の移行経験

シーイーシーは、サードパーティ製コンポーネントの移行実績も豊富です。ActiveXコントロールからの変換で発生する「.NETコントロールへのデザイン移行」にもスムーズに対応し、変換ツールによる「.NET用コントロールに対応したコード修正」を実現します。
.NET対応製品への変換はもちろんのこと、ベンダーから.NET対応製品が提供されていない場合には、同等機能のコンポーネントに変換します。
また、ご要望に応じてサードパーティ製品の使用を廃止し、.NET標準コンポーネントへの移行にも対応します。

3.データベース変更、言語変更、Web化にも柔軟に対応

VB.NETへのコード変換だけでなく、データベースのバージョンアップや、OracleからSQL Serverなどへのデータベース変更、SQL変換も対応可能です。
また、VB.NETへの移行だけでなく、C#.NETへの移行や、ASP.NETへの移行によるWeb化などにも対応します。

4.品質を重視したアプローチでリスク低減

システムのマイグレーションを成功させる鍵は、非互換機能を正確に把握することです。非互換機能を把握できていなければ、テストフェーズで予想外の結果を招きます。シーイーシーでは、調査・分析を重視したアプローチにより、潜在する移行リスクを可視化し、最適な対策を早期に実施します。
また、VBマイグレーションでは基本的に「ロジックの変わらないプログラムを変換」するため、効率的にテストを進め、効率的にバグを発見する必要があります。VBマイグレーションの特性を踏まえた品質保証プロセスにより、低リスク、高品質なマイグレーションを実現します。

5.便利なワンストップ/トータルソリューション

アセスメントから、設計・開発・テスト・導入、運用・保守に至るまで、すべての移行プロセスにワンストップで対応します。
最適なインフラ環境の構築・セキュリティ対策・アプリケーション改修・データ移行など、マイグレーションにまつわるお客様のご要望に、トータルにお応えします。

【サービス提供の流れ】

移行診断は無償で行います。本格的に着手する前に概算見積をご確認いただけるので安心です。

VB6.0で構築された業務システムは広く普及しましたが、開発環境のサポート終了から10年以上の年月が経過し、今後の使用の継続には多大なリスクを伴います。シーイーシーは独自ツールを開発して、信頼性の高いVBマイグレーションサービスを提供しています。VB6.0のマイグレーションでお困りの企業の方は、どうぞお気軽にお問い合わせください。


<関連製品>

現行システムの延命にとどまらず、戦略的ICT投資が可能なシステムへと再生「VBマイグレーションサービス


 

Spread the love
  • 3
  •  

この記事に含まれるタグ一覧

RECOMMEND ENTRIESよく読まれている記事