Programmare Applicazioni di Rete in .NET

Tra i tanti obiettivi della piattaforma di Microsoft .NET vi è quello di semplificare e ridurre i tempi di sviluppo di applicazioni distribuite. In pratica l’ambiente è una sorta di super COM ( Component Object Model ) che rende possibile la riutilizzazione del codice nei vari linguaggi di programmazione. Il framework garantisce anche un’eccellente interoperabilità in quanto aperto verso piattaforme non Windows, grazie a SOAP ( Simple Object Access Protocol ), un protocollo standard per la comunicazione inter-processo che utilizza XML per la descrizione dei dati e HTTP come protocollo di trasporto. In questo articolo analizzeremo le classi sviluppate per quelle applicazioni che utilizzano direttamente i protocolli di rete Internet. Il supporto allo sviluppo di applicazioni di rete in .NET è offerto dal namespace System.Net, per poterlo utilizzare nelle nostre applicazioni occorre utilizzare la seguente sintassi:

  • using System.Net; in C# ( sharp )
  • Imports System in VB.NET
  • #using per il Managed C++
  • using namespace System::Net; per il Managed C++

Tutta la rappresentazione dei dati che vengono manipolati, spediti e ricevuti attraverso le classi del .Net framework, sono rappresentati attraverso oggetti Stream, che altro non sono che semplici flussi di dati e che vengono gestite nel namespace System.IO.
Vediamo un esempio sulla risoluzione dei nomi, quello che si chiama DNS ( Domain Name System ) e che consente di trasformare indirizzi IP a nomi e vicerversa.

using System;
using System.Net;

public class Corso
{
   static void Main(string[] args)
   {
         IPAddress[] ip;

         Console.WriteLine("Indirizzo Web:");
         String buffer = Console.ReadLine();
         ip = Dns.GetHostAddresses(buffer);

         foreach (IPAddress ips in ip)
              Console.WriteLine("{0}", ips);

         Console.ReadKey();
   }
}

In questo semplice esempio in C# chiediamo all’utente un sito web ed il programma ci restituisce l’indirizzo IP del sito stesso. Lo stesso programma in VB.NET risulta essere:

Imports System.Net

Module Corso
   Sub Main()
        Dim ip() As IPAddress, strBuf As String

        Console.WriteLine("Indirizzo Web:")
        strBuf = Console.ReadLine()
        ip = Dns.GetHostAddresses(strBuf)

        For Each ips In ip
              Console.WriteLine("{0}", ips)
        Next

        Console.ReadKey()
   End Sub
End Module

Per ora terminiamo qui, ma nella prossima parte di questo articolo tratteremo delle richieste ( request ) dati HTTP e delle risposte ( response ) utilizzando sempre le classi adibite a questo compito nel framework .NET, corredando sempre il tutto da esempi di codice.

<< Lezione PrecedenteInizio CorsoIndice LezioniLezione Successiva >>

Di Giampaolo Rossi

Sviluppatore software da oltre 16 anni.