The introductory link Mono web info has this to say: “Mono is primarily developed on Linux, and most of its users are Linux users, so it is the platform best supported”. It turns out that the news isn’t quite so good here. The accompanying screenshot (Figure 1) shows a partial dump of the various System-prefix assemblies installed by Mono obviously, all these goodies are accessible from any command-line tools you build using the C# compiler.īut what about GUI, I hear you cry? After all, is rather obviously present in that last screenshot. In effect, hello.exe gets passed as an argument to the Mono loader which takes care of the program’s execution.
exe files!Īssuming you’ve still sitting at the Mac, and you don’t use CrossOver, you can run hello.exe by typing the following in a terminal window: mono hello.exe What you can’t do is run it “in the usual way” on your Mac because OS X doesn’t understand. You can take that hello.exe file generated on a Mac, stick it on your PC and run it in the usual way. The key point, if you haven’t twigged, is that the Mono development tools generate executables that are 100% binary compatible with Microsoft’s tools running under Windows. otool) you’ll be told in no uncertain terms that hello.exe isn’t a binary file.
If you try disassembling the code with any of the usual OS X tools (e.g. What’s perhaps a little more surprising (at least from the perspective of an OS X purist) is that. NET class libraries are located in the aforementioned framework directory. First thing to say is that the file is just as tiny as you’d expect from Windows development – around 3Kbytes in this particular case. Type this into a file called hello.cs, compile it with the mcs compiler and – voila! – you’ll end up with an executable called hello.exe. Naturally, the quintessential C# program has got to be a variant on “Hello World” !Ĭonsole.WriteLine ("Hello RegDeveloper") Once you’ve got this far, there’s a lot you can do, provided you’re happy to stick with simple text-mode stuff and command line tools.
This means that after installing Mono, you can fire up a Terminal window and type (e.g.) ‘ mcs’. The various command-line Mono utilities are accessed via aliases which are automatically placed into /usr/bin.
The full path is /Library/Frameworks/amework. Though not blindingly obvious, Mono gets installed as a new framework. Nothing in the /Applications folder either…hmm…. Once you’ve downloaded and installed the framework, you’ll initially find … nothing! It’s at this point that Windows users start missing the Start Menu and it’s highlighted list of freshly installed goodies. For the Mac, this is currently tagged as “Mono 1.2.3_1 Framework - Universal (Stable)”.
Getting started with Mono is relatively straightforward go to the Mono Project main page, follow the ‘download now’ link (cunningly hidden in the extreme top-right of the screen) and you’ll be able to obtain the Mono distribution appropriate to your platform. NET class frameworks which do such a great job of taming the atrocious Win32 API beneath! So, let’s look further. From this perspective, Mono would seem to be ideal not least, because I’m a fan of Microsoft’s. For more background on the project, check out “Mono (software)” on Wikipedia.Īs a keen Mac user, I’m always looking out for new development tools which not only provide a simple, efficient and intuitive API but also – hopefully – offer cross-platform capabilities too.
NET tools (C# compiler, runtime, class frameworks, etc) which work across all supported platforms, including Linux, Windows and Mac OS X. The aim is to build a complete suite of ECMA- compliant. As you’ll no doubt be aware, the Mono Project is an ambitious, open-source initiative, largely coordinated by Novell.