AAB307 - Frameworks and Application Blocks - wcamb
-
Upload
waldemir-cambiucci -
Category
Technology
-
view
1.093 -
download
5
description
Transcript of AAB307 - Frameworks and Application Blocks - wcamb
![Page 1: AAB307 - Frameworks and Application Blocks - wcamb](https://reader034.fdocumentos.tips/reader034/viewer/2022052621/558619c9d8b42abe278b4d11/html5/thumbnails/1.jpg)
1
Uma introdução sobre Frameworks de Desenvolvimento
Waldemir CambiucciArquiteto de SoluçõesMicrosoft Brasil
twitter.com/wcambblogs.msdn.com/wcamb
![Page 2: AAB307 - Frameworks and Application Blocks - wcamb](https://reader034.fdocumentos.tips/reader034/viewer/2022052621/558619c9d8b42abe278b4d11/html5/thumbnails/2.jpg)
2
Agenda
Ferramentas de produtividade
Questões sobre frameworks de desenvolvimento
Recursos da Enterprise Library 4.1 aplicáveis para frameworks
Conclusões
Recursos
![Page 3: AAB307 - Frameworks and Application Blocks - wcamb](https://reader034.fdocumentos.tips/reader034/viewer/2022052621/558619c9d8b42abe278b4d11/html5/thumbnails/3.jpg)
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.
![Page 4: AAB307 - Frameworks and Application Blocks - wcamb](https://reader034.fdocumentos.tips/reader034/viewer/2022052621/558619c9d8b42abe278b4d11/html5/thumbnails/4.jpg)
4
Produtividade, reuso, padronização, automação
![Page 5: AAB307 - Frameworks and Application Blocks - wcamb](https://reader034.fdocumentos.tips/reader034/viewer/2022052621/558619c9d8b42abe278b4d11/html5/thumbnails/5.jpg)
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
![Page 6: AAB307 - Frameworks and Application Blocks - wcamb](https://reader034.fdocumentos.tips/reader034/viewer/2022052621/558619c9d8b42abe278b4d11/html5/thumbnails/6.jpg)
6
Busca da produtividade
Ao longo do processo, artefatos e templates são construídos e testados, garantindo o usodos melhores códigos para nossas soluções.
Guidelines
Patterns
Templates
Frameworks
Guias de Automação
Application Blocks
![Page 7: AAB307 - Frameworks and Application Blocks - wcamb](https://reader034.fdocumentos.tips/reader034/viewer/2022052621/558619c9d8b42abe278b4d11/html5/thumbnails/7.jpg)
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.
![Page 8: AAB307 - Frameworks and Application Blocks - wcamb](https://reader034.fdocumentos.tips/reader034/viewer/2022052621/558619c9d8b42abe278b4d11/html5/thumbnails/8.jpg)
8
Objetivos de um Framework
Objetivos de um FrameworkElevar 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.
![Page 9: AAB307 - Frameworks and Application Blocks - wcamb](https://reader034.fdocumentos.tips/reader034/viewer/2022052621/558619c9d8b42abe278b4d11/html5/thumbnails/9.jpg)
9
Bibliotecas de classes
Domínio de aplicação
App1bl
bl
bl
bl
App2bl
bl
bl
bl
App4bl
bl
bl
App3bl
bl
bl
bl
bl
bl
bl
bl
BL = blocos de aplicação
![Page 10: AAB307 - Frameworks and Application Blocks - wcamb](https://reader034.fdocumentos.tips/reader034/viewer/2022052621/558619c9d8b42abe278b4d11/html5/thumbnails/10.jpg)
10
Bibliotecas de classes
Domínio de aplicação
App1bl
bl
bl
bl
App2bl
bl
bl
bl
App4bl
bl
bl
App3bl
bl
bl
bl
bl
bl
bl
bl
Blocos de aplicação implementam componentes ou aspectos comuns para diversos cenários, economizando horas de desenvolvimento.
cache
cache
cache
cacheacesso a
dados
acesso a dados
acesso a dados
acesso a dadossegurança
segurança
segurança
segurança
config
logging
logging
logging logging
![Page 11: AAB307 - Frameworks and Application Blocks - wcamb](https://reader034.fdocumentos.tips/reader034/viewer/2022052621/558619c9d8b42abe278b4d11/html5/thumbnails/11.jpg)
Frameworks
Domínio de aplicação
App
App
App
App
App
App
App
Caching
ConfigurationValidation
Logging
Security
Exception
Framework de desenvolvimento
![Page 12: AAB307 - Frameworks and Application Blocks - wcamb](https://reader034.fdocumentos.tips/reader034/viewer/2022052621/558619c9d8b42abe278b4d11/html5/thumbnails/12.jpg)
12
Tipos de Frameworks
Exemplos de Frameworks Horizontais
Frameworks para persistência(Linq, Entity Framework, Nhibernate);
Microsoft Foundation Classes (MFC);
Frameworks de Middleware (MTS/COM+, ODBC);
Windows Presentation Framework (WPF);
Windows Communication Framework (WCF);
Model-View-Controller (MVC)
Sun’s Java Foundation Classes (RMI, AWT, Swing), etc.
Exemplos de Frameworks Verticais
Frameworks para o mercado financeiro;
Frameworks para empresas de telefonia (Microsoft Connected Services Framework 3.0 Developer Lite Edition);
Frameworks para Recursos Humanos (Microsoft CCF –Customer Care Framework);
![Page 13: AAB307 - Frameworks and Application Blocks - wcamb](https://reader034.fdocumentos.tips/reader034/viewer/2022052621/558619c9d8b42abe278b4d11/html5/thumbnails/13.jpg)
13
Cenários e Arquiteturas envolvidas
De acordo com o cenário, frameworks são mais ou menos complexos:
App Arch Guide 2.0
Tipos de Aplicações Estilos de Arquitetura
Componentes de Arquitetura
![Page 14: AAB307 - Frameworks and Application Blocks - wcamb](https://reader034.fdocumentos.tips/reader034/viewer/2022052621/558619c9d8b42abe278b4d11/html5/thumbnails/14.jpg)
14
Frameworks
Um exemplo de framework horizontal:
A capacidade de evoluir de forma modular e dinâmica é um grande benefício do uso de frameworks.
Camada de Apresentação
Camada de Negócios
Camada de Persistência Trat
amen
to d
e Ex
ceçõ
es
Val
idaç
ão
Logg
ing
Segu
ran
çaau
thn
, au
thz
Met
adat
a Se
rvic
es
Cac
hin
g
Mo
nit
ora
ção
Ace
sso
a d
ado
s
![Page 15: AAB307 - Frameworks and Application Blocks - wcamb](https://reader034.fdocumentos.tips/reader034/viewer/2022052621/558619c9d8b42abe278b4d11/html5/thumbnails/15.jpg)
15
![Page 16: AAB307 - Frameworks and Application Blocks - wcamb](https://reader034.fdocumentos.tips/reader034/viewer/2022052621/558619c9d8b42abe278b4d11/html5/thumbnails/16.jpg)
16
Principais recursos
Tratamento de exceção
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
Enterprise Library 4.1
![Page 17: AAB307 - Frameworks and Application Blocks - wcamb](https://reader034.fdocumentos.tips/reader034/viewer/2022052621/558619c9d8b42abe278b4d11/html5/thumbnails/17.jpg)
17
Tratamento de Exceção
DesafiosComo armazenar os detalhes de exceções?
Como propagar as exceções nas camadas da aplicação?
RecomendaçõesIdentifique os blocos críticos de código
Busque revelar os detalhes dos problemas
![Page 18: AAB307 - Frameworks and Application Blocks - wcamb](https://reader034.fdocumentos.tips/reader034/viewer/2022052621/558619c9d8b42abe278b4d11/html5/thumbnails/18.jpg)
18
Tratamento de Exceção
Mensagem de erro para o usuário
![Page 19: AAB307 - Frameworks and Application Blocks - wcamb](https://reader034.fdocumentos.tips/reader034/viewer/2022052621/558619c9d8b42abe278b4d11/html5/thumbnails/19.jpg)
19
Tratamento de ExceçãoExceção logada no
EventViewer
![Page 20: AAB307 - Frameworks and Application Blocks - wcamb](https://reader034.fdocumentos.tips/reader034/viewer/2022052621/558619c9d8b42abe278b4d11/html5/thumbnails/20.jpg)
20
Validação
DesafiosTransportar/Receber de maneira correta os dados fornecidos pelo usuário através das camadas.
RecomendaçõesAssuma que todo input requer atenção
Valide os dados conforme tipo, tamanho, formato, limites, etc.
Considere existir a validação de inputs na camadade apresentação.
![Page 21: AAB307 - Frameworks and Application Blocks - wcamb](https://reader034.fdocumentos.tips/reader034/viewer/2022052621/558619c9d8b42abe278b4d11/html5/thumbnails/21.jpg)
21
Validação
Exemplo de validação de dados para interfaces de
serviços em WCF
![Page 22: AAB307 - Frameworks and Application Blocks - wcamb](https://reader034.fdocumentos.tips/reader034/viewer/2022052621/558619c9d8b42abe278b4d11/html5/thumbnails/22.jpg)
22
Logging
DesafiosArmazenar detalhes do comportamento da aplicação
Como capturar?
RecomendaçõesUtilize sempre que possível os recursos disponíveis naplataforma-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 baixalatência, evitando a espera pelo retorno da ação de logging.
![Page 23: AAB307 - Frameworks and Application Blocks - wcamb](https://reader034.fdocumentos.tips/reader034/viewer/2022052621/558619c9d8b42abe278b4d11/html5/thumbnails/23.jpg)
23
Logging
Escolhendo o Trace Listener para as
mensagens de Logging
![Page 24: AAB307 - Frameworks and Application Blocks - wcamb](https://reader034.fdocumentos.tips/reader034/viewer/2022052621/558619c9d8b42abe278b4d11/html5/thumbnails/24.jpg)
24
Logging
Definindo o formato de dados para
logging no EventViewer
![Page 25: AAB307 - Frameworks and Application Blocks - wcamb](https://reader034.fdocumentos.tips/reader034/viewer/2022052621/558619c9d8b42abe278b4d11/html5/thumbnails/25.jpg)
25
Logging
Gravando o Log no EventViewer ou
TraceListener escolhido
![Page 26: AAB307 - Frameworks and Application Blocks - wcamb](https://reader034.fdocumentos.tips/reader034/viewer/2022052621/558619c9d8b42abe278b4d11/html5/thumbnails/26.jpg)
26
SegurançaDesafios
Como identificar ameaças na aplicação?
Qual é o cenário de segurança da minha aplicação?
Estudo do Modelo STRIDESpoofing, Tampering, Repudiation, Information), Denial of Service (D.o.S.), Elevation of privilege
RecomendaçõesIdentifique 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, autenticação e autorização.
![Page 27: AAB307 - Frameworks and Application Blocks - wcamb](https://reader034.fdocumentos.tips/reader034/viewer/2022052621/558619c9d8b42abe278b4d11/html5/thumbnails/27.jpg)
27
Segurança
Definindo o provider de autorização que será usado
![Page 28: AAB307 - Frameworks and Application Blocks - wcamb](https://reader034.fdocumentos.tips/reader034/viewer/2022052621/558619c9d8b42abe278b4d11/html5/thumbnails/28.jpg)
28
Segurança
Definindo rules de usuários e métodos autorizados
Usando Authorization Rule Provider
![Page 29: AAB307 - Frameworks and Application Blocks - wcamb](https://reader034.fdocumentos.tips/reader034/viewer/2022052621/558619c9d8b42abe278b4d11/html5/thumbnails/29.jpg)
29
Segurança
Exemplo de autorização de usuário e rules
Usando Authorization Rule Provider
![Page 30: AAB307 - Frameworks and Application Blocks - wcamb](https://reader034.fdocumentos.tips/reader034/viewer/2022052621/558619c9d8b42abe278b4d11/html5/thumbnails/30.jpg)
30
Caching
DesafiosIdentificar quais os dados que devem ir para o cache, emcenários de baixa latência.
Recursos disponíveisEnterprise Library 4.1
Velocity – Camada de cache unificado para aplicações
RecomendaçõesIdentificar quais os dados mais indicados para a camada de cache
Armazenar os dados mais usados pela aplicação.
![Page 31: AAB307 - Frameworks and Application Blocks - wcamb](https://reader034.fdocumentos.tips/reader034/viewer/2022052621/558619c9d8b42abe278b4d11/html5/thumbnails/31.jpg)
31
Cache local
Chamada para o CacheFactory
![Page 32: AAB307 - Frameworks and Application Blocks - wcamb](https://reader034.fdocumentos.tips/reader034/viewer/2022052621/558619c9d8b42abe278b4d11/html5/thumbnails/32.jpg)
32
![Page 33: AAB307 - Frameworks and Application Blocks - wcamb](https://reader034.fdocumentos.tips/reader034/viewer/2022052621/558619c9d8b42abe278b4d11/html5/thumbnails/33.jpg)
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ãosuportados, como caching, validação, logging, etc…
Se você já possui um framework operacional, avaliaras novas bibliotecas disponíveis.
Velocity, LINQ, .NET RIA Services, Enterprise Library 4.1, .NET 3.5 SP1, etc.
![Page 34: AAB307 - Frameworks and Application Blocks - wcamb](https://reader034.fdocumentos.tips/reader034/viewer/2022052621/558619c9d8b42abe278b4d11/html5/thumbnails/34.jpg)
34
Conclusões
Apenas alguns recursos da EntLib 4.1 foramapresentados nessa sessão.
Recomenda-se o estudo do Hands-on Labs paracomplementar 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.
![Page 35: AAB307 - Frameworks and Application Blocks - wcamb](https://reader034.fdocumentos.tips/reader034/viewer/2022052621/558619c9d8b42abe278b4d11/html5/thumbnails/35.jpg)
35
RecursosEnterprise 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&FamilyID=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
![Page 36: AAB307 - Frameworks and Application Blocks - wcamb](https://reader034.fdocumentos.tips/reader034/viewer/2022052621/558619c9d8b42abe278b4d11/html5/thumbnails/36.jpg)
36
Recursos (cont.)
ArqBR.Groupshttp://arqbr.groups.live.com/
ArqCasts no Channel9/Brasilhttp://channel9.msdn.com/brasil/
ebook Arquitetura de Soluçõeshttp://blogs.msdn.com/wcamb/archive/2009/10/01/ebook-sobre-arquitetura-de-solu-es.aspx
Centro de Arquitetura MSDNhttp://msdn.microsoft.com/pt-br/architecture/default.aspx
![Page 37: AAB307 - Frameworks and Application Blocks - wcamb](https://reader034.fdocumentos.tips/reader034/viewer/2022052621/558619c9d8b42abe278b4d11/html5/thumbnails/37.jpg)
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.