MVVMCross'ta, hem İsviçre hem de akıcı veri tabanı, görünümleri görüntülemek için bağlamak için kullanılır, ancak biraz farklı amaçlara hizmet ederler ve farklı senaryolarda tercih edilirler.
Swiss Veritabling
Swiss Databinding, selefi JSON veritablingine kıyasla daha temiz ve daha az ayrıntılı bir sözdizimi sunar. Özellikle bağlamaları basit bir şekilde, genellikle doğrudan XML düzen dosyalarında tanımlamanız gerektiğinde kullanışlıdır. İsviçre bağlamalarının okunması ve yazılması kolaydır, bu da onları sözdiziminin özlü ve anlaşılabilir olması gereken basit, doğrudan bağlamalar için uygun hale getirir.
İsviçre veritablasyonunun tercih edilebileceği belirli bir senaryo, XML dosyalarında, özellikle XML düzenlerinin yaygın olarak kullanıldığı ve Android gibi kolayca düzenlenebilir platformlarda bağlamaları hızlı bir şekilde ayarlamanız gerektiğinde. Bununla birlikte, Swiss veritabling, bağlama kaynağı sıfırlanmadıkça, gerçek zamanlı güncellemeler gerektiren senaryolarda bir sınırlama olabilen değişiklikleri görünüm modelindeki değişiklikleri aktif olarak izlemez.
Fluent Veritabling
Akıcı veritabling ise, bağlar oluşturmak için C#tabanlı bir sözdizimi sağlar. Bu yaklaşım, XML düzenlerinin iOS ve macOS gibi kolayca insan düzenlenemediği ortamlarda özellikle faydalıdır. Akıcı bağlar, daha karmaşık ve dinamik bağlayıcı kurulumlara izin verir, bu da onları programlı olarak manipüle etmeniz veya daha karmaşık mantığı kullanmanız gereken senaryolar için idealdir.
Özellikle karmaşık uygulamalarda veya XML düzenlerini etkili bir şekilde desteklemeyen platformlarla çalışırken, programlı olarak daha esnek ve güçlü olabilen, programlı olarak bağlamalar oluşturmanız gerektiğinde akıcı veri tablosu tercih edilir.
Tercih senaryoları
- İsviçre veritablasyonu şu zamanki zaman tercih edilir:
-Özellikle XML dosyalarında, bağlamalar için basit, okunması kolay bir sözdizimine ihtiyacınız var.
- Uygulama, görünüm modelindeki değişikliklerin sürekli izlenmesini gerektirmez.
- XML düzenlerinin kolayca düzenlenebilir olduğu ortamlarda çalışıyorsunuz.
- Akıcı veri tablosu aşağıdakilerde tercih edilir:
- Daha dinamik ve karmaşık kurulumlara izin vererek programlı olarak bağlamalar oluşturmanız gerekir.
- XML düzenlerinin iOS gibi kolayca düzenlenemeyeceği platformlar üzerinde çalışıyorsunuz.
- Uygulama, bağlanma mantığı üzerinde daha fazla kontrol gerektirir veya karmaşık senaryoları ele alması gerekir.
Özetle, hem İsviçre hem de akıcı veri tabanlığı güçlü yönlerine sahipken, aralarındaki seçim, karmaşıklığa karşı basitlik ihtiyacı ve geliştirdiğiniz platform da dahil olmak üzere uygulamanızın özel gereksinimlerine bağlıdır.
Alıntılar:[1] https://www.mvvmcross.com/documentation/fundamentals/data-binding
[2] https://crosscuttingconcerns.com/mvvmcross-fluent-databinding
[3] https://stackoverflow.com/questions/41462365/what-are-the-pros-and-nons-doid-d-data-binding
[4] https://stackoverflow.com/questions/60500840/should-view-binding-reple-data-binding
[5] https://learn.microsoft.com/en-us/dotnet/desktop/wpf/data/?view=netdesktop-9.0
[6] https://www.phunware.com/android-clean-oding-uplecroch/
[7] https://www.reddit.com/r/androiddev/comments/ux9379/what_are_the_use_cases_of_data_binding_and_and_when/
[8] https://jesseliberty.com/2022/02/01/adved-databinding-part-0-basics/