World Library  
Flag as Inappropriate
Email this Article




Developer(s) Futurescale, Inc.
Stable release 2.0.4 / August 14, 2008 (2008-08-14)
Operating system Cross-platform
Type Framework
License CC +Attribution

PureMVC is a framework for creating applications based upon the well-established Model-View-Controller design pattern. The free, open source framework was originally implemented in the ActionScript 3 language for use with Adobe Flex, Flash and AIR, and it has since been ported to nearly all the major web development platforms.


  • Implementation 1
    • Standard version 1.1
    • MultiCore version 1.2
    • Ports 1.3
  • External links 2


Standard version

The Model, View and Controller application tiers are represented by three Singletons (a class of which only one instance may be created).

The MVC Singletons maintain named caches of Proxies, Mediators and Commands, respectively. The Facade, also a Singleton, provides a single interface for communications throughout the application. These four Singletons are referred to as the Core Actors.

  • Data objects, be they local or remote, are managed by Proxies.
  • The View Components that make up the User Interface are managed by Mediators.
  • Commands may interact with Proxies, Mediators, as well as trigger or execute other Commands.

All actors discover and communicate with each other via the Facade, rather than work directly with Model, View and Controller.

PureMVC also introduces a Publish/subscribe-style Observer notification scheme. This allows asynchronous, event-driven communications between the actors of the system, and also promotes a loose coupling between those actors, since the subscriber never needs to have direct knowledge of the publisher.

The Standard Version Reference Implementation is written in ActionScript 3.

MultiCore version

This variation supports modular programming, allowing the use of independent program modules each with their own independent PureMVC 'Core'. A Core is a set of the four main actors used in the Standard framework (Model, View, Controller and Facade). This version of the framework uses Multitons instead of Singletons. Rather than storing a single instance of the class, a Multiton stores a map of instances. Each Core is referenced by an associated Multiton Key.

The MultiCore Version of the framework was developed due to the widespread need for modular support in a world of ever-more ambitious Rich Internet Applications which must load and unload large pieces of functionality at runtime. For instance a PDA application might need to dynamically load and unload modules for managing task list, calendar, email, contacts, and files. The "multicore" version facilitates unit testing.

The MultiCore Version Reference Implementation is written in ActionScript 3.


There are several active PureMVC ports -- implementations for various programming languages, each contributed and supported by PureMVC community members. Each port, in turn supports one or more target development platforms, which cover most major mobile, browser, desktop and server environments.

Language Targets Standard version MultiCore version
ActionScript 2 Flex 1.5, Flash 8, FlashLite [1]
ActionScript 3 Flex 2, Flex 3, Flex 4, Flash 9+, AIR (all versions). Original PureMVC reference implementations [2] [3]
C++ Thread-safe. Compile with: MSVC 8.0/9.0/10.0, MinGW 3.4.5, GNU G++ 4.0, Embarcadero C++ 6.21 (MFC, WTL, wxWidgets, Qt...) [4]
C# .NET 1.0/2.0 Silverlight, Windows Mobile and Pocket PC. [5] [6]
ColdFusion ColdFusion 8 [7]
Dart Google Dart [8]
haXe JavaScript, Flash 8, Flash 9 and the Neko VM. [9] [10]
Java Java Mobile, Standard and Enterprise Editions (ME, SE, EE), JavaFX, Servlets, Applets, and GWT [11] [12]
JavaScript Browser neutral. Native JavaScript MultiCore port works with all other frameworks. (Previous third-party dependent ports are deprecated). [13]
Objective-C Apple iPhone and Mac [14]
Perl Perl 5 [15] [16]
PHP PHP 5 [17] [18]
Python Python 2.5 for wxPython, Google App Engine, Pyjamas [19] [20] [21]
Ruby Ruby [22]
TypeScript TypeScript [23] [24]

External links

  • Official website
  • PureMVC Training at Rich Media Institute
  • Intro To PureMVC on Adobe Edge
  • Understanding the PureMVC Open Source Framework on ActiveTuts+
  • PureMVC Console from Kap Labs
  • The Algorithmist on PureMVC
  • WebORB Integration Server (WebORB for .NET, WebORB for Java, WebORB for PHP) includes PureMVC code generation
  • PureMVC JavaME class diagram
  • on PureMVC
This article was sourced from Creative Commons Attribution-ShareAlike License; additional terms may apply. World Heritage Encyclopedia content is assembled from numerous content providers, Open Access Publishing, and in compliance with The Fair Access to Science and Technology Research Act (FASTR), Wikimedia Foundation, Inc., Public Library of Science, The Encyclopedia of Life, Open Book Publishers (OBP), PubMed, U.S. National Library of Medicine, National Center for Biotechnology Information, U.S. National Library of Medicine, National Institutes of Health (NIH), U.S. Department of Health & Human Services, and, which sources content from all federal, state, local, tribal, and territorial government publication portals (.gov, .mil, .edu). Funding for and content contributors is made possible from the U.S. Congress, E-Government Act of 2002.
Crowd sourced content that is contributed to World Heritage Encyclopedia is peer reviewed and edited by our editorial staff to ensure quality scholarly research articles.
By using this site, you agree to the Terms of Use and Privacy Policy. World Heritage Encyclopedia™ is a registered trademark of the World Public Library Association, a non-profit organization.

Copyright © World Library Foundation. All rights reserved. eBooks from Project Gutenberg are sponsored by the World Library Foundation,
a 501c(4) Member's Support Non-Profit Organization, and is NOT affiliated with any governmental agency or department.