重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

ASP.NET MVCでのモデルについて、皆様はどのように作成しておられますか?

ASP.NET MVCで何本かWebシステムを構築して、いまだに試行錯誤です。
サンプル例を見ても、実際とはかけ離れた簡単な内容で、あまり参考になりません。
自分が見たいくつかのサイトではこのように書いてありました。

ドメインモデル
データベースと1:1で存在する入出力用のモデル。EntityFrameworkで定義する。
拡張ドメインモデル
ドメインモデルにプロパティを追加したり、複数のモデルを使いやすくまとめたモデル。
ビューモデル
画面表示するためのモデル。
フォームモデル
フォーム入力値を受信するためのモデル。

理屈はわかるのですが、このように4種類もモデルを定義するものなのでしょうか?
モデル間のデータのやりとりも大変ですし、定義だけで作業量が半端ない感じです。
継承などをうまく使って省力化する方法とかありますか?

皆さまの方法論をお聞きしたくお願い申し上げます。
ASP.NET MVCに限らず、CakePHPなどの例でも歓迎です。

A 回答 (1件)

参考にした、というのはASP.NET MVCに特化したサイトでしょうか?


微妙に違うような気がするんですが。

ASP.NET MVCの場合、記述されているフォームモデルとビューモデルは合わせて一つに
しておいたほうがいろいろと用意されている仕組みが使いやすいです。
主にバリデーションがらみの仕組みとかですが。
で、このフォーム/ビューモデル(?)と実際のDBとデータのやり取りをするモデルの
間にはなにか詰め替えする仕組みがはいっているほうがつかいやすいと思ってます。

#サンプルとかだと、EFのモデルそのものをフォーム/ビューでも使っていることが
 多いですが、実業務だともう一工夫必要かな、と思います。

ドメインモデルをEFで定義する、と考えるとまた間違えそーな気が。
一般的にドメインモデルと呼ぶものがどういうものかはきちんと調べたほうがよいと
思います。
このあたり、記述している人によって微妙に意味が異なることがあり、それを
大雑把に同じものとして理解しようとすると混乱するもとになると思います。

まぁ、自分でもまだ試行錯誤している状況なので、他のかたの話も聞いてみたいところではあります。
    • good
    • 0
この回答へのお礼

onoos様、いつもありがとうございます。
色々な方のご意見を聞こうと思い、開けた状態にしておきましたが、なかなか回答がないようなので、onos様の回答をBAとさせていただきます。
自分の「ドメインモデル」の理解に難があったようですが、人により用語の使い方に癖がある、というのが正直なところのようですね。
onos様のご意見を参考に取組んでみて、また改めて質問させていただきます。

お礼日時:2012/11/14 22:48

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!