giovedì 6 agosto 2009 #

La Reflection su un WebService?

Buongiorno a tutti,

oggi propongo una domanda tecnica che scaturisce dalla mia attuale attività, in merito alla quale ho già scritto. Nota: la domanda si trova al fondo dopo la descrizione del contesto.

Se vogliamo fare un WebService generico, ma così generico da gestire tutta la domanda verso la base dati - qualunque - con un solo metodo, possiamo passare in ingresso un XML con le informazioni necessarie ad invocare una StoredProcedure e restituire una bella stringa - a scelta XML o separata da pipe a seconda dell'autolesionismo. Poi ci mettiamo su un algoritmo di crypting e quant'altro - così il proxy ha il suo da fare.

Bene: tale sorgente dati ha il difetto di non essere molto adatta al databind e di non poter beneficiare degli automatismi di sorting e filtering in memoria concessi invece alle datatable. Se per questi non c'è molto da fare, se non derivare un apposito datasource istruito a modo sul particolare protocollo; per il databinding qualcosa forse si piò fare.

Di base, gli oggetti Bindable creano un "campo" per ciascuna proprietà pubblica individuata. Tralasciando l'opzione di implementare la relativa interfaccia su una ipotetica classe che deserializza dal risultato del Web Service, non sarebbe più comodo se il servizio restituisse una collezione, quale che sia la forma prediletta, di istanze compatibili con questo modello? Certo.

Se mai è possibile ottenere questo risultato con una sola classe, essa deve essere costruita (emessa) a run-time sulla base del contenuto (nome-campo e valore) del DataReader. Utilizzare la Reflection mi sembra in questo contesto la cosa più in linea con la filosofia non tipizzata dell'architettura, e le esigenze di tipizzazione che vi si oppongono. Sinceramente non ci ho provato, perchè mi frena una cruciale domanda.

Questo impiego di Reflection su un Web Service - con le implicazioni di theading, pooling, garbage collecting etc - non sarà addrittura controproducente? E cioè, non sarà che per andare a riflettere, il piano di lavoro di IIS sul tread pool finisca per risentirne con detrimento di performance e stabilità?

Qualcuno ha idee in proposito?

P.S: se volete esprimere critiche sull'architettura della soluzione, vi ricordo di non esserne l'autore e di propendere personalmente per approcci differenti (di base, ho un'altra filosofia). Del resto non sono a conoscenza della ratio delle decisioni a suo tempo adottate in merito in questa particolare situazione.

posted @ giovedì 6 agosto 2009 14:04 | Feedback (0)

giovedì 2 luglio 2009 #

Strange Days

Salve a tutti,

recentemente sono capitato in un curioso ambiente, molto positivo - le cose funzionano, e si vendono anche. Però non c'è una implementazione standard di quasi nessuna delle tecnologie che il framework .Net mette a disposizione. Persino i WebServices sono impreziositi da customizzazioni bizantine che snaturano il concetto proprio dello standard.

Inutile dire che le ricadute in termini di manutenibilità, skill-ware necessario per il team (se non c'eri ai tempi di ASP, non puoi capire il bizantinismo masochista di certe implementazioni) et similia sono pesantine.

Sinceramente mi sembra un po' uno spreco: tanta fatica per spingere i Vendor e Microsoft verso standard - infatti MS sfugge spesso e volentieri e va fuori standard un anno si e uno no - condivisi, tanta fatica e tanti fallimenti per individuare le best practice più pratiche, per snellire le implementazioni e lasciarsi alle spalle una serie di problemi pidocchiosi e perniciosi - come ben sa chi ha lavorato con le date provenienti da differenti piattaforme ai tempi in cui si passavano solo i CSV - che facevano perdere un sacco di tempo ed energie senza aggiungere nulla alle applicazioni... e tutto questo viene "sdegnato" così.

Che cosa spinge un programmatore a scrivere una serializzazione XML di una classe di soli attributi? Che cosa spinge un programmatore a codificare un protocollo nel protocollo, imponendo un vocabolario su SOAP che ne ha già uno ottimo, capito da tutti, implementato, praticamente automatico?

Ora come ora tutte le risposte che mi vengono in mente finiscono per essere un giudizio, e non mi interessa molto giudicare. Mi piacerebbe capire.

posted @ giovedì 2 luglio 2009 16:45 | Feedback (0)

lunedì 30 aprile 2007 #

Alla ricerca di Nemo...

Va bene, io sono l'ultimo dei blogger. OK, i miei post non hanno formattazioni accattivanti.

Daccordo, praticamente ogni cosa che porei dire, sul tecnico, la sanno quasi anche i sassi, e comunque con presenze ingombranti come i tanti MVP, tanti super-esperti e persone che hanno contatti freschi con le fonti più autentiche... non posso che sparire :)

Però questo non cambia le cose, quelle dei miei post precedenti, e non cambia il fatto che siamo una comunità. O almeno, alcuni di voi lo sono ;)

Sperimento l'orrenda sensazione di aver perso la connessione con il server. L'incessante proliferare di tecnologie sui più svariati dispositivi offre una tempesta di sigle che crea una tempesta di fuoco, fuoco che attrae, bada bene, e genera un'ordalia di pulsioni ad assaporare questo e quello, perchè per chi è affetto dall'orrendo morbo della tecnofilia, vorrebbe conoscere tutto, assaporare tutto (ma soprattutto: smanettare almeno un po' su buona parte del tutto).

Mi occorre una guida... Qualche volontario?

posted @ lunedì 30 aprile 2007 11:08 | Feedback (4)

giovedì 26 aprile 2007 #

Grandi cambiamenti?

Finalmente libero da tediosi vincoli, mi appresto ad affrontare il mio primo progetto ASP.NET 2.0, anche se ho come l'impressione di sentire un "solo oraaa?" corale (nella mia immaginazione qualcuno legge quello che scrivo ;) ).

Per lunghi mesi sono stato costretto ad osservare personaggi vari utilizzare .Net 1.1 come se nulla fosse cambiato rispetto a prima. Addirittura all'eccesso della import della DLL di VB6 per utilizzare quella funzione che-in-dot-net-non-c'è (chi cerca trova N.d.A.). Ora non voglio proprio vedermi usare ASP.NET 2.0 come se fosse l' 1.1. Alcuni concetti ovviamente li coltivo da tempo, già dal 2003, ma devo capire come sono realizzati dentro al framework, e come si prevede che si utilizzino :)

In genere, per i miei gusti almeno, un blog è qualcosa che una persona scrive per comunicare ad altri quello che conosce. Spero che la mia variante, nella quale comunico quello che non conosco, possa essere un qualche diversivo che vi metta dell'umore adatto a consigliare qualche spunto sia online che, per esempio cartaceo (in inglese o in italiano, purchè non sia una traduzione dall'inglese all'italiano perchè generalmente non ci prendono mai :) ).

Vi posso dire di aver acquistato, e di stare gradendo, il buon libro avanzato di Dino Esposito, ma spero che vogliate indicarmi anche altre fonti :)

Alla fine trovo che il cambiamento più grande sia proprio questo: che ho un nuovo, bel progetto, e una grande passione finalmente libera di sfogarsi (mi rendo conto che queste parole suoneranno sensate a pochi, anche a qualcuno del WorkShop di Aprile).

posted @ giovedì 26 aprile 2007 18:35 | Feedback (0)

sabato 14 aprile 2007 #

13 Aprile, Segrate - Un Workshop agognato

Eccomi al primo post, dopo due anni dall'iscrizione a UGIDOTNET. Qualcuno potrebbe pensare che sia il risultato dello spumeggiante WorkShop, ma questo è solo perchè non ha ancora letto questo post e quelli sparsi per la rete, altrimenti parlerebbe di "effetto collaterale" :)

Il primo evento a cui partecipai fu nel dicembre di due anni fa, non ricordo bene il titolo, ma la neve... quella si! S'è bloggato per settimane su quella neve. Poi, stendiamo un velo pietoso va'...  :)

Ma ieri finalmente sono riuscito a tornare a partecipare agli eventi (spero di non perdermene più quasi nessuno), e sento il bisogno di bloggare la mia gratitudine sia per i contenuti (vere chicche) che per la forma e l'organizzazione. Sciopero dei treni a parte (non è che porto sfortuna? :D).

Ho sentito un forte gap in alcuni momenti rispetto agli speaker e ai contenuti, ma partecipando di più, con le risorse che finalmente potrò consultare online, conto di colmarlo velocemente.

Per ora basta così, e come ho sempre detto: se ci fosse qualcosa che posso fare, basta chiedere :)

posted @ sabato 14 aprile 2007 17:18 | Feedback (0)

Copyright © Marco Ganio Vecchiolino

Design by Bartosz Brzezinski

Design by Phil Haack Based On A Design By Bartosz Brzezinski