programming oriented net c# .net aop

oriented - AOP incorporado en C#- ¿Está en camino?



net core aop (4)

La respuesta de Romain cubre (casi :) perfectamente las soluciones actuales. En cuanto al soporte futuro, Anders Hejlsberg ha declarado previamente que estaban en modo de espera y consulta sobre AOP.

Solo podemos esperar que con la reescritura administrada de csc, y un «Compilador como servicio», se pueda conectar al compilador e inyectar aspectos allí.

En aplicaciones grandes, me siento realmente deseoso de tener instalaciones AOP integradas. Tal como está en C #, lo mejor que puede hacer es fábricas y RealProxys, PostSharp, ICorDebug, ICorProfiler o marcos de inyección. No hay una forma limpia integrada de hacer AOP.

¿Hay alguna indicación en algún lugar (publicación de blog / discusión interna) que indique que AOP está en camino?



No he oído hablar de una "forma integrada de hacer AOP". Pero como dijiste, ya hay muchas "formas limpias de hacer AOP", usando marcos maduros y poderosos como PostSharp o Castle DynamicProxy .

Usando el BCL, una forma obvia de hacer AOP, con limitaciones bastante fuertes, es usar proxys transparentes y reales, desde .NET Remoting stack.

Otra forma es confiar en System.Reflection.Emit para generar proxies dinámicamente, como, hum, DynamicProxy de Castle.

Finalmente, también hay otra solución oficial marcada por Microsoft, que vino con la Enterprise Library . Estoy hablando del bloque de aplicación de inyección de políticas . Unity también ofrece algunas capacidades de intercepción que aprovechan PIAB.


Spring.NET proporciona AOP también. Requiere mucha configuración, pero una vez que se configura funciona bien.