La biblioteca debería al menos compararse con AspectJ, ¿alguna?¿Alguna biblioteca AOP madura para usar en el mundo .Net?
Respuesta
Puede probar varios contenedores COI que cuentan con AOP fuera de la caja (por ejemplo Spring.Net tiene un poderoso Freamework AOP, el castillo de Windsor tiene Interceptors y también lo hace Unity), utilice Snap con los o utilizar un IL-Weaver como Postsharp.
actualización Me acabo de enterar de "Afterthought", que - si bien temprano en el desarrollo - parece prometedor. Su objetivo es ser una alternativa de OpenSource a Postsharp.
Y se me olvidó mencionar Mono.Cecil que es capaz de IL tejer así:
En Inglés sencillo, con Cecil, puede cargar ensamblados administrados existente, navegar por todos los tipos contenidos, modificar sobre la marcha y guarde nuevamente en el disco el ensamblaje modificado.
Fody usa Cecil para tejer y permite integrar ese paso en la fase de construcción. Viene con algunos complementos convenientes (por ejemplo, implementa INotifyPropertyChanged
o genera un método ToString
de propiedades públicas después de la compilación).
Eche un vistazo a Unity Interception de Microsoft patterns & practices.
Hace años que busco exactamente lo mismo y puedo decir con confianza que no hay nada en .Net que sea ni remotamente comparable con AspectJ en todos los aspectos.
En el mundo .net, encuentro que el proxy dinámico se usa a menudo como mecánico de AOP. Hay solo unas pocas herramientas que soportan el tejido de IL real, como Postsharp y Afterthoughts, ambos encuentran una programación declarativa con atributos como una forma de hacer Orientación de aspecto. Ambos son fáciles de usar, pero si vienes del fondo AOP (AspectJ), no estoy seguro de que sean lo que llamarías AOP.
Hasta ahora no he visto ninguna implementación .Net del patrón de AOP "verdadero" (definido formalmente hace una década, es decir, puntos, puntos de unión, consejos, aspectos, etc.), probablemente porque hay muy poca conciencia e interés en AOP en general, donde su uso común generalmente se limita al registro, a la gestión de transacciones y a la política de excepción, donde el IoC y los atributos suelen ser suficientes.
AOP para el código de dominio empresarial y el código de dominio todavía se ve muy raramente (ni es compatible con ninguna herramienta) en esta etapa en .Net.
Hay un solo proyecto de código abierto con el que me he encontrado recientemente que parece comenzar a llenar este vacío (http://sheepaop.codeplex.com), todavía parece muy temprano, pero parece prometedor como una implementación de AspectJ-ish. Como dije antes, todavía no se puede comparar con AspectJ (según su pregunta), pero la coincidencia es muy evidente y parece deliberada.
Como la pregunta es sobre .NET, puede usar el lenguaje Nemerle, que tiene poderosas funciones de meta-programación.
Nemerle también permite compilar la fuente C# con atributos de macro. De esta manera puede obtener AOP con C#. –
¿Eso significa que el compilador de Nemerle incluye el compilador de C#? – ironic
Sí, Nemerle puede analizar la fuente C# y compilarla. Puede agregar archivos .cs a su proyecto y funciona. Sin embargo, puedes escribir cualquier interfaz del compilador de Nemerle, como VB.Net, la fuente está aquí: https://github.com/rsdn/nemerle/tree/master/snippets/csharp-parser –
- 1. Biblioteca estándar madura para C
- 2. Cuál es la biblioteca JSON más madura para Erlang
- 3. No hay una biblioteca madura de yaml para erlang
- 4. ¿Hay alguna biblioteca DECAPTCHA en .NET?
- 5. Compilación estática en el mundo .NET
- 6. ¿Cuál es la mejor implementación para AOP en .Net?
- 7. ¿Hay alguna buena biblioteca de análisis para .Net?
- 8. ¿Hay alguna biblioteca de reconocimiento de imágenes OK para .NET?
- 9. ¿Hay alguna biblioteca de "gráficos" de consola para .Net?
- 10. ¿Hay alguna biblioteca útil para las aplicaciones de .NET Console?
- 11. Biblioteca UPnP para .Net
- 12. Hola mundo sin usar librerías
- 13. ¿Hay alguna aplicación de SharpKit en el mundo real?
- 14. Biblioteca EXIF para el framework .NET 4.0
- 15. Biblioteca SASL para .net
- 16. ¿Conoces alguna biblioteca OpenSSH para Windows?
- 17. Castle, AOP y Logging in .NET
- 18. ¿Qué bibliotecas de Programación Orientada a Aspectos (AOP) para .NET aún se desarrollan activamente?
- 19. ¿Qué biblioteca de gráficos .net debo usar?
- 20. Biblioteca para Mesh Generation en .Net?
- 21. Biblioteca de matrices para .NET
- 22. ¿Cómo puedo usar programación funcional en el mundo real?
- 23. ¿Por qué el mundo .net no tiene servidores de aplicaciones como el mundo de Java?
- 24. Uso en el mundo real de atributos .NET personalizados
- 25. ¿Qué software de SO falta en el mundo .NET?
- 26. ¿Hay alguna biblioteca confiable de metadatos de imágenes .NET?
- 27. Biblioteca Json para .Net Microframework
- 28. Biblioteca de arreglos para .NET
- 29. biblioteca de coincidencias para .net
- 30. ¿Alguna biblioteca para el reconocimiento de rostros en JavaScript?
+1 para PostSharp, es muy potente y muy fácil de usar –