2009-05-04 16 views
16

私はこの週末にASP.net MVPパターンについて読んでいます。MVPパターンで行うと、最も単純なタスクでもあまりにも多くの労力を要するように思えますが、大きなプロジェクトであるようですが、 MVPに従うつもりです。なぜASP.net MVCでプロジェクトをやってみませんか?ASP.net Model View Presenterは時間の価値がありますか?

私がMVPパターンを見ているのは、すべてのASP.net Webformプロジェクトに気づいたからです。私は多くのサーバーを持っていれば、イベント処理のためのコードがたくさんあります。 Webフォームを制御するので、私はそれを減らし、MVPパターンを見つけ出す方法を検討していました。

MVPパターンに従うか、ASP.net MVCに切り替えるだけの価値はありますか?

+2

短い答え:ここで

は私のブログからの例です。これにより、テスト能力、維持能力、読み取り能力、設計能力が促進されます。 –

+0

ほとんどのチームとプロジェクト(私が含まれています)はMVCへの完全なMVC書き換え、あるいはまったくない「切り換え」を単純に正当化できません。 –

答えて

16

新しいプロジェクトを開始する場合は、ASP.net MVCを選択することをお勧めします。しかし、あなたがちょうど言ったように既存のプロジェクトをリファクタリングしたいのであれば、これらのWebフォームコードをMVCに変換する簡単な方法がないため、MVPがオプションです。

+0

ASP.NET MVCはなぜより良い選択ですか? – cruizer

+1

MVCは、初心者でもすぐに使える足場をたくさん用意しています。これはルーティング、足場、テストなどを行うことを非常に簡単にします。 – aleemb

+0

@ aleemb、反対側の "伝統的な" asp.net "webforms"は、asp.net MVCとは対照的に、ビルドインとサードパーティの再利用可能なUIコントロールの豊富なセットを提供します。 webformsと比較してはるかにhtmlを書く必要があります..仕事には常に最高のツールがあり、mvcは常に最良の選択ではありません。 – Jack0fshad0ws

2

私の個人的な意見では、コードの背後にコードがたくさんある場合、それをスリム化し、リファクタリングしてテスト可能にするために、M-V-Pを採用する以外の方法があります。

あなたのページには、ボタン/リンクの有効/無効、パネルとコントロールの表示/非表示など、ユーザーの操作が豊富な場合は、M-V-Pが面倒な価値があります。

3

私の意見では、新しいアプリケーションのための理想的な方法はMVCです。しかし、すでにWebFormsを使用しているコードが多い場合は、MVPパターンを使用してください。

+0

なぜ理想的でしょうか? – cruizer

+1

ASP.NET MVCを使用すると、HTMLをより細かく制御し、コードをよりテスト可能にすることができます。 「懸念の分離」のようなベストプラクティスに従うことができます。 – ichiban

19

私はMVPとMVCに高速化するためにあなたを取得するには、次の2つのリンクを読むことをお勧めします:あなたは

を切り替えるべきでしょうか?
私が言ったことに基づいて、上記のパッシブMVPモデルを使用することをお勧めします。

私の主な仮定は以下のとおりです。あなたは、Webフォームアプリケーションの既存のコードベースを扱う

  1. あなたは、既存の機能のためにサードパーティの.NETコントロールを使用する必要が
  2. 、既存のアプリケーションに
  3. 作業とそうでありませんそれらを再設計する時間がある
  4. すべてのASP。ネットWeb AppsはあなたがインクリメンタルパッシブMVPを適用し、すぐに

をTDDの利点を得ることができ、将来的に取り組むビュー(分離コード+ ASPX)は、本質的にダムとなり、単純なタスクを実行します。

  • イベントにプレゼンター
  • 応答によって与えられた情報を取得し、戻って、私はWebフォームの開発に広く、このモデルを使用しましたプレゼンター

に情報を提供し、ユニットテストでモデルとプレゼンターのコードができないとは想像もできませんでした。非常に時間がかからず、単体テストの力を見たベースモデルを確立すると、Webフォームを使って作業するのが楽しくなります。

私が使用したモデルが基づいていることをMVPのものへのリンク:

私はまた、あなたが学ぶことをお勧めしますMVCに。
時間が許せば、既存のAppをとり、それをMVCに移植します。あなたの唯一の焦点はMVCを知ることになり、ロジックをMVCパターンに移行すると、WebFormsで実装した事柄を見いだすことはありませんでした。しかし、今考えたことはありませんが、別の方法で解決する必要があります。パターンを比較して、あなたのために何が効果的かを見る素晴らしい方法です。

ご希望の場合は、お気軽に質問してください。

3

新しいプロジェクトであればAsp.Net MVCに行くことができますが、私は同意すると、MVPは従来のWebフォームプロジェクトの良いパターンかもしれません。あなたは、コードビハインドファイルのうち、あなたのコードの多くを得ることができますので、はい、その価値は努力: http://www.unit-testing.net/CurrentArticle/How-To-Use-Model-View-Presenter-With-AspNet-WebForms.html