Мне только что было поручено создать CMS с использованием ASP.net 3.5 и MySQL. Я как бы новичок в разработке ASP.NET (вполне достаточно с C#) и Мне интересно, какие основные функции ASP.NET и .NET я теряю, когда у меня нет возможности использовать Microsoft SQL Server.
Я уже знаю из быстрого поиска в Google, что я теряю LINQ (и я действительно с нетерпением ждал возможности использовать его для создания своего слоя модели!), Но я не уверен, какие еще полезные функции я потеряю. Поскольку я полагался на учебные пособия по ASP.net, в которых предполагается, что вы используете MS SQL Server, я чувствую, что часть моих знаний по ASP.net просто недействительна.
Спасибо!





Вы можете использовать MySql в ряде ORM, одним из которых является NHibernate. По большей части вы можете относиться к нему так, как если бы вы работали на SQL Server или Oracle. А с Linq2NHibernate вы можете получить хороший синтаксис LINQ.
Вы потеряете элемент управления SqlDataSource, но некоторые будут утверждать, что это действительно будет благословением :)
И, конечно, вы потеряете Linq2SQL. Вскоре после выпуска EntityFramework будет иметь сторонние адаптеры MySql, Oracle и некоторые другие.
Некоторые вещи, которые приходят в голову:
Я постоянно использую систему членства asp.net на работе с mysql. Вы можете не только написать свою собственную библиотеку классов, чтобы справиться с этим для любой базы данных (или, поскольку у меня есть общая dll, которая будет работать с большинством баз данных), MySQL с тех пор выпустил свою собственную dll, чтобы вы могли использовать все функции членства.
Вы не теряете LINQ, вы теряете LINQtoSQL. Сам LINQ является более общим, поскольку его можно использовать во всем, что реализует iQueryable.
Вы теряете SqlDataSource, ничего страшного.
Вы теряете часть интеграции, которую проводник сервера делает для вас с сервером sql, что опять же не имеет большого значения.
Что касается меня, вы не потеряете ничего очень важного, и вы не должны терять свои знания о .net. В большинстве примеров по умолчанию используется сервер sql, но их можно легко изменить для использования другой базы данных.
Также существует несколько пакетов .net CMS с открытым исходным кодом, которые используют MySql, взгляните на Cuyahoga
Замечание на полях. Вы не потеряете SqlDataSource. SqlDataSource может поддерживать любого поставщика, если у него есть поставщик, который есть в MySql. В настоящее время я использую SqlDataSource с поставщиком FireBirdSql для проекта, над которым я работаю.
В результате потери служб уведомлений вы также теряете SqlCacheDependency
Я согласен, что вы действительно ничего не теряете, если не используете MSSQL. .NET больше, чем просто MSSQL. У вас по-прежнему есть все функции и элементы управления AJAX с ASP.NET.