Table of contents

    Sobre o Mono

    Mono, a plataforma de código aberto de desenvolvimento baseada no framework .NET, permite aos desenvolvedores construir aplicações multi-plataforma com maior produtividade. A implementação .NET do Mono é baseada nas padronizações ECMA para o C# e o Common Language Infrastructure.

    Apoiado anteriormente pela Novell, Xamarin e agora pela Microsoft e pela .NET Foundation, o projeto Mono tem uma ativa e entusiástica comunidade de contribuidores. O Mono inclue ferramentas de desenvolvimento e a infraestrutura necessária para rodar aplicações .NET cliente e servidor.

    Os Componentes

    Existem diversos componentes que forma o Mono:

    Compilador C# - O compilador C# do Mono tem todas as funcionalidades das versões do C# 1.0, 2.0, 3.0, 4.0 e 5.0 (ECMA). Uma boa descrição das funcionalidades de cada versão está disponível na Wikipedia.

    Runtime do Mono - O runtime (ambiente de execução) implementa a Common Language Infrastructure (CLI) do ECMA. O runtime prove um compilador Just-in-Time (JIT), um compilador Ahead-of-Time (AOT), um carregador de bibliotecas, o coletor de lixo, o sistema de execução concorrente (threads) e funcionalidade de interoperabilidade com bibliotecas nativas.

    Biblioteca de Classes Base do .NET - A plataforma Mono provê um extenso conjunto de classes que fornece uma fundação sólida para construir aplicações. Estas classes são compatíveis com as classes do Framework .Net da Microsoft.

    Biblioteca de Classes do Mono - O Mono também provê muitas classes que vão acima e além do que a Biblioteca de Classes Base fornecida pela Microsoft. Estes fornecem funcionalidade adicional utéis, especialmente para construir aplicações Linux. Alguns exemplos são de classes para Gtk+, arquivos Zipados, LDAP, OpenGL, Cairo, POSIX, etc.

    Pontos Altos das Capacidades do Mono

    Multi-Plataforma
    Roda em Linux, OS X, BSD, e Microsoft Windows, incluindo hardware x86, x86-64, ARM, s390, PowerPC e muito mais…

    Multi-Linguagem
    Desenvolva em C# 4.5 (incluindo LINQ e dynamic), VB 8, Java, Python, Ruby, Eiffel, F#, Oxygene, Boo e mais…

    Compatibilidade Binária
    Construa sua aplicação em uma implementação no padrão ECMA do Common Language Infrastructuree do C#.

    API Compatível com a Microsoft
    Rode aplicações ASP.NET, ADO.NET, Silverlight e Windows.Forms sem recompilação.

    Código Aberto, Software Livre
    O runtime, compiladores, e bibliotecas do Mono são distribuidos sob a licença MIT.

    Extensiva Cobertura Tecnológica
    Conexões nativas(bindings) e implementações gerenciadas de muitas bibliotecas e protocolos.

    Os Benefícios

    Existem muitos benefícios para quem escolhe o Mono para desenvolver suas aplicações:

    Popularidade - Construido sobre o sucesso do .Net, existem milhões de desenvolvedores com experiência em criar aplicações em C#. Existem dezenas de milhares de livros, websites, tutoriais, e exemplos de código fontepara ajudar com qualquer problema imaginável.

    Programação de Nível Mais Elevado - Todas as linguagens do Mono beneficiam-se das muitas funcionalidade do runtime, como gerenciamento automático de memória, instrospecção (reflection), generics, e threading. Essas funcionalidades permitem que você se concentre em escrever aplicação ao invés de escrever código de infraestrutura.

    Biblioteca de Classes Base - Ter uma extensa biblioteca de classes provê milhares de classes prontas para aumentar a produtividade. Precisa de código de rede ou uma hashtable? Não precisa escrever a sua use a embutida na plataforma.

    Multi-Plataforma - O Mono foi construido para ser multi-plataforma. O Mono roda em Linux, Microsoft Windows, Mac OS X, BSD, Sun Solaris, Nintendo Wii, Sony PlayStation 3, Apple iPhone e Android. Ele também roda em hardware x86, x86-64, IA64, PowerPC, SPARC (32), ARM, Alpha, s390, s390x (32 and 64 bits) e mais. Desenvolvendo em Mono a sua aplicação lhe permite rodar em praticamente qualquer computador existente.

    Common Language Runtime (CLR) - O CLR permite escolher a linguagem de programação que melhor funciona para você, e poder interoperar com código escrito em qualquer outra linguagem CLR. Por exemplo, você pode escrever uma classe em C#, herdar dela em VB.Net, e usar em Eiffel ou F#. Você pode escrever o código para o Mono em uma variedae de linguagens de programação.

    Outros Usos

    Scripting e Embarcar - O runtime do Mono pode ser usado para adicionar funcionalidade de scripting ao embarcá-lo na sua aplicação,para permitir execução de código gerenciado e de scripts na sua aplicação nativa.

    Veja Embarcando o Mono para detalhes sobre como embutir o Mono.

    Veja Scripting com o Mono para estratégias para habilitar scripts na sua aplicação usando o Mono.