SlideShare uma empresa Scribd logo
1 de 33
Lessons Learned from Building Windows 8 Store
Apps with MVVM and XAML
Mike Douglas
mikedouglas@Deliveron.com
@mikedouglasdev
AGENDA
• Background
• Why XAML/C#/MVVM?
• Lessons Learned
• What’s Next?
ABOUT MIKE DOUGLAS
• Solution Consultant for Deliveron
Consulting Services
• Microsoft Visual Studio ALM MVP
• Microsoft External Rangers – Visual Studio
ALM
• HDC, KCDC, OTSUG Presentations
• Team Deploy – TeamDeploy.CodePlex.com
• Blog - CodeSmartNotHard.com
• Email – mikedouglas **at**
deliveron.com
• Twitter - @mikedouglasdev
ABOUT DELIVERON
• Project based, technology
consulting
• Areas of Expertise:
– SharePoint
– BizTalk
– Business Intelligence
– .NET Development
– ALM Training and Consulting
• Deliveron Jumpstarts
• Newsletters & Webcasts
• www.Deliveron.com
BACKGROUND
• The Challenge
• TFS Agile Poker (www.tfsagilepoker.com)
– MVVM, XAML, WinRT, Async/Await, OData/RES
T, Azure Mobile Services.
• ALM Readiness TreasureMap
– Open source app for managing ALM
Ranger’s guidance and tools
– http://tinyurl.com/almtreasuremap
WHY XAML/C#/MVVM?
• XAML/C# vs HTML5/JavaScript
– Matching feature sets
– Originally thought I was going to use HTML5/JavaScript
– XAML/C# - Databinding and new features
– XAML is only way to get cross platform between
• Win8
• WP
• MVVM Cross and Xamarin
– IOS
– Android
LESSONS LEARNED
• Design
• Development
• Testing
• Deployment to the Windows Store
LESSONS LEARNED - DESIGN
LESSONS LEARNED - DESIGN
• Storyboarding
– Create wireframe and visualize design
• Frameworks
– Roll your own
– Utilize Existing
• IOC support
• Flyout support
• View to ViewModel auto wiring
• Examples
– MvvmLight
– Prism
LESSONS LEARNED - DEVELOPMENT
• Async / Await
– No UI blocking threads
Method Signature Example Usage
Async Void private async void OnSubmitPointsCommand() Asynchronous Event
Handlers only
Potentially await-able
Async Task public async Task CloseSessionAsync(string
session)
Use when returning void
Async Task<T> public async Task<Session> CreateSessionAsync() Use when having a return
value
Await
SomeMethodAsync
CurrentChannel =
await
PushNotificationChannelManager.CreatePushNot
ificationChannelForApplicationAsync();
Used to create asynchronous
method and doesn’t block UI
thread
LESSONS LEARNED - DEVELOPMENT
• Persisting Data
– Scenarios
• Session State
• Local or Roaming Settings
– Default Serialization
• Painful, requires KnownTypes definitions, DataMember attributes
– JSON
string serializedSettings =
Newtonsoft.Json.JsonConvert.SerializeObject(appSettings);
applicationSettings =
Newtonsoft.Json.JsonConvert.DeserializeObject<ApplicationSetting>(serializedSe
ttings);
– Roaming Settings
Windows.Storage.ApplicationData.Current.RoamingSettings.Values["ApplicationS
ettings"] = serializedSettings;
LESSONS LEARNED - DEVELOPMENT
• Styling and Data Templates
LESSONS LEARNED - DEVELOPMENT
• DataBinding
– Properties support 2 way binding
– Converters
• Boolean To Visibility
LESSONS LEARNED - DEVELOPMENT
• Commanding
LESSONS LEARNED - DEVELOPMENT
• Behaviors
– Only buttons have a Command property
– Attached Properties extend object with Command
LESSONS LEARNED - DEVELOPMENT
• Simulating Suspending and Terminating from VS
LESSONS LEARNED - DEVELOPMENT
• Team Agile Poker Demo
LESSONS LEARNED - TESTING
LESSONS LEARNED - TESTING
• Dependency Injection / IOC
– Recently released frameworks for PCL
• Unity
• Ninject
• Coded UI Testing support in Windows 8.1 / VS 2013
– Extensive gesture support
• Microsoft Test Manager
– Execute test cases against device
– Log and capture error information for bugs
LESSONS LEARNED – WINDOWS STORE
LESSONS LEARNED – WINDOWS STORE
• Windows App Certification Kit
LESSONS LEARNED – WINDOWS STORE
• Gracefully handle common scenarios
– Unhandled Exceptions -> NO CRASHES!
– Midstream Network Loss and no network connectivity
– Snapped Views
– Adaptive to support multiple resolutions (1366 x 768, 1920
x 1080)
LESSONS LEARNED – WINDOWS STORE
• Don’t make your company name / app name too long
– Error Found: The performance launch test collected the following
results:.
• The Native Image Generator failed due to long file path for file
C:Program
FilesWindowsAppsDeliveronConsultingServic.TeamPlanningPok
er_1.0.0.1_neutral__s9dp6hmz44fsaMicrosoft.Data.Services.Clie
nt.WindowsStore.dll
• The Native Image Generator failed due to long file path for file
C:Program
FilesWindowsAppsDeliveronConsultingServic.TeamPlanningPok
er_1.0.0.1_neutral__s9dp6hmz44fsaMicrosoft.WindowsAzure.Mo
bileServices.Managed.dll
– To Skip NGEN
• Add nongen.txt file to root folder of project.
LESSONS LEARNED – WINDOWS STORE
• Privacy Policy
– Must have privacy policy if accessing any external
resources and storing any data.
http://www.privacychoice.org
LESSONS LEARNED – WINDOWS STORE
• When submitting
– Tester Notes
• Assume it is one of your grandparents is doing the
review.
• Assume no domain knowledge
– Some markets have restrictions
• Had to change rating to 12+ (email)
• Some countries require an official game rating
LESSONS LEARNED – WINDOWS STORE
• How to create all of the
required image sizes?
– PerfecTile for Windows 8
– http://nirm.it/PerfecTile/
LESSONS LEARNED – WINDOWS STORE
• App Certification Demo
LESSONS LEARNED – WINDOWS STORE
LESSONS LEARNED – WINDOWS 8.1
LESSONS LEARNED – WINDOWS 8.1
• Windows 8.1
– Currently in preview, released as free update in Windows
Store on 10/17
– No more snapped views, can adjust to any size
– Windows 8.0 apps will work on Windows 8.1
– Windows 8.1 apps will not work on Windows 8.0
WHAT’S NEXT?
• Windows 8.1 Version
• New Features
• Cross Platform with Xamarin (IOS, Android, WP8)
• Web version
• Writing TFS book
RESOURCES
• Xamarin and MvvmCross
– http://xamarin.com/evolve/2013#session-dnoeeoarfj
• Prism for Windows 8
– http://prismwindowsruntime.codeplex.com/
• PerfecTile
– http://nirm.it/PerfecTile/
• CUIT Gestures in VS 2013
– http://blogs.msdn.com/b/visualstudioalm/archive/2013/08/17/coded-ui-test-gesture-
support-in-visual-studio-2013.aspx
• The Tablet Show – Getting apps into the Store
– http://thetabletshow.com/?ShowNum=70
• Pluralsight Courses
– http://www.pluralsight.com/training/Courses/TableOfContents/windows8-hands-on
– http://www.pluralsight.com/training/Courses/TableOfContents/win8mvvm
• Free Online Privacy Policy tool
– http://www.privacychoice.org
1 1 5 1 6 M i r a c l e H i l l s D r i v e S u i t e 2 0 1 O m a h a , N E 6 8 1 5 4
4 0 2 . 2 3 8 . 1 3 9 9 | w w w . d e l i v e r o n . c o m | c o n t a c t u s @ d e l i v e r o n . c o m

Mais conteúdo relacionado

Mais procurados

Georgia Tech Drupal Users Group - Local Drupal Development
Georgia Tech Drupal Users Group - Local Drupal DevelopmentGeorgia Tech Drupal Users Group - Local Drupal Development
Georgia Tech Drupal Users Group - Local Drupal DevelopmentEric Sembrat
 
Writing better code: How the Netbeans IDE Helps you Write, Test and Debug Java
Writing better code: How the Netbeans IDE Helps you Write, Test and Debug JavaWriting better code: How the Netbeans IDE Helps you Write, Test and Debug Java
Writing better code: How the Netbeans IDE Helps you Write, Test and Debug Javaidrsolutions
 
Java Training at Gateway Software Solutions,Coimbatore
Java Training at Gateway Software Solutions,CoimbatoreJava Training at Gateway Software Solutions,Coimbatore
Java Training at Gateway Software Solutions,CoimbatoreGateway Software Solutions
 
Joomla! multiplied - How to run Multi-Sites - JandBeyond 2014
Joomla! multiplied - How to run Multi-Sites - JandBeyond 2014Joomla! multiplied - How to run Multi-Sites - JandBeyond 2014
Joomla! multiplied - How to run Multi-Sites - JandBeyond 2014Viktor Vogel
 
Introduction to Windows 8 Development
Introduction to Windows 8 DevelopmentIntroduction to Windows 8 Development
Introduction to Windows 8 DevelopmentJeff Bramwell
 
engage 2016 - Get ready for moving from Java 6 to Java 8 - Now!
engage 2016 - Get ready for moving from Java 6 to Java 8 - Now!engage 2016 - Get ready for moving from Java 6 to Java 8 - Now!
engage 2016 - Get ready for moving from Java 6 to Java 8 - Now!René Winkelmeyer
 
Build a DNN Module in Minutes
Build a DNN Module in MinutesBuild a DNN Module in Minutes
Build a DNN Module in MinutesWill Strohl
 
Introduction to Web Technology Stacks
Introduction to Web Technology StacksIntroduction to Web Technology Stacks
Introduction to Web Technology StacksPrakarsh -
 
OTN Developer Days - GlassFish
OTN Developer Days - GlassFishOTN Developer Days - GlassFish
OTN Developer Days - GlassFishglassfish
 
Eureka Moment UKLUG
Eureka Moment UKLUGEureka Moment UKLUG
Eureka Moment UKLUGPaul Withers
 
MWLUG 2015 - An Introduction to MVC
MWLUG 2015 - An Introduction to MVCMWLUG 2015 - An Introduction to MVC
MWLUG 2015 - An Introduction to MVCUlrich Krause
 
PHP Web Development Frameworks & Advantages
PHP Web Development Frameworks & AdvantagesPHP Web Development Frameworks & Advantages
PHP Web Development Frameworks & AdvantagesAditMicrosys Australia
 
Best Angular Training Online: Angular tutorial | Learn Angular 2 to 10 |
Best Angular Training Online: Angular tutorial | Learn Angular 2 to 10 | Best Angular Training Online: Angular tutorial | Learn Angular 2 to 10 |
Best Angular Training Online: Angular tutorial | Learn Angular 2 to 10 | Shailendra Chauhan
 
Build 2017 - Whats new for Xamarin Devs
Build 2017 - Whats new for Xamarin DevsBuild 2017 - Whats new for Xamarin Devs
Build 2017 - Whats new for Xamarin DevsMike James
 
Pratham Software Corporate profile
Pratham Software Corporate profilePratham Software Corporate profile
Pratham Software Corporate profileKomal Lopez
 

Mais procurados (20)

Georgia Tech Drupal Users Group - Local Drupal Development
Georgia Tech Drupal Users Group - Local Drupal DevelopmentGeorgia Tech Drupal Users Group - Local Drupal Development
Georgia Tech Drupal Users Group - Local Drupal Development
 
Writing better code: How the Netbeans IDE Helps you Write, Test and Debug Java
Writing better code: How the Netbeans IDE Helps you Write, Test and Debug JavaWriting better code: How the Netbeans IDE Helps you Write, Test and Debug Java
Writing better code: How the Netbeans IDE Helps you Write, Test and Debug Java
 
dxb.vkumar-v04
dxb.vkumar-v04dxb.vkumar-v04
dxb.vkumar-v04
 
Java Training at Gateway Software Solutions,Coimbatore
Java Training at Gateway Software Solutions,CoimbatoreJava Training at Gateway Software Solutions,Coimbatore
Java Training at Gateway Software Solutions,Coimbatore
 
Joomla! multiplied - How to run Multi-Sites - JandBeyond 2014
Joomla! multiplied - How to run Multi-Sites - JandBeyond 2014Joomla! multiplied - How to run Multi-Sites - JandBeyond 2014
Joomla! multiplied - How to run Multi-Sites - JandBeyond 2014
 
Eureka moment
Eureka momentEureka moment
Eureka moment
 
Introduction to Windows 8 Development
Introduction to Windows 8 DevelopmentIntroduction to Windows 8 Development
Introduction to Windows 8 Development
 
engage 2016 - Get ready for moving from Java 6 to Java 8 - Now!
engage 2016 - Get ready for moving from Java 6 to Java 8 - Now!engage 2016 - Get ready for moving from Java 6 to Java 8 - Now!
engage 2016 - Get ready for moving from Java 6 to Java 8 - Now!
 
Build a DNN Module in Minutes
Build a DNN Module in MinutesBuild a DNN Module in Minutes
Build a DNN Module in Minutes
 
JavaFx
JavaFxJavaFx
JavaFx
 
Netbeans+platform+maven
Netbeans+platform+mavenNetbeans+platform+maven
Netbeans+platform+maven
 
Introduction to Web Technology Stacks
Introduction to Web Technology StacksIntroduction to Web Technology Stacks
Introduction to Web Technology Stacks
 
OTN Developer Days - GlassFish
OTN Developer Days - GlassFishOTN Developer Days - GlassFish
OTN Developer Days - GlassFish
 
Eureka Moment UKLUG
Eureka Moment UKLUGEureka Moment UKLUG
Eureka Moment UKLUG
 
MWLUG 2015 - An Introduction to MVC
MWLUG 2015 - An Introduction to MVCMWLUG 2015 - An Introduction to MVC
MWLUG 2015 - An Introduction to MVC
 
Moka .Net Study Week 01
Moka .Net Study Week 01Moka .Net Study Week 01
Moka .Net Study Week 01
 
PHP Web Development Frameworks & Advantages
PHP Web Development Frameworks & AdvantagesPHP Web Development Frameworks & Advantages
PHP Web Development Frameworks & Advantages
 
Best Angular Training Online: Angular tutorial | Learn Angular 2 to 10 |
Best Angular Training Online: Angular tutorial | Learn Angular 2 to 10 | Best Angular Training Online: Angular tutorial | Learn Angular 2 to 10 |
Best Angular Training Online: Angular tutorial | Learn Angular 2 to 10 |
 
Build 2017 - Whats new for Xamarin Devs
Build 2017 - Whats new for Xamarin DevsBuild 2017 - Whats new for Xamarin Devs
Build 2017 - Whats new for Xamarin Devs
 
Pratham Software Corporate profile
Pratham Software Corporate profilePratham Software Corporate profile
Pratham Software Corporate profile
 

Destaque

Windows Universal Apps
Windows Universal AppsWindows Universal Apps
Windows Universal AppsJames Quick
 
Mobinius : Mobile Native vs Cross Platform
Mobinius : Mobile Native vs Cross PlatformMobinius : Mobile Native vs Cross Platform
Mobinius : Mobile Native vs Cross PlatformDamodar Puthiya
 
Windows Universal App XAML e WPF
Windows Universal App XAML e WPFWindows Universal App XAML e WPF
Windows Universal App XAML e WPFLauro Oliveira
 
Postmortem of a uwp xaml application development
Postmortem of a uwp xaml application developmentPostmortem of a uwp xaml application development
Postmortem of a uwp xaml application developmentDavid Catuhe
 
Windows Store app using XAML and C#: Enterprise Product Development
Windows Store app using XAML and C#: Enterprise Product Development Windows Store app using XAML and C#: Enterprise Product Development
Windows Store app using XAML and C#: Enterprise Product Development Mahmoud Hamed Mahmoud
 
Using New Controls in Windows Store XAML Applications
Using New Controls in Windows Store XAML ApplicationsUsing New Controls in Windows Store XAML Applications
Using New Controls in Windows Store XAML ApplicationsSergey Barskiy
 
Windows store app development using javascript
Windows store app development using javascriptWindows store app development using javascript
Windows store app development using javascriptFoyzul Karim
 
Prism for windows runtime
Prism for windows runtimePrism for windows runtime
Prism for windows runtimeSteve Xu
 
Finjan Vital Security For eMail Technical White Paper
Finjan Vital Security For eMail Technical White PaperFinjan Vital Security For eMail Technical White Paper
Finjan Vital Security For eMail Technical White PaperElliott Lowe
 
Danzas típicas de chile...ZONA CENTRO
Danzas típicas de chile...ZONA CENTRODanzas típicas de chile...ZONA CENTRO
Danzas típicas de chile...ZONA CENTROCarolina Labra
 

Destaque (11)

Windows Universal Apps
Windows Universal AppsWindows Universal Apps
Windows Universal Apps
 
Mobinius : Mobile Native vs Cross Platform
Mobinius : Mobile Native vs Cross PlatformMobinius : Mobile Native vs Cross Platform
Mobinius : Mobile Native vs Cross Platform
 
Vorlon.js
Vorlon.jsVorlon.js
Vorlon.js
 
Windows Universal App XAML e WPF
Windows Universal App XAML e WPFWindows Universal App XAML e WPF
Windows Universal App XAML e WPF
 
Postmortem of a uwp xaml application development
Postmortem of a uwp xaml application developmentPostmortem of a uwp xaml application development
Postmortem of a uwp xaml application development
 
Windows Store app using XAML and C#: Enterprise Product Development
Windows Store app using XAML and C#: Enterprise Product Development Windows Store app using XAML and C#: Enterprise Product Development
Windows Store app using XAML and C#: Enterprise Product Development
 
Using New Controls in Windows Store XAML Applications
Using New Controls in Windows Store XAML ApplicationsUsing New Controls in Windows Store XAML Applications
Using New Controls in Windows Store XAML Applications
 
Windows store app development using javascript
Windows store app development using javascriptWindows store app development using javascript
Windows store app development using javascript
 
Prism for windows runtime
Prism for windows runtimePrism for windows runtime
Prism for windows runtime
 
Finjan Vital Security For eMail Technical White Paper
Finjan Vital Security For eMail Technical White PaperFinjan Vital Security For eMail Technical White Paper
Finjan Vital Security For eMail Technical White Paper
 
Danzas típicas de chile...ZONA CENTRO
Danzas típicas de chile...ZONA CENTRODanzas típicas de chile...ZONA CENTRO
Danzas típicas de chile...ZONA CENTRO
 

Semelhante a Lessons from Building Windows 8 Apps

FEDSPUG April 2014: Visual Studio 2013 for Application Lifecycle Management &...
FEDSPUG April 2014: Visual Studio 2013 for Application Lifecycle Management &...FEDSPUG April 2014: Visual Studio 2013 for Application Lifecycle Management &...
FEDSPUG April 2014: Visual Studio 2013 for Application Lifecycle Management &...WSPDC & FEDSPUG
 
Introduction to Visual studio 2012
Introduction to Visual studio 2012 Introduction to Visual studio 2012
Introduction to Visual studio 2012 Prashant Chaudhary
 
Good bye Massive View Controller!
Good bye Massive View Controller!Good bye Massive View Controller!
Good bye Massive View Controller!Supercharge
 
Narender Soni Resume - Updated
Narender Soni Resume - UpdatedNarender Soni Resume - Updated
Narender Soni Resume - UpdatedNarender Soni
 
Divya ASP Developer
Divya ASP Developer Divya ASP Developer
Divya ASP Developer divya k
 
PSI Corporate Profile_Outsourced Product Development
PSI Corporate Profile_Outsourced Product DevelopmentPSI Corporate Profile_Outsourced Product Development
PSI Corporate Profile_Outsourced Product DevelopmentKomal Lopez
 
Senior .Net Developer - Senthil Ravindranath
Senior .Net Developer - Senthil RavindranathSenior .Net Developer - Senthil Ravindranath
Senior .Net Developer - Senthil RavindranathSenthil Ravindranath
 
Resume_Ram Dass
Resume_Ram DassResume_Ram Dass
Resume_Ram DassRam Dass
 
Upgrading to Team Foundation Server (TFS) 2012 – What You Need to Know! (07-2...
Upgrading to Team Foundation Server (TFS) 2012 – What You Need to Know! (07-2...Upgrading to Team Foundation Server (TFS) 2012 – What You Need to Know! (07-2...
Upgrading to Team Foundation Server (TFS) 2012 – What You Need to Know! (07-2...Imaginet
 
SadikulIslamDotNetResume
SadikulIslamDotNetResumeSadikulIslamDotNetResume
SadikulIslamDotNetResumeSadikul Islam
 

Semelhante a Lessons from Building Windows 8 Apps (20)

FEDSPUG April 2014: Visual Studio 2013 for Application Lifecycle Management &...
FEDSPUG April 2014: Visual Studio 2013 for Application Lifecycle Management &...FEDSPUG April 2014: Visual Studio 2013 for Application Lifecycle Management &...
FEDSPUG April 2014: Visual Studio 2013 for Application Lifecycle Management &...
 
Introduction to Visual studio 2012
Introduction to Visual studio 2012 Introduction to Visual studio 2012
Introduction to Visual studio 2012
 
Good bye Massive View Controller!
Good bye Massive View Controller!Good bye Massive View Controller!
Good bye Massive View Controller!
 
Narender Soni Resume - Updated
Narender Soni Resume - UpdatedNarender Soni Resume - Updated
Narender Soni Resume - Updated
 
Divya ASP Developer
Divya ASP Developer Divya ASP Developer
Divya ASP Developer
 
AMIS OOW Review 2012 - Deel 7 - Lucas Jellema
AMIS OOW Review 2012 - Deel 7 - Lucas JellemaAMIS OOW Review 2012 - Deel 7 - Lucas Jellema
AMIS OOW Review 2012 - Deel 7 - Lucas Jellema
 
Kumar_Resume - LinkedIn
Kumar_Resume - LinkedInKumar_Resume - LinkedIn
Kumar_Resume - LinkedIn
 
KhajavaliShaik
KhajavaliShaikKhajavaliShaik
KhajavaliShaik
 
PSI Corporate Profile_Outsourced Product Development
PSI Corporate Profile_Outsourced Product DevelopmentPSI Corporate Profile_Outsourced Product Development
PSI Corporate Profile_Outsourced Product Development
 
Resume_Venugopal
Resume_VenugopalResume_Venugopal
Resume_Venugopal
 
Prateek_Srivastava
Prateek_SrivastavaPrateek_Srivastava
Prateek_Srivastava
 
Senior .Net Developer - Senthil Ravindranath
Senior .Net Developer - Senthil RavindranathSenior .Net Developer - Senthil Ravindranath
Senior .Net Developer - Senthil Ravindranath
 
Arun Kumar(7.8Yrs).DOC
Arun Kumar(7.8Yrs).DOCArun Kumar(7.8Yrs).DOC
Arun Kumar(7.8Yrs).DOC
 
Resume_Ram Dass
Resume_Ram DassResume_Ram Dass
Resume_Ram Dass
 
Chalam_JAVA_Portal
Chalam_JAVA_PortalChalam_JAVA_Portal
Chalam_JAVA_Portal
 
Upgrading to Team Foundation Server (TFS) 2012 – What You Need to Know! (07-2...
Upgrading to Team Foundation Server (TFS) 2012 – What You Need to Know! (07-2...Upgrading to Team Foundation Server (TFS) 2012 – What You Need to Know! (07-2...
Upgrading to Team Foundation Server (TFS) 2012 – What You Need to Know! (07-2...
 
Allan_John_R_Salgado-MCSD.NET, MCTS,MCPD-Resume(LinkedIn)
Allan_John_R_Salgado-MCSD.NET, MCTS,MCPD-Resume(LinkedIn)Allan_John_R_Salgado-MCSD.NET, MCTS,MCPD-Resume(LinkedIn)
Allan_John_R_Salgado-MCSD.NET, MCTS,MCPD-Resume(LinkedIn)
 
Ess sellsheet 01
Ess sellsheet 01Ess sellsheet 01
Ess sellsheet 01
 
SadikulIslamDotNetResume
SadikulIslamDotNetResumeSadikulIslamDotNetResume
SadikulIslamDotNetResume
 
Resume (1)
Resume (1)Resume (1)
Resume (1)
 

Último

04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
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
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
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
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 

Último (20)

04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
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
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 

Lessons from Building Windows 8 Apps

  • 1. Lessons Learned from Building Windows 8 Store Apps with MVVM and XAML Mike Douglas mikedouglas@Deliveron.com @mikedouglasdev
  • 2. AGENDA • Background • Why XAML/C#/MVVM? • Lessons Learned • What’s Next?
  • 3. ABOUT MIKE DOUGLAS • Solution Consultant for Deliveron Consulting Services • Microsoft Visual Studio ALM MVP • Microsoft External Rangers – Visual Studio ALM • HDC, KCDC, OTSUG Presentations • Team Deploy – TeamDeploy.CodePlex.com • Blog - CodeSmartNotHard.com • Email – mikedouglas **at** deliveron.com • Twitter - @mikedouglasdev
  • 4. ABOUT DELIVERON • Project based, technology consulting • Areas of Expertise: – SharePoint – BizTalk – Business Intelligence – .NET Development – ALM Training and Consulting • Deliveron Jumpstarts • Newsletters & Webcasts • www.Deliveron.com
  • 5. BACKGROUND • The Challenge • TFS Agile Poker (www.tfsagilepoker.com) – MVVM, XAML, WinRT, Async/Await, OData/RES T, Azure Mobile Services. • ALM Readiness TreasureMap – Open source app for managing ALM Ranger’s guidance and tools – http://tinyurl.com/almtreasuremap
  • 6. WHY XAML/C#/MVVM? • XAML/C# vs HTML5/JavaScript – Matching feature sets – Originally thought I was going to use HTML5/JavaScript – XAML/C# - Databinding and new features – XAML is only way to get cross platform between • Win8 • WP • MVVM Cross and Xamarin – IOS – Android
  • 7. LESSONS LEARNED • Design • Development • Testing • Deployment to the Windows Store
  • 9. LESSONS LEARNED - DESIGN • Storyboarding – Create wireframe and visualize design • Frameworks – Roll your own – Utilize Existing • IOC support • Flyout support • View to ViewModel auto wiring • Examples – MvvmLight – Prism
  • 10. LESSONS LEARNED - DEVELOPMENT • Async / Await – No UI blocking threads Method Signature Example Usage Async Void private async void OnSubmitPointsCommand() Asynchronous Event Handlers only Potentially await-able Async Task public async Task CloseSessionAsync(string session) Use when returning void Async Task<T> public async Task<Session> CreateSessionAsync() Use when having a return value Await SomeMethodAsync CurrentChannel = await PushNotificationChannelManager.CreatePushNot ificationChannelForApplicationAsync(); Used to create asynchronous method and doesn’t block UI thread
  • 11. LESSONS LEARNED - DEVELOPMENT • Persisting Data – Scenarios • Session State • Local or Roaming Settings – Default Serialization • Painful, requires KnownTypes definitions, DataMember attributes – JSON string serializedSettings = Newtonsoft.Json.JsonConvert.SerializeObject(appSettings); applicationSettings = Newtonsoft.Json.JsonConvert.DeserializeObject<ApplicationSetting>(serializedSe ttings); – Roaming Settings Windows.Storage.ApplicationData.Current.RoamingSettings.Values["ApplicationS ettings"] = serializedSettings;
  • 12. LESSONS LEARNED - DEVELOPMENT • Styling and Data Templates
  • 13. LESSONS LEARNED - DEVELOPMENT • DataBinding – Properties support 2 way binding – Converters • Boolean To Visibility
  • 14. LESSONS LEARNED - DEVELOPMENT • Commanding
  • 15. LESSONS LEARNED - DEVELOPMENT • Behaviors – Only buttons have a Command property – Attached Properties extend object with Command
  • 16. LESSONS LEARNED - DEVELOPMENT • Simulating Suspending and Terminating from VS
  • 17. LESSONS LEARNED - DEVELOPMENT • Team Agile Poker Demo
  • 18. LESSONS LEARNED - TESTING
  • 19. LESSONS LEARNED - TESTING • Dependency Injection / IOC – Recently released frameworks for PCL • Unity • Ninject • Coded UI Testing support in Windows 8.1 / VS 2013 – Extensive gesture support • Microsoft Test Manager – Execute test cases against device – Log and capture error information for bugs
  • 20. LESSONS LEARNED – WINDOWS STORE
  • 21. LESSONS LEARNED – WINDOWS STORE • Windows App Certification Kit
  • 22. LESSONS LEARNED – WINDOWS STORE • Gracefully handle common scenarios – Unhandled Exceptions -> NO CRASHES! – Midstream Network Loss and no network connectivity – Snapped Views – Adaptive to support multiple resolutions (1366 x 768, 1920 x 1080)
  • 23. LESSONS LEARNED – WINDOWS STORE • Don’t make your company name / app name too long – Error Found: The performance launch test collected the following results:. • The Native Image Generator failed due to long file path for file C:Program FilesWindowsAppsDeliveronConsultingServic.TeamPlanningPok er_1.0.0.1_neutral__s9dp6hmz44fsaMicrosoft.Data.Services.Clie nt.WindowsStore.dll • The Native Image Generator failed due to long file path for file C:Program FilesWindowsAppsDeliveronConsultingServic.TeamPlanningPok er_1.0.0.1_neutral__s9dp6hmz44fsaMicrosoft.WindowsAzure.Mo bileServices.Managed.dll – To Skip NGEN • Add nongen.txt file to root folder of project.
  • 24. LESSONS LEARNED – WINDOWS STORE • Privacy Policy – Must have privacy policy if accessing any external resources and storing any data. http://www.privacychoice.org
  • 25. LESSONS LEARNED – WINDOWS STORE • When submitting – Tester Notes • Assume it is one of your grandparents is doing the review. • Assume no domain knowledge – Some markets have restrictions • Had to change rating to 12+ (email) • Some countries require an official game rating
  • 26. LESSONS LEARNED – WINDOWS STORE • How to create all of the required image sizes? – PerfecTile for Windows 8 – http://nirm.it/PerfecTile/
  • 27. LESSONS LEARNED – WINDOWS STORE • App Certification Demo
  • 28. LESSONS LEARNED – WINDOWS STORE
  • 29. LESSONS LEARNED – WINDOWS 8.1
  • 30. LESSONS LEARNED – WINDOWS 8.1 • Windows 8.1 – Currently in preview, released as free update in Windows Store on 10/17 – No more snapped views, can adjust to any size – Windows 8.0 apps will work on Windows 8.1 – Windows 8.1 apps will not work on Windows 8.0
  • 31. WHAT’S NEXT? • Windows 8.1 Version • New Features • Cross Platform with Xamarin (IOS, Android, WP8) • Web version • Writing TFS book
  • 32. RESOURCES • Xamarin and MvvmCross – http://xamarin.com/evolve/2013#session-dnoeeoarfj • Prism for Windows 8 – http://prismwindowsruntime.codeplex.com/ • PerfecTile – http://nirm.it/PerfecTile/ • CUIT Gestures in VS 2013 – http://blogs.msdn.com/b/visualstudioalm/archive/2013/08/17/coded-ui-test-gesture- support-in-visual-studio-2013.aspx • The Tablet Show – Getting apps into the Store – http://thetabletshow.com/?ShowNum=70 • Pluralsight Courses – http://www.pluralsight.com/training/Courses/TableOfContents/windows8-hands-on – http://www.pluralsight.com/training/Courses/TableOfContents/win8mvvm • Free Online Privacy Policy tool – http://www.privacychoice.org
  • 33. 1 1 5 1 6 M i r a c l e H i l l s D r i v e S u i t e 2 0 1 O m a h a , N E 6 8 1 5 4 4 0 2 . 2 3 8 . 1 3 9 9 | w w w . d e l i v e r o n . c o m | c o n t a c t u s @ d e l i v e r o n . c o m

Notas do Editor

  1. LayoutGrid vsStackpanelData TemplatesStylesBlend