Come separare il livello dati dal livello aziendale?

2

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 è:

  1. 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.
  2. 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 è

  1. 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?

    
posta now he who must not be named. 04.07.2017 - 12:55
fonte

0 risposte