Interoperabilità con WCF: invocare servizi da PHP e Flash
di Riccardo Golia, in Windows Communication Foundation, 12 gennaio 2010
4 pagine in totale: <<Indietro 1 2 3 [4]
using System; using System.ServiceModel; using System.ServiceModel.Activation; namespace WinFXItalia.Services { public sealed class InlineWsdlServiceHostFactory : ServiceHostFactory { public override ServiceHostBase CreateServiceHost(string constructorString, Uri[] baseAddresses) { return base.CreateServiceHost(constructorString, baseAddresses); } protected override ServiceHost CreateServiceHost(Type serviceType, Uri[] baseAddresses) { return new InlineWsdlServiceHost(serviceType, baseAddresses); } } }
La nuova versione di WSDL
Una volta distribuito per essere "hostato" in Internet Information Services (IIS), un servizio WCF è raggiungibile tramite un URL corrispondente ad un file con estensione SVC (esempio: http://ServerName/MyService.svc). Il file SVC include l'intestazione @ServiceHost che generalmente permette di indicare il nome della classe che implementa il contratto esposto dal servizio e associato all'endpoint. In questo caso nella direttiva occorre specificare anche quale versione di ServiceHostFactory si vuole utilizzare. Indicando l'oggetto factory InlineWsdlServiceHostFactory, il service host creato è di tipo WinFXItalia.Services.InlineWsdlServiceHost; il suo metodo ApplyConfiguration aggiunge il behavior personalizzato di generazione del WSDL.
<%@ServiceHost language="C#" Service="WinFXItalia.Services.MyService" Factory="WinFXItalia.Services.InlineWsdlServiceHostFactory"%>
A questo punto, richiedendo il WSDL, si ottiene una descrizione completa del servizio, priva dei tag <xsd:import>, pienamente compatibile con tecnologie come PHP e Flash.
<?xml version="1.0" encoding="utf-8"?> <wsdl:definitions name="MyService" targetNamespace="http://www.winfxitalia.com/Services/MyService/V1/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:wsam="http://www.w3.org/2007/05/addressing/metadata" xmlns:tns="http://www.winfxitalia.com/Services/MyService/V1/" xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing" xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy" xmlns:wsap="http://schemas.xmlsoap.org/ws/2004/08/addressing/policy" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msc="http://schemas.microsoft.com/ws/2005/12/wsdl/contract" xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" xmlns:wsa10="http://www.w3.org/2005/08/addressing" xmlns:wsx="http://schemas.xmlsoap.org/ws/2004/09/mex"> <wsdl:types> <xsd:schema elementFormDefault="qualified" targetNamespace="http://www.winfxitalia.com/Services/MyService/V1/"> <xsd:element name="HelloWorld"> <xsd:complexType> <xsd:sequence/> </xsd:complexType> </xsd:element> <xsd:element name="HelloWorldResponse"> <xsd:complexType> <xsd:sequence> <xsd:element minOccurs="0" name="HelloWorldResult" nillable="true" type="xsd:string"/> </xsd:sequence> </xsd:complexType> </xsd:element> </xsd:schema> ...omissis... </wsdl:definitions>
Conclusioni
L'estendibilità di WCF lo rende una tecnologia davvero appetibile, in grado di adattarsi alle diverse situazioni e di andare oltre i propri limiti legati all'implementazione di base. L'interoperabilità con applicazioni scritte in PHP o ActionScript è garantita proprio da questa caratteristica che permette di mantenere la compatibilità all'indietro, indispensabile per poter utilizzare i servizi WCF al posto dei servizi ASMX, sfruttando peraltro in modo completo il modello di programmazione offerto da Windows Communication Foundation con tutti i vantaggi del caso.
4 pagine in totale: <<Indietro 1 2 3 [4]
Contenuti dell'articolo
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimeti
-
Introduzione a Team Foundation Server 2010
-
Multithreading e parallelismo con il .NET Framework 4.0
-
Le novità nel .NET Framework 4.0 di WPF, WCF e WF
-
Le novità di Visual Basic 2010 e C# 4
-
Mostrare le camere di sorveglianza tramite il .NET Micro Framework
-
La piattaforma Microsoft per il cloud computing: Windows Azure
-
Le novità di Windows 7 per gli sviluppatori
-
Le problematiche più comuni di un'architettura M-V-VM con WPF
-
Costruire una chat per Silverlight con il PollingDuplexHttpBinding

Commenti
mi piace
non mi piace
Facebook
Twitter









