MugenMvvmToolkit/MugenMvvmToolkit


License: MS-PL

Language: C#


MugenMvvmToolkit


Mugen MVVM Toolkit makes it easier to develop cross-platform application using the Model-View-ViewModel design pattern. The Mugen MVVM Toolkit makes extensive use of Net Standard Library to provide maintainable cross platform C# native applications. The Mugen MVVM Toolkit provides a cross-platform MVVM development framework built on top of:

  • WinForms
  • WPF
  • Xamarin.Android
  • Xamarin.iOS
  • Xamarin.Forms
  • UWP

Questions & support

We have a group on Slack where we will be glad to answer your questions.

Documentation

Please chek out MugenMvvmToolkit documentation.

Links

Features

The MVVM framework includes the following features that differs this project from other frameworks:

  • Deep integration with each platform.
  • Supports state preservation and restoration for mobile platforms.
  • Full Fragment support for Android, you do not need to worry about activity, fragments, sub-fragments or their state all this makes the framework.
  • Solves the nested user controls problem in MVVM, all view models are dynamically created by you, using the GetViewModel and GetViewModel<TViewModel> methods and you do not need to use the ViewModelLocator.
  • Supports all kinds of navigation like modal window, page navigation, tab navigation, back stack fragment navigation for android. You can also easily add a new kind of navigation.
  • Navigation system works with view models and allows to expect the completion of the operation. You can pass any parameters between view models.

Installation

Under Visual Studio you can use NuGet Package Manager to get MugenMvvmToolkit.

To start developing under iOS, Android, UWP platforms use:

PM> Install-Package MugenMvvmToolkit.StarterPack

To start developing under WPF use:

PM> Install-Package MugenMvvmToolkit.StarterPack.WPF

To start developing under Windows Forms use:

PM> Install-Package MugenMvvmToolkit.StarterPack.WinForms

Navigation example

An example of how the navigation looks in other frameworks:

Navigate<DetailViewModel>(new DetailParameters() { Index = 2 });

An example of how the navigation looks in MugenMvvmToolkit:

using (var editorVm = GetViewModel<ProductEditorViewModel>())            
{
   var productModel = new ProductModel { Id = Guid.NewGuid() };
   editorVm.InitializeEntity(productModel, true);
   if (!await editorVm.ShowAsync())
	   return;
   //Code that will be called after the completion of navigation, and yes, this code will be executed even if the application had been tombstoned and then restored.
}

For UWP you should install the MugenMvvmToolkit.Fody plugin to support async operation restore.

  • Good design mode support, for xaml platforms supports the creation of design view model with any constructor parameters.
  • Supports bindings on all platforms, all of the native binding features available for WPF platform available on all platforms and even more.
  • Binding supports C# language expressions like Linq, Extension methods, method call, ternary operator (?:), coalescing operator (??), null conditional operator (?.) etc. (Text Items.First(x => x == Name).Value), (Text $string.Format('{0} {1}', Prop1, Prop2)).
  • Supports subscription to any control event. (TextChanged ViewModelMethod($args)), (DoubleClick Command).
  • Built-in support for validation. (Text Prop1, Validate=True), (Text $GetErrors(Prop1).FirstOrDefault())
  • You can easily write their own extensions for bindings. (Text $i18.MyLocalizableString), (Text $MyCustomMethod(Prop1)).
  • Supports attached members (properties, events, methods), you can extend any object as you want.
  • Special editor for WinForms, you do not need to write code to create bindings.
  • Binding parser builds syntax tree that allows you to easily change or extend the bindings, without manipulation of the raw text.
  • Binding supports fluent syntax.
  • Excellent binding performance.

Project Statistics

Sourcerank 11
Repository Size 63.3 MB
Stars 121
Forks 23
Watchers 16
Open issues 3
Dependencies 86
Contributors 5
Tags 16
Created
Last updated
Last pushed

Top Contributors See all

Vyacheslav Volkov Alexander Efremov m0j0 Derek Beattie Stefan de Vogelaere

Packages Referencing this Repo

MugenMvvmToolkit.Android
This package contains the Android assemblies. Mugen MVVM Toolkit makes it easier to develop...
Latest release 6.5.0 - Published - 121 stars
MugenMvvmToolkit.iOS
This package contains the iOS assemblies. Mugen MVVM Toolkit makes it easier to develop cro...
Latest release 6.5.0 - Published - 121 stars
MugenMvvmToolkit.UWP.Binding
This package contains the binding extensions for UWP. Mugen MVVM Toolkit makes it easier to...
Latest release 6.5.0 - Published - 121 stars
MugenMvvmToolkit.Android.Preference
This package adds Android Support Library v7 Preference support for MugenMvvmToolkit.
Latest release 6.5.0 - Published - 121 stars
MugenMvvmToolkit.UWP
This package contains the UWP assemblies. Mugen MVVM Toolkit makes it easier to develop cro...
Latest release 6.5.0 - Published - 121 stars
MugenMvvmToolkit.Android.ActionBar
This package is obsolete use the MugenMvvmToolkit package instead.
This package is no longer available on NuGet
MugenMvvmToolkit.Android.Design
This package adds Android Design Support Library support for MugenMvvmToolkit.
Latest release 6.5.0 - Updated - 121 stars
MugenMvvmToolkit.Android.AppCompat
This package adds Android Support Library v7 AppCompat support for MugenMvvmToolkit.
Latest release 6.5.0 - Updated - 121 stars
MugenMvvmToolkit.StarterPack.WPF
This package contains the 'Getting Started' assemblies for WPF platform. Mugen MVVM Toolkit...
Latest release 6.5.0 - Updated - 121 stars
MugenMvvmToolkit.StarterPack
This package contains the 'Getting Started' assemblies for UWP, Android, iOS platforms. Mug...
Latest release 6.5.0 - Updated - 121 stars
MugenMvvmToolkit.StarterPack.WinForms
This package contains the 'Getting Started' assemblies for WinForms platform. Mugen MVVM To...
Latest release 6.5.0 - Updated - 121 stars
MugenMvvmToolkit.Android.API8.AppCompactV7
This package contains the Android assemblies for Android with API >= 8 with Support Library AppCo...
This package is no longer available on NuGet
MugenMvvmToolkit.StarterPack.Xamarin.Forms
This package contains the 'Getting Started' assemblies for Xamarin.Forms platform. Mugen MV...
Latest release 6.5.0 - Updated - 121 stars
MugenMvvmToolkit.Android.API8.AppCompatV7
This package contains the Android assemblies for Android with API >= 10 with Support Library AppC...
This package is no longer available on NuGet
MugenMvvmToolkit.Android.API8
This package contains the Android assemblies for Android with API >= 10. Mugen MVVM Toolkit...
This package is no longer available on NuGet
MugenMvvmToolkit.MugenInjectionContainer
Extension for Mugen Injection providing integration with Mugen MVVM Toolkit.
Latest release 6.0.0 - Updated - 121 stars
MugenMvvmToolkit.Xamarin.Forms
This package contains the assemblies for Xamarin.Forms. Mugen MVVM Toolkit makes it easier ...
Latest release 6.5.0 - Updated - 121 stars
MugenMvvmToolkit.WinForms
This package contains the WinForms assemblies. Mugen MVVM Toolkit makes it easier to develo...
Latest release 6.5.0 - Updated - 121 stars
MugenMvvmToolkit.WPF
This package contains the WPF assemblies. Mugen MVVM Toolkit makes it easier to develop cro...
Latest release 6.5.0 - Updated - 121 stars
MugenMvvmToolkit.Binding
This package contains the binding extensions. Mugen MVVM Toolkit makes it easier to develop...
Latest release 6.5.0 - Updated - 121 stars

Recent Tags See all

v6.5.0 May 22, 2017
v6.0.0 August 29, 2016
v5.1.0 November 21, 2015
v5.0.1 November 08, 2015
v5.0.0 November 04, 2015
v4.3.0 September 14, 2015
v4.2.1 September 03, 2015
v4.2.0 August 31, 2015
v4.1.0 August 23, 2015
v4.0.0 August 09, 2015
v3.4.1 April 10, 2015
v3.4.0 April 05, 2015
v3.3.0 February 27, 2015
v3.2.0 December 31, 2014
v3.1.0 November 10, 2014

Interesting Forks See all

stefandevo/MugenMvvmToolkit
C# - Updated - 1 stars

Something wrong with this page? Make a suggestion

Last synced: 2018-01-16 21:47:51 UTC

Login to resync this repository