Interesting thing about Mono/.NET CIL (Common Intermediate Language): the &quot;Lingua Franca&quot; for computer languages. Allows you to write a front-end compiler (C#, Java, etc.) and instead of generating native machine code, you generate code for the intermediate language. So you always map to a single language, then the single language gets mapped to the target OS. We take the IL and generate code that will run on a number of platforms. So today we have very good coverage of languages that you can use with Mono. C# 2.0 (you can use full generics), VB.NET, Java applications - with IKVM which has been incredibly popluar - and a bunch of other languages.
When we were about 70% complete with ASP.NET, ADO.NET, and Windows.Forms 2.0, we could run a lot of applications; however, we didn't really know what people were using, which controls, which bugs actually matter, etc. So, in November 06, we built a tool that people could run on windows, and would allow us to figure out what to implement. So we have developed this. Inspects the byte code, looks at methods, and ships with a definition of everything that Mono has. Generates a report and sends it to our website. Beyond that, the tool provides a roadmap to developers to point them to which parts of their application may need modifications to be enabled to run on Linux.
Cross-Platform .NET: Mono and Moonlight Joseph Hill Product Manager email@example.com
Can I write commercial or proprietary applications that run with Mono?
Yes. The licensing scheme is planned to allow proprietary developers to write applications with Mono.
We use three open source licenses:
The C# Compiler and tools are released under the terms of the GNU General Public License (Moving to MIT X11 in Mono 2.0)
The runtime libraries are under the GNU Library GPL 2.0
The class libraries are released under the terms of the MIT X11 license.
Mono runtime and Mono C# Compiler are available under a proprietary license for those who can not use the LGPL and the GPL in their code.
Safe Harbor Statement The following is intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated into any contract. It is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions. The development, release, and timing of features or functionality described for Novell products remains at the sole discretion of Novell. General Disclaimer This document is not to be construed as a promise by any participating company to develop, deliver, or market a product. Novell, Inc., makes no representations or warranties with respect to the contents of this document, and specifically disclaims any express or implied warranties of merchantability or fitness for any particular purpose. Further, Novell, Inc., reserves the right to revise this document and to make changes to its content, at any time, without obligation to notify any person or entity of such revisions or changes. All Novell marks referenced in this presentation are trademarks or registered trademarks of Novell, Inc. in the United States and other countries. All third-party trademarks are the property of their respective owners.