Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Hoe werkt conventie over configuratie in mvvmcross


Hoe werkt conventie over configuratie in mvvmcross


Verdrag over configuratie in mvvmcross

MVVMCross, een platformonafhankelijke MVVM-framework, maakt gebruik van het concept van "conventie over configuratie" om het ontwikkelingsproces te vereenvoudigen door de noodzaak van expliciete configuratie te verminderen. Met deze aanpak kunnen ontwikkelaars zich concentreren op onconventionele aspecten van hun toepassing, waardoor standaardconventies worden gebruikt om typische scenario's af te handelen.

Basisprincipes

In MVVMCross wordt conventie over configuratie voornamelijk toegepast in hoe weergaven en viewmodellen zijn gekoppeld. Standaard gebruikt MVVMCross een naamgevingsconventie om weergaven te associëren met hun overeenkomstige ViewModels. Als u bijvoorbeeld een `Tipview` hebt, zoekt MVVMCross automatisch naar een` TipviewModel` om ermee te combineren. Deze conventie elimineert de behoefte aan expliciete configuratie, waardoor het gemakkelijker wordt om de relatie tussen weergaven en weergavemodellen te beheren [11].

Implementatie

1. ViewModel Naamgerconventie: MVVMCross volgt een specifiek naamgevingsconventie waarbij een ViewModel doorgaans wordt genoemd door "model" aan de naam van de weergave aan te brengen. Bijvoorbeeld, `firstView` is standaard gekoppeld aan` firstViewModel` [5] [11].

2. Automatische koppeling: bij gebruik van deze conventie vindt MVVMCross automatisch het juiste weergavemodel naar de weergave. Dit is met name handig als u geen generieke parameters gebruikt om deze relaties expliciet te definiëren [11].

3. Flexibiliteit: hoewel MVVMCross vertrouwt op conventies voor eenvoud, biedt het ook flexibiliteit. Ontwikkelaars kunnen deze conventies overschrijven wanneer dat nodig zijn met behulp van generieke parameters of aangepaste configuraties. Dit zorgt voor meer controle over hoe aanzichten en weergavemodellen worden geassocieerd, vooral in complexe toepassingen [11].

Voordelen

- Verminderde configuratie: door gebruik te maken van conventies besteden ontwikkelaars minder tijd aan het schrijven van configuratiecode, in plaats daarvan gericht op applicatielogica.
- Verbeterde leesbaarheid: de codebase wordt leesbaarder naarmate de repetitieve configuratietaken worden geminimaliseerd.
- vereenvoudigd onderhoud: met minder expliciete configuraties wordt het onderhouden en bijwerken van applicaties eenvoudiger.

Aanpassing

Hoewel MVVMCross sterk afhankelijk is van conventies, ondersteunt het ook aanpassing. Ontwikkelaars kunnen standaardgedrag overschrijven door aangepaste logica te implementeren in sleutelklassen zoals `App` en` Setup`. U kunt bijvoorbeeld de IOC -container aanpassen of wijzigen hoe ViewModels worden geconstrueerd en geïnitialiseerd [9].

Samenvattend, de implementatie van MVVMCross door de conventie over configuratie stroomlijnt het ontwikkelingsproces door typische taken te automatiseren, waardoor ontwikkelaars zich kunnen concentreren op unieke aspecten van hun toepassingen. Deze aanpak verhoogt de productiviteit en vereenvoudigt het onderhoud van applicaties en biedt nog steeds de flexibiliteit die nodig is voor complexe scenario's.

Citaten:
[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://lealware.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-mvvmcross-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-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