Geeks With Blogs

Scott Kuhl Warning: I may have no idea what I am talking about!

When we first started the new project there was no question that it would be ASP.NET.  It's what I knew and I trusted it to get us there.  I wasn't going to risk a startup by playing with Ruby on Rails or PHP when I knew very little about it.

I also went directly to SQL Server for the same reasons.  But during the first weeks of development we needed to run MySQL to power some software we thought for sure we were going to need to run.  That threw a wrench in the plans.  Did we really want to run two database platforms in production if we didn't need to?  Here is our comparison between MySQL and SQL Server.

  • There doesn't look like there will be a need for Enterprise Edition, so Standard Edition is going to set us back about $5000 per CPU, or $10,000 per server since we will likely use 2 processor machines.  MySQL Community Server is free but we would likely run MySQL Enterprise Gold at $3,000 per server per year.  Given the 3 - 5 year cycle of SQL Server it's about even, but we could end up going with Quad processor machines.  In the end MySQL would probably be cheaper.
  • SQL Server has deeper integration with .NET.  The biggest noticeable difference right away was the lack of ASP.NET providers for MySQL.  There are some open source samples out there, but none of them implement everything.  Most just support the basic membership, role and profile providers.
  • I have used SQL Server a lot more than I have used MySQL, so personal experience goes to SQL Server.  This is also likely to be the case for most ASP.NET developers that we hire.
  • Third party .NET tools almost always support SQL Server first, if not solely.  This is a big consideration, because this one can keep coming back to haunt you with every purchase.
  • New features, like LINQ, will run on SQL Server first, and MySQL to follow sometime later.
  • Community support for .NET is also going to fall toward SQL Server a lot more often.

What we ended up doing was taking some time to try porting the existing data access code from SQL Server to MySQL.  The ASP.NET providers not being completely there was a pain, but porting the rest of the code really was not a problem at all.  But then we discovered we were probably going to need to run SQL Server in production anyway because of that third-party software bullet above.  We resigned ourselves to running both in production.

So we stuck with SQL Server for our development for the same reason we went with ASP.NET, experience.  As we get closer to launch, there is also a good chance that we won't need MySQL in production at all.  Things change all the time, so playing the odds, we will need SQL Server a lot more often than MySQL.

So my answer on which to choose?  In most cases I would go with SQL Server.  If you are going to run MySQL, just be prepared to do a little more work.  If money is a big issue, MySQL will take you further because you can always keep scaling Community Server up.  But if you are planning on paying for MySQL, unless you have a lot more experience with it, I suggest you also go with SQL Server.

Besides, now MySQL is owned by Sun, and you just know they are going to screw it up as badly as Java :)

Posted on Sunday, March 2, 2008 12:03 AM | Back to top

Comments on this post: Choosing a Database for ASP.NET

# re: Choosing a Database for ASP.NET
Requesting Gravatar...

I'm the Connector/Net maintainer at MySQL and our new 5.2 release (now in alpha) has much better provider support.
Left by Reggie Burnett on Mar 02, 2008 1:41 PM

# re: Choosing a Database for ASP.NET
Requesting Gravatar...
Does it support Web Parts?
Left by Scott Kuhl on Mar 02, 2008 2:05 PM

# re: Choosing a Database for ASP.NET
Requesting Gravatar...
Response from Reggie: Not yet. I'll see what would be involved in getting that into 5.2 before GA. If it's too much then I'll see about 5.3.
Left by Scott Kuhl on Mar 02, 2008 11:30 PM

Your comment:
 (will show your gravatar)

Copyright © Scott Kuhl | Powered by: