 VB .NET - Criando uma livraria de classes (DLL)
 VB .NET - Criando uma livraria de classes (DLL)
|  | Nosso objetivo é criar uma livraria de classes (class library) para mostrar os benefícios da reutilização de código e da portabilidade entre muitos programas e interfaces. | 
 Para saber mais sobre o 
assunto leia o artigo :: VB.NET  - Criando 
                        uma DLL
 Para saber mais sobre o 
assunto leia o artigo :: VB.NET  - Criando 
                        uma DLL 
A plataforma .NET permite a criação de DLLs que podemos compartilhar com múltiplos programas e interfaces tornando assim sua utilização um grande trunfo para o desenvolvedor. As DLLs na plataforma .NET são constituídas por tipos, sendo que usaremos o tipo class pois criaremos nossas classes na DLL para termos mais flexibilidade como iremos ver em seguida.
Neste artigo vamos criar uma DLL usando o VB 2005 
Express Edition e em seguida  mostrar que podemos usar essa dll em um outro 
projeto VB.NET , em um projeto C# e em um projeto Web obtendo o mesmo resultado. 
Mãos a obra... 
Criando a livraria de classes - Livraria.dll
Abra o Visual Basic 2005 Express Edition e crie um novo projeto do tipo Class Library com o nome de Livraria através do menu Principal opção File->New Project;

Em seguida altere o nome do arquivo para Livros.vb
|  | 
Agora inclua o seguinte código na classe Livros:
|  | 
Nossa classe Livros possui, além do namespace Macoratti que você pode optar por não usar, 4 propriedades , 1 construtor e 1 método. Uma classe bem simples.
Salve o seu projeto e em seguida clique no menu Principal selecione a opção Build e clique em Build Livraria. Com isto estaremos criando a nossa DLL livraria.dll na pasta bin\release do projeto.
Até agora tudo tranqüilo, não é mesmo, pois vai 
continuar assim...
Usando a DLL - livraria.dll - em um projeto VB.NET
Vamos agora criar um novo projeto no VB 2005 Express Edition para usar a DLL que acabamos de criar.
Crie um novo projeto do tipo Windows Aplication com o nome de usandoLivrariaDLL .
Agora teremos que incluir uma referência ao arquivo livraria.dll para podermos usar a classe Livros criada.
Para isso clique com o botão direito do mouse sobre o nome do projeto e selecione a opção Add Reference...
Na janela Add Reference selecione a aba Browse e localize o arquivo Livraria.dll na pasta bin/release do projeto Livraria clicando no botão OK.
|  | 
Agora no formulário padrão form1.vb inclua o seguinte código:
|  | 
Note que estamos usando a declaração : Imports Livraria
No código declaramos uma variável do tipo Livraria usando o namespace e o construtor da classe Livros para atribuir valores as propriedades da classe.
Encerrando usamos o método exibeLivro para exibir as informações do livro.
Executando a solução no VB 2005 iremos obter o seguinte resultado:

Se dermos uma espiada usando o Object Browser (Menu View ou tecle F2) iremos notar a referência ao Assembly Livraria e a classe Livros exibindo as propriedades e métodos. Se você clicar sobre o assembly Livraria verá o caminho completo do arquivo livraria.dll.
Neste caso estamos usando o Early Binding onde o nosso projeto depende da DLL para ser carregado pois se o arquivo livraria.dll não estiver disponível o nosso projeto nem será carregado.
|  | 
Acima uma visão do Object Browser:
|  Late Binding - 
    Poderíamos usar Late Binding usando o suporte a Reflections da 
    plataforma .NET. Para isso teríamos que copiar o arquivo livraria.dll criado 
    para o mesmo diretório da aplicação  e usar seguinte código para usar a 
    DLL: (Somente para ilustrar) ImportsSystem.Reflection ... Dim livro As Assembly = Assembly.Load("Livraria") Dim md As Object = livro.CreateInstance("Macoratti.Livros") ... md.GetType().InvokeMember("Livros", BindingFlags.InvokeMethod, Nothing, md, New Object() {"teste", "teste", "teste", 1}) Dim resultado As String = md.GetType().InvokeMember("exibeLivro", BindingFlags.InvokeMethod, Nothing, md, Nothing) | 
Usando a DLL em um programa C# criado no SharpDevelop
A grande vantagens de criarmos uma Class Library, que gera um arquivo .dll, é justamente o fato de podermos usar as classes incluídas na nossa DLL usando outra linguagem de programação. No nosso exemplo já mostramos um programa VB.NET usando a nossa DLL vamos agora mostrar um programa feito em C# usando a mesma DLL.
Vamos então criar uma aplicação C# usando o SharpDevelop. Para saber mais sobre o SharpDevelop leia também os meus artigos:
|  O
    SharpDevelop é uma excelente ferramenta para auxiliar programadores a 
    desenvolver aplicações na plataforma Microsoft .NET de maneira ágil e 
    descomplicada. Sharpdevelop é um 
    projeto OpenSource para desenvolver um IDE para a .Net Framework, que 
    permite desenvolver aplicações em C#, VB .Net e em Boo. Além de uma interface leve e intuitiva, encontra-se completamente em nosso idioma, o que facilita a criação de projetos aos usuários inexperientes. Possui vasta compatibilidade, incluindo a linguagem Boo, desenvolvida pelo brasileiro Rodrigo Barreto de Oliveira. Confira os recursos desta poderosa ferramenta: Recursos:  Design 
    de formas para C# e VB.NET.  Conclusão 
    de código para C# e VB.NET (suporte ao CTRL + Barra de Espaço).  Edição 
    de XML.  Inserção 
    automática de código (ALT + Insert).  Conversor 
    de linguagens (VB.NET para C# e vice-versa).  Foi 
    desenvolvido completamente em C#.  Compilação
    out-of-the-box.  Opensource 
    (código aberto).  Analisador 
    de Assembly.  Pré-visualização 
    de documentos em XML.  Suporte 
    a diversos idiomas.  Permite 
    escrever nas linguagens C#, ASP.NET, ADO.NET, XML e HTML.  Possui 
    opções avançadas para os projetos.  Conta 
    com destaque de sintaxe para as linguagens C#, HTML, ASP, ASP.NET, VBScript, 
    VB.NET e XML.  Suporte 
    a modelos de códigos.  É 
    extensível, permite a adição de plugins e ferramentas externas. Fonte : http://baixaki.ig.com.br/download/SharpDevelop.htm | 
Após baixar e instalar o SharpDevelop abra a aplicação e no menu Arquivo selecione a opção Novo e a seguir Solução
|  | 
Em Novo Projeto selecione - Aplicações Windows e em Modelos - Aplicação Windows, informando o nome da aplicação. No exemplo usei o mesmo nome da aplicação VB.NET - usandoLivrariaDLL.
|  | 
Vamos agora incluir uma referência no nosso projeto C# ao assembly livraria.dll gerado anteriormente. Clique com o botão direito sobre o nome da solução e selecione na opção Adicionar Referência;
|  | 
Na janela Adicionar Referência abra a aba Navegador de Assembly .NET e clique no botão Navegar. Em seguida localize o arquivo Livraria.dll e clique em Abrir.

Inclua o código conforme indicado na figura abaixo no método Public MainForm:
|  | 
Executando a aplicação teremos o mesmo resultado do exemplo feito em VB.NET:

Usando a DLL em um programa Web criado no Visual Web Developer Express Edition
Nosso próximo objetivo é usar a DLL criada em uma aplicação web. Para isto vou usar o Visual Web Developer Express Edition que também é grátis.
Abra o VWD e crie um novo site Web via menu File -> New Web Site com o nome de usandoLivrariaDLLWeb

Selecione o formulário padrão Default.aspx e no modo Design inclua um botão de comando conforme a figura abaixo.
|  | 
A seguir teremos que incluir uma referência ao nosso arquivo Livraria.dll. Para isso clique com o botão direito do mouse sobre o nome do projeto e selecione Add Reference e em seguida selecione a aba Browse e localize o arquivo Livraria.dll;

Efetuando uma referência direta a DLL estou garantido que qualquer atualização no projeto da dll estará disponível na web.
Agora inclua o seguinte código no evento Click do botão de comando : (Perceba que é o mesmo código com a mesma sintaxe usada no exemplo da aplicação VB.NET)
| Protected
    Sub btnUsandoLivrariaDLL_Click(ByVal 
    sender As Object,
    ByVal e As System.EventArgs)
    Handles btnUsandoLivrariaDLL.Click 
    Dim livros
    As New Livraria.Macoratti.Livros("ASP, 
    ADO e Banco de dados na Internet", "Macoratti",
    "Visual Books", 35.5) End Sub | 
Antes de executar o projeto falta um pequeno detalhe. Selecione o arquivo Default.aspx e no modo Source inclua a seguinte diretiva na página:
<%@ Assembly Name="Livraria" %>
Executando a página e clicando no botão de comando iremos obter:

Para encerrar o artigo podemos dizer que a utilização de class librarys (dlls) é um mecanismo poderoso que permite além da reutilização de código a portabilidade do mesmo entre diferentes linguagens e interfaces.
O exemplo do artigo criou uma DLL usando uma classe muito simples mas podemos criar aplicações com acesso a dados com classes mais complexas contendo diversos métodos e propriedades.
Gostaria de dizer que não houve uma preocupação com a segurança nem com o controle de versão da DLL visto que ela uma private assembly. Em artigos futuros veremos como podemos compartilhar a nossa DLL usando os recursos da plataforma .NET.
Pegue os projetos usados no artigo aqui:

Até o próximo artigo VB.NET ...
José Carlos Macoratti