Il mio attuale progetto .NET si presenta come segue:
Solution (.sln)
--BusinessProject A (.proj)
--BusinessProject B (.proj)
--DataLayer (.proj)
--A separate project calling ExternalService 1 (folder)
--A separate project calling ExternalService 2 (folder)
--A separate project calling ExternalService 3 (folder)
--A separate project calling ExternalService 4 (folder)
Entrambi i progetti aziendali utilizzano uno o più servizi in DataLayer.
Lo svantaggio di questo design è:
- Anche se si verifica una modifica in ExternalService 1, sarà necessario creare, distribuire, eseguire la regressione e passare attraverso l'intero ciclo di sviluppo prodotto-distribuzione.
- DataLayer comunica con più servizi esterni (tutti definiti in un singolo progetto). Ciò rende DataLayer molto pesante e amp; finisce per fare più cose.
Quindi i miei due centesimi su questo è
- separa
DataLayer
come soluzione separata , distribuiscila da qualche parte nello stesso ecosistema e comunicare con esso tramite un protocollo (ad esempio REST)
Quali sono altre alternative e approcci alla soluzione di cui sopra? Esistono modelli di progettazione correlati a .NET noti per lo stesso?