locked
Is My Entity Framework Project Architecture satisfy DDD (Domain driven design) ? RRS feed

  • Question

  • Hello Everyone,

    I have a big web application (you can see it is very big), and i want build it using DDD (domain driven design).

    After reading my articles i arrived to the flowing  architecture so please let know if it's true DDD

    Project Architecture:

    1. DAL Layer  (Data Access layer) contain EDMX file and repository(s) file(s).
    2. Service Layer (Class library i did not use WCF but i can use it by hosting the service ... ) contain all methods in one class (ex. Service which implement IService Class).
    3. Domain Layer (Business objects) contain all my objects encapsulating business needs
    4. UI ( Web application)

    Project dependencies

    1. DAL reference nothing from other projects
    2. Service Layer  reference  DAL in order to create repository objects and fetch data from data store and reference  Domain Layer (Business objects). the service layer use DTO to convert the repository result (Entity Object) to Business objects in domain layer
    3. UI reference Service Layer  and Domain Layer .

    My questions :

    1.   Is it (Project Architecture) satisfy DDD (domain driven design)
    2.   Do you have any comments on this design recommendations
    3.   How to convert entity Object to buisness objecr

    Thanks

    Amer AlJamaeen

     


    Tuesday, March 22, 2011 7:44 AM

All replies

  • Hi Almer,

    What to do is create a diagram of your domain model. Like maybe a class diagram or something like that. Take it to a domain expert, someone who knows about the domain the software is in. Expalin the design to them, and see if it makes sense to them. Don't talk about UI layers or data layers. Talk about the domain classes and how they communicate together and if it's accurate the domain expert will understand it.


    "The programmer, like the poet, works only slightly removed from pure thought-stuff. He builds his castles in the air, from air, creating by exertion of the imagination." - Fred Brooks
    Tuesday, March 22, 2011 10:18 AM
  • Just to play devils advocate for a minute.

    This is a large system.

    Isn't adopting a new methodology kind of risky?

    Tuesday, March 22, 2011 11:24 AM
  • Sorry dear , this questions does not work in the real world . What kind of software you are looking for to full fill the business needs. This should be prime importance.  How to achieve the business profit from the software that your team create should be prime importance. 

    Selection of technology should be inlined with business model of your company or what ever. It is as simple as that.

     

    Tuesday, March 22, 2011 12:11 PM
  • Hi  Derek

    I posed here to find the one you talked about.

    Tuesday, March 22, 2011 4:16 PM
  • Hi,

    Domain driven design is a set of principles and patterns like SOA; even though SOA has matured and is in use where as DDD requires some more developments to take place completely.

    Usage of DDD depends on the business goals of the enterprise, the enterprise architecture and the other drivers that make the decisions in choosing the principles and patterns of DDD, SOA or any other good trends happening in software development.

    There are many good resources about the principles and patterns of DDD.

    The below MSDN article 'An Introduction To Domain-Driven Design' may be useful to you:

    http://msdn.microsoft.com/en-us/magazine/dd419654.aspx

    The below book is specific to .Net and should be useful for your requirement.

    http://www.amazon.com/Applying-Domain-Driven-Design-Patterns-Examples/dp/0321268202

    Martin Fowler has excellent articles on the same subject.

    http://martinfowler.com/bliki/tags/domain%20driven%20design.html

     

    WBR,

    prasadpnvrk


    regards, pnvrkprasad
    Saturday, March 26, 2011 5:32 PM
  • many thanks brother
    Wednesday, March 30, 2011 10:37 AM