martedì 22 giugno 2010

1° evento DomusDotNet AfterHour.

Si è tenuto oggi, in maniera del tutto informale e per pochi, ma motivatissimi ospiti, il primo evento after hour della community DomusDotNet.

Un immenso grazie ad Andrea Saltarello che ha dimostrato di essere un grande dal punto di vista tecnico ma soprattutto dal punto di vista umano.

Mi spiace per chi non c’era ma sono state 2 ore e mezza volate e dense di argomenti.

Un grazie va anche a Nick che ha organizzato il tutto in fretta e furia ed è riuscito ad ottenere un ottimo risultato.

Technorati Tag: ,,

lunedì 21 giugno 2010

Una funzione per leggere i parametri di sistema utilizzando le WMI Management Class

Il namespace System.Management (contenuto nell’assembly System.Management.dll) contiene un insieme di classi che ci consentono di eseguire delle query nei parametri del sistema operativo alla ricerca di entità altrimenti non recuperabili con le classi del framework.

La classe fondamentale è la ManagementObjectSearcher la cui funzione è quella di eseguire delle vere e proprie query (stile SQL) all’interno delle “tabelle” di sistema e restituire una collezione di ManagementObject contenenti i valori.

Ad esempio per eseguire una ricerca all’interno dei parametri del processore, possiamo scrivere:

  1. Dim oSearcher As New ManagementObjectSearcher("SELECT * FROM Win32_OperatingSystem")
  2. Dim oMgmtObjs = oSearcher.Get


La collezione oMgmtObjs contiene l’insieme dei parametri di sistema della “tabella” Win32_Processor.

La struttura ritornata dalla query è consultabile all’indirizzo http://msdn.microsoft.com/en-us/library/aa394373(v=VS.85).aspx e troviamo, ad esempio, il parametro Manufacturer che ci fornisce informazioni riguardanti il costruttore del processore.

La seguente funzione permette di accedere ad una collezione di oggetti di una tabella di sistema a partire dal nome della tabella e del campo:

  1. Public Function GetWMIField(ByVal wmiClass As String, ByVal wmiField As String) As IEnumerable(Of Object)
  2.     Dim retObj As IEnumerable(Of Object) = Nothing
  3.     Try
  4.         Using oSearcher = New ManagementObjectSearcher(String.Format("SELECT * FROM {0}", wmiClass))
  5.             Dim oMgmtObjs = oSearcher.Get
  6.             If oMgmtObjs IsNot Nothing Then
  7.                 Try
  8.                     retObj = (From i In oMgmtObjs.OfType(Of ManagementObject)()
  9.                                 Select i(wmiField)).ToList()
  10.                 Catch ex As Exception
  11.                     Throw New ApplicationException("WMIField not exists!")
  12.                 End Try
  13.             End If
  14.         End Using
  15.     Catch ex As Exception
  16.         Throw New ApplicationException("WMIClass not exists!")
  17.     End Try
  18.     Return retObj
  19. End Function

Utilizzando questa funzione possiamo ricavare, ad esempio l’identificativo del processore, la data di installazione del sistema operativo o il tipo di batteria installata in un notebook:

  1. Sub Main()
  2.     Dim processorID = GetWMIField("Win32_Processor", "ProcessorId").First()
  3.     Dim osInstallDate = GetWMIField("Win32_OperatingSystem", "InstallDate").First()
  4.     Dim CurrentReading = GetWMIField("Win32_Battery", "Chemistry").First()
  5. End Sub

Per avere la lista completa delle classi WMI Win32 su cui eseguire la ricerca, vedere il link http://msdn.microsoft.com/en-us/library/aa394084(v=VS.85).aspx mentre l’intero elenco delle classi WMI è disponibile all’indirizzo http://msdn.microsoft.com/en-us/library/aa394554(v=VS.85).aspx.  

sabato 19 giugno 2010

1° Evento After Hour DomusDotNet: ASP.NET MVC2, non solo tecnologia

clip_image002

La community DomusDotNet compie un mese e organizza un evento After Hour per il giorno lunedì 21 Giungo alle ore 19:30.

Si parlerà di ASP.NET MVC2 con Andrea Saltarello.

Per chi non lo conosce Andrea Saltarello è presidente e socio fondatore di UGIdotNET, autore del libro Microsoft .NET: Architecting Applications for the Enterprise, MVP Microsoft, e molto altro ancora. Per maggiori informazioni: https://mvp.support.microsoft.com/default.aspx/profile/andrea.saltarello

Questo primo evento è riservato agli utenti iscritti al portale della community (www.domusdotnet.org). L’iscrizione è gratuita e, attualmente, fa si che possiate ricevere la newsletter ed essere aggiornati sulle attività che stiamo organizzando.

 

Technorati Tag: ,,