A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Recife - PE Arquitetura em Camadas PRO.NET. Roteiro Contextualização do problema Descrição da solução: arquitetura em camadas proposta Estudo de caso.

Apresentações semelhantes


Apresentação em tema: "Recife - PE Arquitetura em Camadas PRO.NET. Roteiro Contextualização do problema Descrição da solução: arquitetura em camadas proposta Estudo de caso."— Transcrição da apresentação:

1 Recife - PE Arquitetura em Camadas PRO.NET

2 Roteiro Contextualização do problema Descrição da solução: arquitetura em camadas proposta Estudo de caso Conclusões e trabalhos futuros

3 Contexto Experiência em desenvolvimento de aplicações 3 camadas Aproveitar código gerado pelo Visual Studio.NET Dicas de arquitetura em camadas para.NET de trabalhos antecedentes Facilidades nativas da plataforma.NET Desenvolver aplicações.NET com qualidade e produtividade

4 Requisitos Modularidade –Dividir para conquistar –Separação de conceitos –Reusabilidade –Extensibilidade Facilidade de manutenção –Custos de manutenção representam de 50% a 80% do custo total 1 do software –Mudanças em uma camada não afetam as outras, desde que as interfaces sejam preservadas Produtividade –Oportunidades de geração de código –Aproveitar facilidades da plataforma.NET –Em alguns casos, a produtividade foi mais importante que o purismo OO 1: J. S. Collofello and S. N. Woodfield. Evaluating the effectiveness of reliability- assurance techniques. Journal of Systems and Software, 9(3):191-195, 1989.

5 Arquitetura em camadas GUI Distribuição Fachada Controladores CadastrosEntidades Persistência Serviços Gerenciamento Operacional Essa camada valida as informações recebidas e utiliza a Camada de Negócio para fornecer as respostas. Também oferece serviços distribuídos. Essa camada implementa a lógica de negócio da aplicação. Essa camada executa operações no meio de armazenamento utilizado e recupera dados utilizando serviços externos. Essa camada contém serviços utilizados por outras camadas, como gerenciamento de transações.

6 Características das camadas Propósito geral: –Fornecer suporte para alguma camada superior –Abstrair as camadas superiores de detalhes específicos Propósito específico: –Preocupar-se com os detalhes específicos que serão ‘escondidos’ das camadas superiores

7 Negócio Persistência e Serviços Gerenciamento Operacional Apresentação ASP.NET Windows Forms XML HTML Javascript Distribuição Web Services Apresentação e Distribuição

8 Apresentação Uso de CodeBehind permite separar codificação da apresentação Possibilidade de associar entidades a campos da tela (Databind) Uso de controles para validar os dados de entrada (Validators) Possibilidade de criar componentes visuais e usar componentes de terceiros Referências: –http://www.asp.net/ –http://www.windowsforms.net/

9 Distribuição GUI Distribuição Negócio Persistência Serviços Negócio Persistência e Serviços Apresentação

10 Persistência e Serviços Gerenciamento Operacional Apresentação Camada de Negócio Fachada Controlador CadastroEntidade Apresentação

11 Opções de implementação VantagensDesvantagens XMLSuporte a padrões, Uso de padrões de domínios, Interoperabilidade, Flexibilidade Tipos de dados, Validação, Exibição, Reconstrução, Classificação, Ordenação, Encapsulamento DataSetFlexibilidade, Serialização, Associação de controles de interface, Classificação e Filtro, Integração com XML, Disponibilidade de meta-dados, Extensibilidade Cliente usar objetos DataSet ao invés de objetos de negócio, Alto custo para instanciar e converter tipos, Encapsulamento Typed DataSetLegibilidade, Interface para cliente, Verificações em tempo de compilação Instalação, Extensibilidade, Herança, Alto custo para instanciar Classe personalizada Legibilidade, Encapsulamento, Utéis para modelagem muito complexa, Validação localizada Representa sempre única instancia, Alto custo de implementação (relacionamentos, buscas e classificações), Serialização, Extensibilidade, Instalação Classe personalizada com operações CRUD Encapsulamento, Interface para ClienteRepresenta sempre única instancia, Alto custo de implementação, Outros Entidades - Opções

12 Entidades com Typed DataSet A classe DSCliente é gerada automaticamente A classe Cliente indica quais são as regras de negócios da classe DSCliente As demais classes da aplicação só referenciam a classe Cliente Cada classe Typed DataSet pode encapsular uma ou mais tabelas de um banco de dados relacional Cliente DSCliente RegraNegociosDados

13 Fachada, controladores e cadastros A fachada é o ponto único de acesso a aplicação Cada cadastro contém as regras de negócios relacionadas a operações em um conjunto de entidades do mesmo tipo A fachada e os controladores agrupam regras de negócios de relação de cadastros distintos O controle de transação fica na fachada, caso exista. Se a fachada não existir, fica nos controladores

14 Gerenciamento Operacional Apresentação Negócio RepositoriosDependente IRepositorios ControladoresAdapter Servicos Persistência Serviços Persistência e Serviços

15 Persistência Isola o resto da aplicação do mecanismo de persistência utilizado (uso de interface) Responsável por persistir os Typed DataSets No caso de bancos relacionais, não faz o mapeamento objeto-relacional Conta CadastroContas RepositorioContasObjectStore RepositorioContasAccess RepositorioContasArquivos

16 Apresentação Negócio Persistência e Serviços Gerenciamento Operacional Gerenciamento de Transações Persistência e Serviços

17 Gerenciamento de transações Modo Programático: uso de comandos para iniciar, confirmar e cancelar uma transação. Modo Declarativo: uso de atributos de métodos para indicar que determinados métodos estão dentro de um contexto transacional. Uso do Microsoft Transaction Server (MTS). Modo programáticoModo declarativox

18 Gerenciamento de transações Modo Programático: possui custo maior de implementação e é restrito apenas a gerenciamento de transações. Modo Declarativo: é indicado para gerenciar processos que utilizam fontes de dados que interagem com Microsoft Distributed Transaction Coordinator (DTC). Ocasiona perda de performance. Ex.: Tirar dados de uma fila MSMQ e inseri-los num banco de dados Sql Server. Modo programáticoModo declarativox

19 Gerenciamento de transações Modo Programático GUI Fachada Cadastro 1 IRepositorio 1 GerenciadorTransacoes

20 Gerenciamento de transações Modo Declarativo GUI Fachada Cadastro 1 IRepositorio 1 (Herda de objeto COM) Microsoft Transaction Server

21 Cenários Cadastro: modela operações de inserção, atualização e remoção de uma entidade Transações de negócio: modela uma operação da aplicação, como uma transferência bancária, envio de e-mail etc. Relatório: modela uma consulta a um subconjunto do repositório de dados.

22 Cenário Cadastro GUI Fachada Cadastro 1 IRepositorio 1 Entidade

23 Cenário Transações de negócio GUI Fachada Cadastro 1 IRepositorio 1 Entidade 1 Cadastro 2 IRepositorio 2 Controlador 1 Entidade 2 As classes da esquerda dependem das entidades

24 Cenário Relatórios GUI Fachada Relatorios IRelatorios DSRetornoRelatorio A consulta do relatório pode ser implementada como uma store procedure

25 Padrões de Projeto Abstract Factory – Para instanciação das classes de acesso ao mecanismo de persistência Singleton – Para criar única instância da fachada, fábrica de objetos, XML de configuração Observer – Para registrar novo evento que trata mudanças em um Typed DataSets Facade – Classe Fachada

26 Recife - PE Estudo de Caso

27 IB Subconjunto de módulo administrativo de aplicação bancária Desenvolvido para ilustrar implementação da arquitetura em camadas Não contempla gerenciamento de transações

28 Cenário 1: Cadastros

29 Cenário 2: Transações de negócio

30 Cenário 3: Relatório

31 Recife - PE Considerações finais

32 Conclusões A arquitetura em camadas sugerida traz diversos benefícios ao desenvolvimento de aplicações.NET, como modularidade e manutenabilidade É possível aproveitar facilidades de desenvolvimento da plataforma.NET e do Visual Studio.NET para tornar o desenvolvimento produtivo A arquitetura em camadas deve ser sempre ajustada aos requisitos da aplicação a ser construída

33 Conclusões A arquitetura criada é baseada na criação de documentos e não puramente na criação de objetos A arquitetura em camadas pode sempre ser enriquecida com novas experiências

34 Trabalhos futuros Automatizar geração de partes da arquitetura usando Qualiti Coder Padronizar tratamento de exceções Tratar questões de segurança e concorrência

35 Recife - PE Arquitetura em Camadas PRO.NET


Carregar ppt "Recife - PE Arquitetura em Camadas PRO.NET. Roteiro Contextualização do problema Descrição da solução: arquitetura em camadas proposta Estudo de caso."

Apresentações semelhantes


Anúncios Google