12,424

Downloads

27

Downloads of v 6.5.0

6

Average downloads per day

2017-05-22

Last published

Share on Social Networks

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.

To install MugenMvvmToolkit, run the following command in the Package Manager Console

Install-Package MugenMVVMToolkit

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

Owners

Authors

Vyacheslav Volkov

Tags

Dependencies

Version History

Version Downloads Last updated
MugenMvvmToolkit 6.0.0 1,593 Monday, August 29, 2016
MugenMvvmToolkit 5.1.0 1,775 Saturday, November 21, 2015