Pregunta

¿Alguien ha utilizado por ahí el Postsharp en el marco de AOP en un entorno de producción? ¿Hay alguna trampa? Para hacer algún registro, etc., ¿se puede utilizar Postsharp junto con Log4Net?

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

Gracias de antemano.

¿Fue útil?

Solución

Yo y otro compañero de equipo utilizamos PostSharp de diferentes maneras en varios proyectos que están en producción y que lo han estado 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 para inyectar llamadas de método (en entrada de método, salida y excepciones, por ejemplo) y puede agregar fácilmente las llamadas de registro a los registradores registrados log4net.

Ha aumentado los tiempos de construcción, lo suficiente para cambiar ligeramente mis hábitos de construcción, pero ciertamente no es demasiado para los beneficios que proporciona, OMI. Mientras escribe el código, es posible que desee excluirlo de su compilación local, que es bastante fácil de hacer, por lo que puede continuar compilando con frecuencia y rapidez, luego incluirlo en su servidor de compilación, etc.

Aquí hay un buen tutorial de PostSharp de Gael (el creador de PostSharp) ... aunque es viejo, es bueno verlo como una pasada. Realmente no hay diferencia en su uso 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 ensamblados / clases a los que aplicas los aspectos y el tiempo que PostSharp agrega a tu compilación. Así que incluso puedes controlar un poco los problemas de tiempo de compilación.

En cuanto al código, estoy muy impresionado con lo bien que funciona PostSharp ... nunca ha arruinado una compilación, ha invalidado un ensamblaje o ha estropeado el código. Incluso lo he usado en aplicaciones ASP.NET, con cobertura de código e instrumentación de rendimiento (por lo que se juega muy bien con las herramientas de instrumentación de MS 'Assembly).

En definitiva, me gustaría def. te recomiendo que lo pruebes para tus requisitos de log4net.

Otros consejos

Uso Postsharp y me gusta. Me guardé un montón de código duplicado que tuve que agregar de otra manera.

No necesitaba ninguna función 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 desventaja importante es el aumento del tiempo de construcción. Odio esperar a que mi computadora haga el trabajo. Se tarda unos 8 segundos en presionar ctrl-shift-b en Visual Studio (en una PC rápida) para la solución de locación de + -60K con 2 proyectos que usan la acción de compilación postsharp. Si puede, intente utilizar Postsharp en la menor cantidad de proyectos posible.

Cuando realmente no quieras usar postsharp, puedes 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, seguiré usando Postsharp para futuros proyectos. Las ventajas anulan el tiempo de construcción adicional.

Tratamos de usar Post Sharp para una o dos cosas, el problema era que hacía que los tiempos de compilación fueran demasiado largos. Si está utilizando CI y tiene una metodología de registro frecuente, es mejor que tenga un servidor de construcción y máquinas de estación de trabajo muy buenos.

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

Yo uso post sharp, me encanta. El tiempo de construcción posterior es molesto, pero es capaz de hacerlo. En el modo de depuración, uso el SKIPPOSTSHARP condicional que elimina postsharp.

De acuerdo con la Encuesta de la comunidad PostSharp , Muchas empresas utilizan PostSharp en la producción. Lo frustrante es que se niegan a ser identificados :-(.

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

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