How to architect a Flex application ?
Key Feature of a good Flex application are:
Frameworks:
Key Feature of a good Flex application are:
- easy maintainability,
- extensible and
- re usability
- Instead of a single monolithic interface, break up the interface into separate views (that are typically separate MXML components);
- build collections of independent, loosely coupled components that define and broadcast custom events that the rest of the application can then listen for and respond to.
- organize your data, logic, views and notifications, or by using one of the many microarchitectures, including Cairngorm, PureMVC, Parsley, Mate or Swiz.
Frameworks:
1.Caringorm - An open-source micro-architecture (collection of design patterns) for Flex developers.
2.PureMVC - PureMVC is a framework for creating applications based upon the well-established Model, View and Controller design pattern.
3.Model-Glue : Flex -
Model-Glue: Flex brings implicit invocation, Model-View-Controller design, and cleaner, less repetitive integration with backend services to Flex 2.0 and AIR applications.
4.Foundry - quick an easy framework for Flex 3 development
5.Guasax Flex Framework - Guasax is an ease of use programming framework which provides the creation of an ordered and scalable application with Adobe Flex. Lifecycle of guasax framework is based in the MVC pattern to take on our program actions. Guasax framework helps you to maintain your business logic tier highly decopled from your presentation logic tier. Guasax takes reflection and introspection techniques as well as IoC pattern to execute the operations which we have pointed at and to make a decision about itselves.
6. ARP - ARP currently supports Macromedia® Flash® and Flex™-based RIA Development in ActionScript 2 and ActionScript 3. ARP is designed to be simple to use and lightweight.
7. Flest Framework - Flest is an ActionScript3 / Flex application framework for building enterprise level RIAs. It uses such design pattern as Controller, Factory, Command, etc. High efficiency, simplicity and practicality were set as its mandatory design features.
8.Mate - Mate is a tag-based, event-driven Flex framework. Flex applications are event-driven. Mate framework has been created to make it easy to handle the events your Flex application creates. Mate allows you to define who is handling those events, whether data needs to be retrieved from the server, or other events need to be triggered. In addition, Mate provides a mechanism for dependency injection to make it easy for the different parts of your application to get the data and objects they need.
9.Swiz - Swiz is a framework for Adobe Flex that aims to bring complete simplicity to RIA development. Swiz provides Inversion of Control, event handing, and simple life cycle for asynchronous remote methods. In contrast to other major frameworks for Flex, Swiz imposes no JEE patterns on your code, no repetitive folder layouts, and no boilerplate code on your development. Swiz represents best practices learned from the top RIA developers at some of the best consulting firms in the industry, enabling Swiz to be simple, lightweight, and extremely productive.
10.Penne Framework - The Penne Framework is a light weight framework used for enterprise Adobe Flex 3 Applications.
11.Gaia - is an open-source front-end Flash Framework for AS2/3 designed to reduce development time.
12.robotlegs - Robotlegs is a pure AS3 micro-architecture (framework) with a light footprint and limited scope. Simply put, Robotlegs is there to help you wire your objects together. It provides the glue that your application needs to easily function in a decoupled way. Through the use of automated metadata based dependency injection Robotlegs removes boilerplate code in an application. By promoting loose coupling and avoiding the use of Singletons and statics in the framework Robotlegs can help you write code that is highlytestable.
13.thin-red-line - This is an extension of the Cairngorm Flex framework created to address all the issues not covered by Adobe. The source code contains both the actual framework and a very simple Flex app demonstrating how the whole thing works.
14. flex-slide - Slide is an application framework for projects built in Flex 2 or 3.
Key features:
15. dunelox - Dunelox is a library of components and utilities to implement Flex applications designed around Conversations.
16. mainline-flex - Mainline is a simple Dependency Injection / IoC framework for Adobe Flex, Air, and ActionScript. It does what it needs to, but otherwise stays out of your way.
17. Parsley is an application framework for Flex/Flash/AIR applications written in AS3.
Spicelib is a suite of independent AS3 libraries that Parsley builds upon, but that can also be used separately.
Parsley features:
- Uses familiar design patterns
- Robust MVC structure
- View state management decoupled from view implementation
- Flexible approach to model and controller access, eliminating need for singleton classes.
- Separate view presentation from view functionality
- Incorporated debugging and development tools
- Helps with project planning through visual design to production
- Increases the proportion of your codebase that is easily testable
- Makes dependencies transparent (appropriate abstraction and decoupling, not unhelpful indirection)
- Plays to Flex's strengths, reducing the quantity of code
- Encourages convention, but does not depend on it
- Simplifies view management
15. dunelox - Dunelox is a library of components and utilities to implement Flex applications designed around Conversations.
16. mainline-flex - Mainline is a simple Dependency Injection / IoC framework for Adobe Flex, Air, and ActionScript. It does what it needs to, but otherwise stays out of your way.
17. Parsley is an application framework for Flex/Flash/AIR applications written in AS3.
Spicelib is a suite of independent AS3 libraries that Parsley builds upon, but that can also be used separately.
Parsley features:
- Flexible IOC Container: Supports configuration with AS3 Metadata, MXML, XML files, ActionScript
- Dependency Injection: Injection by type or id - for constructors, methods or properties
- Decoupled Bindings: Bindings where source and target are fully decoupled, based on a publish/subscribe mechanism
- Messaging Framework: Fully decoupled senders and receivers, can serve as a basis for MVC architectures
- Dynamic View Wiring: Easily wire Flex components to objects declared in the container
- Advanced container features: Asynchronously initializing objects, object lifecycle, modular configuration contexts
- Integration with Flex Modules: Allows configuration to be loaded and unloaded alongside Flex Modules
- Localization: Integrates with Flex ResourceManager for Flex Applications, contains its own Localization Framework for Flash Applications
- Extensibility: Easily create your own configuration tags, a single implementation can be used as AS3 Metadata, MXML or XML tag
- And much more...
I have added brief descriptions of each of the frameworks and the link to its homepage. Keep sharing your experience about your usage of different Flex frameworks...
ReplyDelete