Облачная база данных (WCF) или иногда подключаемая архитектура с Microsoft Sync? - PullRequest
0 голосов
/ 09 июля 2011

Я работаю над приложением .NET 4 Winforms, и у меня возникла проблема с выбором наилучшего способа обработки базы данных.Мы хотим предложить облачную систему баз данных, в которой приложение может взаимодействовать с «облаком» через службы WCF и, по сути, делать то же самое, что и подключение к локальной базе данных (локально SQL Express, SQL Server 2008 R2 на сервере).

Мы видим два варианта:

1) Использовать WCF и выполнять все вызовы в облачной базе данных 2) Использовать локальную базу данных и использовать Microsoft Sync Framework для синхронизации облака *

В конечном итоге у нас будет веб-приложение, которое будет также использовать облачные данные в качестве еще одного интерфейса для пользователя.

Очевидно, что дилемма, которую следует использовать.Если мы перейдем к варианту 1, то нам не нужно устанавливать SQL Express везде, где используется программное обеспечение, например, в общедоступном месте, и данные пользователя могут быть загружены в эту БД.Опция WCF позволяет всем данным оставаться центральными.

Со временем мы свернем мобильные устройства, чтобы iPhone, iPad и Android могли синхронизироваться и с облаком.

Мне интересно ваше мнениедля строго облачной базы данных по сравнению с иногда подключаемым параметром, т. е. база данных локальна, синхронизирована с облаком.

Спасибо.

1 Ответ

0 голосов
/ 10 июля 2011

Если вы хотите разрешить сценарии автономного / временного подключения, почему бы просто не использовать оба варианта 1) и 2) при необходимости? Если вы используете одну и ту же n-уровневую архитектуру через WCF для доступа к базе данных независимо от того, где она находится (облачная или локальная база данных), ваш код всегда будет одинаковым, единственное отличие будет состоять в том, что иногда подключенное приложение будет синхронизировать данные (также предположительно) через WCF).

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

Если вы можете предоставить больше информации о том, что именно будет делать решение, это также может помочь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...