Облегченные выпуски SQL Server

Я разрабатываю приложение ASP.NET MVC, которое использует базу данных LocalDb. Это приложение также должно иметь соответствующую службу Windows, которая работает постоянно. После долгих исследований выяснилось, что LocalDb не является разумным выбором для развертывания из-за необходимости иметь двух пользователей и одновременный доступ и время непрерывной работы 24/7.

Приложение, которое я создаю, не будет развернуто на одном сервере, оно будет упаковано в установщик и разослано нескольким пользователям. Это было бы намного проще, если бы я мог оправдать распространение SQL Server Express 2012, но я стараюсь изо всех сил избегать увеличения размера установщика на 120 МБ и использования 300 МБ на диске.

Нагрузка на базу данных будет очень незначительной - веб-приложение использует поставщика SimpleMembership, и кроме таблиц членства, есть только несколько других таблиц, в которых никогда не будет значительного количества данных. В предыдущих версиях этого приложения я использовал поставщика членства XML, который сохранял данные о пользователях и ролях на диске и другие данные в моем собственном файле конфигурации XML. У некоторых клиентов возникли проблемы с безопасностью, поэтому я хотел бы перенести данные о членстве и конфигурации в базу данных, чтобы клиенты могли указывать приложению свой собственный SQL Server и выполнять с ним всю необходимую им безопасность.

Я также хотел бы, чтобы служба Windows использовала SQL Server Broker и SqlDependency для обнаружения изменений, которые веб-приложение вносит в базу данных.

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

LocalDb, вероятно, отсутствует по причинам, которые я изложил выше.

SQL Server Compact - я никогда не работал с ним. Насколько я понимаю, он работает в процессе - может ли этот процесс быть моей службой Windows, чтобы он всегда работал? Могу ли я получить к нему доступ одновременно с веб-приложением? Будет ли с ним работать провайдер SimpleMembership? Любая идея, если SqlDependency работает с ним или он вернулся к опросу?

2 ответа

Решение

Да, служба Windows и asp.net могут одновременно обращаться к базе данных на одном компьютере. SimpleMemberShip работает с ним, без SqlDependency, но вы можете потенциально сделать легкий пример опроса, используя столбцы rowversion и функцию @@dbts, возможно, в сочетании с некоторыми запросами системных таблиц

Если вам нужна небольшая база данных SQL, как насчет этого попробовать. SQLlite занимает всего несколько сотен килобайт и прост в использовании.

Имеется порт AC# http://code.google.com/p/csharp-sqlite/.

Также много информации об использовании sql lite в вашем C# проекте.

Смотрите эту ссылку для получения дополнительной информации: http://www.codeproject.com/Articles/22165/Using-SQLite-in-your-C-Application

Существует ли оболочка.NET/C# для SQLite?

Я немного протестировал его, он очень маленький, быстрый, простой и синтаксис SQL часто одинаков. То, что вы не можете сделать таким же образом, - это иметь дело с T-SQL, но, как вы сказали, вы просто храните некоторые простые данные, вам следует попробовать.

Другие вопросы по тегам