2. É:
Conjunto de soluções para problemas freqüentes do
desenvolvimento de software: técnicas conhecidas, para
problemas conhecidos,
Baseada em Padrões e práticas comprovadas
Projeto Open Source hospedado no Codeplex
Não é:
Framework,
Parte do .Net framework
Um produto, pois é desenvolvida em parceria com a
comunidade, hoje mantida pelo grupo de Patterns &
Pratices da MS
3. Junto com parceiro a MS reuniu soluções para
rotinas corriqueiras no desenvolvimento de
software, criando Applications Blocks
Mais tarde através de sua joint venture
Avanade, com a Accenture, dona do Avanade
Connected Architect for .Net , reuniu essas
boas práticas em um só pacote chamado MS
Enterprise Library
4. • Jan de 2005
1.0
• Jun de 2005
• Incorporados Caching e Cryptography Application blocks
1.1
• Jan de 2006
• Migração para .Net 2.0, retirado ConfigurationApp Block, (System.Config)
2.0
• Abr de 2007
• Software factory, Policy Injection, Validation Block
3.0
• Mai de 2007, correção de bugs
3.1
• Integração com Unity Application Block, suporte ao WMI 2.0
4.0
• Correção de bugs
4.1
7. Acesso a dados é necessário em
praticamente 100% das aplicações
Sempre lembrar de manter as boas
práticas
Por que “fazer na mão” se pode ser feito
automaticamente?
10. Utiliza as melhores práticas de
acesso a dados
Código multi-banco
Facilidade no gerenciamento do
pool de conexões
Diminui drasticamente linhas de
código
11. public DataSet getFuncionarios(string strConexao, int
departamento){
SqlDatabase db = new SqlDatabase(strConexao);
return db.ExecuteDataSet(quot;proc_get_funcionariosquot;,
departamento);
//Conexao fechada no término do método
ExecuteDataSet
}
12.
13. Validação é necessária em todas as
aplicações
.Net provê classes para validação na
camada GUI, portanto você tem que re-
implementar as regras em outras
camadas
Cenários mais comuns de validação são
código “macarrônicos”
14. Validar dados antes de processá-los
Facilidade na manutenção para
manter a lógica
Integrando a validação em
diferentes camadas: GUI, Domínio
Alterar a validação em produção (!!)
15. Especificar as regras apenas uma vez:
arquivos de configuração, atributos ou
programaticamente
Validar em qualquer ponto:
programaticamente, integrado com
WinForms, ASP.Net, WCF
Regras de validação primitivas, validação nos
membros das classes, booleana
16. Regras de validação
Not Null (valor não pode ser nulo)
Contains Characters (não contenha os caracteres: /?<>”:)
Regular Expression (validar endereço de e-mail)
Range (de 10-20 or 1/1/1950 até 12/31/1999)
Relative DateTime (maior de 21 anos)
String Length (maior que 8 caracteres)
Domain (um elemento do grupo {Cartão, Cheque, Dinheiro})
Enum Conversion (string pode ser convertida em enum)
Type Conversion (string pode ser convertida em DateTime)
Property Comparison (MaxDate > MinDate)
Todas as validações podem ser negadas
Ex.: O comprimento de uma string não pode ser entre 5 e 10
caracteres
17.
18.
19. Data Access Application Block providers: MySql, SqLite
and SqlEx
Exception Handling Application Block: SqlException Wrap
Handler
Logging Application Block: LogParser
Policy Injection Application Block: PostSharp4EntLib,
novas regras And, Or e Not; CursorCallHandler,
OneWayCallHandler, SynchronizedCallHandler,
ThreadSafeCallHandler, TransactionScopeCallHandler
Validation Application Block: CollectionCountValidator,
TypeValidator<T>, ObjectValidator<T>,
EnumDefinedValidator, Lightweight type picker, Test
command; Default validators, Argument Validation,
ExternallyConfigurableObjectValidator
20. EntLib é uma biblioteca com o propósito de
solucionar problemas freqüentes do
desenvolvimento de software, usando
padrões e práticas comprovadas,
encapsulando técnicas conhecidas para a
solução de problemas conhecidos, em
qualquer estilo arquitetônico, aumentando a
produtividade.
21. Microsoft patterns & practices Developer Center:
http://msdn.microsoft.com/en-us/practices/default.aspx
Microsoft Enterprise Library 4.1 – October 2008:
http://msdn.microsoft.com/en-us/library/dd203099.aspx
Hands On Labs - Enterprise Library for .NET Framework
2.0 - January 2006:
http://www.microsoft.com/downloads/details.aspx?Family
Id=C8CA14D0-05EA-4A44-AE78-
F5E4DF6208AF&displaylang=en
Enterprise Library Contrib:
http://www.codeplex.com/entlibcontrib