We already know that Windows 8 will include a second, tile-based shell for tablets called Immersive. To further along this rumor, there's AppX: a new type of packaged application model in Windows 8, that very closely resembles Windows Phone 7 application packages, according to istartedsomething.
It therefore follows that the AppX application type could be common to both Windows 8 and Windows Phone 8 (codenamed Apollo), providing developers with a way to write applications for both. In other words, this would be Microsoft's way of allowing apps to work on two Windows operating systems on a variety of devices, including desktops, laptops, tablets, and phones. That in itself is a reason to get excited, assuming it really does come to pass.
AppX is a tight specification that describes how applications are packaged and installed, and was likely inspired by XAPs for Silverlight. AppX packages require an XML manifest file named AppXManifest.xml. In this file, developers will have to specify many compulsory and optional attributes of their application, much more than what is currently required in Windows Phone 7.
Attributes include but are not limited to:
- Application identity – name, publisher, version
- Application architecture – processor architecture, type of application, framework required, operating system version
- Dependencies – name, publisher and minimum version of other required applications
- Capabilities – networking, file system and profile capabilities requested by the application
- OS extensions – associated filetypes and protocols, AutoPlay, "Charms," notifications, splash screen
- Tile customization – logo, name, description and colors for the tile-based user interface
The AppX format looks like it will work on everything from native Win32 applications to framework-based applications to Web applications. Again, while Microsoft has not announced any of this, it looks like AppX will be what developers will be using if they want to develop for both Windows and Windows Phone, whether it be a very basic gadget/widget, a full-blow app, or even a game.