Чтобы продолжить с того места, где остановился TomTom, и Red попросил выполнить фильтрацию / обработку данных на сервере, прежде чем возвращать результаты (Psuedocode)
public IQueriable<UserDTO> GetUserAccountDetails(string UserID)
{
DataSet oneBazillionRows = SQLServer.GetAllUserRows();
// LINQ to the rescue
return from user in oneBillionRows
where user.ID = UserID;
}
и ваш потребитель:
public void GetUserInfo()
{
ServiceContext context = new ServiceContext();
context.Load<UserDTO>(ServiceContext.GetUserAccountDetailsQuery(), load =>
{
// do some work here
//like signalling the call is complete
// or storing the data in your View Model
}, null);
}
Ваш потребитель получит только одну строку данных.Базовая форма выглядит примерно так:
public IQueriable<ReturnType> WebService(Parameter parameter, ...)
{
// Do all your work here, return minimal results
}
Учтите: сервер неизбежно будет намного сложнее, чем ваш клиентский компьютер.Пусть он выполняет всю работу по фильтрации / сортировке / предварительной обработке результатов, и пусть он передает минимальные данные.Вы найдете, что ваши реализации RIA стали намного более быстрыми.