0
Domain Driven Design With Entity Framework 4.0<br />Presented By:<br />Muhammad Moussa<br />Mohamed R. Samy<br />1<br />
Agenda<br />What is Domain Driven Design?<br />Layered architecture in Domain-Driven Design<br />Developer & Domain Expert...
What is Domain Driven Design?<br />3<br />
Agenda<br />What is Domain Driven Design?<br />Layered architecture in Domain-Driven Design<br />Developer & Domain Expert...
Layered architecture in Domain-Driven Design<br />5<br />
Agenda<br />What is Domain Driven Design?<br />Layered architecture in Domain-Driven Design<br />Developer & Domain Expert...
Developer & Domain Expert Show<br />7<br />
Agenda<br />What is Domain Driven Design?<br />Layered architecture in Domain-Driven Design<br />Developer & Domain Expert...
Domain Driven Design building blocks at glance<br />9<br />
Agenda<br />What is Domain Driven Design?<br />Layered architecture in Domain-Driven Design<br />Developer & Domain Expert...
Building Domain Model with EF 4.0 Model First<br />11<br />
Agenda<br />What is Domain Driven Design?<br />Layered architecture in Domain-Driven Design<br />Developer & Domain Expert...
Building Domain Repositories with EF 4.0<br />13<br />
Agenda<br />What is Domain Driven Design?<br />Layered architecture in Domain-Driven Design<br />Developer & Domain Expert...
Building Domain Services<br />15<br />
Agenda<br />What is Domain Driven Design?<br />Layered architecture in Domain-Driven Design<br />Developer & Domain Expert...
Verify domain model with unit tests<br />17<br />
Upcoming SlideShare
Loading in...5
×

Domain Driven Design

1,521

Published on

Published in: Technology, Business
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,521
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
22
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide
  • Reference:http://ajlopez.wordpress.com/2008/09/12/layered-architecture-in-domain-driven-design/Evans writes:For a shipping application to support the simple user act of selecting a cargo’s destination from a list of cities, there must be program code that (1) draws a widget on the screen, (2) queries the database for all the possible cities, (3) interprets the user’s input and validates it, (4) associates the selected city with the cargo, and (5) commits the change to the database. All of this code is part of the same program, but only a little of it is related to the business of shipping.He proposes that the domain model resides in a layer, the Domain Layer. In this way, the domain model is protected from technicalities as concrete persistence implementation, and presentation duties. I like to say that the domain is as an organism, that receives stimula, actions from the outside, and reacts to such commands. The domain should run without detailed knowledge of the rest of the application. Serialization between physical tiers, presentation details and database access, should be clearly separated from the domain implementation.The layers could be described as:UI (User Interface): the easiest to understand, this layer is the responsible of displaying information to the user, and accept new data. It could be implemented for web, desktop, or any presentation technology, present or future. For example, it could be a voice application, that interacts with the user via a phone. The acid test for our design is that a radical change in user interface should have minimal (or controled, at least) impact in the rest of the system.Application Layer: it’s in charge of coordinating the actions to be performed on the domain. There are no business rules or domain knowledge here. No business state resides in this layer. It delegates all domain actions to the domain. It could coordinate many actions (possibly in many domains). It could prepare the infrastructure to be ready to work with the domain for an specific action (for example, preparing transaction scopes).Domain Layer: In this layer resides the heart of software, according to Evans. Business rules and logic lives inside this layer. Business entity state and behavior is defined and used here. Communication with other systems, persistence details, are forwarded to the infrastructure layer. Evans discuss the patterns he uses in this layer, as Entities, Value Objects, Services, Repositories and Factories. We would explore the patterns and implementations in future posts.Infrastructure Layer: God and devil are in the details, and in the infrastructure layer. Its main responsibility is the persistence of the business state, most frequently, using a relational database.
  • Transcript of "Domain Driven Design"

    1. 1. Domain Driven Design With Entity Framework 4.0<br />Presented By:<br />Muhammad Moussa<br />Mohamed R. Samy<br />1<br />
    2. 2. Agenda<br />What is Domain Driven Design?<br />Layered architecture in Domain-Driven Design<br />Developer & Domain Expert Show<br />Domain Driven Design building blocks at glance<br />Building Domain Model with EF 4.0 Model First<br />Building Domain Repositories with EF 4.0<br />Building Domain Services<br />Verifying domain with Unit Tests<br />2<br />
    3. 3. What is Domain Driven Design?<br />3<br />
    4. 4. Agenda<br />What is Domain Driven Design?<br />Layered architecture in Domain-Driven Design<br />Developer & Domain Expert Show<br />Domain Driven Design building blocks at glance<br />Building Domain Model with EF 4.0 Model First<br />Building Domain Repositories with EF 4.0<br />Building Domain Services<br />Verifying domain with Unit Tests<br />4<br />
    5. 5. Layered architecture in Domain-Driven Design<br />5<br />
    6. 6. Agenda<br />What is Domain Driven Design?<br />Layered architecture in Domain-Driven Design<br />Developer & Domain Expert Show<br />Domain Driven Design building blocks at glance<br />Building Domain Model with EF 4.0 Model First<br />Building Domain Repositories with EF 4.0<br />Building Domain Services<br />Verifying domain with Unit Tests<br />6<br />
    7. 7. Developer & Domain Expert Show<br />7<br />
    8. 8. Agenda<br />What is Domain Driven Design?<br />Layered architecture in Domain-Driven Design<br />Developer & Domain Expert Show<br />Domain Driven Design building blocks at glance<br />Building Domain Model with EF 4.0 Model First<br />Building Domain Repositories with EF 4.0<br />Building Domain Services<br />Verifying domain with Unit Tests<br />8<br />
    9. 9. Domain Driven Design building blocks at glance<br />9<br />
    10. 10. Agenda<br />What is Domain Driven Design?<br />Layered architecture in Domain-Driven Design<br />Developer & Domain Expert Show<br />Domain Driven Design building blocks at glance<br />Building Domain Model with EF 4.0 Model First<br />Building Domain Repositories with EF 4.0<br />Building Domain Services<br />Verifying domain with Unit Tests<br />10<br />
    11. 11. Building Domain Model with EF 4.0 Model First<br />11<br />
    12. 12. Agenda<br />What is Domain Driven Design?<br />Layered architecture in Domain-Driven Design<br />Developer & Domain Expert Show<br />Domain Driven Design building blocks at glance<br />Building Domain Model with EF 4.0 Model First<br />Building Domain Repositories with EF 4.0<br />Building Domain Services<br />Verifying domain with Unit Tests<br />12<br />
    13. 13. Building Domain Repositories with EF 4.0<br />13<br />
    14. 14. Agenda<br />What is Domain Driven Design?<br />Layered architecture in Domain-Driven Design<br />Developer & Domain Expert Show<br />Domain Driven Design building blocks at glance<br />Building Domain Model with EF 4.0 Model First<br />Building Domain Repositories with EF 4.0<br />Building Domain Services<br />Verifying domain with Unit Tests<br />14<br />
    15. 15. Building Domain Services<br />15<br />
    16. 16. Agenda<br />What is Domain Driven Design?<br />Layered architecture in Domain-Driven Design<br />Developer & Domain Expert Show<br />Domain Driven Design building blocks at glance<br />Building Domain Model with EF 4.0 Model First<br />Building Domain Repositories with EF 4.0<br />Building Domain Services<br />Verifying domain with Unit Tests<br />16<br />
    17. 17. Verify domain model with unit tests<br />17<br />
    1. A particular slide catching your eye?

      Clipping is a handy way to collect important slides you want to go back to later.

    ×