MEFedMVVM

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

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 + MVVM = MEFedMVVM

MEFedMVVM è un framework sviluppato da Marlon Grech che utilizza MEF per comporre i ViewModel con le rispettive View, tenendovi però all’oscuro di tutta la parte di MEF. Una frase che mi è subito saltata all’occhio da uno dei tanti articoli di Marlon su MEFedMVVM è: One of the goals of MEFedMVVM  is to do all the MEF plumbing for you so that you can simple say “I want to Export this ViewModel” and then you can have a View that says “I would like that specific ViewModel” and BANG, MEFedMVVM will do all the plumbing by leveraging the Mighty MEF. MEFedMVVM...