.net asp.net aop postsharp

.net - ¿Alguien con experiencia en producción de Postsharp?



asp.net aop (6)

¿Alguien por ahí ha utilizado el marco de POSR de Postsharp en el entorno de producción? ¿Hay alguna trampa? Para hacer un poco de registro, etc., ¿se puede usar Postsharp junto con log4net?

Cualquier tutorial sobre el uso de Postsharp con aplicaciones web y / o log4net será muy apreciado.

Gracias por adelantado.


Intentamos usar post sharp para una o dos cosas, el problema es que arruinó los tiempos de compilación demasiado tiempo. Si está utilizando CI y tiene una metodología de registro frecuente, es mejor que tenga un maldito servidor de compilación y máquinas de estación de trabajo.

Aparentemente, .net 4.0 va a tener un montón de ganchos de compilación para hacer que cosas como AOP sean más fáciles de hacer. Nuestra conclusión final fue esperar eso.


Uso Postsharp y me gusta. Me salvó un montón de código duplicado que tuve que agregar de lo contrario.

No necesitaba ninguna característica avanzada para log4Net y google es suficiente para descubrir cómo funciona. Simplemente hace el trabajo. No he visto ninguna desventaja hasta ahora.

Para Postsharp, la guía de inicio en el sitio web, el blog y la navegación a través de la fuente es suficiente. Una gran desventaja es el aumento del tiempo de construcción. Odio esperar a que mi computadora funcione. Se requieren aproximadamente 8 segundos para presionar ctrl-shift-b en Visual Studio (en una PC rápida) para la solución de loc de +60K con 2 proyectos que utilizan la acción de compilación post-FSP. Si puedes, trata de usar Postsharp en la menor cantidad posible de proyectos.

Cuando realmente no desea utilizar postsharp, puede crear una solución con 20 proyectos y agregar el comando post-build a cada uno de ellos. El tiempo de construcción será lo suficientemente largo como para molestar al resto del equipo.

Personalmente, probablemente seguiré usando Postsharp para futuros proyectos. Las ventajas anulan el tiempo de construcción extra.


Usamos PostSharp en producción, tanto para el tiempo de ejecución 3.5 como para el tiempo de ejecución de Silverlight. Para acelerar un poco las compilaciones, puede usar / m: cambiar para msbuild (google para construcciones paralelas con msbuild). También prometen acelerarlo dramáticamente en el próximo lanzamiento.


Uso post sharp, me encanta. El tiempo de construcción nítido posterior es molesto, pero es posible. En el modo de depuración, uso el SKIPPOSTSHARP condicional que elimina el postratamiento.


Según PostSharp Community Survey , muchas empresas usan PostSharp en producción. Lo frustrante es que se niegan a ser identificados :-(.


Yo y otro compañero de equipo utilizamos PostSharp de diferentes maneras en varios proyectos que están en producción y lo han estado haciendo 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 el código, es posible que desee excluirlo de su compilación local, que es lo suficientemente fácil de hacer, por lo que puede continuar compilando con frecuencia y rápidamente, luego incluirlo en su servidor de compilación, etc.

Aquí hay un buen tutorial de PostSharp de Gael (el creador de PostSharp) ... aunque es antiguo, 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 hayas 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 construcción, ha convertido un ensamblaje en un código inválido o dañado. 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.