Alla sessione "Language Revolution" del Workshop del 22/6 parlerò anche del nuovo Namespace My disponibile ai soli programmatori VB (e in alcuni casi mi chiedo il motivo...).
Alcune features sono dei semplici shortcuts verso le relative classi del framework, in altri invece viene anche wrappate la logica di contorno che le classi native del .Framework richiedono.

Un esempio:

"Dovete verificare se siete connessi ad internet, in caso affermativo pingare un indirizzo e scaricare un file in una cartella."

Ecco il codice in VB2005:

If (My.Computer.Network.IsAvailable)
Then
  
If My.Computer.Network.Ping("http://www.mysite.com"
, 30) Then
    
My.Computer.Network.DownLoadFile("www.mysite.com/myfile.zip"
, "c:\")
  End
If
End If

Si può fare questo in C# 2005?, certamente, bisogna scrivere un po di codice...

Questa è la parte relativa a IsAvailable... (by Reflector)

public bool IsAvailable()
{
 NetworkInterface interface1;
int num1;
NetworkInterface[] interfaceArray2 = NetworkInterface.GetAllNetworkInterfaces();
for (num1 = 0; (num1 < interfaceArray2.Length); num1 += 1)
 {
  interface1 = interfaceArray2[num1];
  if ((((interface1.Type == InterfaceType.Loopback) == false) & ((interface1.Type == InterfaceType.Tunnel) == false)) & (interface1.OperationalStatus == OperationalStatus.Up))
  {
   return true;
  }
 }
 return false;
}

e questa alla parte di Ping (from MSDN)

Public bool Ping()
{
 Ping pingSender = new Ping ();
 PingOptions options = new PingOptions ();
 options.DontFragment = true;
 string data = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
 byte[] buffer = Encoding.ASCII.GetBytes (data);
 int timeout = 30;
 PingReply reply = pingSender.Send (args[0], buffer, timeout, options);
 return (reply.Status == IPStatus.Success)
}

Vi risparmio quella su DownloadFile...
Ci sono parecchi altri casi, ma ne parleremo il 22... ;-)