Download presentation
Presentation is loading. Please wait.
Published byJoleen Diane Hawkins Modified over 6 years ago
1
Prepare your apps for Windows 8 and beyond
12/2/2018 5:21 AM APP-116T Prepare your apps for Windows 8 and beyond Uday Shivaswamy Senior Program Manager Microsoft Corporation © 2010 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
2
Agenda What is new in Windows 8 that impacts compatibility
Compatibility best practices for desktop apps Compatibility features for Metro style apps You’ll leave with an understanding of how to Build great desktop apps Assess and certify your desktop apps Assess your Metro style apps
3
Why is compatibility important?
4
What is new in Windows 8 that impacts compatibility
5
Windows 8 is compatible with apps that run on Windows 7
6
Changes in Windows 8 that impact compatibility
Windows OS version increment Desktop Window Manager always on Startup apps change .NET 3.5 on demand
7
How many of you have a Windows version check in your app?
8
Windows OS Version Increment
Only the OS minor version incremented Why Version increment provides a basic level of change identification within the OS Change & Impact Apps checking OS version upper bound may fail Installers and apps blocking increase customer pain Windows and users can override through compatibility modes Actions Recommended: Query for specific features that the app depends on Do not check for upper bound OS version Do not check OS version through file attributes and other unsupported ways
9
Desktop Windows Manager always on
Compatibility for existing apps is maintained Why Required for enabling the Windows 8 experience Change & Impact Existing methods to turn off DWM will now fail silently In DirectX exclusive mode, apps should not write with GDI – will fail or have degraded performance Reading from or writing to the main desktop Device Context directly will have degraded performance Low color modes are emulated Action Use DirectX 10/11 which allows apps to work with DWM on Do not write using GDI while in DX exclusive mode Read/Write on transparent window(s) Don’t rely on inbox mitigations. Skip low color modes completely
10
demo DWM Flight Simulator 2002 12/2/2018 5:21 AM
© 2010 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
11
Startup Apps Change Users can disable or enable them easily Why
Improve battery performance and PC responsiveness Change & Impact Windows makes it easier to disable startup apps Apps should not assume that startup apps are guaranteed to start Action Use Metro style apps for notifications or appropriate extensions for user interactions Use Maintenance tasks for actions and updates that do not need user input
12
demo Startup apps 12/2/2018 5:21 AM
© 2010 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
13
.NET 3.5 on demand Windows 8 has .NET 4.5 by default Why
Reduce Windows 8 install size Consistent distribution and updates Change & Impact .NET 3.5 redistributables will redirect to on demand install Connectivity is necessary, no offline mechanism Action Move to .NET 4.0/4.5, rely on what is already installed Handle scenarios where connectivity may not be available Optionally check Windows 8 API for on demand installation
14
demo .NET 3.5 on demand 12/2/2018 5:21 AM
© 2010 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
15
Compatibility best practices for Desktop apps
16
Best Practice: Develop Great Installers
This is your customer’s first experience with your app Issue Installers may run under varying privileges or architectures Repackaging Windows redistributables Actions Design for Multiple scenarios: user or machine-level, 32 and 64-bit Windows Keep Windows redistributables in original packaging
17
Best Practice: use Windows resources wisely
Build great desktop apps Issue File & folder path usage Registry locations for configurations OS binaries may be hardened New error codes may be added to APIs Actions Use RegExpandSz for paths. Use APIs to find system paths Use configuration APIs to Get/Set values Remove dependencies that patch OS binaries Ensure new error codes can be handled by apps
18
Windows System usage samples
Using path variables: LOCAL nKey, cSubKey, cValue, lSuccess, cExpandPart, cNonExpandPart nKey = HKEY_LOCAL_MACHINE cSubKey = "Software\VfpRegTest" cValue = "TestREG_EXPAND_SZ" cExpandPart = "WINDIR" cNonExpandPart = "\System“ lSuccess = WriteREG_EXPAND_SZ(nKey, cSubKey, cValue, cExpandPart, cNonExpandPart) IF (lSuccess) THEN =MESSAGEBOX("Value was Written to the Registry.") ELSE =MESSAGEBOX("Value was not Written to the Registry.") ENDIF © 2010 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
19
Windows System usage samples
HRESULT verification macros (Accessing a known folder): IShellItem* pItem = nullptr; HRESULT hr = ::SHCreateItemInKnownFolder( FOLDERID_Libraries, 0, nullptr, IID_PPV_ARGS(&pItem)); if (SUCCEEDED(hr)) { DWORD dwAttr = 0; hr = pItem->GetAttributes(SFGAO_FILESYSANCESTOR, &dwAttr); if (SFGAO_FILESYSANCESTOR == dwAttr) wprintf(L"Item is a file system folder\n"); } pItem->Release(); © 2010 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
20
Best practice: manifest Your executable
Build great desktop apps Issue Apps may not run with the right privileges Older apps get tracked for compatibility and may run under compatibility modes Apps may not scale well with DPI changes Actions Declare Privilege level using trustInfo Declare Compatibility level using Compatibility Declare DPI setting through DPIAwareness
21
Trust info <?xml version="1.0" encoding="utf-8"?> …
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v2"> <security> <requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3"> <requestedExecutionLevel level=“AsInvoker" uiAccess="false" /> </requestedPrivileges> </security> </trustInfo> © 2010 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
22
Compatibility section
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> <compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1"> <application> <supportedOS Id=“{Windows 8…GUID}"/> <supportedOS Id=“{Windows 7…GUID}"/> <supportedOS Id="{Windows Vista…GUID}"/> </application> </compatibility> </assembly> © 2010 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
23
DPI section <dpiAware>true</dpiAware>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3" > <asmv3:application> <asmv3:windowsSettings xmlns=" <dpiAware>true</dpiAware> </asmv3:windowsSettings> </asmv3:application> ... </assembly> © 2010 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
24
Certify Your desktop app
Windows App Certification Kit Formerly Windows Software Logo Kit Ensures consistent, high-quality user experience Opportunity to get listed in the Windows Store Get listed on the Windows Compatibility Center
25
Windows app Certification Kit
12/2/2018 5:21 AM demo Windows app Certification Kit © 2010 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
26
Compatibility features for
Metro style apps
27
Declaring Compatibility for Metro style Apps
App must declare the Windows version it needs Windows provides the best compatibility behavior for the app OSMinVersion is the minimum OS version needed for app install OSMaxVersionTested is the latest OS version app is tested for
28
Declaring compatibility in the Appx Manifest
As part of app manifest <Prerequisites> <OSMinVersion>6.2</OSMinVersion> <OSMaxVersionTested>6.2</OSMaxVersionTested> </Prerequisites> © 2010 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
29
Assess your Metro style app
Ensures consistent, high-quality user experience Single tool for self-testing and store onboarding Prepared for a global market Automated tests for: App Manifest compliance with store policy Image sizing and scaling Use of platform supported APIs App reliability and security
30
Summary
31
Call to action Desktop apps Metro style apps
Verify your app against Windows 8 changes Manifest your executables Certify your app for Windows 8 Automatically listed in the Windows Compatibility Center Metro style apps Learn about version declarations Verify your app with the Windows App Certification Kit
32
Related sessions [HW-716H] (lab) Windows compatibility and readiness labs for devices and apps [APP-840H] (lab) Hands on lab for Windows App Certification Kit [APP-842H] (lab) HOL: Using the Windows App Certification Kit to validate and prepare your Metro style apps for the Store
33
Further reading and documentation
Windows 8 App Compatibility Cookbook Windows Compatibility Center Contact info –
34
thank you Feedback and questions http://forums.dev.windows.com
Session feedback
35
12/2/2018 5:21 AM © 2011 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION. © 2011 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.