segunda-feira, 13 de maio de 2013

Camadas

INTRODUÇÃO

Arquitetura de 3 camadas independentes permite a divisão da troca de arquivos por um SGBD(Sistema de Gerenciamento de banco de dados), sem afetar as regras de negocio da aplicação isso facilita a reusabilidade das classes de negocio em outras aplicações, permite maior flexibilidade na escolha de tecnologias para implementar a aplicação.

As três camadas da arquitetura podem ser vistas e tem os seguintes papéis:
Camada de Apresentação: Esta camada tem a função de implementar uma interface de entrada e saída, para a interação da aplicação com usuário.
Camada de Negócio: Esta camada representa o núcleo da aplicação e é responsável por implementar a lógica de negocio da aplicação.
Camada de Persistência: Esta camada é responsável pela persistência e acesso aos dados da aplicação, ela isola o resto da aplicação do meio do armazenamento usado (Memórias arquivos e aplicações).

O trabalho foi desenvolvido em ASP.NET utilizando o framework 4.0, tomaremos como exemplo uma aplicação web, desenvolvida em sala de aula na disciplina de Programação Web II com MS Ednilson Rodella.

ASP.NETTem como objetivo de criação de sites comerciais e com pequenas aplicações para intranet, A principal ferramenta para o desenvolvimento é o Microsoft Visual Studio, que apresenta excelente produtividade ao permitir uma interface Windows Forms.

CAMADA DE APRESENTAÇÃO
É a camada onde exibiremos informações e coletar dados do usuário.Esta camada é geralmente camada de GUI (Graphical User Interface ) e, no caso de aplicações .NET, oferece conteúdo estático e conteúdo dinâmico personalizado, que pode ser apresentado nos mais variados formatos disponíveis, como HTML, Windows Forms ou XML, para atender aos diferentes tipos de dispositivos cliente, como Desktop PC, celulares e PDAs.
A camada de apresentação é implementada com uso dos componentes visuais da plataformas .NET, como C# e VB.NET.

CAMADA DE NEGÓCIO

Por princípio, regras de negócio são as definições de uma organização, com base em condições específicas. Todas as organizações possuem regras de negócio, não importando o tipo de atividade que exerçam e elas podem ser encontradas em diversos pontos.

No Módulo de Clientes tem a tela de pesquisa que quando colocado um código ou o nome do cliente e clicar em pesquisar ele apresentará todos os clientes com aquele nome ou código em uma Grid, podendo alterar o cadastro do cliente.
Na tela de pesquisa como por exemplo foi colocado o “e” no campo Nome e clicado em pesquisar, ao clicar em alterar ele levará todas as informações para a tela de cadastro
Salvar: Ao salvar é feito todas as validações de campos, verificando se algum está vazio ou com formato errado.
Alterar: Na alteração ele leva todas as informações para a tela de cadastro, sendo necessário salvar novamente ou excluir, se salvar ele será tratado para apenas salvar por cima.
Excluir: Ao clicar em excluir ele chamará uma função EXCLUIR que comunicará com o banco de dados que é a terceira camada..

CAMADA DE PERSISTÊNCIA
Ela é responsável por se conectar ao banco de dados e extrair, inserir e atualizar as informações. É responsável por transformar modelos de Objetos em modelos Relacionais, pois possui casos com banco relacionado.
Em ASP.NET existem 2 formar de acesso usando um framework (DAO e AR) , ou escrevendo SQL próprio.

CONCLUSÃO
Vantagens:
Reduzem complexidade: agrupam componentes e simplificam a comunicação entre eles;
Reduzem dependência/acoplamento: a regra de comunicação evita dependências diretas entre componentes de Camadas diferentes;
Favorecem a coesão: componentes de responsabilidades relacionadas são agrupados;
• Promovem reusabilidade: camadas podem ser reutilizadas em outros sistemas ou podem ser substituídas;
• É um padrão arquitetural conhecido: facilita a comunicação e entendimento entre desenvolvedores.
Desvantagens:
• Limitadas pela tecnologia: algumas regras precisam ser quebradas por limitações tecnológicas.
• Apenas complicam um sistema muito simples: não é qualquer sistema que exige o uso de Camadas;
• Possibilidade de overdose: muitos arquitetos acabam criando Camadas demais e tornando a aplicação extremamente complexa

12 comentários:

  1. Boa tarde,

    Não entendi esses trechos: "Em ASP.NET existem 2 formar de acesso usando um framework (DAO e AR) , ou escrevendo SQL próprio."

    DAO e AR são frameworks?

    "Limitadas pela tecnologia: algumas regras precisam ser quebradas por limitações tecnológicas."

    ?????
    ----
    Apenas complicam um sistema muito simples: não é qualquer sistema que exige o uso de Camadas;

    Não concordo, acredito que por mais simples que seja o sistema, é sempre bom desenvolve-lo em camadas, ganhando tempo mais a frente na manutenção.

    ResponderExcluir
    Respostas
    1. De acordo com o slide do professor Petter, pág. 21, a utilização de camadas aumenta a complexabilidade de sistemas simples. Acredito que o que o grupo quis dizer ( Com base nesse trecho ), é que não é necessário a utilização de camadas em softwares que provavelmente não sofrerão muitas mudanças no decorrer do tempo de utilização. Como você disse, ganhar tempo de manutenção em um sistema que não sofrerá mudanças ( desenvolvido especificamente para uma função ) não será tão vantajoso.

      Excluir
    2. Por mais simples que seja o sistema, sempre é bom desenvolve-lo em camadas, afinal se o seu simples sistema fizer sucesso e você precisar expandi-lo, ficará muito mais fácil o desenvolvimento.

      Excluir
  2. Já ouvi pessoas reclamaram do Desempenho de algumas versões, na hora da migração e tals, mas creio eu que isso acontece quando não têm uma estrutura apropriada ou bem desenvolvida.


    Essa arquiterura não funciona bem nas telas Delphi....., será que é verdade ?

    ResponderExcluir
  3. Daleon , DAO e AR são duas abreviações de dois padrões mais conhecidos quando se usa algum framework para persistência.

    DAO: Data Access Objet.
    AR: Active Record.

    Basicamente o DAO: O padrão DAO é um padrão de projeto que abstrai e encapsula os mecanismos de acesso a dados escondendo os detalhes da execução da origem dos dados.(http://www.macoratti.net/11/10/pp_dao1.htm) <- esse link tem figuras bem explicativas e o conteúdo esta bem fácil de se entender.

    Basicamente o AR: Um objeto que envolve uma linha em uma tabela de banco de dados ou exibição, encapsula o acesso de banco de dados e adiciona lógica de domínio sobre esses dados. Uma abordagem Active Record coloca métodos de persistência diretamente no objeto de entidade.(http://msdn.microsoft.com/pt-br/magazine/dd569757.aspx).

    abaixo 2 links com informações mais detalhadas sobre o assunto:

    http://www.ime.usp.br/~jef/persistencia.pdf
    http://www.macoratti.net/11/10/pp_dao1.htm
    http://msdn.microsoft.com/pt-br/magazine/dd569757.aspx

    ResponderExcluir
    Respostas
    1. Biel, Eu conhecia o padrão DAO, mas não acredito que seja obrigatóriamente usado em conjunto com um framework de persistência.

      Excluir
    2. Biel, o AR funciona igual ao DAO?

      Excluir
  4. Pelo que entendi em algumas pesquisas que fiz, o DAO não necessita obrigatoriamente de um Framework.
    O padrão DAO esta na camada de persistência responsável pelo acesso ao banco de dados, que poderá ser acessado utilizando um Framework ou escrevendo SQL próprio.

    Fabio, segundo o material que encontrei, os dois padrões são totalmente distintos na modelagem da aplicação.
    Segue abaixo o link do material para que entenda melhor esta diferença:

    http://manifesto.blog.br/2.0/Programacao/dao-active-record

    ResponderExcluir
  5. Resumidamente os objetivos da arquitetura em camadas são:
    Modularidade: Dividir a aplicação em módulos mais independentes possível;
    Manutenibilidade: Reduzir o custo de manutenção da aplicação;
    Extensibilidade: permitir que novas funcionalidades sejam adicionadas sem grande impacto nas já existentes;
    Reusabilidade: permitir que classes e componentes sejam reusados em outros módulos da mesma aplicação ou em outras aplicações.

    ResponderExcluir
  6. Acredito que a primeira desvantagem citada é a mais importante e que deve ter muita atenção, pois diz a respeito de limites tecnológicos, uma vez que temos uma comunidade tecnológica de evolução constante.

    Na medida em que novas tecnologias vão surgindo, essas limitações não permitirão o acompanhamento deixando o sistema (com o tempo) ultrapassado.

    ResponderExcluir