Pergunta

Em grandes aplicativos que eu encontro-me realmente desejando que eu tinha construído-in instalações AOP. Tal como está em C # o melhor que você pode fazer é fábricas e RealProxys, PostSharp, ICorDebug, ICorProfiler ou frameworks de injeção. Não há limpo built-in maneira de fazer AOP.

Há alguma indicação em qualquer lugar (blog post / discussão interna) que indica que AOP está a caminho?

Foi útil?

Solução

tampas resposta de Romain (quase :) perfeitamente as soluções atuais. Quanto ao apoio futuro, Anders Hejlsberg tem afirmado anteriormente que they'were em espera e ver o modo sobre AOP.

Podemos apenas esperar que, com a reescrita gerenciado de csc, e uma «Compiler as a Service», pode-se ligar para o compilador, e injetar aspectos lá.

Outras dicas

Eu não ouvi falar de um "limpa built-in maneira de fazer AOP". Mas como você disse, há "formas limpas de fazer AOP" já abundância, usando amadurecer e estruturas poderosas como PostSharp ou Castelo DynamicProxy .

Usando o BCL, de uma forma óbvia de fazer AOP, com limitações muito fortes pensei, é usar proxys transparentes e reais, de Remoting pilha.

Outra maneira é contar com System.Reflection.Emit para gerar dinamicamente proxies, como, hum, DynamicProxy do Castelo.

Finalmente, há também um outro oficial da Microsoft solução sinalizado, que veio com a Empresa biblioteca. Eu estou falando sobre o Policy Injection Application Block . Unidade também oferece algumas capacidades de intercepção que PIAB alavancagem.

Spring.NET fornece AOP também. Ele tem um monte de configuração, mas uma vez que é criado ele funciona bem.

A liberação maio do Delphi Prism tem suporte AOP no nível da linguagem.

Você pode descobrir mais sobre ele aqui

http://prismwiki.codegear.com/en/Cirrus

Há também uma biblioteca de código aberto de aspectos a partir desta localização

http://code.remobjects.com/p/prismaspects/

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