Migrating 8.1 Apps to Windows 10

Slides:



Advertisements
Similar presentations
Building RADNUG8 – the windows 8 app Part 1 Matt
Advertisements

Universal Apps 101 Goran Karačić. Agenda Who am I? Introduction to Universal Apps Universal Apps Demo Questions.
Visual Studio streamlines developing universal Windows apps 3-591: Using Visual Studio to build XAML universal apps (Navit Saxena)
Presented by IBM developer Works ibm.com/developerworks/ 2006 January – April © 2006 IBM Corporation. Making the most of Creating Eclipse plug-ins.
An introduction to. Introductions  I’m Rob Fonseca-Ensor  A Solution Architect at Infusion  I run the Canary Wharf.NET User Group  I blog at
Introducing the UWP.
Introducing Xamarin 2.0 Introducing Xamarin 2.0 Michael Hutchinson
Khalid Siddiqui Senior Architect, Mobility Center of Excellence Microsoft Corporation SESSION CODE: WPH311.
Extend your app to multiple device families and use new capabilities by targeting the UWP.
Introduction to Mobile Programming. Slide 2 Overview Fundamentally, it all works the same way You get the SDK for the device (Droid, Windows, Apple) You.
Office 365 Platform Flexible Tools Understand different provisioning options and their advantages and disadvantages…
Windows Phone 8 Tips & Tricks for Developers Sascha Corti, Microsoft Switzerland Technical Evangelist | techpreacher.corti.com.
Windows Binary Phone Binary Windows universal Desktop PC 2 in 1 Mobile Tablet Phablet Phone Xbox IoT Band IoT headless Raspberry Pi Home.
Easy for users to get & stay current Unified core and app platform Windows Phone 7.5 Windows Phone 8 Windows Phone 8.1 Windows 8 Xbox One Windows on Devices.
The Windows Runtime (WinRT) is the shared runtime and API space used by store apps across the Windows platform (phone and client) 5 Common WinRT.
Project Transcender Standard Windows Forms to Windows 8 Metro Style porting tool Sri Lanka Institute of Information Technology 1.
Lagash Systems Mariano Sánchez – Software
Overview of PVSS 3.6 Oliver Holme IT-CO. 16/11/2006JCOP Project Team Meeting New features in 3.6 New Installer for PVSS on Windows New Qt User Interface.
Lewis Benge Bring your code to Windows MOB336.
Easy for users to get & stay current Unified core and app platform Windows Phone 7.5 Windows Phone 8 Windows Phone 8.1 Windows 8 Xbox One Windows on Devices.
Bridges to the Magickal Faerie Land of Windows 10 Hannes Nel M263.
Universal Windows Platform One codebase for Mobile, Desktop, IoT, Xbox, HoloLens, etc. Gergely
04 |Sharing Code Between Windows 8 and Windows Phone 8 in Visual Studio Ben Riga
UNDERSTANDING YOUR OPTIONS FOR CLIENT-SIDE DEVELOPMENT IN OFFICE 365 Mark Rackley
The Windows 10 App platform: an introduction to the UWP Andy Wigley b:
Spaso Lazarević Microsoft MVP Nova banka ad Banja Luka Windows App Studio.
0 Developing for Windows 10 Tony Champion Champion DS.
Agenda Steps of App Building The Runtime Environment Managing App Data Debug and Test an App Validate an App Publish an App to a Store Packaging Apps.
Danijel Malik Visual Studio ALM MVP Build 2014 What’s new for Visual Studio 2013 and Visual Studio Online.
Introduction ITEC 420.
1/10/2018 9:33 PM Cloud Roadshow © 2014 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO.
Windows Forms for mobile development
Real world Windows Phone development
Mobile Development Name Title Company.
Introducing the Windows Mobile development
Building Windows 8 App.
Make your app a native part of Office with Add-ins
Microsoft Ignite /10/2018 3:38 AM
MOBILIZE.NET Modernize code to native .NET, web, mobile and Azure
5/15/2018 5:43 PM © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN.
Customizing custom.
The Universal Windows Platform
ONYX 12.2.
Tooling Breakout Session
Silverlight apps on Windows Phone 8.1
6/10/ :23 PM TOOL-504T A deep dive into Visual Studio 11 Express for designing Metro style apps using XAML Joanna Mason & Unni Ravindranathan Program.
Business Connectivity Services in SharePoint 2010 and Office 2010
Java Look-and-Feel Design Guidelines
Microsoft Build /13/2018 2:24 AM © 2016 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY,
SharePoint Saturday Detroit
Introduction to Computers
Modernizing App Experiences
Microsoft Build /19/2018 7:06 PM © 2016 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY,
Myth Busting: Hosted Web Apps
Power Apps & Flow for Microsoft Dynamics SL
Microsoft Build /8/2018 8:41 PM © 2016 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY,
Introduction to mobile app development Module 3 – Improving your App Studio app Lance McCarthy.
11/19/2018 © 2014 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered trademarks and/or trademarks.
Build /20/2018 © 2015 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION.
Bring existing desktop apps to UWP with the Desktop Bridge
Windows 10 Preview Andy & Jerry
Microsoft Build /24/2018 4:02 PM © 2016 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY,
Hosted Web Apps with Windows App Studio
Tooling and Diagnostics
Microsoft Build /30/2018 2:15 AM Migrating Silverlight Windows Phone apps to the Universal Windows Platform Ricardo Villalobos Principal SDE Manager.
Office 365 Development.
Microsoft Office 4/3/2019 Deep Dive into native Universal App development with the Office 365 APIs Speaker name Title Microsoft Corporation © 2012 Microsoft.
Build /20/2019 © 2012 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered trademarks.
Native Integration Module #3 of 6.
Bringing existing managed code into Metro style apps
Presentation transcript:

Migrating 8.1 Apps to Windows 10 Windows 10 Preview Andy & Jerry

Agenda Migration Paths to Windows 10 Windows 8.0/8.1 Store Apps Windows Phone 8.1 Store Apps (WinRT) Windows 8.1 Universal Apps Windows Phone Silverlight Apps Migrating a Windows 8.1/Windows Phone 8.1 Project Upgrade Utility Additional Migration Steps Migrating 8.1 Universal Apps Migrating Universal Apps Handling the Shared Project

Migration Paths to Windows 10

Minimal code update required Responsive UX Design/Implementation Windows 8.0/8.1 Store Apps Windows 8.0 Minimal code update required Responsive UX Design/Implementation Windows 10

Windows Phone 8.1 Store Apps (WinRT) Minor code updates for UAP APIs Design UX for multiple form factors Windows 10

Windows 8.1 Universal Apps Merge UX Refactor to single code-base & to target UAP APIs Windows 10 Windows Phone 8.1

Windows Phone Silverlight Apps Port the UI Silverlight -> Windows XAML Rewrite code to target UAP APIs* Design UX for multiple form factors Windows Phone 7.5/7.8 Windows Phone 8.0 Windows Phone 8.1* Windows 10 *Silverlight on Windows Phone 8.1 can be a mix of Silverlight and WinRT APIs

Migration – What You Can Expect 8.1 WinRT app code needs few changes App lifecycle, background execution, Tiles and toasts – all the same UAP APIs are a superset of the Windows 8.1 WinRT APIs Review/change logic that relied on compiler conditionals (#if…) to handle platform differences A few APIs are deprecated (example, Phone 8.1 …AndContinue APIs) Charms bar gone so app must now display UI to launch Settings, Share or Search 8.1 WinRT XAML views migrate across fairly easily Though you have work to do if you want to build adaptive UI working across multiple device families Phone-specific styles must be replaced with equivalent generic styles Silverlight 7.x/8.x apps need reimplementation Though these apps still run on Windows 10 Mobile devices!

Migrating a Windows 8.1 or Windows Phone 8.1 Project

Migrating an 8.1 WinRT Project Project file and package.appxmanifest need modifications No tools in Visual Studio yet! …but we’ve written a Powershell script to do most of the work  Get it at http://aka.ms/W10P-ProjectUpgradeUtility

Upgrade_to_uap Powershell script Automates most of the upgrade steps – not guaranteed to cover every scenario! Converts .csproj to UAP, updates package.appxmanifest Run directly in Powershell, or run Run_UpgradetoUAP_Powershell_script.bat at cmd prompt

Updated Project

Manual project file updates Add Publisher to PackageDependency: Change to: <Dependencies>     <PackageDependency Name="Microsoft.VCLibs.120.00.Phone" MinVersion="12.0.30113.0" /> </Dependencies>   <Dependencies>     . . .     <PackageDependency Name="Microsoft.VCLibs.120.00.Phone" MinVersion="12.0.30113.0"            Publisher="CN=Microsoft Corporation, O=Microsoft Corporation, L=Redmond, S=Washington, C=US" />    </Dependencies>

Manual package.appxmanifest edits Add uap: prefix to these capabilities & extensions: <Capabilities>                             <Capability Name="internetClient"/>      <Capability Name="internetClientServer"/>      <Capability Name="privateNetworkClientServer"/>      <Capability Name="picturesLibrary"/>      <Capability Name="videosLibrary"/>      <Capability Name="musicLibrary"/>  </Capabilities>  <Application>         < Extension Category="windows.protocol">            < Protocol Name="mailto" DesiredView="useHalf">              < DisplayName>MailTo Protocol</DisplayName>            </ Protocol>          </ Extension>    </Application> <Capabilities>      <Capability Name="internetClient"/>      <Capability Name="internetClientServer"/>      <Capability Name="privateNetworkClientServer"/>      <uap:Capability Name="picturesLibrary"/>      <uap:Capability Name="videosLibrary"/>      <uap:Capability Name="musicLibrary"/>  </Capabilities>           <Application>         <uap:Extension Category="windows.protocol">            <uap:Protocol Name="mailto" DesiredView="useHalf">             <uap:DisplayName>MailTo Protocol</uap:DisplayName>            </uap:Protocol>          </uap:Extension>    </Application>

Manual package.appxmanifest edits If upgrading Windows 8.1 app, change tile size: Change to: <m2:VisualElements DisplayName="WWA_URI_StartPage" Square150x150Logo="Assets\Logo.png"                                      Square30x30Logo="Assets\SmallLogo.png"                 Description="WWA_URI_StartPage" ForegroundText="light" BackgroundColor="#464646">           <m2:DefaultTile ShortName="McaApp" Wide310x150Logo="images/310x150.png"                 Square310x310Logo="images/310x310.png"                 Square70x70Logo="images/71x71.png"  DefaultSize="square150x150Logo">          <m2:SplashScreen Image="Assets\SplashScreen.png" /> </m2:VisualElements> <uap:VisualElements DisplayName="WWA_URI_StartPage" Square150x150Logo="Assets\Logo.png"                                      Square44x44Logo="Assets\SmallLogo.png"                 Description="WWA_URI_StartPage" ForegroundText="light" BackgroundColor="#464646">           <uap:DefaultTile ShortName="McaApp" Wide310x150Logo="images/310x150.png"                 Square310x310Logo="images/310x310.png"                 Square71x71Logo="images/71x71.png"  DefaultSize="square150x150Logo">          <uap:SplashScreen Image="Assets\SplashScreen.png" /> </uap:VisualElements>

Running the Upgrade utility http://aka.ms/ W10P-HOL03

Additional Conversion Steps Add Reference to Platform Extension SDKs, if needed Review conditional code (#if…) and convert to adaptive code where appropriate Replace calls to deprecated APIs, if any Replace references to undefined styles in XAML Update code that integrates with Charms bar Extend your UI to create a great, adaptive UI that works across multiple device families!

1. Add Ref for Platform extensions

Adding device family extension SDKs, e. g Adding device family extension SDKs, e.g. the Xbox SDK, will not break other targets

2. Review #if conditional compilation Compiler conditionals may be used in shared code: this.Page.Loaded += (sender, e) => { #if WINDOWS_PHONE_APP Windows.Phone.UI.Input.HardwareButtons.BackPressed += HardwareButtons_BackPressed; #else // Keyboard and mouse navigation only apply when occupying the entire window if (this.Page.ActualHeight == Window.Current.Bounds.Height && this.Page.ActualWidth == Window.Current.Bounds.Width) // Listen to the window directly so focus isn't required Window.Current.CoreWindow.Dispatcher.AcceleratorKeyActivated += CoreDispatcher_AcceleratorKeyActivated; Window.Current.CoreWindow.PointerPressed += this.CoreWindow_PointerPressed; } #endif };

Adaptive code if (Windows.Foundation.Metadata.Apilnformation .IsTypePresent("Windows.Phone.UI.Input.HardwareButtons")) { Windows.Phone.UI.Input.HardwareButtons.Backpressed += HardwareButtons Backpressed; } public boolean HasScannerApi { get { return Foundation.Metadata.ApiInformation .IsApiContractPresent("Devices.Scanners.ScannerDeviceContract", 3)); } }

3. Replace Deprecated APIs

4. Replace undefined Styles Replace undefined Styles in XAML with alternatives:

5. Update Charms Bar Integration Code Charms bar not on Windows 10 devices Replace with in-app UI for Search App Settings Sharing Underlying code does not change, just the users’ way of accessing them

6. Create an awesome adaptive UI! small landscape view Phone/narrow view large landscape view

Extend your app to multiple device families by targeting the UAP

Upgrade an 8.1 app

Migrating 8.1 universal apps

What about 8.1 Universal apps? Choose one head to port Phone or PC/Tablet Merge UI from other head into adaptive UI Phone and PC/Tablet UI combined in the UAP project Choose what to do with Shared Shared or merged

What to do with your Shared project? If you keep a Shared project WINDOWS_APP WINDOWS_PHONE_APP WINDOWS_UAP (new) You will still need to test for API support If you don’t keep a Shared project You are only targeting Windows 10 Replace #if conditional compilation with adaptive code: Windows.Foundation.Metadata.ApiInformation

Migrating an 8.1 universal app solution

Review Migration Paths to Windows 10 Windows 8.0/8.1 Store Apps Windows Phone 8.1 Store Apps (WinRT) Windows 8.1 Universal Apps Windows Phone Silverlight Apps Migrating a Windows 8.1/Windows Phone 8.1 Project Upgrade Utility Additional Migration Steps Migrating 8.1 Universal Apps Migrating Universal Apps Handling the Shared Project