Posts
83
Comments
165
Trackbacks
11
November 2008 Blog Posts
Reflection: estrarre l’unico tipo di un assembly che implementa un’interfaccia


Oggi mi si è presentata la necessità di dover estrarre da un assembly, di cui conoscevo solo il nome (AssemblyName.dll), l’unico tipo che implementasse una determinata interfaccia (IFoo).

Bene…non essendo un grande esperto di Reflection e di tutto quanto le gravita attorno, non ho avuto scelta: partire dai test!!!
NOTA: avrei fatto lo stesso anche se sapevo dove andare a parare ;-)

Step01

L’assembly “AssemblyWithOneContainer” è un assembly che, come dice il nome stesso, contiene un solo oggetto che implementa l’interfaccia richiesta.
Ok, ora che la strada è tracciata posso provare ad implementare la funzionalità…reflection & LINQ si sono rivelati un’ottima accoppiata per risolvere la situazione in modo “brillante”. Ecco la soluzione:

Step02

o in modo ancora più compatto:

Step03 

- melkio -

posted @ Tuesday, November 25, 2008 4:34 PM | Feedback (0)
TechEd 2008 – Riassumendo…

Dopo una settimana in quel di Barcellona, ed un week-end di “stacco” per elaborare il tutto, ecco il mio riassunto di questa fantastica esperienza.

Sotto il punto di vista tecnico mi posso ritenere del tutto soddisfatto. Ovviamente, come altri hanno già riportato, alcune sessioni erano ottime, mentre altre, anche di livello 300, lasciavano alquanto a desiderare. Diciamo che sono stato abbastanza bravo e fortunato a trovare sessioni appropriate ;-)
Per quanto riguarda l’organizzazione io non posso fare paragoni con esperienze precedenti, e quindi mi limito a “giudicare” solo il discorso alimentare: assolutamente insufficiente. Quattro giorni su cinque ho preferito saltare il pranzo piuttosto che “rovinarmi il fegato” con i panini insacchettati…recuperavo la sera ;-)

SyncFramework
Ottimo!!! L’avevo utilizzato nella sua versione “primordiale” per allineare semplicemente due basi dati. Nulla di particolarmente complesso, ma la customizzazione/creazione di nuovi provider, mi aveva spaventato non poco, procurandomi più di un grattacapo.
Con la nuova versione, le cose dovrebbero essersi notevolmente semplificate…ci devo studiare ancora un po’, spero a breve di potervi ragguagliare con delle news più approfondite

WPF
L’avevo intuito (eufemismo, ovviamente), ma questo TechEd, l’ha confermato: WPF è il futuro!!! Grande attenzione alle performance, grande attenzione al “non esagerare”, ma enormi (infinite?) possibilità. WPF, ancora più che WinForm, introduce un livello di complessità non elementare; utilizzarlo significa anche conoscere gli “internals” di questo framework. Basti pensare che in una demo, senza togliere alcun effetto “esoterico”, ma ottimizzando qua e là (non a caso, ovviamente), lo speacker ha mostrato come ottimizzare un’applicazione sviluppata in WPF, passando da 1Gb (e passa) di memoria utilizzata a poche decine di Mega

Windows Azure
Il futuro: idea interessante e innovativa…credo che in Italia (almeno per la situazione che posso vivere tutti i giorni io), dovremo stare con i piedi ben piantati per terra per parecchio tempo ancora, tralasciando voli “on the cloud”.
Faccio fatica a pensare ad un SAP-on-the-cloud o ad un AS400-on-the-cloud…ma solo il tempo potrà darci una risposta!
Per poter sfruttare le potenzialità di questa piattaforma, comunque, dovremo rivedere anche l’architettura delle nostre applicazioni, cosa per nulla semplice quando le applicazioni non sono fatte con “criterio” e soprattutto quando le tecnologie in gioco non sono del tutto “conformi” a questo cambio di direzione

TFS
Un discorso a sè stante lo meritano le due sessioni su TFS che ho seguito. In questo ultimo periodo, più di una volta, ho buttato l’occhio a TFS e l’idea che mi ero fatto era quella di uno strumento indispensabile per la gestione del ciclo di vita del software, soprattutto per quelle realtà medio-grandi che sono strutturalmente ben definite. Per intenderci, ad alcuni miei clienti che fino a ieri utilizzavano uno share di rete per condividere il codice sorgente, ho sempre suggerito, seguendo la politica dei piccoli passi, di installare svn come repository, pensando che TFS fornisse molto, ma molto di più di quello che avrebbe potuto servirgli.
Mi sbagliavo!!!
La possiblità di customizzazione “spinta” di TFS permette di modellare a proprio piacimento le modalità che questo strumento ci mette a disposizione per aiutarci nella gestione del ciclo di vita della nostra soluzione, partendo, magari, da un modello semplicissimo per poterlo ampliare mano a mano che si presentano nuove necessità. Veramente ottimolo strumento (ma già lo sapevo)
Un plauso va anche allo speacker:
Neno Loje…di gran lunga il migliore degli speaker che ho avuto la possibilità di seguire!!!

Ultima nota, ma non per importanza, un ringraziamento sincero a chi ha condiviso con me questa esperienza, rendendo ancora più divertente/gratificante/leggera (e chi più ne ha, più ne metta) la settimana appena trascorsa: auliNino, Corrado, il mio compagno di merende, MauroRaffaele (l’ordine è puramente alfabetico e spero di non aver dimenticato nessuno).

--
melkio

posted @ Monday, November 17, 2008 1:36 PM | Feedback (6)