Uma introdução sobre
    Frameworks de Desenvolvimento


    Waldemir Cambiucci
    Arquiteto de Soluções        twitter.c...
Agenda
     Ferramentas de produtividade
     Questões sobre frameworks de
     desenvolvimento
     Recursos da Enterpris...
Objetivos da Sessão
     Apresentar uma visão sobre ferramentas de
     produtividade para equipes de
     desenvolvimento...
Produtividade, reuso,
    padronização, automação



4
Busca da produtividade
 Na busca pela produtividade no desenvolvimento de
 software, destacamos o reuso do conhecimento
 a...
Busca da produtividade                         Guias de
                                                         Automação...
Frameworks
     Os frameworks fornecem uma solução inicial para um
     determinado problema, cuja solução normalmente
   ...
Objetivos de um Framework
     Objetivos de um Framework
       Elevar a produtividade no desenvolvimento de software;
   ...
Bibliotecas de classes

                                                   bl                          bl
                ...
Bibliotecas de classes
                                                        cache
                  cache              ...
Frameworks
 Framework de desenvolvimento                               Security
              Caching


                  ...
Tipos de Frameworks
      Exemplos de Frameworks                  Exemplos de Frameworks
      Horizontais                ...
Cenários e Arquiteturas envolvidas
      De acordo com o cenário, frameworks são mais ou
      menos complexos:
          ...
Frameworks
      Um exemplo de framework horizontal:
        Metadata Services




                            Camada de A...
15
Principais recursos
        Tratamento de exceção                                    Enterprise Library 4.1
        Valida...
Tratamento de Exceção
      Desafios
        Como armazenar os detalhes de exceções?
        Como propagar as exceções nas...
Tratamento de Exceção




                       Mensagem de erro
                        para o usuário




18
Tratamento de Exceção
                             Exceção logada no
                                EventViewer




19
Validação
      Desafios
        Transportar/Receber de maneira correta os dados
        fornecidos pelo usuário através d...
Validação



                 Exemplo de validação de
                 dados para interfaces de
                    serviç...
Logging
      Desafios
        Armazenar detalhes do comportamento da aplicação
        Como capturar?

      Recomendaçõe...
Logging

                Escolhendo o Trace
                  Listener para as
               mensagens de Logging




23
Logging
               Definindo o formato
                 de dados para
                    logging no
                 ...
Logging



                 Gravando o Log no
                   EventViewer ou
               TraceListener escolhido



...
Segurança
      Desafios
        Como identificar ameaças na aplicação?
        Qual é o cenário de segurança da minha apl...
Segurança




                  Definindo o provider de
                 autorização que será usado
27
Segurança                      Usando Authorization
                                       Rule Provider




             ...
Segurança


                   Usando Authorization
                      Rule Provider




                 Exemplo de au...
Caching
      Desafios
        Identificar quais os dados que devem ir para o cache, em
        cenários de baixa latência...
Cache local
                   Chamada para o
                    CacheFactory




31
32
Conclusões
      Fique atento aos seguintes desafios no uso de
      frameworks:
        Equipe, adoção, evolução, comunic...
Conclusões
      Apenas alguns recursos da EntLib 4.1 foram
      apresentados nessa sessão.
        Recomenda-se o estudo...
Recursos
      Enterprise Library 4.1 – October 2008
        http://www.microsoft.com/downloads/details.aspx?familyid=1643...
Recursos (cont.)
       ArqBR.Groups
         http://arqbr.groups.live.com/

       ArqCasts no Channel9/Brasil
         h...
© 2008 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be...
Upcoming SlideShare
Loading in...5
×

AAB307 - Frameworks and Application Blocks - wcamb

1,094

Published on

Introdução sobre Frameworks e Blocos de Aplicação
Autor: Waldemir Cambiucci
Publicação: Outubro 2009.

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,094
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
15
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

AAB307 - Frameworks and Application Blocks - wcamb

  1. 1. Uma introdução sobre Frameworks de Desenvolvimento Waldemir Cambiucci Arquiteto de Soluções twitter.com/wcamb Microsoft Brasil blogs.msdn.com/wcamb 1
  2. 2. Agenda Ferramentas de produtividade Questões sobre frameworks de desenvolvimento Recursos da Enterprise Library 4.1 aplicáveis para frameworks Conclusões Recursos 2
  3. 3. Objetivos da Sessão Apresentar uma visão sobre ferramentas de produtividade para equipes de desenvolvimento. Apresentar uma visão sobre frameworks e blocos de aplicação para o desenvolvimento de soluções. 3
  4. 4. Produtividade, reuso, padronização, automação 4
  5. 5. Busca da produtividade Na busca pela produtividade no desenvolvimento de software, destacamos o reuso do conhecimento através de ferramentas como: Guias livres de contexto Guias com contexto Guias de automação Arquiteturas de referência Bibliotecas e Blocos de Aplicação Frameworks de desenvolvimento Fábricas de Software Linguagens de Domínio-Específico Modelos e Linguagens de Modelagem
  6. 6. Busca da produtividade Guias de Automação Ao longo do processo, artefatos e templates são Frameworks construídos e testados, garantindo o uso dos melhores códigos Templates para nossas soluções. Patterns Application Blocks Guidelines 6
  7. 7. Frameworks Os frameworks fornecem uma solução inicial para um determinado problema, cuja solução normalmente requer muito tempo para ser desenvolvida a partir do zero. Frameworks sofisticados normalmente incorporam muitos padrões. É comum os frameworks crescerem, implementando partes que antes eram integrantes da própria solução, oferecendo reuso. 7
  8. 8. Objetivos de um Framework Objetivos de um Framework Elevar a produtividade no desenvolvimento de software; Diminuir o tempo de desenvolvimento; Minimizar erros de codificação; Padronizar componentes, mecanismos de acesso, uso de recursos, passagem de parâmetros, etc.; Tornar a arquitetura final mais previsível e organizada, para todas as camadas atendidas pelo framework. Existem também diversos desafios na construção de frameworks Equipe, versionamento, adoção, evolução, escalabilidade, etc. 8
  9. 9. Bibliotecas de classes bl bl bl bl bl App3 bl App1 bl bl bl bl bl bl bl App4 bl App2 bl bl bl bl bl Domínio de aplicação BL = blocos de aplicação 9
  10. 10. Bibliotecas de classes cache cache acesso a bl logging bl bl dados bl bl App3 logging acesso a bl App1 bl dados bl bl acesso a segurança dados cache bl acesso a bl bl segurança dados bl App4 logging logging cache bl App2 bl bl bl segurança bl config bl segurança Domínio de aplicação Blocos de aplicação implementam componentes ou aspectos comuns para 10 diversos cenários, economizando horas de desenvolvimento.
  11. 11. Frameworks Framework de desenvolvimento Security Caching App App App Logging App App App App Validation Exception Configuration Domínio de aplicação
  12. 12. Tipos de Frameworks Exemplos de Frameworks Exemplos de Frameworks Horizontais Verticais Frameworks para persistência Frameworks para o mercado (Linq, Entity Framework, financeiro; Nhibernate); Frameworks para empresas de Microsoft Foundation Classes (MFC); telefonia (Microsoft Connected Frameworks de Middleware Services Framework 3.0 (MTS/COM+, ODBC); Developer Lite Edition); Windows Presentation Framework Frameworks para Recursos (WPF); Humanos (Microsoft CCF – Customer Care Framework); Windows Communication Framework (WCF); Model-View-Controller (MVC) Sun’s Java Foundation Classes (RMI, AWT, Swing), etc. 12
  13. 13. Cenários e Arquiteturas envolvidas De acordo com o cenário, frameworks são mais ou menos complexos: Tipos de Aplicações Estilos de Arquitetura Componentes de Arquitetura App Arch Guide 2.0 13
  14. 14. Frameworks Um exemplo de framework horizontal: Metadata Services Camada de Apresentação Acesso a dados Tratamento de Monitoração authn, authz Segurança Validação Exceções Caching Logging Camada de Negócios Camada de Persistência A capacidade de evoluir de forma modular e dinâmica é um grande benefício do uso de frameworks. 14
  15. 15. 15
  16. 16. Principais recursos Tratamento de exceção Enterprise Library 4.1 Validação Logging Segurança Caching Enterprise Library 4.1 - October 2008 http://www.microsoft.com/downloads/details.aspx?familyid= 1643758B-2986-47F7-B529-3E41584B6CE5&displaylang=en Hands-On Labs for Enterprise Library 4.1 – March 2009 http://www.microsoft.com/downloads/details.aspx?familyid=AB3F2168-FEA1-4FC2-B40C- 7867D99D4B6A&displaylang=en 16
  17. 17. Tratamento de Exceção Desafios Como armazenar os detalhes de exceções? Como propagar as exceções nas camadas da aplicação? Recomendações Identifique os blocos críticos de código Busque revelar os detalhes dos problemas 17
  18. 18. Tratamento de Exceção Mensagem de erro para o usuário 18
  19. 19. Tratamento de Exceção Exceção logada no EventViewer 19
  20. 20. Validação Desafios Transportar/Receber de maneira correta os dados fornecidos pelo usuário através das camadas. Recomendações Assuma que todo input requer atenção Valide os dados conforme tipo, tamanho, formato, limites, etc. Considere existir a validação de inputs na camada de apresentação. 20
  21. 21. Validação Exemplo de validação de dados para interfaces de serviços em WCF 21
  22. 22. Logging Desafios Armazenar detalhes do comportamento da aplicação Como capturar? Recomendações Utilize sempre que possível os recursos disponíveis na plataforma-alvo, evitando o desenvolvimento duplicado. Identifique os pontos críticos para a coleta de informaçõe. Avaliar a necessidade de logging síncrono ou assíncrono. Soluções assíncronas são mais indicadas para cenários de baixa latência, evitando a espera pelo retorno da ação de logging. 22
  23. 23. Logging Escolhendo o Trace Listener para as mensagens de Logging 23
  24. 24. Logging Definindo o formato de dados para logging no EventViewer 24
  25. 25. Logging Gravando o Log no EventViewer ou TraceListener escolhido 25
  26. 26. Segurança Desafios Como identificar ameaças na aplicação? Qual é o cenário de segurança da minha aplicação? Estudo do Modelo STRIDE Spoofing, Tampering, Repudiation, Information), Denial of Service (D.o.S.), Elevation of privilege Recomendações Identifique as ameaças da aplicação Use o modelo STRIDE como referência para essa análise. Com as ameaças identificadas, desenvolver o plano de mitigação e patterns de segurança que serão aplicados. A Enterprise Library 4.1 ajuda em aspectos de segurança, 26 autenticação e autorização.
  27. 27. Segurança Definindo o provider de autorização que será usado 27
  28. 28. Segurança Usando Authorization Rule Provider Definindo rules de usuários e métodos autorizados 28
  29. 29. Segurança Usando Authorization Rule Provider Exemplo de autorização de usuário e rules 29
  30. 30. Caching Desafios Identificar quais os dados que devem ir para o cache, em cenários de baixa latência. Recursos disponíveis Enterprise Library 4.1 Velocity – Camada de cache unificado para aplicações Recomendações Identificar quais os dados mais indicados para a camada de cache Armazenar os dados mais usados pela aplicação. 30
  31. 31. Cache local Chamada para o CacheFactory 31
  32. 32. 32
  33. 33. Conclusões Fique atento aos seguintes desafios no uso de frameworks: Equipe, adoção, evolução, comunicação, cenários… Ao construir um framework, identificar os tipos de aplicação e cenários envolvidos: Avaliar os vários componentes de software que serão suportados, como caching, validação, logging, etc… Se você já possui um framework operacional, avaliar as novas bibliotecas disponíveis. Velocity, LINQ, .NET RIA Services, Enterprise Library 4.1, .NET 3.5 SP1, etc. 33
  34. 34. Conclusões Apenas alguns recursos da EntLib 4.1 foram apresentados nessa sessão. Recomenda-se o estudo do Hands-on Labs para complementar as questões aqui apresentadas. A EntLib 4.1 não é apenas indicada para cenários de frameworks de desenvolvimento Avaliar seu uso para aplicações que reconheçam a necessidade de camadas de caching, validação, segurança, tratamento de exceção, etc. 34
  35. 35. Recursos Enterprise Library 4.1 – October 2008 http://www.microsoft.com/downloads/details.aspx?familyid=1643758B- 2986-47F7-B529-3E41584B6CE5&displaylang=en Hands-On Labs for Enterprise Library 4.1 – March 2009 http://www.microsoft.com/downloads/details.aspx?familyid=AB3F2168- FEA1-4FC2-B40C-7867D99D4B6A&displaylang=en Microsoft .NET RIA Services May 2009 Preview http://www.microsoft.com/downloads/details.aspx?displaylang=en&Fa milyID=76bb3a07-3846-4564-b0c3-27972bcaabce#filelist Microsoft Project Code Named “Velocity” Community Technology Preview 3 (CTP3) http://www.microsoft.com/downloads/details.aspx?FamilyId=B24C3708- EEFF-4055-A867-19B5851E7CD2&displaylang=en 35
  36. 36. Recursos (cont.) ArqBR.Groups http://arqbr.groups.live.com/ ArqCasts no Channel9/Brasil http://channel9.msdn.com/brasil/ ebook Arquitetura de Soluções http://blogs.msdn.com/wcamb/archive/2009/10/01/ebook- sobre-arquitetura-de-solu-es.aspx Centro de Arquitetura MSDN http://msdn.microsoft.com/pt-br/architecture/default.aspx 36
  37. 37. © 2008 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION. 37
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×