2008-12-17 8 views
5

Windows, Firefox lub Google Chrome wszystkie statystyki użytkowania monitora i analizować raporty o awariach są do nich wysyłane. Zastanawiam się nad wprowadzeniem tej samej funkcji do mojej aplikacji.Monitorowanie statystyki użycia - jak to się robi?

Oczywiście łatwo jest zaśmiecać aplikację z dużą ilością zapisów logowania, ale jest to podejście, którego chcę uniknąć, ponieważ nie chcę, aby mój kod miał zbyt wiele problemów związanych z przekierowaniem w funkcji. Zastanawiam się nad wykorzystaniem AOP do tego, ale wcześniej chcę wiedzieć, w jaki sposób inni ludzie implementują tę funkcję w pierwszej kolejności.

Ktoś ma jakieś sugestie?

Wyjaśnienie: Pracuję nad aplikacji pulpitu i nie pociąga za sobą żadnych RDBMS

Odpowiedz

1

w „Debugowanie .NET 2.0 Applications” John Robbins (od Wintellect) pisze obszernie o tym, jak generować raporty i debugowania zderzeniowe (acutally windbg/SOS mini dumps). Jego klasa Superassert zawiera kod do generowania tych. Ostrzegamy jednak - do prawidłowego ustawienia potrzebnych jest wiele wysiłku: serwery symboli, serwery źródłowe, a także dobra znajomość VS2005 i windbg. Jego książka poprowadzi cię przez ten proces.

Jeśli chodzi o statystyki użytkowania, często wiązałem to z autoryzacją, tzn. Mam prawo użytkownika do wykonania określonego zadania. Nadmiernie prostu umieścić może to być metoda tak (ApplicationActions jest wyliczenia)

public static bool HasPermission(ApplicationActions action) 
{ 
    // Validate user has permission. 
    // Log request and result. 
} 

Metoda ta może być dodana do jednoelementowy klasy SercurityService. Jak już powiedziałem, jest to zbyt proste, ale powinno wskazywać na rodzaj usługi, którą mam na myśli.

0

Chciałbym rzucić okiem na Logging Application Block, który jest częścią Enterprise Library. Dostarczyło wiele rzeczy, których potrzebujesz i jest dobrze utrzymane. Sprawdź niektóre z dostępnych scenariuszy i próbek. Myślę, że znajdziesz je według własnego uznania.

http://msdn.microsoft.com/en-us/library/cc309506.aspx

+0

EL to śmieci, za wszelką cenę tego unikaj. –

+0

Wow, to dość niepotwierdzone twierdzenie. Zgadzam się, że wiele bloków aplikacji jest prawie bezużytecznych, ale niektóre mają zalety. –

1

Joel miał blogu artykuł o czymś takim - jego aplikacja (s) wywala pułapki, a następnie skontaktować się ze swoim serwerem z pewnym zestawem szczegółów. Myślę, że sprawdza duplikaty i wyrzuca je. To świetny system i byłem pod wrażeniem, kiedy go czytałem.

http://www.fogcreek.com/FogBugz/docs/30/UsingFogBUGZtoGetCrashRep.html

Zrobiliśmy to w miejscu, w które byłem miał serwer publiczny przygotowany do odbioru danych. Nie jestem facetem db i nie mam serwerów, które kontroluję w publicznych Internecie. Moje osobiste projekty niestety nie mają jeszcze tej wspaniałej funkcji.