Bob Denny - 2010-02-26

The Dakota Tools are written in the C# language. On Windows, this languages uses the .NET framework. On Linux and Mac OS X it uses the Mono Framework. I encourage you to have a look at the Mono web site for general information on the project and its goals. C# is a thoroughly modern language with an incredible array of features and power.

Mono is analogous to Java, in that it is a cross-platform programming system which runs on a compiling virtual machine that is built for the specific platform on which it is installed. I could have done Dakota in Java; I have extensive past experience with Java as I developed the first web server back end in Java, preceding Sun's servlets etc. I like Java, but I like C# a lot more. I've become proficient in the language and framework. Since Mono supports C#, it was a natural choice for me to develop Dakota tools in C#. Mono makes the binaries portable across Linux, Mac OS X and Windows.

I use Visual Studio to do the development of Mono. There is, however, a very nice Eclipse-0like development environment for Linux and Mac OS X called MonoDevelop. At the moment I don't have the SourceForge project open to other developers, but I plan to do that after I get a lttle real world experience with end users and take care of the "big issues" that might come up.

The package documentation Dakota Tools Installation and Operation gives details on how to install the Mono framework on your Linux or Mac OS X system. Some Linux flavors already have Mono 2.4 (or later) installed. Installing the framework is a no-brainer for Mac OS X and those Linux flavors for which installable packages are available. It requires building from sources on other flavors of Linux. I have done this on Scientific Linux and CentOS with no problems at all. Of course, the system must have the GNU development tools already installed in order to do the build.

I hope this info will help you undderstand the thinking that went into using C#/.NET/Mono for Dakota VOEvent Tools.