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

StackOverflow https://stackoverflow.com/questions/174059

  •  05-07-2019
  •  | 
  •  

Вопрос

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

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

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

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

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

Это было полезно?

Решение

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

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

Другие советы

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

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

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

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

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

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

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

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

Вы можете создавать сценарии, которые будут экспортировать данные в / из MySQL.

" очевидное " Выбор будет MS SQL Server Express. VS и .net поддерживают его изначально, и если у вас уже есть опыт работы с ним (для основной БД), я, безусловно, испытал бы желание придерживаться его (или его экспресс-версии).

Но это, конечно, не конец ваших возможностей. Я часто использую SQLite для кроссплатформенных приложений и веб-приложений. Это невероятно быстро и очень хорошо интегрируется с помощью System.Data.SQLite - хотя и не так тесно как MS SQL Server.

Существует также компактная версия SQL Server, которая довольно хорошо сравнивается с SQLite.

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

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

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

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

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

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

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

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

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

      

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

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

    Лицензировано под: CC-BY-SA с атрибуция
    Не связан с StackOverflow
    scroll top