everything you always wanted to know about flex* *but were afraid to ask brian genisio

28
Everything you always wanted to know about flex* *BUT WERE AFRAID TO ASK Brian Genisio

Post on 21-Dec-2015

217 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Everything you always wanted to know about flex* *BUT WERE AFRAID TO ASK Brian Genisio

Everything you always wanted to know about flex*

*BUT WERE AFRAID TO ASK

Brian Genisio

Page 2: Everything you always wanted to know about flex* *BUT WERE AFRAID TO ASK Brian Genisio

What is Flex?

How does it compare to Silverlight/WPF?

What can we learn by studying both?

Page 3: Everything you always wanted to know about flex* *BUT WERE AFRAID TO ASK Brian Genisio

It Is OK To Be Curious!

Page 4: Everything you always wanted to know about flex* *BUT WERE AFRAID TO ASK Brian Genisio

Take Both Pills!

Page 5: Everything you always wanted to know about flex* *BUT WERE AFRAID TO ASK Brian Genisio

What Can Flex Do?

Page 6: Everything you always wanted to know about flex* *BUT WERE AFRAID TO ASK Brian Genisio

Toolset Overview

Silverlight ApplicationXAML/C#/VB.NET/F#/etc

Flex ApplicationMXML/ActionScript

SilverlightSDK

Silverlight RuntimeFlash Player

Flex SDK

Managed CodeResourcesCompiled AS3

Page 7: Everything you always wanted to know about flex* *BUT WERE AFRAID TO ASK Brian Genisio

Runtime OverviewBrowser

Flash Player Silverlight Runtime

Desktop

Silverlight Out Of

BrowserAir Player

iOS Android Blackberry Windows Phone 7

App 10001010

Air Player

Air Player

Silverlight Runtime

Flash Player in Browser

Air Player ?

Page 8: Everything you always wanted to know about flex* *BUT WERE AFRAID TO ASK Brian Genisio

Side-By-Side

Page 9: Everything you always wanted to know about flex* *BUT WERE AFRAID TO ASK Brian Genisio

Declarative Story

• Flex– MXML– Flex Builder– Catalyst

• Silverlight• XAML• Visual Studio• Expression Blend

Page 10: Everything you always wanted to know about flex* *BUT WERE AFRAID TO ASK Brian Genisio

Imperative Story

• Flex– ActionScript 3– Haxe– C/C++ Alchemy– Converters

• Java• C#

• Silverlight• C#• VB.Net• F#• Ruby• Python

Page 11: Everything you always wanted to know about flex* *BUT WERE AFRAID TO ASK Brian Genisio

Primary Language

• ActionScript 3.0– Dynamic by

default– Static by option– Classes/Interfaces– MetaData Tags– Quazi-Generics– XML Literals

• C#• Static by default• Dynamic by option• Classes/Interfaces• Attributes• Lambdas• Generics

Page 12: Everything you always wanted to know about flex* *BUT WERE AFRAID TO ASK Brian Genisio

Integrated Development Environments (IDEs)

• Flash Builder– Designer– Refactoring tools

• JetBrains IDEA• FlashDevelop• Tofino• Command line

• Visual Studio• Designer• Refactoring tools• Rich plug-ins

• Mono Develop• Sharp Develop• Command line

Page 13: Everything you always wanted to know about flex* *BUT WERE AFRAID TO ASK Brian Genisio

SDKs & Toolkits

• Flex– Flex SDK– FlexLib– Cairgnorm– Robotlegs– Mockito– FlexUnit

• Silverlight• Silverlight SDK• Silverlight Toolkit• Prism• MEF• Moq• NUnit

Page 14: Everything you always wanted to know about flex* *BUT WERE AFRAID TO ASK Brian Genisio

Design

• Flex– Photoshop– Illustrator– Catalyst– Over-the-wall

• Silverlight• Photoshop• Illustrator• Expression Blend• Tight integration

“The more designers are involved in the workflow, the more it looks like the original art”

– Bill Wagner –

Page 15: Everything you always wanted to know about flex* *BUT WERE AFRAID TO ASK Brian Genisio

Silverlight Designer <-> Developer

ProjectXAML, C#,

assets

Designer uses Expression Blend to

apply design

Designer uses Photoshop/Illustrator

to create mocks & assets

Developer uses Visual Studio to apply behavior and architecture

Page 16: Everything you always wanted to know about flex* *BUT WERE AFRAID TO ASK Brian Genisio

Flex Designer <-> Developer

Designer uses Photoshop/Illustrator

to create mocks & assets

Flex Project

New Flex Project

Designer uses Catalyst to apply design

Designer makes changes using Catalyst

Developer imports Flex project and works on it

Developer imports Flex project and merges it

into existing

Page 17: Everything you always wanted to know about flex* *BUT WERE AFRAID TO ASK Brian Genisio

Separation

Presentation Model

View Model

View

Model

Page 18: Everything you always wanted to know about flex* *BUT WERE AFRAID TO ASK Brian Genisio

Data Binding

• Flex– Expression-based– [Bindable]– Execute Methods– Formatters

• Silverlight• Declarative• INotifyPropertyChanged• ICommand• Value Converters

Page 19: Everything you always wanted to know about flex* *BUT WERE AFRAID TO ASK Brian Genisio

Testing

• Flex– FlexUnit– Mockito /

ASMocks– FB Runner

• Silverlight• MSTest / Nunit• Moq / Rhino Mocks• VS Runner / TD.Net

Page 20: Everything you always wanted to know about flex* *BUT WERE AFRAID TO ASK Brian Genisio

XML

• Flex– ECMA 4 XML– XML Literals– ActionLinq

• Silverlight• LINQ to XML• XDocument

Page 21: Everything you always wanted to know about flex* *BUT WERE AFRAID TO ASK Brian Genisio

Data Display

• Flex– DataGroup– List– DropDownList– Item Renderers– Data Grid

• Silverlight• ItemsControl• ListBox• ComboBox• Data Templates• Data Grid

Page 22: Everything you always wanted to know about flex* *BUT WERE AFRAID TO ASK Brian Genisio

Mobile

• Flex– Air for Android– iOS Pakcager– Blackberry

Playbook

• Silverlight• Windows Phone 7

Page 23: Everything you always wanted to know about flex* *BUT WERE AFRAID TO ASK Brian Genisio

Top 5 Things Silverlight is Good At

• Designer-Developer Workflow• Development Tools• Language Support• Third Party Support• Performance (including mobile)

Page 24: Everything you always wanted to know about flex* *BUT WERE AFRAID TO ASK Brian Genisio

Top 5 Things Flex is Good At

• Data Binding• Location, Location, Location• Visual State Management• Skinning Model• Form Validation

Page 25: Everything you always wanted to know about flex* *BUT WERE AFRAID TO ASK Brian Genisio

Flex.org

Get it!Try it!

Learn it!

Page 26: Everything you always wanted to know about flex* *BUT WERE AFRAID TO ASK Brian Genisio

• With James Ward – Adobe Evangelist• 3 Day Jam• http://FlexJam2011.eventbrite.com

Page 27: Everything you always wanted to know about flex* *BUT WERE AFRAID TO ASK Brian Genisio

Questions– http://HouseOfBilz.com– [email protected]– Twitter: @BrianGenisio

• Demos:– http://bitbucket.org/briangenisio/crosstra

ining

• ActionLinq:– http://

bitbucket.org/briangenisio/actionlinq

Page 28: Everything you always wanted to know about flex* *BUT WERE AFRAID TO ASK Brian Genisio

Smart People Developing Smart Software.www.srtsolutions.com