Moonlight: Web applications for all systems
Moonlight is a portable version of Silverlight running on Windows, Linux and MacOS. It provides a framework for developing rich Web application.
It is written in C++ for a third and C# for two-thirds. It depends on Mono, Cairo for the rendering engine, GTK+ for the graphics library.
Under Linux and MacOS, you have just to install the plugin for Firefox to integrate the Mono virtual machine. On Windows you should install Silverlight instead.
Update May 2012:
On May 29, Miguel de Icaza announced the end of development for Moonlight:
Silverlight has not gained much adoption on the web, so it did not become the must-have technology that I thought would have to become.
And Microsoft added artificial restrictions to Silverlight that made it useless for desktop programming.
These days we no longer believe that Silverlight is a suitable platform for write-once-run-anywhere technology.
Version 2.0 is available since Silverlight 3 in December 17, 2009. It is a complete break with version 1.0 then there will be little difference for version 3.
Deep Zoom allows effects of magnifying images.
Other implementations added:
- The video codec Ogg and Dirac are supported.
- The offline mode is partially functional.
- Streaming: definition videos fit the customer equipment to display a fluid image.
It will provide support for the H.264 video codec and AAC.
An agreement was reached between Microsoft and Novell to port Silverlight 4 under Mono, and a version 4 of Moonlight has been developed. In 2012, a beta version is available for download (see below). Note that Silverlight is in 5, but since this is the latest version according to Microsoft, Mono could one day catch it!
C# on Android
The Mono platform has been implemented on Android, rather as a concept proof than to offering production tool. So Java programs can be compiled in C# and be executed by a virtual machine replacing Dalvik. However the programs are linked to system libraries which allows to use the capabilities of a mobile.
The XobotOS system uses Sharpen, a converter from Java to C#.