这是关于一个简单而有效的活动记录框架,我想将它与我现有的基于 ASP.Net 的 Web 应用程序集成(我有一个基于 LINQ-to-SQL 的 SQL DB 作为后端)。我正在使用类似服务架构的东西来执行数据库操作——即调用相关的 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: 使用数据库 TRIGGER 在表级别点击事件,然后执行日志记录。这对于应用程序来说将是完全“抽象的”。我在每个表中都有“LastModifiedBy”字段,因此我将获取“演员”数据并且我可以进行日志记录,但这可能会限制我进行 DB 操作并需要我单独跟踪其他应用程序活动。但如果它值得我可以考虑。
方法3:(概念,需要更多指导)
3.1 MVC 方法- 我们正在考虑在未来采用 MVC,我在 MVC 中发现了一些有效的日志记录技巧,比如 - (对于传统的基于 L2S 的 Web 应用程序有类似的东西吗?)
在 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 探查器: https ://web.archive.org/web/1/http://articles.techrepublic%2ecom%2ecom/5100-10878_11-5054787.html http://technet.microsoft.com/en-us/图书馆/cc966515.aspx
那么,怎么说呢?欢迎任何建议和新想法。目前,我似乎介于前两种方法之间,因为我们希望将来能够轻松添加任何要记录的额外活动。
谢谢你。