MugenMvvmToolkit by Vyacheslav Volkov

<PackageReference Include="MugenMvvmToolkit" Version="6.5.0" />

 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.

<package xmlns="http://schemas.microsoft.com/packaging/2013/05/nuspec.xsd">
  <metadata>
    <id>MugenMvvmToolkit</id>
    <version>6.5.0</version>
    <title>MugenMvvmToolkit</title>
    <authors>Vyacheslav Volkov</authors>
    <owners>Vyacheslav Volkov</owners>
    <requireLicenseAcceptance>false</requireLicenseAcceptance>
    <licenseUrl>http://opensource.org/licenses/MS-PL</licenseUrl>
    <projectUrl>https://github.com/MugenMvvmToolkit/MugenMvvmToolkit</projectUrl>
    <iconUrl>https://raw.githubusercontent.com/MugenMvvmToolkit/MugenMvvmToolkit/master/logo128_128.png</iconUrl>
    <description>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.</description>
    <releaseNotes>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&lt;TViewModel&gt;.		
	- 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(() =&gt; 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&lt;bool&gt;
	- 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&lt;bool&gt;:AddContinuation&lt;MugenMvvmToolkit.Infrastructure.Callbacks.AsyncOperationImpl`2&lt;object, object&gt;&gt; (MugenMvvmToolkit.Infrastructure.Callbacks.AsyncOperationImpl`2&lt;object, object&gt;)' 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</releaseNotes>
    <tags>mugen mvvm toolkit binding wpf winforms android uwp cross platform ios xamarin forms xamforms</tags>
    <dependencies>
      <group targetFramework=".NETFramework4.5" />
      <group targetFramework=".NETFramework4.0-Client">
        <dependency id="Microsoft.Bcl" version="1.1.10" />
        <dependency id="Microsoft.Bcl.Build" version="1.0.21" />
      </group>
    </dependencies>
  </metadata>
</package>