- PR -

VB6からVB.Netへの移行

投稿者投稿内容
かるあ
ぬし
会議室デビュー日: 2003/11/16
投稿数: 1190
お住まい・勤務地: センガワ→ムサシノ
投稿日時: 2006-05-11 17:02
引用:

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

ブロックレベルのスコープを知らないと思われるソースだとか、
無意味なインスタンス メンバだとか、標準モジュール使いまくりだとか、
ハンガリアン記法キターとか、On Error GoTo キターとか。

いろいろとありすぎて、出しきれませんがw


僕としては
Option Strict On → コンパイル...
キター ですかね

ASP.NET でモジュール使うよりはましか

R・田中一郎
ぬし
会議室デビュー日: 2005/11/03
投稿数: 979
投稿日時: 2006-05-11 18:19
引用:

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

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


なるほど、深く納得しました。
今後、不幸にもVB6で書く機会があったら、僕も改行することにします。
(と言うか、ついさっきまで書いていた・・・orz)

引用:

じゃんぬねっとさんの書き込み (2006-05-11 14:33) より:

クラスに特化した部分で言えば、
  • クラス モジュールの型がタイプ登録しないと公開できない。(カプセル化の邪魔)
  • クラス モジュールに静的メンバを含むことができない。(標準モジュールが静的クラス代わりに)
  • 標準モジュール名と列挙体そのもののパスが省略できてしまえる。
  • コンストラクタに引数を指定できないため、メンバの準備が保証できない。




モジュール名や列挙体そのもののパスが省略できなければ、コード読んでいても少
なくとも安心感はあるんですけどね。
でも元々は BASIC だから、その文化が色濃く残っていたのかな〜、などと思ってみ
たりもします。

#先日、ハンディターミナル用のソフトを作るために、専用のBASICで組んだ訳です
が、これはこれで楽しかった・・・

コード:
こんな感じ・・・
*MAIN.INITIALIZE
    GOSUB *BARCODE.INITIALIZE ←クラスも何も無いので、っぽく書いてみる
*MAIN.LOOP
    GOSUB *BARCODE.INPUT ←メソッドっぽく書いてみる
    IF RETC=1 THEN GOSUB *BARCODE.INPUT.ERROR ←IF文は当然一行
  GOTO *MAIN.LOOP ←GOTO はバリバリ現役
*MAIN.TERMINATE
    GOSUB *BARCODE.TERMINATE
    :
'***********************
' BARCODE
'***********************
*BARCODE.INITIALIZE
    DIM BARCODE.COUNT[0] ←変数の定義なんて本当は不用だが配列の定義
    DIM BARCODE.STRING[0] ←何故ならメモリが少ないから
RETURN

*BARCODE.TERMINATE
    ERASE BARCODE.COUNT ←配列なら、こうやって解放できる
    ERASE BARCODE.STRING
RETURN



遊び心満載ですね。
保守性は高いと思うのですが実行速度が大きな犠牲を強いられています。
R・田中一郎
ぬし
会議室デビュー日: 2005/11/03
投稿数: 979
投稿日時: 2006-05-11 18:21
引用:

甕星さんの書き込み (2006-05-11 14:37) より:
引用:

R・田中一郎さんの書き込み (2006-05-11 11:18) より:
じゃあ、ずっとVB6のまま?、となると、また難しいものでサポート契約切るか、.net移
行費用を客先に請求するかの選択を迫らないといけない日が来るんだろうなぁ・・・orz


っ[VirtualPC]



なるほど、VirtualPCを使って、開発環境も実行環境も温存すれば良い訳ですね。
第3の選択肢ですか・・・

#でも、この根拠の無い不安は一体何・・・?
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-05-11 18:22
引用:

R・田中一郎さんの書き込み (2006-05-11 18:19) より:

今後、不幸にもVB6で書く機会があったら、僕も改行することにします。
(と言うか、ついさっきまで書いていた・・・orz)


私なんて 4 案件抱えてますよ。はい。(;_ _)

引用:

保守性は高いと思うのですが実行速度が大きな犠牲を強いられています。


まあ、昔はコードの簡素化・高速化がメインでしたからね。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-05-11 18:24
引用:

かるあさんの書き込み (2006-05-11 17:02) より:
僕としては
Option Strict On → コンパイル...
キター ですかね


暗黙の型変換、遅延バインディング嵐は、VB6 から目にしているので除外しておりまするw

引用:

R・田中一郎さんの書き込み (2006-05-11 18:21) より:

#でも、この根拠の無い不安は一体何・・・?


つ[マシンスペック]

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
blue
会議室デビュー日: 2006/05/10
投稿数: 4
投稿日時: 2006-05-12 17:35
2番目の投稿(甕星さん)にVB.Net化のメリットに
「WEBサービス化」とありますか、VB.NetでWEB化とは
どういうことでしょうか?

たつごろー
ぬし
会議室デビュー日: 2004/10/25
投稿数: 496
投稿日時: 2006-05-12 17:41
引用:

「WEBサービス化」とありますか、VB.NetでWEB化とは
どういうことでしょうか?


Web化ではなくて、Webサービス化ですね。
WebサービスをVB6ではまったく作れないとは言い切れませんが、VB.NETだとVB6よりは
比較にならないほど楽に作れますね、ということをおっしゃっています。

MSDN Home > .NET アーキテクチャ センター > 連載企画 アーキテクトへの道 > 第 3 話 「Webサービスとは…SOA って?」
http://www.microsoft.com/japan/msdn/architecture/way/03/

XML Web サービスの概要
http://www.microsoft.com/japan/msdn/webservices/techart/webservices_overview.asp

.NET Home > .NET 入門
XML Web サービス入門
http://www.microsoft.com/japan/net/basics/xmlservices.asp

_________________
たつごろー
codeseek
こみゅぷらす

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