Although the combination of Apple and open source continue to take market share from Microsoft on a daily basis, Microsoft is still king of the castle. The slower, less capable, Internet Explorer still reigns supreme on a majority of lists for most popular browser. Despite capable free alternatives from Google and OpenOffice, Microsoft Office continues to be the standard for word processing, spreadsheets, and other related desktop applications. Windows Server has a stranglehold on much of the corporate IT world, and Windows remains the overwhelmingly number one desktop operating system. Combine all these factors together, and it’s no surprise that Microsoft’s .NET framework has an equally large share in the development world. Fortunately, for those Linux or Mac users needing to delve into the .NET world, the Mono project brings .NET programming to non-Microsoft platforms.
Directly from the Mono website:
Mono is a software platform designed to allow developers to easily create cross platform applications. Sponsored by Novell, Mono is an open source implementation of Microsoft’s .NET Framework based on the ECMA standards for C# and the Common Language Runtime. A growing family of solutions and an active and enthusiastic contributing community is helping position Mono to become the leading choice for development of Linux applications.
ASP has been available for Apache and other *nix web servers for quite some time now. However, the Mono platform allows .NET applications to be run on Linux and a way to program applications in the Mono platform that can run under the .NET architecture in Windows (or other systems running Mono).
As of this article, Mono was available in Ubuntu 10.10 and Fedora 13’s repository. Combining repository availability with the various distribution packages makes .NET development on Linux just a few clicks away. Mono also supplies VMWare, Virtual PC, and Live CD images running openSUSE with Mono pre-installed. These images allow you to dip your toes in the Mono waters before making the complete plunge.