SlideShare une entreprise Scribd logo
1  sur  37
Télécharger pour lire hors ligne
Uma introdução sobre
    Frameworks de Desenvolvimento


    Waldemir Cambiucci
    Arquiteto de Soluções        twitter.com/wcamb
    Microsoft Brasil        blogs.msdn.com/wcamb

1
Agenda
     Ferramentas de produtividade
     Questões sobre frameworks de
     desenvolvimento
     Recursos da Enterprise Library 4.1
     aplicáveis para frameworks
     Conclusões
     Recursos

2
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
Produtividade, reuso,
    padronização, automação



4
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
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
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
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
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
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.
Frameworks
 Framework de desenvolvimento                               Security
              Caching


                                         App
             App

                             App
 Logging
                                           App
                                                            App
       App                         App


                                               Validation         Exception
             Configuration

                                                      Domínio de aplicação
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
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
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
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
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
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 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
Validação



                 Exemplo de validação de
                 dados para interfaces de
                    serviços em WCF




21
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
Logging

                Escolhendo o Trace
                  Listener para as
               mensagens de Logging




23
Logging
               Definindo o formato
                 de dados para
                    logging no
                   EventViewer




24
Logging



                 Gravando o Log no
                   EventViewer ou
               TraceListener escolhido




25
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.
Segurança




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




                 Definindo rules de usuários
                   e métodos autorizados

28
Segurança


                   Usando Authorization
                      Rule Provider




                 Exemplo de autorização de
                      usuário e rules
29
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
Cache local
                   Chamada para o
                    CacheFactory




31
32
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
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
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
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
© 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

Contenu connexe

Tendances

DotNet Framework e Orientação a Objetos 1 - Introdução
DotNet Framework e Orientação a Objetos 1 - IntroduçãoDotNet Framework e Orientação a Objetos 1 - Introdução
DotNet Framework e Orientação a Objetos 1 - IntroduçãoLorival Smolski Chapuis
 
Mq conceitos melhores_praticas_parte_ii
Mq conceitos melhores_praticas_parte_iiMq conceitos melhores_praticas_parte_ii
Mq conceitos melhores_praticas_parte_iiMoisesInacio
 
Desenvolvendo Aplicações com Software Livre
Desenvolvendo Aplicações com Software LivreDesenvolvendo Aplicações com Software Livre
Desenvolvendo Aplicações com Software Livreelliando dias
 
Padrões de Projeto: Adapter
Padrões de Projeto: AdapterPadrões de Projeto: Adapter
Padrões de Projeto: AdapterMessias Batista
 
Microsoft Tech·Ed Brasil 2010: DEV302 - Como e onde devo utilizar o Managed E...
Microsoft Tech·Ed Brasil 2010: DEV302 - Como e onde devo utilizar o Managed E...Microsoft Tech·Ed Brasil 2010: DEV302 - Como e onde devo utilizar o Managed E...
Microsoft Tech·Ed Brasil 2010: DEV302 - Como e onde devo utilizar o Managed E...Rogério Moraes de Carvalho
 
Apostila desenvolvimento aplicações comerciais com C#
Apostila desenvolvimento aplicações comerciais com C#Apostila desenvolvimento aplicações comerciais com C#
Apostila desenvolvimento aplicações comerciais com C#Vinicius Vieira
 
IES GF - Linguagem de Programação Estruturada - Parte 1
IES GF - Linguagem de Programação Estruturada - Parte 1IES GF - Linguagem de Programação Estruturada - Parte 1
IES GF - Linguagem de Programação Estruturada - Parte 1Ramon Mayor Martins
 
Padrão De Projeto Adapter
Padrão De Projeto AdapterPadrão De Projeto Adapter
Padrão De Projeto AdapterMatheus Andrade
 
Java 01 Java Visao Geral Resumo
Java 01 Java Visao Geral ResumoJava 01 Java Visao Geral Resumo
Java 01 Java Visao Geral ResumoRegis Magalhães
 
Produtividade em integração de aplicações com apache camel tdc2012-são paulo-...
Produtividade em integração de aplicações com apache camel tdc2012-são paulo-...Produtividade em integração de aplicações com apache camel tdc2012-são paulo-...
Produtividade em integração de aplicações com apache camel tdc2012-são paulo-...Adriano Tavares
 
Artigo de Protótipo de Sistema de Gerenciamento de Rotas para Transporte Cole...
Artigo de Protótipo de Sistema de Gerenciamento de Rotas para Transporte Cole...Artigo de Protótipo de Sistema de Gerenciamento de Rotas para Transporte Cole...
Artigo de Protótipo de Sistema de Gerenciamento de Rotas para Transporte Cole...Alessandro Marchi Panaccione
 

Tendances (19)

DotNet Framework e Orientação a Objetos 1 - Introdução
DotNet Framework e Orientação a Objetos 1 - IntroduçãoDotNet Framework e Orientação a Objetos 1 - Introdução
DotNet Framework e Orientação a Objetos 1 - Introdução
 
Mq conceitos melhores_praticas_parte_ii
Mq conceitos melhores_praticas_parte_iiMq conceitos melhores_praticas_parte_ii
Mq conceitos melhores_praticas_parte_ii
 
Tgp
TgpTgp
Tgp
 
01 aula1 habib
01 aula1 habib01 aula1 habib
01 aula1 habib
 
Educação e certificação na Plataforma .NET
Educação e certificação na Plataforma .NETEducação e certificação na Plataforma .NET
Educação e certificação na Plataforma .NET
 
Desenvolvendo Aplicações com Software Livre
Desenvolvendo Aplicações com Software LivreDesenvolvendo Aplicações com Software Livre
Desenvolvendo Aplicações com Software Livre
 
Padrões de Projeto: Adapter
Padrões de Projeto: AdapterPadrões de Projeto: Adapter
Padrões de Projeto: Adapter
 
C hardware
C hardwareC hardware
C hardware
 
Linguagem da programação
Linguagem da programaçãoLinguagem da programação
Linguagem da programação
 
Padrões de Projeto
Padrões de ProjetoPadrões de Projeto
Padrões de Projeto
 
Aula05 frameworks
Aula05 frameworksAula05 frameworks
Aula05 frameworks
 
Microsoft Tech·Ed Brasil 2010: DEV302 - Como e onde devo utilizar o Managed E...
Microsoft Tech·Ed Brasil 2010: DEV302 - Como e onde devo utilizar o Managed E...Microsoft Tech·Ed Brasil 2010: DEV302 - Como e onde devo utilizar o Managed E...
Microsoft Tech·Ed Brasil 2010: DEV302 - Como e onde devo utilizar o Managed E...
 
Apostila desenvolvimento aplicações comerciais com C#
Apostila desenvolvimento aplicações comerciais com C#Apostila desenvolvimento aplicações comerciais com C#
Apostila desenvolvimento aplicações comerciais com C#
 
IES GF - Linguagem de Programação Estruturada - Parte 1
IES GF - Linguagem de Programação Estruturada - Parte 1IES GF - Linguagem de Programação Estruturada - Parte 1
IES GF - Linguagem de Programação Estruturada - Parte 1
 
Padrão De Projeto Adapter
Padrão De Projeto AdapterPadrão De Projeto Adapter
Padrão De Projeto Adapter
 
C sharp lesson1
C sharp lesson1C sharp lesson1
C sharp lesson1
 
Java 01 Java Visao Geral Resumo
Java 01 Java Visao Geral ResumoJava 01 Java Visao Geral Resumo
Java 01 Java Visao Geral Resumo
 
Produtividade em integração de aplicações com apache camel tdc2012-são paulo-...
Produtividade em integração de aplicações com apache camel tdc2012-são paulo-...Produtividade em integração de aplicações com apache camel tdc2012-são paulo-...
Produtividade em integração de aplicações com apache camel tdc2012-são paulo-...
 
Artigo de Protótipo de Sistema de Gerenciamento de Rotas para Transporte Cole...
Artigo de Protótipo de Sistema de Gerenciamento de Rotas para Transporte Cole...Artigo de Protótipo de Sistema de Gerenciamento de Rotas para Transporte Cole...
Artigo de Protótipo de Sistema de Gerenciamento de Rotas para Transporte Cole...
 

En vedette

AAB302 - Model Driven Design e Oslo - wcamb
AAB302 - Model Driven Design e Oslo - wcambAAB302 - Model Driven Design e Oslo - wcamb
AAB302 - Model Driven Design e Oslo - wcambMicrosoft Brasil
 
AAB301 - Rich Internet Application - wcamb
AAB301 - Rich Internet Application - wcambAAB301 - Rich Internet Application - wcamb
AAB301 - Rich Internet Application - wcambMicrosoft Brasil
 
AAB303 - Windows Communication Foundation - wcamb
AAB303 - Windows Communication Foundation - wcambAAB303 - Windows Communication Foundation - wcamb
AAB303 - Windows Communication Foundation - wcambMicrosoft Brasil
 
AAB309 - SQL Azure Database - wcamb
AAB309 - SQL Azure Database - wcambAAB309 - SQL Azure Database - wcamb
AAB309 - SQL Azure Database - wcambMicrosoft Brasil
 
Forneça serviços de Hosting com o Windows Azure Pack
Forneça serviços de Hosting com o Windows Azure PackForneça serviços de Hosting com o Windows Azure Pack
Forneça serviços de Hosting com o Windows Azure PackDaniel Donda - MVP
 
AAB306 - Wcf Services Best Practices - wcamb
AAB306 - Wcf Services Best Practices - wcambAAB306 - Wcf Services Best Practices - wcamb
AAB306 - Wcf Services Best Practices - wcambMicrosoft Brasil
 
Embranet
EmbranetEmbranet
Embranetjalira
 
O negócio provedor de infra estrutura prefeitura
O negócio  provedor de infra estrutura prefeituraO negócio  provedor de infra estrutura prefeitura
O negócio provedor de infra estrutura prefeituraEduardo Grizendi
 
Computacao em nuvem windows azure
Computacao em nuvem   windows azureComputacao em nuvem   windows azure
Computacao em nuvem windows azureRodrigo Vidal
 
O negócio provedor de infra estrutura utilities v inatel
O negócio  provedor de infra estrutura utilities v inatelO negócio  provedor de infra estrutura utilities v inatel
O negócio provedor de infra estrutura utilities v inatelEduardo Grizendi
 
"EUBrasilCloudFORUM Coordinated Support Action Project"
"EUBrasilCloudFORUM Coordinated Support Action Project""EUBrasilCloudFORUM Coordinated Support Action Project"
"EUBrasilCloudFORUM Coordinated Support Action Project"EUBrasilCloudFORUM .
 
Eficiência energética em Data Center
Eficiência energética em Data CenterEficiência energética em Data Center
Eficiência energética em Data Centerd2sp
 
Business Continuity e Disaster Recovery na Cloud
Business Continuity e Disaster Recovery na CloudBusiness Continuity e Disaster Recovery na Cloud
Business Continuity e Disaster Recovery na CloudClaranet Portugal
 
BI - Padrões de arquitetura e uso recursos
BI - Padrões de arquitetura e uso recursosBI - Padrões de arquitetura e uso recursos
BI - Padrões de arquitetura e uso recursosGiulianoCardoso
 
AAB308 - Cloud Computing Windows Azure - wcamb.pdf
AAB308 - Cloud Computing Windows Azure - wcamb.pdfAAB308 - Cloud Computing Windows Azure - wcamb.pdf
AAB308 - Cloud Computing Windows Azure - wcamb.pdfMicrosoft Brasil
 
6 trends that will shape Cloud computing in 2017 - An Infograph
6 trends that will shape Cloud computing in 2017 - An Infograph6 trends that will shape Cloud computing in 2017 - An Infograph
6 trends that will shape Cloud computing in 2017 - An InfographInApp
 
10 Keys to Data-Centric Security
10 Keys to Data-Centric Security10 Keys to Data-Centric Security
10 Keys to Data-Centric SecuritySirius
 
Eight Steps to an Effective Vulnerability Assessment
Eight Steps to an Effective Vulnerability AssessmentEight Steps to an Effective Vulnerability Assessment
Eight Steps to an Effective Vulnerability AssessmentSirius
 

En vedette (20)

AAB302 - Model Driven Design e Oslo - wcamb
AAB302 - Model Driven Design e Oslo - wcambAAB302 - Model Driven Design e Oslo - wcamb
AAB302 - Model Driven Design e Oslo - wcamb
 
AAB301 - Rich Internet Application - wcamb
AAB301 - Rich Internet Application - wcambAAB301 - Rich Internet Application - wcamb
AAB301 - Rich Internet Application - wcamb
 
AAB303 - Windows Communication Foundation - wcamb
AAB303 - Windows Communication Foundation - wcambAAB303 - Windows Communication Foundation - wcamb
AAB303 - Windows Communication Foundation - wcamb
 
AAB309 - SQL Azure Database - wcamb
AAB309 - SQL Azure Database - wcambAAB309 - SQL Azure Database - wcamb
AAB309 - SQL Azure Database - wcamb
 
Forneça serviços de Hosting com o Windows Azure Pack
Forneça serviços de Hosting com o Windows Azure PackForneça serviços de Hosting com o Windows Azure Pack
Forneça serviços de Hosting com o Windows Azure Pack
 
Hosting Inok
Hosting InokHosting Inok
Hosting Inok
 
AAB306 - Wcf Services Best Practices - wcamb
AAB306 - Wcf Services Best Practices - wcambAAB306 - Wcf Services Best Practices - wcamb
AAB306 - Wcf Services Best Practices - wcamb
 
Embranet
EmbranetEmbranet
Embranet
 
O negócio provedor de infra estrutura prefeitura
O negócio  provedor de infra estrutura prefeituraO negócio  provedor de infra estrutura prefeitura
O negócio provedor de infra estrutura prefeitura
 
Computacao em nuvem windows azure
Computacao em nuvem   windows azureComputacao em nuvem   windows azure
Computacao em nuvem windows azure
 
O negócio provedor de infra estrutura utilities v inatel
O negócio  provedor de infra estrutura utilities v inatelO negócio  provedor de infra estrutura utilities v inatel
O negócio provedor de infra estrutura utilities v inatel
 
"EUBrasilCloudFORUM Coordinated Support Action Project"
"EUBrasilCloudFORUM Coordinated Support Action Project""EUBrasilCloudFORUM Coordinated Support Action Project"
"EUBrasilCloudFORUM Coordinated Support Action Project"
 
Eficiência energética em Data Center
Eficiência energética em Data CenterEficiência energética em Data Center
Eficiência energética em Data Center
 
Buscadores cuadro sinóptico
Buscadores cuadro sinópticoBuscadores cuadro sinóptico
Buscadores cuadro sinóptico
 
Business Continuity e Disaster Recovery na Cloud
Business Continuity e Disaster Recovery na CloudBusiness Continuity e Disaster Recovery na Cloud
Business Continuity e Disaster Recovery na Cloud
 
BI - Padrões de arquitetura e uso recursos
BI - Padrões de arquitetura e uso recursosBI - Padrões de arquitetura e uso recursos
BI - Padrões de arquitetura e uso recursos
 
AAB308 - Cloud Computing Windows Azure - wcamb.pdf
AAB308 - Cloud Computing Windows Azure - wcamb.pdfAAB308 - Cloud Computing Windows Azure - wcamb.pdf
AAB308 - Cloud Computing Windows Azure - wcamb.pdf
 
6 trends that will shape Cloud computing in 2017 - An Infograph
6 trends that will shape Cloud computing in 2017 - An Infograph6 trends that will shape Cloud computing in 2017 - An Infograph
6 trends that will shape Cloud computing in 2017 - An Infograph
 
10 Keys to Data-Centric Security
10 Keys to Data-Centric Security10 Keys to Data-Centric Security
10 Keys to Data-Centric Security
 
Eight Steps to an Effective Vulnerability Assessment
Eight Steps to an Effective Vulnerability AssessmentEight Steps to an Effective Vulnerability Assessment
Eight Steps to an Effective Vulnerability Assessment
 

Similaire à AAB307 - Frameworks and Application Blocks - wcamb

Webcast MSDN - Enterprise Library
Webcast MSDN - Enterprise LibraryWebcast MSDN - Enterprise Library
Webcast MSDN - Enterprise LibraryLuciano Condé
 
Evolução do .NET Framework e do Visual Basic
Evolução do .NET Framework e do Visual BasicEvolução do .NET Framework e do Visual Basic
Evolução do .NET Framework e do Visual BasicRicardo Guerra Freitas
 
Introdução aos computadores e à World Wide Web
Introdução aos computadores e à World Wide WebIntrodução aos computadores e à World Wide Web
Introdução aos computadores e à World Wide WebCícero Quarto
 
Reutilização
ReutilizaçãoReutilização
Reutilizaçãoemjorge
 
Merlinferramentassbc2006 Revisado Em6paginas
Merlinferramentassbc2006 Revisado Em6paginasMerlinferramentassbc2006 Revisado Em6paginas
Merlinferramentassbc2006 Revisado Em6paginasMarcelo Mrack
 
Machine Learning: Do Notebook ao modelo em produção
Machine Learning: Do Notebook ao modelo em produçãoMachine Learning: Do Notebook ao modelo em produção
Machine Learning: Do Notebook ao modelo em produçãoMarlesson Santana
 
Aula 1 -_ambiente_visual_studio_2012
Aula 1 -_ambiente_visual_studio_2012Aula 1 -_ambiente_visual_studio_2012
Aula 1 -_ambiente_visual_studio_2012Laís Vidal
 
Desenvolvimento de Aplicações com Visual Studio
Desenvolvimento de Aplicações com Visual StudioDesenvolvimento de Aplicações com Visual Studio
Desenvolvimento de Aplicações com Visual StudioGeovani Ferreira Gonçalves
 
Criando Aplicações .NET com o TheWebMind
Criando Aplicações .NET com o TheWebMindCriando Aplicações .NET com o TheWebMind
Criando Aplicações .NET com o TheWebMindJaydson Gomes
 
Code Igniter & Zend Framework - Uma união de sucesso
Code Igniter & Zend Framework - Uma união de sucessoCode Igniter & Zend Framework - Uma união de sucesso
Code Igniter & Zend Framework - Uma união de sucessoJose Wilker
 
Introdução a programação em python d3
Introdução a programação em python d3Introdução a programação em python d3
Introdução a programação em python d3Moises de Paula
 
Entendendo Frameworks web com Python
Entendendo Frameworks web com PythonEntendendo Frameworks web com Python
Entendendo Frameworks web com PythonLuiz Aldabalde
 
Entendendo Framework Web com Python
Entendendo Framework Web com PythonEntendendo Framework Web com Python
Entendendo Framework Web com PythonPythOnRio
 
O que é framework
O que é frameworkO que é framework
O que é frameworkfcdigital
 
Palestra - Symfony Framework MVC PHP 5
Palestra - Symfony Framework MVC PHP 5Palestra - Symfony Framework MVC PHP 5
Palestra - Symfony Framework MVC PHP 5Lucas Augusto Carvalho
 
Testes Funcionais e Estruturais utilizando Selenium IDE e Cobertura
Testes Funcionais e Estruturais utilizando Selenium IDE e CoberturaTestes Funcionais e Estruturais utilizando Selenium IDE e Cobertura
Testes Funcionais e Estruturais utilizando Selenium IDE e CoberturaTiago Antônio da Silva
 

Similaire à AAB307 - Frameworks and Application Blocks - wcamb (20)

Webcast MSDN - Enterprise Library
Webcast MSDN - Enterprise LibraryWebcast MSDN - Enterprise Library
Webcast MSDN - Enterprise Library
 
Evolução do .NET Framework e do Visual Basic
Evolução do .NET Framework e do Visual BasicEvolução do .NET Framework e do Visual Basic
Evolução do .NET Framework e do Visual Basic
 
Introdução aos computadores e à World Wide Web
Introdução aos computadores e à World Wide WebIntrodução aos computadores e à World Wide Web
Introdução aos computadores e à World Wide Web
 
Reutilização
ReutilizaçãoReutilização
Reutilização
 
Framework usar ou não usar
Framework usar ou não usarFramework usar ou não usar
Framework usar ou não usar
 
Merlinferramentassbc2006 Revisado Em6paginas
Merlinferramentassbc2006 Revisado Em6paginasMerlinferramentassbc2006 Revisado Em6paginas
Merlinferramentassbc2006 Revisado Em6paginas
 
Machine Learning: Do Notebook ao modelo em produção
Machine Learning: Do Notebook ao modelo em produçãoMachine Learning: Do Notebook ao modelo em produção
Machine Learning: Do Notebook ao modelo em produção
 
Aula 1 -_ambiente_visual_studio_2012
Aula 1 -_ambiente_visual_studio_2012Aula 1 -_ambiente_visual_studio_2012
Aula 1 -_ambiente_visual_studio_2012
 
Desenvolvimento de Aplicações com Visual Studio
Desenvolvimento de Aplicações com Visual StudioDesenvolvimento de Aplicações com Visual Studio
Desenvolvimento de Aplicações com Visual Studio
 
Criando Aplicações .NET com o TheWebMind
Criando Aplicações .NET com o TheWebMindCriando Aplicações .NET com o TheWebMind
Criando Aplicações .NET com o TheWebMind
 
BDD com SpecFlow
BDD com SpecFlowBDD com SpecFlow
BDD com SpecFlow
 
Bdd com spec flow
Bdd com spec flowBdd com spec flow
Bdd com spec flow
 
Code Igniter & Zend Framework - Uma união de sucesso
Code Igniter & Zend Framework - Uma união de sucessoCode Igniter & Zend Framework - Uma união de sucesso
Code Igniter & Zend Framework - Uma união de sucesso
 
Introdução a programação em python d3
Introdução a programação em python d3Introdução a programação em python d3
Introdução a programação em python d3
 
Entendendo Frameworks web com Python
Entendendo Frameworks web com PythonEntendendo Frameworks web com Python
Entendendo Frameworks web com Python
 
Entendendo Framework Web com Python
Entendendo Framework Web com PythonEntendendo Framework Web com Python
Entendendo Framework Web com Python
 
O que é framework
O que é frameworkO que é framework
O que é framework
 
Palestra - Symfony Framework MVC PHP 5
Palestra - Symfony Framework MVC PHP 5Palestra - Symfony Framework MVC PHP 5
Palestra - Symfony Framework MVC PHP 5
 
Introdução C#
Introdução C#Introdução C#
Introdução C#
 
Testes Funcionais e Estruturais utilizando Selenium IDE e Cobertura
Testes Funcionais e Estruturais utilizando Selenium IDE e CoberturaTestes Funcionais e Estruturais utilizando Selenium IDE e Cobertura
Testes Funcionais e Estruturais utilizando Selenium IDE e Cobertura
 

AAB307 - Frameworks and Application Blocks - wcamb

  • 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. 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. 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. Produtividade, reuso, padronização, automação 4
  • 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. 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. 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. 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. 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. 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. Frameworks Framework de desenvolvimento Security Caching App App App Logging App App App App Validation Exception Configuration Domínio de aplicação
  • 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. 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. 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
  • 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. 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. Tratamento de Exceção Mensagem de erro para o usuário 18
  • 19. Tratamento de Exceção Exceção logada no EventViewer 19
  • 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. Validação Exemplo de validação de dados para interfaces de serviços em WCF 21
  • 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. Logging Escolhendo o Trace Listener para as mensagens de Logging 23
  • 24. Logging Definindo o formato de dados para logging no EventViewer 24
  • 25. Logging Gravando o Log no EventViewer ou TraceListener escolhido 25
  • 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. Segurança Definindo o provider de autorização que será usado 27
  • 28. Segurança Usando Authorization Rule Provider Definindo rules de usuários e métodos autorizados 28
  • 29. Segurança Usando Authorization Rule Provider Exemplo de autorização de usuário e rules 29
  • 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. Cache local Chamada para o CacheFactory 31
  • 32. 32
  • 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. 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. 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. 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. © 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