WCF e CompactFramework - Primi passi

Questa settimana ho iniziato a lavorare con WCF per realizzare una SmartDevice application che deve connettersi a una applicazione esistente.

Naturalmente sto usando il CompactFramework 3.5 e ho scaricato il NETCFv35PowerToys.

Dopo aver creato un primo servizio WCF ospitato in una console application, ho utilizzato il NetCFSvcUtil per generare le classi proxy da utilizzare nell'applicazione Smart Client. Qui c'è da ricordarsi di aggiornare i file generati ogni qualvolta si modifica il servizio o il DTO, se ci fosse qualcosa di automatico sarebbe una manna.

Le classi proxy dei servizi contengono anche i DTO generati ma contengono le proprietà non nello stesso ordine in cui si presentavano nella classe di partenza, bensì in ordine alfabetico.

Per ovviare a questo, si può usare il parametro Order dell'attributo [DataMember] in modo da generare il DTO come l'originale.

Esempio: 

[DataContract]
public class StorageUnit
{
    [DataMember(Order = 0)] 
    public string Id { get; set; } 

    [DataMember(Order = 1)] 
    public string Description { get; set; } 

    [DataMember(Order = 2)] 
    public string MaterialId { get; set; } 

Fare attenzione alle proprietà che contengono valori nullabili che non vengono serializzati dal palmare, prima di usarle fare il test se il valore della proprietà è stato specificato, come riportato in questo post.

Per adesso tengo i servizi ospitati in una console application che mi aiuta in fase di debugging, poi li dovrò mettere su IIS, ho fatto qualche prova seguendo quanto riportato sul libro WCF Unleashed ma non riesco a farli funzionare, farò altri tentativi più avanti, chi avesse lumi sarebbe il benvenuto.

Ovviamente ho perso qualche giornata per capire perché non riuscivo ad accedere al servizio ospitato sul mio portatile dall'emulatore, causa ferie brevissime , poi ho trovato questo post e quest'altro che mi hanno aiutato. 

posted @ venerdì 21 agosto 2009 19:19

Print
Comments have been closed on this topic.