O documento discute a biblioteca Enterprise para desenvolvedores. A biblioteca fornece blocos de aplicação reutilizáveis para desafios comuns como logging, tratamento de exceções, validação e injeção de dependência. Ela ajuda a acelerar o desenvolvimento fornecendo soluções padronizadas para esses problemas.
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
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
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
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
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
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.
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
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/
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