Mono is an exciting project sponsored by Novell whose goal is to run .NET code on any platform, including Linux. While Java is very portable cross platforms, .NET code was for a long time restricted to running on Windows. Thanks to the Mono project, the rules of the game are changing. I should add that the guys at Mono I’ve talked to have always been eager to help. They’re also very passionate about what they are building. If you’re interested in Mono, don’t hesitate to ping them.
At Data Applied, we try to write code that runs well on commodity hardware, and is compatible with low-cost software (for example, we support SQL Server, but also MySQL). Running our server code on Mono would mean eliminating any dependency on ASP.NET and therefore on Windows licensing fees. For a long time, we managed to make our server code run on Mono. In the end, however, we failed. Here is why.
1. Code parity problems:
Our data visualization client uses Silverlight technology. Silverlight includes a lean-and-mean subset of the .NET platform. This means that it does not include simple .NET collections (ex: System.Collections.Hashtable), nor simple XML (ex: System.Xml.XmlDocument) classes. Instead, Silverlight developers are expected to use generic collections (ex: System.Collections.Dictionary(TKey, TValue)), and LINQ XML (ex: System.Xml.Linq.XDocument) classes. Read more…