Lista de Exercícios Resolvidos: Java | Python | VisuAlg | Portugol | C | C# | VB.NET | C++
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: 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 - Revisado

Quantidade 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 correspondente

Quantidade 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
Resposta/Solução:

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 Python

Quantidade 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 segundos

Quantidade 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 Delphi

Quantidade 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

Osmar J. Silva
Programador Freelancer
WhatsApp +55 (062) 98553-6711

Goiânia-GO
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.
José de Angelis
Programador Freelancer
WhatsApp +55 (062) 98243-1195

Goiânia-GO
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
2º lugar: Python
3º lugar: C#
4º lugar: PHP
5º lugar: Delphi
6º lugar: C
7º lugar: JavaScript
8º lugar: C++
9º lugar: VB.NET
10º lugar: Ruby



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