ASP .NET & Web
Service: Introduzione
Andrea Saltarello
Microsoft .NET MVP
UGIdotNET – http://www.ugidotnet.org
Prerequisiti
Abbiamo bisogno di:
Il framework .NET  (v1.x)
Un ambiente di sviluppo
Visual Studio .NET
Microsoft Web Matrix
Notepad (?)
Un web server ASP .NET enabled
IIS5+
Cassini (è il web server di Web Matrix)
Funzionalità dei Web Services
Programmable logic accessible by standard
Web protocols
Permettono alle applicazioni di inviare e ricevere
informazioni tramite Internet
Indipendenti da linguaggi, protocolli e
piattaforme
Architettura stateless
Possono funzionare in modo asincrono
Basati su standard W3c in evoluzione
ASP .NET e i Web Services
Il motore dei Web Service nel mondo .NET è ASP
.NET
I Web Service sono contenuti da applicazioni web
“normali”
Web Form e Web Service possono coesistere nella
stessa applicazione
Session, Application & C. vengono condivise
Creare un XML Web Service
1
1.
2
2.
3
3.
4
4.
Creare/aggiungere un nuovo XML
Web Service mediante Visual Studio
.NET
Definire le funzioni WebMethod
Compilare il progetto web
Effettuare un test mediante browser
Aggiungere il WS a VS 
Aggiungere il WS a VS 
Struttura di un Web Service
Visual Studio .NET crea 2 file:
File .asmx
File .cs (o .vb)
Struttura di un Web Service
Il file ASMX:
Permette al web server di “girare” la
richiesta http a ASP .NET
Contiene la direttiva WebService
<%@ WebService Language="vb"
Codebehind=“Math.asmx.vb" Class=“MyWebCast.Math" %>
<%@ WebService Language=“cs"
Codebehind=“Math.asmx.cs" Class="MyWebCast.Math" %>
Struttura di un Web Service
Il file .cs (o .vb):
Contiene la classe che implementa il Web
Service
Class Service1
<WebMethod()> Public Function function1() As type
‘corpo della funzione
End Function
End Class
class Service1
{
[WebMethod()]
public type function1()
{
//corpo della funzione
}
}
Definire i Web Method
La classe che implementa il Web Service
Può derivare
System.Web.Services.WebService (ne
riparleremo…)
Espone i servizi sotto forma di metodi pubblici
decorati con l’attributo WebMethod (è
obbligatorio). Questi metodi:
Sono chiamati “metodi web” (web methods)
Possono accettare come parametri e restituire solo
istanze di tipi serializzabili
Contengono l’effettiva implementazione del servizio
Definire i Web Method
Provare il Web Service
Il runtime di ASP .NET pubblica automaticamente
una welcome page per il WS. La welcome page:
Può essere personalizzata
Visualizza (mediante Reflection) tutti i metodi web
disponibili
Permette di provare (solo in locale) i metodi web
Provare il Web Service
Provare il Web Service
demo
Usare Web Service: la classe proxy
Si presenta come la classe "originale", ma non contiene
logica applicativa
Usa SOAP per interagire con il Web Service
Implementa anche i membri per l’uso asincrono del WS
Creata a partire dal file WSDL
Web
Form
Proxy
Internet
XML Web
Service
Creare la classe proxy
VS .NET crea la classe proxy partendo dal
documento WSDL (Web Services Definition
Language)
Il documento WSDL
Contiene l’elenco dei web method e dei tipi in
input/output
E’ prodotto da ASP .NET
Raggiungibile con l’url:
http://miosito/mioservizio.asmx?WSDL
E’ linkato dalla welcome page
Provare il Web Service
Il documento WSDL
Creare la classe proxy
1
1.
2
2.
3
3.
4
4.
Creare una Web reference per il Web
Service
Creare una istanza della classe proxy
Chiamare i metodi web del Web Service
Eseguire l’applicazione consumer
Sub Button1_Click(s As Object, e As EventArgs)...
Dim MyMath As New spc.halo.mswebcast.Math()
Dim r As Integer = MyMath.Sum(8, 54)
End Sub
Creare una Web Reference
Creare una Web Reference
Creare una Web Reference
demo
L’attributo WebService
L’attributo WebService:
Non è obbligatorio (ma noi lo applichiamo )
Permette di specificare il target namespace
(importante!)
Permette di specificare una descrizione per il
Web Service
Proprietà di WebServiceAttribute
Proprietà
Descrizione
Description
Permette di specificare la descrizione
del Web Service da inserire nel
documento WSDL e nella pagina di
presentazione prodotta da ASP .NET
Permette di definire per il Web Service
un nome differente da quello fornito
alla classe che lo implementa
Permette di definire il target
namespace utilizzato dal Web service
Name
Namespace
Provare il Web Service
Impostare il Namespace
Impostare il namespace rende non ambigui i
tipi di dato veicolati dal web service
Per ottenere questo:
Il nome del namespace non deve essere
ambiguo
Tipicamente si usa un nome di dominio
DNS come parte del namespace
Impostare il Namespace
<WebService(Namespace:=“http://miosito/NS/”)> _
Class Service1
<WebMethod()> _
Public Function function1() As type
‘corpo della funzione
End Function
End Class
[WebService(Namespace=“http://miosito/NS/”)]
class Service1
{
[WebMethod()]
public type function1()
{
//corpo della funzione
}
}
demo
L’attributo WebMethod
L’attributo WebMethod:
E’ obbligatorio
Permette di specificare una descrizione per il
metodo web
Proprietà di WebMethodAttribute
Proprietà
Descrizione
BufferResponse
Permette di abilitare/disabilitare il
buffering. Se impostata a true¸ ASP
.NET comporrà l’intero pacchetto HTTP
di risposta in un buffer prima di inviarlo
al client
Permette di specificare il tempo, in
secondi, di permanenza in cache della
risposta generata per il metodo web.
Permette di specificare la descrizione
del metodo web da inserire nel
documento WSDL e nella pagina di
presentazione del Web Service.
CacheDuration
Description
Proprietà di WebMethodAttribute
Proprietà
Descrizione
EnableSession
Se impostato a true, permette al
metodo web di avvalersi dei servizi di
gestione delle sessioni forniti da ASP
.NET
Permette di impostare un alias per il
nome del metodo web
Permette al metodo web di partecipare
ad una transazione nel ruolo di oggetto
root della stessa.
MessageName
TransactionOption
demo
Link
Web:
http://msdn.microsoft.com/webservices/
http://www.ugidotnet.org/webservices.cnt
Newsgroup: (news.microsoft.com)
nntp://microsoft.public.it.dotnet.framework.
webservices
nntp://microsoft.public.it.dotnet.soap
Prossimi appuntamenti
Consumare Web Services
20 Febbraio 2004 (14:30-16:00)
Advanced Web Services
27 Febbraio 2004 (14:30-16:00)
http://www.microsoft.com/italy/msdn/webcast/default.asp
© 2003-2004 Microsoft Corporation. All rights reserved.
This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
Scarica

ASP .NET & Web Service: Introduzione