It is proposed that this article be deleted because of the following concern:
If you can address this concern by improving, copyediting, sourcing, renaming, or merging the page, please edit this page and do so. You may remove this message if you improve the article or otherwise object to deletion for any reason. Although not required, you are encouraged to explain why you object to the deletion, either in your edit summary or on the talk page. If this template is removed, do not replace it . ContentsThe article may be deleted if this message remains in place for seven days, i.e., after 14:39, 8 April 2024 (UTC). Find sources: "PureMVC" – news · newspapers · books · scholar · JSTOR Nominator: Please consider notifying the author/project: {{ subst:proposed deletion notify |PureMVC|concern=Fails [[WP:NSOFT]]}} ~~~~ |
![]() | |
Original author(s) | Clifford Hall |
---|---|
Developer(s) | Futurescale, Inc. and the PureMVC Community |
Stable release | 2.0.4 / August 14, 2008 |
Written in | ActionScript, C++, C#, ColdFusion, Dart, Haxe, Java, JavaScript, Objective-C, Perl, PHP, Python, Ruby, Swift, TypeScript |
Operating system | Cross-platform |
Type | Framework |
License | BSD 3-clause |
Website | puremvc![]() |
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.
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.
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.
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.
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 | ||
ActionScript 3 | Flex 2, Flex 3, Flex 4, Flash 9+, AIR (all versions). Original PureMVC reference implementations | ||
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...) | ||
C# | .NET Core, Windows 10, Xamarin, Xbox, Kinect, HoloLens, Surface Neo | ||
ColdFusion | ColdFusion 8 | ||
Dart | Google Dart | ||
Go | Google Go | ||
Haxe | JavaScript, Flash 8, Flash 9, Neko VM, Hashlink VM, PHP, Lua, Python, Actionscript 3, C++, Java, C#, NodeJS | ||
Java | Java Mobile, Standard and Enterprise Editions (ME, SE, EE), JavaFX, Servlets, Applets, and GWT | ||
JavaScript | Browser neutral. Native JavaScript MultiCore port works with all other frameworks. (Previous third-party dependent ports are deprecated). | ||
Kotlin | Android | ||
Objective-C | Apple iPhone and Mac | ||
Perl | Perl 5 | ||
PHP | PHP 5 | ||
Python | Python 2.5 for wxPython, Google App Engine, Pyjs | ||
Ruby | Ruby | ||
Swift | Swift | ||
TypeScript | TypeScript |
Cocoa is Apple's native object-oriented application programming interface (API) for its desktop operating system macOS.
Model_view_controller (MVC) is a software design pattern commonly used for developing user interfaces that divides the related program logic into three interconnected elements. These elements are the internal representations on information, the interface that presents information to and accepts it from the user, and the controller software linking the two.
ASP.NET is a server-side web-application framework designed for web development to produce dynamic web pages. It was developed by Microsoft to allow programmers to build dynamic web sites, applications and services. The name stands for Active Server Pages Network Enabled Technologies.
A web framework (WF) or web application framework (WAF) is a software framework that is designed to support the development of web applications including web services, web resources, and web APIs. Web frameworks provide a standard way to build and deploy web applications on the World Wide Web. Web frameworks aim to automate the overhead associated with common activities performed in web development. For example, many web frameworks provide libraries for database access, templating frameworks, and session management, and they often promote code reuse. Although they often target development of dynamic web sites, they are also applicable to static websites.
The Spring Framework is an application framework and inversion of control container for the Java platform. The framework's core features can be used by any Java application, but there are extensions for building web applications on top of the Java EE platform. The framework does not impose any specific programming model.. The framework has become popular in the Java community as an addition to the Enterprise JavaBeans (EJB) model. The Spring Framework is free and open source software.
The Graphical Editing Framework(GEF) is an Eclipse project that provides framework and end-user components related to graphical applications.
ASP.NET MVC is a web application framework developed by Microsoft that implements the model–view–controller (MVC) pattern. It is no longer in active development. It is open-source software, apart from the ASP.NET Web Forms component, which is proprietary.
The front controller software design pattern is listed in several pattern catalogs and is related to the design of web applications. It is "a controller that handles all requests for a website," which is a useful structure for web application developers to achieve flexibility and reuse without code redundancy.
Web2py is an open-source web application framework written in the Python programming language. Web2py allows web developers to program dynamic web content using Python. Web2py is designed to help reduce tedious web development tasks, such as developing web forms from scratch, although a web developer may build a form from scratch if required.
ZK is an open-source Ajax Web application framework, written in Java, that enables creation of graphical user interfaces for Web applications with little required programming knowledge.
Model–view–viewmodel (MVVM) is an architectural pattern in computer software that facilitates the separation of the development of a graphical user interface —be it via a markup language or GUI code—from the development of the business logic or back-end logic such that the view is not dependent upon any specific model platform.
ColdBox is a free, open-source, conventions-based, modular web application framework intended for building enterprise applications with ColdFusion (CFML) using a Hierarchical MVC approach.
The Colony Framework is an open source plugin framework specification. Implementations of the specification offer a runtime component model, that allows for plugins to be installed, started, stopped, updated and uninstalled without requiring the application container to be stopped. The specification relies heavily on the Inversion of control principle, in order to make it easier for application components to discover and interact with each other.
AngularJS is a discontinued free and open-source JavaScript-based web framework for developing single-page applications. It was maintained mainly by Google and a community of individuals and corporations. It aimed to simplify both the development and the testing of such applications by providing a framework for client-side model–view–controller (MVC) and model–view–viewmodel (MVVM) architectures, along with components commonly used in web applications and progressive web applications.
Mojito is an environment agnostic, Model-View-Controller (MVC) web application framework. It was designed by Ric Allinson.
MontageJS is an open-source JavaScript framework for building scalable single-page applications. It aims to simplify the development and maintainability of expressive HTML5 applications by employing native application frameworks. With Montage, developers can build and extend reusable user interface components and modules, bind properties among components and controllers, and synchronise DOM updates to ensure a smooth user experience, especially on resource-constrained devices.
Gyroscope is an open-source PHP framework and a code template system for building web backend systems. Gyroscope uses a specific and yet flexible user interaction model to reveal and explore the inner-relations of a database.
ASP.NET Web Forms is a web application framework and one of several programming models supported by the Microsoft ASP.NET technology. Web Forms applications can be written in any programming language which supports the Common Language Runtime, such as C# or Visual Basic. The main building blocks of Web Forms pages are server controls, which are reusable components responsible for rendering HTML markup and responding to events. A technique called view state is used to persist the state of server controls between normally stateless HTTP requests.
Pattern-Oriented Software Architecture is a series of software engineering books describing software design patterns.