2010-12-15 2 views
0

VS08のアップグレードウィザードで従来のVB6アプリケーションを実行するか、ゼロから再設計する必要がありますか?CJ Date:クラシックVBウィザードのアップグレードまたは再設計する必要がありますか?

データベースが混乱しています。

元はACCESSで設計され、MS SQL SERVERにインポートされました。

主なエンティティは、 ROLLER_SKATESとRENTALS。あなたがローラースケートのペアを借りたい場合はできます。だからこれは多かれ少なかれローラースケート用の在庫システムを構成しています。

今度は2種類のスケートリングがあります。 Skate-B1とSkate-Z9を使用して、スケーリングリングテーブル内の前述のエンティティからの冗長データと重複データを保持します。

悪夢です。

少なくともテーブルには行IDがあります。しかし、明示的な外部キーはなく、暗黙的に同じ名前が付けられた列は、お互いに対応するように見えます。しかし、テーブルの属性の残りの部分はすべてデフォルトでNULLになります。

彼の本のSQLと関係モデルの型についてC.J Dateが述べていることを考えて、属性にCHECK CONSTRAINTSを持たせるのは望ましいことではありませんか?

そして、データはすべて場所の上にあります。たとえば、ローラースケートのシリアル番号はG123で、別のインスタンスではG-123です。ドリフトを取得する?

どうすればよいですか?

+1

私はあなたが自分の質問に答えたと思います。もしあなたがアプリケーションを再設計するのに最適な時期になる。アップグレードウィザードはこれまでよりもはるかに優れていますが、混乱の原因になります。 –

+3

**データベース**を再構築したいと思うようなサウンドはありますか? – MarkJ

+0

MarkJ、そうです、私はデータベースを再構築したいのですが、私のpmはパットであり、私をブロックしようとしています。 – dannyrosalex

答えて

1

として進まなかった場合にのみ起こり、2行は私に飛び出し:

データベースは混乱です。

それは悪夢です。

私は、書き換えが最も望ましいことに同意できると思います。

しかし、それはあなたの特定の要件とのバランスをとる必要があります。移行はどれくらい早く行われなければなりませんか?現在のアプリは書き換えられるまで使用できません?もしそうなら、それはアップグレードウィザードを使用することに有利な議論かもしれません。その欠点や欠点があっても、最初から全面的に書き直すよりも簡単になるだろう。

このルートに移動してアップグレードウィザードを使用する場合は、3番目の「均衡のとれた」オプションが表示されます。をお勧めします。プロジェクトをアップグレードし、アップグレードウィザード(およびリソースとして友人の近くのスタックオーバーフロー)を使用してコンパイルすると、新しい.NETバージョンのアプリケーションを配布して使い始めることができます。その後、ゆっくりと、今.NETバージョンのアプリケーションの一部を再設計して再実装することができます。同じパブリックインターフェイスを維持し、アプリケーションのコードベースの一部を再設計するだけで、これらの変更をゆっくりと展開し、アプリケーション全体を段階的に書き直すことができます。低レベルのデータベースアクセスコードを取得するには数か月かかるかもしれませんが、その間にアプリケーションが機能します。その後、そのコードが正しく機能し、洗練されたら、その場でUIコ​​ードを操作しながら、アプリケーションの次のインクリメンタルバージョンにロールアウトすることができます。

+1

+1。通常、作業アプリケーションのインクリメンタルリファクタリングが最適です。もう一つの考慮すべき点は、アプリケーションがどれだけ大きいか?しばしば、彼らは最初の印象に見えるよりも大きくなりますが、質問からは本当に小さいと聞こえます。 – MarkJ

+0

MarkJ、店内の私のアークネームでは、テスト駆動のWebアプリケーション開発は適用できないと主張しています(馬鹿馬鹿しい)。彼は、tddと単体テストはアルゴリズムと計算指向のアプリケーション向けであると主張しています。彼は、「Data In Data Out」として特徴づけたいビジネスアプリは、テスト可能なコードの恩恵を受けないと主張しています。彼は実際にPHPの背景から来て、PHPスタイルでASP.NETページを書いています。 VS08でASP.NET WebForms開発をテストするにはどうすればよいですか? – dannyrosalex

1

アプリが元の投稿のようなものなら、私はやり直して再設計することをおすすめします。

あなたはスケルトンを持っており、アプリの背後にあるアイデアが何であるかを知っています。

私たちが設計したアプリケーションを振り返ってみると、それは完璧だとは思えません。あなたの質問を読んであまりにも多くの時間を費やすことなく、長年にわたってプログラマ...

1

再設計と再ファクタリングは素晴らしいですが、時には、あなたが維持しているちょっとした小さなプロジェクトがまさにそれであり、決して上手くならないことに気づくことがあります。顧客の視点から考える必要があります。それらには、仕事を遂行するために使用する機器の一つに過ぎません。それが働いているなら、おそらく彼らが見ることができない、または本当に理解できる何らかのアップグレードであれば、それに何かお金を使う理由はないでしょう。

私はVB6からこのようなプロジェクトをいくつかアップグレードしました。たぶん、コンバータは今より良いですが、私はそれらと多くの運を持っていませんでした。私が見たことは、古いもののように見える新しい形を作ることです。その後、古いフォームのコードをコピーして新しいフォームに貼り付け、バグを処理します。それはかなり速く行く。私は通常、顧客が自分のお金のために何かを得ていることがわかるUIを中心に、いくつかの少し改善していくのが普通です。

バックエンドについては、外来キーの制約を除いて大規模なDBや、他のすべての問題について話しました。メンテナンス性には理想的ではありませんが、正常に動作し、メンテナンスが多いプロジェクトのようには聞こえません。あなたは、あなたが何をするのか、それぞれのアイテムに一意の名前を付ける方法を見つけ出す必要があります。私は他のアプリが同じミスを犯しているのを見て、それはあらゆる種類の問題につながります。

いくつかの奇跡によって、予算を納得させることができれば、私は最初からやります。物事はいつもより大きく、あなたが思うより長くかかることを覚えておいてください。そして、あなたは何らかの種類のデータ輸入業者を書く必要があることを忘れないでください。

0

プロジェクトが複雑になればなるほど、LESSはアップグレードしてそのまま続けることになりそうです。

.NetはVB6よりもはるかに多くの機能を提供していますが、基本的にvb6コードを実行します。実際に.netとその機能を使用しない場合は.netにアップグレードする必要はありません。

あなたが言ったようにアプリが乱雑であれば、.netに変換することは、古い非効率性と論理的な偽りを取り除くために再設計し、ネットで許される新しいものを活用する素晴らしい時間です。たとえそれが完全な再設計ではないとしても、少なくとも.netの点でアプリについて考えると改善されます。

アプリケーションがサイズ/複雑さの点で些細なものでない限り、やり直してください。アプリが大きくない、または苦情を修正している場合は、それをやり直してください:)

関連する問題