4

私はMVCを初めて使用しますが、非常に役立つ情報がたくさんありますが(実際にはたくさんのことを意味します)、MVC2.0で正確な要件を達成する方法を明確に理解することは非常に困難です。

次のようにソリューションを設定したいと思います。

  • MVC2.0プロジェクトを使用してWebUIを提供します。
  • データの永続性のためにLinqtoSQLクラスプロジェクトを使用します。
  • 上記のLinqtoSQLモデルにアクセスする必要がある2つの別個のコードモジュールがあるため、MVCプロジェクト自体にLinqtoSQLモデルを直接含めることはできません。
  • また、LinqtoSQLプロジェクトの前にビジネスロジックレイヤーがあります。

私の質問は次のとおりです。

  • BLLを介してLinqtoSQLプロジェクトを指すようにMVCアプリケーションのモデル部分を設定するにはどうすればよいですか?
  • Webアプリの検証を実行するにはどうすればよいですか?MVC 2.0モデル検証を使用できますか?そうでない場合、代替手段は何ですか?
  • 最後に(そして少し脇に)-ViewModelとは何ですか?これはモデルとどのように異なりますか?

非常に多くの質問。しかし、これはエキサイティングな新しいテクノロジーとデータアクセスの問題は別として、私が非常に迅速に把握しなければならない他のすべてのものであり、MVC2.0は素晴らしいと思います。

あなたが提供できるどんなポインタにも感謝します。

4

2 に答える 2

4

BLLを介してLinqtoSQLプロジェクトを指すようにMVCアプリケーションのモデル部分を設定するにはどうすればよいですか?

通常、これにはリポジトリパターンを使用します。コントローラにはリポジトリへの参照があります。リポジトリはデータベースからドメインオブジェクトを返します。MVCアプリには、LINQtoSQLが存在するという知識がありません。

Webアプリの検証を実行するにはどうすればよいですか?MVC 2.0モデル検証を使用できますか?そうでない場合、代替手段は何ですか?

ビューモデルをMVCプロジェクトに配置します。これらのビューモデルはドメインモデルと密接に連携している可能性がありますが、それらの関心事はプレゼンテーションモデルです。これらのビューモデルで検証するためにデータ注釈を配置します-MVCフレームワークは、データ注釈で装飾されたこれらのビューモデルで検証が行われることを自動的に保証します。プラグ可能であるため、代替手段を使用できますが、MVC 2では、かなりうまく組み込まれており、これにはクライアント側の検証が含まれます。

最後に(そして少し脇に)-ViewModelとは何ですか?これはモデルとどのように異なりますか?

私は上記のこれに部分的に答えました。ドメインモデルの形状は、ビューを表示するために必要な形状ではない場合があります。ビューモデルは、このギャップを埋めるのに最適です。さらに、形状が完全に一致している場合でも、ビューモデルは、UI検証コードと他のプレゼンテーションメタデータをそこに配置できるようにするための良いアイデアです(ドメインモデルのプレゼンテーションロジックに関連するものは必要ないため) 。

ビューモデルパターンのリンクは次のとおりです。

お役に立てれば。

于 2010-09-03T03:38:08.920 に答える
1
  1. BLLアセンブリから公開されたオブジェクトへの参照を追加し、それらをモデルとして使用できます。

  2. 生成されたクラスに検証を追加する場合は、バディクラスを使用します。

  3. ViewModelは、モデルデータのカスタム形状の集合体です。ViewModelの目的は、特定のビューに必要なデータを便利で簡潔な方法で正確に表示することであるため、ビューごとに1つだけ存在します。

例として、OrderとOrderDetailの両方の情報を含むビューがあります。ViewModelは、各タイプのリポジトリおよびビジネスオブジェクトへの内部参照を保持できます。ViewModelのプロパティは、これらのオブジェクトからのデータをマージします。

ViewModelsは、モデルを別のアセンブリに配置する必要がある場合にも役立ちます。検証のために、DataAnnotationsをViewModelプロパティに適用できます。「生の」ビジネスオブジェクトモデルをViewModelsの内部プロパティにし、データを取得して永続化するためのパブリックメソッドを公開します。

于 2010-09-03T03:39:29.090 に答える