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.
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.
Tag: Projeto, Visual Studio 11, C#, Programação, Camadas
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
[CODE]
namespace Projeto.Business
{
public class ClassTeste
{
public String fazendoComunicacao()
{
return "Comunicou";
}
}
}
[/CODE]
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.
[CODE]
using projeto = Projeto.Business;
protected void Page_Load(object sender, EventArgs e)
{
projeto.ClassTeste classeTeste = new projeto.ClassTeste();
Response.Write(classeTeste.fazendoComunicacao());
}
[/CODE]
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.
[CODE]
private void Form1_Load(object sender, EventArgs e)
{
projeto.ClassTeste classeTeste = new projeto.ClassTeste();
MessageBox.Show(classeTeste.fazendoComunicacao());
}
[/CODE]
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. Bom eu fico por aqui e qualquer dúvida pode entrar em contato pelo site pessoal www.mauriciojunior.org.