Building a Windows Forms Client Program
Before continuing, be sure to rename DontUseCoreLibDumper.dll
back to CoreLibDumper.dll
. Next, create a new C# file named WinFormsClientApp.cs
. This file defines two types, both of which make use of a few C# 2.0 language features, including static classes and anonymous methods. Listing 2
contains the complete code.
To compile this Windows Forms application using a response file, create a file named WinFormsClientApp.rsp
(shown below) and supply that as an argument to gmcs.exe
as shown previously.
|Figure 6. A Mono-based Windows Forms Application: The figure shows a Windows Forms client that calls CoreLibDumper to dump type members to a text file.|
Finally, run your Windows Forms application via mono.exe
shows the output.
|Author's Note: Although this simple Forms-based UI compiles and executes without error, it is important to point out that as of Mono 1.1.15, the implementation of System.Windows.Forms.dll has not been finalized. To date, "Mono Windows Forms" (or simply MWF, the name given to Mono's System.Windows.Forms.dll assembly) is just about complete. Check out http://www.mono-project.com/WinForms for further details of Mono's Windows Forms project.
The Proof Is In the Pudding
|Figure 7. Linux Version: Here's the WinFormsClientApp.exe running on SuSe Linux with no code changes.|
Up until now, this article has shown you nothing regarding the .NET base class libraries or the C# programming language that you have not already seen from Microsoft's CLR. However, the importance of Mono becomes quite clear when you view Figure 7
, which shows the same exact Windows Forms application running under SuSe Linux.
So, you can compile and execute the same exact C# code shown during this article on Linux (or any OS supported by Mono) using the same Mono development tools. In fact, you can copy the assemblies built on here on Win32 to a new OS and run them directly, with no recompile or code modifications required. Just use the mono.exe
utility on the target system to run the applications.
Exploring Mono with MonoDoc
|Figure 8. The Monodoc Application: The figure shows a sample page from the Mono documentation library.|
To wrap up and give you a path to proceed, Mono ships with a local help system, named Monodoc, which provides documentation of the Mono base class libraries and the C# programming language. You can launch this utility from a Mono command prompt or via the Start | All Programs | Mono For Windows | Applications menu option (see Figure 8).
As you look over the entries within MonoDoc, you will most certainly find a number of incomplete listings, because MonoDoc relies on the Mono community to provide the documentation of the base class libraries (in fact, you can contribute to the documentation from within MonoDoc itself!).
Future articles in this series will dig deeper into the details of Mono development, but this should get you started, and ready for further exploration.