A NETi TECNOLOGIA resolveu instalar e testar a versão 1.2.3.1 do Mono, que promete executar no GNU/Linux aplicativos compilados no Visual Basic 8 .NET. O resultado atendeu as expectativas, sendo assim resolvemos publicar a experiência. O objetivo não é formar uma opinião sobre o produto, pois o suporte do Visual Basic no Mono é um recurso muito recente.
Os programas utilizados neste documento foram escrito em Visual Basic pelo Marcelo Prado e estão disponíveis para download nos links abaixo (Valeu Marcelão)!!!
Como não entendo nada de Visual Basic .NET, envie toda e qualquer dúvida sobre os programas acima para o Marcelo em marceloprado@netitec.com.br. Agora para começar a brincadeira, executaremos NO LINUX o binário criado pelo Visual Studio .NET.
Veja no exemplo abaixo como executar o programa Ola Mundo sobre o Mono:
Já que tudo está funcionando muito bem, partiremos para a segunda parte. Ou seja, executar uma aplicação que utiliza a classe de conexão com o banco de dados Firebird. Neste caso devemos referenciar esta classe no projeto dentro do Visual Studio .NET, veja a ilustração abaixo do nosso amigo Marcelo.
Abaixo a visualização do programa sendo executado no Windows.
Execução do programa ConexaoFirebird no Windows
Provavelmente ao executar o programa dentro da pasta Release, ocorrerá o seguinte erro como no exemplo abaixo:
$ mono ConexaoFirebird.exe
** (ConexaoFirebird.exe:15033): WARNING **: The following assembly referenced from /home/cabelo/ConexaoFirebird.exe could not be loaded:
Assembly: FirebirdSql.Data.Firebird (assemblyref_index=4)
Version: 1.7.1.0
Public Key: fa843d180294369d
The assembly was not found in the Global Assembly Cache, a path listed in the MONO_PATH environment variable, or in the location of the executing assembly (/home/cabelo/).
** (ConexaoFirebird.exe:15033): WARNING **: Could not load file or assembly 'FirebirdSql.Data.Firebird, Version=1.7.1.0, Culture=neutral, PublicKeyToken=fa843d180294369d' or one of its dependencies.
Unhandled Exception: System.IO.FileNotFoundException: Could not load file or assembly 'FirebirdSql.Data.Firebird, Version=1.7.1.0, Culture=neutral, PublicKeyToken=fa843d180294369d' or one of its dependencies.
at <0x00000> <unknown method>
at ConexaoFirebird.My.MyProject+MyForms.get_Form1 () [0x00000]
at ConexaoFirebird.My.MyApplication.OnCreateMainForm () [0x00000]
at Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.OnRun () [0x00000]
at Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.Run (System.String[] commandLine) [0x00000]
at ConexaoFirebird.My.MyApplication.Main (System.String[] Args) [0x00000]
Sem pânico, em resumo este erro informa a ausência da classe referenciada. Como a classe não foi encontrada, podemos resolver este problema copiando o arquivo FirebirdSql.Data.Firebird.dll para a pasta da aplicação ou editando a variável ambiental MONO_PATH.
No meu caso, decidi copiar a dll para o diretório. Veja o exemplo abaixo:
Para finalizar o Marcelo testou com sucesso também uma aplicação utilizando comunicação com sockets, ou seja, comunicação TCP/IP. Volto a mencionar detalhes sobre o Visual Basic é com o Marcelo, este documento tem como principal objetivo mostrar os teste efetuado aqui na empresa sobre o Mono.
[2] Comentário enviado por removido em 16/03/2007 - 10:55h
Ótima matéria
Nota 10.
Muitas empresas utilizam a "desculpa" para a falta de vontade(aka:Preguiça) de migrar para o Linux, colocando a culpa no VB.
com o MONO, sabemos que a migração é possível.
[3] Comentário enviado por snails em 16/03/2007 - 12:58h
Eh...muito show essa noticia....
Corte de lucro no Devel da Microsoft...ahahaha.....puxa...e assim, aos poucos, o Linux vai se tornando um sistema universal, como o Windows....agora so falta os kras da Mono implementa WebServices e os pacotes Mobile pra esse Mono....vixi...ae sim num vai falta mais nada....
Kra, o Cabelo tras essas da onde ?? esse kra...sempre com noticia nova e sempre muito interessante....
[4] Comentário enviado por montanha em 16/03/2007 - 15:46h
Muito bom ver matérias sobre o MONO, nós do solivrepr juntamente com o psl-pr , iniciamos a primeira pós graduação em software livre com enfase em MONO e .Net no ano passado , em Ivaiporã , interior do Pr.
[5] Comentário enviado por sombriks em 16/03/2007 - 18:30h
pra variar, artigo do cabelo, :D
só uma correção:
onde tem:
O Projeto Mono é uma iniciativa da comunidade onde o principal objetivo é desenvolver uma versão open-source da plataforma Visual Studio .NET da Microsoft.
leia-se :
O Projeto Mono é uma iniciativa da comunidade onde o principal objetivo é desenvolver uma versão open-source da plataforma .NET da Microsoft.
eu só não mexi com mono profissionalmente ainda, mas já fuçei um pouquinho e pra webdeveloper vem o xsp e o xsp2, perfeito pra testar suas páginas num webserver; tem c# pra prototipar alguma coisa q futuramente vá ser php então eh show de bola.
[6] Comentário enviado por jragomes em 16/03/2007 - 18:54h
Engraçado, outro ótimo artigo do Cabelo, e me estranha é o fato do conceito do artigo estar em 6.4 (no momento deste post). Me parece que tem gente com inveja e fica dando nota baixa pra um artigo de qualidade.
Em relação ao .Net, foi uma das poucas coisas que a microsoft fez de bom. Documentou tudo que deveria para poder haver implementações de outras linguagens dentro da plataforma .Net. Já vemos trabalhos nesse sentido em Python, PHP e muitas outras.
[8] Comentário enviado por sombriks em 16/03/2007 - 22:15h
Não. Vc pode ter acesso a aPI's que também existem em ambiente win32, mas continua num sistema POSIX de responsa, :D
com realção à nota, acredito que seja normal, se levarmos em conta que .NET/Mono até hoje é uma cousa polêmica (com o Miguel de Icaza dizendo coisas como "seria bom se o GNOME fosse implementado em mono...") dentro do mundo livre. Somos reacionários, devemos adimitir. :P
[11] Comentário enviado por uprogramador em 27/04/2007 - 10:13h
Como desenvolver no mundo Windows gostaria muito de ter uma distribuição tipo LiveCD que permitisse reproduzir os testes deste artigo e desenvolver outros.
Já testei o monolivecd, mas não consegui executar aplicações .net criadas com o Visual Studio.
Parabéns ao desenvolvedores deste artigo e das ferramentas.
Acredito que essas iniciativas atrairão desenvolvedores Windows para o Linux.
[12] Comentário enviado por tula em 20/06/2007 - 00:39h
Amigos,
Fiz um aplicativo de teste com windows forms. Um formulário com vários componentes mas sem nenhum tratamento de evento. Compilei(C# Express) e levei ao fedora 5. Baixei o mono e depois executei # mono meuaplicativo.exe. Uma série de erros ligados aos windows forms apareceram. Não deveria simplesmente abrir o programa? Afinal, aplicativos windows forms funcionam ou não no linux/mono , ou eu fiz algo errado?
[13] Comentário enviado por removido em 22/06/2007 - 22:53h
Tenho minhas duvidas. Foi dito, ou foi o que eu entendi, que o mono foi criado para rodar aplicativos em VB .NET no linux, mas teoricamente ele é capaz de rodar qualquer aplicação desenvolvida e compilada no visual studio.NET, porque qualquer linguagem compilada no visual studio, seja VB C++ ou C#, será uma linguagem única que é interpretada pelo Jit(Just in Time Complier) e então executada. Isso é só uma teoria, mas vale a pena testar.
[14] Comentário enviado por NewWave em 29/12/2008 - 09:03h
Meus parabéns pela iniciativa, cara. Um dia eu espero dar uma grande contribuição, como essa, para o mundo Open Source.
Eu não entendo nada de .NET, mas eu sei que é preciso isso aí pra instalar o maldito programa da sony Ericsson "Wireless Manager" que controla o modem MD300 (claro 3g). Aí eu pergunto: tem como eu rodar esse programa no linux usando o MONO? Sou leigo nesse negócio de VB e .NET. Gostaria de uma luz.
[15] Comentário enviado por ulisses_c em 12/08/2009 - 20:34h
Gente eu sei que estou meio atrasado neste post mas alguem sabe como rodar Visual C# .net 2008 com o linux ja tente tanto com o wine quanto com o mono e não me deixa nem instalar e quando eu tento abrir versão instalada ela nao abre
vlw gente e cabelo este artigo deveria ter tido maior notoriedade quando foi escrito pois concerteza ja haveriam diversas aplicações multiplatafroma.
[16] Comentário enviado por diogo soares em 21/05/2010 - 11:23h
Instalei o MonoDevelop e rodei a aplicação deu o seguinte erro:
Could not Load file or assembly 'Microsoft.VisualBasic, version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The entry point method could not be loaded.