2

私はasp.net MVCEFを初めて使用するので、質問が明確でないか簡単でない場合はすみません。

私は EF Code-First アプローチに関するいくつかのチュートリアルを読みましたが、今はこのチュートリアルGetting Started with EF using MVC を試しています。

Code-First アプローチを使用して、POCO クラスを使用して、DB モデル、DB ロジック、DB 検証、UI 検証、およびいくつかの UI ロジックを定義しています。したがって、これらのクラス (またはオブジェクト) をプレゼンテーション レイヤーで使用したり、Web サービス (ま​​たは JavaScript コード) を処理するときに JSON オブジェクトとして使用したりできます。

私の質問: それはいくつかのロジックを混ぜ合わせていませんか? つまり、プレゼンテーション用に特別なビューモデル クラスを使用するべきではないということです。これらのクラスには UI ロジックと検証が必要です。

POCO オブジェクトをビュー (または一般的にクライアント) に送信することをお勧めしますか?

最後に、プロジェクトのレイヤーまたはフォルダーを整理する方法についてのガイダンスが必要ですか? 私は多くの方法を見て、何を選択するか、どの形式に基づいて自分自身を作成するかについて混乱しています?!!

4

5 に答える 5

2

アプリケーションの上位レイヤーでデータ エンティティを使用しないでください。Automapper などのライブラリを使用して、DAL からビュー モデルまたはビジネス クラスにデータを変換/構成/コピーします。これにより、アプリケーションのレイヤーが独立した状態に保たれ、データベース スキーマがエンド ユーザーから隠されます。

MVC はプレゼンテーションのみに関係することに注意してください。実際の作業はすべて、アプリの他のレイヤーで行う必要があります。レイヤーを独立させ、少しのグルー コードを使用してアプリにバンドルするようにしています。MVC プロジェクトで作業しているときにデータ アクセスとビジネス ロジック レイヤーを作成することがありますが、コマンド ライン ユーティリティで再利用します。質の高いコードを書くことについて語っている本はたくさんあります。個人的には、 Clean CodeCode Complete 2、およびDesign Patternsが非常に役に立ちました。

于 2013-08-10T15:13:22.813 に答える
0

私が通常使用するのは、LeffeBrune が言ったように、データ アクセスで使用する POCO レイヤーと、ビューで使用するビュー モデル レイヤーです。すべてのレイヤーは POCO を使用し、コントローラーは各ビューが必要とするビュー モデルを構築する責任があります。この作業をより自動化するために、automapper を使用します。したがって、私のソリューション構造は通常次のようになります。

  • モデル(ポコ)
  • データアクセス (NHibertante)
  • サービス(ビジネス層)
  • ウェブ(UI)
    • ビューモデル
于 2013-08-11T22:04:36.677 に答える