Это простую, но эффективную структуру ведения журнала активности, которую я хочу интегрировать с моим существующим веб-приложением на базе ASP.Net(на базе SQL DB на основе LINQ-SQL). Я использую что-то вроде сервис-архитектуры для выполнения операций с БД - это вызывает соответствующие операции LINQ. У меня есть класс обслуживания почти для каждого объекта (т.е. Таблицы БД), и он обрабатывает операции CRUD.
В целом мне нужно отслеживать действия вроде - Mr.X добавил новый элемент, My.Y поиск на этом фильтре, Mr.Z экспортируется результат Grid для Excel документ и т.д. и аналогичные простые основанный на работе (полевой уровень регистрация сейчас далека)
Итак, вот что я нашел за два дня R & D на SO, других форумах и в Интернете:
Подход 1: Простой старый способ использования двух таблиц: Activity (сохраняет ВСЕ действия вместе с его актером) и ActivityType (перечисляет типы действий). У меня есть служебный слой, так что у меня может быть класс "ServieBase", который удаляет ВСЕ события CRUD и записывает ту, в которой я заинтересован. Все обрабатывается из кода.
Пример: http://dotnetslackers.com/articles/aspnet/Tracking-User-Activity.aspx
Подход 2: Используйте TRIGGER для доступа к событиям на уровне таблицы, а затем выполните регистрацию. Это будет полностью "абстрактным" для приложения. У меня есть поле "LastModifiedBy" в каждой таблице, поэтому я получаю данные "actor", и я могу выполнить регистрацию, но это может ограничить меня операциями DB и требует от меня отслеживать другие действия приложения отдельно. но если это стоит, я могу это рассмотреть.
Подход 3: (концептуально, нужно больше рекомендаций)
3.1. Подход MVC. Мы думаем о принятии MVC в будущем, и я нашел некоторые эффективные трюки для регистрации в MVC, например - (это что-то похожее на традиционное веб-приложение на основе L2S? )
Зарегистрировать активность пользователя в приложении ASP.NET MVC Отслеживать действия пользователя/действия для веб-сайта asp.net mvc?
3.2 Службы отслеживания Я столкнулся с функцией отслеживания в Windows - есть ли ее веб-эквивалент?
http://msdn.microsoft.com/en-us/magazine/cc163466.aspx http://www.codeproject.com/KB/WF/WWF__Tracking_Service.aspx?msg=2879654
3.3 Разное. Некоторые другие варианты, которые я натолкнулся, но не кажутся слишком убедительными, или я бы сказал, что они выполняют свою работу, но не мои: -)
Ref -
http://learn.iis.net/page.aspx/480/sample-web-analytics-tracking-module/
SQL Profiler: 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
Итак, что сказать? Любые предложения и новые мысли приветствуются. На данный момент кажется, что я приземлюсь где-то между подходами первого и второго, потому что мы хотим, чтобы в будущем было легко добавить любую дополнительную активность для регистрации.
Спасибо.