Microsoft pattern&practices lançou o Enterprise Library 5.0, um conjunto de partes de aplicação que podem ser usados como blocos para construção de aplicações corporativas, representando um guia da Microsoft sobre como escrever boas aplicações. A biblioteca contém muitas melhorias, incluindo Unity 2.0, e suporte ao .NET 4.0.
Microsoft Enterprise Library 5.0 contém código fonte que pode ser usado como blocos para construção de aplicações corporativas. O código pode ser utilizado sem modificações ou ser adaptado ou extendido conforme a necessidade. A principal finalidade da biblioteca é orientar os desenvolvedores em como escrever um bom software. A biblioteca foi construída utilizando design patterns como Plug-in e Injeção de Dependências, as funcionalidades comuns foram encapsuladas na Enterprise Library Core, que usa convenções para nomenclatura e versionamento, e todos os blocos de aplicação são instrumentados e testes de unidade foram incluídos a partir da fase inicial de design.
A Enterprise Library contém os seguintes blocos de aplicação:
- Caching - fornece cache local através de armazenamento em memória ou em banco de dados
- Criptografia - fornece suporte à encriptação com múltiplos providers
- Acesso a dados - fornece suporte para as funcionalidades mais usadas do ADO.NET como stored procedures, comandos SQL inline, gerenciamento de conexões, caching de parâmetros
- Tratamento de exceções - oferece inúmeros tratadores para lidar com as exceções mais comuns: wrap, replace, logging, fault contract (WCF)
- Logging - ajuda com formatação de mensagens de log e fornece uma variedade de destinos: evento, e-mail, banco de dados, fila de mensagens, arquivo de texto, WMI, cusmomizado
- Policy Injection - ajuda a alterar o comportamento de objetos baseados em conceitos cross-cutting. É construído em Unity, um DI container.
- Segurança - ajuda os desenvolvedores a lidar com questões de autorização e autenticação
- Validação - fornece suporte para validar entrada vinda de outros usuários ou sistemas
- Unity Dependency Injection and Interception - é um container de injeção de dependência que foi lançado inicialmente como um projeto independente (1.0) mas foi melhorado e agora incluído nessa biblioteca
Algumas das melhorias dessa versão da biblioteca em comparação com a anterior são:
- a arquitetura foi refatorada para facilitar testes e manutenção
- contém Unity, um DI container que pode ser substituído por outro escolhido pelo usuário
- suporta configuração programática
- possui acesso a dados assíncrono
- incorpora mecanismos de validação WPF
- melhora na performance de logging
- suporta .NET 4.0
A biblioteca pode ser usada tanto em máquinas 32 bits quanto 64 bits mas não foi testado em Windows XP, o XP não foi mencionado na lista de sistemas operacionais suportados. Entretanto, Grigori Melnik não vê motivos para a biblioteca não ser usada no XP com .NET 3.5 ou .NET 4.0.
Melnik também menciona que a equipe do pattern&practices tentou preservar a compatibilidade com versões anteriores mas há algumas mudanças incompatíveis.