2009-01-06 15 views
23

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

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

Gracias de antemano.

+0

¿Podría vincular a PostSharp en su pregunta? –

+2

Pensé en usarlo justo antes de que fuera comercial. Esta es una ruta muy incorrecta para una biblioteca de AOP. –

+0

Creo que la edición de comunidad todavía existe – Perpetualcoder

Respuesta

26

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.

4

Intentamos usar la publicación nítida para una o dos cosas, el problema es que arruinó los tiempos de compilación demasiado tiempo. Si usa 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.

+1

Gracias, estaba buscando exactamente este tipo de entrada. Tenemos un fan fan de Postsharp en nuestro equipo :) – Perpetualcoder

+0

¿Dónde leíste sobre los ganchos del compilador? ¡Soy curioso! – Paco

+2

Anders ha hablado de ello recientemente en conferencias (no estoy seguro exactamente de dónde lo escuché) Aparentemente, el objetivo a largo plazo es que csc se administre por completo. Código –

5

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

No necesité 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 navegar 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 + -60K con 2 proyectos que usan 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 usar postesofón, puede crear una solución con 20 proyectos y agregar el comando post-compilación a cada uno de ellos. El tiempo de construcción será lo suficientemente largo como para molestar al resto del equipo.

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

4

Uso post sharp, me encanta. El tiempo de construcción nítido después de la publicación es molesto pero es posible. En el modo de depuración, uso el SKIPPOSTSHARP condicional que elimina el posteo.

2

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.

3

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

+0

Gael, usamos PostSharp en producción en www.pirform.co.uk. Bueno, ahora estamos en beta pero pronto lo haremos. Estamos felices de ser identificados también. –

Cuestiones relacionadas