Domanda

So che alcuni MVVM quadri che ha introdotto nel questa discussione

Si prega di descrivere o darmi collegamento per che ciò che li sono utili per? Non informazioni su MVVM su MVVM Framework. Grazie :) voglio sapere : Che cosa è MVVM quadro?

È stato utile?

Soluzione

Credo che la tua domanda non è davvero preciso. Per quanto ho capito, si chiede per le caratteristiche di ogni quadro?!

È possibile trovare informazioni dettagliate qui e href="http://www.japf.fr/2009/10/a-quick-tour-of-existing-mvvm-frameworks/" rel="nofollow"> qui . Tuttavia, almeno uno di questi link è già stato dato nel thread che hai menzionato ...

Modifica
In sostanza, un quadro MVVM è un insieme di classi che vengono comunemente utilizzati in applicazioni che utilizzano il MVVM (Model-View-ViewModel) modello. Questo può includere sistemi di messaggistica per comunicare tra parti indipendenti di un software, tecniche di iniezione di dipendenza, classi base per ViewModels, modelli di progetto / classe, meccanismi di validazione, i comandi comunemente utilizzati, le tecniche per la visualizzazione di finestre di dialogo, e così via ...

Per comprendere completamente un tale quadro, si dovrà capire il modello MVVM prima. Perché solo allora (o anche solo dopo aver fatto il tuo primo progetto MVVM) si avrà una comprensione dei problemi e / o sfide di questo modello.

Altri suggerimenti

Per usare framework MVVM semplicemente seguire la procedura:

  1. Hai un modello e un modello vista con lo stesso nome.

Visualizza modelli non dovrebbero essere wrapper intorno a modelli. Il lavoro di un modello di vista è a richieste di broker per i servizi esterni come il caricamento e il salvataggio dei dati. I dati stessi, così come la convalida e la maggior parte della logica di business, dovrebbero essere nei modelli.

Non posso sottolineare abbastanza. Ogni volta che si crea un model-view che avvolge un modello per delega si introduce un enorme buco in API. Specialmente, qualsiasi cosa con un diretto riferimento al modello può modificare una proprietà in modo tale che la vista di un modello e quindi l'interfaccia utente non vengono mai notificate. Analogamente, qualsiasi cambiamento ai campi calcolati nel modello non verranno propagate al modello vista.

  1. Si ha una vista e un modello vista con lo stesso nome.

Idealmente vista modelli sono agnostico alle schermate vengono utilizzati da. Ciò è particolarmente vero in un'applicazione WPF in cui più finestre possono essere condividono la stessa istanza di un modello vista.

Per le applicazioni più piccole, si può solo bisogno di una visione modello unico per l'intera applicazione. Per le applicazioni più grandi potrebbe essere necessario uno per la funzionalità principale e uno per ogni aspetto secondario come ad esempio la gestione della configurazione.

  1. Non hai codice dietro.

In dietro il codice termini assoluti non è né un bene né un male. È semplicemente un posto per mettere logica che è specifico per una singola visualizzazione o controllo. Così, quando vedo una vista senza code-behind a tutti verifico subito per i seguenti errori:

  • Fa i comandi touch specifici view-modello per nome?
  • È il modello vista viene dato accesso ai comandi tramite un parametro di comando?
  • Is EventToCommand o di un altro comportamento che perde essere utilizzati al posto di semplice gestore di eventi?

EventToCommand da MVVM Light è particolarmente male perché impedisce i controlli di essere garbage collection dopo che sono stati rimossi dallo schermo.

  1. Visualizza modelli stanno ascoltando notifiche delle proprietà modificate

Se un modello ha una più lunga durata di vita, allora il modello opinione che ascolta i suoi eventi, allora probabilmente hanno una perdita di memoria. A differenza di vedute che hanno un evento a vuoto, view-modelli non hanno una buona storia per la gestione del ciclo di vita. Quindi, se essi attribuiscono un evento a un modello che può fuori-ultima loro, allora il modello vista sarà trapelato.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top