2009-08-01 13 views
2

私は、10年間のデスクトップアプリケーション開発の後、Web開発の分野に飛び込んでいます。私は高レベルの概念ができるほど速く学習しています。その1つはMVCです。私はjavascript、css、htmlのようなものがM、V、またはCに分類されないことに気がつきました。私は明示的にそれをどこでも読んでいませんでしたが、MVCパターンはただ組織化するウェブサイトのサーバー側のコードとデータ?これは奇妙な質問である場合は謝罪、私は愚か者だということを忘れないでください! :)ウェブサイトの場合、MVCパターンはサーバー側でのみ使用されますか?

ご協力いただきありがとうございます!

答えて

5

レンダリングされたページには、javascript、jquery、およびその他のスクリプト機構が含まれる場合があります。これらのことは正面から見ることができ、すべての作業をクライアント側(ブラウザ内)で行います。

それ以外の部分(モデルとコントローラ)はサーバー上で実行されます。ビュー自体の多くは、サーバー側からレンダリングされます。

ここでは、データをグループ化してブラウザに出力する小さなビューの例を示します。

<ul> 
<% foreach (var group in Model.GroupBy(item => item.Category)) { %> 

    <li><%= Html.Encode(group.Key) %> 
    <ul> 

    <% foreach (var item in group) { %> 
     <li><%= Html.Encode(item.Data) %></li> 
    <% } %> 

    </ul> 
    </li> 

<% } %> 
</ul> 

そこにはJavaScriptがありません。このコードは、完全にサーバーから実行されます。 liタグとulタグがブラウザに渡され、リスト項目の順序付けられていないリストが作成されます。

Key1 
    Data1 
    Data2 
    Data3 
Key2 
    Data4 
    Data5 

..etc:

出力は、ブラウザで次のようになります。

コードALLはサーバー上にありますが、一部はサーバー上で実行され、一部(HTMLとJavascript)はブラウザーに渡されて実行されます。

+0

ありがとう、robert!別の質問、ビューに入るサーバー上のものは何ですか? – BeachRunnerFred

+1

@Beeph、テンプレートベースのコンテンツ生成ページはビューカテゴリに分類されます。 (たとえば、jsp(java)、aspx(net)) – adatapost

2

MVCはソースコードを整理する方法です。ソースコードがある場合は、3つのいずれかを持つことができます。 MVCパターンのどの部分にも固有のクライアントまたはサーバーの側面はありません。

たとえば、最近私は(igoogleのような)純粋なjavascriptでガジェットポータルを実装しました。私は、jsonデータブロブからガジェット設定を読み込んで保存し、それらのガジェットの設定を管理するためのモデルクラスを用意しました。次に、モデルによって送信されたイベントに基づいてモデルに現在ロードされているガジェットを自動的にレンダリングするビューがありました。最後に、残りのアプリケーションでメニューのクリックをリレーしてモデルを更新するコントローラーを用意しました。それはMVCですが、純粋にjavascriptで、純粋にクライアント側です。

0

MVCのアイデアを実装するサーバー側言語を使用している場合、CSS、HTML、およびJavascriptはビューを処理します。 Javascriptはコントローラとより多くのことをやりとりするので、やや濁っています。

0

コードとデータを整理するだけではありません。ビューに関しては、一般的なWebページ(jQuery、JavaScript、Ajax、Knockoutなど)を使って何でもできます。また、Ajaxをサーバー側(コントローラ)に話すこともできます。 MVCは、一般的なaspx Webアプリケーションよりも速く動作します。 プロジェクト/コードを理解するのが良いですし、チーム内の新しい人にコードを導入する時間も少なくて済みます。 メンテナンスすることをお勧めします。適切なアーキテクチャーデザインでは、prjをゼロから再開発する必要はありません。

関連する問題