Pergunta

Im apenas começando um projeto e uma vez que este projeto é I pessoal queria saber quais são as vantagens de usar o Enterprise Library? Usamos a versão 2 para vários projetos no escritório, mas não im certeza (além das boas práticas) das vantagens, especialmente no componente de banco de dados. Algum conselho? Graças

Foi útil?

Solução

Para o bloco de aplicativo de banco de dados, a principal vantagem é que ele torna mais fácil para produzir código de banco de dados agnóstica. Os interage principalmente com programador de banco de dados genéricos e objectos DbCommand, em vez de por exemplo SqlConnection, SqlCommand, etc. Assim, a mudança para uma base de dados diferente (isto é, Oracle) torna-se mais viável. Dependendo de suas necessidades de negócios, esta poderia ser uma vantagem definitiva. EntLib também estimula delicadamente o desenvolvedor na direção de usar DbParameter para parâmetros de consulta, o que reduz o risco de ataques de injeção SQL.

Como outra com dossel mencionada, o bloco de aplicativo de dados é um pouco maior nível do que as classes ADO.NET retas, por isso tende a exigir menos linhas de código para fazer a mesma coisa.

Do meu ponto de vista, os dados, de exceção e registro blocos são os mais úteis. Exceção e Logging juntos torná-lo muito fácil de exceções (duh) para um número de lugares e em uma série de formatos de log. Por exemplo, eles podem colocar toda a entrada de log exceção, incluindo o rastreamento de pilha, no log de eventos do Windows tornando-se relativamente fácil de diagnosticar um problema.

Uma desvantagem de EntLib é que alguns blocos de aplicativos colocar um pouco de lógica em arquivos de configuração. Portanto, sua lógica é mais espalhados; algumas delas são em código, alguns em arquivos de configuração. A vantagem é que a configuração pode ser modificada pós-compilação e até mesmo pós-implantação.

Outras dicas

A minha equipa fez uma avaliação dos padrões e práticas Enterprise Library cerca de 2 anos como parte de um re-engenharia de nossa linha de produtos. A única parte acabamos usando era o bloco de banco de dados. Nós ainda envolto que em algumas classes que poderíamos instanciar para que pudéssemos zombar o DAL para testes de unidade; o bloco de código Microsoft utilizou chamadas estáticos para o trabalho de banco de dados. Não tenho a certeza se a Microsoft integrou nenhuma das coisas LINQtoSQL ou Entity Framework no bloco db. Eu hesitaria em usar o bloco db agora se ele não fez alavancagem um desses.

Quanto logging vai, encontramos Log4Net ser um muito mais robusto e solução flexível que o registro Microsoft. Nós fomos com que para as nossas necessidades de registro.

Para o tratamento de exceção, nós rolamos nossa própria. O código Microsoft não lidar com os casos de comunicação remota que queríamos alça, e uma vez que estavam usando um quadro 3ª logging partido fazia mais sentido para escrever a nossa própria biblioteca exceção e integrar-se com isso. Eu descobri que algum nível de integração do quadro de exploração madeireira no quadro exceção pode ser muito útil. Nós escrevemos algumas classes de mensagens publicitárias leves em torno Log4Net e chamou aqueles do nosso registro de exceção por isso não introduzir dependências em Log4Net.

Além dos itens mencionados por Paulo sobre o bloco de aplicativo de dados Eu também gostaria de salientar que, em minha experiência, o bloco aslo aplicativo de dados fornece uma maneira muito mais rápida para escrever o código de banco de dados necessário, com os ajudantes que existem. Eu usá-lo para sua consistente olhar / sensação ea velocidade de desenvolvimento.

A escolha de não ser capaz de usar EF para mim é vincular pelas restrições que tenho em meu ambiente que requer as aplicações para milhões de processos de transações por hora. Este é o volume de processamento em ambiente Telco.

Se usar EF ou não é inteiramente até seu ambiente e escolha (desde que você conhece as limitações da tecnologia escolhida). Se o seu sistema não exige que tais cargas elevadas, não prevejo que você terá nenhum problema em usar EF.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top