visualbasic6.0に関するリスクは主に2つ存needtec.sakura.ne.jp/doc/visualbasic6system.pdf ·...
TRANSCRIPT
![Page 1: VisualBasic6.0に関するリスクは主に2つ存needtec.sakura.ne.jp/doc/VisualBasic6system.pdf · VB6ランタイムはWindows8まで保障されて いるが一部のランタイムは非サポート](https://reader033.vdocuments.pub/reader033/viewer/2022050918/5c7f589b09d3f23d428c8442/html5/thumbnails/1.jpg)
![Page 2: VisualBasic6.0に関するリスクは主に2つ存needtec.sakura.ne.jp/doc/VisualBasic6system.pdf · VB6ランタイムはWindows8まで保障されて いるが一部のランタイムは非サポート](https://reader033.vdocuments.pub/reader033/viewer/2022050918/5c7f589b09d3f23d428c8442/html5/thumbnails/2.jpg)
VisualBasic6.0に関するリスクは主に2つ存在する
•サポートに関するリスク
•開発要員に関するリスク
![Page 3: VisualBasic6.0に関するリスクは主に2つ存needtec.sakura.ne.jp/doc/VisualBasic6system.pdf · VB6ランタイムはWindows8まで保障されて いるが一部のランタイムは非サポート](https://reader033.vdocuments.pub/reader033/viewer/2022050918/5c7f589b09d3f23d428c8442/html5/thumbnails/3.jpg)
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まで保障されて いるが一部のランタイムは非サポート](https://reader033.vdocuments.pub/reader033/viewer/2022050918/5c7f589b09d3f23d428c8442/html5/thumbnails/4.jpg)
サードパーティーが提供するOCX、DLLのリスク • VB6.0の開発環境が非サポートになっている状況でサードパーティーが、サポートしつづけるかは疑問である
64ビットプロセスはサポートしない • 64ビットマシンであっても32ビットのプロセスとして動作するので、メモリをいくらつんでも最大4Gバイトまでしか有効にならない。
![Page 5: VisualBasic6.0に関するリスクは主に2つ存needtec.sakura.ne.jp/doc/VisualBasic6system.pdf · VB6ランタイムはWindows8まで保障されて いるが一部のランタイムは非サポート](https://reader033.vdocuments.pub/reader033/viewer/2022050918/5c7f589b09d3f23d428c8442/html5/thumbnails/5.jpg)
VisualBasic6.0が実装できる要員をしづらくなる。
![Page 6: VisualBasic6.0に関するリスクは主に2つ存needtec.sakura.ne.jp/doc/VisualBasic6system.pdf · VB6ランタイムはWindows8まで保障されて いるが一部のランタイムは非サポート](https://reader033.vdocuments.pub/reader033/viewer/2022050918/5c7f589b09d3f23d428c8442/html5/thumbnails/6.jpg)
ソフトウェア産業の実態把握に関する調査 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まで保障されて いるが一部のランタイムは非サポート](https://reader033.vdocuments.pub/reader033/viewer/2022050918/5c7f589b09d3f23d428c8442/html5/thumbnails/7.jpg)
新規案件ではVisualBasic6.0は採用されにくい。
これは新規に業界に入った人間がVisualBasic6.0を扱う機会が少なくなっていくことをあらわす。
すなわち将来、安価な労働力を確保するのが困難になると考えられる
![Page 8: VisualBasic6.0に関するリスクは主に2つ存needtec.sakura.ne.jp/doc/VisualBasic6system.pdf · VB6ランタイムはWindows8まで保障されて いるが一部のランタイムは非サポート](https://reader033.vdocuments.pub/reader033/viewer/2022050918/5c7f589b09d3f23d428c8442/html5/thumbnails/8.jpg)
リスクを把握した上で使い続ける .NETに置き換える 新規機能のみ.NETに置き換える
![Page 9: VisualBasic6.0に関するリスクは主に2つ存needtec.sakura.ne.jp/doc/VisualBasic6system.pdf · VB6ランタイムはWindows8まで保障されて いるが一部のランタイムは非サポート](https://reader033.vdocuments.pub/reader033/viewer/2022050918/5c7f589b09d3f23d428c8442/html5/thumbnails/9.jpg)
OSのバージョンアップやWindows Updateを行なわない前提であるならば、正しい選択 • インターネットにつながない、または、他の
Officeなどのアプリケーションを使用しない閉じた環境であれば、OSのバージョンアップやWindowsUpdateなどのセキュリティを考慮しないでよい。
例:工場の機械を動かす制御システム
![Page 10: VisualBasic6.0に関するリスクは主に2つ存needtec.sakura.ne.jp/doc/VisualBasic6system.pdf · VB6ランタイムはWindows8まで保障されて いるが一部のランタイムは非サポート](https://reader033.vdocuments.pub/reader033/viewer/2022050918/5c7f589b09d3f23d428c8442/html5/thumbnails/10.jpg)
注意: 更新をしないつもりであっても、和暦を使っている場合は、OSに対してアップデートやパッチを当てる可能性が出てくる。
![Page 11: VisualBasic6.0に関するリスクは主に2つ存needtec.sakura.ne.jp/doc/VisualBasic6system.pdf · VB6ランタイムはWindows8まで保障されて いるが一部のランタイムは非サポート](https://reader033.vdocuments.pub/reader033/viewer/2022050918/5c7f589b09d3f23d428c8442/html5/thumbnails/11.jpg)
技術的には正しい選択だが、コストの問題が発生する。
コンバートツールは存在するが、最終的には人間が確認する必要がある。
テストは全部やり直す必要がある
![Page 12: VisualBasic6.0に関するリスクは主に2つ存needtec.sakura.ne.jp/doc/VisualBasic6system.pdf · VB6ランタイムはWindows8まで保障されて いるが一部のランタイムは非サポート](https://reader033.vdocuments.pub/reader033/viewer/2022050918/5c7f589b09d3f23d428c8442/html5/thumbnails/12.jpg)
現状はそのままとして、新規に追加する場所や変更が発生する箇所を.NETで実装する。
これにより、将来のどこかのタイミングで必ず発生する移行作業の作業量を軽減する。
![Page 13: VisualBasic6.0に関するリスクは主に2つ存needtec.sakura.ne.jp/doc/VisualBasic6system.pdf · VB6ランタイムはWindows8まで保障されて いるが一部のランタイムは非サポート](https://reader033.vdocuments.pub/reader033/viewer/2022050918/5c7f589b09d3f23d428c8442/html5/thumbnails/13.jpg)
Interop Forms Toolkit 2.0 Tutorial http://www.codeproject.com/Articles/18954/Interop-Forms-Toolkit-2-0-Tutorial
![Page 14: VisualBasic6.0に関するリスクは主に2つ存needtec.sakura.ne.jp/doc/VisualBasic6system.pdf · VB6ランタイムはWindows8まで保障されて いるが一部のランタイムは非サポート](https://reader033.vdocuments.pub/reader033/viewer/2022050918/5c7f589b09d3f23d428c8442/html5/thumbnails/14.jpg)
新しい機能を.NETを使用して作成する。 • .NETで新しい画面や、機能を作成する。
COMでラッパーしてVB6.0のネーティブコードから使用する。COMなので、そのルールないでのデータの受け渡しは可能 • 文字列や数字、それらを組み合わせたクラスなど
![Page 15: VisualBasic6.0に関するリスクは主に2つ存needtec.sakura.ne.jp/doc/VisualBasic6system.pdf · VB6ランタイムはWindows8まで保障されて いるが一部のランタイムは非サポート](https://reader033.vdocuments.pub/reader033/viewer/2022050918/5c7f589b09d3f23d428c8442/html5/thumbnails/15.jpg)
.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まで保障されて いるが一部のランタイムは非サポート](https://reader033.vdocuments.pub/reader033/viewer/2022050918/5c7f589b09d3f23d428c8442/html5/thumbnails/16.jpg)
インストール後、管理者としてVisualStudioを起動する。
新規プロジェクトで下記のテンプレートを選択する
![Page 17: VisualBasic6.0に関するリスクは主に2つ存needtec.sakura.ne.jp/doc/VisualBasic6system.pdf · VB6ランタイムはWindows8まで保障されて いるが一部のランタイムは非サポート](https://reader033.vdocuments.pub/reader033/viewer/2022050918/5c7f589b09d3f23d428c8442/html5/thumbnails/17.jpg)
VB.NETでCOMのコントロールやインターフェイスを実装できるようになる。
![Page 18: VisualBasic6.0に関するリスクは主に2つ存needtec.sakura.ne.jp/doc/VisualBasic6system.pdf · VB6ランタイムはWindows8まで保障されて いるが一部のランタイムは非サポート](https://reader033.vdocuments.pub/reader033/viewer/2022050918/5c7f589b09d3f23d428c8442/html5/thumbnails/18.jpg)
VB6から使用したい機能をCOM参照可能なクラスのCOM参照可能なパブリックプロシージャとして実装する
![Page 19: VisualBasic6.0に関するリスクは主に2つ存needtec.sakura.ne.jp/doc/VisualBasic6system.pdf · VB6ランタイムはWindows8まで保障されて いるが一部のランタイムは非サポート](https://reader033.vdocuments.pub/reader033/viewer/2022050918/5c7f589b09d3f23d428c8442/html5/thumbnails/19.jpg)
ビルド時にCOMの相互運用として登録される。
![Page 20: VisualBasic6.0に関するリスクは主に2つ存needtec.sakura.ne.jp/doc/VisualBasic6system.pdf · VB6ランタイムはWindows8まで保障されて いるが一部のランタイムは非サポート](https://reader033.vdocuments.pub/reader033/viewer/2022050918/5c7f589b09d3f23d428c8442/html5/thumbnails/20.jpg)
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まで保障されて いるが一部のランタイムは非サポート](https://reader033.vdocuments.pub/reader033/viewer/2022050918/5c7f589b09d3f23d428c8442/html5/thumbnails/21.jpg)
参照設定で作成したDLLを選択する
![Page 22: VisualBasic6.0に関するリスクは主に2つ存needtec.sakura.ne.jp/doc/VisualBasic6system.pdf · VB6ランタイムはWindows8まで保障されて いるが一部のランタイムは非サポート](https://reader033.vdocuments.pub/reader033/viewer/2022050918/5c7f589b09d3f23d428c8442/html5/thumbnails/22.jpg)
VB6側でオブジェクトを作成して使用する。
![Page 23: VisualBasic6.0に関するリスクは主に2つ存needtec.sakura.ne.jp/doc/VisualBasic6system.pdf · VB6ランタイムはWindows8まで保障されて いるが一部のランタイムは非サポート](https://reader033.vdocuments.pub/reader033/viewer/2022050918/5c7f589b09d3f23d428c8442/html5/thumbnails/23.jpg)
VS2008側のSolutionにテストプロジェクトを追加してCOMを参照してそこで単体テストを行う
.NETフレームワークのバージョンは一致させること!
テストコードとCOMが同じソリューションだとデバッグしやすい。
![Page 24: VisualBasic6.0に関するリスクは主に2つ存needtec.sakura.ne.jp/doc/VisualBasic6system.pdf · VB6ランタイムはWindows8まで保障されて いるが一部のランタイムは非サポート](https://reader033.vdocuments.pub/reader033/viewer/2022050918/5c7f589b09d3f23d428c8442/html5/thumbnails/24.jpg)
VisualStudio2008でVB6.0で作成したプロセスにアタッチすることで、.NETで作成したCOMのデバッグが行える。
![Page 25: VisualBasic6.0に関するリスクは主に2つ存needtec.sakura.ne.jp/doc/VisualBasic6system.pdf · VB6ランタイムはWindows8まで保障されて いるが一部のランタイムは非サポート](https://reader033.vdocuments.pub/reader033/viewer/2022050918/5c7f589b09d3f23d428c8442/html5/thumbnails/25.jpg)
Interop Forms Toolkit 2.1インストール時にHelp Fileのショートカットがプログラムファイルに作成できない場合がある。(インストールは正常にできる)
.NETフレームワークをCOMを使用時に読み込むので、VB6のみの時より起動時間がかかる可能性がある。
![Page 26: VisualBasic6.0に関するリスクは主に2つ存needtec.sakura.ne.jp/doc/VisualBasic6system.pdf · VB6ランタイムはWindows8まで保障されて いるが一部のランタイムは非サポート](https://reader033.vdocuments.pub/reader033/viewer/2022050918/5c7f589b09d3f23d428c8442/html5/thumbnails/26.jpg)
COM+.NETの相互運用のインターフェイスでオーバーヘッドがあると思われるので、VB6側のループの中でCOMのプロパティを実行するなどは避けた方が良い。
![Page 27: VisualBasic6.0に関するリスクは主に2つ存needtec.sakura.ne.jp/doc/VisualBasic6system.pdf · VB6ランタイムはWindows8まで保障されて いるが一部のランタイムは非サポート](https://reader033.vdocuments.pub/reader033/viewer/2022050918/5c7f589b09d3f23d428c8442/html5/thumbnails/27.jpg)
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
![Page 28: VisualBasic6.0に関するリスクは主に2つ存needtec.sakura.ne.jp/doc/VisualBasic6system.pdf · VB6ランタイムはWindows8まで保障されて いるが一部のランタイムは非サポート](https://reader033.vdocuments.pub/reader033/viewer/2022050918/5c7f589b09d3f23d428c8442/html5/thumbnails/28.jpg)
Yuya Yamaki’s blog Microsoft InteropForms Toolkit 1.0 http://d.hatena.ne.jp/Yamaki/20061101 Interop Forms Toolkit 2.0 Tutorial http://www.codeproject.com/Articles/18954/Interop-Forms-Toolkit-2-0-Tutorial