Post on 21-Jun-2015
description
1
Uma introdução sobre Frameworks de Desenvolvimento
Waldemir CambiucciArquiteto de SoluçõesMicrosoft Brasil
twitter.com/wcambblogs.msdn.com/wcamb
2
Agenda
Ferramentas de produtividade
Questões sobre frameworks de desenvolvimento
Recursos da Enterprise Library 4.1 aplicáveis para frameworks
Conclusões
Recursos
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.
4
Produtividade, reuso, padronização, automação
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
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
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.
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.
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
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
Frameworks
Domínio de aplicação
App
App
App
App
App
App
App
Caching
ConfigurationValidation
Logging
Security
Exception
Framework de desenvolvimento
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);
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
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
15
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
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
18
Tratamento de Exceção
Mensagem de erro para o usuário
19
Tratamento de ExceçãoExceção logada no
EventViewer
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.
21
Validação
Exemplo de validação de dados para interfaces de
serviços em WCF
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.
23
Logging
Escolhendo o Trace Listener para as
mensagens de Logging
24
Logging
Definindo o formato de dados para
logging no EventViewer
25
Logging
Gravando o Log no EventViewer ou
TraceListener escolhido
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.
27
Segurança
Definindo o provider de autorização que será usado
28
Segurança
Definindo rules de usuários e métodos autorizados
Usando Authorization Rule Provider
29
Segurança
Exemplo de autorização de usuário e rules
Usando Authorization Rule Provider
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.
31
Cache local
Chamada para o CacheFactory
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ã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.
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.
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
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
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.