CoreData и ASP.NET веб-сервисы - PullRequest
0 голосов
/ 30 июля 2010

Я разрабатываю приложение для iPhone, которое в значительной степени зависит от вызова веб-сервисов ASP.NET для передачи данных туда и обратно между базой данных на одном из наших серверов и телефоном.работает на.А для работы с каждым элементом типичный сценарий использования требует 5-6 вызовов веб-службы.В зависимости от уровня сигнала 3G, количества загружаемых данных и количества элементов в день, требуется от 5 до 6 минут, чтобы пользователь смотрел на вращающееся колесо.

Этоэто просто неприемлемо, поэтому я хочу иметь возможность синхронизировать как приложение, так и базу данных на стороне сервера.

Как бы я поступил так?(В настоящее время я вообще не использую CoreData, но, полагаю, сейчас мне нужно его использовать).

Спасибо,Тея

1 Ответ

3 голосов
/ 31 июля 2010

Вам нужно будет закодировать основные данные клея и ваш полноценный веб-сервис.Попробуйте разработать свою модель данных так, чтобы она соответствовала данным, возвращаемым из веб-службы, и это упростит управление клеем.Если вы можете получить данные в JSON, то клей будет еще меньше.

Базовые данные - это иерархия объектов, и при разработке кода для кэширования и синхронизации вам нужно будет подходить к этому так.

Обновление

Представление таблицы не имеет ничего общего сданные.Когда вы работаете с Objective-C и iOS, вам нужно думать с точки зрения MVC.Поэтому вам нужно подумать о наблюдении дельта-изменений в вашей модели (пользовательский интерфейс или часть представления MVC не имеет значения).Базовые данные легко позволяют сделать это во время операции сохранения, и вы можете взять эти дельты и отправить их обратно на сервер.Сложность заключается в том, как получать уведомления от сервера об изменениях на стороне сервера.Это то, что зависит от дизайна сервера.

Обработка изменений с сервера должна выполняться в фоновом потоке (с отдельным NSManagedObjectContext, подключенным к тому же NSPersistentStoreCoordinator), а основной поток должен бытьотслеживание уведомлений о сохранении из этого фонового потока, чтобы он мог обновлять пользовательский интерфейс по мере необходимости.

Это нетривиальный дизайн, и сложность означает, что вы можете столкнуться с проблемами, но эти проблемы зависят от вашегоразработка приложений и серверов.Нет никакой серебряной пули, кроме того факта, что использование Core Data делает все это лот проще.

...