Desenvolvimento - ASP. NET

Independência de Plataforma - Portabilidade a lá .Net

Uma das grandes facilidades que um ambiente gerenciado proporciona é a independência de plataforma. O .Net, como não poderia ser diferente, funciona em qualquer sistema operacional que possua instalado o .Net Framework.

por Fabio Camara



Este artigo foi escrito por Paulo Gomes e Fabio Camara

Uma das grandes facilidades que um ambiente gerenciado proporciona é a independência de plataforma. O .Net, como não poderia ser diferente, funciona em qualquer sistema operacional que possua instalado o .Net Framework.

Atualmente, existem alguns projetos open source que estão criando o framework para outras plataformas Unix Like. Os mais disseminados são: Rotor, DotGnu e Mono.

Rotor

Rotor, também conhecido como "Shared Source Common Language Infrastructure", é o código fonte das implementações submetidas ao ECMA, como o C# e parte do Framework .NET. É importante entender que grande parte da plataforma .Net não foi submetida ao ECMA, como os seguintes recursos:

  • ASP.Net
  • ADO.Net
  • Soap Web Clients
  • Soap Web Servers
  • Xslt/XPath
  • System.Windows.Forms
  • System.EnterpriseServices

Para auxiliar no desenvolvimento, o rotor disponibiliza algumas ferramentas como compiladores, debuggers, assemblers/disassemblers e outros utilitários.

O rotor só é compatível para os sistemas operacionais FreeBSD, MacOS e Windows XP. Até o momento, só existe uma versão do rotor, que é a class libraries compatível com a versão 1.0 das especificações submetidas ao ECMA. Sabendo-se que ambas as especificações (Class Libraries e C#) foram modificadas - é bem possível crer em uma versão 2.0 do rotor.

Maiores informações sobre o rotor em: http://msdn.microsoft.com/net/sscli

DotGnu

O objetivo principal deste projeto é a criação de ferramentas open source que possibilitem a execução de aplicativos .Net.

Inicialmente, a plataforma para utilizar o dotgnu seria Gnu/Linux, no entanto o dotgnu já está funcionando em Windows, FreeBSD, NetBSD, MacOS, Solaris entre outros. Este projeto não se restringe a arquiteturas de computador, sendo suportado hoje em: x86, PPC, ARM, Sparc, s390, Alpha, ia-64, and PARISC.

O foco principal do projeto é portabilidade, permitindo assim que um aplicativo criado no sistema operacional Windows possa ser executado em qualquer outro que contenha o dotgnu instalado.

Este projeto já possui uma implementação do namespace System.Windows.Forms, possibilitando assim a execução de aplicativos Windows Forms. Além disso possui outros namespaces não padronizados no ECMA como System.Drawing e System.Graphics. Abaixo uma imagem ilustra uma aplicação windowsform rodando sobre o sistema operacional Gnu/linux:

Outra informação muito interessante é que já é possível desenvolver e executar webservices com o DotGnu. Hoje já estão disponíveis diversas ferramentas para desenvolvimento como: compiladores, assemblers/disassemblers, utilitários de para mensurar performance entre outras.

Maiores informações sobre o dotgnu em: http://www.dotgnu.org

Mono

O projeto Mono foi criado por Miguel de Icaza e tem inicialmente por objetivo o mesmo que os projetos acima, portabilizar aplicativos .Net em sistemas operacionais Unix-like, facilitando e impulsionando o desenvolvimento de aplicativos visuais em sistemas operacionais Unix-like.

Voltando um pouco na história, lembramos que o windows em seu surgimento, não era muito utilizado entre os usuários finais, até o dia em que a Microsoft lançou o Visual Basic 1. Foi a partir deste momento (marco histórico) que o windows começou a ser mais utilizado.

O Windows hoje é líder de mercado em desktop, pois é o sistema operacional que possui muitos programas e de mais fácil utilização. Tendo isso em mente, Miguel de Icaza criou este projeto para facilitar o desenvolvimento.

Fazendo isso, automaticamente todos os programas desenvolvidos sobre a plataforma .Net passam a serem híbridos, podendo ser executados em qualquer ambiente que possua um framework .NET instalado.

Status do Mono

A versão atual do Mono já é compatível com a versão 1.0 e 1.1 do .NET framework. Também já possui um servidor web para aplicativos asp.net, entretanto ainda não possui nada funcional quanto a windowsforms. As próximas versões do mono seguem o seguinte cronograma:

Maiores informações sobre o mono em: www.go-mono.org e sobre o mono brasil em brasil.redesolbrasil.org.

Conclusão

Com a plataforma .Net você não precisa se preocupar com portabilidade, podendo desenvolver aplicativos inteiros tendo a certeza que irão ser compatíveis com outros sistemas operacionas sem precisar escrever nenhuma linha de código adicional (em muito breve). Outro benefício muito interessante desta plataforma é o desprendimento do client, podendo ele ser um pc, pockect pc, palm, etc..., mas esta já é uma outra conversa...

Fabio Camara, MCP, MCSA, MCAD Charter, MCDBA e MCSD.NET - É Diretor da Architettura Soluções em Tecnologia. Escreveu os livros "Projetos com Windows DNA e .NET", "Dominando o Visual Studio.NET com C#" e "Orientação a Objeto com .NET" dentre outros

Paulo Gomes, MCP e MCAD - Desenvolvedor Sênior em .NET para a Architettura Soluções em Tecnologia.

Fabio Camara

Fabio Camara - MVP VSTS, MCT, MCP, MCSD, MCTS, MCPITP, MCPD, MSF Practitioner, Certified SCRUM Master, Certified ITIL Foundations. Escreveu mais de 15 livros nesta última década. Atua como consultor de produtividade em desenvolvimento de projetos e professor de disciplinas ágeis de engenharia de software. Pode ser localizado no site http://www.fcamara.com.br.