2011-12-15 48 views
5

ASP.NET WebフォームからMVCへの変換が十分に不可能であることを示す多くの質問と記事を読んでいます。しかし、私はと思う私のシナリオは異なるです。ASP.NET WebFormsからMVCへの移行

私は愚かにもWebFormsで約1年前にプロジェクトの作業を始めましたが、(私が理解する限り)取ったアプローチは非常にMVCのようです。フォームの検証を無効にし、ポストバックを使用せず、URLの書き換えを使用し、すべてのページ変更はContentPlaceHoldersのページコンテンツを読み込むAJAXリクエストです(小さなハックを使用してRenderControlメソッドをオーバーライドします)。また、自分のORMとRESTfulサービスAPIを別のプロジェクトで使用しました。

システムが本当にうまくいくようになりました。ページは部分的に細かくリフレッシュされ、URLはajax呼び出し時に変更されるため、ページがリフレッシュされるときにはまったく同じように見えます。

私は新しい大きなプロジェクトのためにMVCを学ぶ必要があると言われましたが(私は別のプロジェクトを最初に完成させなければなりません)、テーマについて少し読んで、いくつかのHello World ASP.NET MVCのアイデアは、私がすでに作成したものとほとんど同じです。

StackOverflowでもWebformsアプリケーションをMVCに変換することをお勧めしますか?ベストプラクティスの他に、MVCに変換する他のメリットはありますか?

+0

確かにWebフォームをMVCに "変換"することはできますが、そのプロセスには多くのコピー/ペースト/リライトが必要です。 – jrummell

+0

「ベストプラクティスの他に、MVCに変換する他のメリットはありますか?」という質問が私にあります。この質問の残りの部分から、他のすべての豆を缶詰にすることができます。 –

+5

それがそのままうまくいく場合は、書き換えないでください。 – Erix

答えて

3

私は、非常に大規模で古いASP.NET WebFormsアプリケーション(もともとは.NET 1.1用に書かれました!)を持っていて、MVCをそれに並行して使用できるようにしました。私はMVCを使って新しい機能を書いていて、古いWebForms機能をMVCコントローラやビューに変換しています。

URL認可とIIS統合モードでの実行に関するいくつかの小さな問題が発生しましたが、問題を理解するとかなり簡単に解決できました。そうほとんど不可能?確かにそうではありません!

アプリケーションのサイズ、スコープ、性質、またはビジネス上の制約がわからないため、変換する価値があるかどうかはわかりません。しかし、MVCに移行することは、開発と品質を容易にするためにかなりの利益をもたらしています(コンパートメント化と単体テストが容易なため)。言うまでもなく、MVCで書いた(または書き直した)機能は、WebFormsの同等機能よりはるかに洗練され、速く、応答性があります。

これをMVC v2からv3に移動し、Razorビューに変換することに興奮しています。私はそうだろうか?私はあなたがいて、私は時間があったら、私はそれをやります。

ここでは、私が転記した質問と、そのプロセスの概要と、私が変換で持っていたより重要な問題の1つについて説明します。 Migrating legacy ASP.NET to MVC 2 (RC): HttpApplication events not firing, User principal is null

+0

このプロジェクトは私のキャリアの最大の学習曲線となっているかなり大きなネットワークである個人的なプロジェクトです。私が仕事で学んだことはすべて、私は家に帰って行って、このプロジェクトをより良いものにするように設計しました。締め切りはないので、時間は問題ではありませんし、私はそれを支払うこともありません。私がここで恩恵を受けると思われたことの1つは、ホイールを書き直すのが好きだということです。私は自分のORM(これはモデルですか?)、UserControls(ビューとコントローラ)、ログイン/登録フレームワーク、RESTful APIフレームワーク。 – Connell

+1

あなたはMVCでの作業を楽しむでしょう、と私は思います。それは真剣に爆発です。私はWebFormsを最初から嫌っていましたが(ASP.NETのアーキテクチャが大好きです)、「ホイールを再発明する」ということを感じています。 – HackedByChinese

3

私は最近、中規模のプロジェクトをWebFormsからMVCに変換しました。私はあなたの最初のMVCプロジェクトでこれを行うことをお勧めしませんが、一度それを掛けてしまえば、(徐々に)WebFormsアプリケーションをMVCに変換するのを止めることはありません。

私が気づいた主な利点の1つは、の速度です。 viewstate、データバインディング、Webコントロールの不思議さを捨てることで、はるかに高速なアプリケーションになります。

もちろん、生成されたhtmlに対して、テスト容易性や完全な制御などの既知の利点があります。

WebFormsとMVCは同じ基本的なASP.NETプラットフォームを共有しているため、実際には読んだとおりに互換性がありません。

+0

生成されたHTMLに対する完全なユーザーコントロールが良いでしょう。私は 'オーバーライド文字列ClientIDに入れてうんざりです{get {return ID; }} '私のUserControls! – Connell

関連する問題