Você está aqui: ASP.NET ::: Dicas & Truques ::: Camada de Lógica de Negócios (BLL - Business Logic Layer)

O que é a Camada de Lógica de Negócios (BLL - Business Logic Layer) e como usá-la em suas aplicações ASP.NET

Quantidade de visualizações: 13443 vezes
O uso da Camada de Lógica de Negócios (BLL - Busines Logic Layer), também chamada de camada de domínio ou camada de regras de negócios é uma das práticas de engenharia de software mais conhecidas nos dias atuais. Ela se situa, na maioria dos casos, entre a camada de apresentação (UI Layer) e a camada de acesso a dados (DAL - Data Access Layer).

Há várias razões para se usar a camada de lógica de negócios. Uma delas é centralizar funcionalidades e facilitar a manutenção e extensibilidade de aplicações. Além disso, a flexibilidade que ganhamos ao adotar esta prática já compensa todo o esforço dispendido em sua implementação.

Suponhamos que você esteja desenvolvendo uma aplicação ASP.NET para cadastro de clientes. Em sua forma mais simples, esta aplicação apresenta os seguintes elementos:

a) Uma tabela no banco de dados chamada clientes (talvez fazendo relacionamento com outras tabelas).

b) Páginas ASP.NET contendo formulários para inserção, listagem, exclusão e atualização de dados. Aqui toda a interação com a base de dados e exibição dos dados relacionados aos clientes são feitas nas próprias páginas (com códigos C#/VB.NET embutidos nas páginas ou em seus arquivos de code-behind).

Há várias desvantagens neste design. Uma delas se torna visível quando precisamos modificar, por exemplo, a string de conexão com o banco e base de dados. No mínimo teremos que efetuar a atualização de quatro páginas. Outra desvantagem é a validação de dados, que deve ser feita, no mínimo, nas páginas de inserção e atualização. E se precisarmos trocar de banco de dados? Consegue imaginar quantos lugares teremos que efetuar modificações?

Vejamos agora a adição das camadas BLL e DAL. A nova aplicação terá os seguintes elementos:

a) Uma tabela no banco de dados chamada clientes (talvez fazendo relacionamento com outras tabelas).

b) Uma classe de negócios (BO - Business Object) que representará cada um dos registros na tabela clientes. Em geral classes de negócios possuem o nome da tabela no singular. Assim, cada registro de uma tabela clientes seria representado por um objeto da classe Cliente.

c) Uma classe de acesso ao banco de dados, já na camada DAL. Em muitas arquiteturas esta classe possui o nome de ClienteDAO. DAO é o padrão de projeto Data Access Object. Esta classe faz a ponte entre os objetos da classe Cliente a tabela clientes no banco de dados.

b) Páginas ASP.NET contendo formulários para inserção, listagem, exclusão e atualização de dados. Agora a interação com a base de dados é feita por meio da DAL (que recebe e retorna objetos da classe Cliente). Ainda há códigos C#/VB.NET embutidos nas páginas ou em seus arquivos de code-behind mas estes desconhecem completamente a existência, tipo e regras de acesso ao banco de dados.

Dito isso, vamos ver como podemos usar a camada de lógica de negócios em uma aplicação ASP.NET? Siga atentamente os passos a seguir:

1) - Comece criando uma nova aplicação ASP.NET. Em seguida crie um diretório chamado App_Code no diretório raiz, no mesmo nível do diretório App_Data. O diretório App_Code é usado para classes utilitárias e de negócios. O código neste diretório é automaticamente compilado quando a aplicação é requisitada pela primeira vez e recompilado sempre que alterações são detectadas.

2) - Crie uma nova classe Cliente dentro do diretório App_Code. Para isso clique com o botão direito no nome do diretório no Solution Explorer e escolha a opção Add New Item. Na janela de diálogo Add New Item selecione Class e dê o nome Cliente.cs para o arquivo. Clique o botão Add. Agora modifique o código desta classe para a versão abaixo:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

using System.Collections.Generic;
using System.Linq;
using System.Web;

public class Cliente{
  private string nome;

  // um método para definir o nome do cliente
  public void setNome(string nome){
    this.nome = nome;
  }

  // um método para obter o nome do cliente
  public string getNome(){
    return this.nome;
  }
}

3) - Agora vamos ver como acessar esta classe de negócios a partir de uma página ASP.NET e seu arquivo de code-behind. Comece criando a página Default.aspx (que contém uma caixa de texto, um botão e dois rótulos):

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

<%@ Page Language="C#" AutoEventWireup="true"  
CodeFile="Default.aspx.cs" Debug="true"
Inherits="_Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
    <title>Estudos ASP.NET</title>
</head>
<body>

<form id="form1" runat="server">
  
<asp:Label ID="Label1" runat="server" Text="Nome do Cliente" 
  AssociatedControlID="txtNome"></asp:Label>  
  
<asp:TextBox ID="txtNome" runat="server" Width="300px"></asp:TextBox>  
  
<asp:Button ID="Button1" runat="server" Text="Cadastrar" 
  onclick="Button1_Click" />  
  
<br /><br />  
  
<asp:Label ID="Label2" runat="server" Text="Resultado"></asp:Label>  
  
</form>

</body>
</html>

4) - Agora implemente o código para o evento Click do botão no arquivo de code-behind Default.aspx.cs:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class _Default : System.Web.UI.Page {
  protected void Button1_Click(object sender, EventArgs e){
    // vamos criar uma nova instância da classe Cliente
    Cliente c = new Cliente();

    // vamos definir o nome do cliente
    c.setNome(txtNome.Text);

    // vamos limpar a caixa de texto e colocar o foco nela para
    // um novo cadastro
    txtNome.Text = "";
    txtNome.Focus();

    // vamos obter o nome do cliente e exibí-lo no rótulo Label2
    Label2.Text = "Você cadastrou o cliente com o nome: " +
      c.getNome();
  }
}

Quando o evento Click do botão ocorre nós criamos uma instância da classe Cliente, chamamos seu método setNome(), fornecendo o conteúdo da caixa de texto e, finalmente, exibimos o nome do cliente no controle Label2 por meio de uma chamada ao seu método getNome().

Neste exemplo vimos apenas uma pequena demonstração do que pode ser feito com o uso da Camada de Lógica de Negócios em suas aplicações ASP.NET. Se você ainda não usa, recomendo que comece desde já. Suas aplicações ficarão muito mais dinâmicas, flexíveis e fácil de realizar manutenções.

Link para compartilhar na Internet ou com seus amigos:

Veja mais Dicas e truques de ASP.NET

Dicas e truques de outras linguagens

Códigos Fonte

Programa de Gestão Financeira Controle de Contas a Pagar e a Receber com Cadastro de Clientes e FornecedoresSoftware de Gestão Financeira com código fonte em PHP, MySQL, Bootstrap, jQuery - Inclui cadastro de clientes, fornecedores e ticket de atendimento
Diga adeus às planilhas do Excel e tenha 100% de controle sobre suas contas a pagar e a receber, gestão de receitas e despesas, cadastro de clientes e fornecedores com fotos e histórico de atendimentos. Código fonte completo e funcional, com instruções para instalação e configuração do banco de dados MySQL. Fácil de modificar e adicionar novas funcionalidades. Clique aqui e saiba mais
Controle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidadesControle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidades
Tenha o seu próprio sistema de controle de estoque web. com cadastro de produtos, categorias, fornecedores, entradas e saídas de produtos, com relatórios por data, margem de lucro e muito mais. Código simples e fácil de modificar. Acompanha instruções para instalação e criação do banco de dados MySQL. Clique aqui e saiba mais

Linguagens Mais Populares

1º lugar: Java
2º lugar: Python
3º lugar: C#
4º lugar: PHP
5º lugar: C
6º lugar: Delphi
7º lugar: JavaScript
8º lugar: C++
9º lugar: VB.NET
10º lugar: Ruby



© 2025 Arquivo de Códigos - Todos os direitos reservados
Neste momento há 34 usuários muito felizes estudando em nosso site.