@prefix schema: <https://schema.org/> .
@prefix skos: <http://www.w3.org/2004/02/skos/core#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix ks: <https://comcomponent.com/vocab/> .

<https://comcomponent.com/blog/vb6-to-dotnet-migration-practical-guide/#article>
    schema:about <https://comcomponent.com/knowledge/vb6/>, <https://comcomponent.com/knowledge/dotnet/> ;
    schema:mentions <https://comcomponent.com/knowledge/dotnet-framework/>, <https://comcomponent.com/knowledge/windows-forms/>, <https://comcomponent.com/knowledge/activex/>, <https://comcomponent.com/knowledge/ocx/>, <https://comcomponent.com/knowledge/regsvr32/>, <https://comcomponent.com/knowledge/com/>, <https://comcomponent.com/knowledge/bitness-match-requirement/>, <https://comcomponent.com/knowledge/vb6-ide/>, <https://comcomponent.com/knowledge/vb6-runtime/>, <https://comcomponent.com/knowledge/wow64/>, <https://comcomponent.com/knowledge/strangler-fig-pattern/>, <https://comcomponent.com/knowledge/com-interop/>, <https://comcomponent.com/knowledge/vb6-conversion-tool/>, <https://comcomponent.com/knowledge/vbp-file/>, <https://comcomponent.com/knowledge/ado-dao-rdo/>, <https://comcomponent.com/knowledge/csharp/>, <https://comcomponent.com/knowledge/vb-net/> .

<https://comcomponent.com/knowledge/vb6/> a skos:Concept ;
    skos:prefLabel "Visual Basic 6.0(VB6)"@ja ;
    skos:definition "COMコンポーネントを型付きで呼び出せる、レガシーなVisual Basicの開発環境・言語。"@ja ;
    skos:altLabel "VB6" ;
    ks:requires <https://comcomponent.com/knowledge/vb6-runtime/> ;
    ks:verifiedBy <https://comcomponent.com/knowledge/vbp-file/> .

<https://comcomponent.com/knowledge/dotnet/> a skos:Concept ;
    skos:prefLabel ".NET(Core以降)"@ja ;
    skos:definition ".NET Frameworkの後継となる、クロスプラットフォーム対応の.NETランタイム(.NET 5以降)。"@ja ;
    skos:altLabel ".NET Core" ;
    skos:altLabel "モダンな.NET"@ja ;
    ks:succeeds <https://comcomponent.com/knowledge/vb6/> ;
    ks:succeeds <https://comcomponent.com/knowledge/dotnet-framework/> .

<https://comcomponent.com/knowledge/vb6-runtime/> a skos:Concept ;
    skos:prefLabel "VB6ランタイム"@ja ;
    skos:definition "VB6アプリケーションの実行に必要なランタイムコンポーネント群のこと。同梱されるWindowsのサポート期間中は動作対象となる。"@ja ;
    skos:altLabel "msvbvm60.dll" .

<https://comcomponent.com/knowledge/vb6-ide/> a skos:Concept ;
    skos:prefLabel "VB6 IDE(Visual Studio 6.0)"@ja ;
    skos:definition "VB6アプリを作成・保守するための統合開発環境で、2008年4月8日にサポートが終了している。"@ja ;
    skos:altLabel "Visual Basic 6.0 IDE" ;
    skos:altLabel "VB6開発環境"@ja ;
    skos:broader <https://comcomponent.com/knowledge/vb6/> .

<https://comcomponent.com/knowledge/wow64/> a skos:Concept ;
    skos:prefLabel "WOW64"@ja ;
    skos:definition "64bit Windows上で32bitアプリケーションを動作させる互換環境のこと。"@ja ;
    skos:altLabel "32bit互換環境"@ja .

<https://comcomponent.com/knowledge/ocx/> a skos:Concept ;
    skos:prefLabel "OCX"@ja ;
    skos:definition "ActiveXコントロールの実体を持つ.ocx形式のファイル。in-procの形態でホストプロセスに読み込まれる。"@ja ;
    skos:altLabel ".ocxファイル"@ja ;
    skos:altLabel "OLEカスタムコントロール"@ja ;
    skos:broader <https://comcomponent.com/knowledge/activex/> ;
    ks:implements <https://comcomponent.com/knowledge/activex/> .

<https://comcomponent.com/knowledge/activex/> a skos:Concept ;
    skos:prefLabel "ActiveX"@ja ;
    skos:definition "実務ではCOMベースのコントロールやその周辺資産をまとめて指す言葉として使われる技術群。特に.ocx形式のUIコントロールやIE/コンテナへ埋め込む部品を含むことが多い。"@ja ;
    skos:altLabel "ActiveXコントロール"@ja ;
    skos:broader <https://comcomponent.com/knowledge/com/> .

<https://comcomponent.com/knowledge/vb6-conversion-tool/> a skos:Concept ;
    skos:prefLabel "VB6自動変換ツール"@ja ;
    skos:definition "VB6のコードをVB.NETやC#へ機械変換し、人が仕上げるための移行支援ツールの総称。マイクロソフトはパートナー製品としてVBUC・gmStudio・VB Migration Partnerを案内している。"@ja ;
    skos:altLabel "Visual Basic Upgrade Companion" ;
    skos:altLabel "gmStudio" ;
    skos:altLabel "VB Migration Partner" ;
    ks:uses <https://comcomponent.com/knowledge/vb6/> ;
    ks:uses <https://comcomponent.com/knowledge/vb-net/> .

<https://comcomponent.com/knowledge/vb-net/> a skos:Concept ;
    skos:prefLabel "Visual Basic .NET(VB.NET)"@ja ;
    skos:definition ".NET上で動作するVisual Basicで、マイクロソフトの言語戦略では安定した設計を保ち、新しい構文の追加や新しいワークロードへの拡張は行わない方針が明示されている。"@ja ;
    skos:altLabel "VB.NET" ;
    skos:altLabel "Visual Basic" ;
    ks:requires <https://comcomponent.com/knowledge/dotnet/> .

<https://comcomponent.com/knowledge/strangler-fig-pattern/> a skos:Concept ;
    skos:prefLabel "ストラングラーパターン(Strangler Fig)"@ja ;
    skos:definition "既存システムの前にファサードを置き、機能を1つずつ新システムへ段階的に置き換え、最終的に旧システムを停止させる移行設計パターン。"@ja ;
    skos:altLabel "Strangler Fig Pattern" ;
    skos:altLabel "絞め殺しイチジクパターン"@ja .

<https://comcomponent.com/knowledge/com-interop/> a skos:Concept ;
    skos:prefLabel "COM(Component Object Model)"@ja ;
    skos:definition "プロセス内外・言語をまたいでオブジェクトを利用可能にするMicrosoftのバイナリ相互運用規格で、32bit/64bitやプロセス境界を越える橋渡しにも使われる。"@ja ;
    skos:altLabel "COM interop" ;
    ks:requires <https://comcomponent.com/knowledge/bitness-match-requirement/> ;
    ks:requires <https://comcomponent.com/knowledge/com/> .

<https://comcomponent.com/knowledge/bitness-match-requirement/> a skos:Concept ;
    skos:prefLabel "bitness一致要件"@ja ;
    skos:definition "ネイティブモジュール(in-procのCOMコンポーネント、P/Invokeで呼ぶDLL、ベンダー提供SDKのDLLなど)を読み込むホストプロセスと、そのモジュールのビット構成(32bit/64bit)が一致していなければならないという制約。"@ja ;
    skos:altLabel "32bit/64bitの一致"@ja ;
    skos:altLabel "bitness match" .

<https://comcomponent.com/knowledge/regsvr32/> a skos:Concept ;
    skos:prefLabel "regsvr32"@ja ;
    skos:definition "DLLやOCXなどのCOMコンポーネントをレジストリへ登録・登録解除するコマンドラインツール。"@ja ;
    skos:altLabel "regsvr32.exe" .

<https://comcomponent.com/knowledge/com/> a skos:Concept ;
    skos:prefLabel "COM(コンポーネントオブジェクトモデル)"@ja ;
    skos:definition "公開インターフェース、レジストリ登録、Apartment Modelなどを土台にした、Windowsのバイナリ互換コンポーネントモデル。"@ja ;
    skos:altLabel "Component Object Model" .

<https://comcomponent.com/knowledge/csharp/> a skos:Concept ;
    skos:prefLabel "C#"@ja ;
    skos:definition "マイクロソフトが提供する、.NET上で動作するオブジェクト指向のプログラミング言語。"@ja ;
    skos:altLabel "C#言語"@ja ;
    ks:requires <https://comcomponent.com/knowledge/dotnet/> ;
    ks:recommendedFor <https://comcomponent.com/knowledge/vb6/> .

<https://comcomponent.com/knowledge/vbp-file/> a skos:Concept ;
    skos:prefLabel ".vbpファイル(VB6プロジェクトファイル)"@ja ;
    skos:definition "Visual Basic 6.0のプロジェクト構成をASCIIテキストで記録するファイル形式で、Reference=行やObject=行から参照コンポーネントを機械的に抽出できる。"@ja ;
    skos:altLabel "Project File (.vbp)" .

<https://comcomponent.com/knowledge/windows-forms/> a skos:Concept ;
    skos:prefLabel "Windows Forms"@ja ;
    skos:definition "デスクトップGUIアプリケーションを構築するための.NET/.NET FrameworkのUIフレームワーク。"@ja ;
    skos:altLabel "WinForms" .

<https://comcomponent.com/knowledge/dotnet-framework/> a skos:Concept ;
    skos:prefLabel ".NET Framework"@ja ;
    skos:definition "Windowsのコンポーネントとして扱われ、インストールされているOSのライフサイクルに沿ってサポートされるランタイム。System.Messagingの対象範囲。"@ja .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/vb6/> ;
    rdf:predicate ks:requires ;
    rdf:object <https://comcomponent.com/knowledge/vb6-runtime/> ;
    schema:description "VB6アプリの実行はVB6ランタイム(msvbvm60.dll)に依存し、同梱されるWindowsのサポート期間中はサポート対象とされる"@ja ;
    ks:evidence <https://learn.microsoft.com/previous-versions/visualstudio/visual-basic-6/visual-basic-6-support-policy> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/vb6/> ;
    rdf:predicate ks:requires ;
    rdf:object <https://comcomponent.com/knowledge/vb6-ide/> ;
    schema:description "VB6アプリを新規作成・改修して再ビルドする場合はVB6 IDEが必要だが、2008年4月8日にサポートが終了している。コンパイル済みのVB6アプリを動かすだけならランタイムがあればよい"@ja ;
    ks:evidence <https://learn.microsoft.com/lifecycle/announcements/visual-basic-6-support-announcement> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "context-dependent" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/vb6-runtime/> ;
    rdf:predicate ks:requires ;
    rdf:object <https://comcomponent.com/knowledge/wow64/> ;
    schema:description "VB6ランタイムは32bit専用で、64bit Windows上ではWOW64環境でのみサポートされる。32bit Windows上ではWOW64を介さずネイティブに動作する"@ja ;
    ks:evidence <https://learn.microsoft.com/windows/win32/winprog64/running-32-bit-applications> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "context-dependent" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/vb6/> ;
    rdf:predicate ks:incompatibleWith ;
    rdf:object <https://comcomponent.com/knowledge/dotnet/> ;
    schema:description "VB6は32bitプロセスとしてしか動作しないため、64bit専用のDLLやSDKと連携する.NETコンポーネントとは同一プロセス内で単純には両立せず、ビット数を合わせるかプロセスを分ける必要がある"@ja ;
    ks:evidence <https://learn.microsoft.com/windows/win32/winprog64/running-32-bit-applications> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "context-dependent" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/dotnet/> ;
    rdf:predicate ks:succeeds ;
    rdf:object <https://comcomponent.com/knowledge/vb6/> ;
    schema:description "マイクロソフトはVB6アプリを作成・保守するサポートされた手段が存在しないとして、モダンな技術(.NET)への置き換えを推奨している"@ja ;
    ks:evidence <https://learn.microsoft.com/lifecycle/announcements/visual-basic-6-support-announcement> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/vb6/> ;
    rdf:predicate ks:uses ;
    rdf:object <https://comcomponent.com/knowledge/ocx/> ;
    schema:description "グリッドやカレンダーなど高度な画面部品を使うVB6アプリでは、画面がOCX(ActiveXコントロール)に強く依存し、ランタイム拡張ファイルとして主要なOCXコントロール類の配布が必要になる"@ja ;
    ks:evidence <https://learn.microsoft.com/previous-versions/visualstudio/visual-basic-6/visual-basic-6-support-policy> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "context-dependent" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/ocx/> ;
    rdf:predicate ks:implements ;
    rdf:object <https://comcomponent.com/knowledge/activex/> ;
    schema:description "OCXは、ActiveXコントロール(COMベースの画面部品)の実装を担うファイル形式である"@ja ;
    ks:evidence <https://learn.microsoft.com/windows/win32/com/component-object-model--com--portal> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/vb6-conversion-tool/> ;
    rdf:predicate ks:uses ;
    rdf:object <https://comcomponent.com/knowledge/vb6/> ;
    schema:description "VB6自動変換ツールはVB6のソースコードを読み込み、VB.NETやC#のコードへ機械変換する"@ja ;
    ks:evidence <https://learn.microsoft.com/previous-versions/visualstudio/visual-basic-6/partners> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/vb6-conversion-tool/> ;
    rdf:predicate ks:uses ;
    rdf:object <https://comcomponent.com/knowledge/vb-net/> ;
    schema:description "VB6自動変換ツールは変換先としてVB.NETのコードを出力できる(ツールによってはC#も出力できる)"@ja ;
    ks:evidence <https://learn.microsoft.com/previous-versions/visualstudio/visual-basic-6/partners> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/strangler-fig-pattern/> ;
    rdf:predicate ks:recommendedFor ;
    rdf:object <https://comcomponent.com/knowledge/vb6/> ;
    schema:description "業務を止められない、画面・機能が多い場合の段階移行の設計として、既存システムの前にファサードを置き機能を1つずつ新システムへ置き換えるストラングラーパターンが挙げられる"@ja ;
    ks:evidence <https://learn.microsoft.com/azure/architecture/patterns/strangler-fig> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "context-dependent" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/com-interop/> ;
    rdf:predicate ks:requires ;
    rdf:object <https://comcomponent.com/knowledge/bitness-match-requirement/> ;
    schema:description "同一プロセス内でVB6(32bit)と.NET側をCOM相互運用でつなぐには、双方のビット構成(32bit/64bit)を一致させる必要がある"@ja ;
    ks:evidence <https://learn.microsoft.com/windows/win32/winprog64/running-32-bit-applications> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/com-interop/> ;
    rdf:predicate ks:configuredBy ;
    rdf:object <https://comcomponent.com/knowledge/regsvr32/> ;
    schema:description ".NET側の部品をCOM公開してVB6から呼ぶ場合、生成された comhost.dll をregsvr32で登録する"@ja ;
    ks:evidence <https://learn.microsoft.com/dotnet/core/native-interop/expose-components-to-com> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "context-dependent" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/com-interop/> ;
    rdf:predicate ks:requires ;
    rdf:object <https://comcomponent.com/knowledge/com/> ;
    schema:description "COM相互運用は、COM(コンポーネントオブジェクトモデル)の仕組みの上に成り立つ"@ja ;
    ks:evidence <https://learn.microsoft.com/windows/win32/com/component-object-model--com--portal> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/csharp/> ;
    rdf:predicate ks:requires ;
    rdf:object <https://comcomponent.com/knowledge/dotnet/> ;
    schema:description "C#は.NET上で動作する言語である"@ja ;
    ks:evidence <https://learn.microsoft.com/dotnet/fundamentals/languages> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/vb-net/> ;
    rdf:predicate ks:requires ;
    rdf:object <https://comcomponent.com/knowledge/dotnet/> ;
    schema:description "VB.NETは.NET上で動作する言語である"@ja ;
    ks:evidence <https://learn.microsoft.com/dotnet/fundamentals/languages> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/csharp/> ;
    rdf:predicate ks:recommendedFor ;
    rdf:object <https://comcomponent.com/knowledge/vb6/> ;
    schema:description "新規に書く移行後コードの言語としてC#が推奨される。VB.NETは安定した設計を保ち新しい構文・新しいワークロードへの拡張を行わない方針が明示されている一方、C#は言語・エコシステムの進化が続き人材確保でも有利とされる"@ja ;
    ks:evidence <https://learn.microsoft.com/dotnet/visual-basic/getting-started/strategy> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/vb-net/> ;
    rdf:predicate ks:recommendedFor ;
    rdf:object <https://comcomponent.com/knowledge/vb6/> ;
    schema:description "VB6経験者が多く、WinFormsなど既存シナリオを維持するチームでは、文法が近いVB.NETを選ぶ判断も成り立つ"@ja ;
    ks:evidence <https://learn.microsoft.com/dotnet/visual-basic/getting-started/strategy> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "context-dependent" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/vb6/> ;
    rdf:predicate ks:verifiedBy ;
    rdf:object <https://comcomponent.com/knowledge/vbp-file/> ;
    schema:description "VB6プロジェクトが依存するCOM参照・OCXコントロールは、.vbpファイルのReference=行/Object=行から機械的に確認できる"@ja ;
    ks:evidence <https://learn.microsoft.com/previous-versions/visualstudio/visual-basic-6/aa716294%28v%3Dvs.60%29> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/vb6/> ;
    rdf:predicate ks:uses ;
    rdf:object <https://comcomponent.com/knowledge/regsvr32/> ;
    schema:description "OCXなどのCOMコンポーネントに依存するVB6アプリでは、配布はそれらをregsvr32でレジストリ登録する運用が前提になる"@ja ;
    ks:evidence <https://learn.microsoft.com/windows-server/administration/windows-commands/regsvr32> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "context-dependent" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/vb6/> ;
    rdf:predicate ks:uses ;
    rdf:object <https://comcomponent.com/knowledge/com-interop/> ;
    schema:description "移行期に.NET側と橋渡しする場合、VB6アプリは、COM相互運用を通じて.NET側の新機能を呼び出したり、自身のActiveX DLLを.NET側から呼ばせたりする"@ja ;
    ks:evidence <https://learn.microsoft.com/dotnet/core/native-interop/expose-components-to-com> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "context-dependent" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/windows-forms/> ;
    rdf:predicate ks:succeeds ;
    rdf:object <https://comcomponent.com/knowledge/vb6/> ;
    schema:description "VB6フォーム+OCXの画面資産は、.NET移行では主にWindows Formsが移行先となる(コントロールは1対1対応しない)"@ja ;
    ks:evidence <https://learn.microsoft.com/dotnet/desktop/winforms/overview/> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "context-dependent" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/dotnet/> ;
    rdf:predicate ks:succeeds ;
    rdf:object <https://comcomponent.com/knowledge/dotnet-framework/> ;
    schema:description "VB6からの移行先としては、OSに同梱され保守が進まない.NET Frameworkではなく、現行の.NET(.NET 8など)へ直接移行するのが基本線になる"@ja ;
    ks:evidence <https://learn.microsoft.com/dotnet/core/introduction> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .
