1. Code and Slides:
http://thillerson.googlecode.com
Flex Framework Smackdown!
Tony Hillerson
Software Architect
Saturday, January 31, 2009
2. Code and Slides:
http://thillerson.googlecode.com
Frameworks: The Timesink
Why isn’t this a solved problem?
Saturday, January 31, 2009
3. Frameworks: Why?
Code and Slides:
http://thillerson.googlecode.com
Why?
Why?
Why?
Why Why Why Why Why?
Saturday, January 31, 2009
4. Frameworks: Why?
Code and Slides:
http://thillerson.googlecode.com
Saturday, January 31, 2009
5. Frameworks: Why?
Code and Slides:
http://thillerson.googlecode.com
Saturday, January 31, 2009
6. Frameworks: Why?
Code and Slides:
http://thillerson.googlecode.com
Roll Your Own?
Saturday, January 31, 2009
7. Frameworks: Why?
Code and Slides:
http://thillerson.googlecode.com
Roll Your Own?
Go for it!
Saturday, January 31, 2009
8. Frameworks: Why?
Code and Slides:
http://thillerson.googlecode.com
Frameworks
are a
common
vocabulary
Saturday, January 31, 2009
9. Frameworks: Why?
Code and Slides:
http://thillerson.googlecode.com
Cairngorm
PureMVC
Swiz
Mate
Saturday, January 31, 2009
10. Code and Slides:
http://thillerson.googlecode.com
Frameworks: Judgement Day
What if your framework were a Breakfast Cereal?
Pro Wrestler?
Adobe Evangelist?
Homestar Runner Character?
Saturday, January 31, 2009
11. Frameworks: How to compare?
Code and Slides:
http://thillerson.googlecode.com
Saturday, January 31, 2009
12. Frameworks: How to compare?
Code and Slides:
http://thillerson.googlecode.com
Saturday, January 31, 2009
13. Frameworks: How to compare?
http://github.com/thillerson/twitteria/
Code and Slides:
http://thillerson.googlecode.com
Saturday, January 31, 2009
14. Frameworks: How to compare?
Code and Slides:
http://thillerson.googlecode.com
De gustibus
non
disputandum
est
Saturday, January 31, 2009
15. Frameworks: How to compare?
Code and Slides:
http://thillerson.googlecode.com
The Most Memorable
Framework Discussion Ever
Saturday, January 31, 2009
16. Frameworks: How to compare?
Code and Slides:
http://thillerson.googlecode.com
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
17. Frameworks: How to compare?
Cairngorm
Code and Slides:
PureMVC
http://thillerson.googlecode.com
WWII
Generals?
Swiz
Mate
Saturday, January 31, 2009
18. Frameworks: How to compare?
Cairngorm
Code and Slides:
http://thillerson.googlecode.com
PureMVC
Presidents?
Swiz
Mate
Saturday, January 31, 2009
19. Frameworks: How to compare?
Swiz
Code and Slides:
http://thillerson.googlecode.com
Mate
The Most Memorable
Framework Discussion Ever
Cairngorm
Roll Your Own!
PureMVC
Saturday, January 31, 2009
20. Frameworks: How to compare?
Code and Slides:
http://thillerson.googlecode.com
Saturday, January 31, 2009
21. Frameworks: How to compare?
Code and Slides:
http://thillerson.googlecode.com
Without further ado,
Four Flex Frameworks
as Superheroes
Saturday, January 31, 2009
22. Code and Slides:
http://thillerson.googlecode.com
Cairngorm:
Mr. Fantastic
Saturday, January 31, 2009
23. Frameworks: Cairngorm
Code and Slides:
Characteristics:
http://thillerson.googlecode.com
• 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
24. Frameworks: Cairngorm
Code and Slides:
http://thillerson.googlecode.com
Saturday, January 31, 2009
25. Code and Slides:
http://thillerson.googlecode.com
PureMVC:
Doc Ock
Saturday, January 31, 2009
26. Frameworks: PureMVC
Code and Slides:
Characteristics:
http://thillerson.googlecode.com
• 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
27. Frameworks: PureMVC
Code and Slides:
http://thillerson.googlecode.com
Saturday, January 31, 2009
28. Code and Slides:
http://thillerson.googlecode.com
Swiz:
Wolverine
Saturday, January 31, 2009
29. Frameworks: Swiz
Code and Slides:
Characteristics:
http://thillerson.googlecode.com
• 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
30. Frameworks: Swiz
Code and Slides:
http://thillerson.googlecode.com
Saturday, January 31, 2009
31. Code and Slides:
http://thillerson.googlecode.com
Mate:
Batman
Saturday, January 31, 2009
32. Frameworks: Mate
Code and Slides:
Characteristics:
http://thillerson.googlecode.com
• Inversion of Control to inject data into views
• Actionscript Events only!
• Framework con guration is all MXML
Saturday, January 31, 2009
33. Frameworks: Mate
Code and Slides:
http://thillerson.googlecode.com
Saturday, January 31, 2009
34. Frameworks: Finale PureMVC
Cairngorm
Code and Slides:
http://thillerson.googlecode.com
Mate
Swiz
Saturday, January 31, 2009
35. Code and Slides:
Cairngorm:
http://thillerson.googlecode.com
Mr. Fantastic
• Pretty exible
• No matter how hard you pull,
you can’t break it apart
Saturday, January 31, 2009
36. Frameworks: Cairngorm
I Like:
• Commands Code and Slides:
•http://thillerson.googlecode.com
Delegates
• Self dispatching events
I Don’t Like:
• Singleton (by popular demand)
• Hard Wiring
• Testability
Saturday, January 31, 2009
37. Code and Slides:
http://thillerson.googlecode.com
PureMVC:
Doc Ock
• Ignore the villain part
• Very Smart
• There’s a whole lot of “arms”
Saturday, January 31, 2009
38. Frameworks: PureMVC
I Like:
Code and Slides:
• Separation of Concerns
•http://thillerson.googlecode.com
Mediators
I Don’t Like:
• Unwieldy and Large
• Too many moving parts
• Hand wiring
• No Flex dependency
Saturday, January 31, 2009
39. Code and Slides:
http://thillerson.googlecode.com
Swiz:
Wolverine
• Pragmatic
• Razor sharp
Saturday, January 31, 2009
40. Frameworks: Swiz
I Like:
Code and Slides:
• IOC!!
•http://thillerson.googlecode.com
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
41. Mate:
Batman and Slides:
Code
• Lots of tools
http://thillerson.googlecode.com
• Stealthy
• The Bat Signal!
Saturday, January 31, 2009
42. Frameworks: Mate
I Like:
Code and Slides:
• IOC!!
•http://thillerson.googlecode.com
Flex con guring Flex
• Lots of tools
I Don’t Like:
• Some tag names are not that memorable
Saturday, January 31, 2009
43. Flex Framework Smackdown!
PureMVC
Cairngorm
Code and Slides:
http://thillerson.googlecode.com
Mate
Swiz
Saturday, January 31, 2009
44. Frameworks: Thank you!
Tony Hillerson
Code and Slides:
Software Architect
http://thillerson.googlecode.com
http://slideshare.com/thillerson
http://github.com/thillerson
http://insideria.com
http://EffectiveUI.com
Saturday, January 31, 2009