MS Enterprise Library

1,236 views
1,131 views

Published on

Apresentação feita na 7º reunião do grupo dotNetArchitects, 21 de Março de 2003

Published in: Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,236
On SlideShare
0
From Embeds
0
Number of Embeds
6
Actions
Shares
0
Downloads
18
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

MS Enterprise Library

  1. 1. Data Access e Validation Block
  2. 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. 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. 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
  5. 5. Caching Application Block  Cryptography Application Block  Data Access Application Block  Exception Handling Application Block  Logging Application Block  Policy Injection Application Block  Security Application Block  Unity Application Block  Validation Application Block. 
  6. 6. Enterprise Library 3.0 Application Blocks Data Logging Caching Access Core Config Instrumen- Exception Helpers Cryptography tation Handling & Design Object Builder Security Policy Injection Validation
  7. 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?
  8. 8.  Conectar no BD  Enviar comando  Receber resposta  Fechar conexão
  9. 9. public void carregaDados()  {  SqlConnection cn = new  SqlConnection(cnStr);  SqlCommand cm = new SqlCommand(“proc_xquot;, cn);  cm.CommandType = CommandType.StoredProcedure;  try{  cn.Open();  cm.ExecuteNonQuery();  }  catch (Exception ex){  }  finally{  cn.Close();  }  } 
  10. 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. 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. 12. 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”
  13. 13.  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 (!!)
  14. 14. 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
  15. 15. 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
  16. 16. 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
  17. 17. 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.
  18. 18. 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

×