Mono Framework
You can run .NET programs on the WML Linux Thin Client using the embedded Mono execution environment.
The .NET framework is similar to Java, in that you write a program in human-readable code, which you then compile into bytecode. This is not the machine runnable object code which traditional compilers generate, but system independent codes which can be executed by an interpreter running on the target. Because the bytecode is half way to being machine code it runs much faster than a normal interpreted language (like php or perl). Bytecode is optimised for interpretation by a machine, rather than interpretation by a human.
Mono is an implementation of the .NET framework. It enables the execution on a Unix/Linux platform of programs compiled on other architectures. With a little care in the libraries that you link with, you can compile a Windows .NET program in Visual Studio and then run it on Linux.
Monodevelop
The Mono project also has an excellent IDE called Monodevelop. A screenshot of monodevelop is shown to the right. Monodevelop features function autocompletion, project management and code highlighting and is itself written in C# to run in the mono execution environment.
Libraries
The look and feel of the programs you write depend to a large part on the toolkit that you use for menus, windows, dialog boxes and so on. In Windows, you almost always use the Windows API, unless you are writing Java programs. With Mono you have a choice of using either the Windows API or the GTK API.
Using the Windows API means that programs you compile in Monodevelop should run on Windows and vice versa. The GTK API is called GTK# and is a wrapper around the GTK+ library which is used in the GNOME desktop, meaning that you get the same look and feel as the GNOME environment.
Your programs can benefit from database access as well. There is an SQL library available for Mono which enables you to interact with the usual range of database servers.
