Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Jaké jsou běžné problémy, kterým čelí při upgradu na novou verzi MVVMCross


Jaké jsou běžné problémy, kterým čelí při upgradu na novou verzi MVVMCross


Upgradování na novou verzi MVVMCross může přinést několik výzev kvůli změnám v architektuře rámce, aktualizací na jmenný prostor a porušování změn. Zde jsou některé běžné problémy, kterým během takových upgradů čelí:

1. Změny názvů **

MVVMCross často aktualizuje jmenné prostory mezi hlavními verzemi. Například při přechodu z mvvmcross 5 na 6 byl jmenný prostor `mvvmcross.core` aktualizován na` mvvmcross` a `mvvmcross.core.navigation` se stal` mvvmcross.navigation` [2]. Podobně byly upraveny názvy pluginů, jako je změna z `mvvmcross.plugins` na` mvvmcross.plugin` [2]. Tyto změny vyžadují pečlivé aktualizace vašeho kódu, aby byla zajištěna kompatibilita.

2. Problémy s závislostí a pluginem **

Při upgradu nemusí být pluginy a závislosti správně načteny nebo registrovány. Například, pokud narazíte na problémy s řešením typů, jako je `imvXMessenger`, může to být způsobeno tím, že se plugin Messenger nebude správně načten. Musíte zajistit, aby všechny potřebné pluginy byly načteny ve vaší třídě „Setup“ [1].

3. Změny kontejneru IOC **

MVVMCross používá pro injekci závislosti kontejner IOC. Upgrady mohou vyžadovat úpravy, jak jsou závislosti registrovány nebo vyřešeny. Pokud používáte vlastní kontejner IOC, možná budete muset přizpůsobit jej, aby pracoval s novou verzí MVVMCross [4].

4. porušení změn v nastavení a protokolování **

V MVVMCROSS 8 je významnou změnou požadavkem explicitní implementace vašeho vlastního derivátu `mvxsetup`. To zahrnuje implementaci metod souvisejících s protokolováním, protože MVVMCross již pro ně neposkytuje výchozí implementace [10].

5. Změny nastavení specifické pro platformu **

Každá platforma (např. IOS, Android) může vyžadovat implementaci konkrétních tříd nastavení při upgradu. Například možná budete muset použít pro iOS nebo `mvxAndroidSetup` pro Android [10].

6. Problémy s vazbou dat a vzorec MVVM **

Někdy mohou upgrady ovlivnit to, jak funguje vazba dat, zejména pokud dojde ke změnám v tom, jak jsou vlastnosti upozorněny. Pro udržování aktualizací uživatelského rozhraní [9] je zásadní zajistit, aby vaše modely pohledu byly správně implementovány „inotifyProperTyChange“ nebo použitelné pozorovatelné vlastnosti.

7. .NET Standard and Framework Aktualizace **

Upgrady často vyžadují aktualizaci vašeho projektu na novější .NET standardy nebo rámce. Například přechod z MVVMCross 5 na 6 vyžadoval přechod na standard .NET 2.0 [2]. To může zahrnovat významné změny ve struktuře projektu a závislosti.

8. Migrace do nových projektových stylů (např. SDK styl) **

Při migraci do novějších rámců, jako je .net Maui, možná budete muset své projekty převést na styl SDK a zvládnout další migrační úkoly ručně [7].

Stručně řečeno, upgrade MVVMCross zahrnuje řešení změn na jmenné prostoru, zajištění správného pluginu a závislosti načítání, přizpůsobení novým požadavkům na kontejnery IOC, implementaci tříd nastavení specifické pro platformu, řešení problémů s vazbou dat, aktualizace na novější standardy .NET a migrace stylu projektu. Každá z těchto oblastí vyžaduje pečlivou pozornost, aby zajistila hladký přechod na novou verzi.

Citace:
[1] https://stackoverflow.com/questions/68214000/mvvmcross-pgrade-from-6-4-2--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-binding
[7] https://learn.microsoft.com/en-us/answers/questions/1346751/xamarin-forms-tomaui-migration-issues
[8] https://learn.microsoft.com/en-us/answers/questions/847430/unable-to-comple-xamarin-dord-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