Partilhar via


MVVM Frameworks

Cinch

  • Author: Sacha Barber
  • Silverlight support: no
  • Documentation: excellent, 6 articles published on CodeProject
  • Hosting : CodePlex
  • License:  Code Project Open License
  • Features:
    • attached behaviors
    • validation suing IDataErrorInfo
    • support for IEditableObject
    • weak events creation and subscription
    • mediator messaging using weak events
    • IOC/DI support (using Unity)
    • services: event logger, message box, open save dialog, popup
    • threading helpers
    • support for menu items
    • closeable viewmodels
    • MVVM code generator

MVVM Light Toolkit

  • Author: Laurent Bugnion
  • Silverlight support: yes
  • Documentation: many articles available on Laurent’s blog + other developers as well
  • Hosting: personal website
  • License: use, copy, modify, and/or distribute and keep the copyright!
  • Features:
    • MSI installer
    • VS project and item template
    • VS code snippets
    • Messenger system for inter-viewmodel communication

MVVM Helpers

  • Author: Mark Smith
  • Silverlight support: no
  • Documentation: some articles on Mark’s blog
  • Hosting: personal website
  • License: not defined
  • Features:
    • attached behaviors
    • viewmodel creation using markup extension
    • attributes based validation
    • IOC/DI using ServiceProvider approach
    • closeable viewmodel
    • wait cursor (using new WaitCursor() { // your code here })

MVVM Foundation

  • Author: Josh Smith
  • Silverlight support: no
  • Documentation: articles about the Messenger implementation on Josh or Marlon Grech’s blog
  • Hosting: CodePlex
  • License: MS-PL
  • Features:
    • Messenger system for inter-viewmodel communication
    • PropertyChanged event monitor

Caliburn

  • Author: Rob Eisenberg
  • Silverlight support: yes
  • Documentation: complete online documentation available
  • Hosting: CodePlex https://www.codeplex.com/caliburn
  • License: Blue Spire Consulting license (use, copy, modify, and/or distribute and keep the copyright!)
  • Features:
    • commands are built on top of Actions and thus share many of the same features, including multiple input parameters, filters and automatic asynchronous execution
    • presenters that handles UI lifecycle issue such as handling activation, deactivation and shutdown semantics for various UI components
    • Caliburn applications are fully testable
    • various utilities such as a background task manager

Onyx

  • Author: William e Kempf
  • Silverlight support: dd
  • Documentation: basic introduction available on CodePlex
  • Hosting: CodePlex
  • License: not specified
  • Features:
    • ServiceLocator pattern
    • ViewModel creation using a custom markup extension
    • UI related services such as IDisplayMessage

Calcium

  • Author: Daniel Vaughan
  • Silverlight support: dd
  • Documentation: 2 very detailed articles on CodeProject (part1 and part2)
  • Hosting: CodePlex
  • License: use, copy, modify, and/or distribute and keep the copyright!
  • Features:
    • Module Manager for enabling or disabling of modules at runtime
    • messaging services for interacting with the user from the client or server using the same API
    • Command Service to associate WPF ICommands with content interfaces that only become active when an active view or viewmodel implements the interface
    • Region Adapters for ToolBars and Menus
    • Client-server logging ready to work out-of-the-box
    • Includes modules, such as a Web Browser, Text Editor, Output Window, and many more
    • Tabbed interface with dirty file indication (reusable across modules)

nRoute

  • Author: Rishi
  • Silverlight support: yes
  • Documentation: many articles available on author’s blog (see CodePlex project home page for the links)
  • Hosting: CodePlex
  • License: MS-PL
  • Features:
    • support Blend3 behaviors and triggers models
    • resource locator framework
    • view services: OpenFileDialog, ShowMessage…
    • uses attributes to map View and ViewModel together

Nito MVVM

  • Author: Shammah
  • Silverlight support: no
  • Documentation: no
  • Hosting: CodePlex
  • License: not specified
  • Features:
    • various MVVM friendly implementations of the ICommand interface

Ocean

  • Author: Karl Shifflet
  • Silverlight support: no
  • Documentation: articles available on Karl’s blog
  • Hosting: personal website
  • License: not specified
  • Features:
    • written in VB.Net
    • attribute based validation
    • viewmodel base classes: relaycommand, closeableviewmodel…
    • SQL server data access layer

Basic MVVM framework

  • Author: Lester Lobo
  • Silverlight support: no
  • Documentation: sample application available with the library
  • Hosting: CodePlex
  • License: MS-PL
  • Features:
    • delegating Commands\Keybinding
    • messaging between VM’s
    • handling events as commands with attached behaviors
    • handling dialogs (and more) as services
    • VS code snippets

GoodLight

  • Author: Peter O’Hanlon
  • Silverlight support: yes
  • Documentation: sample application available with the library
  • Hosting: CodePlex
  • License: MS-PL
  • Features:
    • “workspace” management (set of document that can be closed)
    • skin support
    • messaging between VM’s