Pergunta

Eu estava pensando que existem casos de ponta que poderia fazer cumprimento Common Language Specification aceitável. Mesmo quando não pretendendo ser acessado a partir de outras línguas, eu acho que os princípios afirmado pelo CLSCompliantAttribute são boas as melhores práticas.

Você ter encontrado / sabe de casos em que YAGNI supera as melhores práticas?

Foi útil?

Solução

"[sic] O uso está lá para ser compatível com CLS?"

Médio confiança , ClickOnce , correndo de uma unidade de rede compartilhada, perfis de hóspedes em um ambiente de domínio, etc. Há muitas situações de segurança onde o seu código não pode ser executado se você quebrar o CLS Compliance.

Eu pessoalmente tenho visto um monte de situações onde os usuários estão tentando executar a sua aplicação a partir de uma unidade de rede compartilhada e podem não porque o administrador local matou não-CLS aplicativos compatíveis no perfil de segurança.

Em geral, geralmente há maneiras de contornar o problema de qualquer maneira. Gostaria de ter a abordagem oposta aos comentários acima, por quebrá-lo? Você está escrevendo código gerenciado, por que você iria querer limitar a sua aplicação de propósito?

Eu diria que se você está construindo uma API montagem ou componente, você deve sempre aderir a eles. Demais componentes de terceiros tomar o caminho mais fácil e apenas sinalizá-las como quebrado ao tentar executar de confiança média. Em alguns casos, esta é a única razão pela qual não pode ser executado. Se eles tivessem tido um pouco mais de tempo para aderir às diretrizes, os usuários não seria limitada a respeito de como eles podem usar seu componente.

Outras dicas

Bem, "params" matrizes de atributos são por vezes tão tentador (mas não compatível). Mas eu recomendo o uso de abordagens compatíveis com CLS sempre que possível.

Eu acho que é aceitável para a biblioteca interna de um produto quando se trabalha com camadas legadas que requerem esse tipo de recursos ou por motivos de desempenho.

Mas essas interfaces não conformes deve então ser reencapsulated a um nível superior.

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