Yo y otro compañero de equipo utilizamos PostSharp de diferentes maneras en varios proyectos que están en producción y que han estado en funcionamiento durante meses. Por ejemplo, en un caso, lo uso para registrar valores de parámetros de método en caso de una excepción. PostSharp Laos (incluido en PostSharp) es una forma fácil de usar de las llamadas a métodos de inyección (en la entrada, salida y excepciones de métodos, por ejemplo) y puede agregar fácilmente llamadas de registro a log4net registradores registrados.
Ha aumentado los tiempos de construcción, lo suficiente como para cambiar ligeramente mis hábitos de construcción, pero ciertamente no demasiado para los beneficios que proporciona, IMO. Al escribir código, puede excluirlo de su compilación local, lo cual es bastante fácil de hacer, para que pueda continuar compilando con frecuencia y rápidamente, luego incluirlo en su servidor de compilación, etc.
Aquí hay un good PostSharp tutorial de Gael (el creador de PostSharp) ... aunque es viejo, es agradable verlo como un run-through. Realmente no hay diferencia en usarlo en una consola, winforms, WPF o WebApp que he encontrado hasta ahora.
También diría que una vez que haya descubierto cómo agregar aspectos de Laos a un proyecto, repetir el ejercicio es muy fácil. Y existe una relación entre la cantidad de ensamblajes/clases a los que aplica los aspectos y la cantidad de tiempo que PostSharp agrega a su compilación. Entonces puedes incluso controlar un poco los tiempos de compilación.
En cuanto al código, estoy muy impresionado con lo bien que funciona PostSharp ...nunca ha estropeado una compilación, ha hecho que un ensamble sea inválido o, de lo contrario, haya perdido el código. Y incluso lo he usado en aplicaciones ASP.NET, con cobertura de código e instrumentación de rendimiento (por lo que se reproduce muy bien con las herramientas de instrumentación de ensamblaje de MS).
En general, definitivamente. te recomiendo que lo pruebes para tus requisitos de log4net.
¿Podría vincular a PostSharp en su pregunta? –
Pensé en usarlo justo antes de que fuera comercial. Esta es una ruta muy incorrecta para una biblioteca de AOP. –
Creo que la edición de comunidad todavía existe – Perpetualcoder