- PR -

VB6からVB.Netへの移行

投稿者投稿内容
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-05-10 17:54
引用:

R・田中一郎さんの書き込み (2006-05-10 17:41) より:

次の行にするには、何か理由があるんでしょうか?
僕は、こんな書き方ですが、次の行にすると、ちょっと見やすくなる気はします・・・


なるべく万人が違和感なく読めるソースが望ましいという意識からです。
"As 型名" が見えたら、「その後には何もないだろう」と、次の行に目を進める人が多いようです...

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
ひろれい
ぬし
会議室デビュー日: 2006/03/02
投稿数: 486
お住まい・勤務地: 万博開催地
投稿日時: 2006-05-10 20:20
引用:

じゃんぬねっとさんの書き込み (2006-05-10 16:53) より:

VB プログラマの方はまとめて宣言して、まとめて初期化している方が多いようです。
CodeComplete では Coding Horror になっていましたが、見易さというのがあるんでしょうね。


ある会社のある部署では、「変数はまとめて定義すること」という開発標準がありました。もちろん、初期化もまとめて。

こういうところから派生していくんでしょうね。

ループカウンタを利用時に定義&初期化できるのも VB.NET からなんでしょうか。
あれは、すごく便利です。
きくちゃん
ぬし
会議室デビュー日: 2003/08/01
投稿数: 854
お住まい・勤務地: 都内某所
投稿日時: 2006-05-10 20:23
引用:

じゃんぬねっとさんの書き込み (2006-05-10 16:53) より:
VB6 以前では宣言と初期化を一緒にはできなかったのです。



プリミティブ型以外の場合は、VB6 以前から↓こういう書き方で宣言と初期化を一緒に出来ましたが、バグの元になりやすいので私は避けてました。
#というか、未だに避けてしまいます。

コード:

Dim c As New Class1



例えば以下のコードを VB6 で実行しても、null 参照によるエラーは発生しないんですよね…。

コード:

Sub Main()
    Dim c As New Class1

    Set c = Nothing

    MsgBox c.Text
End Sub


じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-05-10 21:11
引用:

きくちゃんさんの書き込み (2006-05-10 20:23) より:

プリミティブ型以外の場合は、VB6 以前から↓こういう書き方で宣言と初期化を一緒に出来ましたが、バグの元になりやすいので私は避けてました。


参照型は私もそうしていますよ。
もちろん、そうすべき理由も知っています。(エビデンスは私のサイトw)

引用:

例えば以下のコードを VB6 で実行しても、null 参照によるエラーは発生しないんですよね…。

コード:

    Sub Main()
        Dim c As New Class1

        Set c = Nothing

        MsgBox c.Text '(*)
    End Sub




これは、(*) の箇所で勝手にインスタンス化されるからですね。
一般的な VB プログラマの間では有名な話ですね。(私でも知ってるくらいですから)

コード:

    Sub Main()
        Dim c As Class1
        Set c = New Class1

        Set c = Nothing

        MsgBox c.Text
    End Sub


だったら、問題なく実行時エラーになりますね。

# 田中さんとは、暗黙的に値型についての話題をしているつもりでした。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
きくちゃん
ぬし
会議室デビュー日: 2003/08/01
投稿数: 854
お住まい・勤務地: 都内某所
投稿日時: 2006-05-10 21:35
じゃんぬねっとさん、こんばんは。

引用:

# 田中さんとは、暗黙的に値型についての話題をしているつもりでした。


あ、前回の投稿、特にじゃんぬさんに宛てた訳ではありません。

#一応、俺的投稿規約では、冒頭で「ご挨拶」していない場合は特定の相手に宛てていなかったりします。

補足というか蛇足というか、そんなようなつもりで投稿しました。
有名ではあるけれど、vb.net では躊躇無く使っている人が多いので、もしかしたら知らない人も居るのではないかと。

まぁ、今となっては(特にこの会議室に於いては)単なるトリビアかも知れませんけどね〜。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-05-10 21:53
引用:

きくちゃんさんの書き込み (2006-05-10 21:35) より:

あ、前回の投稿、特にじゃんぬさんに宛てた訳ではありません。
#一応、俺的投稿規約では、冒頭で「ご挨拶」していない場合は特定の相手に宛てていなかったりします。


失礼しました。
引用されていたので、てっきり私への返信だと思っておりました。

引用:

有名ではあるけれど、vb.net では躊躇無く使っている人が多いので、もしかしたら知らない人も居るのではないかと。


私は、VB.NET => VB6 という マイ "デ" グレーション組 なので、
使ってしまっていた時期が 2 ヶ月ほどありました... orz

# そう、VB 歴はかなり短いんです。
# と、日ごろの誤爆の言い訳をしておきますw

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
blue
会議室デビュー日: 2006/05/10
投稿数: 4
投稿日時: 2006-05-11 09:12
たくさんの返信ありがとうございます。

最近、まわりでVB6.0からVB.Netへの移行案件の話を
結構聞くことが多いので疑問に思っていました。
まわりにも話を聞いてみたところ、単にサポートが切れるからという
理由もありました。
やぎ
会議室デビュー日: 2006/05/09
投稿数: 14
投稿日時: 2006-05-11 10:12
引用:

blueさんの書き込み (2006-05-10 11:15) より:
VB6.0で作成されたアプリをVB.NETへ移行するメリットってありますか?



今まさに私がこの作業をしているわけですが。
(正確には5.0→6.0→.NET)
理由は、ユーザーのハード入れ替えに伴う改修要望が発生し、
今さら6.0でもないだろう、ということからです。

はっきり言って苦戦しております。
.NETの経験がほとんどない、ということもありますし
サードパーティのツールが.NETへの移行をサポートしていないんです。
ですから、ちょっと手間をかけないとVB自体のコンバージョンツールも使えない
サードパーティのツール類の個所はコーディングしなおしになることが多い・・・
などなど。

予想外に時間がかかってます。

_________________

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