Какую базу данных вы бы порекомендовали использовать с приложением C # (.NET)? - PullRequest
7 голосов
/ 06 октября 2008

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

Входные данные будут храниться на веб-сервере (хостинг - БД MySQL). Идея состоит в том, чтобы создать процесс для загрузки всех необходимых данных (например, в полночь) и обработки их. Однако будет много входов и этапов обработки, поэтому мне нужно использовать какую-то локальную базу данных для хранения полупродукта приложения

Какую локальную систему баз данных вы бы порекомендовали для работы с приложением C # (.NET)?

edit: конечный продукт (информация) должен быть легко экспортирован обратно в хостинг MySQL DB.

Как Уилл упомянул в своем ответе - да, я за производительность и удобство использования.

Ответы [ 12 ]

13 голосов
/ 06 октября 2008

Я хочу сказать, Microsoft Sql 2005 Express, поскольку (почти) это очевидный выбор при разработке в .NET.

Но все зависит от того, какими предыдущими навыками вы владеете. Если вы уже знаете MySql и, как вы уже сказали, данные должны быть экспортированы обратно в MySql. Почему бы не использовать MySql полностью?

8 голосов
/ 06 октября 2008

Для быстрого и грязного я бы пошел с Sql Server Compact Edition. Это реализация Sql Server в процессе, поэтому не требует установки других приложений.

Когда-нибудь вы использовали бы базу данных Access для такого рода вещей. Но доступ к базам данных вроде как удар.

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

2 голосов
/ 06 октября 2008

Я говорю, иди с Sql Server Compact Edition. Он действительно похож на полноценную версию SQL Server, и VS2008 имеет встроенную поддержку для разработки таблиц, запросов и т. Д. (Management Studio 2008 также поддерживает эту функцию). Самым большим недостатком является то, что вы теряете хранимые процедуры, но с большим преимуществом, поскольку нет необходимости устанавливать что-либо на компьютере локального пользователя, и он работает очень быстро для выбора данных. Еще круче то, что с помощью SQL Metal вы можете создать файл DBML и использовать LINQ так же, как и с Sql Server.

1 голос
/ 06 октября 2008

Как насчет использования db4o? Это OODB, который вы можете встроить в свое приложение. Также поддерживается репликация . Изменить: В качестве примечания - В моем текущем проекте с использованием db4o у меня есть строка (C # 3.5):

IList<Users> list = Persistence.Database.Query<Users>(u => u.Name == "Admin");

Использование лямбда-выражения со строгим типом для получения (ленивого) списка объектов из базы данных. Он также использует индексы для быстрого получения списка.

0 голосов
/ 06 октября 2008

Так как на это уже ответили. Я должен упомянуть, что при работе с языками CLR интеграция CLR / .NET Framework отличает MS SQL Server 2005/2008 от остальных. Следующая выдержка из здесь .

Используя такие языки, как Visual Основные .NET и C #, вы можете использовать для своей выгоды на CLR интеграции, чтобы написать код, который имеет более сложную логику и более подходит для вычислительных задач. Кроме того, Visual Basic .NET и C # предложить объектно-ориентированные возможности такие как инкапсуляция, наследование, и полиморфизм. Вы можете легко организовать связанный код в классы и пространства имен, что означает, что вы можете легче организовать и поддерживать ваши инвестиции в код, когда вы работаете с большим количеством кода. способность логически и физически организовать код в сборки и пространства имен это огромное преимущество, которое позволяет лучше находить и связывать разные куски кода в большом реализация базы данных.

0 голосов
/ 06 октября 2008

SQL Server, как большинство из них упомянул ... Моя причина в том, что вы можете использовать систему управления исходным кодом для интеграции контрольных примеров из C # в базу данных ....

Team Foundation (TFS) - одно из таких приложений от Microsoft с графическим интерфейсом ...

0 голосов
/ 06 октября 2008

В последнее время я проводил некоторое тестирование, и хотя я бы также порекомендовал SQL Server 2005 (Express при необходимости), потому что он работает "из коробки", хотя SQL Server 2008 является новым и RTM-версия теперь.

0 голосов
/ 06 октября 2008

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

Для производства я бы сказал, что MS SQL для больших проектов (или экспресс для среднего уровня) просто из-за тесной интеграции с VS и Sqlite для небольших проектов.

Учитывая описание, я думаю, что Sqlite будет хорошим выбором, так как это самые простые / самые низкие издержки.

0 голосов
/ 06 октября 2008

Я не знаю хорошей действующей базы данных, полностью совместимой по синтаксису и типу с MySQL. Имея это в виду, у вас есть три варианта:

  1. Выберите что-то вроде SQLlite, Access или SQL Server Compact. Проблема в том, что вам придётся написать какую-то сложную логику преобразования с любым из них, и вам придется писать все ваши запросы дважды.
  2. Установите MySQL локально. Тогда вам придется мириться с тем, что в вашей локальной системе работает полноценный сервер баз данных. Вы определенно хотите избежать этого для всего, что вы отправите клиенту, но для вашего собственного использования это может быть нормально. К счастью, MySQL не использует так много ресурсов, как некоторые другие современные серверы баз данных, но это все еще не идеально.
  3. Переключитесь на выпуск SQL Server Express на сервере и используйте SQL Server Compact на клиенте. Это так же дешево, как MySQL (может быть, даже дешевле, так как вы должны купить MySQL для любого коммерческого использования). Учитывая, что вы используете C # на стороне клиента, вы можете использовать его и с ASP.Net на стороне сервера. И если вы используете серверную часть ASP.Net, то нетрудно найти хост с SQL Server Express. Теперь ваши базы данных совместимы по типу, и любой запрос, который вы пишете для своего клиента, гарантированно будет работать и для вашего сервера.

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

0 голосов
/ 06 октября 2008

Для того, что вы описали, определенно MS SQL Server. Хорошая производительность, хорошие инструменты. Free.

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