Você está na página 1de 6

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:

• A camada de interface : UI - namespace UI


• A camada de negócios : BLL - namespace BLL e classe produtoBLL
• A camada de acesso a dados : DAL - namespace DAL e classe produtoDAL

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:

• produtoBLL - contém os métodos das regras de negócio; (namespace BLL)


• produtoDAL - Contém os métodos para acesso a dados no MySQL; (namespace DAL)
• produto - contém a classe Produto; (namespace DTO)
• UI - representa a nossa aplicação Windows Forms;
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:

• DataTable selecionaProdutos() - retorna todos os produtos ;


• novoProduto(Produto produto) - inclui um novo produto;
• alteraProduto(Produto produto) - altera os dados de um produto; a
• excluiProduto(Produto produto) - exclui um produto;
• List<Produto> listaProdutos() - retorna uma lista genérica de produtos;
• Produto listaProdutoPorID(int id) - retorna um único produto;

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:

• MySQL - fundamentos SQL


• ASP.NET - Acessando o MySQL em páginas ASP.NET
• ASP.NET - Conexao com MySQL
• Instalando e usando o ODBC .Net Data Provider
• Posso distribuir o MySQL livremente com minhas
aplicaç~eos VB ?
• Acessando o MySQL
• C# - Acessando MySQL
José Carlos Macoratti

Você também pode gostar