2009-12-22 49 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的命令調度程序執行。我認爲這會讓你走到你需要去的地方。