sabato 12 marzo 2011

.Net 4 creazione di un servizio web tramite VB.Net e C#

Riporto l'articolo scritto per il sito http://www.iprogrammatori.it/articoli/programmazione/art_creazione-di-un-servizio-web-con-net-4-v_1017.aspx


Introduzione


In questo articolo vedremo come creare un servizio web (ASMX) che invocando un metodo con due parametri restituisce una stringa.
Questo semplice servizio, vuole fornire al lettore le conoscenze di base ,per la creazione di servizi web da utilizzare nella varie applicazioni.
Si, crea un nuovo progetto web vuoto, in riferimento al linguaggio di proprio interesse.
Tramite il menu file, selezionare la voce, nuovo e successivamente sito web. Nella finestra che viene aperta (figura 1) selezionare tra i modelli disponibili, quello relativo alla dicitura “Sito web Asp.Net vuoto”.


Figura 1


A questo punto confermate l’opzione selezionate tramite il click sul pulsante “OK”.
Dalla finestra di esplora soluzione, selezionate la voce “Aggiungi nuovo elemento”, nella finestra che viene aperta, selezioniamo il modello con la dicitura “Servizio Web”, il tutto come mostrato in figura 2



Figura 2



Nella casella Nome, situata nella parte inferiore della finestra, digitiamo il nome del nostro servizio web.
Confermiamo il tutto, tramite il click sul pulsante Aggiungi.
Verrà creato un servizio web, ed in visualizzazione codice, ci sarà un esempio di utilizzo di un metodo il
famoso helloWorld.
Qui di seguito si riporta tali metodi, per entrambi i linguaggi.


VB.Net


<WebMethod()> _


Public Function HelloWorld() As String


Return "Hello World"


End Function



C#


[WebMethod]


public string HelloWorld()


{


return "Hello World";


}




Come si vede al precedente codice, ogni metodo è contrassegnato tramite la dicitura WebMethod, l’attributo che permette di invocare il metodo del servizio nelle varie applicazioni remote.
Tutte le classi ereditano dalla classe base che è “System.Web.Services.WebService”.
A questo punto, si crea un metodo denominato “Nominativo” che accettando due parametri stringa (Nome e Cognome) restituisce una stringa.
Qui di seguito si riporta la dichiarazione di tale metodo per i linguaggi VB.Net e C#.


VB.Net


<WebMethod()> _


Public Function Nominativo(ByVal Nome As String, ByVal Cognome As String) As String


Return "Nome: " & Nome & " Cognome: " & Cognome



End Function



C#


[WebMethod]


public string Nominativo(string Nome, string Cognome)


{


return "Nome: " + Nome + " Cognome: " + Cognome;


}



Terminata tale operazione, compiliamo la nostra applicazione e la eseguiamo. Vedremo nel browser, il servizio web, con i vari metodi che ha disposizione.
Nella figura 3, sono riportati i due metodi del nostro servizio web, helloWord e nominativo.
Con una parte descrittiva del servizio web.



Figura 3


Se facciamo click sul metodo da noi creato “Nominativo”, viene aperta una finestra, in cui riporterà il dettaglio del nostro metodo, con la possibilità di effettuare un test e la richiesta e risposta soap del nostro servizio Web. Il tutto come mostrato in figura 4



Figura 4


I servizi web, sono risposte e richieste di tipo XML, un protocollo universale, che può essere utilizzato per qualsiasi piattaforma e linguaggio di programmazione.
Se nel riguardo del nostro servizio web, nella sezione test, inseriamo due valori e facciamo click sul pulsante “Richiama” verrà aperta una nuova pagina del browser, con il risultato del metodo.
Richiamare il servizio web da un nostro progetto.
A questo punto non ci resta che testare la nostra applicazione da una windows application.
In questa sezione vedremo come utilizzare il servizio web appena creato invocandolo da una nostra applicazione, il metodo “nominativo”. Si crea un nuovo progetto web, di tipo Windows Form (figura 5).


Figura 5



Il progetto web, lo lanciamo, in modo che la pagina è avviata ed è richiamabile dal nostro progetto di tipo windows.
Una volta che il servizio web è in esecuzione, dalla finestra di esplora soluzione (oppure dalla voce del menu progetto) selezioniamo la voce “Aggiungi riferimento al servizio” nella finestra che viene aperta (figura 6).


Figura 6



Nella finestra che viene aperta, facciamo click sul pulsante avanzate, visto che questa finestra viene utilizzata per i servizi WCF (Windows Communication Foundation).
Nella finestra che viene aperta (Figura 6 lato destro) facciamo click sul pulsante “Aggiungi riferimento web…” e dalla finestra che viene aperta (figura 7) inseriamo nella casella “Url” il link del nostro servizio web, mentre nella casella “nome Riferimento web” inseriamo un nome di nostro gradimento.



Figura 7


A questo punto, tramite il pulsante aggiungi riferimento, confermiamo il tutto.
Nella form, aggiungiamo un pulsante, ed in visualizzazione codice nell’evento click del pulsante, scriviamo il seguente frammento di codice. Il codice riportato qui di seguito, tramite l’istanza del servizio (ServizioWeb) e la classe (il secondo Servizio WEB) crea un oggetto, che utilizza il metodo del servizio, visualizzando a video il risultato di tale metodo.


VB.Net


Private Sub BtnEsegui_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnEsegui.Click


Dim Servizio As New ServizioWeb.ServizioWeb()


MessageBox.Show(Servizio.Nominativo("Emanuele", "Mattei"))


End Sub



C#


private void BtnEsegui_Click(object sender, EventArgs e)


{


ServizioWeb.ServizioWeb servizio = new ServizioWeb.ServizioWeb();


MessageBox.Show(servizio.Nominativo("Emanuele", "Mattei"));


}





Terminata di stesura di codice, mandiamo in esecuzione il nostro progetto windows, verrà richiamato il metodo del servizio web appena creato.


Conclusioni


Con il Net 1.1 i servizi web, permettono al programmatore di creare applicazioni portabili, in modo che qualsiasi applicazione e linguaggio può utilizzare il servizio web.
Le potenzialità offerte dai servizi web, sono notevoli, anche se con l’uscita del Framework 3.5 e di Windows Communication Foundation, i servizi web, sono stati un pò abbandonati

1 commento:

Harry Seo ha detto...
Questo commento è stato eliminato da un amministratore del blog.