MVVMCROSS V3: ssa ViewModel -rakenteen suhteen tehtiin useita merkittäviä muutoksia, joiden tarkoituksena oli parantaa testattavuutta ja käytettävyyttä kehittäjillä. Tässä ovat keskeiset muutokset:
1. Rakentajapohjainen riippuvuusinjektio: Yksi tärkeimmistä muutoksista oli rakentajapohjaisen riippuvuusinjektion käyttöönotto. Tämän ansiosta kehittäjät voivat injektoida riippuvuuksia suoraan ViewModel -rakentajaan, mikä helpottaa riippuvuuksien hallintaa ja testattavuuden parantamista. Tätä ennen riippuvuuksia hoidettiin usein muilla keinoilla, jotka voivat olla vähemmän suoraviivaisia.
2. Navigointi tyypillisillä navigointiluokilla: MVVMCross V3 esitteli uuden navigointijärjestelmän, jossa käytettiin tyypillisiä navigointiluokkia. Tämä tarkoitti, että sen sijaan, että navigoi suoraan näkymiin, kehittäjät voivat navigoida näkymämallien välillä käyttämällä voimakkaasti tyyppisiä luokkia. Tämä lähestymistapa yksinkertaisti alustojen välistä navigointia abstraktilla pois alustakohtaiset yksityiskohdat.
3. ViewModel State -sovelluksen tallentaminen ja uudelleenlataaminen hautaustilanteelle: Toinen V3: ssa esitetty merkittävä ominaisuus oli kyky pelastaa ja lataa ViewModel -tila. Tämä oli erityisen hyödyllistä käsitellessä "Tombstoning" -skenaarioita, joissa käyttöjärjestelmä voi lopettaa sovelluksen muistirajoitteiden takia ja palauttaa sitten, kun käyttäjä palaa siihen. Säästämällä ViewModel -tila, sovellukset voisivat säilyttää nykyisen tilansa myös päättymisen jälkeen ja käynnistetty uudelleen.
4. Navigointiparametrit, jotka on siirretty `init ()` -menetelmään: MVVMCROSS: n vanhemmissa versioissa navigointiparametrit siirrettiin suoraan ViewModel -rakentajalle. V3: sta alkaen nämä parametrit siirrettiin sen sijaan `init () -menetelmään. Tämä muutos mahdollisti rakentajan käytön yksinomaan riippuvuusinjektioon, mikä tekee koodinpuhdistimesta ja ylläpidettävämmäksi. `Init ()` -menetelmästä tuli paikka, jossa navigointiparametrit käsiteltiin, mikä mahdollistaa joustavamman alustuslogiikan.
Kaiken kaikkiaan nämä MVVMCross V3: n muutokset tarjosivat jäsenneltymmän ja ylläpidettävämmän tavan rakentaa ja hallita näkymämalleja, mikä parantaa yleistä kehityskokemusta alustojen välisiin sovelluksiin.
Viittaukset:[1] https://www.mvvmcross.com/documentation/fundamentals/viewModel-lifecycle
[2] https://github.com/mvvmcross/mvvmcross/releases
[3] https://www.reddit.com/r/csharp/comments/12akrcw/mvvm_question_how_do_you_manage_the_interaction/
.
[5] https://www.mvvmcross.com/blog/
.
.
[8] https://stackoverflow.com/questions/39587974/changes-in-mvvmcross-bindings
[9] https://www.mvvmcross.com/documentation/fundamentals/navigation
[10] https://www.mvvmcross.com/documentation/fundamentals/data-binding
[11] https://github.com/mvvmcross/mvvmcross/blob/developop/changelog.md