Introdução a bibliotecas de classes no .NET Framework

Durante o desenvolvimento de sistemas, sejam eles desktop, web ou mobile, independente de plataforma ou linguagem, é comum surgir a necessidade de utilizar bibliotecas de terceiros para executar certas funções.

Uma das formas mais utilizadas para realizar a distribuição de tais bibliotecas é através de DLLs (Dynamic Link Libraries, ou Bibliotecas de Vínculo Dinâmico), que dependendo da forma como sejam desenvolvidas, podem também funcionar em várias plataformas, podendo serem importadas por várias linguagens e ferramentas de programação.

Porém, pode haver situações em que se torna necessário compartilhar funções, classes e outros elementos, desenvolvidos por nós, entre nossas próprias aplicações. Nesse caso, o que fazer?

Uma alternativa, que talvez seja a primeira que nos vem à mente é óbvia: copiar o código fonte e colar nos vários projetos onde precisemos de tais funcionalidades. Porém, dependendo da quantidade de código que desejemos compartilhar e da quantidade de locais onde desejamos fazê-lo, fica claro que esta se torna uma tarefa repetitiva e nem um pouco prática.

Para suprir essas necessidades, é possível desenvolver nossas próprias bibliotecas e compartilhá-las posteriormente entre várias aplicações. Essas bibliotecas são chamadas de Class Libraries (Bibliotecas de Classes) e quando compiladas, geram uma DLL que pode ser facilmente importada por diversos tipos de aplicação.

Neste artigo, veremos como criar tais bibliotecas no Visual Studio e como importa-las em diferentes tipos de aplicação. Como exemplo, tomaremos uma situação hipotética onde se tem algumas classes que precisam ser compartilhadas por aplicações web, desktop e mobile, todas na plataforma .NET Framework.

Criando a biblioteca de classes no .NET Framework

No Visual Studio, devemos proceder da mesma forma como é feito para se criar outros tipos de projeto, acessando o menu FILE > New > Project.... Em seguida, selecionamos a linguagem (C#, neste caso) e o template Class Library, conforme ilustra a figura 1.

Criação do projeto da biblioteca
Figura 1: Criação do projeto da biblioteca

Quando criado, o projeto contém apenas uma classe inicial vazia, chamada Class1. Podemos excluir essa classe do nosso projeto e criar as nossas próprias. Para isso, após remover a Class1, cliquemos com a direita sobre o projeto (nesse caso foi nomeado como ClassesAplicacao) e em Add > Class.

Na janela que se abre, vemos que é possível inserir outros tipos de itens, porém, dependendo da forma como desejemos compartilhar essa biblioteca entre as aplicações, esses itens devem ser escolhidos com cautela. Por exemplo, não faz muito sentido inserir um Windows Form em uma biblioteca que será utilizada em uma aplicação ASP.NET Web Forms. Neste artigo utilizaremos apenas classes, que são elementos comuns à maioria dos tipos de projeto disponíveis.

Então devemos dar um nome à classe que estamos inserindo, que neste artigo foi chamada de Cliente. Em seguida, basta pressionar o botão Add, como de costume.

Ao abrir o editor, vamos alterar o código da classe Cliente, deixando-o de acordo com a listagem 1.

Listagem 1: Código da classe cliente

public class Cliente
{
    #region atributos
    private string _nome;
    private string _cpf;
    #endregion

    #region propriedades
    /// <summary>
    /// Nome completo do cliente
    /// </summary>
    public string Nome
    {
        get { return _nome; }
        set { _nome = value; }
    }

    //CPF do cliente
    public string CPF
    {
        get { return _cpf; }
        set { _cpf = value; }
    }
    #endregion

    #region métodos
    /// <summary>
    /// Cria uma nova instância da classe com os dados informados
    /// </summary>
    /// <param name="nome">Nome completo do cliente</param>
    /// <param name="cpf">CPF do cliente</param>
    public Cliente(string nome, string cpf)
    {
        this._nome = nome;
        this._cpf = cpf;
    }
    #endregion
}

Na listagem acima temos uma classe comum, com propriedades e constructor comentados.

Para que este artigo seja o mais prático possível, vamos criar apenas esta classe, mas vale ressaltar que outros itens poderiam ser adicionados à biblioteca da mesma forma.

Agora basta salvarmos tudo que foi feito, e compilarmos nossa biblioteca. Isso pode ser feito através do menu BUILD, utilizando as opções Build Solution ou Build [Nome do projeto], ou ainda clicando com a direita sobre o nome do projeto, no Solution Explorer, e utilizando a opção Build do menu popup.

Feito isso, podemos abrir o diretório onde nosso projeto foi salvo (indicado na tela apresentada na figura 1, no campo Location) e acessar a pasta bin > Debug. Dentro dela estará nossa DLL já compilada, como vemos na figura 3.

Biblioteca compilada em uma DLL
Figura 2: Biblioteca compilada em uma DLL

Importando a biblioteca criada

Com nossa biblioteca pronta para uso, podemos então importa-la em nossas aplicações e utilizar seus elementos, que nesse caso se resumem à classe Cliente.

Vamos então criar uma aplicação do tipo Windows Forms, utilizando o mesmo procedimento que realizamos para criar a Class Library, mas dessa vez selecionando o template Windows Forms Application.

Com o projeto criado, vamos ao Solution Explorer, clicamos com a direita na pasta References e em seguida na opção Add Reference..., conforme mostra a figura 4.

Menu Add Reference
Figura 3: Menu Add Reference

Na janela que se abre, Reference Manager, devemos clicar no botão Browse..., na parte inferior. Será aberta uma janela do Windows Explorer para localização da DLL que queremos importar. Devemos então navegar até o diretório da nossa DLL, visto anteriormente, e selecioná-la.

Em seguida, basta pressionar o botão OK e a referência terá sido criada. Podemos observar isso no Solution Explorer, dentro da pasta References, onde agora aparece a nossa DLL, como vemos na figura 5.

Referência à DLL criada
Figura 4: Referência à DLL criada

Para enfim utilizar a classe Cliente, basta acessar o código do Form1 e começar importando o namespace ClassesAplicacao (nome do namespace da biblioteca), inserindo um comando using abaixo dos que lá já existem, conforme a listagem 2.

Listagem 2: Importando o namespace da biblioteca

using ClassesAplicacao;

Com isso já podemos usar a classe Cliente normalmente em qualquer ponto do form, como no evento Load, por exemplo (listagem 3).

Listagem 3: Evento Load do form

private void Form1_Load(object sender, EventArgs e)
{
    Cliente cli = new Cliente("Fulano", "000.111.222-33");
}

private void Form1_Load(object sender, EventArgs e)

Da mesma forma poderíamos fazer com outras classes, interfaces, etc, que estivessem contidos na nossa DLL. Bem como poderíamos importar, através do mesmo processo, essa DLL em projetos diferentes, como ASP.net e WPF.

Conclusão

Utilizando as bibliotecas de classes, podemos compartilhar funcionalidades entre nossas aplicações e até mesmo distribuir nossas DLLs publicamente, para que possam ser usadas por outros desenvolvedores em seus projetos.

Essa é uma forma prática e bastante profissional de compartilhar e reaproveitar código em projetos .NET Framework

Quaisquer dúvidas, críticas ou sugestões podem ser registradas na seção de comentários, logo abaixo. Até o próximo artigo.

Saiu da DevMedia!

  • Minha primeira Single Page Application com Angular:
    Neste curso você aprenderá a criar uma Single Page Application com o Angular, um dos frameworks JavaScript para criação de aplicações client-side mais utilizados. Para isso, usaremos como cenário um Dashboard, que apresenta um resumo das consultas marcadas, assim como do faturamento de uma clínica médica.
  • 10 técnicas de otimização de consultas SQL:
    Neste artigo serão mostradas algumas técnicas que vão auxiliar na codificação das consultas a fim de obter o melhor tempo de resposta.
  • O que são Servlets?:
    A programação para a Web nem sempre foi a área mais forte do Java. No início, ficávamos restritos a scripts CGI e Applets. Com a criação da Servlet API, no entanto, esse cenário mudou e, como consequência, o Java se tornou a principal tecnologia para desenvolvimento Web.

Saiba mais sobre .NET ;)

  • Como aprender .NET na Prática:
    Neste Guia de Consulta você encontrará conteúdos que abordam na prática o desenvolvimento de aplicações em .NET utilizando seus variados frameworks, como ASP.NET MVC, Web API e Entity Framework.
  • ASP.NET MVC:
    Neste Guia de Referência você encontrará o conteúdo que precisa para aprender a desenvolver aplicações web com o framework ASP.NET MVC e a linguagem C#.
  • ASP.NET Web API:
    Neste Guia de Referência você encontrará o conteúdo que precisa para aprender a desenvolver web services RESTful com o framework ASP.NET Web API e a linguagem C#.
  • Web Services com .NET Framework:
    O artigo introduz um tipo de aplicação Web muito usado - os Web Services - dando o embasamento teórico e sua implementação com o Framework .NET e a linguagem C#. Também faz uma demonstração prática do uso deste tipo de aplicação com o Visual Studio.