Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon S katerimi se soočajo pogosta vprašanja pri nadgradnji na novo različico MVVMcross


S katerimi se soočajo pogosta vprašanja pri nadgradnji na novo različico MVVMcross


Nadgradnja na novo različico MVVMcross lahko uvede več izzivov zaradi sprememb v arhitekturi okvira, posodobitev imenskega prostora in prekinitve sprememb. Tu je nekaj pogostih vprašanj, s katerimi se soočajo med takšnimi nadgradnjami:

1. Spremembe imenskega prostora **

MVVMcross pogosto posodablja prostore imenskih prostorov med glavnimi različicami. Na primer, pri prehodu iz mvvmcross 5 do 6 je bil imenski prostor `mvvmcross.core` posodobljen na` mvvmcross` in `mvvmcross.core.navigation` postal` mvvmcross.navigation` [2]. Podobno so bile spremenjene prostore imen vtičnikov, na primer spreminjanje iz `mvvmcross.plugins` v` mvvmcross.plugin` [2]. Te spremembe zahtevajo skrbne posodobitve v vaši kodi, da se zagotovi združljivost.

2. Težave z odvisnostjo in vtičnikom **

Pri nadgradnji, vtičnikov in odvisnosti morda ne bodo pravilno naloženi ali registrirani. Na primer, če naletite na težave z reševanjem vrst, kot je `IMVXMessenger`, bi to lahko bilo posledica tega, da se vtičnik Messenger ne naloži pravilno. Zagotoviti morate, da se vsi potrebni vtičniki naložijo v razredu "Setup" [1].

3. Spremembe vsebnika IOC **

MVVMcross uporablja zabojnik MOK za vbrizgavanje odvisnosti. Nadgradnje lahko zahtevajo prilagoditve, kako se odvisnosti registrirajo ali rešijo. Če uporabljate vsebnik IOC po meri, ga boste morda morali prilagoditi z novo različico MVVMcross [4].

4. Razbijanje sprememb nastavitve in beleženja **

V MVVMcross 8 je pomembna sprememba zahteva, da izrecno izvajate svoj lastni izpeljan "mvxsetup`. To vključuje izvajanje metod, povezanih z beleženjem, saj MVVMcross ne zagotavlja več privzetih izvedb za te [10].

5. Spremembe nastavitvene spremembe platforme **

Vsaka platforma (npr. IOS, Android) lahko zahteva izvedbo posebnih nastavitev razredov pri nadgradnji. Na primer, morda boste morali uporabiti `mvxiossetup` za iOS ali` mvxandroidSetup` za Android [10].

6. Težave z vezavo in vzorcem MVVM **

Včasih lahko nadgradnje vplivajo na to, kako deluje vezava podatkov, še posebej, če se spreminjajo v tem, kako so lastnosti obveščene. Zagotavljanje, da vaši modeli pogleda pravilno izvajajo `inotifyPropertyChanged` ali uporaba opazljivih lastnosti, je ključnega pomena za vzdrževanje posodobitev uporabniškega vmesnika [9].

7 .Net standardne in okvirne posodobitve **

Nadgradnje pogosto zahtevajo posodobitev vašega projekta na novejše .NET standarde ali okvire. Na primer, premik iz MVVMcross 5 do 6 je bilo potrebno preklop na .NET Standard 2.0 [2]. To lahko vključuje pomembne spremembe vaše strukture projekta in odvisnosti.

8. Migracija v nove sloge projektov (npr. SDK slog) **

Ko se preselite na novejše okvire, kot je .NET Maui, boste morda morali svoje projekte pretvoriti v SDK Style in ročno ravnati z drugimi migracijskimi nalogami [7].

Če povzamemo, nadgradnja MVVMcross vključuje reševanje sprememb imenskega prostora, zagotavljanje ustreznega nalaganja vtičnikov in odvisnosti, prilagajanje novim zahtevam za vsebnika IOC, izvajanje razredov nastavitve, specifičnih za platformo, reševanje vprašanj za vezavo podatkov, posodobitev novejših .NET standardov in ravnanje z migracijami v slogu projekta. Vsako od teh področij zahteva skrbno pozornost, da zagotovi nemoten prehod na novo različico.

Navedbe:
[1] https://stackoverflow.com/questions/68214000/mvvmcross-pagrade-from-6-4-2-TO-8-0-1
[2] https://www.mvvmcross.com/documentation/upgrading/upgrade-to-mvvmcross-60
[3] https://www.mvvmcross.com/mvvmcross-5-release/
[4] https://www.mvvmcross.com/documentation/advanced/customizing-using-app-and-setup
[5] https://www.nuget.org/packages/mvvmcross/
[6] https://www.mvvmcross.com/documentation/fundamentals/data---inding
[7] https://learn.microsoft.com/en-us/answers/questions/1346751/xamarin-forms-to-maii-migracija-issues
[8] https://learn.microsoft.com/en-us/answers/questions/847430/unable-to-compile-xamarin-android-project-in-VS-20
[9] https://www.reddit.com/r/dotnetmaui/comments/103ai8p/mvvm_problems_having_troubles_with_data_bindings/
[10] https://www.mvvmcross.com/documentation/upgrading/upgrade-to-mvvmcross-80