2009-08-24 14 views
2

現在、トラフィックの多いオンライン検索サイトで作業しています。複雑なWebFormsプロジェクトのクリーンアップ

これらは、時間の経過とともに実装したいさまざまな変更があり、最終的にはASP.NET MVCでサイトを再作成することを希望しています。

現在、このサイトはASP.NET Webフォームプロジェクトです。実際のASP.NETコントロールはめったに使用されません。代わりに、多くのサーバーサイドタグ、つまり<%...%>があります。これらのタグのコードは、通常、静的クラスの静的メソッドまたはHTMLを生成するC#コードのフラグメントへの呼び出しです。

多くの静的メソッドは、文字列ビルダーにテキストを追加して文字列として返すことによってHTMLを生成します。

私は「ヘルパー」メソッドの概念を理解していますが、HTMLを文字列変数に連結してレンダリングするという考えは嫌いです。私は彼らが 'Partials'を使う方が良いと思う。

私が気にすることは、かなり複雑なサイトだということです。ASP.NET MVCでサイトを完全に再構築するのが良い方法かどうかはわかりません。

不正な構造にもかかわらず、要求されている新しい機能を追加するのは難しくありません。 (たぶん私は過去の経験が困難なコードを扱っていたからです)。

しかし、コードベースの完全なクリーンアップを行わないと、将来的に要件が発生し、実装が非常に困難になる可能性があると私は考えています。

私はこの質問を外に出して、誰かが同様の問題に直面しているかどうか、それをどのように処理するかを見たいと思います。

また、20%のタイムサイドプロジェクトとして再ビルドを行うことについてのあなたの考えは?このようにすることには欠点がありますか?

答えて

1

うわー、これはいくつかのプロジェクトです。

個人的には、ASP.Netで書かれたサイトは、UIに関する限り、完全に再処理する必要があります。 MVCはこれとはまったく異なっています。

あなたのビジネスロジックは大丈夫ですが、懸念が分かれていてUIに束縛されていない限り、私は思っています。

データアクセスは大丈夫で、おそらく最小限の接触が必要です。しかし、それはあなたのウェブサイトがいかにしっかりと縛られているかによっても変わります。

MVCがビジネスを行う方法を見て、変換するために必要なことを批判的に分析し、UIの上にあるすべてのレイヤーを完全に変換し始めることが最善のアプローチだと思います。

可能な場合は、MVCフレームワークをすでに使用しています。もう一度、あなたができる場合に限り、実行可能な場合のみ。

これをサイドプロジェクトとして実行すると、あなたのライブラリの一部を取って、mvc変換のためにそれらを変換することができます。

しかし、あなたがそれを実装するプロジェクト/レイヤーを変換すると、忘れてしまったり、新しいレイヤーにコード化する必要がある他のレイヤーに変更が加えられたりする危険性があります。あなたはトラップを知っています。

UIに関しては、特にたくさんのASPコントロールを使用すると、大きなものになります。 UIの評価に多くの時間を費やし、置き換えたり書き込んだりする必要があるコントロールのリストを思いつきたいと思うかもしれません。そうすれば、パターンを見始めることができ、一定の一貫性が得られます。

コードにコードがたくさんある場合は、これを別のレイヤーに移動して、後でコントローラなどを作成するときに役立ちます。新しいレイヤーをインスタンス化して、すべてを良好にすることができます。

これは私の頭の上から考えることができるすべてです。私は物事を考えて編集したりコメントしたりします。

これが役に立ちます。

0

私はそのプロジェクトを持っていて、最初からそれをやり直すように求められましたが、MVCを使用してUIをレンダリングせず、Web API/ODataを使用してすべてのバックエンドをホストし、 UIを描画すると、Angularは非常に良い選択肢になります。

古いプロジェクトの変更や新機能のペースが、新しいプロジェクトで行われたprogrressよりも小さい場合にのみ、サイドプロジェクトとして役立ちます。あなたは重複した作業をすることで終わらせたくありません。古いコードをフリーズする必要があります。

また、データの保存オプションを変更する必要がある場合は、データの移行について検討する必要があります。

関連する問題