0

I have recently add a question regarding DDD architecture. To answer that @guillaume31 mentioned

The Domain layer is at the core of your system, as a general rule it shouldn't depend on other modules

Recently, i have been looking at the Microsoft Project SilK (Milage Stats). And MileageStats.Domain is depending on MileageStats.Data (repo) and MileageStats.Model. @user996985 mentioned in another post

Check out Project Silk. Not only does it demonstrate DDD but other cutting edge patterns

So, what am I missing here? Is Project Silk a good project to learn DDD? If not, is there any other open source project available in vs.net?

Community
  • 1
  • 1
MJK
  • 3,434
  • 3
  • 32
  • 55
  • Any code sample is useless if you don't know/understand the Domain. DDD is really about modelling concepts and behaviour, not about implementing things in a certain way. Take any Domain you want (you can use the common ecommerce site scenario) and try to model things as close as possible to business concepts. You'll notice how things will pop out by themselves,but you REALLY need to be modelling, not just using data structures.You can read this [post](http://www.sapiensworks.com/blog/post/2014/04/29/-Modelling-DDD-Behaviour-And-Use-Cases-By-Example.aspx) as a modelling example. – MikeSW May 03 '14 at 15:21
  • i fully agree with you. I have started a project and trying to use the DDD concept. I hope day by day it will be clear to me. Right now, I am very much confused. But do you have any idea about the MS Project Silk? Do they really follow DDD? or they changed a bit based on their requirements? – MJK May 04 '14 at 20:16
  • I don't know about Silk, I do know it took me several years to understand that DDD is about modeling and if the model is wrong, everything else doesn't matter. And only if you're a domain expert you'd have a chance to know if Silk is good. With DDD it's the same as with OOP, using some terms and naming your classes in a certain way doesn't mean you're doing the correct thing. – MikeSW May 04 '14 at 20:26
  • Thanks for your prompt reply. "The Domain layer shouldn't depend on other modules" is it always right or there can be exceptions? Can domain use repository to get some constant values from db? or it should handled some other way? Sorry too many questions.. I appreciate your cooperation. – MJK May 04 '14 at 21:15
  • You have to understand things, me or anyone else telling you "this ALWAYS happens" isn't very useful. Yes, the Domain shouldn't depend on other layers, but why? DDD is not a recipe, don't try to learn it. A lot of experience comes from just trying to model things properly respecting good design principles (SOLID among others). And you need to be very comfortable with proper OOP and to already developed non trivial projects with OOP. A lot of things make sense, ONLY after you had a problem and tried to solve it. Now you have a solution and no problem in sight. – MikeSW May 04 '14 at 21:41

1 Answers1

0

The sample Bounded Contexts for C#.NET from the book "Implementing Domain-Driven Design" by Vaughn Vernon are on Github.

JefClaes
  • 3,275
  • 21
  • 23
  • thanks @JefClaes for the link. But i guess, this is not a completed one. I could not load DesignToolHook. Am i missing anything? Basically, this is the first time i download anything from github. – MJK May 03 '14 at 10:07