visualbasic6.0に関するリスクは主に2つ存needtec.sakura.ne.jp/doc/visualbasic6system.pdf ·...

28

Upload: trantruc

Post on 06-Mar-2019

226 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: VisualBasic6.0に関するリスクは主に2つ存needtec.sakura.ne.jp/doc/VisualBasic6system.pdf · VB6ランタイムはWindows8まで保障されて いるが一部のランタイムは非サポート
Page 2: VisualBasic6.0に関するリスクは主に2つ存needtec.sakura.ne.jp/doc/VisualBasic6system.pdf · VB6ランタイムはWindows8まで保障されて いるが一部のランタイムは非サポート

VisualBasic6.0に関するリスクは主に2つ存在する

•サポートに関するリスク

•開発要員に関するリスク

Page 3: VisualBasic6.0に関するリスクは主に2つ存needtec.sakura.ne.jp/doc/VisualBasic6system.pdf · VB6ランタイムはWindows8まで保障されて いるが一部のランタイムは非サポート

VB6ランタイムはWindows8まで保障されているが一部のランタイムは非サポート • Grid32.ocx ,graph32.ocxなどが非サポートになっている。

IDE(統合開発環境)が非サポート • Windows8でも動作するという実験結果はあるが、

非サポートである。

http://msdn.microsoft.com/ja-jp/vstudio/ms788708.aspx

Page 4: VisualBasic6.0に関するリスクは主に2つ存needtec.sakura.ne.jp/doc/VisualBasic6system.pdf · VB6ランタイムはWindows8まで保障されて いるが一部のランタイムは非サポート

サードパーティーが提供するOCX、DLLのリスク • VB6.0の開発環境が非サポートになっている状況でサードパーティーが、サポートしつづけるかは疑問である

64ビットプロセスはサポートしない • 64ビットマシンであっても32ビットのプロセスとして動作するので、メモリをいくらつんでも最大4Gバイトまでしか有効にならない。

Page 5: VisualBasic6.0に関するリスクは主に2つ存needtec.sakura.ne.jp/doc/VisualBasic6system.pdf · VB6ランタイムはWindows8まで保障されて いるが一部のランタイムは非サポート

VisualBasic6.0が実装できる要員をしづらくなる。

Page 6: VisualBasic6.0に関するリスクは主に2つ存needtec.sakura.ne.jp/doc/VisualBasic6system.pdf · VB6ランタイムはWindows8まで保障されて いるが一部のランタイムは非サポート

ソフトウェア産業の実態把握に関する調査 IPA独立法人 情報処理推進機構 2012/4/27

http://www.ipa.go.jp/files/000004628.pdf

VB6.0は COBOL 0.4%以下の その他になる

Page 7: VisualBasic6.0に関するリスクは主に2つ存needtec.sakura.ne.jp/doc/VisualBasic6system.pdf · VB6ランタイムはWindows8まで保障されて いるが一部のランタイムは非サポート

新規案件ではVisualBasic6.0は採用されにくい。

これは新規に業界に入った人間がVisualBasic6.0を扱う機会が少なくなっていくことをあらわす。

すなわち将来、安価な労働力を確保するのが困難になると考えられる

Page 8: VisualBasic6.0に関するリスクは主に2つ存needtec.sakura.ne.jp/doc/VisualBasic6system.pdf · VB6ランタイムはWindows8まで保障されて いるが一部のランタイムは非サポート

リスクを把握した上で使い続ける .NETに置き換える 新規機能のみ.NETに置き換える

Page 9: VisualBasic6.0に関するリスクは主に2つ存needtec.sakura.ne.jp/doc/VisualBasic6system.pdf · VB6ランタイムはWindows8まで保障されて いるが一部のランタイムは非サポート

OSのバージョンアップやWindows Updateを行なわない前提であるならば、正しい選択 • インターネットにつながない、または、他の

Officeなどのアプリケーションを使用しない閉じた環境であれば、OSのバージョンアップやWindowsUpdateなどのセキュリティを考慮しないでよい。

例:工場の機械を動かす制御システム

Page 10: VisualBasic6.0に関するリスクは主に2つ存needtec.sakura.ne.jp/doc/VisualBasic6system.pdf · VB6ランタイムはWindows8まで保障されて いるが一部のランタイムは非サポート

注意: 更新をしないつもりであっても、和暦を使っている場合は、OSに対してアップデートやパッチを当てる可能性が出てくる。

Page 11: VisualBasic6.0に関するリスクは主に2つ存needtec.sakura.ne.jp/doc/VisualBasic6system.pdf · VB6ランタイムはWindows8まで保障されて いるが一部のランタイムは非サポート

技術的には正しい選択だが、コストの問題が発生する。

コンバートツールは存在するが、最終的には人間が確認する必要がある。

テストは全部やり直す必要がある

Page 12: VisualBasic6.0に関するリスクは主に2つ存needtec.sakura.ne.jp/doc/VisualBasic6system.pdf · VB6ランタイムはWindows8まで保障されて いるが一部のランタイムは非サポート

現状はそのままとして、新規に追加する場所や変更が発生する箇所を.NETで実装する。

これにより、将来のどこかのタイミングで必ず発生する移行作業の作業量を軽減する。

Page 14: VisualBasic6.0に関するリスクは主に2つ存needtec.sakura.ne.jp/doc/VisualBasic6system.pdf · VB6ランタイムはWindows8まで保障されて いるが一部のランタイムは非サポート

新しい機能を.NETを使用して作成する。 • .NETで新しい画面や、機能を作成する。

COMでラッパーしてVB6.0のネーティブコードから使用する。COMなので、そのルールないでのデータの受け渡しは可能 • 文字列や数字、それらを組み合わせたクラスなど

Page 15: VisualBasic6.0に関するリスクは主に2つ存needtec.sakura.ne.jp/doc/VisualBasic6system.pdf · VB6ランタイムはWindows8まで保障されて いるが一部のランタイムは非サポート

.NETフレームワークとCOMの相互運用を行うためのツール

http://www.microsoft.com/en-us/download/details.aspx?id=3264

Page 16: VisualBasic6.0に関するリスクは主に2つ存needtec.sakura.ne.jp/doc/VisualBasic6system.pdf · VB6ランタイムはWindows8まで保障されて いるが一部のランタイムは非サポート

インストール後、管理者としてVisualStudioを起動する。

新規プロジェクトで下記のテンプレートを選択する

Page 17: VisualBasic6.0に関するリスクは主に2つ存needtec.sakura.ne.jp/doc/VisualBasic6system.pdf · VB6ランタイムはWindows8まで保障されて いるが一部のランタイムは非サポート

VB.NETでCOMのコントロールやインターフェイスを実装できるようになる。

Page 18: VisualBasic6.0に関するリスクは主に2つ存needtec.sakura.ne.jp/doc/VisualBasic6system.pdf · VB6ランタイムはWindows8まで保障されて いるが一部のランタイムは非サポート

VB6から使用したい機能をCOM参照可能なクラスのCOM参照可能なパブリックプロシージャとして実装する

Page 19: VisualBasic6.0に関するリスクは主に2つ存needtec.sakura.ne.jp/doc/VisualBasic6system.pdf · VB6ランタイムはWindows8まで保障されて いるが一部のランタイムは非サポート

ビルド時にCOMの相互運用として登録される。

Page 20: VisualBasic6.0に関するリスクは主に2つ存needtec.sakura.ne.jp/doc/VisualBasic6system.pdf · VB6ランタイムはWindows8まで保障されて いるが一部のランタイムは非サポート

VisualStudioのない環境ではRegasmを使用する。

Regasm AssemblyName.dll /tlb: FileName.tlb /codebase

http://support.microsoft.com/kb/817248/ja

Page 21: VisualBasic6.0に関するリスクは主に2つ存needtec.sakura.ne.jp/doc/VisualBasic6system.pdf · VB6ランタイムはWindows8まで保障されて いるが一部のランタイムは非サポート

参照設定で作成したDLLを選択する

Page 22: VisualBasic6.0に関するリスクは主に2つ存needtec.sakura.ne.jp/doc/VisualBasic6system.pdf · VB6ランタイムはWindows8まで保障されて いるが一部のランタイムは非サポート

VB6側でオブジェクトを作成して使用する。

Page 23: VisualBasic6.0に関するリスクは主に2つ存needtec.sakura.ne.jp/doc/VisualBasic6system.pdf · VB6ランタイムはWindows8まで保障されて いるが一部のランタイムは非サポート

VS2008側のSolutionにテストプロジェクトを追加してCOMを参照してそこで単体テストを行う

.NETフレームワークのバージョンは一致させること!

テストコードとCOMが同じソリューションだとデバッグしやすい。

Page 24: VisualBasic6.0に関するリスクは主に2つ存needtec.sakura.ne.jp/doc/VisualBasic6system.pdf · VB6ランタイムはWindows8まで保障されて いるが一部のランタイムは非サポート

VisualStudio2008でVB6.0で作成したプロセスにアタッチすることで、.NETで作成したCOMのデバッグが行える。

Page 25: VisualBasic6.0に関するリスクは主に2つ存needtec.sakura.ne.jp/doc/VisualBasic6system.pdf · VB6ランタイムはWindows8まで保障されて いるが一部のランタイムは非サポート

Interop Forms Toolkit 2.1インストール時にHelp Fileのショートカットがプログラムファイルに作成できない場合がある。(インストールは正常にできる)

.NETフレームワークをCOMを使用時に読み込むので、VB6のみの時より起動時間がかかる可能性がある。

Page 26: VisualBasic6.0に関するリスクは主に2つ存needtec.sakura.ne.jp/doc/VisualBasic6system.pdf · VB6ランタイムはWindows8まで保障されて いるが一部のランタイムは非サポート

COM+.NETの相互運用のインターフェイスでオーバーヘッドがあると思われるので、VB6側のループの中でCOMのプロパティを実行するなどは避けた方が良い。

Page 27: VisualBasic6.0に関するリスクは主に2つ存needtec.sakura.ne.jp/doc/VisualBasic6system.pdf · VB6ランタイムはWindows8まで保障されて いるが一部のランタイムは非サポート

Windows Vista、Windows Server 2008、Windows 7、および Windows 8 に対する Visual Basic 6.0 のサポートに関する声明

http://msdn.microsoft.com/ja-jp/vstudio/ms788708.aspx Visual Basic 6.0 から Visual Basic .NET または Visual Basic

2005 アセンブリを呼び出す方法 http://support.microsoft.com/kb/817248/ja COM 相互運用 (Visual Basic) http://msdn.microsoft.com/ja-jp/library/6bw51z5z.aspx