Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Voitko selittää MVVMCrossin ytimen ja käyttöliittymän projektien välisen vuorovaikutuksen


Voitko selittää MVVMCrossin ytimen ja käyttöliittymän projektien välisen vuorovaikutuksen


MVVMCROSS on alustojen välinen kehys, joka helpottaa sovellusten kehittämistä käyttämällä Model-View-ViewModel (MVVM) -kuviota. Sen avulla kehittäjät voivat luoda löysästi kytkettyjä, ylläpidettäviä ja testattavia mobiiliratkaisuja erottamalla sovelluslogiikka kahteen pääosaan: ydinprojektiin ja käyttöliittymän projektiin.

Core -projekti

Ydinprojekti on tyypillisesti .NET -standardikirjasto, joka sisältää kaiken jaetun koodin, mukaan lukien:
- ViewModels: Nämä ovat vastuussa käyttäjän vuorovaikutusten ja liiketoimintalogiikan käsittelystä.
- Mallit: Edusta koko sovelluksessa käytettyjä tietorakenteita.
- Palvelut: Tarjoa pääsy tietoihin, verkkopalveluihin tai muihin ulkoisiin resursseihin.
- Muuntimet: Käytetään tietotyypin muunnoksiin.
- Sovellusluokka: Tämä vastaa sovelluksen liiketoimintalogiikan ja View -mallien alustamisesta. Se käsittelee myös räätälöityjen esineiden rekisteröintiä ohjausastian (IOC) inversioon.
- AppStart: Valinnaisesti käytetty määrittämään, mikä näkymämalli esitetään ensin, kun sovellus alkaa.

UI -projekti

UI-projekti on alustakohtainen ja sisältää käyttöliittymäelementit ja alustakohtaisen koodin. Jokaiselle kohdealustalle (esim. IOS, Android) on erillinen käyttöliittymäprojekti. Nämä projektit sisältävät:
- Näkymät: Jokainen näkymä on vastuussa vastaavan näkymämallin esittämisestä. Näkymät on suunniteltu käyttämällä natiivialustatyökaluja (esim. XAML Xamarin.forms, AXML Androidille).
- Alkuperäisen sovelluksen käsittelijä: Tämä käsittelee alkuperäisiä elinkaaritapahtumia. Esimerkiksi Androidissa se olisi "maincive" tai `mainapplication` -luokka, kun taas iOS: lla se olisi" appDelegate "-luokka.
- Asennusluokka: Tämä vastaa bootstrapping mvvmcross- ja foller-erityisten palvelujen rekisteröinnistä. Se alustaa MVVMCross-kehyksen ja asettaa IOC-säiliön alustakohtaisilla toteutuksilla.

Ydin- ja käyttöliittymän välinen vuorovaikutus

MVVMCrossin ytimen ja käyttöliittymien välistä vuorovaikutusta helpottaa MVVM -kuvio ja kehyksen KOK -säiliö. Näin he ovat vuorovaikutuksessa:
- ViewModel Binding: Käyttöliittymäprojektit käyttävät MVVMCROSS: ää näkymien sitomiseen näkymiin malleihin. Tämä tehdään tyypillisesti käyttämällä nimeämiskäytäntöä tai koristamalla näkymiä määritteillä, kuten `[mvxviewFor (typeOf (HomeViewModel)))]`.
- Palvelun injektio: Ydinprojekti määrittelee palvelujen rajapinnat, jotka toteutetaan eri tavalla jokaisella alustalla. Nämä palvelut on rekisteröity IOC-säilöön ja injektoidaan näkymämalleihin, mikä mahdollistaa alustakohtaisen toiminnallisuuden kopioimatta koodia.
- Navigointi ja esitys: MVVMCross tarjoaa mekanismeja navigointiin näkymämallien välillä ja näkymien esittämisen välillä. Kehys käyttää esittelijöitä (esim. "ImvxioSViewPresenter`," imvxandroidViewPresenter ") hallitaksesi kuinka näkymät näkyy jokaisella alustalla.

Erottamalla sovelluslogiikka ydin- ja käyttöliittymäprojekteihin MVVMCross antaa kehittäjille mahdollisuuden maksimoida koodin uudelleenkäyttöalustojen välillä ja mahdollistaa silti alustakohtaisen räätälöinnin ja optimoinnin [1] [3] [5].

Viittaukset:
.
[2] https://canbilgin.wordpress.com/tag/mvvmcross/
.
.
[5] https://www.suneco.nl/blogs/boost-your-xamarin-native-projects-with-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/