Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Ali lahko razložite interakcijo med jedri in uporabniškim projekti v MVVMcross


Ali lahko razložite interakcijo med jedri in uporabniškim projekti v MVVMcross


MVVMcross je okvir med platformami, ki olajša razvoj aplikacij po vzorcu modela -view-ViewModel (MVVM). Razvijalcem omogoča, da ustvarijo ohlapno povezane, vzdržljive in preizkusne mobilne rešitve, tako da logiko aplikacije ločijo na dva glavna dela: osnovni projekt in projekt uporabniškega vmesnika.

Core Project

Osrednji projekt je običajno standardna knjižnica .NET, ki vsebuje vso skupno kodo, vključno z:
- ViewModels: Ti so odgovorni za ravnanje z interakcijami uporabnikov in poslovno logiko.
- Modeli: predstavljajte podatkovne strukture, ki se uporabljajo v celotni aplikaciji.
- Storitve: Zagotovite dostop do podatkov, spletnih storitev ali drugih zunanjih virov.
- pretvorniki: Uporablja se za pretvorbe tipa podatkov.
- Razred aplikacij: To je odgovorno za inicializacijo poslovne logike in modelov ogledov aplikacije. Prav tako obravnava registracijo predmetov po meri v vsebniki Inversion of Control (IOC).
- AppStart: neobvezno se uporablja za določitev modela pogleda najprej, ko se aplikacija zažene.

UI projekt

Projekt uporabniškega vmesnika je specifičen za platformo in vsebuje elemente uporabniškega vmesnika in kodo, specifično za platformo. Za vsako ciljno platformo (npr. IOS, Android) obstaja ločen projekt uporabniškega vmesnika. Ti projekti vključujejo:
- Pogledi: Vsak pogled je odgovoren za predstavitev ustreznega modela pogleda. Pogledi so zasnovani z orodji iz naravne platforme (npr. XAML za xamarin.forms, AXML za Android).
- Domači upravljavec aplikacij: To obravnava domače dogodke v življenjskem ciklu. Na primer, na Androidu bi bil to razred "MainActivity" ali "MainApplication", medtem ko bi bil v iOS -u razred "AppDelegate".
- Nastavitev razreda: To je odgovorno za zagon MVVMcross in registracijo storitev, specifičnih za platformo. Inicializira okvir MVVMCross in nastavi vsebnik MOK z izvedbami, specifičnimi za platformo.

Interakcija med jedrnimi in uporabniškimi projekti

Interakcija med jedrnimi in uporabniškimi projekti v MVVMcrossu olajšata vzorec MVVM in okvirni zabojnik IOC. Tukaj je opisano:
- ViewModel Vezava: Projekti uporabniškega vmesnika uporabljajo MVVMcross za vezavo pogledov za ogled modelov. Običajno se to izvaja z uporabo konvencije o poimenovanju ali z okrasitvijo pogledov z atributi, kot je `[mvxviewFor (typeof (homeViewModel))]`.
- Vbrizgavanje storitev: Osrednji projekt opredeljuje vmesnike za storitve, ki se na vsaki platformi različno izvajajo. Te storitve so registrirane v vsebniki IOC in vbrizgajo v modele View, kar omogoča funkcionalnost, specifično za platformo, ne da bi podvajali kodo.
- Navigacija in predstavitev: MVVMcross ponuja mehanizme za navigacijo med modeli pogleda in predstavitvijo pogledov. Framework uporablja predstavitelje (npr. "ImvxiosViewPresenter`,` imvxandroidViewPresenter`) za upravljanje, kako se prikažejo pogledi na vsaki platformi.

Z ločevanjem logike aplikacije v projekte jedra in uporabniškega vmesnika MVVMCross razvijalcem omogoča, da povečajo ponovno uporabo kode na platformah, hkrati pa še vedno omogočajo prilagoditev in optimizacijo, specifično za platformo [1] [3] [5].

Navedbe:
[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/customizing-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/windows-boille-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/