This project has moved and is read-only. For the latest updates, please go here.

Project Description
AppCan enhances Prism by offering a thin application framework and compositing capability around what prism provides.  i.e. Document management (i.e. Models/Containers), Menu/toolbar merging, local region managers, standardized regions, view model extensions and more.  Prism standards use a single unity container meaning all interfaces must be unique in a global container.  AppCan supports multiple containers (contexts) so generic interfaces can be used.   Prism standards use a single global region manager, requiring region names to be unique.  AppCan supports local region managers so region names can be re-used allowing for better decoupling and abstraction.  And much more...

Application Conceptual Model

Intended Audience

Software Developers building WPF applications.  AppCan adds additional patterns and practices to Prism to offer a more complete compositing/application framework experience.


Other projects includes

Current version of AppCan includes Prism 4.1, and Log4Net


Libraries can be downloaded from here

Learn about AppCan classes/functionality


  •  More complete compositing/application framework, providing good base functionalities for standard application implementations
  •  Support better decoupling between classes i.e. views, viewmodels, etc. (i.e. not requiring specific interfaces/types to be known for all classes/view models used)
  •  Support better/easier compositing of modules, classes, views, etc.
  •  Provide better encapsulation by localizing regions and services/classes to avoid single global repositories
  • Keep in mind garbage collections to try to reduce the need for garbage collections during runtime


AppCan allows developers to put the pieces of Prism together more cleanly/and easily. It allows for logically associating ViewContainers, Views and View models.

AppCan enhances prism by supporting Contexts that wrap together Windows, their views, their region managers and their view models, along with any other classes you might need.

AppCan reduces the need for specific dependencies/types, allowing modules and code to register requests for generic Views, ViewContainer and ViewModel interfaces without needing to know specific types from other modules. By separating Views and View Models into their own contexts the specific types no longer matter and generic interfaces can be used for the View and the View model.
AppCan solves the problem of supporting locally scoped region managers, by implementing a pattern/framework to support it.

AppCan allows for easily enhancing/replacing windows, views, viewmodels, etc. Allowing for extending/enhancing existing windows/views more easily.

AppCan view model extensions allow adding objects to be referenced by the existing view model so you can add functionality to views without needing to rewrite the existing view model class, just extend it by adding your own extension object you can bind to from the view.

AppCan allows you to Merge menu's from modules into your main shell!

Model support: You’ve heard MVVM but implementations for Model’s has been mostly left to be individually recreated for every application. AppCan supports a simple framework to build upon.

Included in the current version is:
Prism 4.1

Learn about AppCan classes/functionality

Last edited Jun 5, 2013 at 3:49 AM by davesspacebar, version 25