MVVMCROSS jest wszechstronnym i rozszerzalnym ramą MVVM zaprojektowaną do rozwoju międzyplatformowej, szczególnie w ekosystemie .NET. Obsługuje szeroką gamę platform, w tym Xamarin.ios, Xamarin.android, Xamarin.Forms, Universal Windows Platform (UWP) i Windows Prezentacja Framework (WPF) [1] [2] [4]. Jedną z kluczowych cech MVVMCross jest jego zdolność do integracji z innymi ramami i bibliotekami, zwiększając jego użyteczność w złożonym rozwoju aplikacji.
Integracja z innymi ramami
1. Integracja CSLA.NET: MVVMCROSS może być używany obok CSLA.net, Framework obiektów biznesowych. Podczas gdy CSLA.NET koncentruje się na logice biznesowej i modelowaniu danych, MVVMCROSS obsługuje interfejs użytkownika i logikę na poziomie aplikacji. Deweloperzy mogą wykorzystać ramę obiektów biznesowych CSLA.NET, dziedzicząc po „ViewModelBase” CSLA i wdrażając wymagania MVVMCROSS. Ta integracja pozwala na udostępnianie kodu na platformach przy jednoczesnym zachowaniu wyraźnego rozdziału obaw [5].
2. Integracja ReactiveUi: Chociaż MVVMCROSS i ReactiveUi są ramami MVVM, służą różnym celom. MVVMCROSS jest bardziej skupiony na natywnych aplikacjach mobilnych i udostępnianiu kodu, podczas gdy ReactiveUi podkreśla reaktywne programowanie za pomocą reaktywnych rozszerzeń (RX). Chociaż mogą się współistnieć, są one zwykle używane do różnych aspektów tworzenia aplikacji. MVVMCROSS zapewnia kompleksowy zestaw funkcji rozwoju interfejsu użytkownika, podczas gdy ReactiveUi jest idealny do aplikacji wymagających zaawansowanych operacji asynchronicznych [7].
3. Xamarin.Forms i inne frameworki interfejsu użytkownika: MVVMCROSS obsługuje integrację z Xamarin.Forms, umożliwiając programistom budowanie aplikacji międzyplatformowych o wspólnej logice biznesowej. Działa również dobrze z innymi ramami interfejsu użytkownika, takich jak Maui i WPF, zapewniając elastyczność w wyborze warstwy interfejsu użytkownika [3] [7].
4. Framework wtyczki: MVVMCROSS zawiera framework wtyczki, który umożliwia programistom rozszerzenie swojej funkcjonalności poprzez dodanie wtyczek stron trzecich dla takich funkcji, jak lokalizacja GPS, lokalizacja i rozszerzenia wiązania. Ta rozszerzalność pozwala programistom dostosować ramy zgodnie z ich potrzebami projektu [1] [2].
Kluczowe funkcje ułatwiające integrację
- Inwersja kontroli (MKOl) i wstrzyknięcie zależności: MVVMCROSS zapewnia kontener MKOl, który ułatwia wstrzyknięcie zależności, ułatwiając integrację z innymi ramami poprzez zarządzanie zależnościami i usługami w aplikacji [1] [4].
- Konfigurowalny silnik wiązania: Framework umożliwia programistom tworzenie niestandardowych powiązań dla ich widoków, co może być przydatne podczas integracji z innymi komponentami lub ramami interfejsu użytkownika, które wymagają określonych mechanizmów wiązania danych [1] [2].
- ViewModel do ViewModel Nawigacja: Ta funkcja pomaga zarządzać logiką nawigacyjną, którą można zintegrować z wzorcami nawigacji innych frameworków, aby zapewnić spójne wrażenia użytkownika na różnych platformach [1] [2].
Podsumowując, MVVMCROSS został zaprojektowany tak, aby był wysoce zintegrowany z innymi ramami i bibliotekami, umożliwiając programistom wykorzystanie swoich mocnych stron w architekturze MVVM przy jednoczesnym uwzględnieniu dodatkowych funkcji z innych narzędzi. Jego rozszerzalność i wsparcie dla różnych platform sprawiają, że jest to wszechstronny wybór do tworzenia aplikacji międzyplatformowych.
Cytaty:[1] https://github.com/mvvmcross/mvvmcross
[2] https://dotnet.libhunt.com/mvvmcross-alternatives
[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-would-mvvmcross-and-csla-net-work-together-in-a-multi-platform-strategy
[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