ASP.net Model View Presenterは時間の価値がありますか?
-
03-07-2019 - |
質問
私はこの週末にASP.net MVPパターンについて読んでいますが、MVPパターンでそれを行うと、最も単純なタスクでも多大な労力がかかるようです。 MVPをフォローします。 ASP.net MVCでプロジェクトを実行しないのはなぜですか?
MVPパターンを見ている理由は、すべてのASP.net Webformプロジェクトで、多くのサーバーコントロールがある場合、イベント処理のためだけにコードビハインドに多くのコードがあることに気付いたからです。 Webフォームでそれを減らす方法を探していて、MVPパターンに出くわしました。
MVPパターンに従うか、単にASP.net MVCに切り替えるだけの労力に値しますか?
解決
新しいプロジェクトを開始する場合は、ASP.net MVCの方が適しています。ただし、前述のように既存のプロジェクトをリファクタリングしたいだけの場合は、MVPがオプションです。これらのWebフォームコードをMVCに変換する簡単な方法がないためです。
他のヒント
次の2つのリンクを読んで、MVPとMVCの最新情報を入手することをお勧めします。
切り替えますか?
あなたが私に言ったことに基づいて、上記の記事で言及したパッシブMVPモデルを使用することをお勧めします。
私の主な仮定は次のとおりです。
- WebFormsアプリの既存のコードベースを扱っている
- 既存の機能にはThirdParty .Netコントロールを使用する必要があります
- 既存のアプリに取り組んでおり、それらを再設計する時間がありません
- 今後取り組むASP.Net Webアプリであれば、パッシブMVPを段階的に適用して、TDDのメリットをすぐに得ることができます
あなたのビュー(コードビハインド+ aspx)は本質的に愚かになり、単純なタスクを実行するだけです:
- 発表者から提供された情報を取得する
- イベントに応答し、プレゼンターに情報を提供します
このフォームをWebフォームの開発に幅広く使用しましたが、モデルとプレゼンターのコードを単体テストできないことは想像できませんでした。それほど長くはかからず、単体テストの威力を見たベースモデルを確立したら、Webフォームでの作業が楽しくなります。
使用したモデルのベースとなっているMVPのものへのリンク:
MVCを習得することもお勧めします。
時間が許せば、既存のアプリをMVCに移植します。このように、あなたの唯一の焦点はMVCを知ることであり、ロジックをMVCパターンに移行すると、WebFormsに実装したものを発見し、あまり考えたことはなく、今は別の方法で解決する必要があります。パターンを比較し、何が効果的かを確認するのに最適な方法です。
これがお役に立てば幸いです。気軽に質問してください。
私の意見では、新しいアプリケーションを採用する理想的な方法はMVCです。ただし、すでにWebFormsを使用しているコードがたくさんある場合は、MVPパターンが最適です。
新しいプロジェクトであればAsp.Net MVCに行きますが、MVPはレガシーWebフォームプロジェクトの良いパターンかもしれません。
これは私のブログの例です。 http:// www .unit-testing.net / CurrentArticle / How-To-Use-Model-View-Presenter-With-AspNet-WebForms.html
私の個人的な意見では、コードビハインドに多くのコードがある場合、M-V-Pを採用する以外に、スリム化し、リファクタリングし、テスト可能にする方法があります。
ページで広範なユーザー操作(ボタン/リンクの有効化/無効化、パネルやコントロールの表示/非表示など)がある場合、M-V-Pは手間がかかります。