DDD の背後にある概念を理解しようとしていますが、本を読んだだけでは理解するのが難しく、トピックについてかなり抽象的な方法で議論される傾向があります。コード、できれば C# での DDD の優れた実装をいくつか見てみたいと思います。
オープンソースの世界で DDD を実践しているプロジェクトの良い例はありますか?
DDD の背後にある概念を理解しようとしていますが、本を読んだだけでは理解するのが難しく、トピックについてかなり抽象的な方法で議論される傾向があります。コード、できれば C# での DDD の優れた実装をいくつか見てみたいと思います。
オープンソースの世界で DDD を実践しているプロジェクトの良い例はありますか?
Eric Evans とスウェーデンのコンサルティング会社は、Eric が本全体で使用する配送の例に基づいたサンプル アプリケーションをリリースしました。これは Java で書かれていますが、概念はプロジェクト ページで詳しく説明されています。
http://dddsample.sourceforge.net/
ただし、DDD は目的地よりも旅に関するものであることに注意してください。ご覧になっているサンプル コードは、現在表示されているものになる前にさまざまな形式をとっていたことを理解してください。最初に使用された厄介なモデルが表示されず、途中で得られた洞察に基づいてモデルをリファクタリングするために実行された手順がありません。DDD ではビルディング ブロックが重要ですが、Eric はそれらが強調されすぎていると考えています。
完成度はわかりませんが、Google Code でNDDD サンプルを見つけました。
Ayende の DDD サンプルであるMactoについて誰も言及していないことに驚いています。Macto で最も重要なことは、実際のコーディングの前に穴を考えるプロセスが一連の投稿で提示されていることです。DDD はモデルを実装することではなく、ビジネス ドメインをモデル化することです。「いくつかの概念は集約ルート/エンティティ/値オブジェクトである」などの決定は、AR をどのように永続化するかよりもはるかに重要です。
また、SOA と CQRS に関する Udi Dahan のビデオをお勧めします。これは、DDD を適用するためのより良いコンテキストを提供する可能性があります。
これはオープン ソース プロジェクトではありませんが、コードの例です: http://www.codeplex.com/dddpds
この例は、書籍.NET Domain-Driven Design with C#: Problem-Design-Solutionで使用されています。
有望に見えるが死んでいるかもしれない作り話の例: http://www.codeplex.com/domaindrivendesign
残念ながらhttp://www.codeplex.com/domaindrivendesignは本当に死んでしまいましたが、貢献に興味のある方は遠慮なく私に連絡してください。
全体として、DDD の例に頼りすぎることはお勧めしません。せいぜい、例がドメイン モデリングの結果やパターンを実装するための 1 つのアプローチを示すことができる程度です。したがって、この本を読んでから、フォーラムで質問することをお勧めします。
http://kigg.codeplex.com/は私にとって良い例です。
http://sellandbuy.codeplex.com/
別のプロジェクト DDD
Jimmi Nilsson の本 (およびその件に関するブログ) をよく読んでください。 ドメイン駆動設計の適用
これは、Evans と Fowlers の本 (ドメイン駆動設計 - Evans) と (エンタープライズ アプリケーション アーキテクチャのパターン- Fowler)を組み合わせたものです。
C# ではないことはわかっていますが、これはドメイン駆動型アプローチに従う Java メタフレームワークです。詳しくはわかりませんが、近いうちに調べてみたいと思います: Roma Framework
Code Camp Server、本ASP.NET MVC inActionのJeffreyPalermoのサンプルコードはオープンソースであり、DDDを使用しています。
( Good Domain Driven Designサンプルの私の答えと同じ)
私自身は使用したことがありませんが、DDD ウィキペディアのページに記載されているツールがいくつかあります。ただし、それらのほとんどは Java で実装されているようです。
http://en.wikipedia.org/wiki/Domain-driven_design#Software_tools_to_support_domain-driven_design
わかりました、これを見つけましたが、C# ではなく Java です:
http://timeandmoney.domainlanguage.com/