SlideShare ist ein Scribd-Unternehmen logo
1 von 51
Enterprise Library para desenvolvedores




                Luciano Condé
            Arquiteto de Soluções
        http://blogs.msdn.com/conde
         http://twitter.com/luconde
Motivação
Típica situação



                                     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
Objetivos da Enterprise Library


• A Enterprise Library é um conjunto de blocos de
  aplicações extensíveis que ajudam na construção de
  aplicações.
• História
Versão               Data                   Destaques
1.0                  Janeiro 2005           Integração dos Blocos
1.1                  Junho 2005
2.0                  Janeiro 2006           .NET 2.0 Update
3.0                  Abril 2007
3.1                  Maio 2007              Validation, PIAB
4.0                  Maio 2008              Unity, suporte ao WMI
                                            2.0
4.1                  Outubro 2008
Enterprise Library como um acelerador




  Não posso ter um conjunto
  de blocos únicos e
  reutilizá-los?
Enterprise
Library

  Enterprise Library é…          Enterprise Library não é…
  • Um conjunto de blocos para   • Parte do .Net Framework
    resolver certos desafios
                                 • Um framework que
  • Um conjunto de classes         estabelece um estilo de
    helper para atuar em           arquitetura
    qualquer estilo de
    arquitetura
                                 • Um produto MS com
  • De graça                       suporte

                                 • À venda
Objetivos da Enterprise Library


• Consistente
   – Blocos são escritos e baseados em patterns comuns
• Extensível
   – Plugável
   – Customizável
• Fácil para uso
   – Integrado com Visual Studio,
     interfaces simples
Contexto


• Reuso de componentes é importante
  – Trata os principais desafios de desenvolvimento
• Blocos de aplicação
  – Reuso, testabilidade, extensível e código-fonte
    modifcável
  – + Docs, quickstarts, hands-on labs
• Enterprise Library é uma conjunto genérico de
  blocos de aplicação
  – Não é específico para nenhum tipo de aplicação ou estilo de
    arquitetura
• Pode ser usado da maneira que está entregue
  ou é possível customizar
Biblioteca Customer Y

                                                    Biblioteca Partner X




                                     p&p
                               Enterprise Library

                   Biblioteca Customer Z




p&p blocks


Partner blocks


Customer blocks


Community blocks
2.0
            3.x

4.x
Os blocos


•   Caching
•   Data access
•   Security
•   Cryptograph
•   Logging
•   Exception handling
•   Validation
•   Policy Injector
•   Unity (Dependency Injection)
Data Access
  Caching                                        Logging




                          Core

                Config
                                 Instrumen-
               Helpers                          Exception
Cryptography                        tation
               & Design                         Handling


                          Object
                          Builder



  Security                                    Policy Injection


                      Validation
container.Resolve<Database>(“Foo”);
…
Usando Enterprise Library
Logging Application Block


• O que é?
  – Bloco de aplicação destinado a simplificar as tarefas de
    manipulação de logging da aplicação
• Quando usar
  – Gerar logging das atividades da minha aplicação para um
    ou vários repositórios
  – Formatar mensagens de logging
  – Alterar o destino das mensagens somente via configuração
• Ações comuns:
  –   Armazenar as atividades
  –   Filtrar as mensagens antes de armazenamento
  –   Redirecionar as atividades para mútiplos destinos
  –   Configurar filtros
Demo do Logging
Calculadora do Elvis com Logging




           Windows                  WCF
            Forms                  Service


                                         Usa


                                   Logger
Exception Handling Application Block


• O que é?
  – Bloco de aplicação para simplificação no tratamento e
    gerenciamento de exceções
• Quando usar
  – Um tratamento uniforme das minhas exceções
    independentemente da quantidade de camadas da minha
    aplicação
• Ações comuns:
  –   Armazenas exceções
  –   Trocar exceções
  –   Filtrar exceções
  –   Apresentar mensagens user-friendly
  –   Fornecer informações para a operação
Demo do Exception
Handling
Calculadora do Elvis com Exception
Handling




           Windows                          WCF
            Forms                          Service

                                   Nova               Usa
                                Exceção

                                          Exception
                                          Handling
Validation Application Block


• O que é?
  – Bloco de aplicação para simplificar as validações de dados
    (formulários, serviços e classes)
• Quando usar
  – Quero boas práticas de validação de dados
  – Transferir a validação para o nível do compilador ou
    engine de validação
• Ações comuns:
  –   Usar atributos para validação
  –   Usar uma própria validação
  –   Validar objetos
  –   Integração com WCF, Windows Forms, ASP.NET
Demo do Validation
Calculadora do Elvis com Validação




           Windows                             WCF
            Forms                             Service

                                     Falha               Usa


                                             Validação
Unity Application Block

• O que é?
   – Bloco de aplicação para gerenciar o desacoplamento entre
     classes e objetos
• Quando usar
   – Aplicação dos patterns
       • Inversão de Controle (IoC)
       • Injeção de dependência (DI)
       • Interceptação
   – Gerar independência entre os meus objetos ou classes
   – Redução da complexidade de dependência entre os meus
     objetos e classes
• Ações comuns:
   – Configuração de um container
   – Configurar as dependências
   – “Resolver” um objeto pelo tipo ou nome de registro
Injeção de dependência




Componente                                         Dependency
                                      Componente    Injection
Demo do Unity
Calculadora do Elvis com Unity




           Windows                WCF
            Forms                Service


                                       Usa


                                 Logger
Outros blocos
Data access Application Block


• O que é?
  – Bloco de Aplicação para simplificar o acesso a banco de
    dados
  – Abstração de alto nível do ADO.Net
• Quando usar
  – Uso de métodos padronizados
  – Uso com múltiplos bancos
• Ações comuns:
  – Criação do objeto abstrato de banco de dados
  – Chamada de stored procedures
Factory
Possíveis bancos




Propriedades
Security Application Block


• O que é?
  – Bloco de aplicação para tratamento das atividades de
    autorização
• Quando usar
  – Autorização em cima de algum repositório de segurança
    (Active Directory, Authorization Manager, ADAM ou outros)
  – Caching das credenciais de acesso
• Ações comuns:
  – Obter um token para um usuário autenticado
  – Expirar um token
  – Verificar se o usuário autenticado tem permissão para
    executar alguma tarefa específica.
Definindo o provider de
     autorização que será usado
40
Usando Authorization
         Rule Provider




     Definindo rules de usuários
       e métodos autorizados
41
Usando Authorization
          Rule Provider




     Exemplo de autorização de
          usuário e rules
42
Caching Application Block


• O que é?
  – Bloco de aplicação para tratamento de caching de dados
    (cliente e servidor)
• Quando usar
  – Leitura dados estáticos repetidamente
  – Dados que são “caros” na criação, acesso ou transporte
  – Dados que precisam estar sempre disponíveis
• Ações comuns:
  –   Adicionar itens ao cache
  –   Retornar itens do cache
  –   Remover itens do cache
  –   Limpar o cache
  –   Carregar um caching
Chamada para o
      CacheFactory




45
EntLib 5.0
O que está sendo pensado?


• Foco em simplicidade
• Intellisense do
  configuration manager
  com o Visual Studio
• Refactoring de
  Arquitetura
• Não é esperado nenhuma
  quebra das APIs existentes

Acompanhar o blog:
http://blogs.msdn.com/agile/
Prioritized Backlog
Conclusão
Resumo


     Blocos funcionais                             Core
   Data                                                Instrumen-
                            Logging       Config
   Access                                                 tation



                            Exception
  Caching
                            Handling
                                        Blocos estruturais

                                                   Unity

Cryptography                Security
                                                Policy
                                              Injection
               Validation
Mais informações

•   Entrevista sobre EntLib 5.0
    – http://channel9.msdn.com/posts/akMSFT/Whats-coming-in-
       EntLib-50-and-a-sneak-peek-into-the-new-EntLib-Developer-
       Notes/
•   Blog do Grigori
    – http://blogs.msdn.com/agile/
•   Enterprise Library
    – msdn.microsoft.com/entlib
•   Comunidade da Enterprise Library
    – codeplex.com/entlib
•   Unity:
    – msdn.microsoft.com/unity
•   Time do Microsoft patterns & practices
    – msdn.microsoft.com/practices
•© 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.

Weitere ähnliche Inhalte

Was ist angesagt?

Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)
Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)
Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)
Adriano Teixeira de Souza
 
Sistemas Distribuídos - Comunicação Distribuída - EJB
Sistemas Distribuídos - Comunicação Distribuída - EJBSistemas Distribuídos - Comunicação Distribuída - EJB
Sistemas Distribuídos - Comunicação Distribuída - EJB
Adriano Teixeira de Souza
 
Construindo aplicações web java com netbeans
Construindo aplicações web java com netbeansConstruindo aplicações web java com netbeans
Construindo aplicações web java com netbeans
Sliedesharessbarbosa
 
Paradigmas de Linguagens de Programação - Biblioteca de Classes e Frameworks
Paradigmas de Linguagens de Programação - Biblioteca de Classes e Frameworks Paradigmas de Linguagens de Programação - Biblioteca de Classes e Frameworks
Paradigmas de Linguagens de Programação - Biblioteca de Classes e Frameworks
Adriano Teixeira de Souza
 

Was ist angesagt? (11)

MC - Java Enterprise Edition 6 (Java EE)
MC - Java Enterprise Edition 6 (Java EE)MC - Java Enterprise Edition 6 (Java EE)
MC - Java Enterprise Edition 6 (Java EE)
 
Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)
Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)
Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)
 
GlassFish, Maven, Cloud e o futuro do Java EE
GlassFish, Maven, Cloud e o futuro do Java EEGlassFish, Maven, Cloud e o futuro do Java EE
GlassFish, Maven, Cloud e o futuro do Java EE
 
Sistemas Distribuídos - Comunicação Distribuída - EJB
Sistemas Distribuídos - Comunicação Distribuída - EJBSistemas Distribuídos - Comunicação Distribuída - EJB
Sistemas Distribuídos - Comunicação Distribuída - EJB
 
Construindo aplicações web java com netbeans
Construindo aplicações web java com netbeansConstruindo aplicações web java com netbeans
Construindo aplicações web java com netbeans
 
Apache e Java
Apache e JavaApache e Java
Apache e Java
 
A arquitetura modular do Java 9
A arquitetura modular do Java 9A arquitetura modular do Java 9
A arquitetura modular do Java 9
 
Conhecendo os Padrões De Projetos
Conhecendo os Padrões De ProjetosConhecendo os Padrões De Projetos
Conhecendo os Padrões De Projetos
 
Anatomia do JSF – JavaServer Faces
Anatomia do JSF – JavaServer FacesAnatomia do JSF – JavaServer Faces
Anatomia do JSF – JavaServer Faces
 
Novidades do JSF: Um tour completo no JSF 2.2
Novidades do JSF: Um tour completo no JSF 2.2Novidades do JSF: Um tour completo no JSF 2.2
Novidades do JSF: Um tour completo no JSF 2.2
 
Paradigmas de Linguagens de Programação - Biblioteca de Classes e Frameworks
Paradigmas de Linguagens de Programação - Biblioteca de Classes e Frameworks Paradigmas de Linguagens de Programação - Biblioteca de Classes e Frameworks
Paradigmas de Linguagens de Programação - Biblioteca de Classes e Frameworks
 

Ähnlich wie Webcast MSDN - Enterprise Library

Desenvolvimento Web com CakePHP
Desenvolvimento Web com CakePHPDesenvolvimento Web com CakePHP
Desenvolvimento Web com CakePHP
Sérgio Vilar
 
Como deixar de fazer "copy and paste" entre Windows Store e Windows Phone Apps
Como deixar de fazer "copy and paste" entre Windows Store e Windows Phone AppsComo deixar de fazer "copy and paste" entre Windows Store e Windows Phone Apps
Como deixar de fazer "copy and paste" entre Windows Store e Windows Phone Apps
Comunidade NetPonto
 
Testes automatizados.pptx
Testes automatizados.pptxTestes automatizados.pptx
Testes automatizados.pptx
Carlos Gonzaga
 

Ähnlich wie Webcast MSDN - Enterprise Library (20)

Uso de Critérios de Seleção para Frameworks Livres em Plataforma Java EE
Uso de Critérios de Seleção para Frameworks Livres em Plataforma Java EEUso de Critérios de Seleção para Frameworks Livres em Plataforma Java EE
Uso de Critérios de Seleção para Frameworks Livres em Plataforma Java EE
 
Boas Práticas em Aplicações na Nuvem: Twelve-Factor App | TDC Connections 2021
Boas Práticas em Aplicações na Nuvem: Twelve-Factor App | TDC Connections 2021Boas Práticas em Aplicações na Nuvem: Twelve-Factor App | TDC Connections 2021
Boas Práticas em Aplicações na Nuvem: Twelve-Factor App | TDC Connections 2021
 
Code Igniter & Zend Framework - Uma união de sucesso
Code Igniter & Zend Framework - Uma união de sucessoCode Igniter & Zend Framework - Uma união de sucesso
Code Igniter & Zend Framework - Uma união de sucesso
 
Desenvolvimento Web com CakePHP
Desenvolvimento Web com CakePHPDesenvolvimento Web com CakePHP
Desenvolvimento Web com CakePHP
 
Desenvolvendo aplicativos para iOS 6 - Campus Party 2013
Desenvolvendo aplicativos para iOS 6 - Campus Party 2013Desenvolvendo aplicativos para iOS 6 - Campus Party 2013
Desenvolvendo aplicativos para iOS 6 - Campus Party 2013
 
VIII TechTalk - Spring 3
VIII TechTalk - Spring 3VIII TechTalk - Spring 3
VIII TechTalk - Spring 3
 
Modularidade na Web com Java: Desenvolvimento OSGI Web com Eclipse Virgo
Modularidade na Web com Java: Desenvolvimento OSGI Web com Eclipse VirgoModularidade na Web com Java: Desenvolvimento OSGI Web com Eclipse Virgo
Modularidade na Web com Java: Desenvolvimento OSGI Web com Eclipse Virgo
 
Web Tools Pt Br
Web Tools Pt BrWeb Tools Pt Br
Web Tools Pt Br
 
Apresentando o Yii Framework
Apresentando o Yii FrameworkApresentando o Yii Framework
Apresentando o Yii Framework
 
YII - Web Programming Framework
YII - Web Programming FrameworkYII - Web Programming Framework
YII - Web Programming Framework
 
Palest"Tecnologias para Desenvolvimento Baseado em Componentes"
Palest"Tecnologias para Desenvolvimento Baseado em Componentes"Palest"Tecnologias para Desenvolvimento Baseado em Componentes"
Palest"Tecnologias para Desenvolvimento Baseado em Componentes"
 
TechNet Wiki Summit 2015 - DevOps
TechNet Wiki Summit 2015 - DevOpsTechNet Wiki Summit 2015 - DevOps
TechNet Wiki Summit 2015 - DevOps
 
Como deixar de fazer "copy and paste" entre Windows Store e Windows Phone Apps
Como deixar de fazer "copy and paste" entre Windows Store e Windows Phone AppsComo deixar de fazer "copy and paste" entre Windows Store e Windows Phone Apps
Como deixar de fazer "copy and paste" entre Windows Store e Windows Phone Apps
 
Principais novidades do Entity Framework 5.0
Principais novidades do Entity Framework 5.0Principais novidades do Entity Framework 5.0
Principais novidades do Entity Framework 5.0
 
Maven 2
Maven 2Maven 2
Maven 2
 
MySQL Profiling com Enterprise Monitor
MySQL Profiling com Enterprise Monitor MySQL Profiling com Enterprise Monitor
MySQL Profiling com Enterprise Monitor
 
Entity Framework 4, Novas funcionalidades
Entity Framework 4, Novas funcionalidadesEntity Framework 4, Novas funcionalidades
Entity Framework 4, Novas funcionalidades
 
Testes automatizados.pptx
Testes automatizados.pptxTestes automatizados.pptx
Testes automatizados.pptx
 
Mini curso JBC
Mini curso JBCMini curso JBC
Mini curso JBC
 
Preparando sua arquitetura para microservicos
Preparando sua arquitetura para microservicosPreparando sua arquitetura para microservicos
Preparando sua arquitetura para microservicos
 

Mehr von Luciano Condé

Sharepoint360 - Hospedando Sharepoint no Windows Azure
Sharepoint360 - Hospedando Sharepoint no Windows AzureSharepoint360 - Hospedando Sharepoint no Windows Azure
Sharepoint360 - Hospedando Sharepoint no Windows Azure
Luciano Condé
 
Windows Azure - Verificação anti-fraude, alterando o número do telefone
Windows Azure - Verificação anti-fraude, alterando o número do telefoneWindows Azure - Verificação anti-fraude, alterando o número do telefone
Windows Azure - Verificação anti-fraude, alterando o número do telefone
Luciano Condé
 
Deep Dive sobre Entity Framework
Deep Dive sobre Entity FrameworkDeep Dive sobre Entity Framework
Deep Dive sobre Entity Framework
Luciano Condé
 

Mehr von Luciano Condé (20)

Oracle - Visão Geral de IaaS e PaaS dos serviços de Nuvem da Oracle
Oracle - Visão Geral de IaaS e PaaS dos serviços de Nuvem da OracleOracle - Visão Geral de IaaS e PaaS dos serviços de Nuvem da Oracle
Oracle - Visão Geral de IaaS e PaaS dos serviços de Nuvem da Oracle
 
STB Tour - Visão Geral do Windows Azure
STB Tour - Visão Geral do Windows AzureSTB Tour - Visão Geral do Windows Azure
STB Tour - Visão Geral do Windows Azure
 
STB Tour - Cresça os seus negócios com Windows azure
STB Tour - Cresça os seus negócios com Windows azureSTB Tour - Cresça os seus negócios com Windows azure
STB Tour - Cresça os seus negócios com Windows azure
 
Cloud Day III - Modelos de licenciamento para parceiros com Windows Azure
Cloud Day III - Modelos de licenciamento para parceiros com Windows AzureCloud Day III - Modelos de licenciamento para parceiros com Windows Azure
Cloud Day III - Modelos de licenciamento para parceiros com Windows Azure
 
Cloud Day III - Programas para parceiros com Windows Azure
Cloud Day III - Programas para parceiros com Windows AzureCloud Day III - Programas para parceiros com Windows Azure
Cloud Day III - Programas para parceiros com Windows Azure
 
Cloud Day III - Visão Geral do Windows Azure
Cloud Day III - Visão Geral do Windows AzureCloud Day III - Visão Geral do Windows Azure
Cloud Day III - Visão Geral do Windows Azure
 
Azure Summit 2013 - Keynote - Visão Geral do Windows Azure
Azure Summit 2013 - Keynote - Visão Geral do Windows AzureAzure Summit 2013 - Keynote - Visão Geral do Windows Azure
Azure Summit 2013 - Keynote - Visão Geral do Windows Azure
 
ALM Summit 2013 - Implantação contínua com Windows Azure
ALM Summit 2013 - Implantação contínua com Windows AzureALM Summit 2013 - Implantação contínua com Windows Azure
ALM Summit 2013 - Implantação contínua com Windows Azure
 
Visual Studio Summit 2012 - Novidades do Windows Azure
Visual Studio Summit 2012 - Novidades do Windows AzureVisual Studio Summit 2012 - Novidades do Windows Azure
Visual Studio Summit 2012 - Novidades do Windows Azure
 
TDC 2012 Florianópolis - Padrões (Patterns) de desenvolvimento com Windows Azure
TDC 2012 Florianópolis - Padrões (Patterns) de desenvolvimento com Windows AzureTDC 2012 Florianópolis - Padrões (Patterns) de desenvolvimento com Windows Azure
TDC 2012 Florianópolis - Padrões (Patterns) de desenvolvimento com Windows Azure
 
TDC 2012 Florianópolis - Visão Geral do Windows Azure
TDC 2012 Florianópolis - Visão Geral do Windows AzureTDC 2012 Florianópolis - Visão Geral do Windows Azure
TDC 2012 Florianópolis - Visão Geral do Windows Azure
 
TDC 2012 Florianópolis - Keynote - Visão Geral do Windows Azure
TDC 2012 Florianópolis - Keynote - Visão Geral do Windows AzureTDC 2012 Florianópolis - Keynote - Visão Geral do Windows Azure
TDC 2012 Florianópolis - Keynote - Visão Geral do Windows Azure
 
TDC 2012 - Visão Geral do Windows Azure
TDC 2012 - Visão Geral do Windows AzureTDC 2012 - Visão Geral do Windows Azure
TDC 2012 - Visão Geral do Windows Azure
 
Sucesu - Visão Geral do Windows Azure e a Era do CloudOS
Sucesu - Visão Geral do Windows Azure e a Era do CloudOSSucesu - Visão Geral do Windows Azure e a Era do CloudOS
Sucesu - Visão Geral do Windows Azure e a Era do CloudOS
 
Sharepoint360 - Hospedando Sharepoint no Windows Azure
Sharepoint360 - Hospedando Sharepoint no Windows AzureSharepoint360 - Hospedando Sharepoint no Windows Azure
Sharepoint360 - Hospedando Sharepoint no Windows Azure
 
Fórum de Aplicações - Visão de nuvem da Microsoft
Fórum de Aplicações - Visão de nuvem da MicrosoftFórum de Aplicações - Visão de nuvem da Microsoft
Fórum de Aplicações - Visão de nuvem da Microsoft
 
Fórum de Aplicações - Cenários de Windows Azure
Fórum de Aplicações - Cenários de Windows AzureFórum de Aplicações - Cenários de Windows Azure
Fórum de Aplicações - Cenários de Windows Azure
 
Windows Azure - Verificação anti-fraude, alterando o número do telefone
Windows Azure - Verificação anti-fraude, alterando o número do telefoneWindows Azure - Verificação anti-fraude, alterando o número do telefone
Windows Azure - Verificação anti-fraude, alterando o número do telefone
 
Desenvolvendo para o Windows Azure e SQL Azure
Desenvolvendo para o Windows Azure e SQL AzureDesenvolvendo para o Windows Azure e SQL Azure
Desenvolvendo para o Windows Azure e SQL Azure
 
Deep Dive sobre Entity Framework
Deep Dive sobre Entity FrameworkDeep Dive sobre Entity Framework
Deep Dive sobre Entity Framework
 

Kürzlich hochgeladen

Assessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdfAssessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdf
Natalia Granato
 

Kürzlich hochgeladen (6)

Assessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdfAssessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdf
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemplo
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object Calisthenics
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 

Webcast MSDN - Enterprise Library

  • 1. Enterprise Library para desenvolvedores Luciano Condé Arquiteto de Soluções http://blogs.msdn.com/conde http://twitter.com/luconde
  • 3. Típica situação 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
  • 4. Objetivos da Enterprise Library • A Enterprise Library é um conjunto de blocos de aplicações extensíveis que ajudam na construção de aplicações. • História Versão Data Destaques 1.0 Janeiro 2005 Integração dos Blocos 1.1 Junho 2005 2.0 Janeiro 2006 .NET 2.0 Update 3.0 Abril 2007 3.1 Maio 2007 Validation, PIAB 4.0 Maio 2008 Unity, suporte ao WMI 2.0 4.1 Outubro 2008
  • 5. Enterprise Library como um acelerador Não posso ter um conjunto de blocos únicos e reutilizá-los?
  • 6. Enterprise Library Enterprise Library é… Enterprise Library não é… • Um conjunto de blocos para • Parte do .Net Framework resolver certos desafios • Um framework que • Um conjunto de classes estabelece um estilo de helper para atuar em arquitetura qualquer estilo de arquitetura • Um produto MS com • De graça suporte • À venda
  • 7. Objetivos da Enterprise Library • Consistente – Blocos são escritos e baseados em patterns comuns • Extensível – Plugável – Customizável • Fácil para uso – Integrado com Visual Studio, interfaces simples
  • 8. Contexto • Reuso de componentes é importante – Trata os principais desafios de desenvolvimento • Blocos de aplicação – Reuso, testabilidade, extensível e código-fonte modifcável – + Docs, quickstarts, hands-on labs • Enterprise Library é uma conjunto genérico de blocos de aplicação – Não é específico para nenhum tipo de aplicação ou estilo de arquitetura • Pode ser usado da maneira que está entregue ou é possível customizar
  • 9. Biblioteca Customer Y Biblioteca Partner X p&p Enterprise Library Biblioteca Customer Z p&p blocks Partner blocks Customer blocks Community blocks
  • 10. 2.0 3.x 4.x
  • 11. Os blocos • Caching • Data access • Security • Cryptograph • Logging • Exception handling • Validation • Policy Injector • Unity (Dependency Injection)
  • 12. Data Access Caching Logging Core Config Instrumen- Helpers Exception Cryptography tation & Design Handling Object Builder Security Policy Injection Validation
  • 15. Logging Application Block • O que é? – Bloco de aplicação destinado a simplificar as tarefas de manipulação de logging da aplicação • Quando usar – Gerar logging das atividades da minha aplicação para um ou vários repositórios – Formatar mensagens de logging – Alterar o destino das mensagens somente via configuração • Ações comuns: – Armazenar as atividades – Filtrar as mensagens antes de armazenamento – Redirecionar as atividades para mútiplos destinos – Configurar filtros
  • 16.
  • 18. Calculadora do Elvis com Logging Windows WCF Forms Service Usa Logger
  • 19. Exception Handling Application Block • O que é? – Bloco de aplicação para simplificação no tratamento e gerenciamento de exceções • Quando usar – Um tratamento uniforme das minhas exceções independentemente da quantidade de camadas da minha aplicação • Ações comuns: – Armazenas exceções – Trocar exceções – Filtrar exceções – Apresentar mensagens user-friendly – Fornecer informações para a operação
  • 20.
  • 22. Calculadora do Elvis com Exception Handling Windows WCF Forms Service Nova Usa Exceção Exception Handling
  • 23. Validation Application Block • O que é? – Bloco de aplicação para simplificar as validações de dados (formulários, serviços e classes) • Quando usar – Quero boas práticas de validação de dados – Transferir a validação para o nível do compilador ou engine de validação • Ações comuns: – Usar atributos para validação – Usar uma própria validação – Validar objetos – Integração com WCF, Windows Forms, ASP.NET
  • 24.
  • 26. Calculadora do Elvis com Validação Windows WCF Forms Service Falha Usa Validação
  • 27. Unity Application Block • O que é? – Bloco de aplicação para gerenciar o desacoplamento entre classes e objetos • Quando usar – Aplicação dos patterns • Inversão de Controle (IoC) • Injeção de dependência (DI) • Interceptação – Gerar independência entre os meus objetos ou classes – Redução da complexidade de dependência entre os meus objetos e classes • Ações comuns: – Configuração de um container – Configurar as dependências – “Resolver” um objeto pelo tipo ou nome de registro
  • 28. Injeção de dependência Componente Dependency Componente Injection
  • 29.
  • 31. Calculadora do Elvis com Unity Windows WCF Forms Service Usa Logger
  • 32.
  • 34. Data access Application Block • O que é? – Bloco de Aplicação para simplificar o acesso a banco de dados – Abstração de alto nível do ADO.Net • Quando usar – Uso de métodos padronizados – Uso com múltiplos bancos • Ações comuns: – Criação do objeto abstrato de banco de dados – Chamada de stored procedures
  • 37. Security Application Block • O que é? – Bloco de aplicação para tratamento das atividades de autorização • Quando usar – Autorização em cima de algum repositório de segurança (Active Directory, Authorization Manager, ADAM ou outros) – Caching das credenciais de acesso • Ações comuns: – Obter um token para um usuário autenticado – Expirar um token – Verificar se o usuário autenticado tem permissão para executar alguma tarefa específica.
  • 38.
  • 39. Definindo o provider de autorização que será usado 40
  • 40. Usando Authorization Rule Provider Definindo rules de usuários e métodos autorizados 41
  • 41. Usando Authorization Rule Provider Exemplo de autorização de usuário e rules 42
  • 42. Caching Application Block • O que é? – Bloco de aplicação para tratamento de caching de dados (cliente e servidor) • Quando usar – Leitura dados estáticos repetidamente – Dados que são “caros” na criação, acesso ou transporte – Dados que precisam estar sempre disponíveis • Ações comuns: – Adicionar itens ao cache – Retornar itens do cache – Remover itens do cache – Limpar o cache – Carregar um caching
  • 43.
  • 44. Chamada para o CacheFactory 45
  • 46. O que está sendo pensado? • Foco em simplicidade • Intellisense do configuration manager com o Visual Studio • Refactoring de Arquitetura • Não é esperado nenhuma quebra das APIs existentes Acompanhar o blog: http://blogs.msdn.com/agile/
  • 49. Resumo Blocos funcionais Core Data Instrumen- Logging Config Access tation Exception Caching Handling Blocos estruturais Unity Cryptography Security Policy Injection Validation
  • 50. Mais informações • Entrevista sobre EntLib 5.0 – http://channel9.msdn.com/posts/akMSFT/Whats-coming-in- EntLib-50-and-a-sneak-peek-into-the-new-EntLib-Developer- Notes/ • Blog do Grigori – http://blogs.msdn.com/agile/ • Enterprise Library – msdn.microsoft.com/entlib • Comunidade da Enterprise Library – codeplex.com/entlib • Unity: – msdn.microsoft.com/unity • Time do Microsoft patterns & practices – msdn.microsoft.com/practices
  • 51. •© 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.

Hinweis der Redaktion

  1. Remember to keep Business Rules Application Block as P2.Vote counting methodology:Priority #1 = 40Priority #2 = 38…Priority #19 = 2Priority #20 = 1Expert’s votes 2xInternal votes – count separately
  2. Remember to keep Business Rules Application Block as P2.Vote counting methodology:Priority #1 = 40Priority #2 = 38…Priority #19 = 2Priority #20 = 1Expert’s votes 2xInternal votes – count separately