Progettazione dell'interfaccia DB

-4

Ho qualche dubbio su come procedere sul mio progetto. Due anni fa, abbiamo avviato un piccolo progetto per un controllo di qualità industriale (es: controllo dimensionale). Originariamente il software doveva essere eseguito solo su un PC con una stampante, ma ora funziona su sei PC diversi con un server DB.

Queste sei applicazioni sono tutte diverse, in alcuni casi ci sono piccole modifiche dovute al controllo di diversi hw e in altre il software è completamente diverso per ragioni industriali. Oggi, il problema di base è che il design del programma non è pensato per questa scala. Il codice DB non è ben separato dal core logico e ci sono 6 diverse interfacce ADO.Net sullo stesso DB.

Ora, sto cercando di implementare un design MVC perché, per migliorare la manutenibilità e se è possibile aggiungere alcune unità di test.

Domanda: lo schema DB non corrisponde al modello di dati.

Di solito, per convertire i dati DB nei dati dell'applicazione sono necessarie alcune funzioni statistiche e possono essere diversi. Ora queste informazioni sono memorizzate nella query all'interno dell'ADO.

La mia idea è di creare una libreria comune per condividere lo schema DB con tutte le applicazioni, ma è una buona idea?

se voglio un'interfaccia comune al DB quale è il miglior design? È possibile prendere tutta l'interfaccia DB e archiviare in una libreria e utilizzare una suite di test?

Sto sovrastimando il progetto?

    
posta Linefinc 24.05.2017 - 19:15
fonte

1 risposta

0

Potresti prendere in considerazione la possibilità di creare un processo server separato che verrà utilizzato per ottenere dati dal database. È possibile scrivere un servizio Web RESTful per questo e le applicazioni possono quindi accedere ai dati inviando una richiesta di URL sul server principale. Il servizio Web riceve quindi i dati dal database e li rimanda. Questo semplifica le applicazioni desktop poiché non è più necessario parlare direttamente al database. Garantisce inoltre che tutte le applicazioni ottengano i dati in modo uniforme.

Se non vuoi avere un servizio web completo per questo, avere una libreria comune condivisa tra tutte le applicazioni è un buon modo per andare. Con una libreria comune, quando è necessario apportare modifiche al codice, è sufficiente modificare il codice in un'unica posizione, quindi aggiornare le applicazioni per utilizzare la nuova libreria compilata (a meno che non si cambino le interfacce all'interno della libreria ). Ancora più lavoro di un servizio web però.

    
risposta data 24.05.2017 - 19:21
fonte

Leggi altre domande sui tag