Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon 流fluentデータビンディングよりもスイスデータバインディングが好まれる特定のシナリオはありますか


流fluentデータビンディングよりもスイスデータバインディングが好まれる特定のシナリオはありますか


MVVMCrossでは、スイスと流fluentデータビンディングの両方がビューを接続してモデルを表示するために使用されますが、わずかに異なる目的を果たし、さまざまなシナリオで好まれます。

Swiss Databind

Swiss Databindingは、前身のJSON Databindingと比較して、よりクリーンで冗長な構文を提供します。多くの場合、XMLレイアウトファイルで直接バインドを定義する必要がある場合に特に便利です。スイスのバインディングは読み書きが簡単で、構文が簡潔で理解できるようにする必要があるシンプルで直接的なバインディングに適しています。

スイスデータバインディングが好まれる可能性のある特定のシナリオの1つは、XMLファイル、特にXMLレイアウトが一般的に使用され、Androidなどの簡単に編集可能なプラットフォームでバインディングをすばやくセットアップする必要がある場合です。ただし、スイスデータビンディングは、バインディングソースがリセットされていない限り、ビューモデルからの変更を積極的に監視しません。これは、リアルタイムの更新を必要とするシナリオの制限となる可能性があります。

Fluent Databinding

一方、Fluent Databindは、バインディングを構築するためのC#ベースの構文を提供します。このアプローチは、XMLレイアウトがiOSやMacOSなど、簡単に人間編集できない環境で特に有益です。流bindingは、より複雑で動的なバインディングセットアップを可能にし、バインディングをプログラム的に操作したり、より複雑なロジックを処理する必要があるシナリオに最適です。

Fluent Databindは、特に複雑なアプリケーションで、またはXMLレイアウトを効果的にサポートしていないプラットフォームを操作する場合、プログラムでバインディングを作成する必要がある場合に優先されます。

##優先シナリオ

- スイスのデータビンディングは次の場合に推奨されます。
- 特にXMLファイルでは、バインディング用のシンプルで読みやすい構文が必要です。
- アプリケーションでは、ビューモデルからの変更を継続的に監視する必要はありません。
- XMLレイアウトが簡単に編集できる環境で作業しています。

- 流fluentデータビンディングは次の場合に推奨されます。
- プログラムでバインディングを作成し、よりダイナミックで複雑なセットアップを可能にする必要があります。
-IOSなど、XMLレイアウトが簡単に編集できないプラットフォームで作業しています。
- アプリケーションでは、バインディングロジックをより強化するか、複雑なシナリオを処理する必要があります。

要約すると、スイスと流fluentのデータバインディングの両方に強みがありますが、それらの選択は、単純さと複雑さの必要性や開発中のプラットフォームなど、アプリケーションの特定の要件に依存します。

引用:
[1] https://www.mvvmcross.com/documentation/fundamentals/dataバインディング
[2] https://crossCuttingConcerns.com/MVVMCROSS-FLUENT-DATABINDING
[3] https://stackoverflow.com/questions/41462365/what-are-the-pros-and-of-android-dataバインディング
[4] https://stackoverflow.com/questions/60500840/should-view-binding-replace-dataバインディング
[5] https://learn.microsoft.com/en-us/dotnet/desktop/wpf/data/?view=netdesktop-9.0
[6] https://www.phunware.com/android-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/