Home / 開発実績 / Webシステム開発 / VB6から.NETへの完全移行で実現する医療パッケージ

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

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

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で開発した製造・在庫販売管理システムは.Netへマイグレーションを移行しました。

 

ONETECHは、業務システムを始めさまざまなシステム開発アプリ開発ソフトウェア開発をベトナム オフショアで開発しています

実績一覧

リモート営業支援システム(WEB会議)を研究開発しました。 お店に来客したお客さはスタッフを呼び出してオンラインで通話できるシステムです。Amazon Chime SDK、Lambda、Web会議アプリをAWS上にサーバーレス構成で作成しました。

AWSサーバレスでオンライン教育ライブ配信中にリアルタイムチャットができるシステムを開発しました。配信中に視聴者は主催者へ質問などをリアルタイムで交換できます。アーキテクチャはAWSサーバレス構成でLambdaやApp Syncなどで構築しました。

気象情報のビッグデータと連動してGoogle広告やFacebook広告の広告APIを組み合わせターゲティング広告を配信できるシステムの追加開発です。今回はYOUTUBEなどのAPIに対応しま今回は開発実績だけでなくビッグデータを活用した広告サービスについてもご紹介します。

オフショア開発にはリスクも伴います。今回は、他社のオフショア開発案件で発生したトラブルを当社がどのように解決し、EC-CUBEプロジェクトを成功に導いたかをご紹介します。

音楽系アーティストの共同プロジェクトでのコーポレイトサイトを開発しました。 開発後のシステムの保守も担当しました。 性能要件をヒアリングして設計フェーズからお手伝いしました。 AWSとLaravel (PHP)でサイト構築

無料相談
お問い合わせ