Jump to content

List of Flex frameworks

From Wikipedia, the free encyclopedia

This is an old revision of this page, as edited by Wonderfl (talk | contribs) at 07:48, 24 December 2014 (create page based on merged content from Apache Flex, Cairngorm (Flex framework), Granite data services and PureMVC). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

(diff) ← Previous revision | Latest revision (diff) | Newer revision → (diff)

Template:New unreviewed article Flex frameworks are software libraries that assist developers in building rich internet applications on the Apache Flex platform.

List

Granite Data Services

Granite Data Services
Initial release2007; 17 years ago (2007)
Stable release
3.0.1 GA / January 9, 2014; 10 years ago (2014-01-09)
Preview release
3.0.1 GA / December 24, 2013; 10 years ago (2013-12-24)
Written inJavaFX, Flex, Android SDK
PlatformPlatform independent
LicenseLGPL 2.1, GPL 3
Websitewww.graniteds.org

Granite Data Services (GraniteDS or GDS) is an event-driven, cross-framework, Application Client Container (ACC). It aims at greatly simplifying the development of RIA applications through client-side data management, real-time messaging, transparent lazy-loading, paged queries, code generation and other features.

The entire framework is open-source, but commercial use of some "advanced modules" requires a commercial licence.[1]

Supported Client Frameworks

Cairngorm

Cairngorm is one of the primary open source frameworks for application architecture in Adobe Flex. It was developed by iteration::two, which was acquired by Macromedia in 2005. It is part of the Adobe Engagement Platform. Adobe Labs features Cairngorm as the architectural framework for Rich Internet Application programmers.

Cairngorm is based on the MVC model. It is specifically designed to facilitate complex state and data synchronization between the client and the server, while keeping the programming of the View layer detached from the data implementation.

The role of the View layer in a Cairngorm application is to throw events and bind to data stored in the Model. Components on the View can bind to Value Objects or other properties in the Model (data) layer.

In a Cairngorm Model, related data are stored in Value Objects (VOs), while simple variables can be stored as direct properties of the ModelLocator class. A static reference to the ModelLocator singleton instance is used by the View layers to locate the required data.

The Controller is the most sophisticated part of the Cairngorm architecture. The Controller layer is implemented as a singleton FrontController. The FrontController instance, which receives every View-generated event, dispatches the events to the assigned Command class based on the event's declared type.

The Command class then processes the event by running the Command class' execute() method, which is an ICommand interface method. The event object may include additional data if required by the developer. The execute() method can update the central Model, as well as invoke a Service class which typically involves communication with a remote server. The IResponder interface, which is also implemented by the Command class, includes onResult and onFault methods to handle responses returned from the invoked remote service.

A Cairngorm application can be programmed to manage any server architecture/schemas.

PureMVC

PureMVC
Developer(s)Futurescale, Inc.
Stable release
2.0.4 / August 14, 2008 (2008-08-14)
Operating systemCross-platform
TypeFramework
LicenseCC +Attribution
Websitepuremvc.org

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.

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.

Ports

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]

References

  1. ^ "Happy New Year 2014 and GraniteDS 3.0.1.GA". Retrieved 2014-02-12.