Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Meg tudja magyarázni az alap- és UI projektek közötti interakciót az MVVMCross -ban


Meg tudja magyarázni az alap- és UI projektek közötti interakciót az MVVMCross -ban


Az MVVMCross egy platformok közötti keret, amely megkönnyíti az alkalmazások fejlesztését a Model-View-ViewModel (MVVM) mintával. Ez lehetővé teszi a fejlesztők számára, hogy lazán kapcsolt, karbantartható és tesztelhető mobil megoldásokat hozzanak létre az alkalmazás logikájának két fő részre osztásával: az alapvető projekt és az UI projekt.

Core Project

Az alapvető projekt általában egy .NET standard könyvtár, amely tartalmazza az összes megosztott kódot, beleértve:
- ViewModels: Ezek felelősek a felhasználói interakciók és az üzleti logika kezeléséért.
- Modellek: Az alkalmazás egészében alkalmazott adatszerkezeteket képviselje.
- Szolgáltatások: Biztosítson hozzáférést az adatokhoz, a webszolgáltatásokhoz vagy más külső forrásokhoz.
- Konverterek: Adattípus -konverziókhoz használják.
- App osztály: Ez felelős az alkalmazás üzleti logikájának és nézeti modelljeinek inicializálásáért. Ezenkívül kezeli az egyéni objektumok regisztrációját a vezérlő (IOC) konténer inverziójában.
- AppStart: Opcionálisan annak meghatározására szolgál, hogy melyik nézetmodellt jelenítse meg először az alkalmazás elindulásakor.

UI projekt

Az UI projekt platformspecifikus, és tartalmazza a felhasználói felület elemeit és a platformspecifikus kódot. Minden célplatformon (például iOS, Android) külön felhasználói felület projekt van. Ezek a projektek magukban foglalják:
- Megtekintések: Minden nézet felelős a megfelelő nézetmodell bemutatásáért. A nézeteket natív platform eszközökkel tervezték (például XAML a Xamarin.Forms, AXML az Androidhoz).
- Natív alkalmazáskezelő: Ez kezeli a natív életciklus eseményeket. Például az Androidon ez egy „mainActivity” vagy „mainApplication” osztály lenne, míg az iOS -on egy „AppDelegate” osztály lenne.
- Beállítási osztály: Ez felelős az MVVMCross bootstrappingért és a platformspecifikus szolgáltatások regisztrálásáért. Inicializálja az MVVMCross keretet, és platformspecifikus megvalósításokkal állítja be a NOB-tárolót.

A mag és az UI projektek közötti kölcsönhatás

Az MVVMCross -ban az alap- és UI projektek közötti kölcsönhatást az MVVM minta és a keret NOB -tartályának megkönnyíti. Így lépnek kapcsolatba:
- ViewModel -kötés: Az UI projektek az MVVMCross segítségével a nézeteket a modellek megtekintéséhez kötik. Ezt általában egy elnevezési konferencia felhasználásával vagy a nézetek olyan attribútumokkal díszítik, mint a „[mvxViewFor (typeOF (HomeViewModel))]`.
- Szolgáltatási injekció: Az alapvető projekt meghatározza a szolgáltatások interfészeit, amelyeket az egyes platformon eltérően hajtanak végre. Ezeket a szolgáltatásokat regisztrálják a NOB-tárolóban, és beillesztik a nézetmodellekbe, lehetővé téve a platform-specifikus funkciókat a kód másolása nélkül.
- Navigáció és bemutatás: Az MVVMCross mechanizmusokat biztosít a nézetmodellek közötti navigáláshoz és a nézetek bemutatásához. A keretrendszer előadókat (például IMVXIosViewPresenter ",` imVxandroidViewPresenter ') használ, hogy kezelje a nézetek megjelenítését az egyes platformon.

Az alkalmazás logikájának az alap- és felhasználói felület projektekbe történő elválasztásával az MVVMCross lehetővé teszi a fejlesztők számára, hogy maximalizálják a kód újrafelhasználását a platformokon, miközben lehetővé teszik a platformspecifikus testreszabást és az optimalizálást [1] [3] [5].

Idézetek:
[1] https://www.mvvmcross.com/documentation/getting-started/mvvmcross-overview
[2] https://canbilgin.wordpress.com/tag/mvvmcross/
[3] https://leaware.com/creating-cross-platform-xamarin-pplications-Uning-the-mvvmcross-framework/
[4] https://www.mvvmcross.com/documentation/advanced/customizing-using-app-andsetup
[5] https://www.suneco.nl/blogs/boost-your-xamarin-native-projects-with-mvvmcross/
[6] https://learn.microsoft.com/en-us/archive/msdn-magazine/2014/august/windows-phone-build-mvvm-apps-with-xamarin-and-mvvmcross
[7] https://www.mvvmcross.com/documentation/tutorials/tipcalc/the-core-project
[8] https://canbilgin.wordpress.com/2017/03/26/xamarin-forms-application-with-mvvmcross/