Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Kako se zmogljivost tekočih vezi v primerjavi s švicarskimi/tibetnimi vezavnimi izrazi v mvvmcross


Kako se zmogljivost tekočih vezi v primerjavi s švicarskimi/tibetnimi vezavnimi izrazi v mvvmcross


Če primerjamo zmogljivost tekočih vezi s švicarskimi/tibetnimi vezavnimi izrazi v MVVMcrossu, pride v poštev več dejavnikov. Tu je podrobna razčlenitev:

Pregled vrst vezave

- Tekoče vezi: to so tipa, ki so varni, izrazi, ustvarjeni v kodi C#. Posebej so uporabne na platformah, kot sta iOS in UWP, kjer datoteke XML postavitve ni mogoče enostavno urejati. Tekoče vezi omogočajo jasen, močno tipiran način vezave lastnosti pogleda za ogled lastnosti modela, kar lahko pomaga zmanjšati napake v času izvajanja z ujemanjem neusklajenosti vrste v času prevajanja [1] [4].

- Swiss/Tibet Vezivni izrazi: To so izrazi vezave na osnovi niza, ki se običajno uporabljajo v datotekah postavitve XML (npr. Android-ov AXML). Švicarske vezi so bolj prilagodljive in omogočajo zapletene izraze, kot sta združevanje in pogojna logika. Vezava tibeta to razširi tako, da podpira naprednejšo skladnjo, podobno mini jeziku za vezavne izraze [1] [6].

Primerjava uspešnosti

Pripisovanje v primerjavi z ocenjevanjem izvajanja

- Tekoče vezi: Ker so tekoče vezi definirane v C#, se ocenjujejo v času sestavljanja. To pomeni, da se kakršne koli napake ali zavezujoča vprašanja ujamejo zgodaj, kar lahko izboljša učinkovitost razvoja. Vendar je dejanska zmogljivost med izvajanjem na splošno podobna drugim metodam vezave, ker se nastavitev vezave še vedno izvaja med izvajanjem.

- Švicarske/tibetske vezi: Te vezi se ocenjujejo med izvajanjem, ker so opredeljene kot strune v datotekah XML. To pomeni, da se morebitne napake pri zavezujočih izrazih odkrijejo šele, ko aplikacija zažene, kar lahko privede do počasnejših razvojnih ciklov, če ni pravilno testiran. Vendar pa ocenjevanje izvajanja ne pomeni, da so po sebi počasnejše od tekočih vezi, ko se vezi nastavijo.

Izvajanje nad glavo

- Tekoče vezi: režijske stroške tekoče vezi je minimalno, ker neposredno ustvarijo potrebne vezavne predmete v kodi. Ta neposreden pristop je lahko nekoliko učinkovitejši od razčlenjevanja vrvic String med izvajanjem.

- Švicarske/tibetske vezi: te zahtevajo razčlenitev vezavnih izrazov iz XML med izvajanjem, kar uvaja nekaj režijskih stroškov v primerjavi s tekočimi vezmi. Vendar je ta režijski strošek običajno majhen, razen če se ukvarjamo z zelo zapletenimi ali številnimi vezi.

Učinkovitost razvoja in ravnanje z napakami

- Tekoče vezi: Zagotovite boljšo učinkovitost razvoja zaradi preverjanj, ki lahko posredno izboljšajo uspešnost z zmanjšanjem časa, porabljenega za odpravljanje napak pri vezavi izvajanja.

- Švicarske/tibetne vezi: Medtem ko so bolj prilagodljive za zapletene izraze, potrebujejo več preverjanj izvajanja in lahko privedejo do počasnejšega razvoja, če niso pravilno preizkušeni.

Zaključek

Glede na surovo zmogljivost so tako tekoče kot švicarske/tibetne vezi na splošno primerljive, ko so postavljene. Vendar tekoče vezi ponujajo prednosti pri razvojni učinkovitosti in odkrivanju napak v času, kar lahko posredno izboljša splošno uspešnost uporabe z zmanjšanjem časa za odpravljanje napak. Švicarske/tibetne vezi zagotavljajo večjo prilagodljivost v zapletenih scenarijih, vendar zahtevajo več preverjanj izvajanja. Izbira med njimi je pogosto odvisna od specifičnih potreb projekta in razvijalčeve naklonjenosti za kode v primerjavi z vezanimi definicijami, ki temeljijo na XML.

Navedbe:
[1] https://blog.ostebaronen.dk/2018/01/mvvmcross-binding-taget.html
[2] https://stackoverflow.com/Questions/46522577/mvvmcross-issues-with-fluent-vezanje
[3] https://stackoverflow.com/questions/48422489/mvvmcross-tibet----to-viewModel-itself
[4] https://www.mvvmcross.com/documentation/fundamentals/data----
[5] https://www.youtube.com/watch?v=3-ct97sbmxm
[6] https://stackoverflow.com/questions/4824612
[7] https://github.com/mvvmcross/mvvmcross/isissue/1342
[8] https://github.com/mvvmcross/mvvmcross
[9] https://www.mvvmcross.com/documentation/fundamentals/value-converters
[10] https://stackoverflow.com/Questions/48066268/xamarin-mvvmcross-fluent---binding-on-uwp
[11] https://crosscuttingconcerns.com/mvvmcross-fluent-taBinding