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 JuniorVou 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.
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.
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.
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.
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.
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.
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.
Figura 7. Adicionando um projeto.
O projeto Business foi adicionado dentro do projeto Web. Veja na figura 8 o projeto dentro do outro.
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.
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.
Figura 10. Resultado Windows Forms.
Isso mostra que tendo um projeto de negócios e as interfaces acessam esse projeto sem qualquer problema.