Project Description
MVVM base framework includes Data binding, Command binding and DependencyObject/DependencyProperty

News

  • MVVM FX release 2.0.2 went NuGet on 28-10-2012. Look for "mvvmfx".
  • New on release 2.0.2
    • MVVM Light Toolkit partial port for Windows Forms and Visual WebGUI using MVVM FX

Base framework features

  • Data binding for any CLR object (this is a kind of a fork of Truss) (released under Ms-PL license)
  • Command binding to any input event on UI objects (released under Ms-PL license)
  • use WeakReference to avoid memory leaks
  • DependencyObject and DependencyProperty for any CLR object, namely Form and UserControl under Windows Forms and Visual WebGUI (this is a kind of a fork of GitHub mono / mono) (released under the MIT license).

Data Binding

  • Bindings à la WPF, with Converters, one way, two way, etc.
  • Can bind to about anything using one of the binder systems below:
    • INotifyPropertyChanged
    • <property>Changed event (used by WindowsForms and Visual WebGUI)
    • WPF DependencyProperty
    • MvvmFx own DependencyProperty

DependencyObject and DependencyProperty

The requsite of this module is to make it easier to port MVVM libraries (like MVVM Light or Caliburn.Micro) and use them under WindowsForms or Visual WebGUI. The implemention isn't complete as it stops where the referred goal is achieved.

Data binding timings

Test specification: set a single property 100.000 times

Debug mode

MvvmFx binding
==============

Bind to source INPC: 2.005 msec.
Bind to target TargetObject: 2.062 msec.

Bind to source XxxChanged: 2.005 msec.
Bind to target TargetObject: 2.023 msec.

Bind to source XxxChangedGenericArgs: 1.983 msec.
Bind to target TargetObject: 2.032 msec.

Bind to source SystemDependencyObject: 2.352 msec.
Bind to target TargetObject: 2.410 msec.

Bind to source MvvmFxDependencyObject: 3.207 msec.
Bind to target TargetObject: 3.275 msec.

WPF binding
===========
Symmetric
---------
Write to TestWpf: 6.570 msec.
Write to TestWpf: 6.159 msec.

Asymmetric
----------
Write to TestWpf: 6.517 msec.
Write to INPC: 8.710 msec.

Release mode

MvvmFx binding
==============

Bind to source INPC: 1.939 msec.
Bind to target TargetObject: 1.948 msec.

Bind to source XxxChanged: 1.866 msec.
Bind to target TargetObject: 1.923 msec.

Bind to source XxxChangedGenericArgs: 1.888 msec.
Bind to target TargetObject: 1.934 msec.

Bind to source SystemDependencyObject: 2.228 msec.
Bind to target TargetObject: 2.286 msec.

Bind to source MvvmFxDependencyObject: 2.897 msec.
Bind to target TargetObject: 2.950 msec.

WPF binding
===========
Symmetric
---------
Write to TestWpf: 6.530 msec.
Write to TestWpf: 6.137 msec.

Asymmetric
----------
Write to TestWpf: 6.508 msec.
Write to INPC: 8.622 msec.

Note
This project's scope used to be Model-View-ViewModel application framework and library for WPF, Surface, and Silverlight.

I'm much obliged to Sam Bourton for transferring project ownership and thus allow the use of the MVVMFX name.

To Join

To join this project and make your own contribution:
  1. Register on CodePlex
  2. Send the user name and brief description of your contribution to Tiago Freitas Leal.

Last edited Oct 28, 2012 at 11:39 PM by tiago, version 49