質問

非常に広範なアプリケーションがアクセスベースのシステムとして始まりました(データベースストレージ用)。フォームはVB5および/またはVB6で書かれています。 .NETが開発コミュニティの備品になったため、特定のモジュールが書き直されました。これは、2つのテクノロジーをお互いに満足させるためのクロステクノロジーと余分な作業のために、非常に厄介で潜在的に維持するために潜在的にコストがかかるようです。もちろん、アプリケーションはのミックスを使用します ODBC OLEDBとMYSQL。

.NETの下でアプリケーションを完全に再開発するために時間とリソースを費やすことがより費用対効果が高いと思いますか? より安定したアプリケーションを開発するために、.NETを使用することは意味がありませんか?または、アクセスバグの追跡を続け、.NETに新しい機能を追加し(.NETとアクセスの間に新しいバグが作成される場合とそうでない場合があります)、適切な設計と開発を防ぐ時間制約の下で.NETモジュールに古いアクセスモジュールを書き換えますか?

アップデートアプリケーションはOLEDBとMySQLを使用します - 以前のステートメントを修正しました。

また、書き換えへのさらなる支援を貸すために:私はそれ以来、 "移植" .NETが始まったため、存在したVBA/VB6コードは基本的に.NET同等のものに翻訳されました。私の理解から、パフォーマンスを改善したり、新しいライブラリやテクノロジーを活用するために何も行われませんでした。

私の意見では、これは非常に脆弱で不安定なアプリケーションを作成します。新しいアップデートごとに、これはますます目立つようになります。ヘルプデスクの技術者として、私は報告されている問題の増加に気づきました。ソフトウェアを使用している顧客は、問題の増加に気づき、コメントしています。

役に立ちましたか?

解決

多くの人がアプリケーションをゼロから書き直すことを思いとどまらせ、時には私は推論に同意します。しかし、ほとんどの場合、アプリに最も痛みを伴わないソリューションとアクセスに記載されているものは、.NET -Periodに移植する必要があります。誤解しないでください、アクセスにはその場所があり、組織に多くの機能を提供できますが、人々が依存している本格的なアプリに変わると、アクセスが成長します。

おそらく、1つの変換用に緊急のVBAを.NETに.NETに移植するのにそれほど時間はかからないでしょう。しかし、VBAがそもそもあまり良くない場合、それは素晴らしい解決策ではないかもしれません。再設計/書き換えは書き込みに時間がかかりますが、長期的にはメンテナンスがはるかに簡単になります。

私はほとんど常に、アクセスが関係していて、一度後悔していないゼロからそれを書き直すキャンプにいます。

他のヒント

リファクタリングアプローチに同意します。これは、完了するまでに何ヶ月もかかる可能性のある遅いプロセスになる可能性が非常に高いですが、一度に1つの機能 /セクションを移動することで、次のような大きな利点があります。

  1. 製品機能が維持されます。
  2. 新しいリリースを提供する機能が維持されます。
  3. 時間の圧力が削除されます。

幸運を

一般的に、アプリケーションをゼロから「書き直す」ことは落胆した慣行です(これは、ほとんどのプログラマーが生涯に少なくとも数回感じた通常の衝動です)。なぜなら、既知の機能セット(および既知のバグも既知のバグ)から行くからです。より低い機能のセット、さらに重要なことには、不明なバグを備えたアプリに。ユーザーはイライラする可能性があります。

一定期間にわたってアプリをゆっくりとリファクタリングし、それによってより長い期間にわたってアーキテクチャを進化させる方が良いでしょう。

そのスケールの書き直しで私が経験した大きな課題は、2つのコードベースを同時に維持する必要があることです。レガシーシステムでバグを修正する場合、新しいシステムで機能が正しく機能することを確認する必要があります。その逆も同様です。一度に1つのモジュールをアップグレードすると、そのメンテナンスの頭痛が最小限に抑えられます。

レガシーシステムと交換システムの両方で実行される完全な回帰テストスイートも役立ちます。

私はJASに同意します、書き換えのためだけにアプリを書き直さないでください。彼らは決してデバッグや改善をする必要がないかもしれないので、なぜ時間を無駄にするのですか?ただし、.NETへのアクセスから離れて新しい開発者の専門知識に移行があると感じた場合、手遅れになる前に移行する必要がある場合があります。それはありそうもないようですが、考えられる考慮事項です。

開発の観点からは有益ではないかもしれませんが、ユーザーに影響を与えることにさまざまなアプリケーションが広がることはどうですか?より多くのユーザートレーニングが必要ですか?彼らはより多くの間違いを犯していますか。彼らは何かを見つけることができないので、それはサポートコールの数を増やしますか?

「.NETの下でアプリケーションを完全に再開発するために時間とリソースを費やすことがより費用対効果が高いと思いますか?」

これはここで答えることができる質問ではありません。

要件のトップからピラミッド:誰かがビジネスプランで正当化できる決定を下しました。そのビジネスプランでは、アプリケーションを変換するのに必要な時間+追加費用を述べる必要があり、同じビジネスプランでは、利益もお金について述べられています。

それがそれを行う方法です。それのためのビジネス計画がない場合。次に、答えは、最初にいくつかの高レベルのユースケースに追跡可能なビジネスプランで作業して、プロジェクトの開始を検証するためのインパクト分析を行うことです。

変化につながるビジネス目標の元のドライバーがお金にさえ基づいていない場合、この人はおそらくそれをすべて支払うものであるため、それを行う必要があります。

ビジネスプランがない場合は、「それが完了した」場合は、1つを作成して上級管理職に提示してみてください。高レベルの使用ケース、コスト、再設計のための時間、ビルド、運用の追加コスト、管理者とエンドゥー担当者の新しいトレーニング、プロジェクト管理、潜在的なリスクを含めます。

IMHOこれは技術的な質問ではありません。

ライセンス: CC-BY-SA帰属
所属していません softwareengineering.stackexchange
scroll top