スライド 1

Similar documents
Microsoft Word - VB.doc

untitled

(OnePoint) ( URL Web Copyright 2005 Microsoft Corporation. All rights reserved. Microsoft Windows Visual Basic Visual Studio Microsoft Corporation

橡WINAPLI.PDF

CD Microsoft, MS-DOS, Windows 95, Windows 98,Windows Me, Windows NT, Windows 2000, Visual Basic, Visual Basic.NET, Visual C#, Excel, ActiveX Microsoft

PowerPoint プレゼンテーション

Visual Basic Oracle Database 11 Release 1

PowerCOBOL ユーザーズガイド

工夫したエクセルの使い方

Microsoft Word - oo4o_extra.doc

BASICとVisual Basic

51664O08.indd

IT資産継承勉強会 第2回 VB資産移行について

Base によるアプリケーション開発とサポート 鎌滝雅久 /OpenOffice.org 日本ユーザー会 OSC2007 Hokkaido 2007 年 6 月 30 日土曜日 10:55-11:40 北海道大学学術交流会館第 4 会議室

内容 1 はじめに インストールの手順 起動の手順 Enterprise Architect のプロジェクトファイルを開く 内容を参照する プロジェクトブラウザを利用する ダイアグラムを開く 便利な機能.

ゲームプログラミング講習 第0章 導入

セットアップガイド


PowerCOBOL ユーザーズガイド

Source Insight

saihata.doc

Oracle Policy Automation 10.0システム要件

Microsoft Word JA_revH.doc

データベースのアップグレード手順

C#の基本

TOEIC

Oracle SQL Developer Data Modeler

Windows XPでの手動USBドライバインストール方法

Windows Powershell 入門

MicroGDS V

ルーレットプログラム

図 2 Excel スプレッドシートの世界 のウィンドウ 図 3 Visual Basic の世界 のウィンドウ 図 3 の VBA ウィンドウは 図 2 の Excel ウィンドウのメニューの ツール をクリックし 開か れるプルダウンメニューで マクロ /Visual Basic Editor

Excelfl—‘ãŁª’Í-flO“Z

VB.NETコンバージョンサービス紹介

VVB6システムからSeasar2を用いたWebシステムへの移植

1. アンケート集計サンプルについて ここでは Windows Azure と SQL Azure を使ってアンケートを実施し アンケート結果を Excel で集計するサンプルについて説明します アンケートは Windows Azure で運用し アンケート結果は SQL Azure に格納されます

JT65HF_To_Hamlog Ver 説明書 JT65 モードの通信プログラム JT65-HF のログデータをリアルタイムで Hamlog へ転送するプログラムです JT65-HF Hamlog と同時に起動して使います JT65 交信中のログ作成が便利になります 主な機能

価格査定システム インストールガイド 目次 はじめに...1 インストール CD の内容...1 インストール手順概要...2 A 価格査定システムのインストール...4 B マニュアルの参照 インストール B-1 CD-ROM から参照 B-2 インストールして参照...

WinDriver PCI Quick Start Guide

MVP for VB が語る C# 入門

立ち読みページ

目次 1. HLA Fusion 3.0 がインストール可能な環境 HLA Fusion 3.0 のインストール HLA Fusion 3.4 のインストール 初期設定用データベース接続 ( 初めての方のみ ) 既存データベースのUpg

改版履歴 版数 改版日付 改版内容 /03/14 新規作成 2013/03まで製品サイトで公開していた WebSAM DeploymentManager Ver6.1 SQL Server 2012 製品版のデータベース構築手順書 ( 第 1 版 ) を本 書に統合しました 2

mySQLの利用

DTPer のスクリプトもくもく会スピンオフ! VBScript の概要 Excel VBA から InDesign を動かす お ~ まち

型名 RF007 ラジオコミュニケーションテスタ Radio Communication Tester ソフトウェア開発キット マニュアル アールエフネットワーク株式会社 RFnetworks Corporation RF007SDK-M001 RF007SDK-M001 参考資料 1

Oracle Lite Tutorial

Microsoft Word - VBA基礎(6).docx

ExcelVBA

untitled

◎phpapi.indd

Windows Layout SDK プログラミング マニュアル

BLOOMBERG PROFESSIONAL™

2 / 26 平成 26 年 4 月 11 日 ( 金 ) 午後 1 時 9 分 Visual C Express の使用法 ( 東海大学理学部物理学科 ) 無償で利用できる開発環境 (Windows XP 以降 ) Visual Studio 2010 Express

アドイン版 ********************************************* インストール手順書 ********************************************* 目次 JAVIS Appli に必要な環境... 2 JAVIS Appli に必要

Microsoft Word - CygwinでPython.docx

CashDrawer ライブラリ API 仕様書 2014/07/09 CashDrawer ライブラリ API 仕様書 Rev / 10

PowerPoint プレゼンテーション

Enterprise Architect 12.1 機能ガイド

マクロの実行許可設定をする方法 Excel2010 で 2010 でマクロを有効にする方法について説明します 参考 URL:

JavaプログラミングⅠ

untitled

現象 3 仮想マシン起動時に イベントログ ( システムログ ) に以下の警告イベントが登録される 種類 : 警告ソース :VMSMP イベント ID:27 " 任意の仮想マシン名 " のネットワーキングドライバーが読み込まれましたが サーバーからの別のバージョンが含まれています サーバーバージョン

マクロの記録 このキィを押した直後から キィの記録がスタートする 誤操作を行ってもそのまま記録されるから 目的とするキィ操作は必ず 2~3 回練習を行った後に記録するようにすると良い キィ記録が始まるとこのボタンは 記録終了 というボタンに変わる したがって現在記録中かどうかは このボタンを見ること

Oracle SQL Developerの移行機能を使用したOracle Databaseへの移行

プロセス間通信


クラスタ環境でのデータベースのアップグレード手順

INFINI DATA STATION R Client Edition インストール手順書 INFINI TRAVEL INFORMATION, INC.

構造体

WPF Bindingの威力

Transcription:

待ったなし VB 6.0 から VB2005 への移行ノウハウ 2008/02/23 by mxb

Q1 Q2 Q3 待ったなし VB 6.0 から VB2005 への移行ノウハウ 現在 VB6.0 で開発したシステムおよびアプリケーションを使用している方 現在 VB6.0 でシステムおよびアプリケーションを開発している方 現在の VB6.0 で開発したシステムおよびアプリケーションをこれからも使い続ける方

Q4 待ったなし VB 6.0 から VB2005 への移行ノウハウ 現在の VB6.0 で開発したシステムおよびアプリケーションの一部をこれからも使い続ける方 Q5 現在の VB6.0 で開発したシステムおよびアプリケーションを VB.NET に移行する予定の方 Q6 現在の VB6.0 で開発したシステムおよびアプリケーションを捨て 新規に開発される方

Q7 待ったなし VB 6.0 から VB2005 への移行ノウハウ VB6.0 をどの位使っています ( した ) か? Q8 VB.NET をどの位使っています ( した ) か?

Q9 待ったなし VB 6.0 から VB2005 への移行ノウハウ VB6.0 と VB.NET の言語仕様の差をどの位知っていますか Q10 VB6.0 と VB.NET のアーキテクチャの違いを知っていますか?

Q11 待ったなし VB 6.0 から VB2005 への移行ノウハウ VB6.0 のサポート OS を知っていますか? A11 Windows 95 Windows 98 Windows Me Windows NT 4.0 ファミリー Windows NT 2000 ファミリー Windows XP ファミリー Windows Vista ファミリー Windows Server 2003 ファミリー Windows Server 2008 ファミリー

Q12 待ったなし VB 6.0 から VB2005 への移行ノウハウ VB6.0 のサポート期間を知っていますか? A12 Visual Basic 6.0 のメインストリームサポート *1 は 2005 年 3 月 31 日に終了になります 今後は 延長サポート期間として 2008 年 4 月 8 日まで延長サポートを提供いたします ( 出典 :Visual Basic 6.0 ファミリ製品のライフサイクルガイドライン http://www.microsoft.com/japan/msdn/vbasic/support/vb6.aspx) *1:Visual Basic 6.0 では プレミアサポート 電話とオンラインによる無償のプロフェッショナルインシデントサービス 電話とオンラインによる有償のプロフェッショナルインシデントサービス 無償の重要な更新 および無償のオンラインセルフサポートツールなどを利用できます メインストリームフェーズは 製品発売日より 6 年間です Visual Basic 6.0 のメインストリームサポートは 2005 年 3 月 31 日に終了します

Q13 待ったなし VB 6.0 から VB2005 への移行ノウハウ Windows Vista に同梱される Visual Basic 6.0 ランタイムファイルを知っていますか? A13 94 ファイル atl.dll,asycfilt.dll,comcat.dll,compobj.dll,dbnmpntw.dll,dcomcnfg.exe,dllhost.exe,ds16gt.dll,ds32gt.dll,expsrv.dll,h h.exe,hhctrl.ocx,imagehlp.dll,iprop.dll,itircl.dll,itss.dll,mfc40.dll,mfc42.dll,mfc42enu.dll,msadce.dll,msadcer.dll,m sadcf.dll,msadcfr.dll,msadco.dll,msadcor.dll,msadcs.dll,msadds.dll,msaddsr.dll,msader15.dll,msado15.dll,msador 15.dll,msadrh15.dll,mscpxl32.dll,msdadc.dll,msdaenum.dll,msdaer.dll,msdaora.dll,msdaosp.dll,msdaprst.dll,msd aps.dll,msdasc.dll,msdasql.dll,msdasqlr.dll,msdatsrc.tlb,msdatt.dll,msdfmap.dll,msdfmap.ini,msjtes40.dll,msorcl3 2.dll,msvbvm60.dll,msvcirt.dll,msvcrt.dll,msvcrt40.dll,mtxdm.dll,mtxoci.dll,odbc16gt.dll,odbc32.dll,odbc32gt.dll,o dbcad32.exe,odbccp32.cpl,odbccp32.dll,odbccr32.dll,odbccu32.dll,odbcint.dll,odbcji32.dll,odbcjt32.dll,odbctrac.d ll,oddbse32.dll,odexl32.dll,odfox32.dll,odpdx32.dll,odtext32.dll,ole2.dll,ole32.dll,oleaut32.dll,oledb32.dll, Oledb32r.dll,Oledlg.dll,Olepro32.dll,Olethk32.dll,regsvr32.exe,Rpcns4.dll,rpcrt4.dll,Scrrun.dll,Secur32.dll,simpdat a.tlb,sqloledb.dll,sqlsrv32.dll,stdole2.tlb,stdole32.tlb,storage.dll,triedit.dll,vbajet32.dll,vfpodbc.dll

Q14 待ったなし VB 6.0 から VB2005 への移行ノウハウ Visual Basic 6.0 ライブラリが持っている Class Enum Module Type の総数を知っていますか?

A14 待ったなし VB 6.0 から VB2005 への移行ノウハウ 481 個 VB:34 個 VBA:25 個 VBRUN:91 個 ComCtl3(Windows Common Controls-3 6.0):10 個 DAO(Microsoft DAO 3.6 Object Library):59 個 DBBind(Microsoft Data Binding Collection VB 6.0(SP4)) :3 個 MSAdodcLib(ADO Data Control ):8 個 MSComCtl2(Windows Common Controls-2 6.0):24 個 MSComctlLib:73 個 MSComDlg(Common Dialog Control 6.0):8 個 MSDataGridLib(DataGrid Control 6.0):16 個 MSDataListLib(DataList Controls 6.0):15 個 MSDBCtls(Data Blund List Controls 6.0):15 個 MSDBGrid(Data Bound Grid Control 5.0):18 個 MSFlexGridLib(FlexGrid Control 6.0):24 個 MSRDC(Remote Data Control):13 個 RDO(Microsoft Remote Data Object 2.0):34 個 TabDlg(Microsoft Tabbed Dialog Control 6.0):11 個

Q15 待ったなし VB 6.0 から VB2005 への移行ノウハウ VB 6.0 から VB.NET(.NET Framework1.0~ 3.5) への移行方法を知っていますか? A15 Visual Studio.NET(2002,2003,2005,2008) を使用しているならば アップグレードウィザード を用いるのが一番簡単 しかし 実質的な変換率はとても低く ほとんどが手修正となる

じゃあどうすれば... 手修正で直すポイントを知っていれば移行工数は少なくできる しかし そのノウハウがない Microsoft 社ではパートナー企業向けに mstep( パートナー様に提供する各種トレーニング ) を実施中 その中で Visual Basic 6.0 ユーザーのための Visual Basic 2008 への移行 などを実施中

ちなみに... Microsoft 社でも VB 6.0 から VB.NET への移行ためのホームページを準備しています Visual Basic.NET へのアップグレード http://www.microsoft.com/japan/msdn/vbasic/techinfo/upgrade/ Visual Basic 6.0 から Visual Basic.NET への移行 http://www.microsoft.com/japan/msdn/vbasic/techinfo/upgrade/transi tion/default.aspx さらに... だいたいのコントロール プロパティ メソッドの情報は上記のホームページとヘルプを参照すれば探せます

これでは セッションを開く意味がないので ここに記載されていないコントロールと注意事項についてこれから説明します

いままでの移行プロジェクトで苦労したのが... Object 型とバリアント型についてです

VB 6.0 でのバリアント型とは 特殊な " 共通 " データ型で 固定長文字列を除くすべてのデータを含めることができます オブジェクト型 (Object) 変数は オブジェクトのポインタとして使用します 既定のデータ型はバリアント型です VB.NET でのバリアント型は コモンランゲージランタイム (CLR) では 共通データ型に対してオブジェクト型を使用します Visual Basic.NET で共通データ型としてバリアント型を使用することを継続することもできましたが 異種言語での開発による混乱を避けるために あえて CLR の名前付け規則を採用しました 共通データ型を 1 つだけ採用することで システムの簡素化を実現することができました 既定のデータ型はオブジェクト型です ( 出典 :Visual Basic 6.0 から Visual Basic.NET への移行 http://www.microsoft.com/japan/msdn/vbasic/techinfo/upgrade/transition/default.aspx)

VB 6.0 でよく使われていた Object 型 と バリアント型 には何が入るのかわからない そのため 移行が難しくなっている この 2 つの型に関してはプロジェクトによってはコーディング基準などで 特に使用しないように規制をかけているケースもある 実際に使用されている場合は 要注意 プログラムの実行時のみに何が入ってわかるケースもある

Object 型 と Variant 型 を使用されているプログラムはできるだけ早めに移行解析するほうがよい プログラマの癖が出やすいので 1 パターンの解析が出来れば その他のプログラムの解析が速くなる

その他の移行が難しいコントロールは... Dataクラス関連 Drag&Drop 関連 Help 関連 OLE 関連

その他 配列などの注意書きは Visual Basic 6.0 から Visual Basic.NET への移行 を参照して下さい 残りの時間で VB 6.0 から VB.NET への移行で特に変更が大きかった SSTab (Microsoft Tabbed Dialog Control 6.0) について解説します

SSTab (Microsoft Tabbed Dialog Control 6.0) は Tab を表示 コントロールするコントロール部品です VB.NET では TabControl に変更され 機能変更が行われました

SSTab には以下の Class Enum があります Enum ClipBoardConstants Enum DataObject Class DataObjectFiles Class DragOverConstants Enum ErrorConstants Enum MousePointerConstants Enum OLEDropConstants Enum OLEDropEffectConstants Class SSTab Enum StyleConstants Class TabOrientationConstants

これらの Class や Enum は他の VB コントロールと似ている名前がついています が SSTab 専用に作りこまれています それではちょっとこれらの中のメソッドを見てみましょう

ClipBoardConstants(Enum) メンバタイプ値 sscfbitmap Const 2 sscfdib Const 8 sscfemetafile Const 14 sscffiles Const 15 sscfmetafile Const 3 sscfpalette Const 9 sscfrtf Const -16639(&HFFFFBF01) sscftext Const 1

DataObject(Class) メンバ タイプ 値 Clear Files GetData GetFormat SetData Sub Function Function Sub

DataObjectFiles(Class) メンバ タイプ 値 Add Clear Count Item Remove Sub Sub Sub

DragOverConstants(Enum) メンバタイプ値 ssenter Const 0 ssleave Const 1 ssover Const 2

ErrorConstants(Enum) メンバ タイプ 値 ssbadindex Const 381(&H17D) ssdatanotsetforformat Const 676(&H2A4) ssdataobjectlocked Const 672(&H2A0) ssexpectedanargument Const 673(&H2A1) ssformatnotbytearray Const 675(&H2A3) ssgetnotsupported Const 394(&H18A) ssinvalidobjectuse Const 425(&H1A9 ssinvalidpicture Const 481(&H1E1) ssinvalidprocedurecall Const 5 ssinvalidvalue Const 380(&H17C) ssoutofmemory Const 7 ssrecursiveoledrag Const 674(&H2A2) sssetnotsupported Const 383(&H17F) sswrongclipboardformat Const 461(&H1CD)

MousePointerConstants(Enum) メンバタイプ値 ssarrow Const 1 ssarrowhourglass Const 13 ssarrowquestion Const 14 sscross Const 2 sscoustom Const 99(&H63) ssdefault Const 0 sshourglass Const 11 ssibeam Const 3 ssicon Const 4 ssnodrop Const 12 sssize Const 5 sssizeall Const 15 sssizeew Const 9 sssizenese Const 6 sssizens Const 7 sssizenwse Const 8 ssuparrow Const 10

OLEDropConstants(Enum) メンバタイプ値 ssoledropmanual Const 1 ssoledropnone Const 0

OLEDropEffectConstants(Enum) メンバタイプ値 ssoledropeffectcopy Const 1 ssoledropeffectmove Const 2 ssoledropeffectnone Const 0 ssoledropeffectscroll Const -2147483648(&H80000000)

SSTab(Class) その1 メンバ タイプ 値 BackColor Caption CausesValidation Click Container DataBindings DblClick Drag DragDrop DragIcon DragMode DragOver Enabled Font ForeColor GetFocus Height HelpContextID hwnd Event Event Sub Event Event Event

SSTab(Class) その2 メンバ タイプ 値 Index KeyDown KeyPress KeyUp Left LostFocus MouseDown MouseIcon MouseMove MousePointer MouseUp Move Name Object OLECompleteDrag OLEDrag OLEDragDrop OLEDragOver OLEDropMode Event Event Event Event Event Event Event Sub Event Sub Event Event

SSTab(Class) その3 メンバ タイプ 値 OLEGiveFeedback OLESetData OLEStartDrag Parent Picture Rows SetForcus ShowFocusRect ShowWhatsThis Style Tab TabCaption TabEnabled TabHeight TabIndex TabMaxWidth TabOrientation TabPicture Tabs Event Event Event Sub Sub

SSTab(Class) その4 メンバ タイプ 値 TabsPerRow TabStop TabVisible Tag ToolTipText Top Validate Visible WhatsThisHelpID Width WordWrap ZOrder Event Sub

StyleConstants(Enum) メンバ タイプ 値 ssstylepage Const 1 ssstyletabbeddialog Const 0

TabOrientationConstants(Enum) メンバタイプ値 sstaborientationbottom Const 1 sstaborientationleft Const 2 sstaborientationright Const 3 sstaborientationtop Const 0

これらすべてのメンバに対応することはないと思いますが... って言うか無理です そこで... 私が作成した 一部のメンバの VB6.0 VB.NET の対応表の一部をご紹介しましょう

Excel を参照

全てのコントロールの変換パターンの対応表を作り 資料化出来ればいいが SSTab Class の対応表を作るだけでも約 100 時間かかっています 対応表を作成には VB6.0 環境で作成したテストソースを VB 2003 VB 2005 で変換後のイメージソースを作成して 動作確認して 表を作って とっても時間がかかります

そこで 移行の際に特に注意することは VB6.0 の頃に多かった詰込み型のソースに気を付けて! VB6.0 の頃に多かった思いつくままの順に書かれたソースに気を付けて! Object 型とバリアント型に気を付けて! SSTab コントロール FlexGrid コントロールなどの他の VB コントロールと異なるメソッドを持つコントロールに気を付けて! 今回は取り上げませんでしたが Data には気をつけて!!.NET Framework では RDO を使おうと思えば使えますが使ってはいけません

けれど諦めないで下さい アップグレードウィザードを上手く使いましょう 今日挙げたいくつかの点に注意して移行を検討すれば工数は削減できるはずです

次回 機会があれば 言語的な話ではなく VB6.0 アプリケーションと VB.NET アプリケーションとのアーキテクチャの差や 設計方針などの話をしたいと思います その他 リクエストがあればアンケートに書いて下さい ありがとうございました