背景と目的
vb6で開発した医療パッケージはMicrosoftToolsで一部.Netへマイグレーションしましたが、一部vb6の機能はそのままが残っているます。性能性としえ完全に.Net機能へ置き換えるすべきでした。1. 性能性の低下
VB6コードを維持することで、新しい機能を統合する際に障害となり、全体的なパフォーマンスが低下する問題がありました。2. 保守性の問題
VB6はすでにMicrosoftによるサポートが終了しており、修正や新機能の追加が困難で、将来的なリスクが増大していました。3. 技術的負債の蓄積
一部の機能がVB6に依存しているため、他の最新技術やツールとの統合が難しく、業務効率の向上や革新的なシステムの構築に支障をきたしていました。 こうした背景から、VB6のコードや機能を完全に.NETへ移行し、システムの性能と保守性を強化することが必要でした。医療パッケージのマイグレーション手順
VB6から.NETへの移行では、以下のような非推奨コンポーネントや関数を.NETの機能で置き換える必要があります。1. UI関連コンポーネントの置き換え
VB6で使用されていた以下のUIコンポーネントは.NET環境では非推奨です。VB6.ButtonArrayVB6.LabelArrayVB6.PanelArrayVB6.ToolStripMenuItemArrayVB6.TextBoxArrayVB6.ComboBoxArrayVB6.CheckBoxArrayVB6.RadioButtonArrayVB6.GroupBoxArray
Windows FormsやWPFを活用し、PanelやTableLayoutPanelを使用してUIコントロールを動的に管理する方法に移行しました。これにより、モダンで柔軟性の高いUIをマイグレーションしました。
2. 座標と単位変換の対応
VB6独自の座標変換機能は.NETでサポートされていません。VB6.TwipsToPixelsX/VB6.PixelsToTwipsXVB6.TwipsToPixelsY/VB6.PixelsToTwipsY
Graphics.DpiXやGraphics.DpiYプロパティを使用して座標変換を実装しました。これにより、高解像度ディスプレイにも対応できる柔軟な座標管理をマイグレーションしました。
3. データ操作の改善
配列のコピーや文字列操作に使用されていた以下のVB6関数を置き換えました。VB6.GetItemStringVB6.CopyArray
Array.CopyまたはLINQを使用し、文字列操作にはSubstringやIndexOfを用いました。これにより、より効率的で堅牢なデータ操作が可能になりました。
4. ドライブ・ディレクトリ操作の変更
VB6の以下のコンポーネントも非推奨です。VB6.DriveListBoxVB6.DirListBox()VB6.DriveListBoxArrayVB6.DirListBoxArray
System.IO名前空間を使用して、ドライブやディレクトリの操作を実現しました。Directory.GetFilesやDriveInfoクラスを活用することで、信頼性の高いファイル操作を可能にしました。
5. フォント変更の最適化
VB6で使用されていた以下の機能を置き換えました。VB6.FontChangeSizeVB6.FontChangeBold
Fontクラスを用いて、フォントサイズやスタイルを動的に変更する方法を実装しました。
使用を避ける「VB.」の関数一覧
VB6のレガシー機能を引き継いだ以下のVB.関数も、.NETでは非推奨です。
文字列操作関連
VB.Right→.Substring(length)VB.Left→.Substring(0, length)VB.Mid→.Substring(startIndex, length)
その他の関数
VB.Trim→.NETのString.TrimVB.Len→.NETのString.LengthVB.InStr→.NETのString.IndexOfVB.UCase→.NETのString.ToUpperVB.LCase→.NETのString.ToLower
■開発期間
開発期間 2024年08月から2024年11月 開発規模 10人月■対応範囲
課題のヒヤリング お客様のご要望を打ち合わせでヒアリングしてシステム構成をサポート 要件定義 お客様にてマイグレーション対象要件定義書を作成いただき 弊社内でマイグレーションシステムの要求定義を実施し、システム理解に努めました 基本設計・詳細設計 お客様と打ち合わせで一緒にマイグレーション設計しました。 コーディング プロラム:VB.Net(VisualStudio2019) データベース:PostgreSQL システムテスト マイグレーションテスト シナリオテストのテストケースを作成して実施 受入テスト クライアント様にて対応 システム保守・運用 対応なし■対応技術
プロラム:VB.Net(VisualStudio2019) データベース:PostgreSQLまとめ
VB6から.NETへの移行により、以下の成果を達成しました:- システム性能の向上 最新技術を活用することで、高速で安定したシステムを構築。
- 保守性の強化 モダンなコードベースにより、修正や機能追加が容易に。
- 長期的な運用リスクの低減 技術的負債を解消し、将来的なセキュリティリスクを低減。
- 業務効率の向上 開発効率の向上に加え、メンテナンスコストを削減。
■類似実績
WindowsXPのサポートが終了しました。 クライアントは 現行の運送業界の基幹システムについてVB6から.Netへの移行を行いWindows7での 動作を可能としました。VB6.0での継続には様々なリスクをマイグレーションすることで解消しました。
