2011-11-16 34 views
11

可能性の重複:
What is the difference between MVC and MVVM?MVCとMVVMの違いと類似点は何ですか?

私がAsp.Net MVCパターンに新しいです。 MVCとMVVMに関連する質問はほとんどありません。

  1. これらのパターンにはどのような問題がありますか?
  2. どのように似ていますか?
  3. どう違うのですか?
+0

このを見て考えてみます。http:// stackoverf low.com/questions/6258682/is-the-m-in-mvc-different-than-in-mvvm –

答えて

8

をあなたを助けます。コントローラーは適切なビューを決定し、それをモデルで入力します。コントローラは、これらのインスタンスを、クライアントに結果をレンダリングする基盤となるシステムにリリースします。コントローラが最初に動作し、最後に動作することがわかります。

MVVMでは、UI(ビュー)はユーザーに直面し、ユーザーの入力を直接受け取ります。ビュー内では、ViewModel内のコマンド(ビューのDataContext)がこのアクティビティによってトリガされます。コントロールは、Viewが送信した内容を解釈し、そのモデルを準備するViewModelに流れます。制御がビューに戻ると、モデルの変更に応じて更新されます。新しいViewが必要な場合、ViewModelはこれをNavigationService(またはアプリケーションが使用するナビゲーションの方法)と通信します。これはWindowまたはFrame-UIコンポーネントの範囲です。 ViewModelは最初と最後ではないことがわかります。ビューはMVCよりもはるかに大きな役割を果たします。

どちらが最善かを選択する限り、私はツーリングサポートによって導かれる傾向があります。たとえば、ASP.Netを使用している場合、ボイラープレートのセットアップとアプリケーションでのそのパターンの使用に役立つMVCプロジェクトテンプレートを使用すると、膨大な量の自動化が行われます。私がSilverlight/WPFについて理解していることから、MVVMの周りにはたくさんのサポートがあります。数年前にMVC/MVPでスピードアップする予定だったとき、私は電子商取引アプリケーションのチェックアウトプロセスでMVPを実装しました。満足のいく成果をあげた素晴らしい経験でしたが、私は手作業ですべてのツールをサポートしていました。私がSilverlightアプリケーションを書くとき、私は確かにそこにあるサポートのためにMVVMに向かって移動するでしょう。

+0

リクエストはどのようにWebサーバーから届きますか? Webサーバーの主な機能は、Webブラウザーからの要求を処理することで、応答が出されます。 –

2

コンテンツが充実していますうちにこれをカバーするウェブ上ではなくスターターthis映像などの要求がWebサーバーから来て、コントローラによって直接処理されたASP.NET MVCで

2

MVCは、特にドメインロジック、ユーザーインターフェイス、ビジネスロジックなどの大きな分離を可能にするソフトウェアアーキテクチャパターンであり、懸念の完全な分離を可能にし、独立したロジックを個別に開発し、実装の複数のバージョンを簡単にテストできます。

モデルは、ほとんどの人がデータベース表の観点から考えているにもかかわらず、キャプチャしたいすべてのものを記述するエンティティが好きであれば、ストレージモデルとモデルだけがすべてを組み合わせています。

あなたはコントローラービューが作るかのモデルに起こる変化を取っ間の相互作用を駆動するものです

と対話するUIを好きなら図です。

MVVMはMVCと同じですが、余分なビューモデルを使用してUIを助けます。このビューモデルはコントローラを介してモデルと同期します。

等もリポジトリパターンのようなベスト・プラクティスをencompasesアーキテクチャ、IOC

迅速例えば以下のように同じモデルのためのViewModelこれはよりかもしれ

Class PersonViewModel 

{ //Pseudo code 
    SelectList {mytype, yourtype} 

} 

かもしれさて人物モデル

class Person 
{ 
    int id; 
    string type; 

} 

はUIで役立つビューモデルは、人物のタイプをpoplulateするドロップダウンリストを持っていることを言います としてビューで使用//擬似コード のDropDownList(slectList)

ホープ、このことができます

関連する問題