O documento apresenta uma introdução sobre frameworks de desenvolvimento, discutindo ferramentas de produtividade, recursos da Enterprise Library 4.1 e conclusões. É destacado o uso de frameworks para elevar a produtividade, padronizar componentes e tornar a arquitetura previsível. A Enterprise Library 4.1 oferece recursos como tratamento de exceções, validação, logging e segurança.
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
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
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
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
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
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