【发布时间】:2010-12-29 01:02:10
【问题描述】:
这是关于一个简单而高效的活动记录框架,我想将它与我现有的基于 ASP.Net 的 web 应用程序集成(我有一个基于 LINQ-to-SQL 的 SQL DB 作为后端)。我正在使用类似服务架构的东西来执行数据库操作——即调用相关的 LINQ 操作。我为几乎每个实体(即 DB 表)提供了一个服务类,它处理 CRUD 操作。
一般来说,我需要跟踪活动 喜欢 - Mr.X 添加了一个新项目,My.Y 在此过滤器上搜索,Mr.Z 已导出 将 Grid 的结果转换为 excel 文件等...和类似的简单 基于操作的日志记录(字段级 日志记录现在还很远)
所以,以下是我在 SO、其他论坛和网络上进行两天研发的发现:
方法一: 使用两个表的简单旧方法:Activity(存储所有活动及其参与者)和 ActivityType(列出活动类型)。我有一个服务层,所以我可以有一个“ServieBase”类,它可以点击所有 CRUD 事件并记录我感兴趣的事件。一切都在代码中处理。
示例: http://dotnetslackers.com/articles/aspnet/Tracking-User-Activity.aspx
方法二: 使用数据库触发器在表级别点击事件,然后执行日志记录。这对于应用程序来说将是完全“抽象的”。我在每个表中都有“LastModifiedBy”字段,因此我将获取“演员”数据并且可以进行日志记录,但这可能会限制我进行 DB 操作并需要我单独跟踪其他应用程序活动。但如果它值得我可以考虑。
方法 3:(概念性,需要更多指导)
3.1 MVC 方法 - 我们正在考虑在未来采用 MVC,并且我在 MVC 中发现了一些有效的日志记录技巧,例如 - (对于基于 L2S 的传统网络应用程序有类似的东西吗? )
Log User Activity on ASP.NET MVC Application Track user activity/actions for an asp.net mvc website?
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 探查器: 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
那么,怎么说呢?欢迎任何建议和新想法。目前,我似乎介于前两种方法之间,因为我们希望将来能够轻松添加任何要记录的额外活动。
谢谢。
【问题讨论】:
标签: asp.net database linq-to-sql logging android-activity