.NET - O padrão Repositório revisitado - II
Neste artigo vamos rever os conceitos relacionados ao padrão repositório com um exemplo prático em uma aplicação ASP .NET MVC 5 usando a linguagem C#. |
Na primeira parte do artigo criamos a solução, e os projetos Web e Dominio da nossa aplicação, e , já definimos a nossa entidade de domínio, o nosso contexto e o repositório usado pela nossa aplicação.
Vamos agora implementar a nossa camada de negócios incluindo um novo projeto chamado Mvc_Repositorio.Negocio em nossa solução e definindo a(s) nossa(s) classe(s) de negócios.
Recursos usados :
Implementando a camada de Negócios (BLL)
Abra o projeto Mvc_Repositorio criado na versão do VS 2013 Express for web do artigo anterior;
Vamos incluir um novo projeto do tipo Class Library em nossa solução.
No menu File clique em Add -> Project e selecione o template Class Library e informe o nome Mvc_Repositorio.Negocio;
A seguir vamos incluir uma referência neste projeto ao projeto Mvc_Repositoriio.Domino.
Clique com botão direito sobre o nome do projeto e a seguir em Add -> Reference;
Selecione o projeto Mvc_Repositorio.Dominio e clique em OK.
Agora vamos criar a classe UsuarioBLL nesse projeto.
No menu PROJECT clique em Add New Item;
Selecione o template class e informe o nome UsuarioBLL.cs
Agora vamos definir os métodos nessa classe que irão implementar os métodos para atender as requisições da camada de apresentação relacionadas a entidade Usuario.
using Mvc_Repositorio.Dominio.Entidades;
using Mvc_Repositorio.Dominio.Repositorio;
using System.Collections.Generic;
using System.Linq;
namespace Mvc_Repositorio.Negocio
{
public class UsuarioBLL
{
IUsuarioRepositorio _usuarioRepositorio;
public UsuarioBLL()
{
_usuarioRepositorio = new UsuarioRepositorio();
}
public List<Usuario> Get_UsuarioInfo(int ID = -1)
{
if (ID == -1)
{
//retorna todos os usuarios
return _usuarioRepositorio.GetTodos().ToList();
}
else
{
//retorna um determinado usuario pelo seu ID
return _usuarioRepositorio.Get(p => p.UsuarioId == ID).ToList();
}
}
public void AdicionarUsuario(Usuario emp)
{
_usuarioRepositorio.Adicionar(emp);
_usuarioRepositorio.Commit();
}
public Usuario Localizar(int? id)
{
return _usuarioRepositorio.Procurar(id);
}
public void ExcluirUsuario(Usuario emp)
{
_usuarioRepositorio.Deletar(c => c == emp);
_usuarioRepositorio.Commit();
}
public void AlterarUsuario(Usuario emp)
{
_usuarioRepositorio.Atualizar(emp);
_usuarioRepositorio.Commit();
}
}
}
|
Na classe UsuarioBLL implementamos métodos para realizar as operações CRUD e selecionar dados usando o Repositorio criado na camada de Dominio.
Eu não implementei um tratamento de exceção nesta classe para deixar o código mais simples. Mas é muito simples implementar isso.
Como exemplo vou usar o método
public void AdicionarUsuario(Usuario emp)
{
try
{
_usuarioRepositorio.Adicionar(emp);
_usuarioRepositorio.Commit();
}
catch
{
throw;
}
}
|
O tratamento é bem simples e não contamina a chamada de origem com erros ocorridos em outras camadas.
Vamos agora iniciar a implementação da camada de interface mas antes vamos abrir o projeto Mvc_Repositorio (a nossa aplicação MVC) e a seguir abrir o arquivo Web.Config da solução.
Nesta arquivo vamos incluir a string de conexão ConexaoUsuarios definida em nossa classe de contexto UsuarioContexto.
Inclua a seção <connectionStrings> conforme mostrada abaixo no arquivo Web.Config:
...
<connectionStrings>
<add name="ConexaoUsuarios" connectionString="Data Source=.\sqlexpress;Initial
Catalog=Cadastro;Integrated Security=True" providerName="System.Data.SqlClient" />
</connectionStrings>
...
|
Pronto ! Agora podemos continuar, e vamos criar agora o controlador UsuarioController na pasta Controllers do projeto Mvc_Repositorio.
Antes temos que incluir uma referência no projeto Mvc_Repositorio aos projetos Mvc_Repositoriio.Domino e Mvc_Repositoriio.Negocio.
Clique com botão direito sobre o nome do projeto e a seguir em Add -> Reference;
Selecione os projetos indicados na figura abaixo e clique em OK.
Agora temos acesso às entidades e ao repositório bem como na camada de negócios.
Vamos criar o controlador.
Clique com o botão direito do mouse sobre a pasta Controllers e a seguir em Add Controller;
Selecione o Scaffold - MVC 5 Controller with views, using Entity Framework -, e clique no botão Add;
Informe o nome UsuarioController, defina o Model Class como Usuario e Data context class como UsuarioContexto e marque Generate views e Use a layout page:
Como isso nosso controlador UsuarioController será criado mas se espiarmos o código iremos notar que ele esta usando a classe de contexto para criar a instância das entidades e acessar os dados.
Precisamos alterar isso de forma que o controlador utilize a nossa camada de negócios e seus métodos.
Na próxima parte do artigo vamos ajustar o código do controlador criado e concluir o nosso projeto.
Porque a lei foi dada por Moisés; a
graça e a verdade vieram por Jesus Cristo.
Deus nunca foi visto por alguém. O Filho unigênito, que está no seio do Pai,
esse o revelou.
João 1:17,18
Veja os
Destaques e novidades do SUPER DVD Visual Basic
(sempre atualizado) : clique e confira !
Quer migrar para o VB .NET ?
Quer aprender C# ??
Quer aprender os conceitos da Programação Orientada a objetos ? Quer aprender o gerar relatórios com o ReportViewer no VS 2013 ? Quer aprender a criar aplicações Web Dinâmicas usando a ASP .NET MVC 5 ? |
Gostou ? Compartilhe no Facebook Compartilhe no Twitter
Referências: