Condividi tramite


Creazione di un'interfaccia utente composita basata su microservizi

Suggerimento

Questo contenuto è un estratto dell'eBook, Architettura di microservizi .NET per applicazioni .NET containerizzati, disponibile in documentazione .NET o come PDF scaricabile gratuitamente leggibile offline.

Architettura di Microservizi .NET per Applicazioni .NET Containerizzate miniatura della copertina dell'eBook.

L'architettura dei microservizi inizia spesso con la gestione dei dati e della logica lato server, ma, in molti casi, l'interfaccia utente viene ancora gestita come monolitica. Tuttavia, un approccio più avanzato, denominato micro front-end, consiste nel progettare anche l'interfaccia utente dell'applicazione in base ai microservizi. Ciò significa avere un'interfaccia utente composita prodotta dai microservizi, invece di avere microservizi nel server e solo un'app client monolitica che utilizza i microservizi. Con questo approccio, i microservizi compilati possono essere completi sia con la logica che con la rappresentazione visiva.

La figura 4-20 illustra l'approccio più semplice per l'uso di microservizi da un'applicazione client monolitica. Naturalmente, è possibile avere un servizio MVC ASP.NET tra la produzione del codice HTML e JavaScript. La figura è una semplificazione che evidenzia la disponibilità di un'interfaccia utente client singola (monolitica) che usa i microservizi, che si concentrano solo sulla logica e sui dati e non sulla forma dell'interfaccia utente (HTML e JavaScript).

Diagramma di un'app dell'interfaccia utente monolitica che si connette ai microservizi.

Figura 4-20. Un'applicazione dell'interfaccia utente monolitica che usa microservizi back-end

Al contrario, un'interfaccia utente composita viene generata con precisione e composta dai microservizi stessi. Alcuni microservizi determinano la forma visiva di aree specifiche dell'interfaccia utente. La differenza principale è che ci sono componenti dell'interfaccia utente client (classi TypeScript, ad esempio) basate su modelli, e il ViewModel di interfaccia utente di modellazione dei dati per quei modelli proviene da ogni microservizio.

Al momento dell'avvio dell'applicazione client, ognuno dei componenti dell'interfaccia utente client (classi TypeScript, ad esempio) si registra con un microservizio dell'infrastruttura in grado di fornire ViewModel per uno scenario specifico. Se il microservizio modifica la forma, cambia anche l'interfaccia utente.

La figura 4-21 mostra una versione di questo approccio composito all'interfaccia utente. Questo approccio è semplificato perché potrebbero essere presenti altri microservizi che aggregano parti granulari basate su tecniche diverse. Dipende dal fatto che si stia creando un approccio Web tradizionale (ASP.NET MVC) o un'applicazione a pagina singola (SPA).

Diagramma di un'interfaccia utente composita costituita da molti modelli di visualizzazione.

Figura 4-21. Esempio di un'applicazione dell'interfaccia utente composita modellata da microservizi back-end

Ognuno di questi microservizi di composizione dell'interfaccia utente sarà simile a un gateway API di piccole dimensioni. In questo caso, tuttavia, ognuno è responsabile di una piccola area dell'interfaccia utente.

Un approccio basato sull'interfaccia utente composita basato su microservizi può essere più complesso o meno, a seconda delle tecnologie dell'interfaccia utente in uso. Ad esempio, non si useranno le stesse tecniche per creare un'applicazione Web tradizionale usata per la creazione di un'applicazione a pagina singola o per un'app per dispositivi mobili nativa (che può risultare più complessa per questo approccio).

L'applicazione di esempio eShopOnContainers usa l'approccio monolitico dell'interfaccia utente per diversi motivi. In primo luogo, si tratta di un'introduzione ai microservizi e ai contenitori. Un'interfaccia utente composita è più avanzata, ma richiede anche una maggiore complessità durante la progettazione e lo sviluppo dell'interfaccia utente. In secondo luogo, eShopOnContainers fornisce anche un'app per dispositivi mobili nativa basata su Xamarin (non supportata a partire da maggio 2024), che lo renderebbe più complesso sul lato C# del client.

È tuttavia consigliabile usare i riferimenti seguenti per altre informazioni sull'interfaccia utente composita basata su microservizi.

Risorse aggiuntive