MugenMVVMToolkit 6.5.0

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
     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 method 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.
     - 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 (??), etc.
     - Supports subscription to any control event.
     - Built-in support for validation.
     - You can easily write their own extensions for bindings.
     - 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.

Install-Package MugenMVVMToolkit -Version 6.5.0
dotnet add package MugenMVVMToolkit --version 6.5.0
paket add MugenMVVMToolkit --version 6.5.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.

Release Notes

Breaking changes:
Core
- migrated to .netstandard 1.0 pcl not supported.
- removed WinRT 8.0\8.1 support
- removed Silverlight support
- removed WinPhone Silverlight support
- removed WPF page navigation
- removed ModuleBase class use the IModule interface instead.
- removed INavigationOperation interface to get NavigationCompletedTask property use the ToolkitExtensions.GetNavigationCompletedTask() extension method.
- removed the ICloseableViewModel.Close method, now all viewmodels can be closed use the ViewModelExtensions.CloseAsync() extension method.
- renamed PlatformExtensions to AndroidToolkitExtensions
- renamed PlatformExtensions to TouchToolkitExtensions
- renamed PlatformExtensions to UwpToolkitExtensions
- renamed PlatformDataBindingExtensions to UwpDataBindingExtensions
- renamed PlatformExtensions to WinFormsToolkitExtensions
- renamed PlatformExtensions to WpfToolkitExtensions
- renamed XamarinFormsExtensions to XamarinFormsToolkitExtensions
- renamed INavigableViewModel.OnNavigatingFrom to INavigableViewModel.OnNavigatingFromAsync
- renamed IVisualTreeManager.FindParent method to GetParent
- replaced MultiViewModel with generic version MultiViewModel<TViewModel>.
- removed IHasOperationResult added the IHasResultViewModel interface
- removed IValidatorProvider.GetValidatorTypes method
- changed parameter type for CloseableViewModel.OnClosing, CloseableViewModel.OnClosed methods from object to IDataContext.
- changed IDynamicViewModelPresenter interface.
- changed the ShowAsync method now it returns result of IHasResultViewModel interface instead of bool value

iOS
- removed UICollectionViewCellBindable, removed support for Selected, Highlighted bindings
- removed UITableViewCellBindable, removed support for Selected, Highlighted, Editing bindings

Xam.Forms
- change project to .netstandard and add this line to project.json "frameworks": { "netstandard1.0": { "imports": "portable-net45+win8+wpa81+wp8" } }
- added MvvmXamarinApplicationBase instead of default App implementation you can use this class
- android project should pass app context to the PlatformBootstrapperService new PlatformBootstrapperService(() => Forms.Context)
- moved binding stuff to the MugenMvvmToolkit.Xamarin.Forms.Binding need to change namespace xmlns:mugen="clr-namespace:MugenMvvmToolkit.Xamarin.Forms.MarkupExtensions;assembly=MugenMvvmToolkit.Xamarin.Forms.Binding"

Nuget
- added MugenMvvmToolkit.Android project if you're using Android project you need to install this package
- added MugenMvvmToolkit.iOS project if you're using iOS project you need to install this package
- added MugenMvvmToolkit.UWP and MugenMvvmToolkit.UWP.Binding project if you're using UWP project you need to install this packages
- added MugenMvvmToolkit.WPF.Binding project if you're using WPF binding project you need to install this package
- added MugenMvvmToolkit.Xamarin.Forms project if you're using Xamarin.Forms binding project you need to install this package
- added MugenMvvmToolkit.Android.Preference package

Changes:
Core
- fixed serializer register type exception
- fixed incorrect behavior for ClearBackStack with BringToFront flag
- changed implementation of DynamicViewModelWindowPresenter
- changed implementation of IWindowViewMediator
- changed NavigationCompletedTask to Task<bool>
- changed IModuleContext.IocContainer to NotNull
- changed static properties ViewCreated, ViewInitialized, ViewCleared rom ViewManager to events
- linker optimizations
- updated MultiViewModel navigation
- updated autofac
- updated bootstrapper methods
- added LinkerSafeAttribute to core projects
- added INavigationDispatcher that allows to control view model navigation process
- added IMultiViewModel.ClearAsync method
- added ability to handle background\foreground app navigation
- added NavigationMode.Background, NavigationMode.Foreground
- added NavigationMode.Remove
- added NavigationConstants.NavigationParameter constant
- added ability to get opened view models using INavigationDispatcher.GetOpenedViewModels methods
- added ViewModelExtensions.GetCurrentView method
- added strong names
- added LinkerSafe attribute to all ioc containers
- added MvvmApplication.Modules property
- added ability to load modules without scanning assemblies
- added ext method GetTopViewModels
- added IAwaitableDynamicViewModelPresenter that allows to wait when current navigation operation will be completed
- added IViewModelPresenter.WaitCurrentNavigationsAsync method
- added overloads to the DelegateContinuation constructor and to the ContinueWith method
- added DoNotTrackViewModelFrom, DoNotTrackViewModelTo constants for NavigationDispatcher
- added PlatformInfo.Idiom property
- added Parameter property to navigation event args
- added IInitializableView interface
- added ICleanableView interface
- added IOpenedViewModelInfo for the INavigationDispatcher
- added IHasResultViewModel interface
- added ViewModelConstants.CanCloseHandler constant
- added ApplicationSettings.MessagePresenterGetButtonText property
- added non generic IMutliViewModel interface
- added ability to restore view model with custom constructor parameters using InitializationConstants.IocParameters constant
- replaced INavigationOperation interface to the IAsyncOperation interface
- removed INavigationOperation interface
- removed NavigationMode.Reset
- removed ITaskExceptionHandler
- removed INavigationCachePolicy
- removed MugenInjection added built-in MugenContainer
- removed object parameter from OnClosing\OnClosed methods
- removed context parameter from Start method for bootstrappers
- removed NavigationMode.Forward
- removed DesignBootstrapperBase
- removed the INavigationService.GetParameterFromArgs method
- removed AttachedValueProvider from core project
- renamed Platform property to PlatformInfo
- removed IViewAwareViewModel interface implementation from WorkspaceViewModel
- moved DynamicViewModelWindowPresenter to core project
- moved ViewManager.GetDataContext, ViewManager.SetDataContext methods to the ToolkitExtensions class
- moved static properties from ViewManager to ApplicationSettings
- optimized ViewModelBase\NotifyPropertyChangedBase cleanup

Binding
- binding optimizations
- optimized data context
- added code to detect circular dependencies for attached event members
- added the non-generic Member method to the BindingSyntaxEx class
- moved binding converter from core project to platform projects
- removed RelativeSourceExpressionNode usage from fluent bindings (linker optimizations)
- split binding modules to static AttachedMembersRegistration class (linker optimizations)
- updated binding builder methods
- added ability to register attached member for indexer(Item[]) path

Android
- added support for Xamarin.Android.Support.v7.Preference
- added ability to use android resources from binding using resource accessor $color.myXmlColor, $drawable.myDrawable
- added support for BottomNavigationView view
- added cache for MenuInflater
- added Invisible attached member
- added the Activity attached member to View class
- updated navigation for NoHistory activities
- removed XmlDocument and XDocument usage (linker optimizations)
- split preference usage (linker optimizations)

iOS
- added MvvmAppDelegateBase
- updated iOS navigation added ability to close root view controller
- updated state restoration
- fixed iOS aot bug System.ExecutionEngineExceptionAttempting to JIT compile method 'MugenMvvmToolkit.Infrastructure.Callbacks.AsyncOperation`1<bool>:AddContinuation<MugenMvvmToolkit.Infrastructure.Callbacks.AsyncOperationImpl`2<object, object>> (MugenMvvmToolkit.Infrastructure.Callbacks.AsyncOperationImpl`2<object, object>)' while running with --aot-only.
- fixed bring to front navigation bug

Xam.Forms
- added RestorableViewModelPresenter
- added MvvmXamarinApplicationBase
- added ignore state key to RestorableViewModelPresenter
- added native ViewModelToViewConverter converter
- removed PlatformDataBindingModuleEx

UWP
- added SuspensionManager and NavigationHelper
- added MvvmUwpApplicationBase
- fixed broken uwp weakreferences

WinForms
- added exception handler for wpf\winforms dialogs
- add Owner to WPF\WinForms IWindowView
- update design mode determination for WinForms

Version History

Version Downloads Last updated
6.5.0 (current version) 1,550 5/22/2017
6.0.0 2,723 8/29/2016
5.1.0 2,050 11/21/2015