Date post: | 13-May-2015 |
Category: |
Business |
Upload: | wes-yanaga |
View: | 1,337 times |
Download: | 0 times |
7
Bruce D. KyleISV Architect EvangelistMicrosoft
Windows Phone 7
Unleashed
Session I
Session 1 : Getting Started
Session 1 Agenda
WP7 – Phone Overview Application Architecture Application Life cycle Hardware Foundation Application Bar Panorama and Pivot Red Threads MVVM Marketplace
A different kind of phone,designed for a life in motion
Philosophy
Customer
Design
Experience
Platform
The Windows Phone Design System Codename “Metro”
Integrated Experiences
PEOPLE OFFICE
MARKETPLACE
PICTURES MUSIC+VIDEO
GAMES
Standardized Hardware Foundation
Capacitive touch4 or more contact points
SensorsA-GPS, Accelerometer, Compass, Light, Proximity
Camera5 mega pixels or more, flash required, camera button required
MultimediaCommon detailed specs, Codec acceleration
Memory256MB RAM or more, 8GB Flash or more
GPUDirectX 9 acceleration
CPUARMv7 Cortex/Scorpion or better
800
WV
GA
/ 4
80 H
VG
A
480 WVGA / 320 HVGA
Hardware buttons | Start, Search, Back
Session 1 : The Architecture
Building the Foundation
Software Architecture
KernelHardware BSP
App Model UI Model Cloud Integration
Applications
App managementLicensingChamber isolationSoftware updates
Shell frame Session managerDirect3DCompositor
Xbox LIVEBingLocationPush notificationsWindows Live ID
Your App UI and logic
A-GPS Accelerometer Compass Light ProximityMedia Wi-Fi Radio Graphics
SecurityNetworkingStorage
Frameworks
Silverlight XNAHTML/
JavaScriptCLR
Hardware Foundation
Windows Phone Microsoft confidential.
Windows Phone 7 Frameworks Details
Common Base Class Library
Collections ComponentModel Configuration
DiagnosticsReflection IO
Security Threading
Runtime Resources Globalization TextLocation Net
ServiceModel Linq
Application Object
Silverlight Presentation and Media
XNA Frameworks for Games
Windows Phone Frameworks
NavigationShapes Markup Media
Controls Drawing IsolatedStorage
AudioMedia GraphicsInput
Drawing GamerServices
Content
PhoneApplicationPage
PushNotification
WebBrowserControl
SensorsPhoneApplicationFra
me
CameraDevice
IntegrationLaunchers &
ChoosersWindows Phone
Controls
Cloud Integration
• Built-in user experiences and APIs integrated with key Microsoft services• Familiar API frameworks for interacting with existing Web 2.0 services• Rich support for incorporating custom web services into app-specific experiences
Microsoft Services
Existing Web Services
Windows Phone
Cloud integration client services
Frameworks
Your Web Service
Notification ServiceLocation Service
Custom Web Service
Windows Phone
Application
Sessions and back stackGroups together sequences of
pages corresponding to a user’s activity across apps
UI Model: Familiar Web Concepts
Shell frameRequests pages, renders UI,
and handles navigation across apps
Phone applicationProvides UI as XAML pages
connected into cross-app flows by URI’s
History and tabsGroups together sequences of HTTP resources corresponding to a user’s activity across sites
Web browserRequests HTTP resources, renders them, and handles navigation across sites
Web applicationProvide media represented as HTTP resources linked by URL’s
App bar
System tray
Session 1 : Page Types
Building the Foundation
Single Page
Application Bar Automatically added to new page
But commented out Can be done in XAML or code behind Two Parts
ApplicationBarIconButton (Limit 4) ApplicationBarMenuItem
You can set the opacity (0.0 – 1.0) Automatically Rotates and Adjusts
Application Bar
Best Practices Use instead of your own menu
system Use the default system theme color Use Opacity of .0 , .05, 1 If Opacity is < 1 Screen is Full :
Otherwise Screen will be shorter Do not use an Icon button for Back Don’t use more than 5 Menu items
( between 14 and 20 characters)
Panorama
Panorama
Panorama
Pivot
Pivot or Panorama??
Getting Started• Orientation• Keyboard Input• Application Bar• Panorama• Pivot• Splash Screen
Demo
Session 1 : Red Threads
Red Threads Optimize for “life maximizers” Red Threads
A thread or a theme that runs throughout the entire user experience
Three Red Threads Personal Relevant Connected
Red Threads
Personal Your Day, your way Present information that is
pertinent to user Consider this almost as if every
WP7 application should be like a dashboard the filters information down to your role
Red Threads
Relevant Your people, your location Show information pertinent to
the environment the user is currently in
An example would be a locator for sporting events around the user based on GPS
Red Threads
Connected Your stuff, your piece of mind Application should be able to
interact with networked information (Cloud, online services) BUT not be dependent on this
Make sure the user experience is high even in a disconnected state
Session 1 : MVVM
Model View View Model
MVVM MVVM stands for
Model View View-Model
What's MVVM?
• an architectural pattern created by John Gossman from WPF team
• is a variation of MVC pattern• is similar to Martin Fowler’s
PresentationModel pattern• WPF Data Binding & Commanding
View ViewModel Model
Motivation and benefits
• Testabiltiy ( ViewModel is easier to unit test than code-behind or event driven code)
• Clear separation between User Experience designer and developer
• Increases the "Blendability" of your view• Model never needs to be changed to support changes to the view• ViewModel rarely needs to be changed to support changes to the
view• No duplicated code to update views
MVVM
• View knows ViewModel• ViewModel knows Models• But not vice versa.
View ViewModel Model
Model Typical class that covers a database Could be a WCF Service and its client
reference
ViewModel Provides data to and from the View Responds to both the View and the
Model Informs the View of changes in the
data Reusable (at least much more than
code behind a form)
ViewModel Knows nothing about the View Does not “push” data into the view
TextBox1.Text = object.Name()
View Uses Binding to “subscribe” to the
ViewModel Interprets business data and state of
ViewModel to the human Nothing but Presentation - XAML No or minimal code-behind
Cons of MVVM
• lack of standardization so everyone has own favor
• For simple UI, M-V-VM can be overkill
View ViewModel Model
MVVM Light Toolkit
Third Party Support
• Prism• MVVM Light• Caliburn• Silverlight FX
Session 1 : Marketplace
Application Marketplace
Enhanced Discovery• Easy to find great
applications, games• Fun to browse the
marketplace
Simple, Reliable Acquisition• Try before you buy• Buying and downloading
content is a breeze• Payment flexibility
(MO billing and credit card)
• Easy application updates
Test Criteria Pillars
technical validation
policy validation
market validation
http://go.microsoft.com/?linkid=9730558
Publishing Process
Application and Game Submission
Sign
Windows Phone 7 Deployment Service
.xap
.dll
Appsubmission
AppPackaging &Validation
.xap
.dll
.xap
.dll
.xap
.dll
ApplyTest
Criteria
Marketplace
AddMetadata
.xap
.dll
.xap
.dll
.xap
.dll
.xap
.dll
Upload Application (XAP)Meta Data (Icons, descriptions, icons)Check for size (< 500 mb)Recommended size < 20 MB for OTA
Check Application code (No Native API)Check if Type SafeNo Debug SymbolsCheck for Phone CapabilitiesCheck languages
Add Metadata and repackage application.
Check the app works (does it crash, hang, etc..)Start splash in 1 secondAccept user input 19 secondsTest for malicious code
Sign XAP and appears on Marketplace
Device Unlock for Application Development
Unlock retail devices for developmentManage registered devices through thedeveloper portal3 devices/year1 device/year students
api
© 2010 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.
The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation.
MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
Live Tiles