Отключена ли ADO.Net Служба передачи данных (Astoria Offline)?Есть какой-нибудь план Б?

StackOverflow https://stackoverflow.com/questions/1827795

Вопрос

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

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

Проблема возникает, когда мы пытаемся реализовать часть "N-го уровня".Наше текущее приложение довольно SOA.Каждый вызов доступа к данным выполняется через веб-службу.Поэтому, естественно, мы подумывали об использовании ADO.Net Службы передачи данных.Затем для нас стало приятным сюрпризом, что есть нечто под названием ADO.Net Служба передачи данных офлайн (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-уровневых настройках, которые также поддерживают автономный режим?

Это было полезно?

Решение

Если вы рассматриваете ADO.Сетевые службы передачи данных, то вы вполне можете обнаружить, что ADO.NET Службы синхронизации хорошо подходят для вас.В зависимости от сенарио, который вы пытаетесь создать.С другой стороны, удаленный доступ к данным может подойти лучше.

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

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

Если вам нужно что-нибудь еще, просто крикните.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top