2009-06-02 20 views

答えて

2

EmployeesViewData。

これは私が使用しているもので、サンプルアプリケーションでも見てきたものです。

追加した例について: Imhoクラスの名前には、そのデータの種類を指定する必要があります。 ".... IndexViewData"は無意味です。そのページには正確に何が表示されますか?それを1つまたは2つの単語で要約し、その後ろに 'ViewData'を追加してください。

それ以外の場合は、コントローラの名前を使用して「インデックス」を削除してください。 HomeViewDataは私にとってうまく聞こえます。

0

私はアイデアは「ViewModelには、」我々は、プレゼンテーションの懸念を扱っているという事実を強調し、任意のドメインモデルオブジェクトからのviewmodelsを曖昧性を除去することをあるなどHomeViewModel、または以前の従業員の例を使用して、CreateEmployeeViewModel、EditEmployeeViewModelを、好みますあなたが持っているかもしれない。

1

プレゼンテーションのモデル名は、提示するプレゼンテーションの種類にとらわれないようにしています。私は最初にASP.NETビューのモデルオブジェクトを使用するかもしれませんが、後でWCFまたはWinFormsアプリケーションで使用することもあります。

ProductsWithPageInfo 
ProductWithAttributesAndTags 
ClientAndBillingDetail 
UserAccountWithAssociatedGroups 

:私は、「ViewDataを」、「ViewModelに」、「モデル」でそれらをmuddyingせず、彼らは論理的に、彼らは、含まれているかを説明するように、私のモデルに名前を付けるなど

例を試してみてください

+0

ProductWithAttributesAndTagsも必要なProductsWithPageInfoのページが複数あるページがある場合はどうしますか? – Alex

+0

まあ、これらの型はすでに他の型の集約です。たとえば、ProductsWithPageInfoにはIList 、int PageNumber、int PageCountがあります。各プレゼンテーション「モデル」オブジェクトには、特定のビューをレンダリングするために必要なものがすべて含まれています。時には、モデルにたくさんのものがある場合は、Etcを最後に追加します:ProductAttributesPurchaseHistoryEtc、ここでEtcはページ名やカウントなどの細かい部分を意味します。クラス。あなたの例の場合:ProductsWithAttributesAndTagsEtc – jrista

0

私はWroxの本の第1章を読む直前に私が使い始めた名前の一部としてEnvelopeを使用しており、より一般的に受け入れられている用語がViewModelであることを発見しました。

しかし、私が作成するこれらのViewEnvelopesは、Viewに渡したいと思う2つ以上の(通常は無関係な)強く型付けされたモデルを持っている場合にのみ、非常に簡単なカプセル化用です。彼らはではなく、には他の機能が含まれています。エンベロープはこの意味での配信メカニズムとしてのみ意図されていますが、ViewModelという用語は私の使い方が分かりにくく、その本来の目的は何か

たとえば、Customerオブジェクトと関連しないNewsTickerオブジェクト(Customer Updateビューなど)を配信するためだけに存在するCustomerUpdateEnvelopeクラスを作成することがあります。

21

私はそれが明確で曖昧さのないだから、次のパターンを使用します。

  • モデル:Fooの
  • ビュー:FooView
  • のViewModel:FooViewModel
0

むしろ後半に、この特定のスレッドのために、しかし、私はViewModel naming conventionsに関する少し詳細な提案をブログの投稿に書いていますが、これは他の人にとって役に立つかもしれません。

関連する問題