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.208 ]

Por: Gilzamir Ferreira Gomes em 04/02/2005


Um exemplo funcional



Se você tiver instalado os pacotes básicos para utilização do Mono (os pacotes mono-core e mono-devel), poderá testar o exemplo abaixo:

Edite o seguinte código num editor de textos qualquer (Emacs, vim ou mesmo no notepad):

using System;
using System.IO;

class ExemploAcesso
{
     public static void Main()
     {
           StreamWriter txtfile = new StreamWriter("saida.txt", true, Encoding.ASCII);
           txtfile.Write("Seu primeiro programa em C# foi executado com sucesso");
           txtfile.Close();
      }
}

Salve o arquivo com o nome Exemplo.cs e o salve em uma pasta que você tenha acesso de leitura e escrita. Depois, abra o console do sistema que você esteja utilizando (no Windows XP, clique em menu iniciar, em programas ou todos os programas, no menu do Mono e abra o console configurado para o Mono) e execute o seguinte comando:

$ mcs Exemplo.cs

Será gerado um arquivo com o nome Exemplo.exe. Para executá-lo, execute o seguinte comando:

$ mono Exemplo.exe

O objetivo do programa é gerar um arquivo denominado saida.txt cujo conteúdo é a mensagem "seu primeiro programa em C# foi executado com sucesso". Se você realmente tiver executado o programa com sucesso, entre no diretório onde você o salvou e abra o arquivo gerado "saida.txt". Se nenhum arquivo com esse nome for encontrado, é porque o programa não foi executado corretamente.

Isso é o básico do básico e qualquer um pode conseguir acompanhar facilmente. No entanto as possibilidades com o Mono são muito amplas e precisamos de um tempo para conseguirmos aproveitar todos os recursos oferecidos.

Em breve estarei abordando o Mono e outras tecnologias na minha home page: www.cadernogeek.hpg.com.br. Ainda não está atualizada (em 17 de Janeiro de 2005), mas lá pelo dia 25 muito código e informação poderá ser baixado desta sagrada home page.

Página anterior    

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

Mono e C# (parte 1)

Mono e C# (parte 2)

Ser livre, mas manter padrões

Leitura recomendada

Instalando o Automatix no Debian Etch

Nagios e Cacti no CentOS 6.x - Instalação, configuração e integração das ferramentas

Controlando o computador pelo celular com conexão VNC

Octave - Programação científica no Linux (parte 2)

Conhecendo e usando o gerenciador de pacotes pacman

  
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