LayeredExpressionTrees: una terza via (idiomatica) verso il DDD<br />Andrea Saltarello<br />SolutionArchitect @ ManagedDes...
Agenda<br />DDD recap<br />LayeredExpressionTrees (LET idiom)<br />
Architettura di DDD<br />
Architettura di DDD<br />è una layeredarchitecture<br />i layerPresentation e Infrastructure compaiono «per sport» nel dia...
Application Layer: in teoria<br />Application Layer: defines the jobs the software is supposed to do and directs the expre...
Application Layer: in pratica<br />E’ un catalogo di servizi in grado di effettuareil mesh dellalogicapresentenel domain l...
Real world DDD<br />Avere a disposizione un domain layer «smart» è bello, ma costoso:<br />Materializzazione degli oggetti...
LayeredExpressionTrees (LET idiom)<br />Facciamo un gioco: invece di definire un «botto» di DTO, facciamo che layer e serv...
Demo<br />LayeredExpressionTrees<br />
Books & Publications<br />[DDD] Domain Driven Design, Eric Evans , Addison-Wesley<br />[P of EAA] Pattern of Enterprise Ap...
Upcoming SlideShare
Loading in …5
×

Layered Expression Trees: una terza via (idiomatica) verso il DDD

1,265 views

Published on

Abbiamo il nostro splendido Domain Model, e possiamo passare la vita a definire DTO per usarlo in modo “sostenibile”. Oppure possiamo metterlo (un po’) in disparte ed adottare CQRS, ammesso che non ci venga mai da dire: “che spreco”. Oppure possiamo optare per una terza via idiomatica: Layered Expression Trees. Parliamone.

Published in: Technology, Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,265
On SlideShare
0
From Embeds
0
Number of Embeds
15
Actions
Shares
0
Downloads
14
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • Abbiamo il nostro splendido Domain Model, e possiamo passare la vita a definire DTO per usarlo in modo “sostenibile”. Oppure possiamo metterlo (un po’) in disparte ed adottare CQRS, ammesso che non ci venga mai da dire: “che spreco”. Oppure possiamo optare per una terza via idiomatica: LayeredExpressionTrees. Parliamone.
  • Layered Expression Trees: una terza via (idiomatica) verso il DDD

    1. 1. LayeredExpressionTrees: una terza via (idiomatica) verso il DDD<br />Andrea Saltarello<br />SolutionArchitect @ ManagedDesigns<br />andreas@manageddesigns.it<br />http://twitter.com/andysal74<br />http://blogs.ugidotnet.org/pape<br />http://creativecommons.org/licenses/by-nc-nd/2.5/<br />
    2. 2. Agenda<br />DDD recap<br />LayeredExpressionTrees (LET idiom)<br />
    3. 3. Architettura di DDD<br />
    4. 4. Architettura di DDD<br />è una layeredarchitecture<br />i layerPresentation e Infrastructure compaiono «per sport» nel diagramma<br />ilayerApplication e Domain costituiscono quella che tipicamente chiamiamo «business logic»<br />Domain: logica invariante per i casi d’uso<br />Application: logica specifica ai casi d’uso<br />
    5. 5. Application Layer: in teoria<br />Application Layer: defines the jobs the software is supposed to do and directs the expressive domain objects to work out problems. The tasks this layer is responsible for are meaningful to the business or necessary for interaction with the application layers of other systems. This layer is kept thin. It does not contain business rules or knowledge, but only coordinates tasks and delegates work to collaborations of domain objects in the next layer down. It does not have state reflecting the business situation, but it can have state that reflects the progress of a task for the user or the program.<br />
    6. 6. Application Layer: in pratica<br />E’ un catalogo di servizi in grado di effettuareil mesh dellalogicapresentenel domain layer esponendolaallaapplicazione (es: presentation layer) in una forma ad… altadigeribilità<br />
    7. 7. Real world DDD<br />Avere a disposizione un domain layer «smart» è bello, ma costoso:<br />Materializzazione degli oggetti<br />Mesh della business logic<br />Tipicamente, si finisce per passare la vita a «fare DTO»:<br />Domain Layer <-> Application Layer<br />Application Layer <-> Presentation Layer<br />
    8. 8. LayeredExpressionTrees (LET idiom)<br />Facciamo un gioco: invece di definire un «botto» di DTO, facciamo che layer e servizi si scambino degli IQueryable<YourFavouriteDomainEntity>, facendo «emergere» la query e specificando la proiezione solo all’ultimo momento?<br />L’espressione «Capra e cavoli» vi dice niente? <br />
    9. 9. Demo<br />LayeredExpressionTrees<br />
    10. 10. Books & Publications<br />[DDD] Domain Driven Design, Eric Evans , Addison-Wesley<br />[P of EAA] Pattern of Enterprise Application Architecture, Martin Fowler, Addison-Wesley<br />[NSK] NSK, http://nsk.codeplex.com<br />

    ×