Architettura per dashboard

1

Mi piacerebbe sapere se la mia idea di architettura, è l'approccio migliore seguendo alcuni schemi.

Creerò una Dashboard per la mia azienda e non eliminerò o aggiornerò mai i dati nel mio database, ma leggo solo i dati dal database.

Oggigiorno lavoriamo solo con il nostro database SQL Server, ma voglio una soluzione che fornisca un modo semplice per implementare una nuova funzionalità, come una nuova compatibilità con il database.

L'APPLICAZIONE

Questa è una dashboard per tutti i miei clienti, dove otterrò i dati dal mio server di database creando un filtro per la sua azienda, quindi tracciamo alcuni grafici e mostrerò informazioni sulla sua affittabilità, informazioni finanziarie, ecc.

Sarà basato sul Web e deve funzionare in qualsiasi dimensione dello schermo (smartphone, TV, desktop, ecc.).

Voglio usare NHibernate come ORM

IDEA

La mia idea era nell'interfaccia utente, utilizzare l'applicazione Web MVC 4 e tutte le richieste dall'interfaccia utente al mio livello aziendale avverranno tramite REST.

My Business Layer è un'API Web MVC, per scollegare l'interfaccia utente dal mio livello aziendale.

Il Business Layer accederà al Repository (Pattern del repository), con operazione CRUD (nel mio caso è solo 'SELECTS' perché ho solo bisogno di mostrare i dati, non aggiornare mai, mai inserire).

È un approccio DDD, che funziona con NHibernate.

A volte penso che sia troppo per un dashboard, in cui non possiamo inserire né aggiornare i dati.

Mi piacerebbe sapere quali sono i modelli architettonici più comuni per questo problema.

Ho detto che alcuni schemi sono qui, ma forse qualcuno con più esperienza di me potrebbe vedere un approccio migliore a questo tipo di applicazione.

    
posta Lucas_Santos 06.08.2014 - 14:35
fonte

1 risposta

0

Interfaccia utente

L'esigenza di lavorare su una gamma di dispositivi dagli smartphone ai desktop è affrontata da due diversi approcci:

  • Riconoscere il tipo di dispositivo e produrre una pagina del sito diversa per telefoni e desktop. Questo spesso produce risultati divertenti su tavolette di grandi dimensioni. Non è divertente nel senso buono.
  • Utilizza un layout dinamico strong con fogli di stile CSS per posizionare gli elementi sulla pagina in base alle dimensioni e alla risoluzione dello schermo. Ciò produce siti molto utilizzabili e scalabili. Funzionano anche abbastanza bene quando gli utenti vogliono ridimensionare la pagina del browser su un desktop. Ecco una buona discussione .

L'approccio al layout dinamico suggerisce quindi di organizzare la dashboard in un set di widget dell'interfaccia utente. Ogni widget avrebbe un insieme di elementi grafici, elementi testuali fissi, testo dinamico e elementi grafici dinamici. Il widget viene quindi associato a script che visualizzano correttamente il widget e interrogano il back-end per i dati.

Indietro client

Come hai già identificato, il server back-end sarà accessibile dalle richieste REST avviate dai singoli widget. Ogni richiesta REST sarebbe essenzialmente senza stato. Ciò non vuol dire che non archivieresti i profili dei tuoi clienti e i profili utente in modo tale da non poter sempre determinare che una determinata applicazione web possa vedere esattamente ciò che dovrebbe vedere.

Ogni widget ha bisogno di ricevere periodicamente dati aggiornati dal server. Effettua il polling del server utilizzando una richiesta REST che trasmette i parametri configurati e un ID sessione utilizzato per autorizzare l'accesso a tali dati.

    
risposta data 06.08.2014 - 22:16
fonte

Leggi altre domande sui tag