新しいサイトを開発するために MVC を選択したことで、自分の周りで「ベスト プラクティス」が明らかにリアルタイムで開発されている最中にいることに気づきました。2 週間前、NerdDinner は私のガイドでしたが、MVC 2 の開発により、時代遅れに見えます。それはスリリングな経験であり、インテリジェントなプログラマーと毎日密接に接触できることを光栄に思います。
現在、すべてのブログから直接回答を得られないように思われる問題に出くわしました。コミュニティから洞察を得たいと思います。編集についてです (読み: 編集アクション)。そこにあるチュートリアルやブログなどの資料の大部分は、モデルの作成と表示を扱っています。ですから、この質問は質問を綴っていないかもしれませんが、私が進むべき開発の道についての私の決定に貢献するために、いくつかの議論を進めたいと思っています.
私のモデルは、名前、住所、電子メールなどのいくつかのフィールドを持つユーザーを表します。実際、フィールド上のすべての名前は、ファーストネーム、ラストネーム、ミドルネームのそれぞれです。[詳細] ビューにはこれらのフィールドがすべて表示されますが、一度に変更できるのは、名前などの 1 つのフィールド セットのみです。他のフィールドが上下に表示されている間に、ユーザーがフォームを展開します。したがって、ポストバックされるフォームには、モデルを表すフィールドのサブセットが含まれます。
これは私たちと私たちのレイアウトの懸念事項にとって魅力的ですが、さまざまな理由から、真面目な MVC 開発者は避けなければなりません。私はいくつかのパターンとベスト プラクティスについて読んできましたが、これは viewmodel == view のパラダイムとは関係がないようです。それとも私はそれを間違っていますか?
とにかく、NerdDinner は FormCollection または UpdateModel の使用を指示します。null フィールドはすべて無視されます。それ以来、MVC コミュニティはこのアプローチを放棄しており、MVC 2 のバグは発見されていません。UpdateModel は、フォーム コレクションに完全なモデルがないと機能しません。
最も賞賛されているビュー モデル パターンは、カスタム ビュー モデル エンティティを含む専用ビュー モデルのようであり、私の設計上の問題と互換性を持たせることができる唯一のビュー モデルです。AutoMapperの使用と Jimmy Bogardのアイデアによって軽減されたとはいえ、退屈な量のマッピングが必要になりますが、それは価値がある場合とない場合があります。また、ビューとビュー モデルの 1 対 1 の関係も提案しています。
これらの設計パラダイムに沿って、拡大する一連のフィールドごとにビューと関連するビューを作成します。ビュー モデルはそれぞれほぼ同じで、読み取り専用のフィールドのみが異なり、ビューにも多くの繰り返しマークアップが含まれます。これはばかげているように思えます。将来的には、2 つ以上、またはすべてのフィールド セットを同時に開いて表示できるようにしたいと思うかもしれません。
私は、私が火をつけたいと思っている議論を最も注意深く読みます。よろしくお願いします。