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