Model-View-ViewModel
Post about Model-View-ViewModel pattern.
I've put a small demo of Model-View-ViewModel (MVVM) applied to WinJS applications on Codeplex: read about it here
I’m a longtime supporter of Laurent Bugnion’s MVVM Light Toolkit and I love using it together with my favorite IOC Container NInject, one of the most “boring” area is creating the class that exposes ViewModel instances in a design time way: the famous ViewModelLocator class. Now that Silverlight5 has custom markup extensions I thought: what about using it to simplify View vs ViewModel lookup? Here’s my attempt, let’s start with a simple ViewModel (nothing really new here, just to give you a complete scenario) public class...
Sono da sempre un sostenitore di Blend e continuo a ritenerlo uno strumento indispensabile per chi sviluppa applicazioni WPF/Silverlight (ora dovrei forse anche aggiungere Windows Phone 7…) ovviamente ci sono delle funzionalità che dal basso della mia esperienza ho sempre ritenuto degli ottimi “tentativi” ma nulla di più: il caso più evidente sono i Design time data, ovvero la possibilità di definire dei dati disponibili a design time per facilitare il disegno della user Interface Il motivo percui non ho mai preso in considerazione questa possibilità e facile da capire: Se i dati a runtime provengono...
Un applicazione WPF/Silverlight basata su Model-View-ViewModel è il risultato di un insieme di dettagli che fanno la differenza, ad esempio una delle cose che sto iniziando ad apprezzare e grazie al quale è possibile fare delle cose veramente carine con poco sforzo è il VisualStateManager (che in WPF 4.0 diventa parte integrante della piattaforma) Prendiamo un caso molto semplice: Cambiare il colore di un rettangolo (ma la cosa potrebbe essere complessa a piacere) alla pressione di un tasto. Usando Blend, definiamo due stati Normal e Fail e in ognuno di essi cambiamo il...
Ho parlato di MEF (Managed Extensibility Framework) parecchio tempo fa, ora che il framework è ben definito è evidente che se dovete sviluppare un applicazione ‘dinamica’ (o a plug-in se preferite) MEF è sicuramente la tecnologia da utilizzare. Ovviamente se l’applicazione è WPF o Silverlight l’accoppiare MEF e Model-View-ViewModel è d’obbligo, ecco quindi un semplice esempio di M-V-VM basato sul principio di composizione di MEF. Data Provider public interface IProvider
{
string GetName();
}
...
A tutti gli estimatori di Prism segnalo il rilascio della versione 2.1, le principali novità sono: All Visual Studio projects (Composite Application Library, reference implementation, and Quickstarts) were migrated to use Silverlight 3. TabRegionControlAdapter was modified to support binding in the TabItem’s control header in Silverlight 3. CreateXap.bat file was modified to search for Silverlight 3 assemblies if the Silverlight 2 reference assemblies cannot be found. Implemented the WeakEvent Pattern for the DelegateCommand’s and CompositeComand’s (more on this below). Download: http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=387c7a59-b217-4318-ad1b-cbc2ea453f40 Technorati Tags: Prism
In WPF la localizzazione è ‘ufficialmente’ compito di LocBaml, tool che personalmente preferisco evitare per una lunga serie di motivi, non ultima il fatto che la non è applicabile a Silverlight. Per localizzare le applicazioni basate sul pattern Model-View-ViewModel la soluzione che utilizzo è la seguente. Aggiungo al mio progetto i vari files .resX che contengono i vari testi localizzati: ...
L’altro giorno stavo chattando con Larent Bugnion riguardo nuove features da aggiungere nel suo progetto M-V-VM light toolkit ed entrambi eravamo concordi nella necessità di aggiungere un behavior che mappasse un generico evento verso un comando esposto dal ViewModel. Questa necessità è ancor più sentita in Silverlight dove il meccanismo di commanding, ICommand a parte, non è presente. Un esempio di possibile attached behavior è quello che segue: 1: public static class EventCommand
2: ...
Una semplice richiesta da parte di un cliente di Managed Designs relativamente ad una applicazione WPF che deve visualizzare degli elementi in posizioni ben precise ed eseguire delle operazioni in base agli items selezionati ha dato origine a questo post, il cui scopo è quello di mostrare come sia fondamentale cambiare il modo di pensare ad una interfaccia WPF/Silverlight rispetto alla vecchia tecnologia Windows Forms.
Il cliente aveva sviluppato l’idea aggiungendo e posizionando dinamicamente gli elementi ad un Canvas per poi rendersi conto durante lo sviluppo che la soluzione utilizzata portava ad un vicolo cieco.
La soluzione che abbiamo proposto...