You can edit almost every page by Creating an account. Otherwise, see the FAQ.

PureMVC

From EverybodyWiki Bios & Wiki


PureMVC
Original author(s)Clifford Hall
Developer(s)Futurescale, Inc. and the PureMVC Community
Stable release
2.0.4 / August 14, 2008; 15 years ago (2008-08-14)
Written inActionScript, C++, C#, ColdFusion, Dart, Haxe, Java, JavaScript, Objective-C, Perl, PHP, Python, Ruby, Swift, TypeScript
Engine
    Operating systemCross-platform
    TypeFramework
    LicenseBSD 3-clause

    Search PureMVC on Amazon.

    PureMVC is a software framework for creating applications based on the well-established model–view–controller (MVC) design pattern. It 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 major web development platforms. It is free and open-source software released under a BSD 3-clause license.

    Implementations[edit]

    Standard version[edit]

    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[edit]

    This variant 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 one 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 for the movement toward ever-more ambitious Rich Internet Applications which must load and unload large pieces of function at runtime. For instance a PDA application might need to dynamically load and unload modules to manage task list, calendar, email, contacts, and files. The multicore version facilitates unit testing.

    The MultiCore Version Reference Implementation is written in ActionScript 3.

    Ports[edit]

    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, Flash Lite [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 Core, Windows 10, Xamarin, Xbox, Kinect, HoloLens, Surface Neo [5] [6]
    ColdFusion ColdFusion 8 [7]
    Dart Google Dart [8]
    Go Google Go [9] [10]
    Haxe JavaScript, Flash 8, Flash 9, Neko VM, Hashlink VM, PHP, Lua, Python, Actionscript 3, C++, Java, C#, NodeJS [11] [12] [13]
    Java Java Mobile, Standard and Enterprise Editions (ME, SE, EE), JavaFX, Servlets, Applets, and GWT [14] [15]
    JavaScript Browser neutral. Native JavaScript MultiCore port works with all other frameworks. (Previous third-party dependent ports are deprecated). [16]
    Kotlin Android [17]
    Objective-C Apple iPhone and Mac [18]
    Perl Perl 5 [19] [20]
    PHP PHP 5 [21] [22]
    Python Python 2.5 for wxPython, Google App Engine, Pyjs [23] [24] [25]
    Ruby Ruby [26]
    Swift Swift [27] [28]
    TypeScript TypeScript [29] [30]

    External links[edit]


    This article "PureMVC" is from Wikipedia. The list of its authors can be seen in its historical and/or the page Edithistory:PureMVC. Articles copied from Draft Namespace on Wikipedia could be seen on the Draft Namespace of Wikipedia and not main one.