私は最初のDDDアプリケーションを開発しており、ここ数ヶ月で勉強したいくつかの基本的なルールに従っています。ASP.NET MVCでのDDD、ビューモデル、および検証
Nhibernateでリポジトリパターンを実装しました。
私はエンティティをコントローラからビューに "移動"させることができたと思っていましたが、すぐに私はそれがほとんど不可能であることを認識しました。
ほとんどの人は、各ビューに固有のビューモデルを定義する方が好きです。
私は、自分のエンティティについて既に作成したフィールドを再定義するという考えは特に気にしませんが、これが唯一の方法だと思われます。
今、いくつかの検証ルールを付けたいという状況に直面しています。
エンティティに検証ルール(DataAnnotations付き)を添付できたと思っていますが、ビューモデルを使用している場合は機能しません。
ここでの質問は以下のとおりです。
- は、検証は、ドメインモデルの一部ではないでしょうか?
- モデルを作成してから、ビューモデルの同じフィールド(プロパティ)を再マップするのに時間がかかりませんか?
- 少なくとも妥当性検査のルールがない場合、これは貧困モデルではありませんか? DDDが中小規模のアプリケーションに本当に適しているかどうか疑問に思っています。
ご協力いただきありがとうございます。
私たちは今何千人もいると思います。 – jfar
この種類のサーバー側の検証について説明しているtopic/bookへのリンクを教えてください。私が見たのは、DataAnotationを使った検証です。オブジェクトを保存するときには、検証とオブジェクトの永続化を担当する新しいサービスレイヤーを使用するか、サーバー側の検証のみを行うレイヤーを使用しますか?ありがとうございました! –
@šljaker、これは使用している検証フレームワークによって異なります。個人的に私はデータアノテーションの大ファンではありません。私は[FluentValidation.Net](http://fluentvalidation.codeplex.com/)を使用します。 usernameのようなビジネスルールが既にデータベースに存在する場合、奇跡は期待しないでください。データベースを照会し、結果を確認してください。 –