AOP incorporado en C # – ¿Está en camino?

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?

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 «Comstackdor como servicio», se pueda conectar al comstackdor e inyectar aspectos allí.

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.

La versión de mayo de Delphi Prism tiene soporte AOP a nivel de idioma.

Puedes encontrar más información aquí

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

También hay una biblioteca de código abierto de aspectos de esta ubicación.

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