2009-12-22 28 views
12

Đây là một khung khai thác hoạt động đơn giản nhưng hiệu quả mà tôi muốn tích hợp với ứng dụng web dựa trên ASP.Net hiện có của tôi (Tôi đã sử dụng SQL DB LINQ-to-SQL) phụ trợ). Tôi đang sử dụng một cái gì đó giống như một kiến ​​trúc dịch vụ để thực hiện các hoạt động DB - đó là gọi các hoạt động LINQ có liên quan. Tôi đã là một lớp dịch vụ cho hầu hết mọi thực thể (tức là bảng DB) và nó xử lý các hoạt động CRUD.Theo dõi hoạt động của người dùng ASP.Net trong cơ sở dữ liệu

Nói chung, tôi cần phải theo dõi các hoạt động như - Mr.X thêm một mục mới, My.Y tìm kiếm trên bộ lọc này, Mr.Z xuất khẩu kết quả của Grid để một tài liệu excel , vv ... và tương tự đơn giản hoạt động dựa trên khai thác gỗ (trường cấp khai thác gỗ là xa cho bây giờ)

vì vậy, đây là những gì tôi đã tìm thấy trong hai ngày của tôi về R & D trên các diễn đàn SO, khác và web:

Cách tiếp cận 1: Cách cũ đơn giản khi sử dụng hai bảng: Hoạt động (lưu trữ TẤT CẢ các hoạt động cùng với diễn viên của nó) & Loại hoạt động (liệt kê các loại hoạt động). Tôi đã có một lớp dịch vụ để tôi có thể có một lớp "ServieBase" để khai thác tất cả các sự kiện CRUD và ghi lại sự kiện mà tôi quan tâm. Mọi thứ được xử lý từ bên trong mã.

Ví dụ: http://dotnetslackers.com/articles/aspnet/Tracking-User-Activity.aspx

Phương pháp 2: Sử dụng cơ sở dữ liệu trigger để khai thác các sự kiện ở cấp bảng và sau đó thực hiện khai thác gỗ. Điều này sẽ hoàn toàn 'trừu tượng' đối với ứng dụng. Tôi đã "LastModifiedBy" lĩnh vực trong mỗi bảng vì vậy tôi sẽ nhận được dữ liệu 'diễn viên' và tôi có thể làm việc đăng nhập nhưng điều này có thể giới hạn tôi để hoạt động DB & cần tôi để theo dõi các hoạt động ứng dụng khác một cách riêng biệt. nhưng nếu giá trị của nó tôi có thể xem xét nó.

Cách tiếp cận 3: (khái niệm, cần có thêm hướng dẫn)

3.1 MVC tiếp cận - Chúng tôi đang nghĩ đến việc áp dụng MVC trong tương lai và tôi đã tìm thấy một số thủ thuật khai thác gỗ hiệu quả trong MVC như - (được bất cứ điều gì ther như thế cho truyền thống L2S ​​trang web dựa trên ứng dụng?)

Log User Activity on ASP.NET MVC Application Track user activity/actions for an asp.net mvc website?

3,2 Tracking Dịch vụ Tôi bắt gặp một tính năng 'theo dõi dịch vụ' trong các cửa sổ - có tương đương với web không?

http://msdn.microsoft.com/en-us/magazine/cc163466.aspx http://www.codeproject.com/KB/WF/WWF__Tracking_Service.aspx?msg=2879654

3.3 Misc - Một số tùy chọn khác mà tôi đi qua nhưng dường như không quá thuyết phục hoặc Tốt hơn tôi nên nói rằng họ làm công việc của họ nhưng không phải của tôi :-)

Ref -

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

Vì vậy, những gì nói? Bất kỳ đề xuất và suy nghĩ mới được chào đón. Bây giờ, có vẻ như tôi đã hạ cánh ở đâu đó giữa hai phương pháp đầu tiên vì chúng tôi muốn nó dễ dàng trong tương lai để có thể thêm bất kỳ hoạt động bổ sung nào để được ghi lại.

Cảm ơn bạn.

Trả lời

1

Tôi đã sử dụng trong hai phương pháp đầu tiên vì chúng dường như đơn giản và dễ dàng hơn. Hầu hết tất cả chúng cung cấp sự kiểm soát nhiều hơn và cho phép giữ cho mọi thứ linh hoạt theo yêu cầu (tức là gần với mã phụ trợ thực tế) giúp cho nó dễ tiếp cận hơn)

Tôi đánh dấu nó là không có đánh giá mở rộng nào khác.

Cảm ơn bạn.

+0

Bạn đã đến đúng chưa. Tôi đang xem xét việc xây dựng chính xác điều tương tự. – Zapnologica

1

Đây là một mục khác để thêm vào bộ công cụ của bạn: Sql Server Change Tracking. Nhưng nó sẽ không làm mọi thứ bạn đang tìm kiếm ở đây. Bạn có thể xem qua số Command pattern. Tôi sẽ tạo một giao diện, ITrackedCommand, và sau đó thực hiện chúng như các lệnh mà người dùng có thể thực hiện. Sau đó, mỗi một được thực hiện thông qua một điều phối lệnh mà tự động gọi ITrackedCommand.Log. Tôi nghĩ rằng sẽ giúp bạn có được nơi bạn cần phải đi.

Các vấn đề liên quan