Modelli di progettazione per software ERP con client e servizio Web

0

Farò software ERP per la gestione dei dati per le attività commerciali. La soluzione deve avere due parti importanti: un'applicazione WPF per tutti i client e un'applicazione API Web MV MV ASP per tutti i client.

L'applicazione API gestisce tutti i dati pubblici uguali per tutti i client e li memorizza in un database SQL server nel cloud di Azure. I client possono accedere a questi dati tramite un'API al servizio web.

L'applicazione WPF gestisce tutti i dati privati e li archivia anche su un database SQL server sul server del client. Ma qui c'è un problema. Non tutti i client hanno un proprio server. In questa situazione il database deve anche essere eseguito su un servizio cloud come Azure.

Il 99% degli utenti utilizza solo l'applicazione WPF e non il servizio web. Le API di accesso all'app desktop dal servizio Web. Per entrambi i database (su client e server) userò Entity framework 6 con le migrazioni di prima del codice.

La domanda è quale modello di progettazione del codice (come MVVM o MVC) posso usare per il mio software ERP che non ha codice duplicato e con un livello di servizio per gestire la direzione dei dati, per il servizio web o per il cliente server farm o se l'ultimo caso non è possibile alla server farm del client su Azure.

    
posta H. Pauwelyn 30.03.2016 - 12:22
fonte

1 risposta

1

Crea un livello del repository contiene e gestisce tutti i tuoi repository e la tua logica aziendale, crea unità di classe lavorativa per agire da punto singolo per gestire i tuoi repository.

Crea un livello di accesso ai dati che conterrà il tuo livello di database (prima il codice EF).

Crea contratti Il livello conterrà tutte le interfacce dei tuoi repository che puoi facilmente iniettare usando IoC

Crea un livello di servizi che contiene servizi di terze parti e servizi personalizzati a cui si connetterà il tuo ERP. utilizza il modello di progettazione di fabbrica per definire le configurazioni dei servizi in modo da semplificare l'upgrade o il downgrade dell'API del servizio.

Puoi anche creare Helper Layer che contiene tutte le classi Helper, la gestione dei log e delle eccezioni.

Utilizza IoC per iniettare i tuoi repository e servizi.

Puoi tornare al libro di Martin Fowler (modelli di progettazione di applicazioni aziendali) molto utile.

    
risposta data 31.03.2016 - 20:28
fonte

Leggi altre domande sui tag