MVVMCross alternatives and similar packages
Based on the "MVVM" category.
Alternatively, view MVVMCross alternatives based on common mentions on social networks and blogs.
-
knockout
Knockout makes it easier to create rich, responsive UIs with JavaScript -
Prism
Prism is a framework for building loosely coupled, maintainable, and testable XAML applications in WPF, Xamarin Forms, and Uno / Win UI Applications.. -
ReactiveUI
An advanced, composable, functional reactive model-view-viewmodel framework for all .NET platforms that is inspired by functional reactive programming. ReactiveUI allows you to abstract mutable state away from your user interfaces, express the idea around a feature in one readable place and improve the testability of your application. -
Caliburn.Micro
A small, yet powerful framework, designed for building applications across all XAML platforms. Its strong support for MV* patterns will enable you to build your solution quickly, without the need to sacrifice code quality or testability. -
MVVM Light Toolkit
The main purpose of the toolkit is to accelerate the creation and development of MVVM applications in Xamarin.Android, Xamarin.iOS, Xamarin.Forms, Windows 10 UWP, Windows Presentation Foundation (WPF), Silverlight, Windows Phone. -
Gemini
Gemini is an IDE framework similar in concept to the Visual Studio Shell. It uses AvalonDock and has an MVVM architecture based on Caliburn Micro. -
Stylet
A very lightweight but powerful ViewModel-First MVVM framework for WPF for .NET Framework and .NET Core, inspired by Caliburn.Micro. -
WPF Application Framework (WAF)
Win Application Framework (WAF) is a lightweight Framework that helps you to create well structured XAML Applications. -
FreshMvvm
FreshMvvm is a super light Mvvm Framework designed specifically for Xamarin.Forms. It's designed to be Easy, Simple and Flexible. -
MVVM Dialogs
Library simplifying the concept of opening dialogs from a view model when using MVVM in WPF -
DotNetProjects.WpfToolkit
wpf toolkit fork of the MS WPF Toolkit (https://wpf.codeplex.com/releases/view/40535) -
Toms Toolbox
A set of core functions and classes to ease every days .Net development tasks. -
Smaragd
A platform-independent, lightweight library for developing .NET applications using the MVVM architecture -
Web-Atoms Core
Light weight feature rich UI Framework for JavaScript for Browser with Dependency Injection, Mocking and Unit Testing -
Okra App Framework
An app centric MVVM framework for Windows 8.1 built with dependency injection in mind, including a full set of Visual Studio MVVM templates. -
MvvmMicro
A clean and lightweight MVVM framework for WPF, UWP and .NET Standard 2.0 inspired by MVVM Light Toolkit. -
M.V.B.
Model View Binder - A small and robust framework for awesome cross platform architectures -
UpdateControls
Update Controls does not require that you implement INotifyPropertyChanged or declare a DependencyProperty. It connects controls directly to CLR properties. This makes it perfect for the Model/View/ViewModel pattern.
Clean code begins in your IDE with SonarLint
* Code Quality Rankings and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest.
Do you think we are missing an alternative of MVVMCross or a related project?
README
MvvmCross
๐ Check out mvvmcross.com to get started with MvvmCross ๐
MvvmCross is a cross-platform MVVM framework. It enables developers to create apps using the MVVM pattern on Xamarin.iOS, Xamarin.Android, Xamarin.Mac, Xamarin.Forms, Universal Windows Platform (UWP) and Windows Presentation Framework (WPF). This allows for better code sharing by allowing you to share behavior and business logic between platforms.
Among the features MvvmCross provides are:
- ViewModel to View bindings using own customizable binding engine, which allows you to create own binding definitions for own custom views
- ViewModel to ViewModel navigation, helps you share behavior on how and when to navigate
- Inversion of Control through Dependency Injection and Property Injection
- Plugin framework, which lets you plug-in cool stuff like GPS Location, Localization, Sensors, Binding Extensions and a huge selection of 3rd party community plug-ins
MvvmCross is extendable by you. We strive to let as much code be configurable and overridable, to let the developer decide how they want to use the framework. However, the framework is very usable without doing anything.
Check out the MvvmCross docs
Backers
Support us with a monthly donation and help us continue our activities. [Become a backer]
Sponsors
Become a sponsor and get your logo on our README on Github with a link to your site. [Become a sponsor]
Installation
Grab the latest MvvmCross NuGet package and install in your solution.
Install-Package MvvmCross
Make sure that both the shared core project and your application projects include the NuGet. For more details please visit the Getting Started documentation, which also provides easier ways, through Visual Studio and Xamarin Studio plugins to install and manage MvvmCross in your project.
Filing issues
We want to keep the GitHub issues list for bugs, features and other important project management tasks only. If you have questions please see the Questions & support section below.
When filing issues, please select the appropriate issue template. The best way to get your bug fixed is to be as detailed as you can be about the problem. Providing a minimal git repository with a project showing how to reproduce the problem is ideal. Here are a couple of questions you can answer before filing a bug.
- Did you try find your answer in the documentation
- Did you include a snippet of the broken code in the issue?
- Can you reproduce the problem in a brand new project?
- What are the EXACT steps to reproduce this problem?
- What platform(s) are you experiencing the problem on?
Remember GitHub issues support markdown. When filing bugs please make sure you check the formatting of the issue before clicking submit.
Contributing code
We are happy to receive Pull Requests adding new features and solving bugs. As for new features, please contact us before doing major work. To ensure you are not working on something that will be rejected due to not fitting into the roadmap or ideal of the framework.
Git setup
Since Windows and UNIX-based systems differ in terms of line endings, it is a very good idea to configure git autocrlf settings.
On Windows we recommend setting core.autocrlf
to true
.
git config --global core.autocrlf true
On Mac we recommend setting core.autocrlf
to input
.
git config --global core.autocrlf input
Code style guidelines
Please use 4 spaces for indentation.
Otherwise default ReSharper C# code style applies.
Project Workflow
Our workflow is loosely based on Github Flow. We actively do development on the develop branch. This means that all pull requests by contributors need to be develop and requested against the develop branch. The master branch contains tags reflecting what is currently on NuGet.org.
Submitting Pull Requests
Make sure you can build the code. Familiarize yourself with the project workflow and our coding conventions. If you don't know what a pull request is read this https://help.github.com/articles/using-pull-requests.
Before submitting a feature or substantial code contribution please discuss it with the team and ensure it follows the MvvmCross roadmap. Note that code submissions will be reviewed and tested. Only code that meets quality and design/roadmap appropriateness will be merged into the source. Don't "Push" Your Pull Requests
Questions & support
- StackOverflow
- Xamarin forums
- Discord #mvvmcross channel
Licensing
MvvmCross is licensed under the MS-PL License
- MonoCross was the original starting point for this project, and was used as a reference under MIT
- Tiny bits of MvvmLight are redistributed and modified under MIT
- Messenger ideas from JonathanPeppers/XPlatUtils under Apache License Version 2.0, and from GrumpyDev/TinyMessenger under simple license of "THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY"
- Color codes under MIT License
- Some bits of Mvvm.Async are redistributed and modified under MIT License
Acknowledgements
- Thanks to McCannLondon for sponsoring the initial part of this work
- Thanks to JetBrains for a community Resharper license to use on this project
.NET Foundation
This project is supported by the .NET Foundation.
*Note that all licence references and agreements mentioned in the MVVMCross README section above
are relevant to that project's source code only.