Mono - Por que usá-lo?

Mono é uma implementação em comunidade aberta do Framework .NET para uma ampla faixa de sistemas operacionais e arquiteturas de CPU (tradução de parte da documentação oficial do Mono). Neste artigo darei uma visão pessoal do projeto Mono. Alguns detalhes técnicos também serão abordados.

[ Hits: 74.201 ]

Por: Gilzamir Ferreira Gomes em 04/02/2005


Usando o Mono



Para instalar o Mono, primeiro precisamos baixar os pacotes. A fonte mais certa é a partir do site oficial do projeto:
Lá você encontrará pacotes para várias distribuições do Linux e para outros sistemas operacionais. Dependendo da distribuição que você estiver utilizando, alguns pacotes extras (que não se encontram no site) podem ser necessários.

Baixei os pacotes para o Fedora Core 1. A última versão até o momento (17 de janeiro de 2005) é a 1.0.5. De acordo com a documentação oficial, o projeto Mono atualmente em exercício inclui o básico:
  • Compilador C#, uma máquina virtual, um mecanismo avançado de geração de código (compilação Just-in-Time (na hora) e pré-compilação de código).
  • Bibliotecas de classes para suportar WebForms ASP .NET, Web Services, base de dados ADO .NET e Windows.Forms.
Há até uma IDE para desenvolvimento, o MonoDevelop. É uma IDE que podemos classificar como boa. O MonoDevelop suporta complementação de código, coloração de sintaxe, gerenciamento de projetos, entre outras características que uma boa IDE pode ter.

Após ter o Mono instalado em seu sistema, para executar um aplicativo escrito no Mono ou mesmo no .NET da Microsoft, podemos chamar via linha de comando o comando "mono" ou "mint". Um programa compilado para rodar na plataforma .NET ou com o Mono não é compilado diretamente para código nativo, mas sim para um código intermediário (tipo os bytecodes gerados por um compilador Java). Dessa forma, o arquivo gerado é que deve ser executado pelo interpretador Mono.

O comando mint representa uma forma adicional de interpretação. A diferença é que o comando mono gera o código nativo para execução e ainda utiliza um compilador JIT, enquanto o mint simplesmente interpreta o código a ser executado.

Além de executarmos aplicações .NET, podemos desenvolver aplicativos que podem rodar sobre o Mono. Podemos utilizar o compilador mcs para compilar códigos escritos em C#. Há uma série de opções para o compilador que podem ser exploradas a partir da documentação oficial. Na próxima página veremos um exemplo funcional de utilização do Mono.

Página anterior     Próxima página

Páginas do artigo
   1. O que é o Mono?
   2. Usando o Mono
   3. Um exemplo funcional
Outros artigos deste autor

C - Include e Makefile

Ser livre, mas manter padrões

Mono e C# (parte 1)

Mono e C# (parte 2)

Leitura recomendada

Manipulação de arquivos PDF no Linux

ePub - O MP3 dos livros

Aprendendo Python - Uma linguagem simples e moderna

SystemRescueCd - Corrigindo o sistema e recuperando dados

Softmodem em Linux com dois kernels

  
Comentários
[1] Comentário enviado por jragomes em 04/02/2005 - 10:19h

Gostei do seu artigo, veio elucidar algumas coisas. Dá pra ver que poderemos usar o famigerado C# e rodar no linux sem problemas, isto é, até qdo a M$ deixar as coisas mais ou menos faceis. Vou arrumar uma maquineta mais potente pra por o Mono pra rodar :-)
Parabéns pelo artigo.!

[2] Comentário enviado por morvan em 04/02/2005 - 15:37h

Boa tarde, kaos666.
Antes de tudo, parabéns pela coragem de abordar um tema meio "tabu" para nós linuxistas militantes - he, he, he.
Kaos, eu teria titulado o seu artigo de "Mono, Porque não Usá-lo?", por uma questão de semântica. Repare que partícula "NÃO" muda bastante o enfoque; nada que esmaeça a qualidade do seu trabalho.
O .NET é uma virada de mesa fenomenal, por parte da M$oft. Houve uma guinada de 180º nos aplicativos, no modo de se programar e de se analisar os algoritmos. Mas, conforme você relata, e tal como preconizam os idealizadores do Mono, podemos e devemos tirar proveito desta empreitada da M$Tiplim!!! Agora, com este modelo de programação, enfim nos parece possível programar para resolver os problemas pontuais. E, é bom que se afirme, aí está a verdadeira implementação de um "esperanto" de programação.

[3] Comentário enviado por removido em 07/02/2005 - 21:07h

Ola kaos666
Gostaria de falalo que esse mono é do .NET so que é so um pouco do codigo .net não é total e alem disso a .net ta cheio de restrições e ainda por cima é tudo registrado portanto que usa da Boa Fé da Microsof se engana ela esta estrategiando pra derrubar o linux a plataforma .NET é toda cercadas de patentes e se usarmos ela pra desemvolvermos programas nos ficamos presos a patentes assim sendo muitissimo prejudicado até os Desenvolvedores do GNome é contra e não vai por na distribuiçao o Criador do Apache tambem é contra essa artimanha tão bem bolada da microsoft e tem outras pessoas de nomes famosos que são contra esse mono e devemos intender que quem colabora com o .NET tambem colabora com o desenvolvimento da Microsoft e nos Linuxistas de bom senso não desejamos que nossa arqui rival que de nada nos ajuda alias nos prejudica e retarda o crecimento do linux segurando e processando empresas que mudam para a Plataforma Linux então GALERA não vamos ser seduzindos por essa terrivel maldição. Como nota gostaria que intendessem e consientisasse.
Leia mais Por Favor http://beam.to/taq/mono.php
Leia mais Por Favor http://beam.to/taq/mono.php
Leia mais Por Favor http://beam.to/taq/mono.php

[4] Comentário enviado por kaos666 em 07/02/2005 - 22:13h

Tohho,
repeito sua opinião, mas acredito que até mesmo a Microsoft pode criar boas tecnologias. O que eu não concordo é com o modelo de negócio da Microsoft e com o monopólio que ela representa. Mas não podemos ignorar o fato que o .NET é uma tecnologia em ascencão e que temos algo semelhante(Mono) para rodar no Linux. O Mono tem um compilador C# completo(sem restrição), o básico, o necessário para falar a verdade, dos namespaces do .NET. Há coisas no .NET da Microsoft que não tem no Mono, assim como há coisas que tem no Mono que não tem no .NET da Microsoft. A Microsoft já liberou o básico, Miguel de Icaza foi lá e com a junto com um equipe começaram o projeto Mono e ainda criaram coisas que só tem no Mono(como construir aplicações com GUI utilizando Gtk). Riscos! Nós vivemos num mundo cheio de riscos, boas intenções... Java não é Open Source e new Free Software, tem patentes também envolvida na tecnologia Java. E tem muita gente que defende o free software que utiliza Java. A maioria das licenças que regem o Mono(versão free) lhe dá o status de free software, como o compilador C# mcs que é regido pela licença. Veja o texto abaixo, tirei do monodoc(que vem junto com o Mono):
-------------------------------
Mono and Licensing

The Mono runtime is licensed under the terms of the GNU LGPL, but it is also available under a commercial license for those who want to add proprietary extensions to the virtual machine. For licensing details, contact mono-licensing@ximian.com.
The Mono Compilers (C#, VB.NET) are licensed under the terms of the GNU GPL.
The Mono class libraries are licensed under the terms of the MIT X11 license, which is a very lax open source license.
-------------------------------------------------------------------------------------
Qual a licença que rege Java?

[5] Comentário enviado por kaos666 em 07/02/2005 - 22:20h

Esqueci de uma coisa: Mono não é uma chance para o Monopólio, mas apenas uma opção que surge para os usuários de outras plataformas que não o famigerado Windows. Devemos utilizar menos palavrões e palavras sem sentido(como maldição) e utilizar mais o raciocínio, pois palavrões mostra apenas a fraqueza emocional daqueles que não são capazes de expressar o que pensam de uma forma mais inteligente.

[6] Comentário enviado por fhrc em 17/02/2005 - 17:12h

Parabens kaos666, pelo artigo. O idéal Eclético é o mais sensato para um profissional de tecnologia. o uso de fanatismo e demagogia futeis não enobrecem e evoluem o linux, apenas denegride a imagem do mesmo.

[7] Comentário enviado por Terramel em 24/02/2005 - 15:04h

O mono com certeza é algo interessante, mas não apoio e espero q ninguém use, pois ele também representa uma grande ameaça ao Linux.
Nem os desenvolvedores do GNOME nem do APACHE são a favor do mono(polio).
Espero q nao só o mono, mas principalmente q o .NET nao va pra frente.
Só vou ser a favor do mono quando a m$ cair, o .NET cair, o Bill Gates morrer e tudo da M$ perder tudo quanto é patente! hehehehe! E ainda assim vou ficar com um pé atrás!

Abraços.

Leonardo Ribeiro Rodrigues da Rocha

[8] Comentário enviado por kaos666 em 26/02/2005 - 20:40h

Caro Leornardo,
como o próprio Miguel me falou (na lista mono-brasil), qualquer software (e não só o Mono) está sujeito ao "ataque" das patentes. Seja ele a própria linguagem C++, Apache, PHP ou o que você quiser. Mono não só é interessante, como também é viável. Se você quer lutar contra o Monopólio, lute contra as patentes, pois enquanto elas existirem (não importa se Mono ou a Microsoft exitem), haverá o perigo da Monopolização (não sei se este termo existe, mas quero me referir ao ato de monopolizar) existirá. Até o Linux que tanto adoramos está sendo ameaçado pelas patentes (isto antes mesmo do Mono existir). Existem milhões de patentes registradas nos EUA (não só patentes de software). A Monsanto patenteia tipos de sementes, a Miracles (empresa Francesa) patenteia sequências de genes (algo q demorou milhões de anos para atingir o estado q existe hoje). Portanto, temos q lutar para as patentes serem extinguidas nos países onde elas são permitidas e lutar para q elas "não se tornem leis" nos países onde elas não existem.
Há a possibilidade de o uso do direito das patentes aumentar a mortalidade me países pobres. E práticas semelhantes entregaram o controle de qualquer bem comum (inclusive a água) sob o controle de grandes corporações. Mono?! Mono é mais uma opção livre que tem o objetivo de atrair programadores do Windows para o ambiente Linux, sem exigir daqueles que passem por uma curva de aprendizagem muito acentuada. Pense no q você fala, pense no todo e não somente num caso específico.


[9] Comentário enviado por removido em 07/12/2005 - 13:41h

Eu prefiro muito mais o Linux do que o Windows, mas não podemos ser fanáticos!
Trabalho em uma empresa (Focusnetworks - http://www.focusnetworks.com.br) que desenvolve sistemas baseados na web. Especificamente eu desenvolvo sistemas de Gestão Comercial e Orçamentária. Programo para Windows Server 2003, IIS 6. Utilizo MS SQLServer, e por aí vai...
Sinceramente, eu preferia trabalhar com PHP, Linux, Apache, MySQL, Postgresql, mas se o melhor que consegui até agora é trabalhar com Windows, e a empresa cresce bastante a cada dia que se passa, então vou estudar para crescer com ela!
Comprei, sábado passado (05/12) um livro sobre C# (PROFESSIONAL C# PROGRAMANDO) de 1072 páginas. Vou estudá-lo para, quem sabe, ano que vem tirar certificação Microsoft.

O que quero dizer é: quando falamos de programação, de TI, temos que pensar no que precisamos naquele momento, quais são as ferramentas que melhor atenderão as nossas necessidades, o cliente tem prefência por alguma tecnologia em especial, e assim por diante...
Se hoje só programamos para Linux e um cliente diz que precisa de um programa em C#, teremos o Mono para nos ajudar a permanecer no Linux, sem deixar de atender a necessidade desse cliente...


Espero que eu tenha sido claro.


Abraços,
Willian
XmlBR - http://www.xmlbr.com.br


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts