Home > Uncategorized > Application Ordering in Surface Application Launcher

Application Ordering in Surface Application Launcher

Before being able to order your application, the first mandatory requirement is to get all your application you have built that are installed on a device made for Surface must have a corresponding ApplicationName.xml which is used to register you application to Surface Shell. If you do not do the registration process for all your application, they will simply not be visible by the Launcher.

Let’s review briefly how an ApplicationName.xml looks like


From the sample application.xml file above, we will concentrate on the Title, Description, and ExecutablFile entries. As you can see there is no absolute path to physical executable file. The reason for this is that the application.xml file of each application resides in the installation folder of the deployed application.

How the application gets register to Surface shell then?
This operation is done by having a shortcut of that file copied to the %ProgramData%\Microsoft\Surface\v2.0 folder

After you have registered your Surface applications with Surface Shell, they appear in Launcher. By default, all registered applications display in Launcher in alphabetical order (by application title) from left to right.

Application ordering in launcher

By default, each application are organized in the Application Launcher in alphabetical order.

Surface Application Launcher

In order to organize application in the launcher the way you want it, there are two different approaches:

  • Through the Surface configuration Editor
  • Manually by editing the ApplicationOrder.XML

In this post I will describe the scenario we have used in our projects in order to bring some sample use of that ordering process in a flexible way.

Setting up the ApplicationOrder.XML File

Order of application is define by an xml file call ApplicationOrder, that if exist will be available in the %ProgramData%\Microsoft\Surface\v2.0 folder.

In the ApplicationOrder.xml file, you can specify one the two mode:

      • The SpecificApps
      • The AllApps

We will concentrate on the SpecificsApps in our scenario. The AllApps mode is a combination of SpecificsApps mode and all application registration.

Let’s create for our sample a first file dedicated for kids application for instance and let’s name it KidsOrderApp.xml:

In this file sample we can see that we have register and order 3 applications that will be displayed in the launcher from left to right, in the same order as in the xml file.


Let’s create now a second XML file dedicated to business users and we will name that file BuisinessOrderApp.xml


A flexible Launcher management approach

Now on what we just described you are going to say why the file is not named ApplicationOrder.xml?

You are right in that sense, but the approach that I would like to describe here is to show you the flexibility you can have by playing with different custom files based on your audience.

Let’s imagine the scenario where you want to get visible on the Surface Launcher some application at a certain time period and the others to another time period. The hard way would be that you connect remotely to the unit and then change files you want to see.

A better scenario you can use such file is to use the company domain policies to publish those files automatically. Sure for that approach you need, or your customers need to get the device as part of the company domain.

Once the device is part of the domain you can easily define different scripts which then deploy the corresponding file KidsOrderApp.xml or BusinessOrderApp.xml at the proper time.

For example:
The KidsOrderApp.xml could be deploy from 3 PM to 6 PM into an hotel lobby
– The businesOrderApp.xml could be deploy from 8AM to 4AM and 6PM to 7AM

You can then have a vb script file which does following operation:
– Rename the corresponding file to ApplicationOrder.xml
– Publish the file to the %ProgramData%\Microsoft\Surface\v2.0 folder of the device
– Optionally restart the device or wait for a new session start on the device.

The vb script file will be executed in the respective domain policy rule suitable to cover the need.

I hope that this small post on the approach to ordering application and deploy custom scenario brings you more deployment flexibility. A simple thing that when use efficiently can save your time.

Categories: Uncategorized Tags: , ,
  1. October 15, 2012 at 2:20 am

    I’ve recently started a website, the information you provide on this website has helped me tremendously. Thank you for all of your time & work.

    • Serge
      October 18, 2012 at 11:15 pm

      thank you for your support. happy to see it is usesefull :-). Talk to your co workers and redirect them here time to time 🙂

  2. tino
    October 22, 2012 at 10:12 pm

    Serge, thanks for sharing this simple but practicle way of using this ordering. your tips will save me time on backuping and restore different version of my Surface app registering folder. great blog also men. Love it !!

  1. No trackbacks yet.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: