ONETECH ASIA
ONETECH ASIA
今すぐ相談する
ContactinsightScanX
VB6から.NETへの完全移行で実現する医療パッケージ

Webシステム開発

VB6から.NETへの完全移行で実現する医療パッケージ

医療 | .Net

VB6から.NETへの完全移行で実現する医療パッケージ
DATA
業界医療
開発期間2024年11月
技術スタック
.Net
カテゴリーWebシステム開発

内容

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 FormsWPFを活用し、PanelTableLayoutPanelを使用してUIコントロールを動的に管理する方法に移行しました。これにより、モダンで柔軟性の高いUIをマイグレーションしました。

2. 座標と単位変換の対応

VB6独自の座標変換機能は.NETでサポートされていません。
  • VB6.TwipsToPixelsX / VB6.PixelsToTwipsX
  • VB6.TwipsToPixelsY / VB6.PixelsToTwipsY
対応策: .NETのGraphics.DpiXGraphics.DpiYプロパティを使用して座標変換を実装しました。これにより、高解像度ディスプレイにも対応できる柔軟な座標管理をマイグレーションしました。

3. データ操作の改善

配列のコピーや文字列操作に使用されていた以下のVB6関数を置き換えました。
  • VB6.GetItemString
  • VB6.CopyArray
対応策: 配列の操作には.NETのArray.CopyまたはLINQを使用し、文字列操作にはSubstringIndexOfを用いました。これにより、より効率的で堅牢なデータ操作が可能になりました。

4. ドライブ・ディレクトリ操作の変更

VB6の以下のコンポーネントも非推奨です。
  • VB6.DriveListBox
  • VB6.DirListBox()
  • VB6.DriveListBoxArray
  • VB6.DirListBoxArray
対応策: .NETのSystem.IO名前空間を使用して、ドライブやディレクトリの操作を実現しました。Directory.GetFilesDriveInfoクラスを活用することで、信頼性の高いファイル操作を可能にしました。

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への移行により、以下の成果を達成しました:
  1. システム性能の向上 最新技術を活用することで、高速で安定したシステムを構築。
  2. 保守性の強化 モダンなコードベースにより、修正や機能追加が容易に。
  3. 長期的な運用リスクの低減 技術的負債を解消し、将来的なセキュリティリスクを低減。
  4. 業務効率の向上 開発効率の向上に加え、メンテナンスコストを削減。
VB6から.NETへの完全移行は、最新の医療パッケージシステムを提供するための重要なステップです。この取り組みにより、今後の拡張性と信頼性を確保し、ユーザーに最適なソリューションをマイグレーションできました。

■類似実績

WindowsXPのサポートが終了しました。 クライアントは 現行の運送業界の基幹システムについてVB6から.Netへの移行を行いWindows7での 動作を可能としました。VB6.0での継続には様々なリスクをマイグレーションすることで解消しました。

VB6.0継続リスクを解消、製造・在庫・販売管理システムを.NETへ変換、VBマイグレーション VB6.0で開発した製造・在庫sap-9598" target="_blank" rel="noopener noreferrer">販売管理システムは.Netへマイグレーションを移行しました。   ONETECHは、業務システムを始めさまざまなシステム開発アプリ開発ソフトウェア開発をベトナム オフショアで開発しています

お問い合わせ

AI・XR・建設DXに関するご相談、お見積もり、採用に関するご質問など、お気軽にお問い合わせください。