SlideShare a Scribd company logo
1 of 38
October 1st 2012




Cross Development
Windows 8 and
Windows Phone 8

Dave Bost
Technical Evangelist, Windows Phone
http://davebost.com
@davebost
30 Days to Launch



           Launch your App or Game in 30 days
           Generation App
                 Online training and tips from insiders
                 App and Game dev content
                 Tele-support with a Windows 8 architect
                 Exclusive one-on-one WinRT and Windows UX design
                  consultation


                 http://aka.ms/FreeBeer
Best Practices for Windows 8 / Windows Phone 8

•     Linked files
•     #if conditionals
•     Using Extension methods to bridge implementation differences
•     MVVM
•     Portable Class Libraries
•     A common user experience bringing high-quality experiences to the user.




3   Microsoft confidential   12/6/2012
Common Structure

                             Windows 8   Windows Phone 8




4   Microsoft confidential   12/6/2012
Common APIs in
Windows 8 and
Windows Phone 8
Windows Phone 8 Developer Platform
                            XAML Apps                               Direct3D Apps
                                                                       In-App
               XAML         Maps        Geolocation     Sensors                     Direct3D
                                                                      Purchase

               HTML          XML         Threading       Touch         Speech       XAudio2

Your apps     Phone
             Features
                             Push         Camera         Video        Proximity
                                                                                     Media
                                                                                   Foundation

Your way     Calendar       Wallet       Contacts      Core Types       VoIP          STL

            Multitasking   Live Tiles    Memory          Async        Enterprise      CRT

                   C# and VB                        C#, VB, and C++                  C++
                             File system, Networking, Graphics, Media
                                        Core Operating System
“Add as Link”




7   Microsoft confidential   12/6/2012
“Add as Link”

Windows 8                                Windows Phone 8




8   Microsoft confidential   12/6/2012
Common APIs

Common                                   Different
Base Class Library                       Launchers and Choosers
Hardware                                 Sharing APIs
Storage (Files and Folders)




9   Microsoft confidential   12/6/2012
#if Conditional Blocks

Windows 8
 #if NETFX_CORE
 Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () => {
 #endif


Windows Phone 8
 #if WINDOWS_PHONE
 Deployment.Current.Dispatcher.BeginInvoke(() => {
 #endif



10   Microsoft confidential   12/6/2012
Threading

Windows 8 AND Windows Phone 8
 #if NETFX_CORE
 Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () => {
 #else
 Deployment.Current.Dispatcher.BeginInvoke(() => {
 #endif
     double _accelX = args.Reading.AccelerationX;
     double _accelY = args.Reading.AccelerationY;




11   Microsoft confidential   12/6/2012
Web Service




12   Microsoft confidential   12/6/2012
HttpWebResponse and HttpWebRequest

Windows 8
 var request = (HttpWebRequest)WebRequest.Create(autoCompleteUri);

 HttpWebResponse response = (HttpWebResponse)await request.GetResponseAsync();

 // retrieve data using StreamReader




13   Microsoft confidential   12/6/2012
HttpWebResponse and HttpWebRequest

Windows Phone 8
 var request = (HttpWebRequest)WebRequest.Create(autoCompleteUri);
 request.BeginGetResponse(new AsyncCallback(AutoCompleteCallback), request);
 }

 private void AutoCompleteCallback(IAsyncResult callback)
 {
     HttpWebRequest request = (HttpWebRequest)callback.AsyncState;
         HttpWebResponse response = (HttpWebResponse)request.EndGetResponse(callback);
         // retrieve data using StreamReader
 }




14   Microsoft confidential   12/6/2012
Convergence through
Extension
Extension Methods

Windows Phone 8 HttpWebRequest Extension
public static Task<HttpWebResponse> GetResponseAsync(this HttpWebRequest request)
{
    var taskComplete = new TaskCompletionSource<HttpWebResponse>();
    request.BeginGetResponse(asyncResponse =>
    {
        HttpWebRequest responseRequest =
            (HttpWebRequest)asyncResponse.AsyncState;
        HttpWebResponse someResponse =
            (HttpWebResponse)responseRequest.EndGetResponse(asyncResponse);
        taskComplete.TrySetResult(someResponse);
    }, request);

         return taskComplete.Task;
}
16   Microsoft confidential   12/6/2012
HttpWebResponse and HttpWebRequest

Windows 8 AND Windows Phone 8
 var request = (HttpWebRequest)WebRequest.Create(autoCompleteUri);

 HttpWebResponse response = (HttpWebResponse)await request.GetResponseAsync();

 // retrieve data using StreamReader




17   Microsoft confidential   12/6/2012
Convergence through
Architecture
Model-View-ViewModel (MVVM)
Portable Class Libraries
Cross-platform app architecture
UI Differences and XAML




24   Microsoft confidential   12/6/2012
Different Form Factors Require Different UX

Windows Phone 8                               Windows 8
Screen Size                                   Screen Size
800x480                                       1024x768

1280x720                                      2,560x1,440

1280x768                                      everything
                                              in between



25   Microsoft confidential   12/6/2012
Different Form Factors Require Different UX

Windows Phone 8                               Windows 8
Orientation                                   Orientation
Portrait                                      Portrait

Landscape                                     Landscape

                                              Snapped




26   Microsoft confidential   12/6/2012
Different Controls


 GridView
 Group-able

 Array of Tiles

 Dynamic item size




27   Microsoft confidential
Different Controls


 FlipView
 Browsing View

 Touch-optimized for
 left-right navigation




28   Microsoft confidential
Different Form Factors Require Different UX


 Panorama
 Introduction and
 exploratory content




30   Microsoft confidential
Different Form Factors Require Different UX


 Pivot
 Scanning views

 Grouped information




31   Microsoft confidential
Different Form Factors Require Different UX


 LongListSelector
 Headers and Footers

 Group header
 navigation




32   Microsoft confidential
Different Form Factors Require Different UX
GridView  LongListSelector




35   Microsoft confidential
Summary
Windows 8 / Windows Phone 8 Apps Are a Perfect Match

•      Abstracting Models, ViewModels
         •      Binding data to the View
         •      Linked files
         •      Models, Services could be encapsulated in Portable Class Libraries
•      Shared APIs (hardware, storage, base class libraries)
•      Using #if conditionals for small code differences
•      Using Extension methods to bridge implementation differences
         •      Async-await model for HttpWebResponse/Request
•      Focus on the user experience that works for the form factor


37   Microsoft confidential   12/6/2012
The information herein is for informational                        interpreted to be a commitment on the part of
purposes only an represents the current view of                    Microsoft, and Microsoft cannot guarantee the
Microsoft Corporation as of the date of this                       accuracy of any information provided after the
presentation. Because Microsoft must respond                       date of this presentation.
to changing market conditions, it should not be

MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION
IN THIS PRESENTATION.




© 2012 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.

More Related Content

What's hot

Windows Phone 7 Architecture Overview
Windows Phone 7 Architecture OverviewWindows Phone 7 Architecture Overview
Windows Phone 7 Architecture OverviewBhavya Siddappa
 
Automatic answer checker
Automatic answer checkerAutomatic answer checker
Automatic answer checkerYesu Raj
 
Sinergija 12 WP8 is around the corner
Sinergija 12 WP8 is around the cornerSinergija 12 WP8 is around the corner
Sinergija 12 WP8 is around the cornerCatalin Gheorghiu
 
Windows 8 & Phone 8 - an Architectural Battle Plan
Windows 8 & Phone 8 - an Architectural Battle PlanWindows 8 & Phone 8 - an Architectural Battle Plan
Windows 8 & Phone 8 - an Architectural Battle PlanCaleb Jenkins
 
Windows Phone 7 v.s iOS Development
Windows Phone 7 v.s iOS DevelopmentWindows Phone 7 v.s iOS Development
Windows Phone 7 v.s iOS DevelopmentKhang Vo
 
Iasi 15 noiembrie 2009 Introduction to Windows Mobile programming
Iasi  15 noiembrie 2009   Introduction to Windows Mobile programmingIasi  15 noiembrie 2009   Introduction to Windows Mobile programming
Iasi 15 noiembrie 2009 Introduction to Windows Mobile programmingCatalin Gheorghiu
 
Windows Phone 7: Silverlight
Windows Phone 7: SilverlightWindows Phone 7: Silverlight
Windows Phone 7: SilverlightRishu Mehra
 
Microsoft.net architecturte
Microsoft.net architecturteMicrosoft.net architecturte
Microsoft.net architecturteIblesoft
 
Online advertising management system
Online advertising management systemOnline advertising management system
Online advertising management systemYesu Raj
 
Online lg prodect
Online lg prodectOnline lg prodect
Online lg prodectYesu Raj
 
Mobile Developers Guide To The Galaxy Vol.6
Mobile Developers Guide To The Galaxy Vol.6Mobile Developers Guide To The Galaxy Vol.6
Mobile Developers Guide To The Galaxy Vol.6Marco Tabor
 
Windows 7 For Developers
Windows 7 For DevelopersWindows 7 For Developers
Windows 7 For Developersrsnarayanan
 

What's hot (19)

Windows phone7 subodh
Windows phone7 subodhWindows phone7 subodh
Windows phone7 subodh
 
Windows Phone
Windows PhoneWindows Phone
Windows Phone
 
Windows Phone 7 Architecture Overview
Windows Phone 7 Architecture OverviewWindows Phone 7 Architecture Overview
Windows Phone 7 Architecture Overview
 
Automatic answer checker
Automatic answer checkerAutomatic answer checker
Automatic answer checker
 
Windows Mobile
Windows MobileWindows Mobile
Windows Mobile
 
Sinergija 12 WP8 is around the corner
Sinergija 12 WP8 is around the cornerSinergija 12 WP8 is around the corner
Sinergija 12 WP8 is around the corner
 
Windows 8 & Phone 8 - an Architectural Battle Plan
Windows 8 & Phone 8 - an Architectural Battle PlanWindows 8 & Phone 8 - an Architectural Battle Plan
Windows 8 & Phone 8 - an Architectural Battle Plan
 
Vb.net class notes
Vb.net class notesVb.net class notes
Vb.net class notes
 
Windows Phone 7 v.s iOS Development
Windows Phone 7 v.s iOS DevelopmentWindows Phone 7 v.s iOS Development
Windows Phone 7 v.s iOS Development
 
Windows 8
Windows 8Windows 8
Windows 8
 
Windows Phone
Windows Phone Windows Phone
Windows Phone
 
Iasi 15 noiembrie 2009 Introduction to Windows Mobile programming
Iasi  15 noiembrie 2009   Introduction to Windows Mobile programmingIasi  15 noiembrie 2009   Introduction to Windows Mobile programming
Iasi 15 noiembrie 2009 Introduction to Windows Mobile programming
 
Windows Phone 7: Silverlight
Windows Phone 7: SilverlightWindows Phone 7: Silverlight
Windows Phone 7: Silverlight
 
Microsoft.net architecturte
Microsoft.net architecturteMicrosoft.net architecturte
Microsoft.net architecturte
 
Online advertising management system
Online advertising management systemOnline advertising management system
Online advertising management system
 
Online lg prodect
Online lg prodectOnline lg prodect
Online lg prodect
 
Mobile Developers Guide To The Galaxy Vol.6
Mobile Developers Guide To The Galaxy Vol.6Mobile Developers Guide To The Galaxy Vol.6
Mobile Developers Guide To The Galaxy Vol.6
 
WPF
WPFWPF
WPF
 
Windows 7 For Developers
Windows 7 For DevelopersWindows 7 For Developers
Windows 7 For Developers
 

Viewers also liked (13)

B Ramalinga Raju
B Ramalinga RajuB Ramalinga Raju
B Ramalinga Raju
 
Project Resource Management 3 Jon Lewis
Project Resource Management 3 Jon LewisProject Resource Management 3 Jon Lewis
Project Resource Management 3 Jon Lewis
 
Mukesh Ambani vs. Anil Ambani
Mukesh Ambani vs. Anil AmbaniMukesh Ambani vs. Anil Ambani
Mukesh Ambani vs. Anil Ambani
 
Prince2 2005 Vs Prince2 2009
Prince2 2005 Vs Prince2 2009Prince2 2005 Vs Prince2 2009
Prince2 2005 Vs Prince2 2009
 
NEETY EURO ASIA SOLAR ENERGY
NEETY EURO ASIA SOLAR ENERGYNEETY EURO ASIA SOLAR ENERGY
NEETY EURO ASIA SOLAR ENERGY
 
Crisc prep-guide
Crisc prep-guideCrisc prep-guide
Crisc prep-guide
 
AXELOS - ITIL® Foundation
AXELOS - ITIL® FoundationAXELOS - ITIL® Foundation
AXELOS - ITIL® Foundation
 
COBIT®5 - Assessor
COBIT®5 - AssessorCOBIT®5 - Assessor
COBIT®5 - Assessor
 
State Bank Of India
State Bank Of IndiaState Bank Of India
State Bank Of India
 
COBIT®5 - Implementation
COBIT®5 - ImplementationCOBIT®5 - Implementation
COBIT®5 - Implementation
 
CRISC Exam Questions
CRISC Exam QuestionsCRISC Exam Questions
CRISC Exam Questions
 
Measuring market demand
Measuring market demandMeasuring market demand
Measuring market demand
 
Sourcing Governance - Foundation
Sourcing Governance - FoundationSourcing Governance - Foundation
Sourcing Governance - Foundation
 

Similar to Developing for Windows Phone 8 and Windows 8

Conociendo el ecosistema de Windows Phone 8 y Windows 8
Conociendo el ecosistema de Windows Phone 8 y Windows 8Conociendo el ecosistema de Windows Phone 8 y Windows 8
Conociendo el ecosistema de Windows Phone 8 y Windows 8Sorey García
 
Mobile Devolpment Slides
Mobile Devolpment SlidesMobile Devolpment Slides
Mobile Devolpment SlidesLuke Angel
 
Windows 8 & JavaScript
Windows 8 & JavaScriptWindows 8 & JavaScript
Windows 8 & JavaScriptRobert MacLean
 
Planning for Windows 10 and Internet Explorer 11
Planning for Windows 10 and Internet Explorer 11 Planning for Windows 10 and Internet Explorer 11
Planning for Windows 10 and Internet Explorer 11 Flexera
 
Developing RIAs... 10 reasons to use Adobe Flex
Developing RIAs... 10 reasons to use Adobe FlexDeveloping RIAs... 10 reasons to use Adobe Flex
Developing RIAs... 10 reasons to use Adobe FlexMatthias Zeller
 
Adc2012 windows phone 8
Adc2012 windows phone 8Adc2012 windows phone 8
Adc2012 windows phone 8AlexanderGoetz
 
Windows Phone 8 Advanced Developers Conference
Windows Phone 8 Advanced Developers ConferenceWindows Phone 8 Advanced Developers Conference
Windows Phone 8 Advanced Developers ConferenceDamir Dobric
 
Mix Tech Ed Update No Video
Mix Tech Ed Update No VideoMix Tech Ed Update No Video
Mix Tech Ed Update No VideoAllyWick
 
SLUGUK BUILD Round-up
SLUGUK BUILD Round-upSLUGUK BUILD Round-up
SLUGUK BUILD Round-upDerek Lakin
 
1 introduction of android
1 introduction of android1 introduction of android
1 introduction of androidakila_mano
 
MobiCloud: Towards Cloud Mobile Hybrid Application Generation using Semantica...
MobiCloud: Towards Cloud Mobile Hybrid Application Generation using Semantica...MobiCloud: Towards Cloud Mobile Hybrid Application Generation using Semantica...
MobiCloud: Towards Cloud Mobile Hybrid Application Generation using Semantica...Amit Sheth
 
Magic mobile webinar_Jan2013
Magic mobile webinar_Jan2013Magic mobile webinar_Jan2013
Magic mobile webinar_Jan2013Magic Software
 
Building Windows8 Metro Applications
Building Windows8 Metro ApplicationsBuilding Windows8 Metro Applications
Building Windows8 Metro ApplicationsAbhishek Sur
 
Best android frameworks for app development in 2023.pdf
Best android frameworks for app development in 2023.pdfBest android frameworks for app development in 2023.pdf
Best android frameworks for app development in 2023.pdfLaura Miller
 
Introduction to Metro Applications
Introduction to Metro ApplicationsIntroduction to Metro Applications
Introduction to Metro ApplicationsMichael Collins
 
09 09-2013 android-introduction p_pt
09 09-2013 android-introduction p_pt09 09-2013 android-introduction p_pt
09 09-2013 android-introduction p_ptTOPS Technologies
 
iFactr for Health Care Companies
iFactr for Health Care CompaniesiFactr for Health Care Companies
iFactr for Health Care CompaniesiFactr
 
Real World Architectures Using Windows Azure Mobile Services
Real World Architectures Using Windows Azure Mobile ServicesReal World Architectures Using Windows Azure Mobile Services
Real World Architectures Using Windows Azure Mobile ServicesKristof Rennen
 
Android Applications Development (a Walkthrough)
Android Applications Development (a Walkthrough)Android Applications Development (a Walkthrough)
Android Applications Development (a Walkthrough)Deuphil Kaufmann
 

Similar to Developing for Windows Phone 8 and Windows 8 (20)

Conociendo el ecosistema de Windows Phone 8 y Windows 8
Conociendo el ecosistema de Windows Phone 8 y Windows 8Conociendo el ecosistema de Windows Phone 8 y Windows 8
Conociendo el ecosistema de Windows Phone 8 y Windows 8
 
Mobile Devolpment Slides
Mobile Devolpment SlidesMobile Devolpment Slides
Mobile Devolpment Slides
 
Windows 8 & JavaScript
Windows 8 & JavaScriptWindows 8 & JavaScript
Windows 8 & JavaScript
 
Planning for Windows 10 and Internet Explorer 11
Planning for Windows 10 and Internet Explorer 11 Planning for Windows 10 and Internet Explorer 11
Planning for Windows 10 and Internet Explorer 11
 
Developing RIAs... 10 reasons to use Adobe Flex
Developing RIAs... 10 reasons to use Adobe FlexDeveloping RIAs... 10 reasons to use Adobe Flex
Developing RIAs... 10 reasons to use Adobe Flex
 
Adc2012 windows phone 8
Adc2012 windows phone 8Adc2012 windows phone 8
Adc2012 windows phone 8
 
Windows Phone 8 Advanced Developers Conference
Windows Phone 8 Advanced Developers ConferenceWindows Phone 8 Advanced Developers Conference
Windows Phone 8 Advanced Developers Conference
 
Mix Tech Ed Update No Video
Mix Tech Ed Update No VideoMix Tech Ed Update No Video
Mix Tech Ed Update No Video
 
SLUGUK BUILD Round-up
SLUGUK BUILD Round-upSLUGUK BUILD Round-up
SLUGUK BUILD Round-up
 
1 introduction of android
1 introduction of android1 introduction of android
1 introduction of android
 
MobiCloud: Towards Cloud Mobile Hybrid Application Generation using Semantica...
MobiCloud: Towards Cloud Mobile Hybrid Application Generation using Semantica...MobiCloud: Towards Cloud Mobile Hybrid Application Generation using Semantica...
MobiCloud: Towards Cloud Mobile Hybrid Application Generation using Semantica...
 
Magic mobile webinar_Jan2013
Magic mobile webinar_Jan2013Magic mobile webinar_Jan2013
Magic mobile webinar_Jan2013
 
Building Windows8 Metro Applications
Building Windows8 Metro ApplicationsBuilding Windows8 Metro Applications
Building Windows8 Metro Applications
 
Best android frameworks for app development in 2023.pdf
Best android frameworks for app development in 2023.pdfBest android frameworks for app development in 2023.pdf
Best android frameworks for app development in 2023.pdf
 
Introduction to Metro Applications
Introduction to Metro ApplicationsIntroduction to Metro Applications
Introduction to Metro Applications
 
09 09-2013 android-introduction p_pt
09 09-2013 android-introduction p_pt09 09-2013 android-introduction p_pt
09 09-2013 android-introduction p_pt
 
iFactr for Health Care Companies
iFactr for Health Care CompaniesiFactr for Health Care Companies
iFactr for Health Care Companies
 
Real World Architectures Using Windows Azure Mobile Services
Real World Architectures Using Windows Azure Mobile ServicesReal World Architectures Using Windows Azure Mobile Services
Real World Architectures Using Windows Azure Mobile Services
 
Android Applications Development (a Walkthrough)
Android Applications Development (a Walkthrough)Android Applications Development (a Walkthrough)
Android Applications Development (a Walkthrough)
 
Android Applications Development
Android Applications DevelopmentAndroid Applications Development
Android Applications Development
 

More from Dave Bost

Live Tiles and Notifications in Windows Phone
Live Tiles and Notifications in Windows PhoneLive Tiles and Notifications in Windows Phone
Live Tiles and Notifications in Windows PhoneDave Bost
 
Introduction to Silverlight for Windows Phone
Introduction to Silverlight for Windows PhoneIntroduction to Silverlight for Windows Phone
Introduction to Silverlight for Windows PhoneDave Bost
 
MSDN Presents: Visual Studio 2010, .NET 4, SharePoint 2010 for Developers
MSDN Presents: Visual Studio 2010, .NET 4, SharePoint 2010 for DevelopersMSDN Presents: Visual Studio 2010, .NET 4, SharePoint 2010 for Developers
MSDN Presents: Visual Studio 2010, .NET 4, SharePoint 2010 for DevelopersDave Bost
 
Microsoft+PHP: Make Web Not War
Microsoft+PHP: Make Web Not WarMicrosoft+PHP: Make Web Not War
Microsoft+PHP: Make Web Not WarDave Bost
 
The Windows Azure Platform (MSDN Events Series)
The Windows Azure Platform (MSDN Events Series)The Windows Azure Platform (MSDN Events Series)
The Windows Azure Platform (MSDN Events Series)Dave Bost
 
Azure - The Next Frontier
Azure - The Next FrontierAzure - The Next Frontier
Azure - The Next FrontierDave Bost
 
Internet Explorer 8 Developer Overview
Internet Explorer 8 Developer OverviewInternet Explorer 8 Developer Overview
Internet Explorer 8 Developer OverviewDave Bost
 
Windows 7 Developer Overview
Windows 7 Developer OverviewWindows 7 Developer Overview
Windows 7 Developer OverviewDave Bost
 
Shine a Light with Prism (the Composite Application Guidance for WPF and Silv...
Shine a Light with Prism (the Composite Application Guidance for WPF and Silv...Shine a Light with Prism (the Composite Application Guidance for WPF and Silv...
Shine a Light with Prism (the Composite Application Guidance for WPF and Silv...Dave Bost
 
ASP.NET 3.5 SP1 (VSLive San Francisco 2009)
ASP.NET 3.5 SP1 (VSLive San Francisco 2009)ASP.NET 3.5 SP1 (VSLive San Francisco 2009)
ASP.NET 3.5 SP1 (VSLive San Francisco 2009)Dave Bost
 
Silverlight 2
Silverlight 2Silverlight 2
Silverlight 2Dave Bost
 
Building Applications for SQL Server 2008
Building Applications for SQL Server 2008Building Applications for SQL Server 2008
Building Applications for SQL Server 2008Dave Bost
 
A Lap Around Windows Azure
A Lap Around Windows AzureA Lap Around Windows Azure
A Lap Around Windows AzureDave Bost
 
WPF Unleashed: Building Application with Visual Studio 2008 SP1
WPF Unleashed: Building Application with Visual Studio 2008 SP1WPF Unleashed: Building Application with Visual Studio 2008 SP1
WPF Unleashed: Building Application with Visual Studio 2008 SP1Dave Bost
 
MSDN Unleashed: WPF Demystified
MSDN Unleashed: WPF DemystifiedMSDN Unleashed: WPF Demystified
MSDN Unleashed: WPF DemystifiedDave Bost
 
A Tour of CodePlex
A Tour of CodePlexA Tour of CodePlex
A Tour of CodePlexDave Bost
 

More from Dave Bost (16)

Live Tiles and Notifications in Windows Phone
Live Tiles and Notifications in Windows PhoneLive Tiles and Notifications in Windows Phone
Live Tiles and Notifications in Windows Phone
 
Introduction to Silverlight for Windows Phone
Introduction to Silverlight for Windows PhoneIntroduction to Silverlight for Windows Phone
Introduction to Silverlight for Windows Phone
 
MSDN Presents: Visual Studio 2010, .NET 4, SharePoint 2010 for Developers
MSDN Presents: Visual Studio 2010, .NET 4, SharePoint 2010 for DevelopersMSDN Presents: Visual Studio 2010, .NET 4, SharePoint 2010 for Developers
MSDN Presents: Visual Studio 2010, .NET 4, SharePoint 2010 for Developers
 
Microsoft+PHP: Make Web Not War
Microsoft+PHP: Make Web Not WarMicrosoft+PHP: Make Web Not War
Microsoft+PHP: Make Web Not War
 
The Windows Azure Platform (MSDN Events Series)
The Windows Azure Platform (MSDN Events Series)The Windows Azure Platform (MSDN Events Series)
The Windows Azure Platform (MSDN Events Series)
 
Azure - The Next Frontier
Azure - The Next FrontierAzure - The Next Frontier
Azure - The Next Frontier
 
Internet Explorer 8 Developer Overview
Internet Explorer 8 Developer OverviewInternet Explorer 8 Developer Overview
Internet Explorer 8 Developer Overview
 
Windows 7 Developer Overview
Windows 7 Developer OverviewWindows 7 Developer Overview
Windows 7 Developer Overview
 
Shine a Light with Prism (the Composite Application Guidance for WPF and Silv...
Shine a Light with Prism (the Composite Application Guidance for WPF and Silv...Shine a Light with Prism (the Composite Application Guidance for WPF and Silv...
Shine a Light with Prism (the Composite Application Guidance for WPF and Silv...
 
ASP.NET 3.5 SP1 (VSLive San Francisco 2009)
ASP.NET 3.5 SP1 (VSLive San Francisco 2009)ASP.NET 3.5 SP1 (VSLive San Francisco 2009)
ASP.NET 3.5 SP1 (VSLive San Francisco 2009)
 
Silverlight 2
Silverlight 2Silverlight 2
Silverlight 2
 
Building Applications for SQL Server 2008
Building Applications for SQL Server 2008Building Applications for SQL Server 2008
Building Applications for SQL Server 2008
 
A Lap Around Windows Azure
A Lap Around Windows AzureA Lap Around Windows Azure
A Lap Around Windows Azure
 
WPF Unleashed: Building Application with Visual Studio 2008 SP1
WPF Unleashed: Building Application with Visual Studio 2008 SP1WPF Unleashed: Building Application with Visual Studio 2008 SP1
WPF Unleashed: Building Application with Visual Studio 2008 SP1
 
MSDN Unleashed: WPF Demystified
MSDN Unleashed: WPF DemystifiedMSDN Unleashed: WPF Demystified
MSDN Unleashed: WPF Demystified
 
A Tour of CodePlex
A Tour of CodePlexA Tour of CodePlex
A Tour of CodePlex
 

Recently uploaded

Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 

Recently uploaded (20)

Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 

Developing for Windows Phone 8 and Windows 8

  • 1. October 1st 2012 Cross Development Windows 8 and Windows Phone 8 Dave Bost Technical Evangelist, Windows Phone http://davebost.com @davebost
  • 2. 30 Days to Launch Launch your App or Game in 30 days Generation App  Online training and tips from insiders  App and Game dev content  Tele-support with a Windows 8 architect  Exclusive one-on-one WinRT and Windows UX design consultation http://aka.ms/FreeBeer
  • 3. Best Practices for Windows 8 / Windows Phone 8 • Linked files • #if conditionals • Using Extension methods to bridge implementation differences • MVVM • Portable Class Libraries • A common user experience bringing high-quality experiences to the user. 3 Microsoft confidential 12/6/2012
  • 4. Common Structure Windows 8 Windows Phone 8 4 Microsoft confidential 12/6/2012
  • 5. Common APIs in Windows 8 and Windows Phone 8
  • 6. Windows Phone 8 Developer Platform XAML Apps Direct3D Apps In-App XAML Maps Geolocation Sensors Direct3D Purchase HTML XML Threading Touch Speech XAudio2 Your apps Phone Features Push Camera Video Proximity Media Foundation Your way Calendar Wallet Contacts Core Types VoIP STL Multitasking Live Tiles Memory Async Enterprise CRT C# and VB C#, VB, and C++ C++ File system, Networking, Graphics, Media Core Operating System
  • 7. “Add as Link” 7 Microsoft confidential 12/6/2012
  • 8. “Add as Link” Windows 8 Windows Phone 8 8 Microsoft confidential 12/6/2012
  • 9. Common APIs Common Different Base Class Library Launchers and Choosers Hardware Sharing APIs Storage (Files and Folders) 9 Microsoft confidential 12/6/2012
  • 10. #if Conditional Blocks Windows 8 #if NETFX_CORE Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () => { #endif Windows Phone 8 #if WINDOWS_PHONE Deployment.Current.Dispatcher.BeginInvoke(() => { #endif 10 Microsoft confidential 12/6/2012
  • 11. Threading Windows 8 AND Windows Phone 8 #if NETFX_CORE Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () => { #else Deployment.Current.Dispatcher.BeginInvoke(() => { #endif double _accelX = args.Reading.AccelerationX; double _accelY = args.Reading.AccelerationY; 11 Microsoft confidential 12/6/2012
  • 12. Web Service 12 Microsoft confidential 12/6/2012
  • 13. HttpWebResponse and HttpWebRequest Windows 8 var request = (HttpWebRequest)WebRequest.Create(autoCompleteUri); HttpWebResponse response = (HttpWebResponse)await request.GetResponseAsync(); // retrieve data using StreamReader 13 Microsoft confidential 12/6/2012
  • 14. HttpWebResponse and HttpWebRequest Windows Phone 8 var request = (HttpWebRequest)WebRequest.Create(autoCompleteUri); request.BeginGetResponse(new AsyncCallback(AutoCompleteCallback), request); } private void AutoCompleteCallback(IAsyncResult callback) { HttpWebRequest request = (HttpWebRequest)callback.AsyncState; HttpWebResponse response = (HttpWebResponse)request.EndGetResponse(callback); // retrieve data using StreamReader } 14 Microsoft confidential 12/6/2012
  • 16. Extension Methods Windows Phone 8 HttpWebRequest Extension public static Task<HttpWebResponse> GetResponseAsync(this HttpWebRequest request) { var taskComplete = new TaskCompletionSource<HttpWebResponse>(); request.BeginGetResponse(asyncResponse => { HttpWebRequest responseRequest = (HttpWebRequest)asyncResponse.AsyncState; HttpWebResponse someResponse = (HttpWebResponse)responseRequest.EndGetResponse(asyncResponse); taskComplete.TrySetResult(someResponse); }, request); return taskComplete.Task; } 16 Microsoft confidential 12/6/2012
  • 17. HttpWebResponse and HttpWebRequest Windows 8 AND Windows Phone 8 var request = (HttpWebRequest)WebRequest.Create(autoCompleteUri); HttpWebResponse response = (HttpWebResponse)await request.GetResponseAsync(); // retrieve data using StreamReader 17 Microsoft confidential 12/6/2012
  • 21.
  • 23.
  • 24. UI Differences and XAML 24 Microsoft confidential 12/6/2012
  • 25. Different Form Factors Require Different UX Windows Phone 8 Windows 8 Screen Size Screen Size 800x480 1024x768 1280x720 2,560x1,440 1280x768 everything in between 25 Microsoft confidential 12/6/2012
  • 26. Different Form Factors Require Different UX Windows Phone 8 Windows 8 Orientation Orientation Portrait Portrait Landscape Landscape Snapped 26 Microsoft confidential 12/6/2012
  • 27. Different Controls GridView Group-able Array of Tiles Dynamic item size 27 Microsoft confidential
  • 28. Different Controls FlipView Browsing View Touch-optimized for left-right navigation 28 Microsoft confidential
  • 29.
  • 30. Different Form Factors Require Different UX Panorama Introduction and exploratory content 30 Microsoft confidential
  • 31. Different Form Factors Require Different UX Pivot Scanning views Grouped information 31 Microsoft confidential
  • 32. Different Form Factors Require Different UX LongListSelector Headers and Footers Group header navigation 32 Microsoft confidential
  • 33.
  • 34.
  • 35. Different Form Factors Require Different UX GridView  LongListSelector 35 Microsoft confidential
  • 37. Windows 8 / Windows Phone 8 Apps Are a Perfect Match • Abstracting Models, ViewModels • Binding data to the View • Linked files • Models, Services could be encapsulated in Portable Class Libraries • Shared APIs (hardware, storage, base class libraries) • Using #if conditionals for small code differences • Using Extension methods to bridge implementation differences • Async-await model for HttpWebResponse/Request • Focus on the user experience that works for the form factor 37 Microsoft confidential 12/6/2012
  • 38. The information herein is for informational interpreted to be a commitment on the part of purposes only an represents the current view of Microsoft, and Microsoft cannot guarantee the Microsoft Corporation as of the date of this accuracy of any information provided after the presentation. Because Microsoft must respond date of this presentation. to changing market conditions, it should not be MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION. © 2012 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.

Editor's Notes

  1. Welcome to Cross Development for Windows 8 and Windows Phone 8. In the next hour we’re going to go over the best practices, tips and tricks for developing applications that will delight users across devices powered by both Windows 8 and Windows Phone 8.
  2. Right off the bat, we can see we have a similar structure. App.xaml handles our resource management, App.xaml.cs handles launching and suspension methods, the MainPage.xaml page contains the UI and has been set to the initial screen on startup.The big difference between these two projects is that the Windows Phone 8 version has been prepared to make localization a little easier.But the bulk of the functionality that we want to look at is in the MainPage.xaml.cs
  3. So lets look at implementing common APIs between Windows 8 and Windows Phone 8
  4. But no! Because we’re going to add the files as links into our Windows Phone 8 project. We just right click in our project, add an existing item and make sure that we “Add as Link” instead of a simple “Add”. This way when we change the file, all the changes will be implemented in both application and we won’t be stuck going back and forth copying code between our apps.
  5. And we can see our linked classes in our Windows Phone 8 application. Perfect. Nice, healthy shared code between both projects.
  6. So what kind of common code can we expect to have across our projects? The commonalities include the .NET Base Class Library, as well as Hardware and Storage APIs. This is where we see the common Windows Runtime Kernel running across Windows 8 and Windows Phone paying off. But we’ll need to pause when we’re using launchers, choosers and sharing APIs that push us out to functionality that reaches beyond our application. These have been implemented differently in Windows 8 and in Windows Phone 8 because they are going to have different launcher and chooser applications and native capabilities. And the way we share and launch external functionality has been carefully designed to create the best user experience on each platform.
  7. No, of course not. If we have a situation where there are small difference in code compatibilities, we can use compiler conditional statements to separate the incompatible lines. In the case of Windows 8 development we would say #if NETFX_CORE and for Windows Phone we have the slightly more obvious #if WINDOWS_PHONE. We should consider using this implementation when there are small differences, this isn’t a catch-all approach. If we over use it, we can make our code unreadable, unmaintainable and just plain ugly. But it is perfect for situations where you require a specific namespace for your app (for example the Windows.UI.Xaml namespace which exists in Windows 8 but not in Windows Phone) or if there are small method differences.
  8. So we can handle this threading dispatcher issue using compiler conditionals and now we have fully functioning accelerometer code that works on both platforms.
  9. We have to add a name for our app and, well, this is on a phone and I hate having to do all that typing so I think we should add a simple web service that can go out and get some suggestions for us while we type.
  10. In Windows 8, we can hit that web service using the very elegant async-await model. GetResponseAsync and all our async goodness is handled for us. We don’t need a callback, we don’t need to fire any events or construct any listeners, we can just await the response.
  11. But in Windows Phone 8, we don’t have that option. This isn’t really a problem that can be solved using compiler conditionals because that would require a very impressive kind of code gymnastics. We need the Windows Phone version of the HttpWebResponse and HttpWebRequest to work in an async manner.
  12. So lets look at implementing common APIs between Windows 8 and Windows Phone 8
  13. For this we can use Extension methods to encapsulate the functionality of the HttpWebRequest in such a way as to make it async. Using the TaskCompletionSource, we can wrap the HttpWebRequest in such a way that it returns a task. We give it the same name… GetResponseAsync()… that it has in Windows 8.
  14. And now our Web Service works exactly the same using exactly the same async-await model across both platforms. This compatibility trickles down through our application so that now, because our HttpWebRequest is awaitable, so is our service and we can use it the same way in our ViewModel when we want to get new data.
  15. MVVMAbstraction pattern
  16. Model – Not UI relatedView Model – Encapsulates hat to display and flow of interactionView – Defines dow to display information from the View ModelHow does this relate to portable libraries? View – needs to be different per platform. View Model and Model can be the same between platforms.So this pattern is ideally suited for creating cross-platform apps, because it encourages a clean separation between the parts of your code that should be shared and those that are platform specific
  17. We can do better! Developers should expect that they can write a library that uses APIs that are available on multiple platforms and use that library unchanged on those platforms.
  18. Portable: BCL, XML, LINQ, XLINQ, WCF, Networking, ViewModel types, DataContract/XML/Json serialization, Data annotationsNot Portable: UI, File system or other persisted storage access, interaction with OS (notifications, picture choosers, win8 contracts, app lifecycle, etc)
  19. What besides the UI wasn’t portable? File system, interaction with the OS.The View Models and Models will need that functionality. So…
  20. Huh. We may wonder what went wrong here. The answer is “nothing”. The XAML is acting just the way it is supposed to act. It compiles, it runs, everything from the default styling to the user interactions all work. However, let’s take one step back and talk about the most important element of cross development between Windows 8 and Windows Phone 8.
  21. We need to keep in mind we’re looking at two very different form factors. Windows Phone runs at 3 resolutions, on phone screens from 3.5 inches to 4.8 inches. Windows 8 runs on screen resolutions to 1024x768 to 2,560 x 1,440 although this is by no means a limit. Windows 8 powers 10 inch tablets and 82 in screens that take up the entire wall.
  22. The same goes for orientation. Windows Phone supports portrait and landscape mode, but Windows 8 supports Portrait, landscape and the third-screen snapped mode. Each of these modes requires consideration in design, spacing, an interaction.
  23. To aid in these considerations, Windows 8 and Windows Phone 8 have unique controls that have been designed with their particular form factors in mind. Some of the specialized controls for Windows 8 include GridView: (groupable) tile array. Also possible to dynamically size items in the grid. The GridView comes with built in styles for input and selectionSemanticZoom: Allows for quick jump through large lists of grid itemsFlipView: Browsing view optimised for touch to pane left-right through sequential items.
  24. To aid in these considerations, Windows 8 and Windows Phone 8 have unique controls that have been designed with their particular form factors in mind. Some of the specialized controls for Windows 8 include GridView: (groupable) tile array. Also possible to dynamically size items in the grid. The GridView comes with built in styles for input and selectionSemanticZoom: Allows for quick jump through large lists of grid itemsFlipView: Browsing view optimised for touch to pane left-right through sequential items.
  25. To aid in these considerations, Windows 8 and Windows Phone 8 have unique controls that have been designed with their particular form factors in mind. Some of the specialized controls for Windows 8 include GridView: (groupable) tile array. Also possible to dynamically size items in the grid. The GridView comes with built in styles for input and selectionSemanticZoom: Allows for quick jump through large lists of grid itemsFlipView: Browsing view optimised for touch to pane left-right through sequential items.
  26. On the Windows Phone side of things, we have controls customized to a phone experience. The Panorama control is designed to give users a sort of “landing” space where they can get a feel for the content of the application explore that content in an open interactive environment.
  27. If the Panorama is the open, casual inviting control for introducing the user to the content, think of the pivot as the no-nonsense control for delivering content. With the Panorama, the user can see what is just around the corner, so to speak, but with the Pivot control, the focus is on the content in front of me right this moment. We still have quick easy access to additional content, but the focus is a little different.
  28. New to Windows Phone 8 is the LongListSelector control. This is the recommended control for list-based UI’s, replacing the ListBox. It is optimized for scrolling speed, but also implements a “group selection” interface so that the user can move quickly between grouped items in a very long list. Here we can see that group selection applied to an alphabetical list, but you could define a set of groups and then use the group selection to navigate between them.
  29. So what does this mean practically? It means that when we’re thinking about how we’re going to design our two applications, we should consider making use of the customized UI features of either Windows 8 or Windows Phone 8. For example, the semantic zoom control lets us see groups of items at a high level and then drill into them until we select one. That behaviour is similar in many ways to what the pivot control does. We should consider using the Pivot for the Phone and the SemanticZoom for Windows 8.
  30. And when we select an item? Windows 8 has a very powerful paradigm of horizontal scrolling, but it’s a paradigm that doesn’t make sense in the context of a phone. So instead of mimicking the horizontal scrolling UI we see in Windows 8, we should translate that into a vertical scrolling UI that fits the phone more appropriately.
  31. And if we have a long list of grouped items in Windows Phone 8, we might want to consider implementing them as a GridView in Windows 8. We just need to keep in mind that this is less about mimicking
  32. So you can see our ball moves around just fine on both platforms using the same code. But remember how we can save the game and recall it later on another device? Let’s try doing that. We have to add a name for our app and, well, this is on a phone and I hate having to do all that typing so I think we should add a simple web service that can go out and get some suggestions for us while we type.
  33. In summary…