ASP.Net Seguimiento de la actividad del usuario en la base de datos

Se trata de un marco de registro de actividades simple pero eficiente que quiero integrar con mi aplicación web basada en ASP.Net existente (tengo una base de datos SQL basada en LINQ-to-SQL como backend). Estoy usando algo como una arquitectura de servicio para realizar operaciones de base de datos, es decir, invocar operaciones de LINQ relevantes. Tengo una clase de servicio para casi todas las entidades (es decir, la tabla de base de datos) y maneja las operaciones de CRUD.

En general, necesito realizar un seguimiento de actividades como: Mr.X agregó un nuevo artículo, My.Y buscó en este filtro, Mr.Z exportó el resultado de Grid a un documento de Excel, etc ... y un registro similar basado en operaciones simples ( el registro a nivel de campo está lejos por ahora

Entonces, esto es lo que he encontrado en mis dos días de I + D en el SO, otros foros y la web:

Enfoque 1: Una forma sencilla y antigua de usar dos tablas: Activity (almacena TODAS las actividades junto con su actor) y ActivityType (enumera los tipos de actividades). Tengo una capa de servicio, o bien puedo tener una clase "ServieBase" que toca TODOS los eventos de CRUD y registra el que me interesa. Todo se maneja desde dentro del código.

Ejemplo:http://dotnetslackers.com/articles/aspnet/Tracking-User-Activity.aspx

Enfoque 2: Use la base de datos TRIGGER para tocar eventos en el nivel de la tabla y luego realice el registro. Esto será completamente 'abstracto' a la aplicación. Tengo el campo "LastModifiedBy" en cada tabla, así que obtendré los datos del "actor" y puedo hacer el registro, pero esto podría limitarme a las operaciones de base de datos y necesitaría que rastree otras actividades de la aplicación por separado. Pero si vale la pena puedo considerarlo.

Enfoque 3: (conceptual, necesita más orientación)

3.1 enfoque de MVC - Estamos pensando en adoptar MVC en el futuro y he encontrado algunos trucos de registro eficientes en MVC como - (¿Hay algo así para la aplicación web tradicional basada en L2S?)

Registrar la actividad del usuario en la aplicación MVC de ASP.NET ¿Rastrear la actividad / acciones del usuario para un sitio web de asp.net mvc?

3.2 Servicios de seguimiento Encontré una función de 'servicio de rastreo' en Windows. ¿Existe su equivalente en la web?

http://msdn.microsoft.com/en-us/magazine/cc163466.aspx http://www.codeproject.com/KB/WF/WWF__Tracking_Service.aspx?msg=2879654

3.3 Misc - Algunas otras opciones con las que me topé, pero que no parecen ser demasiado convincentes, o mejor digo que hacen su trabajo pero no el mío :-)

Ref -

http://learn.iis.net/page.aspx/480/sample-web-analytics-tracking-module/

Analizador de SQL:https://web.archive.org/web/1/http://articles.techrepublic%2ecom%2ecom/5100-10878_11-5054787.html http://technet.microsoft.com/en-us/library/cc966515.aspx

Entonces, ¿qué dicen? Cualquier sugerencia y nuevos pensamientos son bienvenidos. Por ahora, parece que me quedaría en algún lugar entre los dos primeros enfoques porque queremos que en el futuro sea fácil poder agregar cualquier actividad adicional para registrar.

Gracias.

Respuestas a la pregunta(2)

Su respuesta a la pregunta