| > I've heard Mono supports (most of?) ASP.NET and you don't have to use SQL server either. I wrote a medium-sized online game for a guy who wanted to do it in Mono/MySQL. True, Mono does implement a lot of ASP.NET, and a lot of things work fine, but there are still rough edges that drove us crazy to the point that I finally convinced him to switch over to a Windows server (from Linux/Apache). Some examples: * Deployment: Mono was very touchy about deploying changes. If you drop in app_offline.htm and then replace every part of the site with new files, it usually worked. When it didn't, it would hang Apache and/or just start returning 500 errors until the web server was restarted. (Whereas with ASP.NET, you can drop in individual files and/or updated DLLs and the site will smoothly recompile as needed.) This was somewhat okay on dev, but got very old very fast in production. * Strange memory errors: I'm still not sure what was going on, but we had some strange behavior going on where the application would get itself into states that should not have been possible. In one instance I was able to track it down to a particular variable assignment that simply would not happen, despite the code clearly being executed. (E.g., "int x = 42; x++; Trace.Write(x);" would write 42. More complex than that, but that type of thing.) My wild guess is some kind of memory allocation in Mono, but I don't know. Could have been my code somehow, but I have never seen the problem since switching to a Windows server. * Feature lag: By its very nature, Mono lags behind .NET and it got old being able to use cool 3.5 features (such as LINQ) on other projects and be stuck with 2.0 in Mono. I think Mono's an impressive project, and my hat's off to the folks to have worked so hard on it, but after some experience with it I decided that if I'm going to write stuff in C# I'm doing it on the Microsoft stack. |