7

最近、asp.net MVC について多くの議論がなされていることに気付きましたが、いつ、どこで、なぜ WebForms でそれを使用する必要があるかについて、明確で説得力のある説明を見つけられませんでした。

ある人がアイテムをオンラインで宣伝できるようにする小さな Web アプリケーションを構築したいとしましょう。Web サイトには 4 つの使用例があります。

  • 検索広告
  • リストを見る
  • アイテムの表示
  • 広告を掲載する

仮定しましょう:

  • コントローラーの単体テストには特に興味がありません。ページはアイテムのリストを正しく表示するか、または表示しません。
  • HTML マークアップをより細かく制御することに関心があります。
  • 最新のバズ テクノロジーをそのためだけに使用することに興味はありません。
  • 生産性、パフォーマンス、保守性、および最終ソリューションのシンプルさの点で、仕事に最適なツールを使用することに興味があります。
  • 簡単なものを機能させるために、多くのニュアンスを回避する必要はありません。

したがって、私の質問は次のとおりです。

  • 2 つのモデルの基本的な違いは何ですか?
  • どちらのシナリオが他のシナリオよりも優れていますか?
  • asp.net MVC の落とし穴は何ですか (私は WebForms の落とし穴を認識しています)
  • サンプル アプリの場合、WebForms の代わりに asp.net MVC を使用すると何が得られますか?
  • サンプル アプリの場合、WebForms の代わりに asp.net MVC を使用すると何が失われるでしょうか?
  • 同じ小さなアプリケーション内でモデルを組み合わせることは可能ですか?

時間を割いて回答を提供してくれた人に感謝します。

4

3 に答える 3

10
  • 2 つのモデルの基本的な違いは何ですか?

WebForms は、事前に作成された多数のコントロールを再利用できるようにし、非表示の _VIEWSTATE メカニズムを介して Web アプリケーションの状態を偽装することにより、WinForms 開発を模倣しようとします。

MVC は、データ (モデル)、ビジネス ロジック (コントローラー)、およびプレゼンテーション (ビュー) を分離するのに役立つように設計されたパターンです。それは、Web の本質 (RESTful URL、ステートレス) により忠実です。

  • どちらのシナリオが他のシナリオよりも優れていますか?

私の意見では、コントロールを頻繁に使用するイントラネット アプリケーションの場合、WebForms は開発時間を短縮するのに役立ちます。デザイナーのおかげで、UI を非常に迅速に作成し、フレームワークにアプリの状態を自動的に管理させることができるからです。

他のプロジェクト、特に公開 Web サイトでは、小規模なものであっても、MVC が最適だと思います。

  • asp.net MVC の落とし穴は何ですか (私は WebForms の落とし穴を認識しています)

MVC パターンとその力を完全に理解するには、ある程度の学習曲線があると思います。また、フレームワークはまだベータ版であるため、リリース前に API にマイナーな変更が加えられることが予想されます。

MVC では JavaScript が隠されているわけではないため、慣れていない場合は、習得するのにも時間がかかります。ただし、jQuery はこれを大幅に簡素化します。

  • サンプル アプリの場合、WebForms の代わりに asp.net MVC を使用すると何が得られますか?

HTML マークアップと Javascript の動作をより適切に制御し、懸念事項をより明確に分離し、簡単にテストできるコードベースを手に入れることができます (単体テストに興味がないように見えても)。

  • サンプル アプリの場合、WebForms の代わりに asp.net MVC を使用すると何が失われるでしょうか?

ページを作成するための「ドラッグ アンド ドロップ」の簡単な方法とアプリケーションの状態管理を失うことになります。

  • 同じ小さなアプリケーション内でモデルを組み合わせることは可能ですか?

いくつかの点で、そうです。

フレームワークの概要を説明し、それを使用して StackOverflow を構築した方法について Jeff Atwood を招待する Phil Haack によるこの講演を視聴することをお勧めします。

彼は、SO が CAPTCHA に WebForms コントロールを使用して、自分自身をビューにレンダリングする方法を説明しています。

于 2008-11-26T00:51:24.910 に答える
3

主な違いは、MVC はプログラミングの世界で使われている「通常の」Web 開発に似ているのに対し、標準の ASP.NET は Windows 開発者が簡単に Web 開発者になれるように設計されていることです。Ruby on Rails を学ぶことで Web プログラミングを学びましたが、MVC は Rails の .NET 版になりつつあるようです。

MVC は、通常の ASP.NET よりも、標準への準拠、邪魔にならない JavaScript、関心の分離を重視しています。HTML と CSS がどのように連携するかを理解する必要があります。MVC を習得するにつれて、より多くの JavaScript を学習できます。私にとって MVC の最大の利点の 1 つは、jQuery を使用して、通常の ASP.NET よりも簡単かつ優れた AJAX 処理を実行できることです。

Web 開発を学んでいるのであれば、MVC を学ぶことを強くお勧めします。将来、新しいスキルの少なくとも一部を他のフレームワークに移すことができます。

すぐに Web 開発の仕事に就くために何を学ぶべきかを探しているなら、ASP.NET を強くお勧めします。

MVC が RTM 化されると、採用曲線はゆっくりと安定したものになると思います。MVC が成熟するにつれて、ASP.NET で Web サイトを作成するための主要なフレームワークになる可能性があります。少なくともそう願っています!

于 2008-11-22T17:11:20.440 に答える
2
  1. ASPNET MVC と WebForms の最大の違いは、ページのライフサイクル、難しい (不要な) ポストバックがないこと、クリーンなコーディング、enz です。
  2. そのためのルールはありません
  3. ???
  4. RESTフルサイト、ロジック分離
  5. 設計時のサポート、サードパーティの Web コントロールは使用できません
  6. 混ぜないでください。本当に WebForms モデルを使用したい場合は、MVP パターンを使用できます。Billy McCaffertyは、その設計パターンに関する優れた記事を書きました。

アプリケーションの一部を MVP パターンから MVC パターンに再設計しています。MVC の方が優れているからではなく、MS が提供する最新の手法を使用したい (パターン自体はかなり古い)。

于 2008-11-22T16:38:37.387 に答える