Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon MVVMcross diğer çerçeveler veya kütüphanelerle entegre edilebilir mi?


MVVMcross diğer çerçeveler veya kütüphanelerle entegre edilebilir mi?


MVVMCross, özellikle .NET ekosisteminde platformlar arası geliştirme için tasarlanmış çok yönlü ve genişletilebilir bir MVVM çerçevesidir. Xamarin.ios, Xamarin.android, Xamarin.Forms, Universal Windows Platformu (UWP) ve Windows Sunum Çerçevesi (WPF) [1] [2] [4] dahil olmak üzere çok çeşitli platformları destekler. MVVMCross'un temel özelliklerinden biri, diğer çerçeveler ve kütüphanelerle entegre olma ve karmaşık uygulama geliştirmedeki faydasını artırma yeteneğidir.

Diğer çerçevelerle entegrasyon

1. CSLA.NET Entegrasyonu: MVVMCross, bir iş nesnesi çerçevesi olan csla.net ile birlikte kullanılabilir. CSLA.NET iş mantığı ve veri modellemesine odaklanırken, MVVMCross kullanıcı arayüzü ve uygulama düzeyinde mantığı ele alır. Geliştiriciler, CSLA'nın `` ViewModelBase '' den miras alarak ve MVVMCross'un gereksinimlerini uygulayarak CSLA.NET'in iş nesnesi çerçevesinden yararlanabilir. Bu entegrasyon, endişelerin net bir şekilde ayrılmasını sağlarken platformlarda kod paylaşımına izin verir [5].

2. ReactiveUi Entegrasyonu: MVVMCross ve ReactiveUi her ikisi de MVVM çerçeveleri olmasına rağmen, farklı amaçlara hizmet ederler. MVVMCross, yerel mobil uygulamalara ve kod paylaşımına daha fazla odaklanırken, ReactiveUi reaktif uzantılar (RX) kullanarak reaktif programlamayı vurgulamaktadır. Bir arada var olsalar da, genellikle uygulama geliştirmenin farklı yönleri için kullanılırlar. MVVMCross, UI geliştirme için kapsamlı bir dizi özellik sağlarken, reaktifui gelişmiş asenkron operasyonlar gerektiren uygulamalar için idealdir [7].

3. Xamarin.Forms ve diğer UI çerçeveleri: MVVMCross, xamarin.forms ile entegrasyonu destekleyerek geliştiricilerin paylaşılan iş mantığı ile platformlar arası uygulamalar oluşturmalarını sağlar. Ayrıca, UI katmanının seçilmesinde esneklik sağlayan Maui ve WPF gibi diğer UI çerçeveleriyle de iyi çalışır [3] [7].

4. Eklenti Çerçevesi: MVVMCross, GPS konumu, yerelleştirme ve bağlama uzantıları gibi özellikler için üçüncü taraf eklentiler ekleyerek geliştiricilerin işlevselliğini genişletmesini sağlayan bir eklenti çerçevesi içerir. Bu genişletilebilirlik, geliştiricilerin çerçeveyi proje ihtiyaçlarına göre özelleştirmelerini sağlar [1] [2].

Entegrasyonu kolaylaştıran temel özellikler

- Kontrolün (IOC) ve bağımlılık enjeksiyonunun tersine çevrilmesi: MVVMCROSS, bağımlılık enjeksiyonunu kolaylaştıran bir IOC kabı sağlar ve uygulama genelinde bağımlılıkları ve hizmetleri yöneterek diğer çerçevelerle entegre olmayı kolaylaştırır [1] [4].

- Özelleştirilebilir bağlanma motoru: Çerçeve, geliştiricilerin, belirli veri bağlama mekanizmaları gerektiren diğer UI bileşenleri veya çerçevelerle entegre ederken yararlı olabilen görüşleri için özel bağlamalar oluşturmalarını sağlar [1] [2].

- ViewModel to ViewModel Gezinme: Bu özellik, farklı platformlarda tutarlı bir kullanıcı deneyimi sağlamak için diğer çerçevelerin gezinme modelleriyle entegre edilebilen navigasyon mantığını yönetmeye yardımcı olur [1] [2].

Özetle, MVVMCross, diğer çerçeveler ve kütüphanelerle yüksek oranda entegre edilebilecek şekilde tasarlanmıştır, bu da geliştiricilerin diğer araçlardan ek işlevler eklerken MVVM mimarisindeki güçlü yönlerini kullanmalarını sağlar. Çeşitli platformlar için genişletilebilirliği ve desteği, onu platformlar arası uygulama geliştirme için çok yönlü bir seçim haline getirir.

Alıntılar:
[1] https://github.com/mvvmcross/mvvmcross
[2] https://dotnet.libhunt.com/mvvmcross-allternatives
[3] https://visualstudiomagazine.com/articles/2018/05/08/build-a-xamarin.forms-application.aspx
[4] https://www.mvvmcross.com/documentation/getting-started/getting-started
[5] https://stackoverflow.com/questions/17373587/how-well-well-mvvmcross-and-csla-net-work-together-in-m-platform stratejisi
[6] https://www.mvvmcross.com/documentation/getting-started/mvvmcross-overview
[7] https://www.reactiveui.net/vs/mvvmcross
[8] https://www.mvvmcross.com
[9] https://github.com/rogerwcpt/xamarin-mvvvm-frameworks