Pergunta

Não pratiquei muita programação .NET, mas examinei alguns dos blocos de aplicativos publicados pelo grupo Patterns and Practices da Microsoft.Eu queria saber como eles são normalmente usados:

  • Vinculado diretamente aos aplicativos
  • Fonte adicionada aos aplicativos e construída com eles, talvez com algumas personalizações
  • Código de amostra usado como referência ao escrever código específico do aplicativo

Tenho certeza de que todos esses três usos são comuns, mas quais são os padrões de uso mais típicos?

Existem alguns blocos de aplicativos específicos usados ​​por "todos"?

Observação:Esta questão está relacionada, mas não é a mesma que Blocos de aplicativos de biblioteca corporativa OU estrutura desenvolvida em casa?.

Foi útil?

Solução

Normalmente coloco o código-fonte em meu projeto e assim consigo obter um melhor intellisense (e um melhor entendimento deles).Eu não costumo personalizá-los.Gosto de tê-los em estoque para poder distribuir os binários de estoque sempre que precisar deles.

Outras dicas

Usei extensivamente a Biblioteca Corporativa da Microsoft.Eles geralmente nunca devem ser incluídos em seu projeto, se possível.O custo adicional de compilação pode ser pesado.Além disso, não há razão para ter o código-fonte em seu projeto para usar as classes.Você ainda obterá inteligência durante a codificação, desde que adicione uma referência às DLLs em seus projetos.Também é aconselhável evitar ter múltiplas bases de código flutuando em seu ambiente de desenvolvedor.Caso precise customizar as classes, abra-as em solução própria e mantenha uma versão ativa.É claro que eu sempre sugiro usar o controle de versão (VSS ou Subversion) caso você precise reverter as alterações.

Existem também alternativas de código aberto para as classes da Microsoft que geralmente são melhor codificadas (ou seja,Log4Net, nUnit, etc.).O código da Microsoft tende a ser inchado e ineficiente.

Eu tentei vários blocos de aplicativos do Enterprise Lib 3.1 (maio de 2007) e aqui estão alguns comentários:

Bloco de aplicativo de cache:Menos interessante que o System.Web.Caching em cenários simples (como cache de cache na memória) Manuseio e registro de exceção:Muito complicado.NLog ou Log4Net são soluções melhores.

Olhei para os outros Blocos, mas eles não pareciam adequados para nossos projetos.

Finalmente abandonamos completamente o EntLib porque era doloroso personalizar...Eu aconselho você a realmente considerar uma solução menos monolítica que o EntLib.

Acabamos de colocar os binários EntLib 3.1 no cache global de assembly e adicionar referências em nossos projetos.Normalmente, porém, usamos apenas a estrutura de registro.

Acho que a maneira mais conveniente é adicionar App Blocks\EntLib como itens de solução.Dessa forma, eles não serão recompilados cada vez que você construir seu projeto (eles não participarão do processo de construção) e você poderá acessar facilmente seu código-fonte, definir ponto de interrupção, etc.

Usamos os blocos adicionando referências às DLLs, certificando-se de que "copiar local" esteja definido para que eles sejam implantados com o aplicativo na pasta bin do aplicativo.Isso significa que não precisamos mexer no GAC – muito mais simples!

Durante a depuração, o Visual Studio ainda poderá acessar o código-fonte, mesmo que ele não esteja incluído diretamente no seu projeto, desde que você tenha o código-fonte EntLib em algum lugar no disco rígido.Ele solicitará a localização no primeiro uso e lembrará dela depois.

Atualmente usamos os blocos Caching, Exception e Logging.Ainda não pensamos em um caso de uso para o resto.

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