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.NETQuantidade de visualizações: 13050 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: 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 ...... 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): <%@ 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" ...... 4) - Agora implemente o código para o evento Click do botão no arquivo de code-behind Default.aspx.cs: 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 ...... 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: | |
Java ::: Dicas & Truques ::: Strings e Caracteres |
Como excluir uma substring de uma string usando o método delete() da classe StringBuffer do Java - RevisadoQuantidade de visualizações: 14545 vezes |
Em algumas situações nós gostaríamos de excluir parte de uma palavra ou texto, ou seja, remover uma substring de uma string. Para isso nós podemos usar o método delete() da classe StringBuffer da linguagem Java. Lembrando que a classe StringBuffer, do pacote java.lang, é usada em vez da classe String quando precisamos fazer muitas concatenações e adições ou remoções no conteúdo da string. Veja um exemplo de código no qual removemos parte do conteúdo de um StringBuffer: package arquivodecodigos; public class Estudos{ public static void main(String[] args){ StringBuffer frase = new StringBuffer("Gosto muito de Java"); // mostra o conteúdo original System.out.println("Frase original: " + frase); String remover = "muito "; ...... Após a execução deste código nós teremos o seguinte resultado: Frase original: Gosto muito de Java Depois da remoção: Gosto de Java |
C ::: Desafios e Lista de Exercícios Resolvidos ::: Strings e Caracteres |
Exercícios Resolvidos de C - Como retornar o código ASCII associado a um caractere em C - Ler um caractere e retornar o código ASCII correspondenteQuantidade de visualizações: 264 vezes |
Pergunta/Tarefa: Escreva um programa C que pede para o usuário informar um caractere (letra ou número) e mostre o código ASCII correspondente. Sua saída deverá ser parecida com: Informe um caractere: A Você informou o caractere: A O código ASCII correspondente é: 65 Veja a resolução comentada deste exercício em C: #include <stdio.h> #include <stdlib.h> // função principal do programa int main(int argc, char *argv[]){ // variáveis usadas na resolução do problema char caractere; int codigo; // vamos pedir para o usuário informar uma letra, símbolo ou pontuação printf("Informe um caractere: "); // vamos ler o caractere informado ...... O Código Padrão Americano para o Intercâmbio de Informação (do inglês American Standard Code for Information Interchange - ASCII, pronunciado [áski]) é um sistema de representação de letras, algarismos e sinais de pontuação e de controle, através de um sinal codificado em forma de código binário (cadeias de bits formada por vários 0 e 1), desenvolvido a partir de 1960, que representa um conjunto de 128 sinais: 95 sinais gráficos (letras do alfabeto latino, algarismos arábicos, sinais de pontuação e sinais matemáticos) e 33 sinais de controle, utilizando 7 bits para representar todos os seus símbolos. |
Python ::: Dicas & Truques ::: Matemática e Estatística |
Como calcular porcentagem em Python - Como efetuar cálculos de porcentagem em PythonQuantidade de visualizações: 24804 vezes |
Cálculos de porcentagens estão presentes em boa parte das aplicações que desenvolvemos. Porém, há momentos em que a mente trava e não conseguimos lembrar com clareza como estes cálculos são feitos, principalmente em Python. Esta anotação tem o objetivo de ser uma fonte de pesquisa para os momentos em que suas habilidades matemáticas insistirem em continuar ocultas. Ex: 1 - Suponhamos que um produto que custe R$ 178,00 sofra um acréscimo de 15%. Qual o valor final do produto? Veja o código em Python: # Algoritmo que calcula porcentagem em Python def main(): valor = 178.00 # valor original percentual = 15.0 / 100.0 # 15% valor_final = valor + (percentual * valor) # mostra o resultado ...... Ex: 2 - Um produto, cujo valor original era de R$ 250,00, teve um desconto de 8%. Qual foi seu valor final? Veja o código em Python: # Algoritmo que calcula porcentagem em Python def main(): valor = 250.00 # valor original percentual = 8.0 / 100.0 # 8% valor_final = valor - (percentual * valor) ...... Ex: 3 - Em um concurso de perguntas e respostas, um jovem acertou 72 das 90 perguntas apresentadas. Qual foi a porcentagem de acertos? E a porcentagem de erros? Veja o código em Python: # Algoritmo que calcula porcentagem em Python def main(): perguntas = 90.0 acertos = 72.0 # mostra a porcentagem de acertos print("Porcentagem de acertos: {0}%".format((acertos / perguntas) * 100)) ...... Ex: 4 - Um aparelho de CD foi adquirido por R$ 300,00 e revendido por R$ 340,00. Qual foi a porcentagem de lucro na transação? Veja o código em Python: # Algoritmo que calcula porcentagem em Python def main(): valor_anterior = 300.0 # valor anterior novo_valor = 340.0 # valor novo # calcula a porcentagem de lucro # efetua o cálculo porcentagem_lucro = ((novo_valor * 100) / valor_anterior) - 100 ...... Ex: 5 - Uma loja repassa 5% do lucro a seus vendedores. Se um produto custa R$ 70,00, qual o valor em reais repassado a um determinado vendedor? Veja o código em Python: # Algoritmo que calcula porcentagem em Python def main(): valor = 70.0 # valor do produto percentual = 5.0 / 100.0 # 5% # calcula a comissão comissao = percentual * valor ...... |
PHP ::: Dicas & Truques ::: Data e Hora |
Datas e horas em PHP - Como obter o fuso horário em segundosQuantidade de visualizações: 8127 vezes |
Nesta dica veremos como usar date("Z") para retornar o fuso horário da nossa localidade em PHP. Lembre-se de que a função date() com o parâmetro "Z" retorna o fuso horário em segundos. Este valor reflete a diferença em segundos que estamos do Tempo Universal Coordenado (Coordinated Universal Time - UTC), também conhecido como tempo civil, e é o fuso horário de referência a partir do qual se calculam todas as outras zonas horárias do mundo. Veja o código PHP completo para o exemplo: <html> <head> <title>Estudando PHP</title> </head> <body> <?php $fuso_segundos = date("Z"); $horas = ($fuso_segundos / 60) / 60; ...... Ao executar este código nós teremos o seguinte resultado: O fuso horário em segundos é 7200 (2 horas) |
Delphi ::: Dicas & Truques ::: Strings e Caracteres |
Como obter uma substring no início de uma string usando a função AnsiLeftStr() do DelphiQuantidade de visualizações: 12394 vezes |
Em algumas situações precisamos obter uma substring no início de uma string. Em Delphi isso pode ser feito por meio da função AnsiLeftStr(). Esta função requer a string a partir da qual a substring será obtida e a quantidade de caracteres que comporâo a substring. O retorno será uma nova string contendo a substring obtida. Veja o exemplo:procedure TForm1.Button1Click(Sender: TObject); var frase, substring: string; begin frase := 'Programar em Delphi é muito bom'; // vamos obter a substring "Programar" ...... Não se esqueça de adicionar a unit StrUtils no uses do seu formulário. Para questões de compatibilidade, esta dica foi escrita usando Delphi 2009. |
Desafios, Exercícios e Algoritmos Resolvidos de Delphi |
Veja mais Dicas e truques de Delphi |
Dicas e truques de outras linguagens |
Quem Somos |
Programador Freelancer - Full Stack Developer, Professional Java Developer, PHP, C/C++, Python Programmer, wxWidgets Professional C++ Programmer, Freelance Programmer. Formado em Ciência da Computação pela UNIP (Universidade Paulista Campus Goiânia) e cursando Engenharia Civil pela PUC-Goiás. Possuo conhecimentos avançados de Java, Python, JavaScript, C, C++, PHP, C#, VB.NET, Delphi, Android, Perl, e várias tecnologias que envolvem o desenvolvimento web, desktop, front-end e back-end. Atuo há mais de 20 anos como programador freelancer, atendendo clientes no Brasil, Portugal, Argentina e vários outros paises.
Entre em contato comigo para, juntos, vermos em que posso contribuir para resolver ou agilizar o desenvolvimento de seus códigos.
|
Programador Freelancer - Formado em Sistemas de Informação pela Faculdade Delta, Pós graduado em Engenharia de Software (PUC MINAS), Pós graduado Marketing Digital (IGTI) com ênfase em Growth Hacking. Mais de 15 anos de experiência em programação Web. Marketing Digital focado em desempenho, desenvolvimento de estratégia competitiva, analise de concorrência, SEO, webvitals, e Adwords, Métricas de retorno. Especialista Google Certificado desde 2011 Possui domínio nas linguagens PHP, C#, JavaScript, MySQL e frameworks Laravel, jQuery, flutter. Atualmente aluno de mestrado em Ciência da Computação (UFG)
Não basta ter um site. É necessário ter um site que é localizado e converte usuários em clientes. Se sua página não faz isso, Fale comigo e vamos fazer uma analise e conseguir resultados mais satisfatórios..
|
Linguagens Mais Populares |
1º lugar: Java |