MEF

MEFedMVVM ed il concetto di Context (View) Aware

Nel caso avessimo bisogno di fare “qualcosa” con la UI, MEFedMVVM mette a disposizione del ViewModel il concetto di Context aware o meglio di View aware tramite l’interfaccia IContextAware. Se un ViewModel implementa questa interfaccia, MEFedMVVM richiamerà il metodo InjectContext, durante la composition, passandogli il contesto a cui è associato o meglio la View. MEFed ha già al suo interno un paio di servizi che implementano IContextAware come IContainerStatus che, tramite gli eventi ContainerLoaded e ContainerUnloaded, ci offre sostanzialmente un wrapper verso gli eventi Loaded e Unloaded di FrameworkElement, e IVisualStateManager che ci...

MEF for Real Business

Il 23 Febbraio avrò l’onore di tenere una sessione nella sede romana di DomusDotNet, dove vedremo un’introduzione a MEF con qualche caso d’uso reale e tanto tanto codice… e poi ovviamente ci sarà la consueta cena a cui non si può mancare Per iscrizioni e maggiori informazioni  vi rimando al post di Nicolò

MEFedMVVM Composition & IComposer

Piccola nota: prima di leggere questo post si consiglia di dare un occhio ai due precedenti http://blogs.ugidotnet.org/federicoD/archive/2010/09/09/mef-mvvm-mefedmvvm.aspx http://blogs.ugidotnet.org/federicoD/archive/2011/01/27/caricare-assembly-non-referenziati-con-mefedmvvm.aspx Chi ha già usato MEFedMVVM saprà benissimo che una volta dato un nome ai nostri ViewModel e, dopo aver specificato nelle View quale ViewModel ci serve, “qualcuno” si occuperà di far combaciare e funzionare tutto l’ambaradan. Questo “qualcuno” è il LocatorBootstrapper, che insieme agli IComposers si occuperà di effettuare la composition. In particolare IComposer si occupa di definire quali sono i Catalogs da usare, per cui dove MEF andrà a cercare ViewModel, Services, e via dicendo, e ci consente anche...

Caricare assembly non referenziati con MEFedMVVM

Supponiamo che… State sviluppando un’applicazione Desktop con WPF. State utilizzando il pattern MVVM. State usando MEFedMVVM (e se non lo state facendo dateci un occhio) per associare i ViewModel alle View e per disaccoppiare (in maniera semplice e veloce) i contratti dei vostri servizi dalle implementazioni. Quest’ultime stanno su un progetto che non referenziate, e che non volete referenziare, da nessuna parte…quindi MEFedMVVM non è assolutamente in grado di soddisfare la richiesta dell’implementazione di uno di questi servizi. Come risolviamo questo problema? Dando un occhio ai sorgenti di MEFedMVVM, si scopre che lui...

[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...

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!!

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...

Full MEF Archive