私はVSでアプリケーションの構造を設定しようとしていますが、合理的なレベルに「試して」将来的に証明したいと思います。このアプリケーションは、慣例に従わなかった古いWinformアプリをWPFで書き直したものです。レイヤー、ティア、頭字語などはありません...
これはかなり大規模なエンタープライズアプリケーションです。私のDBがそうであるように、Linq To SQLを使用する予定であり、ほとんどの場合、常にMS SQLになります。また、既存のスキルセットがあります。
できる限りMVVMとDDDをフォローしたいのですが、これらを組み合わせるとアプリケーションの構造が混乱します。いくつかの例を使って説明してみましょう。
MVVMに従うと、フォルダー構造は次のようになります。
Views
Models
ViewModels
Helpers
しかし、私のプロジェクト構造がこれに似ているかもしれない単純化されたDDD階層化アプローチにどのように適合しますか:
MyApp.UI
MyApp.Domain
MyApp.Data
Models
ドメインレイヤーに配置するのPerson
ですか、それともsayの3つのバージョンがありますか?これは、リポジトリとDBオブジェクトのドメインオブジェクトへのマッピングをどこに配置するかという別の質問につながりますか?私はデータを仮定します...
Views
私はUIに行くだろうが、ViewModels
まただろうか?
最後に、ビジネスロジックをどこに埋め込むか。
CodePlex、DDD Exampleで以下を見つけましたが、いくらか助けになりましたが、Webアプリのように思えますが、それは問題ではなく、私の無知が輝いています。
誤解しないでください。フォルダをいくつでも持つことができ、好きな名前を付けることができます。私は、これらの場所が必ずしも呼ばれているものではなく、これがスケーラブルになるように、物を置く場所を見つけようとしています。
私の質問の核心はこのように示されるかもしれません。によって生成されたオブジェクト
がありtblPerson
ます*.dbml
。これは明らかであり、「データ」レイヤーに属します。
これで、Model、DTO、Domain Model、またはと呼ばれる別のLayer(project?)で呼び出されるものがありPerson
ます。私はどこに置くべきかわからないことのMapper
ためPerson
に必要になるでしょうtblPerson
。
次に、ViewModelをEditPerson
取得しPerson
ます。たとえば、それから取得する独自のプロパティがありますが、それ以上の場合もあります。
最後に、そのViewModelにバインドされたビューがあります。
その段落が私の仮定と推測で満たされていることを明確にするために、誰かが私のために空気をきれいにするのを手伝うか、そこから洞察を提供してくれることを望んでいます。