SlideShare a Scribd company logo
1 of 31
Developing Multi Targetting
Win8 & WP8 Apps.
Jose Luis Latorre
Senior Developer, Accenture
UI Lead Developer, Roche Diagnostics
joslat@gmail.com - @joslat
http://silverlightguy.com
The importance of Multi Targeting 5’
ABC of Multi Targeting            10’
MVVM                              5’    Agenda
Creating our Multi Targeting App 25’


Summarizing + Q & A              5’
The Importance of
Multi Targeting
It is important. that’s why you are here, right?
Windows Phone 8
Windows Phone 7.x



                Direct3D, XAudi
Windows Phone
     .NET       o2, MF, WASAPI,
   Runtime
                 WIN32, COM



   C#, VB
 C#, VB, C++         C++
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
Networking
                  Proximity
                  In-App Purchase
                  Sensors
         2,800    Location
 11,000  shared   File System
members members   Core app model
                  Threading
ABC of Multi
Targeting
Let’s see the main points on how to do it right, the first time.
• Share code across platforms using Portable
  Class Libraries
• Apply MVVM to wire cross-platform apps
• Create portable abstractions for non-portable
  functionality
• Link Source code files between platforms.

• Create platform specific Views

• Share UI with user controls

• Always Decouple! Create Clean & SOLID
  Code.
portable class
library
One Source
One Project
One Binary

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



Windows Phone 8
#if WINDOWS_PHONE
Deployment.Current.Dispatcher.BeginInvoke(() => {
#endif
public class ServiceLocator
{
    public static IFileStorage FileStorage { get; set; }
    public static IPhotoChooser PhotoChooser { get; set; }
}
MVVM
It deserves its own section on this XAML world.
User Interface




 App Logic




General          Model-View-ViewModel (MVVM)
Creating our Multi
Targeting App
We will see how to create a Windows Store & Windows Phone
App that share code and components.
• Usage of PCL to share code
• Portable.MvvmLightLibs &
  Portable.CommonService Locator
• MVVM done right
• Linking code
• Usage of the Repository pattern
• Creation of our first ViewModel
• OData Client Tools for Windows Store &
  Windows Phone Apps
  (http://msdn.microsoft.com/en-us/jj658961)
Do not trust the web…
Summary..
So, what have we seen?
Applying best practices is a
must
Using proper design patterns
too
Sharing Code through PCL &
Linking
MVVM is fundamental
Jose Luis Latorre
Email: joslat@gmail.com
Twitter: @joslat
Blog: http://Silverlightguy.com
Shape 2013   developing multi targeting windows store and windows phone apps
Shape 2013   developing multi targeting windows store and windows phone apps

More Related Content

What's hot

실전 윈도우폰 망고 앱 디자인 & 개발 III(최종)
실전 윈도우폰 망고 앱 디자인 & 개발 III(최종)실전 윈도우폰 망고 앱 디자인 & 개발 III(최종)
실전 윈도우폰 망고 앱 디자인 & 개발 III(최종)mosaicnet
 
Portfolio of Nicole Haishu LI
Portfolio of Nicole Haishu LIPortfolio of Nicole Haishu LI
Portfolio of Nicole Haishu LINicole Li
 
Cross platform native mobile app development for iOS, Android and Windows usi...
Cross platform native mobile app development for iOS, Android and Windows usi...Cross platform native mobile app development for iOS, Android and Windows usi...
Cross platform native mobile app development for iOS, Android and Windows usi...Marcel de Vries
 
Introduction to MonoTouch
Introduction to MonoTouchIntroduction to MonoTouch
Introduction to MonoTouchmobiweave
 
Microsoft Windows Phone 7 Platform [IndicThreads Mobile Application Developm...
Microsoft Windows Phone 7 Platform  [IndicThreads Mobile Application Developm...Microsoft Windows Phone 7 Platform  [IndicThreads Mobile Application Developm...
Microsoft Windows Phone 7 Platform [IndicThreads Mobile Application Developm...IndicThreads
 
Weirdmeetup xamarin-presentation
Weirdmeetup xamarin-presentationWeirdmeetup xamarin-presentation
Weirdmeetup xamarin-presentationHanul Park
 
The platform and ecosystem strategy of Windows 8
The platform and ecosystem strategy of Windows 8 The platform and ecosystem strategy of Windows 8
The platform and ecosystem strategy of Windows 8 Jae Woo Kim
 
Ericsson Labs at SotM 2010
Ericsson Labs at SotM 2010Ericsson Labs at SotM 2010
Ericsson Labs at SotM 2010Tor Björn Minde
 
Flying Pixels Ent Apps Jeremy Chone
Flying Pixels Ent Apps Jeremy ChoneFlying Pixels Ent Apps Jeremy Chone
Flying Pixels Ent Apps Jeremy Chonerajivmordani
 
Introduction to Metro Applications
Introduction to Metro ApplicationsIntroduction to Metro Applications
Introduction to Metro ApplicationsMichael Collins
 
Bam amor mobile development tools
Bam amor   mobile development toolsBam amor   mobile development tools
Bam amor mobile development toolsBam Amor
 
ITCamp 2012 - Raffaele Rialdi - Introduction to WinRT
ITCamp 2012 - Raffaele Rialdi - Introduction to WinRTITCamp 2012 - Raffaele Rialdi - Introduction to WinRT
ITCamp 2012 - Raffaele Rialdi - Introduction to WinRTITCamp
 
Windows 8 and the cloud a match made in heaven
Windows 8 and the cloud a match made in heavenWindows 8 and the cloud a match made in heaven
Windows 8 and the cloud a match made in heavenNoam Sheffer
 
Meego Italian Day 2011 - Dr. Luca Roffia
Meego Italian Day 2011 - Dr. Luca RoffiaMeego Italian Day 2011 - Dr. Luca Roffia
Meego Italian Day 2011 - Dr. Luca RoffiaFrancesco Baldassarri
 
Mobile application platforms - Introduction
Mobile application platforms - IntroductionMobile application platforms - Introduction
Mobile application platforms - IntroductionMobileMonday Switzerland
 
Introduction to Flex
Introduction to FlexIntroduction to Flex
Introduction to Flexnamero999
 
Lcds & Blaze Ds by Corneliu Creanga
Lcds & Blaze Ds by Corneliu CreangaLcds & Blaze Ds by Corneliu Creanga
Lcds & Blaze Ds by Corneliu CreangaJUG Genova
 

What's hot (20)

Geek a-paloozaaa metro-xaml_appdev
Geek a-paloozaaa metro-xaml_appdevGeek a-paloozaaa metro-xaml_appdev
Geek a-paloozaaa metro-xaml_appdev
 
실전 윈도우폰 망고 앱 디자인 & 개발 III(최종)
실전 윈도우폰 망고 앱 디자인 & 개발 III(최종)실전 윈도우폰 망고 앱 디자인 & 개발 III(최종)
실전 윈도우폰 망고 앱 디자인 & 개발 III(최종)
 
Portfolio of Nicole Haishu LI
Portfolio of Nicole Haishu LIPortfolio of Nicole Haishu LI
Portfolio of Nicole Haishu LI
 
Win8 ru
Win8 ruWin8 ru
Win8 ru
 
Cross platform native mobile app development for iOS, Android and Windows usi...
Cross platform native mobile app development for iOS, Android and Windows usi...Cross platform native mobile app development for iOS, Android and Windows usi...
Cross platform native mobile app development for iOS, Android and Windows usi...
 
Introduction to MonoTouch
Introduction to MonoTouchIntroduction to MonoTouch
Introduction to MonoTouch
 
Microsoft Windows Phone 7 Platform [IndicThreads Mobile Application Developm...
Microsoft Windows Phone 7 Platform  [IndicThreads Mobile Application Developm...Microsoft Windows Phone 7 Platform  [IndicThreads Mobile Application Developm...
Microsoft Windows Phone 7 Platform [IndicThreads Mobile Application Developm...
 
Weirdmeetup xamarin-presentation
Weirdmeetup xamarin-presentationWeirdmeetup xamarin-presentation
Weirdmeetup xamarin-presentation
 
The platform and ecosystem strategy of Windows 8
The platform and ecosystem strategy of Windows 8 The platform and ecosystem strategy of Windows 8
The platform and ecosystem strategy of Windows 8
 
Ericsson Labs at SotM 2010
Ericsson Labs at SotM 2010Ericsson Labs at SotM 2010
Ericsson Labs at SotM 2010
 
Flying Pixels Ent Apps Jeremy Chone
Flying Pixels Ent Apps Jeremy ChoneFlying Pixels Ent Apps Jeremy Chone
Flying Pixels Ent Apps Jeremy Chone
 
Introduction to Metro Applications
Introduction to Metro ApplicationsIntroduction to Metro Applications
Introduction to Metro Applications
 
DEEPTI REVANKAR_RESUME
DEEPTI REVANKAR_RESUMEDEEPTI REVANKAR_RESUME
DEEPTI REVANKAR_RESUME
 
Bam amor mobile development tools
Bam amor   mobile development toolsBam amor   mobile development tools
Bam amor mobile development tools
 
ITCamp 2012 - Raffaele Rialdi - Introduction to WinRT
ITCamp 2012 - Raffaele Rialdi - Introduction to WinRTITCamp 2012 - Raffaele Rialdi - Introduction to WinRT
ITCamp 2012 - Raffaele Rialdi - Introduction to WinRT
 
Windows 8 and the cloud a match made in heaven
Windows 8 and the cloud a match made in heavenWindows 8 and the cloud a match made in heaven
Windows 8 and the cloud a match made in heaven
 
Meego Italian Day 2011 - Dr. Luca Roffia
Meego Italian Day 2011 - Dr. Luca RoffiaMeego Italian Day 2011 - Dr. Luca Roffia
Meego Italian Day 2011 - Dr. Luca Roffia
 
Mobile application platforms - Introduction
Mobile application platforms - IntroductionMobile application platforms - Introduction
Mobile application platforms - Introduction
 
Introduction to Flex
Introduction to FlexIntroduction to Flex
Introduction to Flex
 
Lcds & Blaze Ds by Corneliu Creanga
Lcds & Blaze Ds by Corneliu CreangaLcds & Blaze Ds by Corneliu Creanga
Lcds & Blaze Ds by Corneliu Creanga
 

Viewers also liked

Is It True That (Presentation Intercultural Management Course 2011) Version 1...
Is It True That (Presentation Intercultural Management Course 2011) Version 1...Is It True That (Presentation Intercultural Management Course 2011) Version 1...
Is It True That (Presentation Intercultural Management Course 2011) Version 1...Pozzolini
 
iaa 2009 + vicente perez, mikel larios, mikel sanz
iaa 2009 + vicente perez, mikel larios, mikel sanziaa 2009 + vicente perez, mikel larios, mikel sanz
iaa 2009 + vicente perez, mikel larios, mikel sanzvicente46
 
Surtsey
SurtseySurtsey
Surtseyjanusg
 
Introduction To OpenMI
Introduction To OpenMIIntroduction To OpenMI
Introduction To OpenMIJan Gregersen
 
Surtsey
SurtseySurtsey
Surtseyjanusg
 
1.0 Lesson One The I Needs The You Beta One 1.06 01012010
1.0 Lesson One The I Needs The You Beta One 1.06 010120101.0 Lesson One The I Needs The You Beta One 1.06 01012010
1.0 Lesson One The I Needs The You Beta One 1.06 01012010Pozzolini
 
AR Codes For PokéMon Diamond
AR Codes For PokéMon DiamondAR Codes For PokéMon Diamond
AR Codes For PokéMon Diamondguest9cfd97a
 
Using Market Research to Improve Student Experiences
Using Market Research to Improve Student ExperiencesUsing Market Research to Improve Student Experiences
Using Market Research to Improve Student ExperiencesCass Erbs
 
Dextrys IT Services Organization Overview
Dextrys IT Services Organization OverviewDextrys IT Services Organization Overview
Dextrys IT Services Organization OverviewLiuweiting
 
Преподавание информационных технологий в ВУЗе: как вырастить специалиста-прак...
Преподавание информационных технологий в ВУЗе: как вырастить специалиста-прак...Преподавание информационных технологий в ВУЗе: как вырастить специалиста-прак...
Преподавание информационных технологий в ВУЗе: как вырастить специалиста-прак...Grigoriy Pechenkin
 
Управление командой аналитиков
Управление командой аналитиковУправление командой аналитиков
Управление командой аналитиковGrigoriy Pechenkin
 

Viewers also liked (20)

Is It True That (Presentation Intercultural Management Course 2011) Version 1...
Is It True That (Presentation Intercultural Management Course 2011) Version 1...Is It True That (Presentation Intercultural Management Course 2011) Version 1...
Is It True That (Presentation Intercultural Management Course 2011) Version 1...
 
Windows 8
Windows 8Windows 8
Windows 8
 
iaa 2009 + vicente perez, mikel larios, mikel sanz
iaa 2009 + vicente perez, mikel larios, mikel sanziaa 2009 + vicente perez, mikel larios, mikel sanz
iaa 2009 + vicente perez, mikel larios, mikel sanz
 
Travades
TravadesTravades
Travades
 
Surtsey
SurtseySurtsey
Surtsey
 
2009.05 CRM Quidgest - Jose Torres
2009.05 CRM Quidgest - Jose Torres2009.05 CRM Quidgest - Jose Torres
2009.05 CRM Quidgest - Jose Torres
 
Md2010 jl-wp7-sl-game-dev
Md2010 jl-wp7-sl-game-devMd2010 jl-wp7-sl-game-dev
Md2010 jl-wp7-sl-game-dev
 
Tribute
TributeTribute
Tribute
 
Introduction To OpenMI
Introduction To OpenMIIntroduction To OpenMI
Introduction To OpenMI
 
Surtsey
SurtseySurtsey
Surtsey
 
Baikin
BaikinBaikin
Baikin
 
Vedenin
VedeninVedenin
Vedenin
 
Goldenthings
GoldenthingsGoldenthings
Goldenthings
 
1.0 Lesson One The I Needs The You Beta One 1.06 01012010
1.0 Lesson One The I Needs The You Beta One 1.06 010120101.0 Lesson One The I Needs The You Beta One 1.06 01012010
1.0 Lesson One The I Needs The You Beta One 1.06 01012010
 
Formación sociocultural ii intro
Formación sociocultural ii introFormación sociocultural ii intro
Formación sociocultural ii intro
 
AR Codes For PokéMon Diamond
AR Codes For PokéMon DiamondAR Codes For PokéMon Diamond
AR Codes For PokéMon Diamond
 
Using Market Research to Improve Student Experiences
Using Market Research to Improve Student ExperiencesUsing Market Research to Improve Student Experiences
Using Market Research to Improve Student Experiences
 
Dextrys IT Services Organization Overview
Dextrys IT Services Organization OverviewDextrys IT Services Organization Overview
Dextrys IT Services Organization Overview
 
Преподавание информационных технологий в ВУЗе: как вырастить специалиста-прак...
Преподавание информационных технологий в ВУЗе: как вырастить специалиста-прак...Преподавание информационных технологий в ВУЗе: как вырастить специалиста-прак...
Преподавание информационных технологий в ВУЗе: как вырастить специалиста-прак...
 
Управление командой аналитиков
Управление командой аналитиковУправление командой аналитиков
Управление командой аналитиков
 

Similar to Shape 2013 developing multi targeting windows store and windows phone apps

Sharing code win8 wp8
Sharing code win8 wp8Sharing code win8 wp8
Sharing code win8 wp8matthidinger
 
HTML5 and the dawn of rich mobile web applications
HTML5 and the dawn of rich mobile web applicationsHTML5 and the dawn of rich mobile web applications
HTML5 and the dawn of rich mobile web applicationsJames Pearce
 
Building Rich Mobile Apps with HTML5, CSS3 and JavaScript
Building Rich Mobile Apps with HTML5, CSS3 and JavaScriptBuilding Rich Mobile Apps with HTML5, CSS3 and JavaScript
Building Rich Mobile Apps with HTML5, CSS3 and JavaScriptSencha
 
Device+Cloud: come sviluppare App moderne ed interconnesse
Device+Cloud: come sviluppare App moderne ed interconnesseDevice+Cloud: come sviluppare App moderne ed interconnesse
Device+Cloud: come sviluppare App moderne ed interconnesseNinja Marketing
 
ArcReady - Architecting For The Client Tier
ArcReady - Architecting For The Client TierArcReady - Architecting For The Client Tier
ArcReady - Architecting For The Client TierMicrosoft ArcReady
 
Windows 8 for .NET Developers
Windows 8 for .NET DevelopersWindows 8 for .NET Developers
Windows 8 for .NET DevelopersMichael Collins
 
Bam windows phone 7 for informatics
Bam   windows phone 7 for informaticsBam   windows phone 7 for informatics
Bam windows phone 7 for informaticsBam Amor
 
Hybrid Mobile Application Framework
Hybrid Mobile Application FrameworkHybrid Mobile Application Framework
Hybrid Mobile Application Framework동수 장
 
Magic mobile webinar_Jan2013
Magic mobile webinar_Jan2013Magic mobile webinar_Jan2013
Magic mobile webinar_Jan2013Magic Software
 
Android unveiled (I)
Android unveiled (I)Android unveiled (I)
Android unveiled (I)denian00
 
S#01 김영욱
S#01 김영욱 S#01 김영욱
S#01 김영욱 codercay
 
Building cross platform mobile web apps
Building cross platform mobile web appsBuilding cross platform mobile web apps
Building cross platform mobile web appsJames Pearce
 
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
 
PhoneGap Day - IBM, PhoneGap and the Enterprise
PhoneGap Day - IBM, PhoneGap and the EnterprisePhoneGap Day - IBM, PhoneGap and the Enterprise
PhoneGap Day - IBM, PhoneGap and the EnterpriseBryce Curtis
 

Similar to Shape 2013 developing multi targeting windows store and windows phone apps (20)

Sharing code win8 wp8
Sharing code win8 wp8Sharing code win8 wp8
Sharing code win8 wp8
 
Introducing Windows Runtime in Windows 8
Introducing Windows Runtime in Windows 8Introducing Windows Runtime in Windows 8
Introducing Windows Runtime in Windows 8
 
Eco system apps
Eco system appsEco system apps
Eco system apps
 
HTML5 and the dawn of rich mobile web applications
HTML5 and the dawn of rich mobile web applicationsHTML5 and the dawn of rich mobile web applications
HTML5 and the dawn of rich mobile web applications
 
Building Rich Mobile Apps with HTML5, CSS3 and JavaScript
Building Rich Mobile Apps with HTML5, CSS3 and JavaScriptBuilding Rich Mobile Apps with HTML5, CSS3 and JavaScript
Building Rich Mobile Apps with HTML5, CSS3 and JavaScript
 
Build Windows 2012
Build Windows 2012Build Windows 2012
Build Windows 2012
 
Device+Cloud: come sviluppare App moderne ed interconnesse
Device+Cloud: come sviluppare App moderne ed interconnesseDevice+Cloud: come sviluppare App moderne ed interconnesse
Device+Cloud: come sviluppare App moderne ed interconnesse
 
ArcReady - Architecting For The Client Tier
ArcReady - Architecting For The Client TierArcReady - Architecting For The Client Tier
ArcReady - Architecting For The Client Tier
 
Windows 8 for .NET Developers
Windows 8 for .NET DevelopersWindows 8 for .NET Developers
Windows 8 for .NET Developers
 
Bam windows phone 7 for informatics
Bam   windows phone 7 for informaticsBam   windows phone 7 for informatics
Bam windows phone 7 for informatics
 
Windows 8
Windows 8Windows 8
Windows 8
 
Deep Dive into WinRT
Deep Dive into WinRTDeep Dive into WinRT
Deep Dive into WinRT
 
Hybrid Mobile Application Framework
Hybrid Mobile Application FrameworkHybrid Mobile Application Framework
Hybrid Mobile Application Framework
 
Magic mobile webinar_Jan2013
Magic mobile webinar_Jan2013Magic mobile webinar_Jan2013
Magic mobile webinar_Jan2013
 
Android unveiled (I)
Android unveiled (I)Android unveiled (I)
Android unveiled (I)
 
S#01 김영욱
S#01 김영욱 S#01 김영욱
S#01 김영욱
 
Building cross platform mobile web apps
Building cross platform mobile web appsBuilding cross platform mobile web apps
Building cross platform mobile web apps
 
TechDays 2013 Developer Keynote
TechDays 2013 Developer KeynoteTechDays 2013 Developer Keynote
TechDays 2013 Developer Keynote
 
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
 
PhoneGap Day - IBM, PhoneGap and the Enterprise
PhoneGap Day - IBM, PhoneGap and the EnterprisePhoneGap Day - IBM, PhoneGap and the Enterprise
PhoneGap Day - IBM, PhoneGap and the Enterprise
 

Recently uploaded

Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...DianaGray10
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesBoston Institute of Analytics
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
 
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Principled Technologies
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingEdi Saputra
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 

Recently uploaded (20)

Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 

Shape 2013 developing multi targeting windows store and windows phone apps

  • 1. Developing Multi Targetting Win8 & WP8 Apps. Jose Luis Latorre Senior Developer, Accenture UI Lead Developer, Roche Diagnostics joslat@gmail.com - @joslat http://silverlightguy.com
  • 2. The importance of Multi Targeting 5’ ABC of Multi Targeting 10’ MVVM 5’ Agenda Creating our Multi Targeting App 25’ Summarizing + Q & A 5’
  • 3. The Importance of Multi Targeting It is important. that’s why you are here, right?
  • 4. Windows Phone 8 Windows Phone 7.x Direct3D, XAudi Windows Phone .NET o2, MF, WASAPI, Runtime WIN32, COM C#, VB C#, VB, C++ C++
  • 5. 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
  • 6. Networking Proximity In-App Purchase Sensors 2,800 Location 11,000 shared File System members members Core app model Threading
  • 7.
  • 8. ABC of Multi Targeting Let’s see the main points on how to do it right, the first time.
  • 9. • Share code across platforms using Portable Class Libraries • Apply MVVM to wire cross-platform apps • Create portable abstractions for non-portable functionality
  • 10. • Link Source code files between platforms. • Create platform specific Views • Share UI with user controls • Always Decouple! Create Clean & SOLID Code.
  • 12.
  • 13. One Source One Project One Binary Multiple Platforms!
  • 14. Windows 8 Windows Phone 8
  • 15.
  • 16. Windows 8 Windows Phone 8
  • 17. Windows 8 #if NETFX_CORE Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () => { #endif Windows Phone 8 #if WINDOWS_PHONE Deployment.Current.Dispatcher.BeginInvoke(() => { #endif
  • 18. public class ServiceLocator { public static IFileStorage FileStorage { get; set; } public static IPhotoChooser PhotoChooser { get; set; } }
  • 19. MVVM It deserves its own section on this XAML world.
  • 20. User Interface App Logic General Model-View-ViewModel (MVVM)
  • 21.
  • 22.
  • 23. Creating our Multi Targeting App We will see how to create a Windows Store & Windows Phone App that share code and components.
  • 24. • Usage of PCL to share code • Portable.MvvmLightLibs & Portable.CommonService Locator • MVVM done right • Linking code
  • 25. • Usage of the Repository pattern • Creation of our first ViewModel • OData Client Tools for Windows Store & Windows Phone Apps (http://msdn.microsoft.com/en-us/jj658961)
  • 26. Do not trust the web…
  • 28. Applying best practices is a must Using proper design patterns too Sharing Code through PCL & Linking MVVM is fundamental
  • 29. Jose Luis Latorre Email: joslat@gmail.com Twitter: @joslat Blog: http://Silverlightguy.com

Editor's Notes

  1. Itisimportant and youknowwhy!YouhavetwomainreasonsYouknowhowtechnologyevolvesthesedays and youwantto be ready!You do notwantto be closedintoonlyonedevice and technology, right?
  2. Clean code: Easy to understand. Easy to modify. Easy to test. Works correctlySOLID  Single responsibility, Open-closed principle, Liskov substitution, Interface segregation and Dependency inversionSTUPIDSingletonTight couplingUntestabilityPremature OptimizationIndescriptive NamingDuplication
  3. The thread-handling dispatchers are different on Windows Phone and Windows 8. In windows 8, we use an element of the UI Core while in Windows Phone, we have a dispatcher that has been assigned to our app deployment. So, if you’re anything like me, you say “well it was worth a shot, time to give up”.
  4. Means Decouples
  5. 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
  6. What besides the UI wasn’t portable? File system, interaction with the OS.The View Models and Models will need that functionality. So…
  7. Herewewill créatefirst a base multitargetingappfor wp8 and Windows store apps, and wire in allthenecesarytoworkwith MVVM in a properway.NextwewillimplementanOdataserviceaccestogetherwiththeRepositorypattern, togetherwiththecorresponding ViewModel and Views.
  8. UpdateNuGetTolatest versiónInstall-PackagePortable.MvvmLightLibs
  9. Therepositoryseparates data consumptionfromhowthe data getspersisted andloaded.OdataClient tolos extendtheaddservicereferencewithclientsideodatasupportfor Windows store and Windows pone apps.