Desenvolvimento - C#

Trabalhando com vários projetos dentro da mesma solução

Caro(a) Leitor(a), gostaria de falar hoje sobre como e porque trabalhar com vários projetos dentro de uma mesma solução. Lembrando que alguns gostam de trabalhar e outros não.

por Mauricio Junior



Vou falar e dar as minhas razões para trabalhar com vários projetos dentro da mesma solução mantendo o desacoplamento de regras e acesso a dados.

Hoje se você pega um projeto de qualquer pessoa ou da Microsoft, você vai notar que existem vários projetos dentro da mesma solução e cada um com o seu objetivo organização.

Na verdade a organização é um ponto comum para colocar o seu projeto em várias soluções. Se você gosta do projeto organizado, tanto no código quanto nas classes, então esta é a primeira razão para utilizar vários projetos dentro da mesma solução.

Passando para o próximo ponto, todo código de regra de negócios fica desacoplado da camada de interface, ou seja, qualquer camada de interface pode chamar a regra de negócio e tudo estará funcionando.

Esse desacoplamento possibilita desenvolver software para vários tipos de interfaces diferentes, mantendo a mesma base de dados, classes de regra de negócio, tratamento de erro e envio de e-mail.

O primeiro passo para criar um novo projeto dentro da solução web, form ou qualquer outra plataforma, basta clicar no menu File>> Add>> New Project. Figura 1.

Adicionando um novo projeto

Figura 1. Adicionando um novo projeto.

Depois de escolher a opção de novo projeto, é necessário escolher o tipo de projeto. Se esse projeto for exclusivo de classes de negócios e classes de acesso a dados, o tipo que deve ser escolhido é o Class Library.

A figura 2 mostra que, primeiro escolhe a linguagem de programação ao lado esquerdo e depois o tipo Class Library.

Escolhendo o tipo Class Library

Figura 2 . Escolhendo o tipo Class Library.

Colocar o nome é necessário antes de clicar no botão OK. O nome dado foi Projeto.Business (responsável por acesso a dados e regra de negócio). Depois de clicar OK, o projeto foi adicionado sem qualquer problema. Figura 3.

Projeto novo adicionado

Figura 3. Projeto novo adicionado.

Note que existem dois projetos dentro da Solution chamada WebApplication3. O projeto chamado Projeto. Business e o outro WebApplication3. Um projeto será responsável pela regra de negócio e acesso a dados e o outro a interface.

Se houver outro projeto do tipo Windows Forms utilize o mesmo caminho falado anteriormente, basta adicionar mais um projeto dentro da solução usando os mesmos passos anteriores.

Só que agora o tipo do projeto é diferente, isto é, agora é Windows Forms Application.

Adicionando outro projeto

Figura 4 . Adicionando outro projeto.

Não se esqueça de colocar um nome do projeto.

Agora a nossa solution possui 3 projetos adicionados. Um para regra de negócio e acesso a dados, outro para interface web e outro para Windows Forms. Figura 5.

Solution com três projetos

Figura 5 . Solution com três projetos.

Comunicação

Como é feita a comunicação entre os projetos dentro da mesma solução? Bom, isso é mais fácil que “andar para trás”. A ferramenta Visual Studio 11 nos ajuda de forma surpreendente.

Criei em primeiro lugar uma classe dentro do projeto Projeto.Business chamado ClassTeste. Listagem 1.

Listagem 1 : Classe criada

namespace Projeto.Business
{
    public class ClassTeste
    {
        public String fazendoComunicacao()
        {
            return "Comunicou";
        }
    }
}

Dentro dessa classe criei um método público chamado fazendoComunicacao() que retorna uma string de parâmetro falando que comunicou. O próximo passo é referenciar o um projeto dentro do outro.

Dentro do projeto web, cliquei com o botão direito em cima de References e escolhi a opção Add Reference... Figura 6.

Add Reference

Figura 6. Add Reference.

Apareceu outra tela que, posso escolher os projetos dentro da Solution. Basta apenas marcar o projeto e clicar OK. Figura 7.

Adicionando um projeto

Figura 7. Adicionando um projeto.

O projeto Business foi adicionado dentro do projeto Web. Veja na figura 8 o projeto dentro do outro.

Projeto adicionado

Figura 8 . Projeto adicionado.

Basta agora digitar o código e chamar o método. Listagem 2.

Listagem 2: Chamando o método.

using projeto = Projeto.Business;

        protected void Page_Load(object sender, EventArgs e)
        {
            projeto.ClassTeste classeTeste = new projeto.ClassTeste();
            Response.Write(classeTeste.fazendoComunicacao());
        }

Aproveitei para mostrar uma maneira diferente de usar o projeto. Coloquei primeiro o using atribuindo a uma variável e depois usando a variável.

Veja o resultado da chamada. Figura 9.

Retornando o valor

Figura 9. Retornando o valor.

Peço para que você faça a mesma coisa no projeto Windows Forms. O resultado foi o mesmo. Listagem 3.

Listagem 3:Código Windows Forms.

        private void Form1_Load(object sender, EventArgs e)
        {
            projeto.ClassTeste classeTeste = new projeto.ClassTeste();
            MessageBox.Show(classeTeste.fazendoComunicacao());
        }

A figura 10 mostra o que o método retornou.

Resultado Windows Forms

Figura 10. Resultado Windows Forms.

Isso mostra que tendo um projeto de negócios e as interfaces acessam esse projeto sem qualquer problema.

Mauricio Junior

Mauricio Junior - Formado pela Faculdade Anhanguera, Especialista pela FGV (Fundação Getúlio Vargas), Pós-Graduação em Docência Superior e cursando Mestrado na UNB Engenharia Elétrica; . Tenho 29 anos e possuo sete livros publicados pela editora Ciência Moderna e sou editor do Linha de Código.
Sou Certificado Microsoft MCP, MCAD e MVP, faço parte da comunidade ASPNETI.COM, onde publico artigos, vídeos, ebooks e livros Publico artigos, vídeos e podcast em outras comunidades. Trabalho como Analista de Sistemas / Desenvolvedor na empresa ATP S/A.
Blog:
blog.mauriciojunior.org
Site pessoal: www.mauriciojunior.org