I have a monitoring web application which has a .Net Backend and a Silverlight frontend. The application crunchs big chunks of data, process them and presentates to user. Then user can interact with the data to see different graphs of log. He/She can unselect dimensions, group some values, choose metrics like transaction count, transaction amount(dollars) etc.
Currently, I combine log data into 3 minute chunks. Then making a lookup from it and sending to clientside. With this raw form of data it's size is optimized for network. On clientside I have a lot of business logic to process this data for presentation. Also when user changes options clientside processes the data according to user's choices.
We have chosen this path to serve this application only from one server. We don't have to scale with the user amount in the company because the whole thing happens on the clientside. This is good but we are sacrificing performance.
I'm really curious about what is going to happen if I choose to do the all computation for user's choices on raw data at the serverside.
-Is it going to be faster? -Do I need to scale immediately? -Is Fetching the data only once on the server then caching it something like redis than doing the computations according to user requests better solution? -If clientside approach is good, do I need to switch to Javascript and Javascript client side MVC frameworks like AngularJS?
And I really don't know how to write the my whole business logic in Javascript at the moment.
Extra Info
Average desktop has 2gb ram and a dual core cpu which is core to duo.
Our servers are in VM cluster. They have scalable ram min 8gb. And 8 core xeon cpus.
100-150 concurrent users can use it.
Every user can do different manipulations on the data. That's why they all have their own data on the clientside.
Thanks