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 >>