Ho un'applicazione web di monitoraggio che ha un backend .Net e un frontend Silverlight. L'applicazione scricchiola grandi quantità di dati, li elabora e li presenta all'utente. Quindi l'utente può interagire con i dati per visualizzare diversi grafici di registro. Lui / lei può deselezionare le dimensioni, raggruppare alcuni valori, scegliere metriche come il conteggio delle transazioni, l'importo della transazione (dollari) ecc.
Attualmente combino i dati del registro in blocchi di 3 minuti. Quindi fare una ricerca e inviarlo al client. Con questa forma di dati grezza, la sua dimensione è ottimizzata per la rete. Sul client ho un sacco di logica aziendale per elaborare questi dati per la presentazione. Inoltre, quando l'utente modifica le opzioni clientide elabora i dati in base alle scelte dell'utente.
Abbiamo scelto questo percorso per servire questa applicazione solo da un server. Non dobbiamo scalare l'importo dell'utente in azienda perché l'intera faccenda avviene sul lato client. Questo è buono ma stiamo sacrificando le prestazioni.
Sono davvero curioso di sapere cosa accadrà se scelgo di eseguire il calcolo completo per le scelte dell'utente sui dati non elaborati sul lato server.
-Sarà più veloce? -Devo ridimensionare immediatamente? -È il recupero dei dati solo una volta sul server, quindi la memorizzazione nella cache di qualcosa di simile a redis piuttosto che eseguire i calcoli in base all'utente richiede una soluzione migliore? -Se l'approccio al cliente è buono, devo passare a framework MVC lato client Javascript e Javascript come AngularJS?
E in realtà non so come scrivere la mia intera logica di business in Javascript al momento.
Informazioni extra
Il desktop medio ha una RAM da 2 GB e una CPU dual core che è il core del duo.
I nostri server sono nel cluster VM. Hanno una ram scalabile min 8gb. E 8 core xeon cpus.
100-150 utenti simultanei possono usarlo.
Ogni utente può fare diverse manipolazioni sui dati. Ecco perché hanno tutti i loro dati sul lato client.
Grazie