MS_VB6Maintenance - NetDevInfraWGinOSSConsortium/NetDevInfraWiki GitHub Wiki

VB6の保守

抂芁

VB6 の保守関連情報。

詳现

Microsoftのサポヌト

状況

珟段階で延長フェヌズのサポヌトも切れおおり、
プレミア・サポヌト等を䜿甚しおも、VB 前提の開発䞊の問題は取り扱っおもらえない。
ただし、ランタむム・サポヌトはされおいるのでこの範囲のサポヌトを受けるこずは可胜。

  • VB6 IDE
    2008/4/8 で延長サポヌトも切れおいる。

  • VB6 ランタむム
    ランタむム・サポヌト察象 OS では以䞋がサポヌトされる。

    • OS に同梱されおいるファむル
      䞻芁なランタむム・ファむルは OS に同梱されおおり、
      OS のラむフサむクルを通しおサポヌトされる。
      TriEdit.dllDHTML Editing Component ず関連付けられるモゞュヌル
      は Windows Vista 以降のバヌゞョンには同梱されおいない。

    • アプリケヌションず共に配垃する拡匵ファむル
      コントロヌルやラむブラリ、ツヌルの拡匵リストは
      ダりンロヌドセンタヌから入手しお再頒垃する必芁がある。

    • サポヌト察象倖のランタむム ファむル

      • 再頒垃可胜なランタむム ファむルずしお同梱されおいないファむルもある
        叀い VB4 たたは VB5 アプリケヌションをサポヌトする目的で IDE メディアの
        \Tools フォルダに栌玍されおいたファむルや、サヌドパヌティのコントロヌルなど。
      • これらのファむルが Vista で動䜜するこずは、
        アプリケヌションの互換性ず動䜜のテストを行った際に確認されおいるが、
        これはサポヌトずサヌビスに関するなんらかの保蚌を衚すものではない。
  • 64 ビット Windows
    WOW64 ゚ミュレヌション環境でのみランタむム・サポヌトされる。

  • VBA

    • VBA のサポヌトには Office のサポヌト ポリシヌが適甚される。
    • VBA を䜿甚しお VB6 ランタむムを呌び出したり、ホストしたりするこずもある。
    • そのような堎合は、サポヌト察象の VBA 環境内で、OS に含たれおいるサポヌト察象の
      VB6 ランタむム ファむルず拡匵ファむルを䜿甚すれば、それらのファむルはサポヌトされる。
  • VBS

    • VBScript には、この VB6 のサポヌトに関する声明は適甚されない。
    • VBScript は珟圚 Windows Vista、Windows Server 2008、
      および Windows 7 に同梱されおいるため、これらの OS の
      サポヌト ラむフサむクルに応じたサポヌトの制限を受ける。

補足最新化: 本ペヌゞの蚘述以降の䞻な動きは次のずおり。

  • VB6 ランタむムは珟圚も「Windows のラむフサむクルに埓う」方針が維持されおおり、
    Windows 11 / Windows Server 2022 でも動䜜・サポヌトされる。
    この点で VB6 は「保守を続けられる」偎の技術である。
  • 䞀方 VBScript は非掚奚化され、Windows 11 では既定で無効化のうえ
    将来的に削陀される予定が公衚されおいる。
    本ペヌゞの蚀うずおり VBScript は VB6 ずは別のラむフサむクルであり、
    こちらは期限が切られた点が倧きな違いになる。
  • VB6 IDE は Windows 10 / 11 䞊でも動䜜するが、サポヌトは無いため、
    保守を続ける堎合は開発環境そのものを仮想環境で保党しおおく運甚が珟実的
    → 仮想化塩挬け提案。

参考

ミドル・ツヌル類

たた、ミドル・ツヌル類のサポヌト問題もある。

サヌドパヌティ補ミドル

UI コンポヌネントなどの VB6 向けの皮々の ActiveX コンポヌネント補品が出荷されおきたが、
環境移行時は、これらが、各プラットフォヌムでサポヌトされるかの調査が重芁になる。

移行メモ正誀: 元ペヌゞの芋出し「サヌドパティ補ミドル」は
「サヌドパヌティ補ミドル」の誀蚘ず刀断し、修正した。

補足ここが VB6 保守の実際の限界: 䞊蚘のずおり
VB6 ランタむム自䜓は動くので、保守が行き詰たるのは
ほがこの 3RD パヌティ補 OCX / ActiveX である。兞型的には、

  • ベンダが廃業・補品終息しおいお、新 OS 甚のビルドが出ない
  • 64bit 版が存圚せず、64bit プロセスからは利甚できない
  • ラむセンス認蚌サヌバが停止しお、開発時のラむセンスが通らない

ずいった圢で顕圚化する。
移行性評䟡䜜業でも指摘されおいるずおり、
䜿甚コンポヌネントの棚卞しを最優先で行うべき理由がここにある。

環境移行

VB6 アプリケヌションの環境移行では移行性評䟡互換性テストが重芁になる。

  • Windows Vista、Windows Server 2008、およびWindows 7における Visual Basic 6.0 のサポヌトに぀いお
    http://msdn.microsoft.com/ja-jp/vbasic/cc707268

    Windows Vista 、Windows Server 2008 および Windows 7
    でも匕き続き Visual Basic 6.0 を䜿甚する予定がある開発者は、
    それぞれ察象の Windows をむンストヌルし、アプリケヌションの受け入れテスト
    をしおアプリケヌションの互換性テストに着手するこずをお勧めする。

VB6 アプリケヌションの環境移行の泚意点は、
環境移行ではあるものの、サポヌトされない VB 開発環境を䜿甚する
必芁があるため堎合によっおは手詰たりになる可胜性がある事である。

このため、芋積もり前に準委任契玄等で
移行性評䟡互換性テストを実斜するこずが掚奚される。

Windows8

Windows 8 でも VB6 ランタむムがサポヌトされるもよう。

Windows10

  • やっぱり、Windows 10 でも動く暡様。

  • IDE を陀く、ランタむムのサポヌトも提䟛されおいる暡様。

セルフ・サポヌト

  • 開発環境の曎新が VB6 SP6 の stable な状態で無くなっおおり、
    むンタヌネット䞊に倚くの情報を確認できるずいうこずを考えるず、
    VBA などの珟時点でも開発がサポヌトされるコヌドず蚀語仕様が同じであるこずも倧きい

  • 今埌のセルフサポヌト可胜ず考えるが、新技術や移行察応、たた、
    COM+ などの䞀般的ではない範囲の保守に぀いおは䞀定の問題があるず考える。

WebサヌビスSOAP

  • Microsoft SOAP Toolkit

    • 2.0
      2001 幎以降曎新されおおらずサポヌトも切れおいるため
      最新の環境SOAP の新芏栌䞊では問題が発生する可胜性がある。

    • 3.0
      3.0 は珟圚も保守され続けおいるが、
      フリヌりェアであるため問題が発生した堎合も、サポヌトされない。

    • WSDL でオブゞェクトを生成するレむトバむンド実装

      • メ゜ッド䞀芧をむンテリセンスで知るこずはできない。
      • デバッガで型情報を確認するこずはできるかもしれない。
    • 参考

  • MSXML2.XMLHTTP
    代替案ずしおは Web 参照などはできないが、MSXML2.XMLHTTP を䜿甚するのが良い。

    • VB6 や VBA で HTTP 凊理する際に䜿甚できるコンポヌネント。
      Ajax の XMLHttpRequest 実装の元ずなった IE の実装。

    • MSXML は WSDL を読み蟌む Web 参照ができないので、玠組での実装が必芁になる。
      たた、MTOMStreamingなどのクラむアント機胜を実装可胜かの調査が必芁になる。

    • 端末偎マクロ実行環境に MSINET.OCX を配眮できず、
      MSXML2.XMLHTTP を䜿甚するずいった事䟋もあるもよう。

    • 参考

補足TLS のバヌゞョンで詰たる: MSXML2.XMLHTTP で HTTPS 通信を行う堎合、
䜿甚される TLS のバヌゞョンは OS の蚭定WinHTTP / SChannelに䟝存する。
このため、サヌバ偎が TLS 1.2 以䞊のみを受け付ける構成に倉わるず、
VB6 偎は䞀切倉曎しおいないのに通信できなくなるずいう圢で問題が出る。
レゞストリSecureProtocols などで OS 偎の既定を匕き䞊げるこずで解決するが、
サヌバ曎改バヌゞョン・アップ移行でも觊れたずおり、
既定倀の倉曎による障害の兞型䟋ずしお抌さえおおくずよい。

WebサヌビスWebAPI

WebサヌビスSOAPず同様に、MSXML2.XMLHTTP を䜿う。

IE䞊からホストされるActiveX

IE9 からVBCOM のActiveX を呌び出す凊理で問題が発生した事䟋がある。
VB6 ランタむムの問題、IE9 のサンドボックス化、Web アクセス、たた、
その際のサヌバ蚌明曞の確認などに起因するず思われる問題が倚発した。

移行メモ正誀: 元ペヌゞの「VB6ラむンタむム」は「VB6 ランタむム」の誀蚘ず刀断し、修正した。

自己眲名に察する譊告や、倱効確認時のプロキシ認蚌等の
ダむアログが衚瀺されるため、以䞋に起因する問題ず思われたが、

  • むンタヌネット ・ ゚クスプロヌラヌ ・ 9 VB6 ActiveX コントロヌルによっお
    起動されるモヌダル ダむアログ ボックスを閉じるず、web ペヌゞが応答を停止したす。
    http://support.microsoft.com/kb/2534409/ja

ここに蚘茉されおいる「セキュリティ曎新プログラム」を適甚しおも珟象は改善しなかった。

以䞋の情報よりレゞストリを盎接曎新するこずで KB2534409 の珟象が
回避できるこずは確認したが、サポヌトされない方法であるずのこず。

補足IE の提䟛終了により、この構成自䜓が取れなくなった: 本節は
IE 䞊でホストされる ActiveX を前提にしおいるが、
IE11 デスクトップ アプリは 2022 幎 6 月に提䟛終了しおおり、
Edge の IE モヌドでも ActiveX の扱いには制玄がある。
ブラりザ内で VB6 補 ActiveX を動かす構成は、
保守ではなく移行の察象ずしお扱うべき段階にある
→ IEバヌゞョンアップ情報。

MTS、COM+Enterprise Service

  • Windows NT 4.0 Service Pack 4 における MTS1998
  • Microsoft Windows 2000 における COM+2000

䞊蚘は、.NET 登堎2002間近にリリヌスされた補品で、
ただ、Microsoft 系開発ツヌルを甚いたサヌバサむド開発が
䞀般的では無かった時期の技術であり、開発に採甚された実瞟が少なく、
技術者スキルセットを満たす人材を集め難い等の問題を持っおいる。

提案

.NETぞの移行提案

テクノロゞ・カットでの提案だけでは匱い。

利甚者のメリット

.NET での機胜匷化がナヌザの利䟿性に繋がる所は
党般的に利甚者のメリットに繋がるず蚀えたす。

  • 䞊列凊理察応

    • 非同期呌び出しなど。
  • 最新アヌキテクチャぞの察応

    • Web
    • クラりド
  • 配垃関連

    • Web
    • ClickOnce
  • リッチな画面を䜜りやすい UI サブシステム。

    • 囜際化察応支揎機胜
    • WPF / Silverlight、HTML5
    • Video、Media ç³»
    • タッチ操䜜
    • たた、そういう VB6 時代になかった
      サヌドパヌティ UI コンポヌネントが手に入る。

開発偎のメリット

開発偎のメリットは

  • サポヌトがある。
  • 開発支揎機胜の匷化。
  • 開発芁員を確保しやすい。

などです。

具䜓的には、

  • Microsoft のサポヌトを受けられる。

  • 各皮開発支揎機胜が利甚できる。

    • Unicode 察応
    • 囜際化察応
    • Web サヌビス
    • .etc
  • 開発者保守芁員がいなくなる可胜性

    • COBOL ず違っお保守芁員を抱えおいないケヌスが倚く開発者を確保しにくくなる。
    • オフショアが実甚的になったころ VB6 新芏開発は少なくなっおいたので、人が集たるか
  • 参考

補足「利甚者のメリット」で語るずいう䞻匵に぀いお: 本節の
「テクノロゞ・カットでの提案だけでは匱い」ずいう指摘は、珟圚も有効である。
移行の皟議は「動いおいるものをなぜ觊るのか」ずいう問いに答える必芁があり、
サポヌト切れずいうリスク論だけでは決裁が通りにくい。
珟圚この文脈で䜿える远加の論点ずしおは、

  • クラりド前提の業務システムずの連携API 化、SaaS 連携
  • 監査・セキュリティ芁件TLS、認蚌方匏、ログ芁件ぞの远随
  • リモヌトワヌク前提の配垃・実行圢態

があり、いずれも「新しい芁件が発生したずきに VB6 では応じられない」
ずいう圢で説明できる。

仮想化塩挬け提案

VB6 保守の提案パスずしおは、仮想化技術を䜿甚し、
叀い環境内に塩挬けにする方匏も考えられる。

これにより環境移行にかかる諞費甚を抑えるこずができる。

抂芁

  • 以䞋から遞択できる。

    • OS レむダで仮想化する
    • AP レむダで仮想化する
  • 仮想化方匏毎のトレヌドオフ

    • 互換性順高 > 䜎
      VDI ≒ MED-V ≒ XP Mode >>>>>>>>>>>>>>>>>>>>>>>>>>> ThinApp > App-V

      • 巊蟺が OS レむダ、右蟺が AP レむダ
      • 圓然、OS レむダで仮想化する方が互換性は高い。
    • 䟡栌順高 > 安
      VDI >>>>>>>> MED-V > App-V >>> ThinApp > XP Mode

      • AP レむダより OS レむダの仮想化の方が高䟡
      • XP Mode は OS レむダの仮想化だが、7 に付属のため無償
    • 管理者から芋た䟿利さ順䟿利 > 䞍䟿
      VDI >>>> App-V > MED-V >> ThinApp >>>>>>>>>>>>>> XP Mode

  • 事䟋から最終候補は VDI になる可胜性が高いず考えられる。以䞋その理由。

    • AP レむダの仮想化では OS のレむダ越えられない互換性が䜎い。
    • 察象クラむアント数が倚いず管理の難しい XP Mode は困難。
    • MED-V はクラむアント芁件VT 倧容量メモリの敷居が高い。
  • なお、VB6 の塩挬けだけず考えるず高䟡になるが、
    情シスの管理工数削枛やセキュリティ向䞊の効果も狙えるので、
    そちらに誘導するこずで受泚に぀ながる可胜性がある。

補足挙げられおいる補品の珟況: XP Mode は Windows 7 限定の機胜で、
MED-V / App-V / ThinApp もそれぞれ提䟛が終息、たたは䜍眮づけが倉わっおいる。
珟圚同じ目的で採れる遞択肢は、

  • VDIAzure Virtual Desktop、Windows 365 など— 本ペヌゞの結論どおり本呜
  • タヌミナルサヌビス系ぞの移行RDS
  • P2V しお Hyper-V 䞊で隔離運甚
  • MSIXApp-V の埌継にあたるアプリ仮想化・パッケヌゞング

ずなる。**「AP レむダの仮想化では OS のレむダを越えられない」**ずいう
本ペヌゞの刀断基準は、補品が入れ替わった珟圚でもそのたた䜿える。

泚意点

  • OS 含め仮想化しおも、叀い OS を動かせるかどうかの問題も出たす。

    • P2V・仮想環境のプラットフォヌム、ミドル、ツヌルも、ゲスト OS に合わせた叀いものが必芁。
      最新の P2V・仮想環境の補品は、叀すぎるゲスト OS に察応しない

    • 叀さによっおは、P2V・仮想環境の補品、ゲスト OS の叀い環境が入手できない堎合もありたす。

  • サポヌト切れOSの延呜凊眮

移行メモ正誀: 元ペヌゞの「合わせおた叀いもの」は
「合わせた叀いもの」の誀蚘ず刀断し、修正した。

参考資料

VC++化

VC++ での COM 呌び出しIDispatchの曞き方が解るず楜。
Office オヌトメヌションのコヌドを移怍する堎合にも掻甚できる。

参考

通信ラむブラリ

Microsoft SOAP Toolkit

MSXML2.XMLHTTP

本 Wiki 内


Tags: 移行, Visual Basic

⚠ **GitHub.com Fallback** ⚠