ݺߣ

ݺߣShare a Scribd company logo
Da CRUD a Messaggi per Applicazioni
Scalabili e Manutenibili
… sfatiamo qualche luogo comune….
Michele Aponte
CEO/CTO Blexin Srl
Presidente DotNetCampania
MVP ASP.NET/IIS
@apomic80 - http://www.tolist.net
Sponsor
Grazie a
Una architettura 3-tier al giorno, toglie
il medico di torno?
Presentation
Layer
Business
Layer
Data
Layer
Una architettura 3-tier al giorno, toglie
il medico di torno? Ma anche no...
Modello di
Dominio
Business
Services
Data Access
Layer (ORM)
RDBMS
Application
Services
User
Interface
Limiti di un’architettura 3-Tier e monomodello
• Scrittura e lettura hanno esigenze diverse
• Ci sono applicazioni in cui il numero di letture è
molto diverso dal numero di scritture
• Problemi di performance
• Manutenibilità con aggiunta di altri moduli
applicativi
Proviamo a separare le responsabilità…
Presentation
Layer
Write Model
(Business Layer)
Data
Layer
Read Model
Command Query Responsibility Segregation
… un altro pochino ...
Presentation
Layer
Write Model
(Business Layer)
Data
Layer
Read Model
Data
Layer
Command Query Responsibility Segregation
Ok… ma come tengo “sincronizzati”
Read Model e Write Model?
Presentation
Layer
Write Model
(Business Layer)
Data
Layer
Read Model
Data
Layer
Sincronizzatore
(denormalizzatore)
Command Query Responsibility Segregation
Mettiamoci
l’anima in
pace:
il mondo
non è
transaziona
le!
Demo
CQRS un passo per volta…
In un sistema del genere sapete cosa ci
starebbe proprio bene?
Presentation
Layer
Write
Model
Data
Layer
Read Model
Data
Layer
Sincronizzatore
(denormalizzatore)
ESB
Quando usare CQRS e i Messaggi
• Dividere modello di lettura e scrittura è sempre
una buona idea
• Con la messaggistica vi portate a casa un sistema
di comunicazione che potete usare anche per scopi
puramente applicativi (estendibilità,
comunicazione in plugin, ecc.)
• Qualcuno ha detto scalabilità???
• Se avete una logica unicamente CRUD… ma vi è
veramente mai capitato?
• Non guardate unicamente alla dimensione della
vostra applicazione al momento della nascita...
Domande? Intanto qualche riferimento utile

More Related Content

Da crud a messaggi per app scalabili e manutenibili

  • 1. Da CRUD a Messaggi per Applicazioni Scalabili e Manutenibili … sfatiamo qualche luogo comune…. Michele Aponte CEO/CTO Blexin Srl Presidente DotNetCampania MVP ASP.NET/IIS @apomic80 - http://www.tolist.net
  • 3. Una architettura 3-tier al giorno, toglie il medico di torno? Presentation Layer Business Layer Data Layer
  • 4. Una architettura 3-tier al giorno, toglie il medico di torno? Ma anche no... Modello di Dominio Business Services Data Access Layer (ORM) RDBMS Application Services User Interface
  • 5. Limiti di un’architettura 3-Tier e monomodello • Scrittura e lettura hanno esigenze diverse • Ci sono applicazioni in cui il numero di letture è molto diverso dal numero di scritture • Problemi di performance • Manutenibilità con aggiunta di altri moduli applicativi
  • 6. Proviamo a separare le responsabilità… Presentation Layer Write Model (Business Layer) Data Layer Read Model Command Query Responsibility Segregation
  • 7. … un altro pochino ... Presentation Layer Write Model (Business Layer) Data Layer Read Model Data Layer Command Query Responsibility Segregation
  • 8. Ok… ma come tengo “sincronizzati” Read Model e Write Model? Presentation Layer Write Model (Business Layer) Data Layer Read Model Data Layer Sincronizzatore (denormalizzatore) Command Query Responsibility Segregation
  • 10. Demo CQRS un passo per volta…
  • 11. In un sistema del genere sapete cosa ci starebbe proprio bene? Presentation Layer Write Model Data Layer Read Model Data Layer Sincronizzatore (denormalizzatore) ESB
  • 12. Quando usare CQRS e i Messaggi • Dividere modello di lettura e scrittura è sempre una buona idea • Con la messaggistica vi portate a casa un sistema di comunicazione che potete usare anche per scopi puramente applicativi (estendibilità, comunicazione in plugin, ecc.) • Qualcuno ha detto scalabilità??? • Se avete una logica unicamente CRUD… ma vi è veramente mai capitato? • Non guardate unicamente alla dimensione della vostra applicazione al momento della nascita...
  • 13. Domande? Intanto qualche riferimento utile