¿Es SPRING.Net el mejor marco para la Programación Orientada a Aspectos (AOP)? [cerrado]

StackOverflow https://stackoverflow.com/questions/246470

  •  05-07-2019
  •  | 
  •  

Pregunta

Por favor, dame las ventajas y desventajas de usar el marco en particular.

¿Puede darme ejemplos de éxitos en los que haya usado AOP en sus aplicaciones .net?

¿Fue útil?

Solución

Una publicación anterior, pero podría ayudarlo a ver algunos de los pros y contras de los productos y las implementaciones de AOP.

http: //ayende.com/Blog/archive/2007/07/02/7-Approaches-for-AOP-in-.Net.aspx

Otros consejos

Hasta ahora hemos usado Spring.Net AOP para el ejemplo clásico de AOP de aplicar el registro a una aplicación. No he usado ninguno de los otros frameworks AOP disponibles para .Net.

Funciona extremadamente bien sin un impacto notable en el rendimiento, eliminó una tonelada de código repetitivo y excesivo de nuestra aplicación y mejoró la cobertura de registro y la calidad y consistencia de la información de registro. El registro ahora se escribe en un solo lugar y se configura en un solo lugar: una gran mejora.

Sin embargo, hay un par de advertencias: Spring.Net AOP requiere que se recomiende a cualquier objeto que implemente al menos una interfaz; es decir, si desea registrar llamadas de método a un objeto, ese objeto debe implementar al menos una interfaz. Además, AOP no tiene visibilidad de la actividad dentro de un método recomendado; es decir, no puede usar el registro implementado por AOP para registrar el valor cambiante de una variable dentro de un método, por ejemplo.

Sin embargo, en la práctica, esto es principalmente un problema si está tratando de aplicar retrospectivamente AOP a una aplicación existente. La codificación a la interfaz es una buena práctica de desarrollo IMHO de todos modos y si necesita registrar el funcionamiento interno de sus métodos, puede ser una indicación de que deben ser refaccionados.

AOP requiere cierta planificación para implementarse y requiere cierta disciplina en sus prácticas de codificación, pero, como las pruebas unitarias automatizadas, en mi humilde opinión, esto generalmente solo sirve para mejorar la calidad del código.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top