Your SlideShare is downloading. ×
Layered Expression Trees: una terza via (idiomatica) verso il DDD
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Introducing the official SlideShare app

Stunning, full-screen experience for iPhone and Android

Text the download link to your phone

Standard text messaging rates apply

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

1,045
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 …

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,045
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
13
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
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.
  • Transcript

    • 1. LayeredExpressionTrees: una terza via (idiomatica) verso il DDD
      Andrea Saltarello
      SolutionArchitect @ ManagedDesigns
      andreas@manageddesigns.it
      http://twitter.com/andysal74
      http://blogs.ugidotnet.org/pape
      http://creativecommons.org/licenses/by-nc-nd/2.5/
    • 2. Agenda
      DDD recap
      LayeredExpressionTrees (LET idiom)
    • 3. Architettura di DDD
    • 4. Architettura di DDD
      è una layeredarchitecture
      i layerPresentation e Infrastructure compaiono «per sport» nel diagramma
      ilayerApplication e Domain costituiscono quella che tipicamente chiamiamo «business logic»
      Domain: logica invariante per i casi d’uso
      Application: logica specifica ai casi d’uso
    • 5. Application Layer: in teoria
      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.
    • 6. Application Layer: in pratica
      E’ un catalogo di servizi in grado di effettuareil mesh dellalogicapresentenel domain layer esponendolaallaapplicazione (es: presentation layer) in una forma ad… altadigeribilità
    • 7. Real world DDD
      Avere a disposizione un domain layer «smart» è bello, ma costoso:
      Materializzazione degli oggetti
      Mesh della business logic
      Tipicamente, si finisce per passare la vita a «fare DTO»:
      Domain Layer <-> Application Layer
      Application Layer <-> Presentation Layer
    • 8. LayeredExpressionTrees (LET idiom)
      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?
      L’espressione «Capra e cavoli» vi dice niente? 
    • 9. Demo
      LayeredExpressionTrees
    • 10. Books & Publications
      [DDD] Domain Driven Design, Eric Evans , Addison-Wesley
      [P of EAA] Pattern of Enterprise Application Architecture, Martin Fowler, Addison-Wesley
      [NSK] NSK, http://nsk.codeplex.com