Onion Architecture - Multiple Apps

0

Onion Architecture parla della separazione dell'interfaccia utente, del servizio e dei livelli di dati. Tutti i campioni solitamente forniti per questo coinvolgono un singolo modello di distribuzione dell'applicazione. Ad esempio in .net la maggior parte dei campioni sono

Web - App MVC
Core / Dominio - Libreria di classi semplice
Dati - Entity Framework

Che cosa accade se la mia applicazione ha più varianti di distribuzione? Ad esempio, risorse di Azure e SQL Server on premise. La soluzione si scompone in progetti condivisibili? Cosa succede quando parti dell'infrastruttura sono condivise?

Host - On-Premise - ha solo la classe Program.cs e Startup, collega tutte le dipendenze. Ha anche la logica per eseguire la migrazione / configurazione per l'infrastruttura
Host - Azure - come sopra

Web - Controllers, View, Models - ma la libreria di classi non è un'app
Core / Domain - Non cambia
Infrastruttura - SQL - Infrastruttura - Azure
Infrastruttura - X

Questo è il modo corretto di pensare? gli "App Hosts" dovrebbero essere il più minimali possibile e collegare tutto? Le infrastrutture devono essere separate dall'infrastruttura che stanno utilizzando o dallo stile di implementazione (On premise vs Azure)? È strano avere un livello infrastruttura che non implementa tutti i repository definiti nel livello dominio?

    
posta mtron 20.12.2018 - 17:49
fonte

1 risposta

0

What happens if my application has multiple deployment flavors?

Hai uno strato che si occupa di quel sapore. Qualunque cosa sia. Quello strato dovrebbe estrarre con successo quel sapore dal resto dell'applicazione. Dovrebbe incapsulare la tua app. Se lo fa con successo il resto dell'app non ha idea di quale sia il sapore del momento.

Lo fai creando un'API basata sulle esigenze delle tue app. Non è quello che Azure ha cercato di venderti. Finché qualunque sia il sapore del mese è in grado di soddisfare tali esigenze, l'app non si cura di cosa sia.

Tieni le API piccole e potrai trovare molti sapori che si adattino alle tue esigenze e che siano in grado di passare in qualsiasi momento.

    
risposta data 23.12.2018 - 03:02
fonte

Leggi altre domande sui tag