Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Ar MVVMCross gali būti integruotas su kitomis sistemomis ar bibliotekomis


Ar MVVMCross gali būti integruotas su kitomis sistemomis ar bibliotekomis


„MVVMCross“ yra universali ir išplėstinė MVVM sistema, skirta kurti kryžminę platformą, ypač .NET ekosistemoje. Tai palaiko platų platformų asortimentą, įskaitant „Xamarin.ios“, „Xamarin.android“, „Xamarin.Forms“, „Universal Windows“ platformą (UWP) ir „Windows“ pateikimo sistemą (WPF) [1] [2] [4]. Viena iš pagrindinių „MVVMCross“ savybių yra jo sugebėjimas integruoti su kitomis sistemomis ir bibliotekomis, padidinant jo naudingumą sudėtingoje programų kūrime.

integracija su kitomis sistemomis

1. CSLA.NET integracija: MVVMCross gali būti naudojama kartu su verslo objekto sistema CSLA.NET. Nors „CSLA.NET“ daugiausia dėmesio skiria verslo logikai ir duomenų modeliavimui, „MVVMCross“ tvarko UI ir programos lygio logiką. Kūrėjai gali panaudoti „CSLA.NET“ verslo objektų sistemą, paveldėdami iš CSLA „ViewModelbase“ ir įgyvendindami MVVMCross reikalavimus. Ši integracija leidžia dalytis kodais visose platformose, išlaikant aiškų susirūpinimą keliantį susirūpinimą [5].

2. ReactiveUi integracija: Nors MVVMCross ir ReactiveUI yra MVVM sistemos, jie tarnauja skirtingais tikslais. „MVVMCross“ labiau orientuojasi į vietines mobiliųjų programų ir kodo dalijimąsi, o „ReactiveUi“ pabrėžia reaktyvųjį programavimą naudojant reaktyvius plėtinius (RX). Nors jie gali egzistuoti kartu, jie paprastai naudojami skirtingiems taikymo plėtros aspektams. „MVVMCross“ pateikia išsamų UI kūrimo funkcijų rinkinį, tuo tarpu „ReactiveUi“ yra idealus programoms, kurioms reikalingas pažangias asinchronines operacijas [7].

3. „Xamarin.Forms“ ir kitos vartotojo sąsajos sistemos: „MVVMCross“ palaiko integraciją su „Xamarin.Forms“, leidžiančia kūrėjams kurti įvairių platformų programas su bendra verslo logika. Tai taip pat gerai veikia su kitomis UI sistemomis, tokiomis kaip „Maui“ ir „WPF“, užtikrinant lankstumą renkantis UI sluoksnį [3] [7].

4. Papildinio sistema: „MvVMCross“ apima papildinio sistemą, leidžiančią kūrėjams išplėsti savo funkcionalumą, pridedant trečiųjų šalių papildinius tokioms funkcijoms kaip GPS vieta, lokalizacija ir įrišimo plėtiniai. Šis išplėtimas leidžia kūrėjams pritaikyti sistemą pagal jų projekto poreikius [1] [2].

Pagrindinės savybės palengvina integraciją

- Kontrolės inversija (IOC) ir priklausomybės injekcija: „MVVMCross“ pateikia IOC konteinerį, kuris palengvina priklausomybės injekciją, todėl lengviau integruoti su kitomis sistemomis, valdant priklausomybes ir paslaugas visoje programoje [1] [4].

- pritaikomas įrišimo variklis: sistema leidžia kūrėjams kurti pasirinktinius įrišimus savo vaizdams, kurie gali būti naudingi integruojant su kitais UI komponentais ar rėmais, kuriems reikalingi konkretūs duomenų įrišimo mechanizmai [1] [2].

- „ViewModel to ViewModel Navigation“: Ši funkcija padeda valdyti navigacijos logiką, kurią galima integruoti su kitų rėmų navigacijos modeliais, kad būtų užtikrinta nuosekli vartotojo patirtis įvairiose platformose [1] [2].

Apibendrinant galima pasakyti, kad „MVVMCross“ yra labai integruotas su kitomis sistemomis ir bibliotekomis, leidžiančiomis kūrėjams panaudoti savo stipriąsias puses MVVM architektūroje, kartu įtraukiant papildomas funkcijas iš kitų įrankių. Dėl jo išplėtimo ir palaikymo įvairioms platformoms tai yra universalus pasirinkimas kuriant įvairių platformų programų kūrimą.

Citatos:
[1] https://github.com/mvvmcross/mvvmcross
[2] https://dotnet.libhunt.com/mvvmcross-alternations
[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-work-together-in-a-multi-platform-straty
[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