知識マップ: VB6アプリはいつまで動くのか ── ランタイムのサポート状況と現実的な.NET移行の進め方
記事「VB6アプリはいつまで動くのか ── ランタイムのサポート状況と現実的な.NET移行の進め方」の主張を、概念と関係(エッジ)に分解した知識グラフの全体です。各関係には根拠・確認日・確度が付いています。
VB6アプリの実行基盤であるVB6ランタイムはWindowsのサポート期間中は動作対象である一方、開発環境のVB6 IDEは2008年に終了しており、直せる体制が失われることこそが本当のリスクになります。VB6ランタイムは32bit専用でWOW64環境でのみ動作するため、64bit前提の.NETコンポーネントとは同一プロセス内で単純には両立しません。移行は全面リライト・自動変換ツール・段階移行(ストラングラーパターン)の3方式に整理され、どの方式でも.vbpファイルからのOCX・COM参照の棚卸しと、COM相互運用によるVB6と.NETの共存が土台になります。移行後に新規で書く言語はC#が推奨され、VB.NETは既存シナリオの維持に向く安定路線と位置づけられます。
flowchart LR
accTitle: VB6から.NETへの移行の知識マップ
accDescr: VB6のIDEとランタイムのサポート状況の違い、WOW64による32bit制約、全面リライト・自動変換・段階移行(ストラングラーパターン)という移行方式の選択肢、COM相互運用による新旧共存、移行後の言語としてC#とVB.NETのどちらを選ぶかの関係を示す図
vb6["Visual Basic 6.0(VB6)"]
dotnet[".NET(Core以降)"]
vb6_runtime["VB6ランタイム"]
vb6_ide["VB6 IDE(Visual Studio 6.0)"]
wow64["WOW64"]
ocx["OCX"]
activex["ActiveX"]
vb6_conversion_tool["VB6自動変換ツール"]
vb_net["Visual Basic .NET(VB.NET)"]
strangler_fig_pattern["ストラングラーパターン(Strangler Fig)"]
com_interop["COM(Component Object Model)"]
bitness_match_requirement["bitness一致要件"]
regsvr32["regsvr32"]
com["COM(コンポーネントオブジェクトモデル)"]
csharp["C#"]
vbp_file[".vbpファイル(VB6プロジェクトファイル)"]
windows_forms["Windows Forms"]
dotnet_framework[".NET Framework"]
vb6 -->|"前提とする"| vb6_runtime
vb6 -.->|"前提とする"| vb6_ide
vb6_runtime -.->|"前提とする"| wow64
vb6 -.->|"両立しない"| dotnet
dotnet -->|"の後継"| vb6
vb6 -.->|"利用する"| ocx
ocx -->|"実装を担う"| activex
vb6_conversion_tool -->|"利用する"| vb6
vb6_conversion_tool -->|"利用する"| vb_net
strangler_fig_pattern -.->|"推奨される対応"| vb6
com_interop -->|"前提とする"| bitness_match_requirement
com_interop -.->|"で構成できる"| regsvr32
com_interop -->|"前提とする"| com
csharp -->|"前提とする"| dotnet
vb_net -->|"前提とする"| dotnet
csharp -->|"推奨される対応"| vb6
vb_net -.->|"推奨される対応"| vb6
vb6 -->|"で確認できる"| vbp_file
vb6 -.->|"利用する"| regsvr32
vb6 -.->|"利用する"| com_interop
windows_forms -.->|"の後継"| vb6
dotnet -->|"の後継"| dotnet_framework
概念間の関係(全22件)
図と同じ関係を文章でも列挙します。表示している文と機械可読な意味データ(RDFa)は同じ要素に載っています。確度が「確立した関係」のものは直接の関係として、「条件付きの関係」のものは成立条件つきの言明(rdf:Statement)として表現しています。
- Visual Basic 6.0(VB6)はVB6ランタイムを前提とします。
- Visual Basic 6.0(VB6)はVB6 IDE(Visual Studio 6.0)を前提とします。
- VB6ランタイムはWOW64を前提とします。
- Visual Basic 6.0(VB6)は.NET(Core以降)と両立しません。
- .NET(Core以降)はVisual Basic 6.0(VB6)の後継に当たります。
- Visual Basic 6.0(VB6)はOCXを利用します。
- OCXはActiveXの実装を担います。
- VB6自動変換ツールはVisual Basic 6.0(VB6)を利用します。
- VB6自動変換ツールはVisual Basic .NET(VB.NET)を利用します。
- ストラングラーパターン(Strangler Fig)はVisual Basic 6.0(VB6)に対する本記事の推奨です。
- COM(Component Object Model)はbitness一致要件を前提とします。
- COM(Component Object Model)はregsvr32で構成できます。
- COM(Component Object Model)はCOM(コンポーネントオブジェクトモデル)を前提とします。
- C#は.NET(Core以降)を前提とします。
- Visual Basic .NET(VB.NET)は.NET(Core以降)を前提とします。
- C#はVisual Basic 6.0(VB6)に対する本記事の推奨です。
- Visual Basic .NET(VB.NET)はVisual Basic 6.0(VB6)に対する本記事の推奨です。
- Visual Basic 6.0(VB6)は.vbpファイル(VB6プロジェクトファイル)で確認できます。
- Visual Basic 6.0(VB6)はregsvr32を利用します。
- Visual Basic 6.0(VB6)はCOM(Component Object Model)を利用します。
- Windows FormsはVisual Basic 6.0(VB6)の後継に当たります。
- .NET(Core以降)は.NET Frameworkの後継に当たります。
主要概念の定義
機械可読データ
このページはサイトの知識グラフ(_data/knowledge/)から自動生成されています。誤りの指摘はお問い合わせからお願いします。