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 CamaraUma 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.