Il namespace My è stato introdotto in Visual Basic 2005: contiene un'insieme di oggetti che forniscono percorsi 'semplificati' a molte aree del framework .NET, semplificando la scrittura del codice e riducendo la grandezza dello stesso.

Da notare che tale funzionalità è disponibile esclusivamente in VisualBasic .NET: non esiste niente di equivalente in C#.

Diamo ora un rapido sguardo a gli oggetti contenuti nel namespace

  • My.Application fornisce informazioni sull'applicazione corrente (percorso, versione ecc..)

  • My.Computer mette a disposizione una serie di oggetti child che permettono di avere informazioni e accedere a caratteristiche specifiche del computer (filesyste, rete, audio, video, mouse, memoria, stampanti ecc..)

  • My.Forms permette di referenziare l'istanza principale di un form senza la necessità di creare una istanza della classe form.

  • My.Resources fornisce un oggetto per ogni risorsa definita nel progetto corrente.

  • My.Settings espone una proprietà per ogni impostazione di configurazione, sia a livello di applicazione che a livello utente

  • My.User fornisce informazioni sull'utente collegato e permette la realizzazione di un sistema di autenticazionepersonalizzato

  • My.WebServices mette a disposizione una proprietà per ciascun WebService a cui il progetto corrente fa riferimento.


Trattare tutte le funzionalità del namespace My in un singolo articolo è improponibile, mi limiterò quindi a proporre qualche semplice esempio di utilizzo, quasi tutti tratti da MSDN.

  • Scrivere nei log di sistema:
    utilizzeremo l'entry point My.Application.Log
    My.Application.Log.WriteEntry("Avvio Applicazione")

  • Effettuare il download di un file:
    My.Computer.Network.DownloadFile("http://sito/file.zip", "c:\temp\")
    file.zip verrà scaricato nella directory c:\temp

  • Eseguire un file sonoro come 'sottofondo' a una applicazione:
    My.Computer.Audio.Play("c:\suono.wav", AudioPlayMode.BackgroundLoop)
    per fermarne l'esecuzione
    My.Computer.Audio.Stop()

  • Scrivere e leggere nella clipboard:
    My.Computer.Clipboard.SetText("testo")
    Dim testoclip As String = My.Computer.Clipboard.GetText

  • Effettuare un 'ping':
    If My.Computer.Network.Ping("andreafortuna.wordpress.com") Then
    MessageBox.Show("Host raggiungibile!")
    Else
    MessageBox.Show("Host NON raggiungibile!")
    End If

  • Copiare un file:
    My.Computer.FileSystem.CopyFile("C:\Temp\test.txt", "C:\Logs")Se si vuole fare in modo che il file venga sovrascritto se già presente e venga visualizzata la finestra standard di 'copia in corso' usare questa sintassi
    My.Computer.FileSystem.CopyFile("C:\Temp\test.txt", "C:\Logs", True, True)

  • Scrivere e leggere valori nel registro di configurazione:
    My.Computer.Registry.SetValue _ ("HKEY_CURRENT_USER\MyTestKey","MyTestKeyValue","This is a test value.")readValue = My.Computer.Registry.GetValue _ ("HKEY_CURRENT_USER\MyTestKey", "MyTestKeyValue", Nothing)

  • Ottenere informazioni sul sistema:
    Memoria fisica disponibile
    My.Computer.Info.AvailablePhysicalMemory
    Memoria fisica totale
    My.Computer.Info.TotalPhysicalMemory
    Sistema Operativo
    My.Computer.Info.OSFullName & vbCrLf & _
    My.Computer.Info.OSPlatform & vbCrLf & My.Computer.Info.OSVersion


Come al solito, per maggiori informazioni, vi rimando alla apposita pagina su MSDN.