Get a flying start with Windows Phone 7 - NDC2010
-
Upload
jonas-folleso -
Category
Technology
-
view
2.010 -
download
5
description
Transcript of Get a flying start with Windows Phone 7 - NDC2010
![Page 3: Get a flying start with Windows Phone 7 - NDC2010](https://reader035.fdocuments.us/reader035/viewer/2022070302/548d8ee5b47959d85c8b4573/html5/thumbnails/3.jpg)
AGENDA:- TDD- RX & ASYNC- MVVM & IOC- BLEND 4- LOCATION- NOTIFICATION
htt
p:/
/ww
w.fl
ickr
.com
/ph
oto
s/2
07
92
78
7@
N0
0/2
24
86
23
39
1/
![Page 4: Get a flying start with Windows Phone 7 - NDC2010](https://reader035.fdocuments.us/reader035/viewer/2022070302/548d8ee5b47959d85c8b4573/html5/thumbnails/4.jpg)
KNOW SILVERLIGHT?
THEN YOU KNOW WP7!
![Page 5: Get a flying start with Windows Phone 7 - NDC2010](https://reader035.fdocuments.us/reader035/viewer/2022070302/548d8ee5b47959d85c8b4573/html5/thumbnails/5.jpg)
FLIGHTS NORWAY
MONITORARRIVALS AND
DEPARTURES
htt
p:/
/ww
w.fl
ickr
.com
/ph
oto
s/sv
en
werk
/2
18
18
49
28
0/
![Page 6: Get a flying start with Windows Phone 7 - NDC2010](https://reader035.fdocuments.us/reader035/viewer/2022070302/548d8ee5b47959d85c8b4573/html5/thumbnails/6.jpg)
FLIGHTS NORWAY
WHAT WE ARE GOING TO
BUILD
![Page 7: Get a flying start with Windows Phone 7 - NDC2010](https://reader035.fdocuments.us/reader035/viewer/2022070302/548d8ee5b47959d85c8b4573/html5/thumbnails/7.jpg)
TDD
FUNDAMENTALPRACTICE
htt
p:/
/ww
w.fl
ickr
.com
/ph
oto
s/m
ad
_hou
se_p
hoto
gra
ph
y/
44
40
87
13
80
/
![Page 8: Get a flying start with Windows Phone 7 - NDC2010](https://reader035.fdocuments.us/reader035/viewer/2022070302/548d8ee5b47959d85c8b4573/html5/thumbnails/8.jpg)
WP7SILVERLIGHT 3
.NET 4.0
3 RUNTIMESMAKES
THINGS HARD
htt
p:/
/ww
w.fl
ickr
.com
/ph
oto
s/ta
mb
ako
/39
74
80
93
61
/
![Page 9: Get a flying start with Windows Phone 7 - NDC2010](https://reader035.fdocuments.us/reader035/viewer/2022070302/548d8ee5b47959d85c8b4573/html5/thumbnails/9.jpg)
• Unit Testing and TDD is a waste of time
• Silverlight Unit Test Framework from
Microsoft
• Silverlight Port of NUnit
• Assembly Sharing
• Other
![Page 10: Get a flying start with Windows Phone 7 - NDC2010](https://reader035.fdocuments.us/reader035/viewer/2022070302/548d8ee5b47959d85c8b4573/html5/thumbnails/10.jpg)
9
13
5
12
Sales
Waste of Time
SLUT
Nunit
Other
Assembly Shar-ing
![Page 11: Get a flying start with Windows Phone 7 - NDC2010](https://reader035.fdocuments.us/reader035/viewer/2022070302/548d8ee5b47959d85c8b4573/html5/thumbnails/11.jpg)
TDD IS ALL ABOUT
FLOW
htt
p:/
/ww
w.fl
ickr
.com
/ph
oto
s/ze
non
line/3
43
13
65
55
6/
![Page 12: Get a flying start with Windows Phone 7 - NDC2010](https://reader035.fdocuments.us/reader035/viewer/2022070302/548d8ee5b47959d85c8b4573/html5/thumbnails/12.jpg)
FASTER FEEDBACK CYCLE FOR
SILVERLIGHT TDD
![Page 13: Get a flying start with Windows Phone 7 - NDC2010](https://reader035.fdocuments.us/reader035/viewer/2022070302/548d8ee5b47959d85c8b4573/html5/thumbnails/13.jpg)
TDDDEMO
htt
p:/
/ww
w.fl
ickr
.com
/ph
oto
s/in
fom
ofo
/14
05
30
34
78
/
![Page 14: Get a flying start with Windows Phone 7 - NDC2010](https://reader035.fdocuments.us/reader035/viewer/2022070302/548d8ee5b47959d85c8b4573/html5/thumbnails/14.jpg)
RESTSERVICES
WITH FLIGHT INFORMATION
http://flydata.avinor.no/http://open.bekk.no/2009/12/13/hva-skjer-nar-man-gir-bort-flydata-gratis/
![Page 15: Get a flying start with Windows Phone 7 - NDC2010](https://reader035.fdocuments.us/reader035/viewer/2022070302/548d8ee5b47959d85c8b4573/html5/thumbnails/15.jpg)
http://flydata.avinor.no/XmlFeed.asp?airport=OSL<?xml version="1.0" encoding="iso-8859-1"?><airport name="OSL"> <flights lastUpdate="2010-06-14T06:29:12"> <flight uniqueID="1054121"> <airline>DY</airline> <flight_id>DY422</flight_id> <dom_int>D</dom_int> <schedule_time>2010-06-12T08:55:00</schedule_time> <arr_dep>D</arr_dep> <airport>MOL</airport> </flight> </flights></airport>
![Page 16: Get a flying start with Windows Phone 7 - NDC2010](https://reader035.fdocuments.us/reader035/viewer/2022070302/548d8ee5b47959d85c8b4573/html5/thumbnails/16.jpg)
http://flydata.avinor.no/airlineNames.asp
<?xml version="1.0" encoding="iso-8859-1"?><airlineNames> <airlineName code="AA" name="American Airlines"/> <airlineName code="AAF" name="Aigle Azur"/> <airlineName code="AAG" name="Atlantic Airlines"/> <airlineName code="AAT" name="Austrian Airtransport"/> <!-- ... --></airlineNames>
![Page 17: Get a flying start with Windows Phone 7 - NDC2010](https://reader035.fdocuments.us/reader035/viewer/2022070302/548d8ee5b47959d85c8b4573/html5/thumbnails/17.jpg)
http://flydata.avinor.no/airportNames.asp
<?xml version="1.0" encoding="iso-8859-1"?><airportNames> <airportName code="OSD" name="Østersund"/> <airportName code="OSH" name="Oshkosh"/> <airportName code="OSI" name="Osijek"/> <airportName code="OSK" name="Oskarshamn"/> <airportName code="OSL" name="Oslo"/> <!-- ... --></airportNames>
![Page 18: Get a flying start with Windows Phone 7 - NDC2010](https://reader035.fdocuments.us/reader035/viewer/2022070302/548d8ee5b47959d85c8b4573/html5/thumbnails/18.jpg)
http://flydata.avinor.no/flightStatuses.asp
<?xml version="1.0" encoding="iso-8859-1"?><flightStatuses> <flightStatus code="N" statusTextEn="New info" /> <flightStatus code="E" statusTextEn="New time" /> <flightStatus code="D" statusTextEn="Departed" /> <flightStatus code="A" statusTextEn="Arrived" /> <flightStatus code="C" statusTextEn="Cancelled" /></flightStatuses>
![Page 19: Get a flying start with Windows Phone 7 - NDC2010](https://reader035.fdocuments.us/reader035/viewer/2022070302/548d8ee5b47959d85c8b4573/html5/thumbnails/19.jpg)
ALL NETWORKING
IN SILVERLIGHT IS
ASYNCHRONOUS
![Page 20: Get a flying start with Windows Phone 7 - NDC2010](https://reader035.fdocuments.us/reader035/viewer/2022070302/548d8ee5b47959d85c8b4573/html5/thumbnails/20.jpg)
RX
MAKING ASYNC
PROGRAMMING
LESS DIFFICULT
htt
p:/
/ww
w.fl
ickr
.com
/ph
oto
s/ad
ew
ale
_osh
ineye/3
59
01
40
05
1/
![Page 21: Get a flying start with Windows Phone 7 - NDC2010](https://reader035.fdocuments.us/reader035/viewer/2022070302/548d8ee5b47959d85c8b4573/html5/thumbnails/21.jpg)
COMPOSING ASYNCHRONOU
S AND EVENT-BASED
PROGRAMS USING
OBSERVABLE COLLECTIONS
![Page 22: Get a flying start with Windows Phone 7 - NDC2010](https://reader035.fdocuments.us/reader035/viewer/2022070302/548d8ee5b47959d85c8b4573/html5/thumbnails/22.jpg)
var move = Observable.FromEvent(LayoutRoot, "MouseMove");var down = Observable.FromEvent(LayoutRoot, "MouseLeftButtonDown");var up = Observable.FromEvent(LayoutRoot, "MouseLeftButtonUp");
IObservable<Point> whereUserIsDragging = move.SkipUntil(down) .TakeUntil(up) .Repeat() .Select(e => e.EventArgs.GetPosition(LayoutRoot));
whereUserIsDragging.Subscribe(p => Paint(p.X, p.Y));
![Page 23: Get a flying start with Windows Phone 7 - NDC2010](https://reader035.fdocuments.us/reader035/viewer/2022070302/548d8ee5b47959d85c8b4573/html5/thumbnails/23.jpg)
RX DEMO
![Page 24: Get a flying start with Windows Phone 7 - NDC2010](https://reader035.fdocuments.us/reader035/viewer/2022070302/548d8ee5b47959d85c8b4573/html5/thumbnails/24.jpg)
MVVM
PATTERN FOR BINDABLE UI
![Page 25: Get a flying start with Windows Phone 7 - NDC2010](https://reader035.fdocuments.us/reader035/viewer/2022070302/548d8ee5b47959d85c8b4573/html5/thumbnails/25.jpg)
Data Model
VIEW
XAML
Code-BehindEvent
Handlers
APP LOGIC IN CODE BEHIND IS HARD TO TEST
AND MAINTAIN
![Page 26: Get a flying start with Windows Phone 7 - NDC2010](https://reader035.fdocuments.us/reader035/viewer/2022070302/548d8ee5b47959d85c8b4573/html5/thumbnails/26.jpg)
Data Model
VIEW
XAML
Code-Behind
VIEW MODEL
State + Operations
Change notification
Data-binding and commands
SEPARATE USINGMVVM
![Page 27: Get a flying start with Windows Phone 7 - NDC2010](https://reader035.fdocuments.us/reader035/viewer/2022070302/548d8ee5b47959d85c8b4573/html5/thumbnails/27.jpg)
COMMUNICATION
App Service
View Model
App Service View Model
View Model
View Model
View Model View Model
![Page 28: Get a flying start with Windows Phone 7 - NDC2010](https://reader035.fdocuments.us/reader035/viewer/2022070302/548d8ee5b47959d85c8b4573/html5/thumbnails/28.jpg)
EVENT AGGREGATOR
App Service
App Service
View Model View Model
View Model
View Model
View Model View Model
Event Aggregator
![Page 29: Get a flying start with Windows Phone 7 - NDC2010](https://reader035.fdocuments.us/reader035/viewer/2022070302/548d8ee5b47959d85c8b4573/html5/thumbnails/29.jpg)
Message
VIEW MODEL COMMUNICATION
Data Model
View
XAML
Code-Behin
d
Data Model
View
XAML
Code-Behind
Message
View Model
State + Operations
View Model
State + Operations
View
XAML
Code-Behind
View Model
State + Operations
Publish messages
Subscribe to messages
Event Aggregator
![Page 30: Get a flying start with Windows Phone 7 - NDC2010](https://reader035.fdocuments.us/reader035/viewer/2022070302/548d8ee5b47959d85c8b4573/html5/thumbnails/30.jpg)
MVVM SHOULD BE LIGHT WEIGHT
htt
p:/
/ww
w.fl
ickr
.com
/ph
oto
s/tr
eeh
ou
se1
97
7/2
89
24
17
80
5/
![Page 31: Get a flying start with Windows Phone 7 - NDC2010](https://reader035.fdocuments.us/reader035/viewer/2022070302/548d8ee5b47959d85c8b4573/html5/thumbnails/31.jpg)
http://mvvmlight.codeplex.com/
![Page 32: Get a flying start with Windows Phone 7 - NDC2010](https://reader035.fdocuments.us/reader035/viewer/2022070302/548d8ee5b47959d85c8b4573/html5/thumbnails/32.jpg)
MVVM DEMO
htt
p:/
/ww
w.fl
ickr
.com
/ph
oto
s/2
07
92
78
7@
N0
0/2
24
86
23
39
1/
![Page 33: Get a flying start with Windows Phone 7 - NDC2010](https://reader035.fdocuments.us/reader035/viewer/2022070302/548d8ee5b47959d85c8b4573/html5/thumbnails/33.jpg)
DI
KEEP THINGS SEPARATE
htt
p:/
/ww
w.fl
ickr
.com
/ph
oto
s/om
arr
un
/46
72
53
12
53
/in
/ph
oto
stre
am
More in-depth information:The Dependency Inversion Principle Applied
Fredrik Kalseth, Friday 10:20
![Page 34: Get a flying start with Windows Phone 7 - NDC2010](https://reader035.fdocuments.us/reader035/viewer/2022070302/548d8ee5b47959d85c8b4573/html5/thumbnails/34.jpg)
DI LETS YOU INJECT
EXTERNALDEPENDENCIE
S
![Page 35: Get a flying start with Windows Phone 7 - NDC2010](https://reader035.fdocuments.us/reader035/viewer/2022070302/548d8ee5b47959d85c8b4573/html5/thumbnails/35.jpg)
IMPORTANT TECHNIQUE ON WP7 TO
SIMULATE SENSORS
htt
p:/
/ww
w.fl
ickr
.com
/ph
oto
s/h
ow
zey/2
88
04
55
76
2/
![Page 36: Get a flying start with Windows Phone 7 - NDC2010](https://reader035.fdocuments.us/reader035/viewer/2022070302/548d8ee5b47959d85c8b4573/html5/thumbnails/36.jpg)
![Page 37: Get a flying start with Windows Phone 7 - NDC2010](https://reader035.fdocuments.us/reader035/viewer/2022070302/548d8ee5b47959d85c8b4573/html5/thumbnails/37.jpg)
ISOLATED STORAGE
FOR SIMPLE DATA STORAGE
![Page 38: Get a flying start with Windows Phone 7 - NDC2010](https://reader035.fdocuments.us/reader035/viewer/2022070302/548d8ee5b47959d85c8b4573/html5/thumbnails/38.jpg)
NOSQLFOR WP7?
![Page 39: Get a flying start with Windows Phone 7 - NDC2010](https://reader035.fdocuments.us/reader035/viewer/2022070302/548d8ee5b47959d85c8b4573/html5/thumbnails/39.jpg)
DI &ISOLATED STORAGE
DEMO
htt
p:/
/ww
w.fl
ickr
.com
/ph
oto
s/om
arr
un
/46
72
53
12
53
/in
/ph
oto
stre
am
![Page 40: Get a flying start with Windows Phone 7 - NDC2010](https://reader035.fdocuments.us/reader035/viewer/2022070302/548d8ee5b47959d85c8b4573/html5/thumbnails/40.jpg)
METRO DESIGN
LANGUAGE
![Page 41: Get a flying start with Windows Phone 7 - NDC2010](https://reader035.fdocuments.us/reader035/viewer/2022070302/548d8ee5b47959d85c8b4573/html5/thumbnails/41.jpg)
PIVOT CONTROL
![Page 42: Get a flying start with Windows Phone 7 - NDC2010](https://reader035.fdocuments.us/reader035/viewer/2022070302/548d8ee5b47959d85c8b4573/html5/thumbnails/42.jpg)
HUB CONTROL
![Page 43: Get a flying start with Windows Phone 7 - NDC2010](https://reader035.fdocuments.us/reader035/viewer/2022070302/548d8ee5b47959d85c8b4573/html5/thumbnails/43.jpg)
BLEND 4DEMO
![Page 44: Get a flying start with Windows Phone 7 - NDC2010](https://reader035.fdocuments.us/reader035/viewer/2022070302/548d8ee5b47959d85c8b4573/html5/thumbnails/44.jpg)
LOCATION AWARENESSIS KEY WHEN
ON THE GO
![Page 45: Get a flying start with Windows Phone 7 - NDC2010](https://reader035.fdocuments.us/reader035/viewer/2022070302/548d8ee5b47959d85c8b4573/html5/thumbnails/45.jpg)
SAME API IN .NET 4 &
WP7
htt
p:/
/ww
w.fl
ickr
.com
/ph
oto
s/p
hoto
gra
ham
/19
83
24
03
1/
![Page 46: Get a flying start with Windows Phone 7 - NDC2010](https://reader035.fdocuments.us/reader035/viewer/2022070302/548d8ee5b47959d85c8b4573/html5/thumbnails/46.jpg)
LOCATION AWARENESS
DEMO
![Page 47: Get a flying start with Windows Phone 7 - NDC2010](https://reader035.fdocuments.us/reader035/viewer/2022070302/548d8ee5b47959d85c8b4573/html5/thumbnails/47.jpg)
PUSH NOTIFICATIONS
KEEP YOU INFORMED
![Page 48: Get a flying start with Windows Phone 7 - NDC2010](https://reader035.fdocuments.us/reader035/viewer/2022070302/548d8ee5b47959d85c8b4573/html5/thumbnails/48.jpg)
WP7 PUSH NOTIFICATIONS
Microsoft Push
Notification
Services
Your Web Applicatio
n
PUSH CLIENT
Notification Namespaces
Push Library
Your WP Application
1Open Channel
2 Hand off channel
URL
3 Pushmessage
4Push message
![Page 49: Get a flying start with Windows Phone 7 - NDC2010](https://reader035.fdocuments.us/reader035/viewer/2022070302/548d8ee5b47959d85c8b4573/html5/thumbnails/49.jpg)
PUSH NOTIFICATION
S DEMO
htt
p:/
/ww
w.fl
ickr
.com
/ph
oto
s/ko
zlosk
i/2
30
65
10
52
0/
![Page 50: Get a flying start with Windows Phone 7 - NDC2010](https://reader035.fdocuments.us/reader035/viewer/2022070302/548d8ee5b47959d85c8b4573/html5/thumbnails/50.jpg)
SUMMARY:- TDD- RX & ASYNC- MVVM & IOC- BLEND 4- LOCATION- NOTIFICATION
htt
p:/
/ww
w.fl
ickr
.com
/ph
oto
s/2
07
92
78
7@
N0
0/2
24
86
23
39
1/
![Page 51: Get a flying start with Windows Phone 7 - NDC2010](https://reader035.fdocuments.us/reader035/viewer/2022070302/548d8ee5b47959d85c8b4573/html5/thumbnails/51.jpg)
FORK ME ON GITHUB
http://github.com/follesoe/FlightsNorway
![Page 53: Get a flying start with Windows Phone 7 - NDC2010](https://reader035.fdocuments.us/reader035/viewer/2022070302/548d8ee5b47959d85c8b4573/html5/thumbnails/53.jpg)