cross-training in silverlight and flex brian genisio

27
Cross-Training in Silverlight and Flex Brian Genisio

Post on 21-Dec-2015

214 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Cross-Training in Silverlight and Flex Brian Genisio

Cross-Training in Silverlight and Flex

Brian Genisio

Page 2: Cross-Training in Silverlight and Flex Brian Genisio

What is Flex?

What is Silverlight/WPF?

What can we learn by studying both?

Page 3: Cross-Training in Silverlight and Flex Brian Genisio

It Is OK To Be Curious!

Page 4: Cross-Training in Silverlight and Flex Brian Genisio

Take Both Pills!

Page 5: Cross-Training in Silverlight and Flex Brian Genisio

Toolset Overview

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

Flex ApplicationMXML/ActionScript

SilverlightSDK

Silverlight RuntimeFlash Player

Flex SDK

Managed CodeResourcesCompiled AS3

Page 6: Cross-Training in Silverlight and Flex 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

Flash/Air Player ?

Flash Player in Browser

Page 7: Cross-Training in Silverlight and Flex Brian Genisio

Side-By-Side

Page 8: Cross-Training in Silverlight and Flex Brian Genisio

Declarative Story

• Flex– MXML– Flex Builder– Catalyst

• Silverlight• XAML• Visual Studio• Expression Blend

Page 9: Cross-Training in Silverlight and Flex Brian Genisio

Imperative Story

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

• Java• C#

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

Page 10: Cross-Training in Silverlight and Flex 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 11: Cross-Training in Silverlight and Flex 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 12: Cross-Training in Silverlight and Flex Brian Genisio

SDKs & Toolkits

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

• Silverlight• Silverlight SDK• Silverlight Toolkit• Prism• MEF• Moq• Nunit• SpecFlow

Page 13: Cross-Training in Silverlight and Flex 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 14: Cross-Training in Silverlight and Flex 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 15: Cross-Training in Silverlight and Flex 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: Cross-Training in Silverlight and Flex Brian Genisio

Separation

Presentation Model

View Model

View

Model

Page 17: Cross-Training in Silverlight and Flex Brian Genisio

Data Binding

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

• Silverlight• Declarative• INotifyPropertyChanged• ICommand• Value Converters

Page 18: Cross-Training in Silverlight and Flex Brian Genisio

Testing

• Flex– FlexUnit– Mockito /

ASMocks– FB Runner– Jasmine-Flex

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

Page 19: Cross-Training in Silverlight and Flex Brian Genisio

XML

• Flex– ECMA 4 XML

(E4X)– XML Literals– ActionLinq

• Silverlight• LINQ to XML• XDocument• XML Literals in VB.Net

Page 20: Cross-Training in Silverlight and Flex Brian Genisio

Data Display

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

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

Page 21: Cross-Training in Silverlight and Flex Brian Genisio

State Management

• Flex– Current State– Inline Properties– Transitions

• Silverlight• Visual State Manager

(VSM)• Visual States• State Transitions

Page 22: Cross-Training in Silverlight and Flex Brian Genisio

Mobile

• Flex– Air for Android– iOS Packager– Blackberry

Playbook

• Silverlight• Windows Phone 7

Page 23: Cross-Training in Silverlight and Flex Brian Genisio

Top 5 Things Silverlight is Good At

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

Page 24: Cross-Training in Silverlight and Flex Brian Genisio

Top 5 Things Flex is Good At

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

Page 25: Cross-Training in Silverlight and Flex Brian Genisio

Flex.org

Get it!Try it!

Learn it!

Page 26: Cross-Training in Silverlight and Flex Brian Genisio

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

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

ing

• ActionLinq:– http://bitbucket.org/briangenisio/actionlinq

• Jasmine-Flex– http://github.com/briangenisio/jasmine-flex

Page 27: Cross-Training in Silverlight and Flex Brian Genisio

Smart People Developing Smart Software.www.srtsolutions.com