MVVMCROSS ir savstarpējas platformas ietvars, kas atvieglo lietojumprogrammu izstrādi, izmantojot modeļa-View-ViewModel (MVVM) modeli. Tas ļauj izstrādātājiem izveidot brīvi savienotus, uzturējamus un pārbaudāmus mobilos risinājumus, sadalot lietojumprogrammas loģiku divās galvenajās daļās: galvenajā projektā un UI projektā.
pamatprojekts
Galvenais projekts parasti ir .NET standarta bibliotēka, kurā ir viss koplietotais kods, ieskaitot:- ViewModels: tie ir atbildīgi par lietotāju mijiedarbības un biznesa loģikas apstrādi.
- Modeļi: attēlo datu struktūras, kas izmantotas visā lietojumprogrammā.
- Pakalpojumi: nodrošiniet piekļuvi datiem, tīmekļa pakalpojumiem vai citiem ārējiem resursiem.
- pārveidotāji: izmanto datu tipa reklāmguvumos.
- Lietotņu klase: Tas ir atbildīgs par lietojumprogrammas biznesa loģikas un skatīšanas modeļu inicializēšanu. Tas arī apstrādā pielāgoto objektu reģistrāciju kontroles (SOK) konteinerā.
- AppStart: pēc izvēles tiek izmantots, lai noteiktu, kuru skata modeli vispirms iesniegt, kad sākas lietojumprogramma.
UI projekts
UI projekts ir specifisks platformai un satur lietotāja interfeisa elementus un platformas specifisko kodu. Katrai mērķa platformai (piemēram, iOS, Android) ir atsevišķs UI projekts. Šie projekti ietver:- Skati: katrs skats ir atbildīgs par atbilstoša skata modeļa iepazīstināšanu. Skati ir izstrādāti, izmantojot vietējās platformas rīkus (piemēram, Xaml Xamarin.Forms, AXML Android).
- Vietējais lietojumprogrammu apstrādātājs: tas rīkojas ar vietējiem dzīves cikla notikumiem. Piemēram, operētājsistēmā Android tā būtu “MainActivity” vai “MainApplication” klase, kamēr iOS tā būtu “AppDelegate” klase.
- Iestatīšanas klase: Tas ir atbildīgs par MVVMCross sāknēšanas un platformas specifisko pakalpojumu reģistrēšanu. Tas inicializē MVVMCROSS sistēmu un izveido SOK konteineru ar platformas specifiskām ieviešanām.
Mijiedarbība starp kodolu un UI projektiem
Mijiedarbību starp Core un UI projektiem MVVMCROSS atvieglo MVVM modelis un sistēmas SOK konteiners. Lūk, kā viņi mijiedarbojas:- ViewModel iesiešana: UI projekti izmanto MVVMCross, lai iesaistītu skatus, lai skatītu modeļus. Parasti tas tiek darīts, izmantojot nosaukšanas konvenciju vai dekorējot skatus ar tādiem atribūtiem kā `[MVXViewFor (Typeof (HomeViewModel))]`.
- Pakalpojuma iesmidzināšana: galvenais projekts nosaka saskarnes pakalpojumiem, kas katrā platformā tiek ieviesti atšķirīgi. Šie pakalpojumi ir reģistrēti SOK konteinerā un ievadīti skata modeļos, ļaujot izveidot platformai raksturīgu funkcionalitāti, bez dublēšanas koda.
- Navigācija un prezentācija: MVVMCROSS nodrošina mehānismus navigācijai starp skata modeļiem un skatījumu uzrādīšanu. Framework izmanto vadītājus (piemēram, `imvxiosviewpresenter`,` imvxandroidViewpresenter`), lai pārvaldītu, kā skati tiek parādīti katrā platformā.
Atdalot lietojumprogrammas loģiku kodolu un UI projektos, MVVMCROSS ļauj izstrādātājiem maksimizēt kodu atkārtotu izmantošanu dažādās platformās, vienlaikus ļaujot veikt platformai specifisku pielāgošanu un optimizāciju [1] [3] [5].
Atsauces:[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-applications-using-the-mvvmcross-framework/
[4] https://www.mvvmcross.com/documentation/advanced/customing-using-app-and-setup
[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/window
[7] https://www.mvvmcross.com/documentation/tutorials/tipcalc/the-core-project
[8] https://canbilgin.wordpress.com/2017/03/26/xamarin-for-form-application-with-mvvmcross/