MVVM Cross: MVVM Cross is a .NET cross-platform MVVM framework. It allows us to make a cross-platform solution for platforms such as Xamarin. Forms, Xamarin.Android, Xamarin.iOS, Xamarin.Mac and WPF. It is an inactive state of development.
MVVM Cross requires the application to be divided into two parts: Core and the UI.
The Core part contains the View Models, Service, Models, and the Business logic, whereas the UI part consists of the different views and platform-specific code that interact with the core. The views are the View Screens, which contain the graphical content. In addition to Core and UI, the application may contain additional libraries for various functionalities.
Features that are provided by MVVM Cross are:
- An MVVM architecture pattern
- A flexible Navigation system
- Data binding to allow automatic binding with the source to target.
- Platform-specific support
- Inversion of Control Container
- Dependency Injection engine
Consequences of MVVM Cross are:
It has an excessive learning curve and lacks a Wiki for how to get started developing the apps.
MVVM Light: MVVM Light is another Framework that allows the creation of Enterprise-Grade apps using the MVVM Architectural pattern on Xamarin. MVVM Light enables the developer to create and develop MVVM applications on a variety of platforms like Xamarin. Forms, Xamarin.Android, Xamarin.iOS, UWP, and WPF. It allows us to separate the View from Model and hence write the testable and extensible applications. It does not support async.
MVVM Light application is divided into the following parts:
- View: It is a platform-specific user interface which is associated with the screen.
- ViewModel: It exposes the data and related properties of the data.
- ViewModel Locator: It registers custom ViewModels.