Obiettivi formativi
Lo scopo del corso è quello di fornire agli studenti strumenti e competenze per la progettazione e realizzazione di applicazioni cloud-native, basate su complesse architetture a microservizi
Prerequisiti
Nessuno
Contenuti dell'insegnamento
I parte – Evoluzione dei sistemi informatici
II parte – Architettura Microservizi
III parte – Pattern
IV parte – Sviluppo .NET
V parte – Accesso ai dati (Entity Framework)
VI parte – Web API (JSON, REST, .)
VII parte – Container e K8S
VIII parte – Comunicazione tra microservizi (Kafka, gRPC)
IX parte – Sicurezza, autenticazione e autorizzazione
Programma esteso
I parte – Evoluzione dei sistemi informatici
Panoramica sull’evoluzione dei sistemi informatici con particolare riferimento ai modelli architetturali di applicazioni enterprise monolitiche, web 2.0 e cloud native.
II parte – Architettura Microservizi
Focus sui microservizi: caratteristiche, dimensionamento e sovranità dei dati. Vantaggi e svantaggi nell’adozione di questo tipo di architettura.
III parte – Pattern
Pattern architetturali per la progettazione di applicazioni basate su microservizi. Criticità e punti di attenzione. La replica dei dati vs la comunicazione sincrona. Approfondimento di pattern come DDD e Circuit Breaker. Le transazioni distribuite mediante il pattern SAGA.
IV parte – Sviluppo .NET
Il framework di sviluppo .NET e il linguaggio C#. La programmazione a oggetti, i tipi generici, la dependency injection. ASP.NET Core e i web services.
V parte – Accesso ai dati (Entity Framework)
.NET e l’interazione con le basi dati relazionali. ADO.NET e le operazioni base e le transazioni. Introduzione agli ORM e approfondimento su Entity Framework.
VI parte – Web API (JSON, REST)
Introduzione alle web API. I webservice SOAP e REST. La serializzazione degli oggetti mediante JSON. ASP.NET core e le web API, i metodi http (GET, POST, PUT, DELETE).
VII parte – Container e K8S
I microservizi e le architetture a container. Introduzione a Docker. Le applicazioni ASP.NET in contesto a container. Kubernetes e le tematiche di orchestrazione dei container. Deployment, POD e i file YAML per la configurazione.
VIII parte – Comunicazione tra microservizi (Kafka, gRPC)
I microservizi e la loro comunicazione per lo scambio di informazioni. La comunicazione sincrona con gRPC e asincrona mediante l’utilizzo del bus Kafka.
IX parte – Sicurezza, autenticazione e autorizzazione
Web API e sicurezza. Approfondimenti su come rendere i metodi sicuri mediante autorizzazione. Approfondimenti sulle tematiche di autenticazione e autorizzazione del client.
Bibliografia
Materiale didattico:
diapositive del corso
Metodi didattici
Lezioni frontali con esercitazioni assistite
Modalità verifica apprendimento
La verifica dell’apprendimento verrà effettuata mediante un progetto finale che consisterà nella realizzazione di un’applicazione che utilizzi tutte le tecnologie/tecniche apprese durante il corso. L’elaborato verrà discusso in sede di esame con il docente.
Altre informazioni
- - -
Obiettivi agenda 2030 per lo sviluppo sostenibile
- - -