37
1 Uma introdução sobre Frameworks de Desenvolvimento Waldemir Cambiucci Arquiteto de Soluções Microsoft Brasil twitter.com/wcamb blogs.msdn.com/wcamb

AAB307 - Frameworks and Application Blocks - wcamb

Embed Size (px)

DESCRIPTION

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

Citation preview

Page 1: AAB307 - Frameworks and Application Blocks - wcamb

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

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

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

4

Produtividade, reuso, padronização, automação

Page 5: AAB307 - Frameworks and Application Blocks - wcamb

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

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

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

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

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

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

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

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

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

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

15

Page 16: AAB307 - Frameworks and Application Blocks - wcamb

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

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

18

Tratamento de Exceção

Mensagem de erro para o usuário

Page 19: AAB307 - Frameworks and Application Blocks - wcamb

19

Tratamento de ExceçãoExceção logada no

EventViewer

Page 20: AAB307 - Frameworks and Application Blocks - wcamb

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

21

Validação

Exemplo de validação de dados para interfaces de

serviços em WCF

Page 22: AAB307 - Frameworks and Application Blocks - wcamb

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

23

Logging

Escolhendo o Trace Listener para as

mensagens de Logging

Page 24: AAB307 - Frameworks and Application Blocks - wcamb

24

Logging

Definindo o formato de dados para

logging no EventViewer

Page 25: AAB307 - Frameworks and Application Blocks - wcamb

25

Logging

Gravando o Log no EventViewer ou

TraceListener escolhido

Page 26: AAB307 - Frameworks and Application Blocks - wcamb

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

27

Segurança

Definindo o provider de autorização que será usado

Page 28: AAB307 - Frameworks and Application Blocks - wcamb

28

Segurança

Definindo rules de usuários e métodos autorizados

Usando Authorization Rule Provider

Page 29: AAB307 - Frameworks and Application Blocks - wcamb

29

Segurança

Exemplo de autorização de usuário e rules

Usando Authorization Rule Provider

Page 30: AAB307 - Frameworks and Application Blocks - wcamb

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

31

Cache local

Chamada para o CacheFactory

Page 32: AAB307 - Frameworks and Application Blocks - wcamb

32

Page 33: AAB307 - Frameworks and Application Blocks - wcamb

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

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

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

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

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.