web-dev-qa-db-ja.com

MVCとは何ですか? (Webアプリ内)

MVCについての多くの説明を見つけるのは簡単です。たとえば、 ここここ 、または このビデオ などです。

私は興味があります、MVCとは何ですか?

より正確には-MVCを使用するアプリで、MVC以外のすべては何ですか?

私はMVCを次の形で説明し始める傾向があると思います

アプリケーションを3つの部分に分けます[...]

これは、モデル、ビュー、またはコントローラーのいずれかの下で、できる限り(またはすべて)の設計に適合するようにすべきであることを示唆しているようです。

それでも、ほとんどの説明では、MVCは主にuser interface設計として記述されていることがわかります。この状況で非UI要素をどのように処理しますか?

  • 非UI要素の定義を曲げて、それらがモデルとコントローラーのどちらにも適合できるかどうかを調べようとしますか?
  • 非UI要素を処理するMVCデザインに個別の説明はありますか?
  • MVCがそのような要素とどのように相互作用するかについての説明はありますか?すべてモデルを通じてですか?すべてコントローラを通じて?

例えば:

ローカルネットワークの監視とデータベースへの情報の保存のみに使用されるアプリケーションの部分をどのように処理すればよいのでしょうか。 UIに関連する機能はなく、その唯一の目的は、ファイルに関連する情報をデータベースに入力することです。この情報は、Webインターフェースを介してユーザーに表示されます。

5
Voy

ローカルネットワークの監視とデータベースへの情報の保存のみに使用されるアプリケーションの部分をどのように処理すればよいのでしょうか。

いくつかのアーキテクチャはこのようなコードを異なる方法で実装しますが、階層化されたアーキテクチャでは、レイヤーを作成する必要があります。 DataAccessレイヤー、ビジネスロジックレイヤー。等..

モデル( モデルにはさまざまなタイプがあります )は、必要に応じてこれらのレイヤーと相互作用します。すべては、実際にアプリケーションまたはソフトウェアアーキテクチャに依存します。

非UI要素の定義を曲げて、それらがモデルとコントローラーのどちらにも適合できるかどうかを調べようとしますか?

あなたの「非UI要素」は、実際にはモデルに入る必要のあるビジネスロジックであり、異なるレイヤーと対話することができます。 DBレイヤーなど.

コントローラにロジックを追加する必要があります

enter image description here

その他の推奨事項

ここでは、MVCおよびその他のテクノロジを使用してDDDに基づいて開発されたサンプルプロジェクトをいくつか紹介します。

EFMVC-ASP.NET MVC 4、Entity Framework 5 Code FirstおよびWindows Azure

ASP.NET MVC 5、EF 6 Code First、AutoMapper、AutofacおよびTDDのサンプルWebアプリ

7
Muhammad Raja

MVCアプリケーションは、3つの特定の懸念事項に対処する(通常はユーザーインターフェイスを介して)プレゼンテーションのコンポーネントを分離するという意識的なアーキテクチャ上の決定があるアプリケーションです。

  • モデル。表示される情報を表しますが、情報の表示方法に完全に依存しません。
  • モデル内の情報を表示しますが、モデルがどのように構築されたかについては何も表示しないビュー。
  • 機会に適したモデルとビューを特定し、2つをまとめるコントローラー

理論的には、実際には多くの場合、同じモデルを複数のビューに接続できます。シナリオに応じて適切なビューを使用できます(たとえば、モバイルブラウザーとデスクトップ、またはhtmlとjson)。また、同じビューを使用して多くの異なるモデルを表示することもできます。

NOT MVCアプリケーションでは、これら3つのシステムは互いに分離されていないか(古いアプリケーションでは一般的)、さまざまな方法で分割されています。

MVCアプリケーションには、他にも多くのコンポーネントを含めることができます。これらのコンポーネントは、モデルの構築、データレイヤーの更新、セキュリティの適用、ロギングなど、アプリケーションで必要なものに使用できます。

1
Bill Michell