WPF for Enterprise

Per chi dice che WPF serva solo per applicazioni “orientate al look”… date una occhiata qui: Great WPF applications: Lawson’s Smart Office.

Mi sa che mi devo mettere a studiare. Smile

image

WCF e NHibernate

Oggi dovevo recuperare una lista di lotti dal DB passando per un servizio WCF residente sul web server per consentirmi di mettere la parte di accesso ai dati più “vicina” alla base dati stessa.

Dato che mi servivano parecchie proprietà (anche collegate a classi lungo l’albero di navigazione delle classi stesse).

La chiamata mi tornava un System.ServiceModel.ComunicationException con un messaggio di questo genere:

Errore durante la ricezione della risposta HTTP a http://*****/QueryHelper.svc. È possibile che il binding dell'endpoint del servizio non utilizzi il protocollo HTTP o che un contesto di richiesta HTTP sia stato interrotto dal server (probabilmente a causa dell'arresto del server). Per ulteriori informazioni, vedere i registri del server.

In un primo momento ho pensato ad un errore nella routine del servizio… ma il debug mi confermava che nella routine tutto era a posto…

Navigando ho trovato un articolo che indicava che un errore di questo genere deriva dal fatto che qualcosa non risulta serializzabile e per trovarlo suggeriva di usare una routine di test di questo tipo:

Public Shared Sub LogDTO(Of TDTO)(ByVal dto As TDTO)
    Dim ser As New System.Runtime.Serialization.DataContractSerializer(GetType(TDTO))
    Dim writer As New IO.FileStream("C:\temp\" + dto.[GetType]().Name + ".xml", IO.FileMode.Create)
    ser.WriteObject(writer, dto)
    writer.Close()
End Sub

In questo modo ho scoperto che il problema era nella serializzazione delle classi proxy generate da NHibernate.

Aggiunta questa ruotine alla mia cassetta degli attrezzi per futuri problemi di serializzazione Wink… sono passato all’utilizzo di un DTO per dare una veloce soluzione al problema.

Ma il dubbio mi è rimasto e stasera ho trovato un post esaustivo sull’argomento: Remoting Using WCF and NHibernate. Me lo studierò per bene.. ma mi sa che i DTO siano più maneggevoli Wink

Che EF risolva il problema?

«ottobre»
domlunmarmergiovensab
2829301234
567891011
12131415161718
19202122232425
2627282930311
2345678