I MVVMCROSS bruges både schweizisk og flydende databinding til at forbinde visninger til at se modeller, men de tjener lidt forskellige formål og foretrækkes i forskellige scenarier.
Swiss Databinding
Swiss Databinding tilbyder en renere og mindre ordret syntaks sammenlignet med sin forgænger, JSON Databinding. Det er især nyttigt, når du skal definere bindinger på en ligetil måde, ofte direkte i XML -layoutfiler. Schweiziske bindinger er lette at læse og skrive, hvilket gør dem egnede til enkle, direkte bindinger, hvor syntaks skal være kortfattet og forståeligt.
Et specifikt scenarie, hvor schweizisk databinding muligvis foretrækkes, er, når du hurtigt skal indstille bindinger i XML -filer, især på platforme, hvor XML -layouts ofte bruges og let redigeres, såsom Android. Imidlertid overvåger schweizisk databinding ikke aktivt ændringer fra visningsmodellen, medmindre bindingskilden nulstilles, hvilket kan være en begrænsning i scenarier, der kræver realtidsopdateringer.
Fluent Databinding
Fluent databinding giver på den anden side en C#-baseret syntaks til konstruktion af bindinger. Denne tilgang er især fordelagtig i miljøer, hvor XML-layouts ikke let er menneskelige redigerbare, såsom iOS og macOS. Fluentbindinger giver mulighed for mere komplekse og dynamiske bindingsopsætninger, hvilket gør dem ideelle til scenarier, hvor du har brug for at programmere manipulere bindinger eller håndtere mere kompliceret logik.
Fluent databinding foretrækkes, når du har brug for at oprette bindinger programmatisk, hvilket kan være mere fleksibelt og kraftfuldt, især i komplekse applikationer eller når du arbejder med platforme, der ikke understøtter XML -layouts så effektivt.
Præference -scenarier
- Swiss Databinding foretrækkes, hvornår:
-Du har brug for en enkel, let at læse syntaks til bindinger, især i XML-filer.
- Anvendelsen kræver ikke kontinuerlig overvågning af ændringer fra visningsmodellen.
- Du arbejder i miljøer, hvor XML -layouts let kan redigeres.
- Flydende databinding foretrækkes, hvornår:
- Du skal oprette bindinger programmatisk, hvilket giver mulighed for mere dynamiske og komplekse opsætninger.
- Du arbejder på platforme, hvor XML -layouts ikke kan redigeres, såsom iOS.
- Applikationen kræver mere kontrol over bindingslogikken eller skal håndtere komplekse scenarier.
Sammenfattende, mens både schweiziske og flydende databinding har deres styrker, afhænger valget mellem dem af de specifikke krav i din applikation, herunder behovet for enkelhed versus kompleksitet og den platform, du udvikler til.
Citater:[1] https://www.mvvmcross.com/documentation/fundamentals/data-binding
[2] https://crosscuttingconcerns.com/mvvmcross-fluent-databinding
)
[4] https://stackoverflow.com/questions/60500840/should-view-binding-replace-data-bindende
[5] https://learn.microsoft.com/en-us/dotnet/desktop/wpf/data/?view=netdesktop-9.0
[6] https://www.phunware.com/android-clean-coding-approach/
[7] https://www.reddit.com/r/androiddev/comments/ux9379/what_are_the_use_cases_of_data_binding_and_when/
[8] https://jesseliberty.com/2022/02/01/advanced-databinding-dart-0-basics/