views:

496

answers:

5

I was just assigned to do a CMS using ASP.net 3.5 and MySQL. I am kind of new to ASP.NET development (quite sufficient with C#) and I am wondering what major ASP.NET and general .NET features I am losing when I don't have the option to use Microsoft SQL Server.

I know already from quick Googling that I lose LINQ (and I was really looking forward to using this to build my model layer!), but I am not sure what other handy features I will lose. Since I've been relying on ASP.net tutorials which assume that you use MS SQL Server, I feel a chunk of my ASP.net knowledge just become invalid.

Thanks!

+7  A: 

You can leverage MySql in a number of ORMs, one of which is NHibernate. For the most part you can treat it as if you were running on SQL Server or Oracle. And with Linq2NHibernate, you can get nice LINQ syntax.

You'd lose the SqlDataSource control, but some would argue that it would actually be a blessing :)

And of course you'd lose Linq2SQL. EntityFramework will have 3rd party adapters MySql, Oracle and a few others soon after release.

Ben Scheirman
I would agree you really aren't losing anything by not using MSSQL. .NET is larger than just MSSQL.You still have all the AJAX features and controls with ASP.NET.
David Basarab
A: 

Some things that come to mind:

  • asp.net has nice "automatic" user management (authentication) system. I think it only goes with SQL Server, but there might be a way to make it work on other DBs. The tutorials assume SQL Server usually (or the built in file based DB for development)
  • Not related to asp.net, but useful for any project is SQLCLR, which I find a great addition to sql server. Lets you delegate logic you write in the business level (supporting dll or classes) to sql server in the from of a SP, but the SP is written in vb.net/c#
  • Notification services
csmba
I use the asp.net membership system at work w/ mysql all the time. Not only can you write your own class library to handle this for any database (or as I have a generic dll that will work with most db's), MySQL has since released it's own dll to let you use all the membership functionality.
Greg
+2  A: 

You do not lose LINQ, you lose LINQtoSQL. LINQ itself is more generic as it can be used on anything that implements iQueryable.

You lose the SqlDataSource, not a big deal.

You lose some of the integration the server explorer does for you with sql server, again not a big deal.

As far as im concerned you dont lose anything very important, and you shouldnt be losing any of your .net knowledge. Most examples use sql server as a default but they can easily be changed to use another database.

Also there are a few open source .net CMS packages out there already that use MySql take a look at cuyahoga

pete blair
A sidenote. You don't lose the SqlDataSource. The SqlDataSource can support any provider as long as it has a Provider, which MySql does have. I am currently using SqlDataSource with the FireBirdSql provider for a project I am doing.
Diago
+2  A: 

As a consequence of losing notification services, you also lose SqlCacheDependency

Mauricio Scheffer
+2  A: 

for linq take a look at this.

has a mysql linq provoder. http://code2code.net/DB_Linq/

B.A.Hammer