Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Millised on peamised erinevused mvvmcrossi ja xamarin.formsi kasutamise vahel


Millised on peamised erinevused mvvmcrossi ja xamarin.formsi kasutamise vahel


MVVMCROSS ja XAMARIN.FORMS on kaks erinevat tehnoloogiat, mida kasutatakse platvormidevahelisel mobiilirakenduse arendamisel, mis pakuvad erinevaid eesmärke ja pakuvad ainulaadseid eeliseid.

Ülevaade Xamarin.formsist

Xamarin.Forms on Microsofti välja töötatud raamistik, mis võimaldab arendajatel luua platvormidevahelisi rakendusi, kasutades kasutajaliidese jaoks jagatud C# koodibaasi ja XAML-i. See võimaldab arendajatel üks kord kirjutada ja töötada mitmel platvormil, sealhulgas iOS, Android ja UWP. Xamarin.Forms sobib ideaalselt projektide jaoks, kus soovitakse järjepidevat kasutajaliidest platvormide vahel, ja see lihtsustab arendusprotsessi, pakkudes UI komponentide jaoks ühtset API -d. See järjepidevus tuleb aga paindlikkuse hinnaga, kuna kasutajaliides piirdub iga platvormi tavaliste elementide alamhulgaga, mis võib põhjustada piiranguid loodusliku väljanägemise ja tunde või UI edasijõudnute kohandamisel [4] [7].

Ülevaade MVVMCROSSist

MVVMCROSS on platvormidevaheline MVVM (Model-View-ViewModel) raamistik, mis toetab Xamarin.ios, Xamarin.android, Xamarin.forms ja muid platvorme. See keskendub äriloogika eraldamisele kasutajaliidest, võimaldades arendajatel jagada märkimisväärset osa oma koodist erinevatel platvormidel. MVVMCROSS pakub selliseid funktsioone nagu andmete sidumine, navigeerimine, kontrolli ümberpööramine ja sõltuvuse süstimine, mis hõlbustavad keerukate rakenduste väljatöötamist. Erinevalt Xamarin.formsist ei jõusta MVVMCross konkreetset kasutajaliidese raamistikku; Selle asemel võimaldab see arendajatel valida, kuidas nad soovivad iga platvormi jaoks kasutajaliidest rakendada, pakkudes põliselanike kogemuste saavutamisel suuremat paindlikkust [7] [10].

Peamised erinevused

1. UI rakendamine:
- Xamarin.Forms: kasutab jagatud kasutajaliidese kihti platvormide vahel, mis lihtsustab arengut, kuid võib piirata kohandamist ja looduslikku välimust ja tunnet.
- MVVMCROSS: võimaldab igal platvormil või jagatud kasutajaliidese rakendamist Xamarin.Formsiga, pakkudes rohkem paindlikkust platvormipõhiste kasutajaliidese kujunduse saavutamisel.

2. Koodide jagamine:
- Mõlemad raamistikud võimaldavad koodide jagamist, kuid MVVMcross keskendub äriloogika jagamisele (ViewModels), võimaldades samal ajal erinevaid kasutajaliidese rakendusi. Xamarin.forms jagab nii kasutajaliidese kui ka äriloogikat.

3. navigeerimine ja andmete sidumine:
- MVVMCROSS pakub tugevat navigatsioonisüsteemi ja andmete sidumisvõimalusi, mis töötavad erinevatel kasutajaliidese raamistike, sealhulgas Xamarin.Forms. Xamarin.Forms tugineb oma navigeerimise ja andmete sidumismehhanismidele.

4. projekti keerukus:
- keerukate projektide jaoks, mis nõuavad täpsemat kasutajaliidese kohandamist või platvormipõhiseid funktsioone, võib MVVMCROSS olla selle paindlikkuse tõttu sobivam. Lihtsamate projektide jaoks, kus järjepidev kasutajaliidest piisab, võib Xamarin.formsi rakendamine olla sirgjoonelisem.

5. Arenduspõhine:
- Xamarin.Forms eelistavad sageli XAML ja .NET -iga tuttavad arendajad, kuna see pakub ühtset arenduskogemust. MVVMCROSS on kasulik projektide jaoks, kus äriloogika tuleb kasutajaliidesest lahutada, võimaldades rohkem kontrolli UI rakenduse üle igal platvormil.

Kokkuvõtlikult, kuigi mõlemad raamistikud toetavad platvormidevahelist arendamist, keskendub Xamarin.forms kasutajaliidese kihi jagamisele platvormidel, samas kui MVVMCROSS rõhutab äriloogika jagamist ja võimaldab kasutajaliidese paindlikumaid rakendusvalikuid. Nende vahel valik sõltub projekti nõuetest kasutajaliidese kohandamise, keerukuse ja koodide jagamise strateegia osas.

Tsitaadid:
[1] https://visualstudiomagazine.com/articles/2018/05/08/build-a-xamarin.forms-application.aspx
[2] https://github.com/rogerwcpt/xamarin-mvvvm-frameworks
]
]
]
[6] https://canbilgin.wordpress.com/tag/mvvmcross/
]
]
[9] https://canbilgin.wordpress.com/2017/03/26/xamarin-forms-application-with-mvvmcross/
]