consumare web service andrea saltarello ugidotnet –

Post on 01-May-2015

221 Views

Category:

Documents

1 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Consumare Web ServiceConsumare Web Service

Andrea SaltarelloAndrea Saltarello

http://www.ugidotnet.org/4.bloghttp://www.ugidotnet.org/4.blogUGIdotNET – http://www.ugidotnet.orgUGIdotNET – http://www.ugidotnet.org

2

AgendaAgenda

Amarcord Amarcord Web Services: il backstageWeb Services: il backstage

Consumare WS con .NETConsumare WS con .NET

Consumare WS con ASP/VB6Consumare WS con ASP/VB6

3

Funzionalità dei Web ServicesFunzionalità dei Web Services

Programmable logic accessible by standard Web protocolsProgrammable logic accessible by standard Web protocolsPermettono alle applicazioni di inviare e ricevere informazioni tramite InternetPermettono alle applicazioni di inviare e ricevere informazioni tramite Internet

Indipendenti da linguaggi, protocolli e piattaformeIndipendenti da linguaggi, protocolli e piattaforme

Architettura statelessArchitettura stateless

Basati su standard W3C in evoluzioneBasati su standard W3C in evoluzione

4

AmarcordAmarcord

Per implementare un Web Service con Per implementare un Web Service con ASP .NETASP .NETAprire (o creare) un progetto WebAprire (o creare) un progetto Web

Aggiungere un WS al progettoAggiungere un WS al progetto

Aprire il modulo di code-behindAprire il modulo di code-behind

Aggiungere i Aggiungere i web methodweb methodMetodi pubblici Metodi pubblici decoratidecorati con con

WebMethodAttributeWebMethodAttribute

5

AmarcordAmarcord

Possiamo consumer un WS mediante una Possiamo consumer un WS mediante una classe proxy:classe proxy:Aggiungere una Aggiungere una Web ReferenceWeb Reference al progetto al progetto

Istanziare la classe proxyIstanziare la classe proxy

Invocare i metodi della classe proxyInvocare i metodi della classe proxy

Fantastico, ma… Come #@?*! fa VS a creare la Fantastico, ma… Come #@?*! fa VS a creare la classe proxy?classe proxy?

6

GenesiGenesi di una classe proxy di una classe proxy

7

GenesiGenesi di una classe proxy di una classe proxy

8

Anatomia di un Web MethodAnatomia di un Web Method

La Welcome page del web method La Welcome page del web method visualizza la struttura degli visualizza la struttura degli envelope SOAPenvelope SOAP veicolati dalla richiesta e dalla risposta httpveicolati dalla richiesta e dalla risposta http

La struttura dei dati veicolati dal web La struttura dei dati veicolati dal web service è definita nella sezione service è definita nella sezione <types /><types /> documento WSDLdocumento WSDL

9

WSDL: The Comeback!WSDL: The Comeback!

10

WSDL: The Comeback!WSDL: The Comeback!

11

WSDL: StrutturaWSDL: Struttura

12

WSDL: StrutturaWSDL: Struttura

13

Consumare un Web ServiceConsumare un Web Service

Il consumatore analizza il WSDL e deduce le Il consumatore analizza il WSDL e deduce le modalità di comunicazione con il Web modalità di comunicazione con il Web ServiceService

Vediamo ora come consumare un WS quando Vediamo ora come consumare un WS quando il client è:il client è:

.NET.NET

VB6/ASPVB6/ASP

14

Consumare WS con .NETConsumare WS con .NET

E’ possibile creare una classe proxy anche E’ possibile creare una classe proxy anche senza VS .NET, usandosenza VS .NET, usando wsdl.exewsdl.exe

15

La classe ProxyLa classe ProxyPermette di specificare l’indirizzo del WS mediante la Permette di specificare l’indirizzo del WS mediante la

proprietà proprietà UrlUrl

16

Parametrizzare il proxyParametrizzare il proxySpesso è conveniente usare lo Spesso è conveniente usare lo URL BehaviorURL Behavior della della

Web referenceWeb reference

17

Consumare Ws con VB6Consumare Ws con VB6

Abbiamo due alternative:Abbiamo due alternative:

MS SOAP ToolkitMS SOAP Toolkit

COM InteroperabilityCOM Interoperability

18

MS SOAP ToolkitMS SOAP Toolkit

E’ una libreria COM:E’ una libreria COM:Scaricabile gratuitamente dal sito MSScaricabile gratuitamente dal sito MS

Capace di generare e ricevere Capace di generare e ricevere envelope SOAPenvelope SOAP

Utilizzabile da VB6 e da ambienti di scripting (es: Utilizzabile da VB6 e da ambienti di scripting (es: ASP)ASP)

Non più supportata da MS a partire a Luglio 2004Non più supportata da MS a partire a Luglio 2004

19

MS SOAP ToolkitMS SOAP Toolkit

20

MS SOAP ToolkitMS SOAP Toolkit

21

demo

22

Consumare WS con InteropConsumare WS con Interop

Questa tecnica permette di utilizzare una Questa tecnica permette di utilizzare una classe proxy realizzata in .NET classe proxy realizzata in .NET esponendola come esponendola come CoClassCoClass (= classe (= classe COM). Occorre:COM). Occorre:Creare un Creare un assemblyassembly contenente la classe proxy contenente la classe proxy

Applicare uno Applicare uno strong namestrong name all’assembly all’assembly

Registrare l’assembly per l’interoperabilità COMRegistrare l’assembly per l’interoperabilità COM

Usare l’assembly alla stregua di una libreria COMUsare l’assembly alla stregua di una libreria COM

23

Interop HOW-TOInterop HOW-TO

1.1. Creare un nuovo progetto, di tipo Creare un nuovo progetto, di tipo Class Class LibraryLibrary

2.2. Aggiungere una Web Reference alla Class Aggiungere una Web Reference alla Class LibraryLibrary

3.3. Creare una classe derivata da quella proxyCreare una classe derivata da quella proxy

4.4. Decorare la nuova classe con l’attributo Decorare la nuova classe con l’attributo ClassInterfaceClassInterface (utile per esporla a COM) (utile per esporla a COM)

24

Interop HOW-TOInterop HOW-TO

25

Applicare lo Strong NameApplicare lo Strong Name

Applicare uno Applicare uno Strong NameStrong Name ad un assembly ad un assembly equivale a “firmarlo”equivale a “firmarlo”

Per firmare un assembly:Per firmare un assembly:1.1. Creare una coppia di chiavi con Creare una coppia di chiavi con sn.exesn.exe

26

Applicare lo Strong NameApplicare lo Strong Name

2.2. Associare le chiavi all’assembly Associare le chiavi all’assembly

27

Esporre un assembly mediante InteropEsporre un assembly mediante Interop

1.1. Registrare l’assembly nella Registrare l’assembly nella GACGAC mediante mediante GACUtil.exeGACUtil.exe

La La Global Assembly CacheGlobal Assembly Cache è il repository degli è il repository degli assembly disponibili a tutte le applicazioniassembly disponibili a tutte le applicazioni

28

Esporre un assembly mediante InteropEsporre un assembly mediante Interop

2.2. Creare la Creare la type librarytype library dell’assembly dell’assembly mediante mediante tlbexp.exetlbexp.exe

29

Esporre un assembly mediante InteropEsporre un assembly mediante Interop

3.3. Registrare la type library mediante Registrare la type library mediante regasm.exeregasm.exe

30

Consumare il WSConsumare il WS

Possiamo ora usare la classe proxy prodotta Possiamo ora usare la classe proxy prodotta con .NET come se fosse una normale con .NET come se fosse una normale libreria COMlibreria COM

31

Referenziare l’assemblyReferenziare l’assembly

32

Consumare il WSConsumare il WS

33

demo

34

LinkLink

Web:Web:

http://msdn.microsoft.com/webservices/http://msdn.microsoft.com/webservices/

http://www.ugidotnet.org/webservices.cnthttp://www.ugidotnet.org/webservices.cnt

NewsgroupNewsgroup: (news.microsoft.com): (news.microsoft.com)

nntp://microsoft.public.it.dotnet.framework.nntp://microsoft.public.it.dotnet.framework.webserviceswebservices

nntp://nntp://microsoft.public.it.dotnet.soapmicrosoft.public.it.dotnet.soap

35

Prossimo appuntamentoProssimo appuntamento

Advanced Web ServicesAdvanced Web Services

27 Febbraio 2004 (14:30-16:00)27 Febbraio 2004 (14:30-16:00)

http://www.microsoft.com/italy/msdn/webcast/default.asphttp://www.microsoft.com/italy/msdn/webcast/default.asp

36

© 2003-2004 Microsoft Corporation. All rights reserved.This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

top related