Inovácia na novú verziu MVVMCross môže predstaviť niekoľko výziev v dôsledku zmien v architektúre rámca, aktualizácií menného priestoru a prerušenia zmien. Tu sú niektoré bežné problémy, ktorým čelia počas takýchto vylepšení:
1. Zmeny menného priestoru **
MVVMCross často aktualizuje menné priestory medzi hlavnými verziami. Napríklad pri prechode z MVVMCross 5 na 6 sa menný priestor `mvvmcross.core` aktualizoval na` mvvmcross` a `mvvmcross.core.navigation` sa stal` mvvmcross.navigation` [2]. Podobne boli modifikované názvové priestory doplnkov, napríklad zmena z `mvvmcross.plugins` na` mvvmcross.plugin` [2]. Tieto zmeny vyžadujú starostlivé aktualizácie vo vašom kóde, aby sa zabezpečila kompatibilita.2. Závislosť a problémy s doplnkom **
Pri inovácii sa doplnky a závislosti nemusia správne načítať alebo zaregistrovať. Napríklad, ak sa stretnete s problémami s riešením typov, ako je „IMVXMessenger“, mohlo by to byť spôsobené tým, že doplnok Messenger nie je správne načítaný. Musíte sa ubezpečiť, že všetky potrebné doplnky sú načítané do triedy „Setup“ [1].3. Zmeny kontajnerov IOC **
MVVMCross používa kontajner IOC na vstrekovanie závislosti. Vylepšenia môžu vyžadovať úpravy toho, ako sú závislosti registrované alebo vyriešené. Ak používate vlastný kontajner IOC, možno ho budete musieť prispôsobiť tak, aby pracoval s novou verziou MVVMCross [4].4. Prelomenie zmien v nastavení a protokolovaní **
V MVVMCross 8 je významnou zmenou požiadavka explicitne implementovať svoj vlastný derivát `MVXSETUP`. Zahŕňa to implementáciu metód súvisiacich s protokolovaním, pretože spoločnosť MVVMCross už neposkytuje predvolené implementácie pre nich [10].5. Zmeny nastavenia špecifické pre platformu **
Každá platforma (napr. IOS, Android) môže vyžadovať implementáciu konkrétnych nastavení pri inovácii. Napríklad, možno budete musieť použiť `mvxiossetUp` pre iOS alebo` mvxandroidSetup` pre Android [10].6. Problémy s viazaním údajov a MVVM **
Niekedy môžu inovácie ovplyvniť spôsob, akým funguje väzba údajov, najmä ak existujú zmeny v tom, ako sú vlastnosti upozornené. Zabezpečenie toho, aby vaše modely zobrazenia správne implementovali „inotifyPropertyChanged“ alebo použite pozorovateľné vlastnosti, je rozhodujúce pre udržiavanie aktualizácií používateľského rozhrania [9].7 .NET štandardné a rámcové aktualizácie **
Inovácie si často vyžadujú aktualizáciu projektu na novšie štandardy alebo rámce .NET. Napríklad prechod z MVVMCROSS 5 na 6 vyžadoval prepnutie na štandard .NET 2.0 [2]. To môže zahŕňať významné zmeny vo vašej projektovej štruktúre a závislosti.8. Migrácia na nové štýly projektu (napr. Štýl SDK) **
Pri migrácii do novších rámcov, ako je .NET Maui, možno budete musieť ručne previesť svoje projekty na štýl SDK a manuálne zvládnuť ďalšie migračné úlohy [7].Stručne povedané, inovácia MVVMCross zahŕňa riešenie zmien menného priestoru, zabezpečenie správneho načítania doplnkov a závislosti, prispôsobenie sa novým požiadavkám na kontajner IOC, implementáciu tried nastavenia špecifických pre platformu, riešenie problémov s viazaním údajov, aktualizáciu novších štandardov .NET štandardov a manipuláciu s migráciou v štýle projektu. Každá z týchto oblastí si vyžaduje starostlivú pozornosť, aby sa zabezpečila hladký prechod na novú verziu.
Citácie:[1] https://stackoverflow.com/questions/68214000/mvvmcross upgrad Gradefrom-6-4-4-2-t--8-0-1
[2] https://www.mvvmcross.com/documentation/upgrading/upgrade-to-mvvvmcross-60
[3] https://www.mvvmcross.com/mvvmcross-5-release/
[4] https://www.mvvmcross.com/documentation/advanced/custoughing-using-app-and-setup
[5] https://www.nuget.org/packages/mvvmcross/
[6] https://www.mvvmcross.com/documentation/funmamentals/data-binding
[7] https://learn.microsoft.com/en-us/answers/questions/1346751/xamarin-forms-to-maui-migration-isesues
[8] https://learn.microsoft.com/en-us/answers/questions/847430/unable-to-compile-xamarin-android-project-project-in-20
Https://www.reddit.com/r/dotnetmaui/comments/103ai8p/mvvm_problems_having_troubles_with_data_bindings/
[10] https://www.mvvmcross.com/documentation/upgrading/upgrade-to-mvvvmcross-80