Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Come funziona la convenzione rispetto alla configurazione in mvvmcross


Come funziona la convenzione rispetto alla configurazione in mvvmcross


Convenzione sulla configurazione in mvvmcross

MVVMCROSS, un framework MVVM multipiattaforma, utilizza il concetto di "Convenzione sulla configurazione" per semplificare il processo di sviluppo riducendo la necessità di una configurazione esplicita. Questo approccio consente agli sviluppatori di concentrarsi su aspetti non convenzionali della loro applicazione, sfruttando le convenzioni di default per gestire scenari tipici.

Principi di base

In MVVMCROSS, la convenzione rispetto alla configurazione viene applicata principalmente nel modo in cui le viste e le viewmodel sono collegate. Per impostazione predefinita, MVVMCROSS utilizza una convenzione di denominazione per associare le viste ai loro corrispondenti modi di vista. Ad esempio, se si dispone di un `tipview`, mvvmcross cercherà automaticamente un` tipviewmodel` da abbinare ad esso. Questa convenzione elimina la necessità di una configurazione esplicita, rendendo più facile gestire la relazione tra viste e viewmodels [11].

Implementazione ###

1. ViewModel Naming Convention: MVVMCRoss segue una convenzione di denominazione specifica in cui una ViewModel è in genere denominata dal "modello" aggiunta al nome della vista. Ad esempio, `FirstView` è collegato a` FirstViewModel` per impostazione predefinita [5] [11].

2. Collegamento automatico: quando si utilizza questa convenzione, MVVMCROSS individua e collega automaticamente la ViewModel appropriata alla sua vista. Ciò è particolarmente utile quando non si utilizzano parametri generici per definire esplicitamente queste relazioni [11].

3. Flessibilità: mentre MVVMCRoss si basa su convenzioni per semplicità, fornisce anche flessibilità. Gli sviluppatori possono sovrascrivere queste convenzioni quando necessario utilizzando parametri generici o configurazioni personalizzate. Ciò consente un maggiore controllo su come sono associate viste e modelli di vista, specialmente in applicazioni complesse [11].

vantaggi

- Configurazione ridotta: sfruttando le convenzioni, gli sviluppatori trascorrono meno tempo a scrivere codice di configurazione, concentrandosi invece sulla logica delle applicazioni.
- Leggibilità migliorata: la base di codice diventa più leggibile poiché le attività di configurazione ripetitive sono ridotte al minimo.
- Manutenzione semplificata: con meno configurazioni esplicite, il mantenimento e l'aggiornamento delle applicazioni diventa più semplice.

Personalizzazione ###

Mentre MVVMCRoss si basa fortemente sulle convenzioni, supporta anche la personalizzazione. Gli sviluppatori possono sovrascrivere i comportamenti predefiniti implementando la logica personalizzata in classi chiave come `app` e` setup`. Ad esempio, è possibile personalizzare il contenitore IOC o modificare come vengono costruiti e inizializzati ViewModels [9].

In sintesi, l'implementazione di MVVMCRoss della convenzione rispetto alla configurazione forma il processo di sviluppo automatizzando le attività tipiche, consentendo agli sviluppatori di concentrarsi su aspetti unici delle loro applicazioni. Questo approccio migliora la produttività e semplifica la manutenzione dell'applicazione pur fornendo la flessibilità necessaria per scenari complessi.

Citazioni:
[1] https://en.wikipedia.org/wiki/convention_over_configuration
[2] https://visualstudiomagazine.com/articles/2018/05/08/build-a-xamarin.forms-application.aspx
[3] https://leaware.com/creating-cross-platform-xamarin-applications-using-the-mvvmcross-framework/
[4] https://learn.microsoft.com/en-us/archive/msdn-magazine/2009/february/patterns-in-practice-convention-over-configuration
[5] https://www.codeproject.com/articles/863695/introduction-to-mvvvmcross-platform
[6] https://github.com/mvvmcross/mvvmcross-samples
[7] https://www.mvvmcross.com/documentation/fundamentals/viewmodel-lifecycle
[8] https://books.sonatype.com/mvnref-book/reference/installation-sect-conventionconfiguration.html
[9] https://www.mvvmcross.com/documentation/advanced/customizing-using-using-app-and-setup
[10] https://www.mvvmcross.com/documentation/getting-started/getting-started
[11] https://www.mvvmcross.com/documentation/tutorials/tipcalc/a-note-about-views-and-viewmodels
[12] https://www.mvvmcross.com/documentation/getting-started/mvvmcross-overview