Речь идет о простой, но эффективной среде ведения журналов активности, которую я хочу интегрировать с моим существующим веб-приложением на основе ASP.Net (в качестве бэкэнда у меня есть база данных SQL на основе LINQ-to-SQL). Я использую что-то вроде сервисной архитектуры для выполнения операций с БД, то есть для вызова соответствующих операций LINQ. У меня есть класс обслуживания почти для каждого объекта (например, таблицы БД), и он обрабатывает операции CRUD.
В общем, мне нужно отслеживать деятельность
как - Mr.X добавил новый пункт, My.Y
искал по этому фильтру, Mr.Z экспортировал
результат Grid в Excel
документ и т.д ... и тому подобное
ведение журнала на основе операций (на уровне поля
ведение журнала пока далеко)
Итак, вот что я нашел за два дня исследований и разработок на SO, других форумах и в Интернете:
Подход 1:
Простой старый способ использования двух таблиц: Activity (сохраняет ВСЕ действия вместе с его действующим лицом) и ActivityType (перечисляет типы действий). У меня есть сервисный слой, поэтому либо я могу иметь класс «ServieBase», который включает ВСЕ события CRUD и регистрирует тот, который мне интересен. Все обрабатывается из кода.
Пример:
http://dotnetslackers.com/articles/aspnet/Tracking-User-Activity.aspx
Подход 2:
Используйте триггеры базы данных, чтобы выбрать события на уровне таблицы, а затем выполнить регистрацию. Это будет полностью «абстрактно» для приложения. В каждой таблице есть поле «LastModifiedBy», поэтому я получу данные «актера» и смогу вести регистрацию, но это может ограничить меня операциями с БД и потребовать, чтобы я отслеживал другие действия приложения отдельно. но если оно того стоит, я могу это рассмотреть.
Подход 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 Разное - Некоторые другие варианты, с которыми я столкнулся, но не кажущиеся слишком убедительными, или я бы лучше сказал, что они выполняют свою работу, но не мою: -)
Ссылка -
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
Так что сказать? Любые предложения и новые мысли приветствуются. На данный момент кажется, что я бы оказался где-то посередине между первыми двумя подходами, потому что мы хотим, чтобы в будущем было легко добавить любую дополнительную активность для регистрации.
Спасибо.