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 Precedente – Inizio Corso – Indice Lezioni – Lezione Successiva >>