Fabio Carucci's WebLogs

"...You may say I'm a dreamer, but I'm not the only one..." (Imagine)
posts - 51, comments - 41, trackbacks - 27

My Links

News



PER CONSULENZE SCRIVERE SU "CONTACT"

Contattami se sono online!

This is my personal blog. These postings are provided "AS IS" with no warranties, and confer no rights. The views expressed on this weblog are mine alone and do not necessarily reflect the views of my employer.








View Fabio Carucci's profile on LinkedIn

Vuoi ricevere i miei post nella tua email? Iscriviti

Add to Technorati Favorites



http://www.csthota.com/blogmap/



Locations of visitors to this page





Tag Cloud

Archives

Post Categories

1 - Pubblicazioni

2 - Conferenze

3 - Links

4 - Blogs

lunedì 15 ottobre 2007

[OT] Bloggare a 86 anni

Bello questo blog, parole semplici ma piene di esperienza. E' il blog di una nonna, e non è nè una battuta nè un insulto, chi lo riempie ogni giorno è una signora di ottantasei anni, della Toscana, una insegnante in pensione, che accudisce il marito malato e si sente sola, o meglio forse si sentiva sola, poi due anni fa ha iniziato a scrivere e, qualche giorno fa, è stata intervistata da Repubblica.

Andate a vedere quanti commenti, peccato che non ha un RSS attivo...forse non sa cos'è. Però è forte lo stesso. Leggetelo.

L'eredità di Nedda

posted @ lunedì 15 ottobre 2007 20.49 | Feedback (1) | Filed Under [ Others ]

L'arte di lavorare con SOA e... WCF - #1

Abbiamo la necessità di implementare un client WCF che sia in grado di effettuare il download automatico dei metadati del servizio remoto e configurare un proxy che sia in grado di stabilire una comunicazione?

Utilizziamo le classi MetadataExchangeClient, MetadataSet, WsdlImporter e ServiceEndpointCollection

MetadataExchangeClient

creiamo un oggetto MetadataExchangeClient nel quale definiamo la URI del servizio remoto e specifichiamo di voler richiedere il documento WSDL di descrizione del servizio

 

 MetadataExchangeClient metadataExchange = new MetadataExchangeClient

 (new Uri("http://localhost:8000/ServizioRemoto/?wsdl"),
 MetadataExchangeClientMode.HttpGet);

 

poi creiamo un oggetto MetadataSet in cui scarichiamo i metadati utilizzando il metodo GetMetadata() della classe MetadataExchangeClient

 

 MetadataSet metadataSet = metadataExchange.GetMetadata();

 

 creiamo un oggetto WsdlImporter dal MetadataSet che contiene il documento WSDL comprensivo degli endpoints

 

 WsdlImporter importer = new WsdlImporter(metadataSet);

 

e inseriamo gli endpoints nell'apposita collection ServiceEndpointCollection mediante il metodo ImportAllEndpoints() della classe WsdlImporter

 ServiceEndpointCollection endpoints = importer.ImportAllEndpoints();

 

 infine, all'interno di un ciclo For..Each configuriamo una variabile proxy per ogni endpoint trovato

 

 foreach (ServiceEndpoint ep in endpoints)

{
 IInterfacciaServizio proxy = new ChannelFactory<IInterfacciaServizio>(ep.Binding, ep.Address).CreateChannel();
 ((IChannel) proxy).Open();
 // codice di elaborazione del servizio
 ((IChannel) proxy).Close();
 

da notare che ChannelFactory è in grado di generare il proxy basandosi in maniera identica a ciò che riflette il contratto del servizio remoto, quindi se un metodo è dichiarato sincrono l'oggetto proxy avrà la stessa identica implementazione del metodo.

 

Technorati Tag: , ,

 

posted @ lunedì 15 ottobre 2007 15.51 | Feedback (0) | Filed Under [ .NET Framework SOA WCF ]

Powered by: