2016-07-03 6 views
0

私は記事と質問の間でジャンプしていますが、私が望む情報を見つけることができないようです。
*モデル::私はMVCについての学習を始めたときN層アーキテクチャのMVC

、チュートリアルや記事がそれを指摘し、データ・アクセスおよび取り扱い要求/応答が起こる場所である:あなたのビジネスロジックが
*コントローラーを行くところです。

私はしばらくの間MVCで作業していました。古い単純なプロジェクトをMVCに移行したいと思っていました。私はビジネスとデータのアクセス層を持っているプロジェクトでは。 N-Tier MVCアーキテクチャについて読んだ後、私の理解が変わった。

私は通常ビジネスドメインであると考えられていたモデルは、ビューに応じてより多くのプレゼンテーションに変更されました。そのモデルはビジネスエンティティを反映していますが、その上に別のレイヤーとして機能します。

だからここに私の質問は以下の通りです:私は、MVCプロジェクトを持っていると私は別の二つのプロジェクト、ビジネスおよびデータ・アクセスを持っていると仮定します。このような関係は正しいのでしょうか?

*モデルは、ほとんどが対応するビジネスエンティティと同じプロパティを持ちます。
*コントローラはDataAccess-Layerを呼び出してデータを取得します。データはビジネスオブジェクトとして返され、モデルにマップされてビューに戻ります。

+0

ソフトウェアアーキテクチャーに関する質問がプログラマーズ・スタックエクスチェンジに属しているため、この質問を議論の対象外とすることにしました。com – Rob

+0

@Rob他のサイトを参照しているときは、[クロスポストが嫌になっている](http://meta.stackexchange.com/tags/cross-posting/info) – gnat

+0

@gnatを指摘すると役に立つことがよくあります。モッドによって動かされますが、彼が投稿を横切った場合、これは削除されます。 – Rob

答えて

0
  1. モデルは、常にビジネスエンティティに対応していません。 MVCのモデルは、表示するエンティティを反映するために使用されていたためです。だから彼らはドメインのビジネスエンティティよりもほんのわずかしかないかもしれません。ドメインモデルがmvcモデルにマップされることは間違いありません。
  2. 2番目のステートメント私は100%同意します。
+0

私はあなたのモデルに関してあなたの言うことを理解していますが、同じエンティティを表す2つのクラスを持つことは重複とはみなされません。私たちはビジネスレイヤーとしてMVCのモデルパーツを作成し、コントローラーとそれをやりとりさせることができませんでした。 – ykh

+0

いいえ)dbのエンティティがmvcモデルと大きく異なることがあるためです。たとえば、あなたのビューでPersonから2つだけpropを必要とします。あなたのデータベースには、10の小道具を持った人がいます。また、マッパーやextメソッドを使用してエンティティを別のエンティティにマップする可能性が最も高い – Alexandr

0

このような関係は正しいですか?

私の答えは、それはあなたのプロジェクトの規模やチームサイズに依存している、しかし、私はあなたに私のプロジェクトのアーキテクチャを説明しましょう。

  • MVC:プレゼンテーション層、それはアプリケーションのスタートアッププロジェクトです。
  • 共通:これは、このような...このプロジェクトは、他のすべてのプロジェクトに参照されているヘルパー、基底クラス、などのコアクラスのセットを含むクラスライブラリです。
  • リポジトリ:からの読み込みやデータベースへの書き込みのために、私はプロジェクトを作成し、それがレポジトリ名付けています。実際には、私はリポジトリパターンで作業単位を実装しています。これらのパターンを実装することで、アプリケーションをデータストアの変更から保護することができます。
  • テスト:プレゼンテーションレイヤのテストプロジェクトですか?

が、これはあなたを助けることを願っています。

関連する問題