Caliburn.Micro for Windows Forms and Wisej

Project statement

The project focus shifted from a collection of loose tools to a development framework based on three libraries:

Caliburn.Micro MVVM framework

bound controls library

general purpose data binding library

The project's main goal is the MVVM framework. Caliburn.Micro is one of the best MVVM frameworks around (some would say it is the best). Based on a partial port from
Dan Durland, the missing features were added, bit by bit.

In order to do proper MVVM, one must use controls that support data binding. Some of the standard Windows Forms controls (or Wisej controls for that matter) don't comply with this requirement, namely TreeView. The bound controls library fills this gap.

Due to Windows Forms binding shortcomings, a general purpose binding library is instrumental for the Caliburn.Micro port. The
MvvmFx.Windows library is based on Truss and includes some features that aren't needed for the Caliburn.Micro port. The same source code was used to build
MvvmFx.DataBinding, a smaller version of the library, that is stripped off of all method binding parts, like Action or Command binding. Note
Caliburn.Micro does not need an implementation of ICommand because it has Actions which are superior to commands in every way, as Rob Eisenberg
puts it.

Project status overview

Updated to Caliburn.Micro 1.5.2+ (latest fixes before BCL port)

MvvmFx.CaliburnMicro CSLA.NET adapter

Targets .NET 4.0 / 4.5 / 4.5.1

Fully documented source code.

Stable development stage.

Four (4) samples are ready, one (1) is published but still in progress.

Old news

Binding tools 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 Windows Forms 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.