技術的なリードは間違いです。
真のMVCフレームワークを使用したことのない人々の間では、「MVC」はウェブフォームとはまったく違った風潮です。
このような理由を理解するには、MVCのアーキテクチャパターンと、MVCパターンを実装するMicrosoftによって構築されたフレームワークのASP.NET MVCの違いを理解する必要があります。
多くの場合、かなりの話題を理解していない、このようなハイテクリードや建築家などの人々は、2本の違いを理解せずパターンと枠組みの両方を記述するために「MVC」の用語を使用します。しばしば混乱を招く。
ので、明確にするために、MVCパターンは新しいものではない、そしてそれは実際にのようなフレームワークの多くによって実装されています。
Webformsはではありません。 MVCパターンを実装したフレームワークの1つです。
WebFormsにMVCパターンを実装することは可能ですが、WebformsはMVPスタイルパターンを実装する方が適しており、この点については実際にフレームワーク(such as this one)があります。
ハイテクリードは、彼が話しているものは考えていないことが最大の指標は、しかし、これは次のようになります。
マイテックリードで切断し、 (階層、Webフォーム)上記のプロジェクトということを教えすることにしましたMVCと同じです
「アプリケーション」に「ティア」を導入することは、MVCとは関係ありません。実際、階層構造のアーキテクチャでは、MVCアプリケーションはプレゼンテーション層内に完全に配置され、他のアプリケーション層とは何の関係もありません。
フロントエンドにASP.NET MVCを使用すると、ASP.NET MVCフレームワークを使用して実装されたロジックレイヤーの上にプレゼンテーション層が存在することを意味します。単にMVCを使用しているため、他の層の必要性を突然なくしたというわけではありません。
逆に、Webフォームは、階層構造内のプレゼンテーション層に過ぎません。階層化されたアーキテクチャを使用しているのは、MVCパターンを使用していることを意味するものではありません。他の点のそれぞれに
:
ビューは、これは真実ではないだけでASPXページ です。 ASPXページは非常に複雑な獣であり、MVCのビュー間の1つの非常に大きな違いがあります。
彼らは、彼らがするように設計されて、このページ全体のライフサイクルとビューステートのシステムとコントロールを持っている状態
を維持するために設計されていますポストバックの間の状態を維持する。
ASP.NET MVCはステートレスであるように設計されているため、ビューにはこうした複雑さが含まれていません。
コントローラは、単にページ-尻
この文は完全にコントローラのポイントを見逃しています。
コードビハインドは、ASPXページをレンダリングするプロセスに関係するすべてのことを明示的に認識しています。ページ上のコントロール、ページの状態、ページのライフサイクルを把握しており、非常にが密接に結合されています。が表示されます。
コードビハインドも1つしか戻っていません。 aspxページ。
コントローラは、はるかに柔軟であり、唯一のビューを返すことはできませんが、彼らはあなたのデータの異なる表現をレンダリングするための制御ロジックに使用することができます。たとえば、標準のhttpリクエストではHTMLと同じデータをレンダリングしたり、AJAXリクエストではJSONとしてレンダリングしたりすることができます。
コントローラロジックとビューロジックは疎結合があるので、これは可能であるこれを可能にするものである。
モデルは単なるデータが
これは間違っているオブジェクトです。どのような種類の複雑なMVCアプリケーションでも、データオブジェクトをビューに直接バインドすることはまれです。簡単に言えば、データをデータベースでモデル化する方法は、ビューを表示するために必要なデータを表すことはめったにありません。
たとえば、「TitleId」という従業員レコードがあるとします。レコード内のデータはint型にすぎませんが、実際のテキスト値をユーザーに表示して意味をなす必要があります。
ほとんどのMVCアプリケーションでは、「モデル」は実際には「ViewModel」としてより正確に記述され、データモデルやドメインモデルとは完全に分離されています。
あなたのハイテクリードで「あなた-持っ-NO-アイデア - 何-you're-トーキングについて」ちょうどセマンティックレベルで間違っている、間違った間違っている、とされていない要約する
レベル。
- Webフォームを使用した階層アーキテクチャを使用しても、MVCパターンが実装されているわけではありません。
- ASPXページには、何も
-
ビューのようなCodebehindsは
-
コントローラのようなモデルがデータオブジェクトとは何の関係もない、何もされていません。
希望するものがあります。
ウェブサイトのn層アーキテクチャに疲れているのは私だけですか? –
言語とフレームワークを除いて、これはまだ 'モデル'、 'ビュー'、 'コントローラ'を持っているので、これは「MVCパターン」に従うと言えるでしょうか? – user1215399