2011-11-14 7 views
8

Prima di iniziare a scrivere le mie lezioni personalizzate, mi chiedevo se esistesse già una struttura da utilizzare.Esistono strutture disponibili per tenere traccia delle attività degli utenti?

Questo è per un'applicazione Winform/WPF. Memorerò cose come i livelli della batteria, la potenza WiFi, le informazioni sul disco rigido, le informazioni sulla RAM, ecc. Insieme a quelli, devo anche registrare ciò che l'utente stava facendo al momento, come "connesso", "disconnesso" , "cliccato su un determinato pulsante" ecc.

Continueremo a trasmettere queste informazioni a un database SqlCe localmente che alla fine verrà sincronizzato su un server per il debug/reporting.

Sarebbe bello riutilizzare un codice già disponibile.

Grazie per l'aiuto di tutti!

risposta

1

Non si parla di quale lingua si sta utilizzando, ma sto assumendo. Net dal tag C# nel post. In tal caso, è possibile utilizzare log4net per registrare l'attività dell'utente e qualsiasi altro dato utile. Supporta la registrazione nei database insieme a molti altri formati.

+0

Sì. Sto usando C#. Uso già log4net e non l'ho nemmeno considerato. Questa è un'altra buona opzione. – ABR

0

Avete considerato le classi di provider/ruoli/profilo in .net. Queste classi .net vengono solitamente utilizzate per le applicazioni ASP.net ma essenzialmente sono una stored procedure di raccolta e librerie di classi che consentono di tenere traccia del profilo utente e dell'attività con un'applicazione Web. C'è anche la possibilità di determinare se l'utente è attualmente loggato o meno.

È possibile utilizzare quanto segue per creare le tabelle e le stored procedure per supportare la funzionalità che si sta cercando.

ASP.NET SQL Server Registration Tool

Dovrete includere una sezione System.Web nel file app.config con il seguente Nodi figlio così l'applicazione può utilizzare efficacemente le classi. Inoltre, dovrai fare riferimento alla libreria System.Web.Security nei tuoi riferimenti e nelle tue istruzioni "using".

<system.web> 
    <membership defaultProvider="MembeshipProvider"> 
     <providers> 
     <clear/> 
     <add connectionStringName="Test" name="MembeshipProvider" 
      type="SqlMembershipProvider" /> 
     </providers> 
    </membership> 
    <roleManager enabled="true" defaultProvider="RoleProvider"> 
     <providers> 
     <add connectionStringName="Test" name="RoleProvider" type="System.Web.Security.SqlRoleProvider" /> 
     </providers> 
    </roleManager> 
    <profile defaultProvider="ProfileProvider"> 
     <providers> 
     <clear/> 
     <add name="ProfileProvider" type="System.Web.Profile.SqlProfileProvider" 
      connectionStringName="Test"/> 
     </providers> 
     <properties> 
     <add name="FirstName" type="System.String"/> 
     <add name="LastName" type ="System.String"/> 
     <add name="Email" type="System.String"/> 
     . 
    . 
    . 
     </properties> 
    </profile> 
</system.web> 
+0

Grazie! Vado a esaminarlo e vedere se contiene ciò di cui ho bisogno. Non l'ho considerato affatto;) – ABR

+0

Ho finito per creare la mia classe che funge da wrapper per log4Net. Questo sembra funzionare bene, ma dubito dell'efficienza di adesso. – ABR