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で商品を展示してBtoBの顧客向けに見積書を発行できるWEBプラットフォームの構築をしました。 将来的には3Dオンラインシステムへアップデートする予定です。 プレイヤーは、バイヤー、サプライヤー、展示会主催者、システムオーナーになります。

運用保守をしているデジタルギフトを発行できるシステムの機能拡張を行いました。 新しいデジタルギフト種類の追加、ギフト発行時の時限機能、クライアントの基幹システムとの連携機能など 大幅なアップデートを実施いたしました。 また、今までは店舗様で管理することでギフト発行する仕様でしたが、 ショートメールからユーザー完結でデジタルギフトを発行できるように実装いたしました。

作業効率化できる倉庫レイアウト改善に応じて、倉庫管理システムの改修を対応しました。 倉庫管理システムの機能追加、管理改善を行い、作業の効率化を実施しました。

開発及び保守運営をしているサイトの性能向上させた実績です。WEB UIコンポーネントで取得したデータを、APIGateway、Lambda、dynamoDBで即時に集計します。今回の更新で6000人が同時アクセスするためにシステムのパフォーマンスを改善しました。

無料相談
お問い合わせ