mono

O que é o Projeto Mono?

Em resposta simples, é uma implementação open source da plataforma .NET baseado nos padrões ECMA para a linguagem C#

O que é ECMA? Empresa fundada em 1961, dedicada a padronização de informações e comunicação de sistemas -> http://www.ecma-international.org/

Resumindo para os amantes do linux, o projeto Mono é o C# para Linux!

Isso pode acontecer porque diferentemente do Visual Basic a Microsoft padronizou o C#, linguagem criada por Anders Hejlsberg, criador também do Turbo Pascal e Delphi.


Download do Mono

Você encontra todos os pacotes source aqui, mas muito provavelmente você já terá nos repositórios de sua distro os pacotes pré compilados.

Compiladores

Existe 3 compiladores no projeto mono:

mcs -> Usado para compilar códigos do framework .Net 1.1, implementa C# 1.0 e partes do 2.0 e 3.0
gmcs -> Compila códigos do framework .Net 2.0 e tem total implementação do C# 3.0
smcs -> Usado para compilação para a plataforma Silverlight/Moonlight

Todos os fontes devem possuir a extensão “.cs”, caso contrário o compilador mostrará uma mensagem de erro, ao compilar o seu código ele vira um arquivo com a extensão “.exe”, que você pode executar dentro do próprio Linux usando o comando “mono”

Exemplos:

using System;

public class HelloWorld
{
static public void Main ()
{
Console.WriteLine ("Mono Olá Mundo");
}

}

Para compilar:

$ mcs hello.cs

Ou troque o mcs pelo gmcs, agora para executar você já deve ter adivinhado né?

$ mono hello.exe

Simples assim. O c# também pode usar a biblioteca GTK para criar o front-end, exemplo segue abaixo:

using Gtk;
using System;

class Hello {

static void Main()
{
Application.Init ();

Window window = new Window ("titulo da Janela");
window.Show();

Application.Run ();

}
}
$ gmcs hello.cs -pkg:gtk-sharp-2.0
$ mono hello.cs

O compilador por padrão só referência três assemblies: mscorlib.dll, System.dll e System.XML.dll
Para referenciar bibliotecas extras, nós teremos que especificar manualmente como fizemos a cima, usando o “-pkg:”, você pode pegar todas as bibliotecas do System, por exemplo: “-pkg:dotnet”

Para a sua surpresa, o Mono também compila e executa códigos que utilizam Windows Form, segue outro exemplo:

using System;
using System.Windows.Forms;

public class HelloWorld : Form
{
static public void Main ()
{
Application.Run (new HelloWorld ());
}

public HelloWorld ()
{
Text = "Mono Olá Mundo";
}
}
gmcs hello.cs -pkg:dotnet
mono hello.exe

O Mono também tem uma IDE de desenvolvimento chamada MonoDevelop, muitíssimo interessante, e bastante fácil de utilizar:

MonoDevelop

Existe também o Mono para Web, é um módulo para o Apache chamado “Mod_mono”, para a o suporte ASP.NET em servidores Linux, mas isso vai além da nossa introdução, para mais acesse http://mono-project.com/Mod_mono

Dica

Para finalizar, você também pode ter um ambiente Linux já preparado e totalmente integrado com o Mono, seja para o Desenvolvimento, Worksatation ou Servidores (Mod_mono), utilize o Suse do qual é da Novell e o Projeto Mono também é da Novell, legal isso né?

Suse Linux Enterprise Server Mono Extension -> http://www.novell.com/products/mono/
Suse Linux Enterprise Desktop -> http://www.novell.com/products/desktop/

Links

http://mono-project.com/Main_Page -> Página Oficial do Projeto
http://mono-project.com/Start -> Página com uma coleção de informações para quem está começando
http://www.go-mono.com/docs/ -> Documentação de Bibliotecas do Mono
http://mono-project.com/Guide:_Porting_Winforms_Applications -> Guia de portabilidade de Projetos para o Mono
http://monodevelop.com/ -> Página da IDE MonoDevelop

Posts Relacionados