Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Puteți explica interacțiunea dintre proiectele de bază și UI în MVVMcross


Puteți explica interacțiunea dintre proiectele de bază și UI în MVVMcross


MVVMCross este un cadru multiplă platformă care facilitează dezvoltarea aplicațiilor folosind modelul model-vizualizare-ViewModel (MVVM). Permite dezvoltatorilor să creeze soluții mobile cuplate, întreținute și testabile, prin separarea logicii aplicației în două părți principale: proiectul de bază și proiectul UI.

Proiect de bază

Proiectul de bază este de obicei o bibliotecă standard .NET care conține tot codul partajat, inclusiv:
- ViewModels: Acestea sunt responsabile de gestionarea interacțiunilor utilizatorilor și a logicii de afaceri.
- Modele: Reprezentați structurile de date utilizate în întreaga aplicație.
- Servicii: Oferiți acces la date, servicii web sau alte resurse externe.
- Converter: utilizat pentru conversii de tip de date.
- Clasa de aplicații: Aceasta este responsabilă de inițializarea logicii de afaceri a aplicației și a modelelor de vizualizare. De asemenea, se ocupă de înregistrarea obiectelor personalizate în inversarea containerului Control (IOC).
- AppStart: Opțional folosit pentru a determina ce model de vizualizare să prezinte prima dată când începe aplicația.

Proiect UI

Proiectul UI este specific platformei și conține elementele de interfață de utilizator și codul specific platformei. Pentru fiecare platformă țintă (de exemplu, iOS, Android), există un proiect UI separat. Aceste proiecte includ:
- Vizualizări: Fiecare vedere este responsabilă de prezentarea unui model de vizualizare corespunzător. Vizualizările sunt proiectate folosind instrumente de platformă nativă (de exemplu, XAML pentru Xamarin.Forms, AXML pentru Android).
- Handler de aplicații native: Acest lucru gestionează evenimentele ciclului de viață native. De exemplu, pe Android, ar fi o clasă `MainActivity` sau` MainApplication`, în timp ce pe iOS, ar fi o clasă `AppDelegate`.
- Clasa de configurare: Aceasta este responsabilă pentru bootstrapping MVVMcross și înregistrarea serviciilor specifice platformei. Inițializează cadrul MVVMcross și stabilește containerul IOC cu implementări specifice platformei.

Interacțiunea dintre proiectele Core și UI

Interacțiunea dintre proiectele Core și UI din MVVMcross este facilitată de modelul MVVM și containerul IOC al cadrului. Iată cum interacționează:
- ViewModel Binding: Proiectele UI folosesc mvvmcross pentru a lega vizualizările pentru a vizualiza modelele. Acest lucru este de obicei realizat folosind o convenție de denumire sau prin decorarea priveliștilor cu atribute precum `[mvxViewFor (typeof (HomeViewModel))]].
- Injecție de servicii: Proiectul de bază definește interfețele pentru servicii care sunt implementate diferit pe fiecare platformă. Aceste servicii sunt înregistrate în containerul IOC și sunt injectate în modele de vizualizare, permițând funcționalitatea specifică platformei fără a duplica codul.
- Navigare și prezentare: MVVMCross oferă mecanisme de navigare între modelele de vizualizare și vizualizări de prezentare. Cadrul folosește prezentatori (de exemplu, `imVxiosViewPresenter`,` IMVXandroidViewPresenter`) pentru a gestiona modul în care vizualizările sunt afișate pe fiecare platformă.

Prin separarea logicii aplicației în proiecte Core și UI, MVVMCross permite dezvoltatorilor să maximizeze reutilizarea codului pe platforme, permițând totuși personalizarea și optimizarea specifică platformei [1] [3] [5].

Citări:
[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-mvmcross-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-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/