Mono is a software platform designed to allow developers to easily create cross platform applications. It is an open source implementation of Microsoft's .Net Framework based on the ECMA standards for C# and the Common Language Runtime.
There are several components that make up Mono:
C# Compiler - The C# compiler is feature complete for compiling C# 1.0 and 2.0 (ECMA), and also contains many of the C# 3.0 features.
Mono Runtime - The runtime implements the ECMA Common Language Infrastructure (CLI). The runtime provides a Just-in-Time (JIT) compiler, an Ahead-of-Time compiler (AOT), a library loader, the garbage collector, a threading system and interoperability functionality.
Base Class Library - The Mono platform provides a comprehensive set of classes that provide a solid foundation to build applications on. These classes are compatible with Microsoft's .Net Framework classes.
Mono Class Library - Mono also provides many classes that go above and beyond the Base Class Library provided by Microsoft. These provide additional functionality that are useful, especially in building Linux applications. Some examples are classes for Gtk+, Zip files, LDAP, OpenGL, Cairo, POSIX, etc.
Installing Mono:
Open up the terminal Application > Accessories > Terminal and type following command
Console Hello Worldsudo apt-get install mono-xsp2 mono-xsp2-base
To test the most basic functionality available, copy the following code into a file called hello.cs.
#include<stdio.h>
main()
{
printf("Hello World\n");
printf("My First C Program\n");
}
To compile, use gmcs: gmcs hello.cs
Here compiler will create "hello.exe"
Now execute the hello.ext using command: mono hello.exe
The program should run and output:
Hello Mono World
main()
{
printf("Hello World\n");
printf("My First C Program\n");
}
To compile, use gmcs: gmcs hello.cs
Here compiler will create "hello.exe"
Now execute the hello.ext using command: mono hello.exe
The program should run and output:
Hello Mono World
10 comments:
Hello! Nice blog. I would like to point out that the hello.cs code you have presented is not C#. It is C.
Thanks for this. I do my schoolwork on a netbook so I don't like running the IDE because it slows things down and is cramped on a tiny screen. This is perfect.
Is there a way to execute the CIL binary without type '$ mono hello.exe'? I want to execute just typing './hello.exe' on my Ubuntu.
Write a simple bash script to execute your exe file.
If I write a bash script to execute, it will not be cross platform =/ I want to execute .exe files with the same command in DOS and bash: './hello.exe'
In that case you can write a very simple java application and detect the OS and if it's Dos ... you can lunch .exe from the java application and if it;s linux/Unix .. you can use "mono foo.exe" to start you application.
At this point I can only think of this.
let me know if this works.
At this point, i'm using Python to execute binary file:
if plaftform.system() == 'Linux':
cmd = 'mono hello.exe'
elif platform.system() == 'Windows':
cmd = 'hello.exe'
And i'm using subprocess.Popen to run it in shell.
Thanks for help =)
If you find other way to do it without other language, post here, please.
looks good.
why would I want to introduce a massive pile of crap ( .net ) to my linux box?
The sample program is C, not C#. If you're following this blog post, try this simple program instead:
using System;
using System.Text;
namespace TestApplication
{
class Program
{
static void Main(string[] args)
{
System.Console.WriteLine("Testing");
}
}
}
Post a Comment