Śledzenie aktywności użytkownika ASP.Net w bazie danych

Chodzi o prostą, ale wydajną strukturę rejestrowania aktywności, którą chcę zintegrować z moją istniejącą aplikacją webową opartą na ASP.Net (mam backend oparty na SQL LINQ-to-SQL). Używam czegoś takiego jak architektura usług do wykonywania operacji DB - to jest wywoływanie odpowiednich operacji LINQ. Mam klasę usług dla prawie każdej jednostki (tj. Tabeli DB) i obsługuje operacje CRUD.

Ogólnie rzecz biorąc, muszę śledzić działania takie jak - Mr.X dodał nowy element, My.Y wyszukał na tym filtrze, Mr.Z wyeksportował wynik siatki do dokumentu excela, itd ... i podobnego prostego logowania opartego na operacji rejestrowanie na poziomie pola jest na razie daleko)

Oto, co znalazłem w moich dwóch dniach badań i rozwoju na forum SO, innych forach i internecie:

Podejście 1: Prosty, stary sposób używania dwóch tabel: Aktywność (przechowuje WSZYSTKIE czynności wraz z aktorem) i Typ aktywności (wyświetla typy działań). Mam warstwę usług, więc albo mogę mieć klasę „ServieBase”, która stuka WSZYSTKIE zdarzenia CRUD i rejestruje to, w którym jestem zainteresowany. Wszystko jest obsługiwane z poziomu kodu.

Przykład:http://dotnetslackers.com/articles/aspnet/Tracking-User-Activity.aspx

Podejście 2: Użyj wyzwalaczy bazy danych, aby stuknąć zdarzenia na poziomie tabeli, a następnie wykonać rejestrowanie. To będzie całkowicie „abstrakcyjne” dla aplikacji. W każdej tabeli mam pole „LastModifiedBy”, więc otrzymam dane „aktora” i mogę zrobić rejestrowanie, ale może to ograniczyć mnie do operacji DB i potrzebować osobnego śledzenia innych działań aplikacji. ale jeśli warto, mogę to rozważyć.

Podejście 3: (koncepcyjne, potrzebują więcej wskazówek)

3.1 Podejście MVC - Zastanawiamy się nad przyjęciem MVC w przyszłości i znalazłem kilka skutecznych sztuczek logowania w MVC, takich jak - (czy jest to coś takiego w tradycyjnej aplikacji internetowej opartej na L2S?)

Rejestruj aktywność użytkownika na aplikacji ASP.NET MVC Śledzenie aktywności / działań użytkowników dla witryny asp.net mvc?

3.2 Usługi śledzenia Znalazłem funkcję „śledzenia” w oknach - czy istnieje jej odpowiednik internetowy?

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

3.3 Różne - Niektóre inne opcje, z którymi się spotkałem, ale nie wydają się zbyt przekonujące lub lepiej powiedzą, że wykonują swoją pracę, ale nie moją :-)

Ref -

http://learn.iis.net/page.aspx/480/sample-web-analytics-tracking-module/

Profiler 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

Więc co powiesz? Wszelkie sugestie i nowe myśli są mile widziane. Na razie wydaje mi się, że ląduję gdzieś pomiędzy dwoma pierwszymi podejściami, ponieważ chcemy, aby w przyszłości było łatwo dodawać dodatkowe działania do zalogowania.

Dziękuję Ci.

questionAnswers(2)

yourAnswerToTheQuestion