У MVVMCross і швейцарські, і вільні дані використовуються для підключення видів для перегляду моделей, але вони служать дещо різними цілями і віддають перевагу в різних сценаріях.
Швейцарські дані
Швейцарські убори даних пропонують більш чистий та менш багатослівний синтаксис порівняно з його попередником, JSON Databinding. Це особливо корисно, коли вам потрібно прямо визначити зв'язки, часто безпосередньо у файлах макетів XML. Швейцарські прив’язки легко читати та писати, що робить їх придатними для простих, прямих прив’язок, де синтаксис повинен бути стислим та зрозумілим.
Один конкретний сценарій, коли швейцарський набір даних може бути кращим, - це коли вам потрібно швидко налаштувати прив’язки у файлах XML, особливо на платформах, де макети XML зазвичай використовуються та легко редагують, такі як Android. Однак швейцарські убори даних не активно контролюють зміни з моделі перегляду, якщо джерело прив'язки не буде скинуто, що може бути обмеженням у сценаріях, що потребують оновлень у режимі реального часу.
Вільне забезпечення даних
З іншого боку, вільне забезпечення даних забезпечує синтаксис на основі C#для побудови зв'язків. Такий підхід особливо вигідний у середовищах, де макети XML не легко підлягають людським редагам, наприклад, iOS та MACOS. Вільні зв'язки дозволяють отримати більш складні та динамічні налаштування зв'язування, що робить їх ідеальними для сценаріїв, де потрібно програмно маніпулювати прив'язками або обробляти більш хитромудру логіку.
Вільне використання даних є кращим, коли вам потрібно створювати прив’язки програмно, що може бути більш гнучким і потужним, особливо в складних додатках або при роботі з платформами, які не підтримують макети XML так ефективно.
Сценарії переваг
- Швейцарське дані є кращим, коли:
-Вам потрібен простий, простий для читання синтаксис для прив’язки, особливо у файлах XML.
- Програма не потребує постійного моніторингу змін з моделі перегляду.
- Ви працюєте в середовищах, де макети XML легко редагувати.
- Вільне використання даних є кращим, коли:
- Потрібно створити прив’язки програмно, що дозволяє отримати більш динамічні та складні налаштування.
- Ви працюєте на платформах, де макети XML не можна легко редагувати, наприклад, iOS.
- Додаток вимагає більшого контролю над логікою зв'язування або потрібно обробляти складні сценарії.
Підсумовуючи це, хоча і швейцарські, і вільні дані мають свої сильні сторони, вибір між ними залежить від конкретних вимог вашої програми, включаючи необхідність простоти проти складності та платформи, на яку ви розробляєте.
Цитати:[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-binding
[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-part-0-basics/