Flex Framework Smackdown

Post on 19-May-2015

2.808 views 2 download

Tags:

description

A talk I gave at FlexCamp OC

Transcript of Flex Framework Smackdown

Code and Slides:http://thillerson.googlecode.com

Flex Framework Smackdown!Tony HillersonSoftware Architect

Saturday, January 31, 2009

Code and Slides:http://thillerson.googlecode.com

Frameworks: The TimesinkWhy isn’t this a solved problem?

Saturday, January 31, 2009

Code and Slides:http://thillerson.googlecode.com

Why?Why?Why?Why Why Why Why Why?

Frameworks: Why?

Saturday, January 31, 2009

Code and Slides:http://thillerson.googlecode.com

Frameworks: Why?

Saturday, January 31, 2009

Code and Slides:http://thillerson.googlecode.com

Frameworks: Why?

Saturday, January 31, 2009

Code and Slides:http://thillerson.googlecode.com

Roll Your Own?

Frameworks: Why?

Saturday, January 31, 2009

Code and Slides:http://thillerson.googlecode.com

Roll Your Own?Go for it!

Frameworks: Why?

Saturday, January 31, 2009

Code and Slides:http://thillerson.googlecode.com

Frameworks are acommon vocabulary

Frameworks: Why?

Saturday, January 31, 2009

Code and Slides:http://thillerson.googlecode.com

CairngormPureMVCSwizMate

Frameworks: Why?

Saturday, January 31, 2009

Code and Slides:http://thillerson.googlecode.com

Frameworks: Judgement DayWhat if your framework were a Breakfast Cereal? Pro Wrestler? Adobe Evangelist? Homestar Runner Character?

Saturday, January 31, 2009

Code and Slides:http://thillerson.googlecode.com

Frameworks: How to compare?

Saturday, January 31, 2009

Code and Slides:http://thillerson.googlecode.com

Frameworks: How to compare?

Saturday, January 31, 2009

Code and Slides:http://thillerson.googlecode.com

Frameworks: How to compare?http://github.com/thillerson/twitteria/

Saturday, January 31, 2009

Code and Slides:http://thillerson.googlecode.com

Frameworks: How to compare?

De gustibus non

disputandum est

Saturday, January 31, 2009

Code and Slides:http://thillerson.googlecode.com

Frameworks: How to compare?

The Most Memorable Framework Discussion Ever

Saturday, January 31, 2009

Code and Slides:http://thillerson.googlecode.com

Frameworks: How to compare?

con·ceit (noun)In literature and poetry, a device of analogy consisting of an extended metaphor.1350–1400; ME conceyte, conceipt, deriv. of conceive by analogy with deceive, deceit and receive, receipt; cf. AF conceite; see concept

Saturday, January 31, 2009

Code and Slides:http://thillerson.googlecode.com

Frameworks: How to compare?

WWII Generals?

Cairngorm

PureMVC

Swiz

Mate

Saturday, January 31, 2009

Code and Slides:http://thillerson.googlecode.com

Frameworks: How to compare?

Presidents?

Cairngorm

PureMVC

Swiz

Mate

Saturday, January 31, 2009

Code and Slides:http://thillerson.googlecode.com

Frameworks: How to compare?

The Most Memorable Framework Discussion Ever

Cairngorm

PureMVC

Swiz

Mate

Roll Your Own!

Saturday, January 31, 2009

Code and Slides:http://thillerson.googlecode.com

Frameworks: How to compare?

Saturday, January 31, 2009

Code and Slides:http://thillerson.googlecode.com

Frameworks: How to compare?

Without further ado,Four Flex Frameworksas Superheroes

Saturday, January 31, 2009

Code and Slides:http://thillerson.googlecode.com

Cairngorm: Mr. Fantastic

Saturday, January 31, 2009

Code and Slides:http://thillerson.googlecode.com

Frameworks: Cairngorm

Characteristics:• Singleton Model accessed through a ModelLocator• Views bind to model• Command pattern• Events correspond to Commands• Its own event dispatching system

Saturday, January 31, 2009

Code and Slides:http://thillerson.googlecode.com

Frameworks: Cairngorm

Saturday, January 31, 2009

Code and Slides:http://thillerson.googlecode.com

PureMVC: Doc Ock

Saturday, January 31, 2009

Code and Slides:http://thillerson.googlecode.com

Frameworks: PureMVC

Characteristics:• No dependency on the Flex framework• No framework objects in views• A Mediator controls views and listens for view events• Views dispatch regular Actionscript Events, but it has

its own internal event dispatching (Noti!cations)

Saturday, January 31, 2009

Code and Slides:http://thillerson.googlecode.com

Frameworks: PureMVC

Saturday, January 31, 2009

Code and Slides:http://thillerson.googlecode.com

Swiz: Wolverine

Saturday, January 31, 2009

Code and Slides:http://thillerson.googlecode.com

Frameworks: Swiz

Characteristics:• Inversion of Control to inject framework objects• Use of [Metadata] to con!gure framework• Two-way communication between views and

controllers• Dynamic Commands

Saturday, January 31, 2009

Code and Slides:http://thillerson.googlecode.com

Frameworks: Swiz

Saturday, January 31, 2009

Code and Slides:http://thillerson.googlecode.com

Mate: Batman

Saturday, January 31, 2009

Code and Slides:http://thillerson.googlecode.com

Frameworks: Mate

Characteristics:• Inversion of Control to inject data into views• Actionscript Events only!• Framework con!guration is all MXML

Saturday, January 31, 2009

Code and Slides:http://thillerson.googlecode.com

Frameworks: Mate

Saturday, January 31, 2009

Code and Slides:http://thillerson.googlecode.com

Frameworks: FinaleCairngorm

PureMVC

SwizMate

Saturday, January 31, 2009

Code and Slides:http://thillerson.googlecode.comCairngorm:

Mr. Fantastic• Pretty "exible• No matter how hard you pull,

you can’t break it apart

Saturday, January 31, 2009

Code and Slides:http://thillerson.googlecode.com

Frameworks: Cairngorm

I Like:• Commands• Delegates• Self dispatching events

I Don’t Like:• Singleton (by popular demand)• Hard Wiring• Testability

Saturday, January 31, 2009

Code and Slides:http://thillerson.googlecode.comPureMVC:

Doc Ock• Ignore the villain part• Very Smart• There’s a whole lot of “arms”

Saturday, January 31, 2009

Code and Slides:http://thillerson.googlecode.com

Frameworks: PureMVC

I Like:• Separation of Concerns• Mediators

I Don’t Like:• Unwieldy and Large• Too many moving parts• Hand wiring• No Flex dependency

Saturday, January 31, 2009

Code and Slides:http://thillerson.googlecode.comSwiz:

Wolverine• Pragmatic• Razor sharp

Saturday, January 31, 2009

Code and Slides:http://thillerson.googlecode.com

Frameworks: Swiz

I Like:• IOC!!• Using Metadata

I Don’t Like:• Big Controllers (I’d rather have commands)• Not easy to use the regular command pattern• Still (some) self event dispatching

Saturday, January 31, 2009

Code and Slides:http://thillerson.googlecode.com

Mate: Batman

• Lots of tools• Stealthy• The Bat Signal!

Saturday, January 31, 2009

Code and Slides:http://thillerson.googlecode.com

Frameworks: Mate

I Like:• IOC!!• Flex con!guring Flex• Lots of tools

I Don’t Like:• Some tag names are not that memorable

Saturday, January 31, 2009

Code and Slides:http://thillerson.googlecode.com

Cairngorm

PureMVC

SwizMate

Flex Framework Smackdown!

Saturday, January 31, 2009

Code and Slides:http://thillerson.googlecode.com

Frameworks: Thank you!

http://slideshare.com/thillersonhttp://github.com/thillersonhttp://insideria.com

http://EffectiveUI.com

Tony HillersonSoftware Architect

Saturday, January 31, 2009