2011-01-31 23 views
2

asp.netのmvcとWebアプリケーションの違いを説明することができます。 mvcの にはコントローラフォルダがあります。私たちはWebアプリケーションのコントローラフォルダを見つけることができません..!私の混乱を消してください。asp.net mvcアプリケーションとasp.net Webアプリケーションの違いは何ですか

+0

[ASP.NET WebフォームとMVCの主な違いは何ですか?](http://stackoverflow.com/questions/142132/what-are-the-key-differences-asp-net-webforms-and-mvc) – nawfal

答えて

3

ASP.NET MVCアプリケーションは、ASP.NET MVCフレームワークに依存するアプリケーションです。 MVCはMVCパターンを使用して作成されたアプリケーションを定義する3つのコンポーネントであるModel、View Controllerの略です。

MVCパターンは異なる、幾分独立したコンポーネントにアプリケーション・ロジック、データ及びプレゼンテーションを区切ることを目的とします。

モデル

モデルは、アプリケーションのデータの表現です。例えば、ショッピングアプリケーションは、ユーザのショッピングカートの状態を表すカートモデルを有することができる。

表示

ビューは、モデルに含まれるデータの視覚的表現です。ビュークラスは、使用するモデルをどのように提示するかの詳細を把握する必要があります。

コントローラ

コントローラの仕事は、ユーザーの入力を処理し、ユーザーアクションの結果として行われた変更を反映するために、モデルの状態を更新することです。たとえば、ユーザーが[お問い合わせ]ページを表示して[送信]ボタンをクリックしたとします。コントローラーは、フォームのフィールドから値をモデルに更新し、モデルを保存して、それを検証してデータベースに書き込むことによって、ボタンのクリックに応答します。

これは、MVCパターンとASP.NET MVCフレームワークのより完全なビューを得るために、ASP.NET MVC homepageに向ける必要があるMVCパターンの非常に浅く不完全な説明です。

ASP.NET Webアプリケーションは、Webフォームと呼ばれる別のフレームワークを使用します。 WebフォームはMVCパターンで定義された規則を使用しないため、Webアプリケーションテンプレートは類似のフォルダ構造を作成しません。

フレームワークの使用は相互排他的ではなく、2つは同じ問題に対する異なるアプローチを表します。データアクセスに最も効率的なのは、Michael Shimminsの優れたコメント

7

MVCはコントローラを使用してモデルとビューを調整し、ユーザーインターフェイスをユーザーに提供します。

Webフォームは、それはイベントでの背後にあるコードを使用して、これを達成するためにコントローラを使用していません。

MVCは懸念の分離の概念を中心に構築されている - それぞれの事は、それ自身のビットを担当し、他のビットが何をしているかに関係してはなりません。 Webformsは、コードがより密接に統合されています。コードは、コードがWebフォームと(コードビハインドで)1:1で関連付けられ、ビジネスロジックがUIに入り込むことがよくあります。

Webフォームは、そのステートレスな性質として、HTTPの複雑さの一部を抽象離れて支援する強力なイベンティングシステムを使用しています。 MVCはこれを行いません。これは、開発者が純粋なHTTP環境の範囲内で作業することを要求します。 WebFormsのイベントシステムは、VB6/WinFormsのバックグラウンド(ASP.NETが最初にリリースされたときに対象読者が持っていたもの)から来た場合、イベントをよく知られた方法で素早く結びつけることができます。

はMVCを使い始めるに大きなチュートリアルをたくさん持っているhttp://www.asp.net/mvcを見てください。

+0

よろしくお願いします。どちらがデータベース、MVCまたはwebformsとasp.netアプリケーションを使用して効率的です。 – Mihir

+1

@Mihir - それは(申し訳ありません)依存します。 WebFormsは、グリッド、ページャなどのすぐに使用できるデータバインディングコントロールがあるため、多少効率が良いかもしれません.Webformsよりもテスト容易性のため、MVCが優れているかもしれません。しかし、彼らはそれぞれ用途があり、さまざまな仕事に適しています。クエリ実行の点でのデータベース効率などは、両方とも同じライブラリを使用してDBと通信するため、大変です。 –

関連する問題