Wednesday, May 16, 2007

Why use Mono to develop an ASP.NET site?

Update
I might have spoke too soon, and my feeds failed me. When I wrote the original post yesterday, I had no indication that Mono 1.2.4 was released on May 15. Here are the complete release notes. I am kinda of surprised no feeds I subscribe to, and that is a long list, mentioned this bit of information. 1.2.4 fixes a large number of ASP.NET 2.0 compatibility issues, they consider the support complete. On the feeds thing, I have an idea. In NetNewsWire, I just added the Mono Project News feed, and the last entry is from March 2007, about Mono.AddIn. What? A new release and it's not published, that can't be. So I switched Safari over to using its' internal feed reader, and sure enough the Mono 1.2.4 release is the latest item. I get my feeds using NetNewsWire by proxy through NewsGator, it looks like NewsGator stopped updating the Mono feed or somehow this is broken. I turn off synching with NewsGator, NetNewWire gets the full Mono News Feed. Could other's be using NewsGator and not seeing that Mono 1.2.4 was published because of this? Or is Mono used so little that no one, not even FOSS or Mac developers cared?

Back on point though, I started following the instructions to start Mono development on OS X. Already had X11 installed, installed Fink, installed Gnome, and I have to stop because my train is pulling in but, and sorry if this is a whine, but can't they put together an installer package for OS X for all this shit? I mean seriously, I just want to get MonoDevelop up and running. Here is another article, even more daunting because of the long list of packages, to use MonoDevelop on OS X.

Original Post
I don't get it. I have been researching Mono specifically to develop a new ASP.NET based site, and I can't see choosing it as my target run-time instead of Microsoft's .NET runtime. These are the reasons why I can't justify using Mono:
  • Feature lag. ASP.NET 2.0 has been out since November 11, 2005. If you read the Mono ASP.NET FAQ says "currently we are missing WebParts and some tiny small features", but they don't say what various tiny small features don't exist. Later on in the FAQ it says "Support for 2.x ASP.NET applications is under active development, but it's not complete". Which is it, tiny small feature or incomplete functionality segregated off into a preview of xsp2.exe?
  • No ASP.NET AJAX control compatibility. This is listed under the Portability section and lists some other controls you might try. I don't think so, the ASP.NET AJAX stuff seems to work well, why would I risk that functionality?
  • Where are the hosting companies? The Mono ASP.NET FAQ lists 2!. I guess I could develop on Mono and deploy to MS .NET, but that is a huge development no-no to me, you as closely as possible develop on the same platform you are deploying on.
  • Where is the cost savings?. This comes down to hosting costs. The company I am consulting for is not setting up their own datacenter. Hosting for Mono ASP.NET apps vs. MS ASP.NET apps is either the same or within $5 dollars of each other. Ubiquity Hosting one of the two that are listed to support Mono has pricing starting at $4.95 a month, and Discount ASP.NET for just about the same storage and transfer rates is $10/month. That's it, $5/month difference?!?! $60 a year, $300 for 5 years to go with MS.NET? This is what free (as in beer) Mono and Linux net me in savings!?!?

The only reasons for Mono might be no Windows license and Visual Studio for developers. This might be interesting if I didn't already have a Windows license, but the Visual Studio part is intriging. Even that though, I have installed SharpDevelop which is free (beer again) and I might give that a go. Other than that, I feel like I might be missing something, but I can't put my finger on what it is, and the reasons against Mono ASP.NET seem overwhelming. I have to conclude at this point Mono for ASP.NET isn't worth it.