Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Integrálható lehet -e az MVVMCross más keretekbe vagy könyvtárakba


Integrálható lehet -e az MVVMCross más keretekbe vagy könyvtárakba


Az MVVMCross egy sokoldalú és kiterjeszthető MVVM keret, amelyet a platformok közötti fejlesztéshez terveztek, különösen a .NET ökoszisztémáján belül. Támogatja a platformok széles skáláját, beleértve a Xamarin.ios, a Xamarin.android, a Xamarin.forms, a Universal Windows Platform (UWP) és a Windows Presentation Framework (WPF) [1] [2] [4]. Az MVVMCross egyik legfontosabb jellemzője az, hogy beépüljön más keretekbe és könyvtárakba, javítva annak hasznosságát a komplex alkalmazásfejlesztésben.

Integráció más keretekkel

1. CSLA.NET Integráció: Az MVVMCross használható a CSLA.NET, az üzleti objektum kerete mellett. Míg a CSLA.NET az üzleti logikára és az adatok modellezésére összpontosít, az MVVMCross kezeli az UI és az alkalmazás szintű logikát. A fejlesztők kihasználhatják a CSLA.NET üzleti objektum -keretrendszerét azáltal, hogy örökölnek a CSLA „ViewModelBase” -éből és végrehajtják az MVVMCross követelményeit. Ez az integráció lehetővé teszi a kódmegosztást a platformokon keresztül, miközben fenntartja az aggodalmak egyértelmű elválasztását [5].

2. Reactiveui integráció: Bár az MVVMCross és a Reactiveui egyaránt MVVM keretek, különböző célokat szolgálnak. Az MVVMCross inkább a natív mobil alkalmazásokra és a kódmegosztásra koncentrál, míg a Reactiveui hangsúlyozza a reaktív programozást a reaktív kiterjesztések (RX) felhasználásával. Noha együtt létezhetnek, általában az alkalmazásfejlesztés különböző aspektusaira használják őket. Az MVVMCross átfogó funkciókészletet biztosít az felhasználói felület fejlesztéséhez, míg a ReactiveUI ideális a fejlett aszinkron műveleteket igénylő alkalmazásokhoz [7].

3. xamarin.Forms és egyéb felhasználói felület keretrendszerek: Az MVVMCross támogatja az integrációt a Xamarin.Forms-szal, lehetővé téve a fejlesztők számára, hogy platformok közötti alkalmazásokat készítsenek megosztott üzleti logikával. Jól működik más felhasználói felület keretekkel, mint például a Maui és a WPF, rugalmasságot biztosítva az UI réteg kiválasztásában [3] [7].

4. A plugin keretrendszer: Az MVVMCross tartalmaz egy plugin keretet, amely lehetővé teszi a fejlesztők számára, hogy kibővítsék funkcionalitását harmadik fél pluginjainak hozzáadásával olyan funkciókhoz, mint a GPS-hely, a lokalizáció és a kötő kiterjesztések. Ez a kiterjeszthetőség lehetővé teszi a fejlesztők számára, hogy testreszabhassák a keretet a projekt igényei szerint [1] [2].

A legfontosabb jellemzők, amelyek megkönnyítik az integrációt

- A kontroll (IOC) és a függőség injekciójának inverziója: Az MVVMCross olyan NOB -tartályt biztosít, amely megkönnyíti a függőség injekciót, megkönnyítve az integrálódást más keretekhez az alkalmazáson keresztüli függőségek és szolgáltatások kezelésével [1] [4].

- Testreszabható kötőmotor: A keret lehetővé teszi a fejlesztők számára, hogy egyedi kötéseket hozzanak létre véleményükhöz, ami hasznos lehet, ha integrálódik más felhasználói felület komponensekkel vagy keretekkel, amelyek speciális adatkötési mechanizmusokat igényelnek [1] [2].

- ViewModel to ViewModel navigáció: Ez a szolgáltatás segít a navigációs logika kezelésében, amelyet integrálhatunk más keretrendszeri navigációs mintákba, hogy biztosítsák a különböző platformon belüli következetes felhasználói élményt [1] [2].

Összefoglalva: az MVVMCross úgy van kialakítva, hogy nagyon integrálható legyen más keretekkel és könyvtárakkal, lehetővé téve a fejlesztők számára, hogy az MVVM architektúrában kiaknázzák erősségeit, miközben beépítik a többi eszköz további funkcióit. Bővíthetősége és támogathatósága a különféle platformok számára sokoldalú választássá teszi a platformok közötti alkalmazás fejlesztését.

Idézetek:
[1] https://github.com/mvvmcross/mvvmcross
[2] https://dotnet.libhunt.com/mvvmcross-alternatives
[3] https://visualstudiomagazine.com/articles/2018/05/08/build-a-xamarin.forms-application.aspx
[4] https://www.mvvmcross.com/documentation/getting-started/getting-started
[5] https://stackoverflow.com/questions/17373587/how-well-would-mvvmcross-and-csla-net-together-in---multi-platform-strategy
[6] https://www.mvvmcross.com/documentation/getting-started/mvvmcross-overview
[7] https://www.reactiveui.net/vs/mvvmcross
[8] https://www.mvvmcross.com
[9] https://github.com/rogerwcpt/xamarin-mvvvm-frameworks