October 2010 Blog Posts

Che soddisfazione…

essere in quella lista con persone di quel calibro :)

[MEF & AppDomain] Introduzione

Qualche tempo fa avevo “mostrato” che era possibile caricare dei plugin su un AppDomain secondario utilizzando MEF. Effettivamente è possibile l’unico (per modo di dire) problema è che dobbiamo riscriverci tutto il model di MEF… Quali sono le principali problematiche? 1) Dobbiamo utilizzare un altro modello ad attributi che non sia quello di MEF, per cui abbiamo bisogno di creare dei nuovi attributi con cui decorare i plugin 2) Il punto 1) comporta la scrittura di nuovi catalogs per effettuare il discovery delle ComposablePart che utilizzano i nuovi attributi 3) Ci serve un...

Parallel Programming with Microsoft .NET

Qualche sera fa ho finito di leggere il libro Parallel Programming with Microsof .NET di p&p e devo dire che è veramente fantastico! Spiega benissimo come utilizzare le Task Parallel Library all'interno delle nostre applicazioni, mostrando casi d'uso ed antipattern! Inoltre fornisce una visione abbastanza generale (primi 3 capitoli) per chi vuole capire un pò cosa sono le TPL, a cosa servono e via dicendo, ma anche una visione abbastanza dettagliata (capitoli restanti più appendici) per chi desidera capire quando è il caso di utilizzarle e dove. Il sito di riferimento, da cui scaricare anche gli esempi, si trova su codeplex. Infine su...

Recap Virtual Meeting MEF

Ieri sera ho tenuto il mio primo Virtual Meeting e devo dire che ero abbastanza in ansia che le cose non andassero bene... Fortunatamente è andato quasi tutto bene, l'unico problema è che non siamo riusciti a registrarlo, e c'era anche un buon numero di utenti. I feedback sono stati buoni per cui non posso che ringraziare le persone che mi hanno ascoltato per più di un'ora e che sono rimasti nonostante gli argomenti non fossero semplicissimi ed il mio passo abbastanza spedito. Se devo essere sincero, però, preferisco aver davanti un pubblico anche se la cosa può creare più ansia o più...

Test and Debugging MEF

Per chi vuole scrivere unit tests dei propri componenti o capire quali sono i principali errori che il processo di composition può dare, può leggere i post di Bnaya: http://blogs.microsoft.co.il/blogs/bnaya/archive/2010/07/09/testing-and-debugging-mef-tips-part-1.aspx http://blogs.microsoft.co.il/blogs/bnaya/archive/2010/10/12/testing-and-debugging-mef-tips-part-2.aspx oppure dare un’occhiata alla guida ufficiale: http://mef.codeplex.com/wikipage?title=Debugging%20and%20Diagnostics&referringTitle=Guide

Virtual Meeting MEF

Domani sera alle 21.30 ci sarà il Virtual Meeting organizzato da XeDotNet dove parlerò di: come creare un Plugin Manager per gestire più tipi di plugin ExportProvider MEFedMVVM Inoltre, se il tempo permette, parlerò di un progetto che ci permette di caricare plugin su un AppDomain secondario. Vi aspetto numerosi!!

Effettuare il discovery dei “gateway” BTicino tramite UPnP

Partiamo da un paio di considerazioni: Stiamo sviluppando un’applicazione per la gestione dell’impianto domotico MyHome. Vogliamo “semplificare” la vita all’utente che deve utilizzare la nostra applicazione, evitando di fargli inserire l’indirizzo IP del gateway nella fase di configurazione Come possiamo risolvere il secondo punto? Ci sono due soluzioni, la prima abbastanza “tediosa” da implementare, la seconda più semplice e veloce: Proviamo ad effettuare una connessione TCP sulla porta 20000 con tutti gli indirizzi IP che la subnet mask “definisce” [Abbiamo un gateway con un firmware...

MEF & AppDomains

Da un pò di tempo sto cercando di far caricare a MEF gli exports (plugins) in un AppDomain secondario (con tutti i pro e contro che questo comporta) e pian piano qualcosa sta venendo fuori... Stay tuned...

Filtering Exports with FilteredCatalog

MEFContrib è un progetto creato da Glenn Block ed altre persone note in cui inseriscono alcune chicche che possono essere utili quando si utilizza MEF ad esempio: 1) un catalog che supporta gli open generics (MEF di default supporta solo i closed generics) 2) un catalog che ci permette di filtrare gli exports 3) integrazione con Unity 4) un “botto” di cose che non ho la minima idea a cosa servano :) In questo post vedremo un esempio che mostra un utilizzo del FilteredCatalog! Scenario: Abbiamo un’interfaccia ILogger che rappresenta un logger generico che ci permette di loggare un...

ExportFactory for Desktop Applications

ExportFactory<T> è molto simile alla classe Lazy<T>, cambiano solo due cosucce:  Quando accediamo alla proprietà Value di Lazy<T> l’istanza dell’oggetto che ci viene ritornato è sempre la stessa, per cui l’oggeto viene creata una sola volta. ExportFactory<T> al posto della proprietà Value ci mette a disposizione il metodo CreateExport() che ci ritorna ogni volta una nuova istanza. ExportFactory<T> è disponibile solo per Silverlight :) E se lo volessimo usare in una Desktop Application? E’ possibile scaricare MEF 2 Preview 1 da codeplex ed usare ExportFactory<T> tranquillamente nelle nostre...