Presentation is loading. Please wait.

Presentation is loading. Please wait.

Migrating 8.1 Apps to Windows 10

Similar presentations


Presentation on theme: "Migrating 8.1 Apps to Windows 10"— Presentation transcript:

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

2 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

3 Migration Paths to Windows 10

4 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

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

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

7 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

8 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!

9 Migrating a Windows 8.1 or Windows Phone 8.1 Project

10 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

11 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

12 Updated Project

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

14 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>

15 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>

16 Running the Upgrade utility
W10P-HOL03

17 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!

18 1. Add Ref for Platform extensions

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

20 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 };

21 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)); } }

22 3. Replace Deprecated APIs

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

24 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

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

26 Extend your app to multiple device families by targeting the UAP

27 Upgrade an 8.1 app

28 Migrating 8.1 universal apps

29 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

30 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

31 Migrating an 8.1 universal app solution

32 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

33


Download ppt "Migrating 8.1 Apps to Windows 10"

Similar presentations


Ads by Google