da crud a messaggi per app scalabili e manutenibili
TRANSCRIPT
![Page 1: Da crud a messaggi per app scalabili e manutenibili](https://reader036.vdocuments.net/reader036/viewer/2022062522/58a451fa1a28ab55068b562b/html5/thumbnails/1.jpg)
Da CRUD a Messaggi per Applicazioni Scalabili e Manutenibili
… sfatiamo qualche luogo comune….
Michele AponteCEO/CTO Blexin SrlPresidente DotNetCampaniaMVP ASP.NET/IIS@apomic80 - http://www.tolist.net
![Page 2: Da crud a messaggi per app scalabili e manutenibili](https://reader036.vdocuments.net/reader036/viewer/2022062522/58a451fa1a28ab55068b562b/html5/thumbnails/2.jpg)
SponsorGrazie a
![Page 3: Da crud a messaggi per app scalabili e manutenibili](https://reader036.vdocuments.net/reader036/viewer/2022062522/58a451fa1a28ab55068b562b/html5/thumbnails/3.jpg)
Una architettura 3-tier al giorno, toglie il medico di torno?
PresentationLayer
BusinessLayer
DataLayer
![Page 4: Da crud a messaggi per app scalabili e manutenibili](https://reader036.vdocuments.net/reader036/viewer/2022062522/58a451fa1a28ab55068b562b/html5/thumbnails/4.jpg)
Una architettura 3-tier al giorno, toglie il medico di torno? Ma anche no...
Modello di Dominio
Business Services
Data Access Layer (ORM)
RDBMSApplication
Services
User Interface
![Page 5: Da crud a messaggi per app scalabili e manutenibili](https://reader036.vdocuments.net/reader036/viewer/2022062522/58a451fa1a28ab55068b562b/html5/thumbnails/5.jpg)
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
![Page 6: Da crud a messaggi per app scalabili e manutenibili](https://reader036.vdocuments.net/reader036/viewer/2022062522/58a451fa1a28ab55068b562b/html5/thumbnails/6.jpg)
Proviamo a separare le responsabilità…
PresentationLayer
Write Model(Business Layer)
DataLayer
Read Model
Command Query Responsibility Segregation
![Page 7: Da crud a messaggi per app scalabili e manutenibili](https://reader036.vdocuments.net/reader036/viewer/2022062522/58a451fa1a28ab55068b562b/html5/thumbnails/7.jpg)
… un altro pochino ...
PresentationLayer
Write Model(Business Layer)
DataLayer
Read Model DataLayer
Command Query Responsibility Segregation
![Page 8: Da crud a messaggi per app scalabili e manutenibili](https://reader036.vdocuments.net/reader036/viewer/2022062522/58a451fa1a28ab55068b562b/html5/thumbnails/8.jpg)
Ok… ma come tengo “sincronizzati” Read Model e Write Model?
PresentationLayer
Write Model(Business Layer)
DataLayer
Read ModelDataLayer
Sincronizzatore(denormalizzatore)
Command Query Responsibility Segregation
![Page 9: Da crud a messaggi per app scalabili e manutenibili](https://reader036.vdocuments.net/reader036/viewer/2022062522/58a451fa1a28ab55068b562b/html5/thumbnails/9.jpg)
Mettiamoci l’anima in
pace: il mondo
non è transazion
ale!
![Page 10: Da crud a messaggi per app scalabili e manutenibili](https://reader036.vdocuments.net/reader036/viewer/2022062522/58a451fa1a28ab55068b562b/html5/thumbnails/10.jpg)
DemoCQRS un passo per volta…
![Page 11: Da crud a messaggi per app scalabili e manutenibili](https://reader036.vdocuments.net/reader036/viewer/2022062522/58a451fa1a28ab55068b562b/html5/thumbnails/11.jpg)
In un sistema del genere sapete cosa ci starebbe proprio bene?
PresentationLayer
Write Model
DataLayer
Read ModelDataLayer
Sincronizzatore(denormalizzatore)
ESB
![Page 12: Da crud a messaggi per app scalabili e manutenibili](https://reader036.vdocuments.net/reader036/viewer/2022062522/58a451fa1a28ab55068b562b/html5/thumbnails/12.jpg)
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...
![Page 13: Da crud a messaggi per app scalabili e manutenibili](https://reader036.vdocuments.net/reader036/viewer/2022062522/58a451fa1a28ab55068b562b/html5/thumbnails/13.jpg)
Domande? Intanto qualche riferimento utile