Universal Windows Platform apps: Difference between revisions

Content deleted Content added
Addressed the {{Advert}} issue. Others before me seem to have done a good job of it. Added an {{Outdated}} tag. Removed one dead link from the "External links" section.
Tag: COI template removed
consistency
 
(18 intermediate revisions by 14 users not shown)
Line 1:
{{Outdated |reason=The article omits latest developments such as the newest name ("packaged apps") and related technologies such as AppContainer, AppSilo, WinUI 3, MAUI, MSIX, and MSIXVC. Changes in Windows 11 aren't covered. |date=July 2024}}
 
{{short description|Applications usable across all compatible Microsoft Windows devices}}
 
[[File:Khan Academy Metro app (player).png|thumb|[[Khan Academy]], an example of a UniversalMetro-styled Windows Appapp]]
[[File:Wikipedia App snapped to Windows 8 desktop.png|thumb|Left: A traditional desktop app without contents; it is showing 60 [[Widget (GUI)|graphical widgets]], and a thick border.<br/>Right: Metro-style app; entirely composed of contents]]
 
'''Universal Windows Platform''' ('''UWP''') '''apps'''<ref>{{citation|title=Microsoft is trying to change Windows software forever — here's why it'll be a tough fight|first=Matt|last=Weinberger|date=March 17, 2016|url=http://www.businessinsider.com/microsoft-universal-windows-platform-explained|access-date=June 27, 2016}}</ref> (formerly named '''Windows Store apps''', '''Metro-style apps''' and '''Modern apps''')<ref name=Harrel>{{citation|title=Metro, Modern, Now Universal? Microsoft Can't Make Up Its Mind!|first=William|last=Harrel|date=April 10, 2015|work=Digital Trends|url=http://www.digitaltrends.com/computing/microsoft-universal-apps/|access-date=June 27, 2016}}</ref> are [[Application software|applications]] that can be used across all compatible [[Microsoft Windows]] devices. They are primarily purchased and downloaded via the [[Microsoft Store]], Microsoft's digital application storefront.<ref>{{citation|title=Microsoft's Windows app strategy comes under fire: 'The most aggressive move Microsoft has ever made'|first=Matt|last=Weinberger|date=March 4, 2016|work=Business Insider|url=http://www.businessinsider.com/epic-ceo-tim-sweeney-slams-windows-10-2016-3|access-date=June 27, 2016}}</ref> UWP stopped adding new features in October 2021,<ref>https://www.developer-tech.com/news/microsoft-universal-windows-platform-finally-being-sunset/</ref> but toolchain updates continue to be made.<ref>https://devblogs.microsoft.com/ifdef-windows/preview-uwp-support-for-dotnet-9-native-aot/</ref>
 
==Nomenclature==
Line 34:
Before Windows 8, programs were identified by their static [[computer icon]]s. The [[Windows Shell#Taskbar|Windows taskbar]] was responsible for representing every app that had a window while running. Metro-style apps, however, are identified by their "tiles" that can show their icon and also other dynamic contents. In addition, in Windows 8 and [[Windows 8.1]] RTM, they are not shown on the Windows taskbar when they run, but on a dedicated app switcher on the left side of the screen.<ref>{{cite web|title=Switch between open apps|url=http://www.microsoft.com/surface/en-us/support/apps-and-windows-store/how-to-switch-between-apps?lc=1033|work=[[Microsoft Surface]] manual|publisher=[[Microsoft]]|access-date=31 December 2013}}</ref> [[Windows 8.1 Update]] added taskbar icons for Metro-style apps.<ref>{{cite web |last=Fitzsimmons |first=Michelle |title=Windows 8.1 Update 1: hands on with Microsoft's latest Windows update |url= http://www.techradar.com/news/software/operating-systems/windows-8-1-update-1-what-s-in-microsoft-s-latest-windows-update-1232863 |work=[[TechRadar]] |publisher=[[Future plc]] |access-date=May 19, 2014 |date=May 13, 2014}}</ref>
 
There is no set limit on how many copies of desktop apps can run simultaneously. For example, one user may run as many copies of programs such as [[Windows Notepad]], [[Paint (software)|Paint]] or [[Firefox]] as long as the system resources can support. (Some desktop apps, such as [[Windows Media Player]], have extra code that prevents spawning more than one instance.) However, in Windows 8, only one copy of Metro-style apps may run at any given time. True multi-instancing of these apps were not available until Windows 10 version 1803 (released in May 2018).<ref name="multi-instancing">{{cite magazine|last1=Whitechapel|first1=Andrew|title=Universal Windows Platform - Closing UWP-Win32 Gaps|url=https://msdnlearn.microsoft.com/en-us/archive/msdn-magazine/mt8466512018/may/universal-windows-platform-closing-uwp-win32-gaps|website=MSDN Magazine|publisher=[[Microsoft]]|volume=33|number=5|date=May 2018}}</ref>
 
== In Windows 10 and Windows 11 ==
Line 49:
 
=== Licensing and distribution ===
UWP apps can be downloaded from [[Windows Store]] or can be [[Sideloading|sideloaded]]. The sideloading requirements were reduced significantly from Windows 8.x to 10, but the app must still be signed by a trusted [[digital certificate]] that chains to a [[root certificate]].<ref>{{cite AV media |last1=Sheehan |first1=John |first2=Peyman |last2=Zanjani |date=30 March 2016 |title=Project Centennial: Bringing Existing Desktop Applications to the Universal Windows Platform |medium=Video |work=Microsoft Build 2016 Conference |url=https://channel9learn.msdnmicrosoft.com/Eventsen-us/Buildshows/build-2016/B829b829 |access-date=3 April 2016 |minutes=8:50 |___location=San Francisco |publisher=Microsoft Corporation |archive-date=29 January 2018 |archive-url=https://web.archive.org/web/20180129101429/https://channel9.msdn.com/Events/Build/2016/B829 |url-status=deadlive }}</ref>
 
==Lifecycle==
Metro-style apps are suspended when they are closed; suspended apps are terminated automatically as needed by a Windows app manager. Dynamic tiles, background components and contracts (interfaces for interacting with other apps) may require an app to be activated before a user starts it.<ref>{{cite web|last1=Joshi|first1=Bipin|title=Understanding Windows Store App Lifecycle and State Management|url=http://www.codeguru.com/win_mobile/win_store_apps/understanding-windows-store-app-lifecycle-and-state-management.htm|website=Code Guru|publisher=[[QuinStreet]]|date=22 February 2013|access-date=8 March 2016|archive-date=8 March 2016|archive-url=https://web.archive.org/web/20160308165234/http://www.codeguru.com/win_mobile/win_store_apps/understanding-windows-store-app-lifecycle-and-state-management.htm|url-status=dead}}</ref><ref>{{cite web|last1=Hale|first1=David|title=AppUniversal Windows Platform (UWP) app lifecycle|url=https://msdnlearn.microsoft.com/en-us/windows/uwp/launch-resume/app-lifecycle|websitework=UWP documentation|via=[[MSDN|Windows DevMicrosoft CenterLearn]]]|publisher=[[Microsoft]]|date=7 March 2016}}</ref>
 
Invoking an arbitrary Metro-style app or UWP app from the command line was first introduced in the [[Windows Insider|Insider]] build 16226 of Windows 10,<ref>{{cite web|last1=Whitechapel|first1=Andrew|title=Command-Line Activation of Universal Windows Apps|url=https://blogs.windows.com/buildingapps/2017/07/05/command-line-activation-universal-windows-apps/|website=Building Apps for Windows|publisher=[[Microsoft]]|date=5 July 2017}}</ref> which was released on 21 June 2017.<ref>{{cite web|last1=Sarkar|first1=Dona|title=Announcing Windows 10 Insider Preview Build 16226 for PC|url=https://blogs.windows.com/windowsexperience/2017/06/21/announcing-windows-10-insider-preview-build-16226-pc/|website=Windows Experience Blog|publisher=[[Microsoft]]|date=21 June 2017}}</ref>
Line 59:
 
===Windows Runtime===
Traditionally, Windows software is developed using the [[Windows API]]. Software has access to the Windows [[API]] with no arbitrary restrictions. Developers were free to choose their own [[programming language]] and [[development tool]]s. Metro-style apps can only be developed using [[Windows Runtime]] (WinRT). (Note that not every app using WinRT is a Metro-style app.) A limited subset of WinRT is also available for also conventional desktop apps.<ref>{{cite web|title=Windows Runtime 8.x APIs for desktop apps|url=https://msdnlearn.microsoft.com/en-us/library/windows/desktopwin32/dn554295%28v=vs.85%29.aspxapiindex/winrt-apis-for-desktop-apps|website=Windows App Development|via=[[MSDNMicrosoft Learn]]|publisher=[[Microsoft]]|access-date=31 July 2015}}</ref> Calling a forbidden API disqualifies the app from appearing on Windows Store.
 
Metro-style apps can only be developed using Microsoft's own development tools. According to Allen Bauer, Chief Scientist of [[Embarcadero Technologies]], there are APIs that every computer program must call but Microsoft has forbidden them, except when the call comes from Microsoft's own [[Visual C++]] runtime.<ref>{{cite web|last=Grange|first=Eric|title=Why no native WinRT support in Delphi XE3?|url=http://www.delphitools.info/2012/08/23/why-no-native-winrt-support-in-delphi-xe3/|work=DelphiTools|access-date=13 January 2014|date=23 August 2012}}</ref><ref>{{cite web|last=Anderson|first=Tim|title=Third-party compilers locked out of Windows Runtime development|url=http://www.itwriting.com/blog/6347-third-party-compilers-locked-out-of-windows-runtime-development.html|work=Tim Anderson's ITWriting|access-date=13 January 2014|date=23 August 2012}}</ref><ref>{{cite web|last=Bauer|first=Allen|title=HTML5 Builder|url=https://forums.embarcadero.com/message.jspa?messageID=484319#484319|work=Embarcadero Developer Network|publisher=Embarcadero Technologies|access-date=13 January 2014|date=22 August 2012|archive-date=14 June 2020|archive-url=https://web.archive.org/web/20200614102211/https://forums.embarcadero.com/message.jspa?messageID=484319#484319|url-status=dead}}</ref>
Line 66:
<!--[[Universal app]] redirects here-->
{{Main|Universal Windows Platform}}
UWP apps developed to work on [[smartphone]]s, [[personal computer]]s, [[video game console]]s and [[HoloLens]]. areThey were initially called '''universal apps'''. Thisbecause isthey accomplishedderived bytheir usingplatform flexibility from the universal appapps API, first introduced in Windows 8.1 and [[Windows Phone 8.1]]. [[Visual Studio 2013]] with Update 2 could be used to develop these apps.<ref>{{cite web|last1=WaheedGallo|first1=AhmedKevin|title=A first look at the Windows 10 universal app platform|url=httphttps://blogs.msdnwindows.com/b/msgulfcommunity/archivewindowsdeveloper/2015/03/02/a-first-look-at-the-windows-10-universal-app-platform.aspx/|website=MicrosoftWindows Gulf Technical CommunityDeveloper blogBlog|publisher=[[Microsoft]]|date=2 March 2015}}</ref><ref>{{cite journal|last1=Appel|first1=Rachel|title=Modern Apps : Build Universal Apps for the Windows Platform|url=https://msdnlearn.microsoft.com/en-us/archive/msdn-magazine/dn781364.aspx2014/september/modern-apps-build-universal-apps-for-the-windows-platform|website=[[MSDN Magazine]]|publisher=[[Microsoft]]|date=September 2014|volume=29|number=9|via=[[Microsoft Learn]]}}</ref> Windows 10 introduced the [[Universal Windows Platform]] (UWP) 10 API for developing universal apps. Apps that take advantage of this platform are developed with [[Visual Studio 2015]] or later. Older Metro-style apps for Windows 8.1, Windows Phone 8.1 or for both (universal 8.1) need modifications to migrate to this platform.<ref>{{cite web|title=Migrate apps to the Universal Windows Platform (UWP)|url=https://msdnlearn.microsoft.com/libraryen-us/mt148501.aspxprevious-versions/visualstudio/visual-studio-2015/misc/migrate-apps-to-the-universal-windows-platform-uwp|website=Archived Visual Studio Documentations|via=[[MSDNMicrosoft Learn]]|publisher=[[Microsoft]]|access-date=31 July 2015}}</ref><ref>{{cite web|title=Move from Windows Runtime 8.x to UWP|url=https://msdnlearn.microsoft.com/en-us/library/windows/appsuwp/xamlporting/mt238322.aspxw8x-to-uwp-root|websitework=UWP documentation|via=[[MSDN|Windows DeveloperMicrosoft CenterLearn]]|publisher=[[Microsoft]]|access-date=31 July 2015}}</ref>
 
UWP is not separate from Windows Runtime; rather, it is an extension of it. Universal apps no longer indicate having been written for a specific OS in their manifest; instead, they target one or more device families, e.g. desktop, mobile, console or [[Internet of Things]] (IoT). They react to the capabilities that become available to the device. A universal app may run on both a mobile phone and a tablet and provide a suitable experience. The universal app running on the mobile phone may start behaving the way it would on a tablet when the phone is connected to a monitor or a suitable [[docking station]].<ref>{{cite web|title=GuideWhat's toa Universal Windows Platform (UWP) appsapp? |at=Adaptive controls and input |url=https://msdnlearn.microsoft.com/en-us/library/windows/appsuwp/xamlget-started/dn894631.aspxuniversal-application-platform-guide#adaptive-controls-and-input |websitework=UWP documentation |via=[[MSDN|Windows DevMicrosoft CenterLearn]] |publisher=[[Microsoft]] |access-date=3120 JulyApril 20152022}}</ref>
 
UWP is an extension of [[Windows Runtime]] and has access to WinRT APIs, although whether UWP apps can take advantage of WinRT APIs depends on their programming language and its tooling.<ref>{{cite web|title=What's a Universal Windows Platform (UWP) app? |at=How the Universal Windows Platform relates to Windows Runtime APIs |url=https://learn.microsoft.com/en-us/windows/uwp/get-started/universal-application-platform-guide#how-the-universal-windows-platform-relates-to-windows-runtime-apis |work=UWP documentation |via=[[Microsoft Learn]] |publisher=[[Microsoft]] |date=20 April 2022}}</ref>
 
===APPX===
Line 88 ⟶ 90:
| genre = [[Archive (computing)|Archive]]
| container for = Installation information and an EXE or MSI file
| contained by = [[ZIP (file format)|ZIP]], [[Open Packaging Conventions|OPC]]
| extended from =
| extended to = MSIX
| standard =
| open = Yes
}}
'''APPX''' is thea [[file format]] used to distribute and install apps on Windows 8.x, 10, 11, Windows Phone 8.1, Windows 10 Mobile, Xbox One, Xbox Series X|S, HololensHoloLens, and Windows 10 IoT Core.<ref>{{cite web|url=httphttps://msdnlearn.microsoft.com/en-us/libraryprevious-versions/windows/apps/hh464929(v=win.aspx10) |title=App packages and deployment (Windows Runtime apps) |websitework=[[MSDN|Windows Dev8 development |date=6 October 2015 |via=[[Microsoft CenterLearn]] |publisher=Microsoft |access-date=8 March 2016}}</ref> Unlike legacy desktop apps, APPX iswas originally the only installation system allowed for UWP apps. It, replacesreplacing the [[XAP (file format)|XAP]] file format on [[Windows Phone 8.1]], in an attempt to unify the distribution of apps for Windows Phone and Windows 8.<ref>{{cite web |url=https://www.theverge.com/2014/2/11/5400660/windows-phone-8-1-features-leaked |title=Windows Phone 8.1 includes universal apps and lots of feature updates |first=Tom |last=Warren |date=11 February 2014 |publisher=[[Vox Media]]|work=[[The Verge]]}}</ref> APPX files are only compatible with Windows Phone 8.1 and later versions, and with Windows 8 and later versions.<ref>[http://www.wphoneapps.net/2013/12/how-to-install-xap-file-on-windows-phone.html How to Install APPX File on Windows Phone 8.1] {{webarchive |url=https://web.archive.org/web/20150425033027/http://www.wphoneapps.net/2013/12/how-to-install-xap-file-on-windows-phone.html |date=April 25, 2015 }}</ref>
 
The [[Windows Phone Store|Windows Phone 8.x Marketplace]] allowsallowed users to download APPX files to an [[SD Cardcard]] and install them manually. In contrast, sideloading isof UWP apps was prohibited on Windows 8.x, unless the user hashad a developers license or was in a business ___domain.<ref>{{cite web|url=http://www.howtogeek.com/129535/how-to-sideload-modern-apps-on-windows-8/ |title=How To Sideload Modern Apps on Windows 8 |work=How-To Geek|date=23 November 2012 }}</ref>{{Unreliable source?|date=March 2016}}
 
===MSIX===
{{Infobox file format
| name = MSIX
| logo =
| icon =
| iconcaption =
| screenshot =
| caption =
| extension = .msix, .msixbundle
| mime =
| type code =
| uniform type =
| conforms to =
| magic =
| owner = [[Microsoft]]
| genre = [[Archive (computing)|Archive]]
| container for = Installation information, an EXE file, DLL files, and/or other bundled content ("assets")
| contained by = [[ZIP (file format)|ZIP]], [[Open Packaging Conventions|OPC]]
| extended from = [[Microsoft App-V|App-V]], APPX, [[Windows Installer|MSI]]
| extended to =
| standard =
| open = Yes
}}
[[Windows 10]] version 1709 and [[Windows Server 2019]] LTSC introduced a new installation package format called '''MSIX''', which is intended to be a replacement for both the APPX format and the [[Windows Installer]] (.msi) desktop application installation format.<ref>{{cite web|url=https://learn.microsoft.com/en-us/windows/msix/overview|title=What is MSIX?|date=11 June 2022|access-date=3 September 2024}}</ref> MSIX is now the preferred way of distributing UWP apps.<ref>{{cite web|url=https://learn.microsoft.com/en-us/windows/apps/publish/?tabs=individual%2Cmsix-pwa-getting-started|title=Get started: Publish your first app in the Microsoft Store|date=23 July 2024|access-date=3 September 2024}}</ref> An open source project called MSIX Core was started to provide MSIX support for Windows versions earlier than Windows 10 version 1709.<ref>{{cite web|url=https://learn.microsoft.com/en-us/windows/msix/msix-core/msixcore|title=MSIX Core|date=6 October 2022|access-date=3 September 2024}}</ref>
'''APPX''' is the [[file format]] used to distribute and install apps on Windows 8.x, 10, 11, Windows Phone 8.1, Windows 10 Mobile, Xbox One, Xbox Series X|S, Hololens, and Windows 10 IoT Core.<ref>{{cite web|url=http://msdn.microsoft.com/en-us/library/windows/apps/hh464929.aspx |title=App packages and deployment (Windows Runtime apps) |website=[[MSDN|Windows Dev Center]] |publisher=Microsoft |access-date=8 March 2016}}</ref> Unlike legacy desktop apps, APPX is the only installation system allowed for UWP apps. It replaces the [[XAP (file format)|XAP]] file format on [[Windows Phone 8.1]], in an attempt to unify the distribution of apps for Windows Phone and Windows 8.<ref>{{cite web |url=https://www.theverge.com/2014/2/11/5400660/windows-phone-8-1-features-leaked |title=Windows Phone 8.1 includes universal apps and lots of feature updates |first=Tom |last=Warren |date=11 February 2014 |publisher=[[Vox Media]]|work=[[The Verge]]}}</ref> APPX files are only compatible with Windows Phone 8.1 and later versions, and with Windows 8 and later versions.<ref>[http://www.wphoneapps.net/2013/12/how-to-install-xap-file-on-windows-phone.html How to Install APPX File on Windows Phone 8.1] {{webarchive |url=https://web.archive.org/web/20150425033027/http://www.wphoneapps.net/2013/12/how-to-install-xap-file-on-windows-phone.html |date=April 25, 2015 }}</ref>
 
The Windows Phone 8.x Marketplace allows users to download APPX files to an [[SD Card]] and install them manually. In contrast, sideloading is prohibited on Windows 8.x, unless the user has a developers license or in a business ___domain.<ref>{{cite web|url=http://www.howtogeek.com/129535/how-to-sideload-modern-apps-on-windows-8/ |title=How To Sideload Modern Apps on Windows 8 |work=How-To Geek}}</ref>{{Unreliable source?|date=March 2016}}
 
==Security==