Дозвуковой также другая опция. Я часто использую его для генерации классов объекта, которые отображаются на базу данных. Это имеет утилиту командной строки, которая позволяет Вам определить таблицы, типы и хост других полезных вещей
Я много лет использовал SQL Server в больших и малых проектах C #, но в последний год использую в основном MySQL на различных C # (но связанных с открытым исходным кодом и связанных с запуском) проекты, которые уже использовали MySQL.
Я скучаю по SQL Server! По моему опыту, SQL Server лучше во многих отношениях:
Предостережение: я слышал, что предполагается MySQL 6.0 чтобы устранить многие из вышеперечисленных пробелов и различий, но, надо признать, я не успел понять, как Oracle и т. д. повлияют на расписание и / или набор функций.
re: ваше «C # встроен» примечание: да, вы можете разрабатывать хранимые процедуры, функции, агрегаты и т. Д., Используя языки .NET, но IMHO в большинстве сценариев это больше проблем, чем того стоит, в том числе потому, что развертывание сложнее, а администраторы баз данных менее комфортны с кодом .NET на своих серверах. Настоящая победа для комбинации C # + .NET + Visual Studio + SQL Server, IMHO, заключается в том, что они разрабатывались параллельно в течение последних 10 лет, чтобы все они хорошо работали вместе, поэтому вы получите простоту использования и синергию, которую вы может не получить MySQL. Тем не менее, как я отмечал выше, это не нарушитель и не средство заключения сделки ... просто более плавно использовать SQL Server с остальной частью стека Microsoft.
Подводя итог, позвольте мне прояснить, что для многих рабочих нагрузок БД MySQL достаточно хорош - он работает, он стабилен, быстр, имеет достаточно хорошие инструменты и т. Д. И это доступно! :-) Я бы никогда не отказался от проекта просто потому, что он использует MySQL. Но это сравнение похоже на вождение Honda против BMW ... Honda доставит вас туда, куда вы хотите, но если ваш кошелек выдержит это, вы получите больше удовольствия от поездки с Bimmer. : -)
Я использую оба варианта довольно регулярно, и в настоящее время изучаю свой Sql Server MCTS, так что я, вероятно, могу добавить сюда несколько полезных комментариев.
SQL Server - это очень, очень, много более полнофункциональная база данных, особенно версия 2008 года. MySQL даже не поддерживает ограничения столбцов (например, создание столбца int с последующим ограничением значения от 1 до 1000 - не может обеспечить это автоматически в MySQL). SQL Server предлагает полнотекстовое индексирование, собственные XML-столбцы и манипуляции, несколько режимов транзакций, комплексные предложения по безопасности, репликацию и распределенные функции, а также отличный пакет управления.
Что касается вашего комментария C #, да, SQL Server имеет такую возможность для импорта объектов CLR, что означает, что вы можете скомпилировать некоторый код .Net и перетащить его в SQL Server и иметь функции базы данных, которые его используют. Это особенно полезно для создания новых агрегатных функций, так как вы можете обходить курсоры и использовать более быстрые циклы кода CLR.
Вы также можете оптимизировать SQL Server полностью, вплоть до используемых им режимов блокировки и изоляции, а также ЦП / памяти, которые может использовать данный поток.
MySQL, с другой стороны, бесплатен и относительно прост в настройке, с достаточным количеством опций, поэтому большинство владельцев веб-сайтов с удовольствием используют его для своих базовых приложений CRUD.
Если вы хотите использовать Linq2Sql, вам понадобится SQL Server. Если вам нужно множество дополнительных функций, SQL Server - это то, что вам нужно.
MySQL, с другой стороны, бесплатен и относительно прост в настройке, с достаточным количеством опций, чтобы большинство владельцев веб-сайтов с удовольствием использовали его для своих базовых приложений CRUD.
Если вы хотите использовать Linq2Sql, вам понадобится SQL Server. Если вам нужно множество дополнительных функций, SQL Server - это то, что вам нужно.
MySQL, с другой стороны, бесплатен и относительно прост в настройке, с достаточным количеством опций, чтобы большинство владельцев веб-сайтов с удовольствием использовали его для своих базовых приложений CRUD.
Если вы хотите использовать Linq2Sql, вам понадобится SQL Server. Если вам нужно множество дополнительных функций, SQL Server - это то, что вам нужно.
LINQ является самостоятельным языком и не привязан к конкретной базе данных или даже в базу данных. На самом деле это всего лишь инструмент для управления коллекциями структурированных данных. Базовый язык, на котором написана СУБД, не должен иметь значения с точки зрения того, на каком языке вы ее используете.
C # будет обращаться к MySQL и SQLServer в основном одинаково, используя ADO.NET (или LINQ - LINQ to SQL привязан к SQL Server, но, похоже, у него нет долгой жизни), так что это не будет фактором в моем имейте в виду, хотя интеграция IDE может быть.
Преимущества SQL Server будут включать более полный спектр поддержки разработки в рамках SQL Server, агента и планирования, модели безопасности, а также индексирования, настройки и других функций, таких как службы интеграции, отчеты Службы и службы анализа, которые позволяют относительно легко управлять крупными системными инфраструктурами.
Я не думаю, что вы »Я предоставил достаточно информации о вашей системе, чтобы сделать выбор между ними очевидным.
Я работал с обоими, хотя гораздо больше с SqlServer. В большом магазине, особенно там, где архитектурные решения многих приложений исходят от архитекторов БД, SQL Server предлагает больше. Репликация, SSIS и т. Д. Но они добавляют МНОГО сложности и, по моему опыту, были источником значительной части операционных сбоев.
Но как хранилище данных для программного приложения MySql делает то, что вам нужно, и является прямолинейно, надежно, быстро и просто.
Если говорить строго философски, вам действительно нужна логика приложения в коде приложения, а не в сложных SQL и определениях ограничений. Изучите основы в своем хранилище данных и вложите сэкономленное время в саму программу.
SQL Server предлагает больше, особенно там, где многие архитектурные решения приложений исходят от архитекторов БД. Репликация, SSIS и т. Д. Но они добавляют МНОГО сложности и, по моему опыту, были источником значительной части операционных сбоев.Но как хранилище данных для программного приложения MySql делает то, что вам нужно, и является прямолинейно, надежно, быстро и просто.
Если говорить строго философски, вам действительно нужна логика приложения в коде приложения, а не в сложных SQL и определениях ограничений. Изучите основы в своем хранилище данных и вложите сэкономленное время в саму программу.
SQL Server предлагает больше, особенно там, где многие архитектурные решения приложений исходят от архитекторов БД. Репликация, SSIS и т. Д. Но они добавляют МНОГО сложности и, по моему опыту, были источником значительной части операционных сбоев.Но как хранилище данных для программного приложения MySql делает то, что вам нужно, и является прямолинейно, надежно, быстро и просто.
Если говорить строго философски, вы действительно хотите, чтобы логика вашего приложения содержалась в коде приложения, а не в сложных определениях SQL и ограничений. Изучите основы в своем хранилище данных и вложите сэкономленное время в саму программу.
Но как хранилище данных для программного приложения MySql делает то, что вам нужно, и является прямым, надежным, быстрым и простым.
Если говорить строго философски, вам действительно нужна логика вашего приложения в коде приложения, а не в сложном SQL и определения ограничений. Изучите основы в своем хранилище данных и вложите сэкономленное время в саму программу.
Но как хранилище данных для программного приложения MySql делает то, что вам нужно, и является прямым, надежным, быстрым и простым.
Если говорить строго философски, вам действительно нужна логика вашего приложения в коде приложения, а не в сложном SQL и определения ограничений. Изучите основы в своем хранилище данных и вложите сэкономленное время в саму программу.
Рассматривали ли вы более полнофункциональную базу данных с открытым исходным кодом, такую как PostgreSQL. В SQL Server нет ничего плохого, но он начинает увлекать вас лицензионным программным обеспечением, от которого вы можете держаться подальше, если останетесь с противоположной частью с открытым исходным кодом. Все зависит от того, согласен ли ты с этим.
С точки зрения разработки (кодирования) я работал как разработчик Java, так и разработчик C # (подключаясь к обоим в различных проектах, поэтому Java для SQLServer, Java для MySQL, C # для MySQL , C # в SQLServer). Лично я не заметил такой большой разницы, хотя и не делал ничего слишком сложного. Я не думаю, что есть о чем беспокоиться, если вы думаете, что будет крутая кривая обучения, если вы не хотите вникать в некоторые из действительно мелких конкретных вещей, специфичных для сервера. Есть некоторые незначительные отличия, но нет ничего, что кто-то не заметил бы быстро.