Por que eu devo ler este artigo:O .NET Framework é uma tecnologia consolidada para desenvolvimento de aplicações em plataformas Windows há cerca de 12 anos. Entretanto, muitas vezes é interessante termos a opção de desenvolver aplicações para outras plataformas, como Linux e Mac.

Esse artigo traz a principal opção de desenvolvimento nesse sentido, atualmente: o Projeto Mono, plataforma .NET open source, e sua utilização, além do OmniSharp, conjunto de tecnologias para auxiliar o desenvolvimento .NET em editores de texto como Emacs e Sublime.

Além disso, traz algumas ideias sobre o que esperar do .NET Open Source, anunciado recentemente pela Microsoft.

O .NET Framework é uma das tecnologias de desenvolvimento de aplicações mais utilizadas atualmente. Entretanto, ele acaba sendo popular apenas entre usuários do Windows e outros Sistemas Operacionais da Microsoft, como o Windows Phone.

Isso acaba sendo um problema, pois no desenvolvimento de aplicações, o Windows nem sempre é o elemento central.

De fato, esse é o ponto principal que barra o crescimento do .NET como ferramenta de desenvolvimento. É interessante para desenvolvedores .NET que se possa desenvolver aplicações para Linux, por exemplo, sem a necessidade de aprender uma nova tecnologia.

O grande ponto para o desenvolvimento de uma aplicação de sucesso é a flexibilidade. E, por isso, precisamos saber desenvolver aplicações .NET capazes de executar em qualquer sistema operacional.

Mas como esse objetivo pode ser atingido? Atualmente, o Projeto Mono é a principal opção. Esse projeto consiste em uma implementação Open Source do .NET Framework, podendo ser utilizado em máquinas com diferentes SO’s. Entretanto, recentemente a Microsoft abriu o código do núcleo do .NET Framework, juntamente com algumas outras tecnologias do server-side do mesmo.

O objetivo é fazer os dois projetos convergirem ao longo do tempo, criando apenas um. Ao longo desse artigo, iremos entender como o projeto Mono funciona e em que ele difere do .NET Framework tradicional.

Além disso, veremos como criar aplicações Mono que podem executar em qualquer um dos 3 grandes sistemas operacionais.

O foco desse artigo não é o desenvolvimento de aplicações em si: é dar o ponto de partida para o leitor desenvolver aplicações .NET independentes de plataforma. Iremos trazer o foco para a atualidade, com o projeto Mono, mas também preparar o terreno para o futuro.

Pensando nisso, iremos aprender como preparar o ambiente, no Linux, para o desenvolvimento de aplicações .NET utilizando o Sublime juntamente com o OmniSharp, conjunto de tecnologias para desenvolvimento .NET.

A ideia é que o leitor possa transferir os conhecimentos aplicados ao desenvolvimento com o Mono com facilidade para o desenvolvimento com o próprio .NET, quando este estiver disponível.

.NET Open Source?

Atualmente, a quantidade de software Open Source (código aberto) tem aumentado drasticamente. Trata-se de uma estratégia de desenvolvimento muito interessante, permitindo que milhares de desenvolvedores ao redor do mundo melhorem o software em questão constantemente.

Entretanto, ainda há muito software proprietário. Quando pensamos neles, invariavelmente nossa mente vaga em direção à Microsoft, e isso era uma realidade até pouco tempo atrás, quando a empresa anunciou que o .NET Framework (uma parte dele, ao menos) terá seu código aberto.

O .NET Framework é a plataforma de desenvolvimento da Microsoft, voltada para o Windows e outras tecnologias da empresa, como o Windows Phone e o Azure. A programação de aplicações para ele é realizada utilizando C# ou VB.NET, com preferência para a primeira.

O grande problema da tecnologia é que ela está disponível somente para a plataforma Windows, não oferecendo nenhum tipo de suporte para Linux e Mac OS X, para citar os dois principais concorrentes do Sistema Operacional e carro-chefe da Microsoft.

A Microsoft, entendendo que não há mais para onde crescer sem uma expansão para outros SO’s, anunciou que irá abrir o código do server-side do .NET Framework.

Mas o que exatamente isso significa? Em poucas palavras, é o primeiro passo em direção a criação de um framework universal, que irá rodar as aplicações da mesma forma independentemente do sistema operacional, mais ou menos como o Java funciona atualmente (BOX 1). Há inúmeros pontos nessa estratégia da Microsoft, e iremos expor alguns deles ao longo do artigo.



BOX 1. Java vs .NET

Essa comparação é bastante comum, tendo em vista que se tratam das duas principais tecnologias para desenvolvimento de aplicações do mercado.

O Java funciona através de uma máquina virtual, o JVM (Java Virtual Machine), que executa o aplicativo compilado em Java bytecodes. Basicamente, ele é o fiador da execução de qualquer aplicação Java. O .NET Framework, por sua vez, opera através de uma CLR (Common Language Runtime), linguagem de tempo de execução que executa a aplicação.

A compilação é realizada para essa linguagem intermediária, e o framework faz o resto do trabalho. Podemos notar que os conceitos são diferentes, mas os fins são similares.

O primeiro ponto que precisamos entender é que não é o .NET Framework completo que teve seu código aberto, apenas o “lado do servidor”, ou server-side. As diferenças entre os lados podem ser notadas na Figura 1, da .NET Foundation. Essa fundação é a organização que a Microsoft está utilizando para hospedar o código do .NET Framework.

O que teve o código aberto foi o .NET Core, ou núcleo, que contém os elementos necessários p ...

Quer ler esse conteúdo completo? Tenha acesso completo