ここには状況があります。私たちはWebFormsに基づいた一連のWebアプリケーションに新しいアプリケーションを追加しています。そのため、MVCを導入するのに最適な時期だと感じました。既存の大規模なカスタムコントロールのライブラリを持つWebFormsからMVC3への統合/切り替え
MVCルートを使用するArea
を使用してプロジェクトをすべてセットアップしましたが、残りの(ビジュアルスタジオ)プロジェクトは実行中の方法でWebフォームで実行されます。
マスターページはすべてのアプリケーション間で共有されたマスターページが1つだけだったので、面倒ではありません。
私が今実行した問題は、ユーザーコントロールを再利用することです。私たちには数多くのカスタムユーザーコントロールがあり、その多くはかなり複雑で、すべてのアプリケーションで再利用されています。それらのほとんど(特にポートするのが難しいもの)は、ViewStateとポストバックでかなりの量を処理します。
MVCでこれらを書き直すだけであれば、ワンタイムコストは理想的ではありませんが恐ろしいものではありません。しかし、既存のアプリも維持し更新する必要があるため、全く異なるパラダイムを使用して同じ動作の2つのバージョンを維持することは、生産性を大幅に低下させることになります。
本当に良い解決策はないと言いますが、私たちはこのプロジェクトでMVCに行ってウェブフォームに固執する考えを放棄しなければならないかもしれませんが、SOコミュニティが何を洞察するかこのシナリオで行います。
+1書き直しの予算がない場合、MVCの利点を得る別の可能性があります。 MVCはAPIとして使用できます。たとえば、リッチクライアント側API(TelerikのASP.NET AJAXコントロールなど)でコントロールを使用する場合、メソッドからjsonを返すコントローラを使用してクライアント側のデータバインディングなどの操作を行うことができます。私はこれまで、コードの単体テストを可能にし、ダウンロード可能なエクスポートされたデータをより簡単に提供するなどの方法を使用しました。 – Sumo