2009-08-22 4 views
0

У меня есть простое приложение, написанное с использованием SQL Server, Entity Framework, C# и WCF. Когда я хотел поделиться этим приложением со своими друзьями, я понял, что они не используют SQL Server на своей машине. Я могу пойти на выпуск SQL Server Express, так как использование моего приложения является личным и некоммерческим.Альтернатива SQL Server для простого веб-приложения

Я нашел MySQL как популярную альтернативу SQL Server.

1) Должен ли я потребовать обновить объекты при переходе на MySQL?

2) Должен ли я ожидать изменения кода в моем BL-слое из-за изменения уровня объектов? (Мне интересно, были ли созданы объекты для SQL Server)

Существуют ли базы данных, похожие на MS Access, которые легки по сравнению с MySQL?

Существуют ли какие-либо базы данных, которые не нужно устанавливать, но их можно скопировать как MS Access?

Цените свой ответ!

+2

Просто заметьте: вы можете использовать Express для коммерческих приложений, не нужно вызывать это личное использование. –

+0

[linqdb] (https://github.com/ren85/linqdb) – ren

ответ

3

Я не уверен, как выглядит ваш BLL, и у меня нет опыта работы с инфраструктурой сущностей, но я уже много раз сталкивался с тем, что linq-to-sql работает лучше с sql-сервером, чем с любой другой базой данных.

Итак, если у вас нет веской причины не для использования sql express, я бы посоветовал придерживаться sql express.

В конце концов, вы должны всегда устанавливать что-то при развертывании (если вы не используете xml как хранилище, что вполне возможно с помощью linq-to-xml).

7

Похоже, вы хотите SQLite.

SQLite библиотека программного обеспечения, которое реализует автономный, бессерверных, нулевую конфигурацию, транзакционного движка базы данных SQL.

Очень прост в развертывании. Кроме того, ознакомьтесь с System.Data.SQLite.

Согласно странице System.Data.SQLite ...

Поддерживает почти все рамки функциональности сущности , которая поддерживает Sql сервера и передает 99% тестов в EFQuerySamples MS демоверсии приложения ,

Вы должны быть хорошими. :)

+0

Хорошее обращение к System.Data.SQLite. Я все еще голосую за проверку VistaDB в качестве потенциальной альтернативы (см. Мой ответ). – galaktor

+0

Поддерживается ли она платформой Entity Framework ADO.NET? –

+0

Не уверен, что вы имеете в виду VistaDB или SQLite, но относительно VistaDB: да. См. Http://www.vistadb.net/vistadb3/sample-code.aspx – galaktor

2

VistaDB Express Edition также является бесплатным для некоммерческого использования и интегрируется в .NET и VS. afaik также работает над одним локальным файлом данных, поэтому не требует специальной установки на компьютеры ваших друзей.

В противном случае я рекомендую использовать PostgreSQL через MySql, поскольку он более совместим со стандартами и имеет более приятную лицензию.

2

Я думаю, что вы за то, что это просто изменение в поставщиках. Что вам нужно для использования MySQL - это .Net Connector, который поддерживает большинство всего простого.Он еще не очень зрелый, поэтому что-то очень сложное, что может вызвать проблемы, но он должен делать большую часть того, что вы хотите через Entity Framework.

С Entity Framework да вы можете делать обновление, это LINQ к SQL, которая не обновляется в отношении любых других баз данных (если вы не пользуетесь услугами третьей партии, как DotConnect)

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

2

Да, вы можете использовать MySql с EF, но я не знаю, потребуются ли изменения ... Я бы не удивился, если это все же получится. По крайней мере, ваша физическая БД должна быть перенесена/преобразована в MySql, и это потребует времени.

Я бы предположил, что если вам нужно установить БД на своих друзей, то почему ПК не следует использовать SQL Express с тех пор, как вы уже разработали в SQL Server на своем поле. Должно быть меньше проблем с этим, чем переход на MySql.

0

Я также проголосовал за VistaDB 3, так как его так легко развернуть.

+0

. В следующий раз вы также можете просто проголосовать за ответ, с которым согласны, и добавить комментарий. Было бы неплохо, если бы мой представитель был хорошим;) – galaktor

+0

Справедливая точка - сделано! –

+0

Спасибо, Дэн :) – galaktor

Смежные вопросы