MVCについての多くの説明を見つけるのは簡単です。たとえば、 ここ 、 ここ 、または このビデオ などです。
私は興味があります、MVCとは何ですか?
より正確には-MVCを使用するアプリで、MVC以外のすべては何ですか?
。
私はMVCを次の形で説明し始める傾向があると思います
アプリケーションを3つの部分に分けます[...]
これは、モデル、ビュー、またはコントローラーのいずれかの下で、できる限り(またはすべて)の設計に適合するようにすべきであることを示唆しているようです。
。
それでも、ほとんどの説明では、MVCは主にuser interface設計として記述されていることがわかります。この状況で非UI要素をどのように処理しますか?
。
例えば:
ローカルネットワークの監視とデータベースへの情報の保存のみに使用されるアプリケーションの部分をどのように処理すればよいのでしょうか。 UIに関連する機能はなく、その唯一の目的は、ファイルに関連する情報をデータベースに入力することです。この情報は、Webインターフェースを介してユーザーに表示されます。
ローカルネットワークの監視とデータベースへの情報の保存のみに使用されるアプリケーションの部分をどのように処理すればよいのでしょうか。
いくつかのアーキテクチャはこのようなコードを異なる方法で実装しますが、階層化されたアーキテクチャでは、レイヤーを作成する必要があります。 DataAccessレイヤー、ビジネスロジックレイヤー。等..
モデル( モデルにはさまざまなタイプがあります )は、必要に応じてこれらのレイヤーと相互作用します。すべては、実際にアプリケーションまたはソフトウェアアーキテクチャに依存します。
非UI要素の定義を曲げて、それらがモデルとコントローラーのどちらにも適合できるかどうかを調べようとしますか?
あなたの「非UI要素」は、実際にはモデルに入る必要のあるビジネスロジックであり、異なるレイヤーと対話することができます。 DBレイヤーなど.
その他の推奨事項
ここでは、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アプリ
MVCアプリケーションは、3つの特定の懸念事項に対処する(通常はユーザーインターフェイスを介して)プレゼンテーションのコンポーネントを分離するという意識的なアーキテクチャ上の決定があるアプリケーションです。
理論的には、実際には多くの場合、同じモデルを複数のビューに接続できます。シナリオに応じて適切なビューを使用できます(たとえば、モバイルブラウザーとデスクトップ、またはhtmlとjson)。また、同じビューを使用して多くの異なるモデルを表示することもできます。
NOT MVCアプリケーションでは、これら3つのシステムは互いに分離されていないか(古いアプリケーションでは一般的)、さまざまな方法で分割されています。
MVCアプリケーションには、他にも多くのコンポーネントを含めることができます。これらのコンポーネントは、モデルの構築、データレイヤーの更新、セキュリティの適用、ロギングなど、アプリケーションで必要なものに使用できます。