È buona pratica utilizzare l'API dati per l'accesso multipiattaforma

-1

Tutti,

Domanda : dovrei avere un'API di accesso ai dati comune tra varie applicazioni multipiattaforma o mantenere l'accesso ai dati specifico per l'interfaccia utente, anche se ciò comporterebbe una duplicazione?

Sfondo : ho sviluppato varie applicazioni con molte applicazioni secondarie per interagire con vari pezzi dei nostri servizi interni. Fondamentalmente ho un'applicazione desktop che contiene tutte queste applicazioni / caratteristiche più piccole e consente loro di essere utilizzate in un Launcher - quasi in stile MDI (ma non) e un'applicazione web che contiene varie applicazioni sottoinsieme per i nostri dispositivi mobili. Stiamo arrivando al punto in cui molte delle nostre applicazioni avranno una versione desktop e mobile di loro e sono curioso del modo migliore per strutturarlo. Attualmente ho una grande libreria di classi comuni che memorizza tutti i miei dati di accesso sotto forma di API che fondamentalmente interagisce con una classe interna DATA CONNECTIONS all'interno della libreria di classi comuni insieme a vari metodi di supporto comuni.

Ulteriori : l'accesso ai dati primari è Entity Framework che richiede un pacchetto NuGet per ogni progetto che utilizza la classe comune sebbene disponga anche di vari metodi di accesso ai dati manuali. Una delle preoccupazioni che ho è che il mio schema di denominazione è disordinato, mi sento di avere l'interfaccia utente strutturata da "Nome applicazione" e quindi avere cartelle duplicate nelle mie classi comuni strutturate anch'esse con lo stesso nome. Fondamentalmente, assomiglia a questo:

    
posta 0perator 14.08.2018 - 22:00
fonte

1 risposta

1

Ciò che sembra manchi qui è una buona storia per ciò che accade tra il tuo livello di accesso ai dati e la tua interfaccia utente.

Dovresti avere un'API di accesso ai dati comune? Ovviamente. Ma la tua interfaccia utente non acquisirà necessariamente i dati direttamente dal tuo livello di accesso ai dati. Perché? Poiché i dati di cui ha bisogno la tua interfaccia utente potrebbero sembrare diversi da quelli che ottieni dal tuo livello di accesso ai dati. Il tuo livello di accesso ai dati è ottimizzato per l'efficienza; la tua interfaccia utente è ottimizzata per la visualizzazione.

Supponiamo che tu voglia visualizzare una fattura. Le fatture hanno una struttura piuttosto specifica. Si dispone di un'intestazione della fattura contenente indirizzi, elementi pubblicitari della fattura e un blocco di riepilogo con totali. Dal punto di vista del livello dati, queste informazioni provengono da diverse tabelle. Dal punto di vista dell'interfaccia utente, è una singola struttura dati.

Quindi puoi fare in modo che l'interfaccia utente estragga direttamente tutte le informazioni necessarie dal livello di accesso ai dati oppure che un livello intermedio di software recuperi i dati, assembli la fattura e fornisca direttamente un'unica struttura dati all'interfaccia utente.

Quest'ultimo approccio è più desiderabile per diversi motivi, principalmente per quanto riguarda la separazione delle preoccupazioni .

    
risposta data 14.08.2018 - 22:18
fonte