2009-12-22 91 views
12

这是关于一个简单而高效的活动日志框架,我想与我现有的基于ASP.Net的Web应用程序(我有一个基于LINQ到SQL的SQL数据库后端)。我正在使用类似服务架构的东西来执行数据库操作 - 即调用相关的LINQ操作。几乎每个实体(即数据库表)都有一个服务类,它处理CRUD操作。ASP.Net在数据库中的用户活动跟踪

一般情况下,我需要跟踪活动 样 - X先生增加了新的项目,My.Y 搜索了该过滤器,Mr.Z出口 网格到Excel文件 的结果,等...和类似的简单 操作基于日志记录(字段级 记录是远远现在)

所以,这里是我在我的[R & d两天自己发现了,因此,其他论坛和网址:

方法1: 使用两个表的简单的旧方法:活动(存储所有活动及其活动)& ActivityType(列出活动的类型)。我有一个服务层,所以或者我可以有一个“ServieBase”类,它可以浏览所有的CRUD事件并记录下我感兴趣的一个。一切都从代码中处理。

实施例: http://dotnetslackers.com/articles/aspnet/Tracking-User-Activity.aspx

方法2: 使用数据库触发器挖掘在表级事件,然后执行日志记录。这对应用程序来说是完全“抽象”的。我在每个表格中都有“LastModifiedBy”字段,因此我将获取“演员”数据,并且可以进行日志记录,但这可能会限制我进行数据库操作&需要我单独跟踪其他应用程序活动。但如果它的价值我可以考虑。

方法3:(概念,需要更多的指导)

3.1 MVC方法 - 我们在MVC想在将来采用MVC的,我已经发现了一些有效的记录小把戏,比如 - (中疗法类似的东西,对于传统的基于L2S Web的应用程序吗?)

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

那么,还有什么好说的?欢迎任何建议和新想法。就目前而言,我似乎将介于前两种方法之间,因为我们希望将来可以轻松添加任何额外的活动进行记录。

谢谢。

回答

1

我最终在前两种方法中使用,因为它们看起来更简单和容易。大部分他们提供更多的控制,并允许保持东西如需要的灵活性(即其接近实际的后端编码,这使得它更容易访问)

我把它标记为没有其他广泛的评论。

谢谢。

+0

你来对吧。我正在研究构建完全相同的东西。 – Zapnologica 2016-10-03 11:44:35

1

这是另一项要添加到您的工具包:Sql Server Change Tracking。但它不会做你在这里寻找的一切。你可以看看Command pattern。我将创建一个接口ITrackedCommand,然后将这些接口实现为用户可以执行的命令。然后,每一个都通过自动调用ITrackedCommand.Log的命令调度程序执行。我认为这会让你走到你需要去的地方。