11 messaggi dal 19 marzo 2004
Un saluto a tutti.
Posto il mio problema su questo forum, sperando che qualcuno possa darmi una dritta; dopo diverse ore di ricerche su internet, non sono ancora riuscito a trovare una soluzione adeguata.

Illustro brevemente lo scenario:
Ho una serie di classi di logica create tempo fa con tutti i metodi e le proprietà scritte bene e perfettamente funzionanti. Vorrei cercare di utilizzare le medesime entità su Silverlight 2 (che richiede quindi la serializzazione delle entità stesse e loro esposizione su servizio web WCF o standard).

Ho costruito una serie di librerie WCF e marcato le proprietà degli oggetti da esporre nel servizio con l'attributo "DataMember". Tutto funziona correttamente e dal mio client Silverlight riesco tranquillamente a manipolare le entità.

Putroppo il fatto di avere oggetti condivisi tra diversi progetti (ex: Utenti, Ruoli, etc.) mi ha costretto a creare delle librerie di servizi WCF, condivise tra più progetti. Risultato della cosa è un macchinoso "copia e incolla" di configurazioni dei behaviour dei servizi e endpoint all'interno di tutte le applicazioni che poi fruiscono le librerie condivise.

La soluzione che ho tentato di adottare è l'approccio alla questione più semplificato che fornisce ADO.NET Data Services/Astoria, che permette l'interrogazione di un servizio con approccio REST, come da illuminante articolo di Marco Leoncini.

Naturalmente ho evitato di utilizzare il "DataContext" esposto dall'Entity Framework (o da LINQ to Sql), e utilizzato il corrispettivo esposto dalle mie librerie, già implementate con interfaccia IQueryable<T> ed interrogabili con LINQ; ma niente da fare: il servizio Astoria non mi permette di serializzare una delle mie entità poichè espone una proprietà di tipo Enum, che (a quanto pare) non sembra serializzabile.

Da tenere conto è il fatto che il servizio WCF serializza senza problemi le enumerazioni, che sono tranquillamente

Quindi la domanda nasce spontanea: ma non avevano introdotto gli attributi [DataContract] e [DataMember] per permettere la serializzazione di oggetti di business, permettendo allo sviluppatore di scegliere quali proprietà esporre sul servizio?

Esiste un modo per evitarmi la riscrittura di tutte le entità delle librerie condivise solo con proprietà di tipi base?

Spero di avere fatto un quadro abbastanza completo della situazione; in caso contrario fate pure tutte le domande necessarie.

Per il momento ringrazio tutti quanti per qualunque informazione.
Un saluto.
Mauro
innanzitutto ti ringrazio per i complimenti all'articolo, mai nessuno ha definito un mio articolo illuminante

appena riesco a ritagliarmi 10 minuti faccio una prova che ho in mente e ti faccio sapere

ciao marco

Chi parla senza modestia troverà difficile rendere buone le proprie parole.
Confucio

http://nostromo.spaces.live.com/default.aspx

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.