Использование версии SQL Server Express вместо версии Compact в качестве кэша локальной базы данных? - PullRequest
3 голосов
/ 02 декабря 2009

По умолчанию при создании кэша локальной базы данных с помощью мастера, предоставляемого Visual Studio 2008, он создаст для вас базу данных SQL Server Compact edition и предоставит вам возможность синхронизации между кэшем и удаленным SQL Server с использованием Sync Framework ( 1.0). Это позволяет нам предоставлять автономные возможности в нашем клиент-серверном приложении.

Мой вопрос: вместо использования SQL Server Compact, возможно ли использовать SQL Server Express, чтобы мы могли использовать хранимые процедуры? Все клиенты являются мощным ноутбуком, работающим на Core 2 Duo, поэтому вычислительная мощность вообще не является проблемой. Для нашего пользователя, однако, офлайн является наиболее ценной функцией.

Кроме того, нам понадобится серьезная перезапись, чтобы преобразовать весь код хранимой процедуры в код среднего уровня C # с помощью LINQ. Наконец, что самое важное, наш начальник хочет, чтобы бизнес-логика заключалась в хранимых процедурах. SQL Server CE просто не обрежет его.

Ответы [ 5 ]

0 голосов
/ 17 августа 2012

Комментарий к ответу Тима выше. У меня фактически более или менее тот же вопрос, что и в первоначальном вопросе выше. В настоящее время я пытаюсь разобраться в этих головоломках с версиями Sync Framework, Sync Services, версиях SQL Server и т. Д. И т. Д. И о том, что можно использовать с какой версией.

Я считаю, что в статье есть противоречие, на которое Тим ссылается (выше):

Согласно ответу на вопрос № 13 в этой статье, похоже, что SQL Compact является единственным, который можно использовать с SF 1.0. Слишком плохо для всех тех, кто разрабатывает на ASP.NET и застрял в SF 1.0, потому что можно получить исключение при попытке объединить SQL Compact с ASP.NET (получил это сам). Разве у кого-то нет SQL CE v4?

«SQL Server Compact не предназначен для разработки ASP.NET.»

Например:

http://social.msdn.microsoft.com/Forums/en-US/sqlce/thread/b8763568-c7b0-4e4a-bdf3-14969a0f67a0/

Согласно ответу на вопрос № 3 той же статьи, SF 1.0 устанавливается по умолчанию вместе с SQL Server 2008 и SQL Server Express 2008. Я могу это подтвердить, я не просил об этом и это было там, когда я установил свои вещи на клиенте Express.

Это одна из многих вещей, которые добавляют путаницы: как, черт возьми, мы можем легко понять, что использовать или что мы можем использовать в каждом сценарии / установке?

Если это поможет ответить на первоначальный вопрос, то после недели интенсивных исследований и борьбы в C #, связанных с синхронизацией в самом простом из возможных сценариев, вот мои выводы: поскольку SF 1.0 установлен с SQL Express 2008, можно сделать вывод, они могут использоваться вместе. НЕПРАВИЛЬНО. Я перепробовал все. В интернете я нашел очень мало информации о том, как их соединить, и поэтому их нельзя использовать вместе. Не трать свое время. Да, вы можете использовать SQL Express, но только с Sync Framework 2.0. Это мой личный вывод. Теперь, когда я знаю, я собираюсь установить Sync Framework 2.0 на клиентах (несмотря на то, что сложный RFC и процесс утверждения не позволяют мне устанавливать что-либо на стороне сервера). Я верю в централизованную модель (клиенты подключаются к центральному серверу, но не соединяются вместе, а на самом сервере не установлено веб-приложение / IIS), использование Sync Framework предназначено исключительно для клиента. Имеет смысл?

В любом случае спасибо Тиму за то, что поделился этим. Я уже прочитал FAQ, но, просмотрев ваше сообщение, я перечитал его и понял, что мне действительно нужно установить 2.0; -)

С наилучшими пожеланиями,

Zyxy

0 голосов
/ 18 апреля 2012

Эта статья указывает, что Sync Framework 1.0 не поддерживает SQL Server Express в качестве клиента. Sync Framework 2.0 может поддерживать Express в качестве клиента.

В Sync Framework 1.0 -

У нас было 2 поставщика синхронизации баз данных, а именно SqlCeClientSyncProvider и DbServerSyncProvider. Эти провайдеры поддержка автономных (или хаб-спицевых) сценариев - так что, только клиентские СУБД мы можно было использовать SQL Server Compact Edition и на стороне сервера мы имели возможность использовать SQL Server или любую другую ADO .net-совместимую СУБД.

В Sync Framework 2.0 -

В дополнение к более старым поставщикам, у нас также есть 3 новых базы данных Поставщики синхронизации, а именно SqlSyncProvider, SqlCeSyncProvider, и DbSyncProvider. Эти новые провайдеры могут быть использованы с Collaboration а также в автономных сценариях, что позволяет включить любой ADO .net-совместимый База данных для участия в качестве клиента или сервера в автономных сценариях или в качестве партнер в сценариях сотрудничества.

0 голосов
/ 03 декабря 2009

возможно ли использовать SQL Server EXPRESS издание, чтобы мы могли использовать хранимая процедура?

Да.

Вы можете упростить установку и развертывание, используя Click Once.

При необходимости вы можете ограничить объем памяти, используемый SQL Express, выполнив соответствующие команды настройки.

Поскольку ваши клиенты используют ноутбуки, вы можете рассмотреть возможность предоставления возможности остановки и запуска SQL Express из вашего приложения вместо автоматического запуска в качестве службы.

P.S. Если вы используете SP, вам может не понадобиться LINQ. ADO.NET может привести к гораздо более высокопроизводительному коду, особенно если вы можете использовать такие функции, как пакетирование команд, асинхронные запросы, множественные наборы результатов и т. Д., Которые невозможны в LINQ.

0 голосов
/ 30 ноября 2011

Автоматическая генерация кода с помощью LocalDataCache поддерживает только SQLCE, насколько мне известно. Технически возможно синхронизировать SQL2008 Express с SQLServer, но, похоже, он требует большого количества кода и далеко не так прост, как элегантная поддержка SQLCE в VS2008.

0 голосов
/ 02 декабря 2009

Да, вы можете сделать это. Вы можете попросить установщика установить SQL Server Express на свои компьютеры.

Единственное, что я хотел бы предупредить, так это то, что SQL Server может занимать некоторое дополнительное ОЗУ (200 - 500 мегабайт), и для ваших пользователей не всегда будет очевидно, почему их компьютер все время потребляет так много ОЗУ. Если у них у всех достаточно оперативной памяти, это не проблема, но любой, у кого есть компьютеры с менее чем 2 гигабайтами, может заметить это.

Вы также сможете писать хранимые процедуры в SQL Server Express. Я использовал SQL Server Express для некоторых продуктов, и он идеально подходит для большинства баз данных, которые мне нужно было создать, поскольку они никогда не достигают ограничений.

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