Esse artigo faz parte da revista .NET Magazine edição 52. Clique aqui para ler todos os artigos desta edição

img

Clique aqui para ler esse artigo em PDF.imagem_pdf.jpg

 

Tutorial- Boa Idéia

MONO: .NET no Linux

Compatibilidade de código entre plataformas

 

O esforço necessário para por uma aplicação em Winforms existente para rodar com o Mono pode variar bastante. Mesmo tendo muitas aplicações pequenas que rodam no Mono sem nenhuma modificação, muitas aplicações irão demandar certo trabalho da parte do desenvolvedor para rodar tranquilamente no Mono. Este tutorial é destinado a portar uma aplicação open source não trivial, documentando todos os passos a serem seguidos por um desenvolvedor no processo de portar uma aplicação para o Mono, e é baseado no guia “Guide: Porting Winforms Applications” que pode ser encontrado em  http://www.mono-project.com/Guide:

_Porting_Winforms_Applications.

A Aplicação a ser portada

Para este tutorial, a aplicação escolhida para ser portada foi o NClass, uma ferramenta destinada a criar Diagramas de Classes UML muito parecida com a que está contida no Visual Studio 2005. A aplicação é distribuída sob as licenças GPL e LGPL, e não foi escrita tendo em vista ser executada utilizando o Mono. Nós estaremos utilizando o Mono para portar o NClass para ser executado em ambiente Linux. Para a realização deste artigo você irá precisar do código fonte do NClass, que pode ser baixado do site do projeto (http://nclass.sourceforge.

net/downloads.html). A versão a ser utilizada é a versão marcada como source, por conter os arquivos de código-fonte de modo que possamos fazer os ajustes necessários para a migração.

O que é o Mono?

O Projeto Mono é uma iniciativa aberta patrocinada pela Novell que tem como objetivo principal desenvolver uma versão open-source da plataforma de desenvolvimento Microsoft .Net e, com isso, tornar possível o desenvolvimento e execução de aplicações .Net em ambientes Linux, Solaris, Mac OS X, Windows e UNIX.

Instalando o Mono

O processo de instalação do Mono não tem segredo algum. Primeiramente baixe a versão mais recente do Mono através da área de downloads (http://www.mono-project

.com/Downloads) do site do projeto Mono. Ao iniciar a instalação, serão oferecidas opções padrão para cada etapa. Elas são as mais indicadas para serem utilizadas, porém, deve-se apenas ficar atento ao número da porta a ser utilizada pelo servidor Web do Mono, o XSP, o qual poderá ser abordado em uma próxima oportunidade. A porta oferecida como padrão é a 8088, mas pode ser alterada no momento da instalação. Tendo observado atentamente este ponto do processo de instalação, o restante fica por conta do instalador.

 

Começando a migração

Para fins deste tutorial, assumiremos a posição de que o desenvolvedor seja mais familiarizado com o ambiente Windows e Visual Studio 2005 que com ferramentas equivalentes no Linux, sabendo que a aplicação utilizada foi originalmente criada para ambiente Windows.

Dado que estamos utilizando a versão source, nós precisaremos inicialmente carregar a solução do projeto, NClass.sln, no Visual Studio 2005 e compilá-la. Depois, de posse do executável, utilizaremos o MoMA para nos dar uma idéia dos ajustes necessários para a nossa migração.

O MoMA

O MoMA (Mono Migration Analyzer) é uma ferramenta que visa auxiliar o desenvolvedor no processo de migração de aplicações para o Mono e pode ser baixada através do site da própria ferramenta, http://www.mono

-project.com/MoMA.

Esta ferramenta executa uma análise nos assemblies (executáveis e dll’s) da aplicação em busca de trechos de código não suportados pela versão do Mono que está sendo utilizada. Geralmente as versões do Mono e do MoMA coincidem.

A análise que é feita pelo MoMA resulta em um relatório dos erros encontrados nos assemblies que foram analisados de forma que o desenvolvedor possa ser guiado no que diz respeito aos ajustes que deverão ser feitos no código para que a aplicação seja executada corretamente. Necessitaremos executar a análise do MoMA nos segintes assemblies do NClass: NClass.Core.dll, NClass.GUI.Diagram.dll, NClass.NClass.exe e NClass.Translations.dll. Na Figura 1 temos o resultado da execução dos testes do MoMA nos assemblies do NClass.

img ...

Quer ler esse conteúdo completo? Tenha acesso completo