C#
- Gerenciamento de banco de dados MySQL - II
Continuando o meu artigo - C# - Gerenciamento de banco de dados MySQL - I - vou mostrar a definição da camada de negócios - Bussiness Logic Layer (BLL) da nossa aplicação. Lembrando que :
Estamos usando a arquitetura em 3 camadas definida assim:
Em uma aplicação em 3 camadas temos uma hierarquia de chamadas onde :
![]() |
A UI chama a BLL que chama a DAL que por sua vez acesso os dados e retorna os objetos;
Nunca deverá haver uma chamada direta da UI para a DAL e vice-versa.(Quando usamos os controles de acesso a dados vinculados no formulário estamos fazendo o acesso direto da camada de interface para a DAL ou banco de dados o que não é uma boa prática.)
Nosso projeto possui a seguinte estrutura:
![]() |
Onde já implementamos a classe produtoDAL na camada DAL.
Vamos agora mostrar a definição da camada BLL onde temos a classe produtoBLL. A classe produtoBLL possui os seguintes métodos:
Conforme é mostrado na figura a seguir:
![]() |
Vejamos o código da classe produtoBLL:
Devemos declarar os seguintes namespaces nos imports:
using
System.Collections.Generic;using
System;using
DAL;using
DTO;using
System.Data;Precisamos da referência a camada DAL para acessar os métodos da classe produtoDAL e da referência a camada DTO para acessar as propriedades da entidade Produto. A referência a Generic deve-se ao fato de estarmos retornando uma lista genérica de produtos no método listaProdutos();
O construtor da classe ProdutoBB esta vazio:
public produtoBLL() {} |
Agora vejamos os métodos:
1- selecionaProdutos() - retorna um datatable com todos os produtos usando o método selectProdutos() da camada DAL;
public
DataTable
selecionaProdutos()
{ DataTable tb = new DataTable(); try{dal = new DAL.produtoDAL();tb = dal.selectProdutos(); } catch (Exception ex){ throw ex;} return tb;} |
2- listaProdutoPorID() - Usada para retornar uma entidade Produto representando um único produto pelo seu código (id) através do método selectProdutoByID() da camada DAL;
public
Produto
listaProdutoPorID(int
id)
{ try{ dal = new produtoDAL();return dal.selectProdutoByID(id); } catch (Exception ex) {throw ex; } } |
3- listaProdutos() - Usada para retornar uma lista de objetos Produto representando uma coleção de produtos usando o método selectListProdutos() da camada DAL;
public
List<Produto>
listaProdutos()
{ try{ dal = new produtoDAL();return dal.selectListProdutos(); } catch (Exception ex) {throw ex; } } |
4- novoProduto(Produto produto) - Usada para incluir um novo produto no estoque usando o método insertProduto() da camada DAL;
public
void novoProduto(Produto
produto){
try{
dal = new DAL.produtoDAL();dal.insertProduto(produto); } catch (Exception ex) {throw ex; } } |
5- updateProduto() - Usada para atualizar os dados de um produto no estoque através do método updateProduto() da camada DAL;
public
void alteraProduto(Produto
produto){
try{
dal = new DAL.produtoDAL();dal.updateProduto(produto); } catch (Exception ex) {throw ex; } } |
6- deleteProduto() - Usada para excluir um produto no estoque via método deleteProduto() da camada DAL;
public
void excluiProduto(Produto
produto){
try{
dal = new produtoDAL();dal.deleteProduto(produto); } catch (Exception ex) {throw ex; } } |
Não estamos efetuando nenhuma validação de negócio nessas classes devido a simplicidade do exemplo mas em um sistema de produção aqui teríamos as validações referente ao negócio como restrições de valores, cálculo de impostos, descontos, etc.
Dessa forma concluímos a definição do código da nossa camada de negócios - BLL - através da implementação dos métodos da classe produtoBLL.
![]() |
Aguarde no próximo artigo a continuação onde irei definir como acessar e apresentar as informações na camada de apresentação - BLL: C# - Gerenciamento de banco de dados MySQL - III
Eu sei é apenas Visual C#, mas eu gosto...
Referências:
José Carlos Macoratti