Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Existují nějaké rozdíly v oblasti výkonu mezi plynulými vazbami a švýcarskými/tibetskými vazbami v MVVMCrossu


Existují nějaké rozdíly v oblasti výkonu mezi plynulými vazbami a švýcarskými/tibetskými vazbami v MVVMCrossu


V MVVMCrossu se pro vazbu dat používají jak plynulé vazby, tak vázání švýcarů/Tibetu, ale liší se ve svém přístupu a použití. I když neexistují výslovné informace o rozdílech o výkonu mezi těmito dvěma typy vazeb, můžeme analyzovat jejich vlastnosti, abychom pochopili potenciální důsledky:

Fluent Vazby

Fluent Vazby jsou syntaxe založená na C#, která umožňuje vývojářům vytvářet vazby v kódu. Tento přístup je zvláště užitečný na platformách, jako jsou iOS a OSX, kde soubory rozvržení XML nejsou snadno emitovatelné. Plynulé vazby poskytují způsob, jak bezpečný způsob, jak vázat vlastnosti, což může pomoci snížit chyby runtime zachycení neshod typu v době kompilace. Protože však jsou definovány v kódu, mohou vyžadovat více režijních nákladů, pokud jde o údržbu kódu ve srovnání s deklarativními vazbami, jako je švýcarský/Tibet.

Swiss/Tibet Vazby

Vazby švýcarů a Tibetu jsou deklarativní, což znamená, že jsou definovány ve formátech XML nebo String. Tyto vazby jsou stručnější a lze je snadno zabudovat do souborů rozvržení. Zejména Syntaxe vázání Tibetu nabízí bohatší jazyk výrazu s funkcemi, jako je volání převodníku podobných hodnotám, více vázanky a jednoduchá syntaxe operátora. Tento deklarativní přístup může být efektivnější z hlediska čitelnosti a udržovatelnosti kódu, protože vazby jsou v souborech rozvržení jasně viditelné.

Úvahy o výkonu

I když neexistují specifické údaje o rozdílech o výkonu mezi plynulými a švýcarskými/Tibetskými vazbami, následující faktory by mohly ovlivnit výkon:

-Compile-Time vs. rozlišení runtime: Obecně by vazby, které jsou vyřešeny v době kompilace (jako některé aspekty plynulých vazeb způsobených jejich typem bezpečnými přírodou), by mohly nabídnout lepší výkon ve srovnání s rozlišením běhu. Vazby MVVMCrossu jsou však obvykle vyřešeny za běhu.

- Režie Reflexe: Vazby plynulé i švýcarské/Tibet pravděpodobně používají k řešení názvů nemovitosti. Vazby plynulé však mohou mít mírnou výhodu kvůli jejich typu bezpečné povaze, což potenciálně snižuje potřebu rozsáhlého odrazu za běhu.

- Složitost vazebných výrazů: Vazby Tibetu umožňují složitější výrazy, které by mohly potenciálně zavést další režii kvůli analýze a vyhodnocení těchto výrazů. Tato složitost však také poskytuje výkonnější schopnosti vázání dat.

Stručně řečeno, i když v MVVMCrossu neexistují žádné explicitní výkonové měřítka srovnávající plynulé a vázání švýcarů/Tibetu, plynulé vazby by mohly nabídnout mírné výhody díky jejich typu bezpečné povaze a potenciálnímu snížení odrazu za běhu. Deklarativní povaha švýcarských/Tibetských vazeb však může zlepšit čitelnost a udržovatelnost kódu, což může nepřímo ovlivnit účinnost rozvoje a celkový výkon aplikací snížením chyb a zlepšením kvality kódu. Nakonec by volba mezi těmito vazebnými metodami měla být založena na specifických potřebách projektu, jako je složitost uživatelského rozhraní, cílená platforma a preference pro kódové versus deklarativní vazby.

Citace:
[1] http://slodge.blogspot.com/2013/06/tibet-binding.html
[2] https://github.com/mvvmcross/mvvmcross/issues/1342
[3] https://learn.microsoft.com/en-us/dotnet/maui/fundamentals/data-binding/compilel-bindings?view=net-maui-9.0
[4] https://blog.ostebaronen.dk/2018/01/mvvmcross-binding-target.html
[5] https://stackoverflow.com/questions/46522577/mvvmcross-ssues-with-fluent-binding
[6] https://www.reddit.com/r/businessIntelligence/Comments/Ky0dq9/is_it_a_best_practice_to_connect_with_views/
[7] https://www.mvvmcross.com/documentation/fundamentals/data-binding
[8] https://learn.microsoft.com/en-us/archive/msdn-magazine/2014/august/windows-phone-build-mvvm-apps-with-xamarin-and-mvvmcross
[9] https://www.mvvmcross.com/documentation/fundamentals/value-converters
[10] https://stackoverflow.com/questions/4842489/mvvmcross-tibet-binding-to-viewModel