V MVVMCrossu se pro připojení zobrazení používají jak švýcarské, tak plynulé databinding, ale slouží mírně odlišným účelům a jsou preferovány v různých scénářích.
Swiss Databinding
Švýcarský databinding nabízí čistší a méně podrobující syntaxi ve srovnání s jeho předchůdcem, JSON Databindingem. Je to zvláště užitečné, když potřebujete definovat vazby přímým způsobem, často přímo v souborech rozvržení XML. Švýcarské vazby jsou snadno čitelné a psaní, což je činí vhodné pro jednoduché a přímé vazby, kde musí být syntaxe stručná a pochopitelná.
Jeden konkrétní scénář, ve kterém by bylo možné preferovat švýcarské datafinding, je, když potřebujete rychle nastavit vazby v souborech XML, zejména v platformách, kde se běžně používají a snadno upravitelná rozvržení XML, jako je Android. Swiss Databinding však aktivně nesleduje změny z modelu pohledu, pokud není resetován zdroj vázání, což může být omezením ve scénářích vyžadujících aktualizace v reálném čase.
Fluent Databinding
Fluent Databinding, na druhé straně, poskytuje syntaxi založený na C#pro konstrukci vazby. Tento přístup je obzvláště prospěšný v prostředích, kde rozložení XML není snadno emitovatelné, jako jsou iOS a MacOS. Plynulé vazby umožňují složitější a dynamičtější nastavení vazby, což z nich činí ideální pro scénáře, kde potřebujete programově manipulovat s vazbami nebo zvládnout složitější logiku.
Plynulé datafinding je preferováno, když potřebujete programově vytvářet vazby, které mohou být flexibilnější a výkonnější, zejména ve složitých aplikacích nebo při práci s platformami, které tak efektivně nepodporují rozvržení XML.
Scénáře preferencí
- Švýcarské datafinding je preferováno, když:
-Pro vazby potřebujete jednoduchou, snadno čitelnou syntaxi, zejména v souborech XML.
- Aplikace nevyžaduje nepřetržité sledování změn z modelu pohledu.
- Pracujete v prostředích, kde lze snadno upravovat rozložení XML.
- Plynulé datafinding je preferováno, když:
- Musíte vytvářet vazby programově, což umožňuje dynamičtější a složitější nastavení.
- Pracujete na platformách, kde nejsou rozvržení XML snadno upravena, například iOS.
- Aplikace vyžaduje větší kontrolu nad logikou vazebné nebo musí zvládnout složité scénáře.
Stručně řečeno, zatímco švýcarské i plynulé datafinding mají své silné stránky, výběr mezi nimi závisí na specifických požadavcích vaší aplikace, včetně potřeby jednoduchosti versus složitosti a platformy, pro kterou vyvíjíte.
Citace:[1] https://www.mvvmcross.com/documentation/fundamentals/data-binding
[2] https://crosscuttingconcerns.com/mvvmcross-fluent-tababinding
[3] https://stackoverflow.com/questions/41462365/what-are-the-pros-and-cons-of-Android-tata-binding
[4] https://stackoverflow.com/questions/60500840/shald-view-binding-replace-data-binding
[5] https://learn.microsoft.com/en-us/dotnet/desktop/wpf/data/?view=netdesktop-9.0
[6] https://www.phunware.com/android-clean-coding-appoach/
[7] https://www.reddit.com/r/androiddev/comments/ux9379/what_are_use_cases_of_data_binding_and_when/
[8] https://jesseliberty.com/2022/02/01/advanced-tatabinding-part-0-basics/