- PR -

VisualBasic4.0からVisualBasic.Netへ?

投稿者投稿内容
Qyudo
会議室デビュー日: 2003/01/07
投稿数: 5
投稿日時: 2003-01-07 14:29
はじめまして、こんにちは。Qyudoと申します。

もし、知っておられる方がいらっしゃれば教えていただきたいのですが、
VisualBasic4.0で作成したプロジェクト(アプリ)をVisualBasic.Netで
編集・実行を行った場合、何か問題等が起きうるのでしょうか…?

事情により、VisualBasic4.0からVisualBasic.Netにバージョンアップを
することを検討しているのですが、過去の作成物がすべてVB.Netで編集等
ができなくなってしまう事態は避けたいので…。

OCXが入っている場合は、当然不具合が出てくるように思われますが、
VB4.0標準の機能のみで作成している場合も、不都合が発生する可能性が
あるのでしょうか?

あつかましい質問ではありますが、もし知っていらっしゃる方がいましたら
お教え願えないでしょうか?

何卒…よろしくお願いいたします。
一郎
ぬし
会議室デビュー日: 2002/10/11
投稿数: 1081
投稿日時: 2003-01-07 14:47
>過去の作成物がすべてVB.Netで編集等ができなくなってしまう事態は

なってしまうというのはどういう事ですか?
VB.Netで編集できるのかできないのかというのならわかりますが、何やら昔できて、これからできなくなるような書き方ですが・・・。

それとも「コンバートすることによって、過去の作成物がすべてVB4で編集等ができなくなってしまう事態は避けたい」の間違いですか?
Qyudo
会議室デビュー日: 2003/01/07
投稿数: 5
投稿日時: 2003-01-07 14:55
申し訳ありません。書き方が紛らわしかったですね…

単純にVB.NetにてVB4.0で作成したものが編集できるかどうかということと、
コンバート時に起きうる不具合等について知っておられる方がいらっしゃれば
お聞きしたかったのです。

不明確な文章になってしまい申し訳ありませんでした。
一郎
ぬし
会議室デビュー日: 2002/10/11
投稿数: 1081
投稿日時: 2003-01-07 15:49
VB4のプロジェクトは、いったんVB6に変換しないと読み込めません。

VB6のプロジェクトはほぼ.NET対応になるようです。(どこかに90%は変換できるって書いてあったような)
それはMicrosoft.VisualBasic.Compatibilityのお陰です。
例えばDriveListBoxなどのコントロールは.NET標準のクラスとしてはありません。
もちろんMicrosoft.VisualBasic.Compatibility内のクラスを使えば問題ありませんが、MSDNライブラリのキーワード「互換性」の「Visual Basic」の部分を見てみると、互換性ライブラリについて書かれていますが、

警告 Visual Basic 6.0 互換性ライブラリの関数は、アップグレード ツールによる使用だけを想定して提供されています。コードを新規作成するときにこのライブラリを使用することもできますが、将来のバージョンの Visual Basic でサポートされるかどうかは不明です。

つまり、完成しているプログラムを(VBランタイムは使いたくない等の理由で).NETフレームワーク上で動かしたいというなら良いでしょうが、将来の.NET開発には使えないソースコードになる可能性があるという事です。
.NETフレームワークも複数バージョンが共存できるらしいので、作ったプログラムが動かなくなるということはないと思いますが、これからの.NET開発のための資産にしようというのは無理な(あるいはコストがかかる)ようです。

結論として、
●VB6へのコンバート
●将来の.NET開発での価値
の問題がある思います。

これが具合の悪い事かどうかはQyudoさんの「事情」によりきりですが・・・ね。

[ メッセージ編集済み 編集者: 一郎 編集日時 2003-01-07 17:49 ]
Qyudo
会議室デビュー日: 2003/01/07
投稿数: 5
投稿日時: 2003-01-07 16:39
一郎様、早速のご回答ありがとうございます。
先程、私の方もMicrosoftのホームページでわかる部分を調べてはいたんですが、確かに一旦VB6.0に変換してからのコンバートになるようですね。その上で100%互換ではないというのも、何処かで見たような気がします…その理由について完全には読解できなかったですが(汗)
「事情」に関しては、こちらに記載して良いものかどうか判断に迷ったことと、なるべく長くない文章にしたかった為、「事情」と記述させていただきました。ご容赦ください。
私としては、VB.Net(.NETフレームワーク上)でVB4.0で作成したものが起動できれば構わないので、現状だとバージョンアップについては支障がなさそうです。将来的に…のくだりについては、やはり少し気になる部分もありますが(笑)
本当に、丁寧なご回答ありがとうございました。
一郎
ぬし
会議室デビュー日: 2002/10/11
投稿数: 1081
投稿日時: 2003-01-07 17:48
私はVBのプロジェクトをVB.NETにコンバートした経験はほとんどありませんし、実務で扱うプログラムを.NETに対応させたことは一度もありませんので(コンバートだけならある)はっきりとは言えませんが、正しく動くかテストをやり直した方が良いようです。

それと、.NET上で動きはするようですが.NETのソースとはとても呼べないような物になります。
関数名に返す値を入れてたり、On Error〜でErrとかいうオブジェクト使ってたり。
VB使ってたっていう新人さんならまだしも、仕事でこんなの得意げに書いてたら先輩にぶん殴られんな〜、と思うようなソースが出来上がります。

ま、何はともあれ一度コンバートしてみてはどうです?
Qyudo
会議室デビュー日: 2003/01/07
投稿数: 5
投稿日時: 2003-01-07 18:00
.NETを購入前の状態なので…コンバートしたくても出来ないです(汗)
というか、そんなにひどい内容になっちゃうのですか…う〜ん…とりあえず、購入してみて…ってことになりそうですね(笑)
@豆
会議室デビュー日: 2003/01/08
投稿数: 1
投稿日時: 2003-01-08 23:02
はじめまして。
.NET初心者ですが、アップグレードウィザードを使用して実験してみたので感想を書き込みさせて頂きます。
ちなみにVB6からの移行でした。VB4からの移行については一郎さんの書き込みにもありましたが、VB6にプロジェクト変換させてからでないとウィザードは利用できない様です。
感想は、正直言ってその移行対象となるプロジェクトの作り次第といった感じです。
マイクロソフトからも移行についてのガイド(http://www.microsoft.com/japan/msdn/net/vbtransitionguide/chapter4/)
が出ていますが、データ型などは全く予想もしなかったものに変換され、ヘタをするととんでもない結果が返ってきます。
結論としては、対象プロジェクト数が多くなければ、最初から.NETでコーディングすべきです。
初心者なので、コレ以上の詳しい説明はできませんが、何かの足しになればと思います。

スキルアップ/キャリアアップ(JOB@IT)