Служба данных ADO.Net не в сети (Astoria Offline) не работает Любой план Б? - PullRequest
2 голосов
/ 01 декабря 2009

Мы пытаемся преобразовать клиентское серверное приложение старой школы в приложение N-уровня с синхронизацией и автономной поддержкой, используя все технологии Microsoft (мы являемся единым магазином .Net и SQLServer). Мы хотим сосредоточиться на написании бизнес-логики вместо того, чтобы тратить время на сливы, поэтому мы собираемся использовать как можно больше существующих технологий погружения Microsoft.

Пока что мы решили использовать SQL Server Compact Edition с толстым клиентом WinForm / WPF, SQL Server 2008 на сервере, Microsoft Sync Framework для синхронизации между клиентской БД SQL и серверной БД SQL. Пока все хорошо.

Проблема возникает, когда мы пытаемся реализовать часть «N Tier». Наше текущее приложение довольно симпатичное. Каждый вызов доступа к данным осуществляется через веб-сервис. Естественно, мы думали об использовании службы данных ADO.Net. Затем нас приятно удивило, что есть нечто, называемое ADO.Net Data Service Offline (Astoria Offline), которое позволяет нам осуществлять вызовы для доступа к данным через веб-сервис, поддерживать синхронизацию и даже поддерживать автономно. Внезапно мы начали верить, что рай действительно место на земле.

И вот вчера наш товарищ по команде, отвечающий за исследование "Astoria Offline", сказал нам, что "Astoria Offline мертв" на основании сообщения в блоге (http://blogs.msdn.com/astoriateam/archive/2009/03/07/announcing-project-codename-astoria-offline-alpha-preview.aspx). Мы подозревали, что он взломан, но не хотели бросать ему вызов. Дело в том, что Astoria Offline все еще находится в пре-альфа-режиме, и нам нужно производственное решение.

Так, кроме Astroia Offline, есть ли другое подобное решение, позволяющее нам использовать Microsoft Sync Framework в настройке N-уровня, также поддерживающее автономный режим?

1 Ответ

1 голос
/ 17 февраля 2010

Если вы рассматриваете ADO.NEt Data Services, то вы можете обнаружить, что ADO.NET Synchronization Services вам подходят. В зависимости от сенарио, которое вы пытаетесь создать. Альтернативно удаленный доступ к данным может подходить лучше.

Вы можете выбрать Sync Services: 1. Поддерживает разрешение конфликтов. 2.Измените отслеживание на сервере и на клиенте, чтобы обменивались только данными. 3. Peer to Peer sync в готовящейся версии v2 Sync Framework. 4. Синхронизация с базами данных, отличных от SQL Server. 5. Лучше всего подходит для SSCE на настольном компьютере или ноутбуке.

RDA может обеспечить вам лучшую производительность, если: 1. Ваши первичные ключи используют GUID вместо столбцов Identity. 2. Пользователи не перезаписывают данные друг друга, поэтому вам не нужно разрешение конфликтов. Правило «Последний в выигрыше» работает для вас. 3.Если вы хотите, чтобы индексы продавливались, вам все равно, применяются ли в вашей локальной базе данных SSCE ограничения ссылочной целостности. 4. Вы хотите обернуть изменения, которые вы загружаете в SQL Server, в транзакцию, чтобы все изменения были применены или ни одно из них не было применено. 5. Отслеживание изменений на клиенте достаточно хорошее, и повторная загрузка обновленных серверных таблиц не займет много времени. 6.Вы не против написания кода синхронизации. 7. Уметь выполнять SQL и хранимые процедуры непосредственно против SQL Server через IIS. 8.Вы загружаете данные только для чтения.

Если тебе нужно что-то еще, просто кричи.

...