AAB307 - Frameworks and Application Blocks - wcamb
Upcoming SlideShare
Loading in...5
×
 

Like this? Share it with your network

Share

AAB307 - Frameworks and Application Blocks - wcamb

on

  • 1,663 views

Introdução sobre Frameworks e Blocos de Aplicação

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

Statistics

Views

Total Views
1,663
Views on SlideShare
1,533
Embed Views
130

Actions

Likes
0
Downloads
8
Comments
0

2 Embeds 130

http://blogs.msdn.com 126
http://www.slideshare.net 4

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

AAB307 - Frameworks and Application Blocks - wcamb Presentation Transcript

  • 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