Consumare Web Service Andrea Saltarello http://www.ugidotnet.org/4.blog UGIdotNET – http://www.ugidotnet.org
Agenda Amarcord Web Services: il backstage Consumare WS con .NET Consumare WS con ASP/VB6
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 Basati su standard W3C in evoluzione
Amarcord Per implementare un Web Service con ASP .NET Aprire (o creare) un progetto Web Aggiungere un WS al progetto Aprire il modulo di code-behind Aggiungere i web method Metodi pubblici decorati con WebMethodAttribute
Amarcord Possiamo consumer un WS mediante una classe proxy: Aggiungere una Web Reference al progetto Istanziare la classe proxy Invocare i metodi della classe proxy Fantastico, ma… Come #@?*! fa VS a creare la classe proxy?
Genesi di una classe proxy
Genesi di una classe proxy
Anatomia di un Web Method La Welcome page del web method visualizza la struttura degli envelope SOAP veicolati dalla richiesta e dalla risposta http La struttura dei dati veicolati dal web service è definita nella sezione <types /> documento WSDL
WSDL: The Comeback!
WSDL: The Comeback!
WSDL: Struttura
WSDL: Struttura
Consumare un Web Service Il consumatore analizza il WSDL e deduce le modalità di comunicazione con il Web Service Vediamo ora come consumare un WS quando il client è: .NET VB6/ASP
Consumare WS con .NET E’ possibile creare una classe proxy anche senza VS .NET, usando wsdl.exe
La classe Proxy Permette di specificare l’indirizzo del WS mediante la proprietà Url
Parametrizzare il proxy Spesso è conveniente usare lo URL Behavior della Web reference
Consumare Ws con VB6 Abbiamo due alternative: MS SOAP Toolkit COM Interoperability
MS SOAP Toolkit E’ una libreria COM: Scaricabile gratuitamente dal sito MS Capace di generare e ricevere envelope SOAP Utilizzabile da VB6 e da ambienti di scripting (es: ASP) Non più supportata da MS a partire a Luglio 2004
MS SOAP Toolkit
MS SOAP Toolkit
demo
Consumare WS con Interop Questa tecnica permette di utilizzare una classe proxy realizzata in .NET esponendola come CoClass (= classe COM). Occorre: Creare un assembly contenente la classe proxy Applicare uno strong name all’assembly Registrare l’assembly per l’interoperabilità COM Usare l’assembly alla stregua di una libreria COM
Interop HOW-TO Creare un nuovo progetto, di tipo Class Library Aggiungere una Web Reference alla Class Library Creare una classe derivata da quella proxy Decorare la nuova classe con l’attributo ClassInterface (utile per esporla a COM)
Interop HOW-TO
Applicare lo Strong Name Applicare uno Strong Name ad un assembly equivale a “firmarlo” Per firmare un assembly: Creare una coppia di chiavi con sn.exe
Applicare lo Strong Name Associare le chiavi all’assembly
Esporre un assembly mediante Interop Registrare l’assembly nella GAC mediante GACUtil.exe La Global Assembly Cache è il repository degli assembly disponibili a tutte le applicazioni
Esporre un assembly mediante Interop Creare la type library dell’assembly mediante tlbexp.exe
Esporre un assembly mediante Interop Registrare la type library mediante regasm.exe
Consumare il WS Possiamo ora usare la classe proxy prodotta con .NET come se fosse una normale libreria COM
Referenziare l’assembly
Consumare il WS
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
Prossimo appuntamento 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.