I have an app structured in two tiers (presentation and business logic in the client (WPF using MVVM) and data in one SQL server), but I'm facing the problem that it uses too much RAM in the client due to the need of a large collection of objects to manipulate.
So I thought of changing into a three-tier architecture, adding a service in a server to process all the business logic and provide the clients only what they need to display using WCF in order to lower its requirements in memory.
My question is about how to properly do this. Communication between this server and the data (in SQL server) is pretty straight-forward, but what should I send from the server to the client?
For example, following a MVVM approach, should I send (from the server to the client) the models, the viewmodels, or what? If the viewmodel's properties reference the model and I only send a List of ViewModels, would the client be able to read the info?
Can you provide me with some real world examples of this?