DDDC#投稿日:2019-12-30最終更新:2019-12-31筆者のブログで記事をみるドメイン駆動開発を勉強中です。入門書や、入門者向け解説サイトをいくつか読んでみたレベルですが、簡単なアプリケーション(C#)を作って自分なりのメモを残していきたいと思います。※誤った認識が含まれている可能性があるため、書籍やWebサイトのほうを参考にしてください。プログラムはGithubに載せています。lab作るアプリケーション(C#)について簡単なデータの表示・登録の仕組みのある最低限のGUIアプリとしています。ベースのプロジェクト構成は、参考書籍1を参考にしてプラスαしています。更新系と参照系で異なるORMを併用して上手くいった話」Domain他のレイヤー(プロジェクト)に依存しないようにするEntity、ValueObject、IRepositoryを配置するRepositoryのインターフェースのみ配置して、実装はInfrastructureに配置する(依存関係逆転)Domain内ではこのインターフェースに対して処理を行うので、Infrastructure等、他のプロジェクトに依存しないシステム内で扱うExceptionクラスや、Helperメソッド群のクラスも配置するApplicationServiceドメインモデルを直接扱う要素としてアプリケーションサービスを利用するアプリケーションサービスはドメイン領域で何ができるか?を表現するUIUIを含むプロジェクト今回はWindowsFormで作成(他のレイヤーは分割しているため、UI部分をWebアプリケーションやWPFに差し替えることができる)MVVMの双方向バインディングを用いるINotifyPropertyChangedを実装したViewModelを使用UIからアプリケーションサービスを呼び出して目的の機能を実現するInfrastructureDomainのIRepositoryに対する実装を配置するデータベースなど、永続化を行う層データベースに接続せずにテストをできるようにするため、Fakeクラスを利用(IRepositoryの実装)Testsテストプロジェクト(MSTest)ChainingAssertion、Moqというライブラリを使用する最低限テストする層としてApplicationServiceの処理をテストするその他メモもっと複雑になってくると、この処理はどこに書いた方がいいか?といった疑問が沸いてくると思います。実践しながら経験を積まないと分からない部分も多いかと感じています。実際のシステム開発であれば下記のようにモデリングとコード化を繰り返す感じになると思います。Qrunch.netサーバー提供フィードバックを送信する。