Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Mvvmcross'ta görünüm sunucularını kullanmanın alternatifleri nelerdir?


Mvvmcross'ta görünüm sunucularını kullanmanın alternatifleri nelerdir?


MVVMCross'ta, sunum yapan kişiler farklı platformlarda ViewModels'in sunumunu yönetmede önemli bir rol oynamaktadır. Bununla birlikte, sunum mantığını görünümün sunduklarının ötesinde özelleştirmenin alternatifleri veya yolları arıyorsanız, bazı yaklaşımlar şunlardır:

1.

Mevcut görünüm sunucularını alt sınıfları alt sınıflandırarak veya `` imvxviewpresenter `arayüzünü uygulayarak genişletebilir veya değiştirebilirsiniz. Bu, sunum mantığını çeşitli platformlarda farklı ekran boyutları veya yönelimleri işleme gibi belirli ihtiyaçlara göre uyarlamanızı sağlar [1] [3]. Örneğin, bir tablete karşı bir telefonda farklı şekilde bir ViewModel görüntülemek isteyebilirsiniz.

2. Sunum ipuçlarını kullanarak **

MVVMCross, yeni bir ViewModel göstermeden UI'de değişiklik talep etmenizi sağlayan sunum ipuçları (`mvxpresentationhint`) adı verilen bir mekanizma sağlar. Bir ViewModel'i kapatmak veya navigasyon yığınını değiştirme gibi sunum yapan kişiye özel eylemleri sinyal vermek için özel ipuçları oluşturabilirsiniz [1] [3]. Bu yaklaşım, varsayılan sunucular tarafından karşılanmayan karmaşık UI etkileşimlerini ele almak için yararlıdır.

3. Alternatif MVVM çerçeveleri **

MVVM mimarinizde daha geniş bir değişiklik arıyorsanız, sunum ve navigasyona farklı yaklaşımlar sunan alternatif çerçeveleri düşünebilirsiniz. Bazı popüler alternatifler şunları içerir:
- Prizma: WPF, Xamarin Forms ve UNO platformlarındaki sağlam desteği ile bilinen Prizma, bakım verilebilir uygulamalar oluşturmak için kapsamlı bir çerçeve sunmaktadır [4].
- ReactiveUI: Bu çerçeve, daha soyutlanmış ve test edilebilir kullanıcı arayüzü mantığına izin veren fonksiyonel reaktif programlamaya odaklanmaktadır [4].
- Caliburn.micro: XAML platformlarında MV* desenlerini destekleyen hafif bir çerçeve, kod kalitesinden ödün vermeden hızlı gelişimi vurgulayarak hafif bir çerçeve [4].

4. Özel Navigasyon Mantığı **

Yalnızca görünüm sunucularına güvenmek yerine, özel navigasyon mantığını doğrudan uygulamanızda uygulayabilirsiniz. Bu, platforma özgü gezinme API'lerinin kullanılmasını veya MVVMCross'un ViewModel-ViewModel navigasyon özellikleriyle entegre olan özel bir navigasyon hizmeti oluşturmayı içerebilir [6].

5. Diyaloglar ve uçuşlar **

Standart navigasyon akışının dışında içeriği görüntülemeniz gereken senaryolar için MVVMCross, diyalogları ve uçucuları kullanarak destekler. Bunlar, geleneksel sayfa tabanlı navigasyona bir alternatif sunarak belirli sunum ihtiyaçlarına uyacak şekilde özelleştirilebilir [9].

Özetle, sunumcular MVVMCross'ta güçlü bir araç olsa da, bunları özelleştirebilir veya genişletebilir, dinamik kullanıcı arayüzü değişiklikleri için sunum ipuçlarını kullanabilir veya uygulamanız için istenen sunum mantığını elde etmek için alternatif MVVM çerçevelerini ve özel navigasyon yaklaşımlarını keşfedebilirsiniz.

Alıntılar:
[1] https://www.mvvmcross.com/documentation/fundamentals/view-presenters
[2] https://blog.ostebaronen.dk/2018/01/mvvmcross-binding-target.html
[3] https://gregshackles.com/presenters-in-mvvmcross-a-primer/
[4] https://dotnet.libhunt.com/mvvmcross-allternatives
[5] https://www.mvvmcross.com/documentation/adved/custom-data-binding
[6] https://stackoverflow.com/questions/18735497/mvvmcross-navigation-on-oncreen
[7] https://stackoverflow.com/questions/22601018/what-are-the-alternatives-of-todule-view-presentermvp-design-ptering
[8] https://yanxiaodi.gitbook.io/xamarin-mvmcross-handbook/using-mvvmcross-to-create-mour-first-xamarin-apping-the-project/understing-ton-data-binding-syntax
[9] https://www.mvvmcross.com/documentation/adved/customizing-using-app-and-setup