|
Exploring .NET Alternatives
Visual Studio .NET isn't your only choice in .NET development. Learn about the alternative the Mono project offers.
Ximian initiated the Mono project to develop an open source, Linux-based version of the Microsoft .NET development platform. The project's objective is to include key .NET compliant components, including a C# compiler, a common language runtime (CLR) just-in-time (JIT) compiler, and a full suite of class libraries. The hope is for developers to be able to create .NET applications, then run them on Windows or any Mono-supported platform, including Linux and Unix. To understand the vision behind this project and how it fits with .NET, .NET Magazine editor in chief Patrick Meader talked with Miguel de Icaza, cofounder and CTO of Ximian. An excerpt of their conversation follows.
.NET Magazine: What is Mono and how does it fit with the Microsoft .NET initiative?
Miguel de Icaza: It's an implementation of the .NET Framework. It's open source, so we license the compiler and the runtime under the General Public License (GPL). That allows you to run commercial or noncommercial applications with Mono for free, and also allows it to be used with proprietary applications. That means you can do what Microsoft calls CLR hosting to provide the same features, but in this case it's Mono hosting, so you host the Mono runtime in your application.
NM: How is Mono related to the GNOME project?
MI: It shares a lot of objectives of the GNOME project as a platform. Although GNOME is mostly known as a desktop system, it's actually a platform. You have the GNOME development platform for things like the graphical user interface (GUI), the component system, CORBA, XML libraries, and so on that are part of the platform. On top of that, we've built two major components. One is the GNOME desktop, which is what people usually refer to as GNOME. And the GNOME productivity applications are built on top of the GNOME development platform. The platform objective is to be language-neutral, so we use a combination of what we call language bindings. It simply means that when you find an API in C, we follow a set of very strict rules on what the API can use and how the API has to behave so that we can use tools to generate wrappers automatically that allow the API to be used for other programming languages. That allows developers to do various language bindings, including Ada, Scheme, Python, Perl, Fortran, C++, Objective C, Java, and even C#. We want to remain language-neutral because people should have the option of choosing the language they want to use for a project; and that's something we've been doing for the last four years. Another step in that direction was the use of CORBA, which doesn't care what language you use to implement things, as long as you use the same contract both on the consumer and the provider ends.
Back to top
|