Giter Site home page Giter Site logo

mugenmvvmtoolkit's Introduction

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 Portable Class Libraries 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
  • Silverlight 5
  • Silverlight for WP7.1, WP8, WP8.1
  • Xamarin.Android
  • Xamarin.iOS
  • Xamarin.Forms
  • WinRT XAML framework for Windows 8 Store apps

#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.

An example of how to navigate looks in other frameworks:

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

An example of how to navigate 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 WinRT and WP 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 (??), 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.

mugenmvvmtoolkit's People

Contributors

vyacheslav-volkov avatar

Watchers

疯风愚雨 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.