If you have developed a Win32 or .NET application, and are interested in publishing it for the Windows Store, then Microsoft has released a tool to translate from the one to the other. There are some obvious concerns about this, which I will discuss later in this post, but most of those are more relevant to society as a whole, versus a single person who writes an app. This used to be called Project Centennial, and it's designed to help users enter the UWP platform with little effort, using the APIs they are comfortable with.

The major concern (from a society standpoint) is that the whole reason why Microsoft doesn't deprecate Win32 is because there's too much of it in use. This conversion process forces the application to only be installed through sideloading, or by uploading it to Windows Store. This is much better than iOS and the now deprecated Windows RT, which don't allow sideloading content, but there's nothing preventing Microsoft from just killing sideloading in five, twenty, or a hundred years. Since that's the only way to express yourself through a native application without a license for Microsoft, you can see what could go wrong if a government tells them that encryption software needs to go away, or a civil rights group attempts to release a controversial work of art.

Again, as I said earlier, this is a society issue, though. For interested developers, the tool is a way to bring your old software to a new distribution method. People like Tim Sweeney will probably say “no thanks” for political reasons, but, if that's not a concern for you, the tool exists.

From an enterprise standpoint -- there might have been good reason to disable it. Microsoft's solution is to use Windows 10 Enterprise or Windows 10 Education. This doesn't help those who already purchased a significant number of Windows 10 Pro licenses. I've also talked to someone in an enterprise environment who pointed to this decision as their reason to not upgrade to Windows 10 earlier in the year. Their organization cannot justify upgrading to Windows 10 Enterprise, and they have legal obligations that require locking down the apps that end-users can install.

So enterprises have been privately responding to this decision, apparently, but I'm not sure whether they're considering the bigger precedent. This is a concrete example of Microsoft removing user choice after they accepted the platform. This should start to make users think about all the other ways that Microsoft can alter the deal going forward, especially since you cannot just sit on Windows 10 1511 for a decade like you could with Windows XP or Windows 7.

Preventing users from blocking Windows Store (and the UWP) could be seen as a step toward deprecating the “wild west” method of installing software that we're used to. You can install unsigned Win32, for now. You can sideload UWP applications that aren't certified by Microsoft, although they need to be signed by a handful of root certificates, for now. This will always be a concern when dealing with a closed platform, where society isn't allowed to just fork away from disaster, but it's good to continually remind people of what could happen if decisions are extrapolated.

It would be wrong to assume malicious intent, though -- that stuff would leak all the time. But, with sufficient tunnel-vision, we could end up with negative consequences. It could be an enterprise worth of PCs becoming useless legal liabilities overnight, or it could be policies that allow a government to ban encryption software from installing on a platform.

A start to proper testing

During all the commotion last week surrounding the release of a new Ashes of the Singularity DX12 benchmark, Microsoft's launching of the Gears of War Ultimate Edition on the Windows Store and the company's supposed desire to merge Xbox and PC gaming, a constant source of insight for me was one Andrew Lauritzen. Andrew is a graphics guru at Intel and has extensive knowledge of DirectX, rendering, engines, etc. and has always been willing to teach and educate me on areas that crop up. The entire DirectX 12 and Unified Windows Platform was definitely one such instance.

Yesterday morning Andrew pointed me to a GitHub release for a tool called PresentMon, a small sample of code written by a colleague of Andrew's that might be the beginnings of being able to properly monitor performance of DX12 games and even UWP games.

The idea is simple and it's implementation even more simple: PresentMon monitors the Windows event tracing stack for present commands and records data about them to a CSV file. Anyone familiar with the kind of ETW data you can gather will appreciate that PresentMon culls out nearly all of the headache of data gathering by simplifying the results into application name/ID, Present call deltas and a bit more.

Gears of War Ultimate Edition - the debated UWP version

The "Present" method in Windows is what produces a frame and shows it to the user. PresentMon looks at the Windows events running through the system, takes note of when those present commands are received by the OS for any given application, and records the time between them. Because this tool runs at the OS level, it can capture Present data from all kinds of APIs including DX12, DX11, OpenGL, Vulkan and more. It does have limitations though - it is read only so producing an overlay on the game/application being tested isn't possible today. (Or maybe ever in the case of UWP games.)

What PresentMon offers us at this stage is an early look at a Fraps-like performance monitoring tool. In the same way that Fraps was looking for Present commands from Windows and recording them, PresentMon does the same thing, at a very similar point in the rendering pipeline as well. What is important and unique about PresentMon is that it is API independent and useful for all types of games and programs.

PresentMon at work

The first and obvious question for our readers is how this performance monitoring tool compares with Frame Rating, our FCAT-based capture benchmarking platform we have used on GPUs and CPUs for years now. To be honest, it's not the same and should not be considered an analog to it. Frame Rating and capture-based testing looks for smoothness, dropped frames and performance at the display, while Fraps and PresentMon look at performance closer to the OS level, before the graphics driver really gets the final say in things. I am still targeting for universal DX12 Frame Rating testing with exclusive full screen capable applications and expect that to be ready sooner rather than later. However, what PresentMon does give us is at least an early universal look at DX12 performance including games that are locked behind the Windows Store rules.

If the complaints of the developers in this story over at The Register are accurate then the problem with the Windows Store might not be that there are no good apps but instead that you simply can't find them. If a developer can't find their own app in the store using keywords in the title or description or even the ones they submitted to the store then how can you expect to? If the only good way to find an app is to know its exact name, how many apps are there in the store that no one but the developer has even seen? It is still possible that an improved search function will not help the Windows Store but at this point its reputation could not get all that much worse.

"Looking at the developer forums though, it seems that official guidance and assistance for this issue is not easy to find, which will not help Microsoft in its efforts to establish a strong Windows 10 app ecosystem."

Microsoft introduced its own application download repository with Windows 8 along with an SDK for developers to put together touch friendly applications around the formerly-Metro-No-Longer-Modern-Whatever-It-Is-Called-This-Month user interface. Dubbed the Windows Store, it would be the source of applications for Windows RT, Windows Phone, and Windows x86/64 alike.

Since the release of Windows 8 Consumer Preview in February 2012, users have been able to use the Windows Store application to search for and download both free and paid-for apps. The Windows Store is a curated marketplace with applications that must be certified for compatibility by Microsoft who takes a percentage of sale price (30% or less depending on number of downloads).

At the end of last year, Microsoft had approximately 142,000 apps listed in the Store. Further, the company is seeing as many as 4 million application downloads per day from the Store. The 4 million downloads per day number was uncovered by Alex Wilhelm at TechCrunch, and is a 134.6% increase over the downloads/day number from October 2013. The breakdown of application type is pre-dominately free with paid applications acconting for less than half of the daily downloads (which makes sense).

At the current download rate, Microsoft could push as many as 1.46 billion app downloads a year. All things considered, the Windows Store is still dwarfed in downloads, number of apps, and popularity by the iOS, Google, and Mac app stores, but it is showing a surprising amount of growth lately. Hopefully this rise in popularity will beget more popularity from the cycle of developers getting interested in the Store and users getting new applications. (Ideally, as the Windows Store userbase grows, developers will have increased incentive to program new, or port existing, apps to Metro which should further bring in new users and so on).

I think we all know my opinion on the Windows Store by now. I have been pretty vocal about the severe consequences inherent to requiring certification for applications to exist. Like it or not, it exists, and has recently reached a new milestone in terms of app count.

Paul Thurrott of Supersite for Windows collected a bit from information from various sources about status of the Windows Store. MetroStore Scanner reported that the store surpassed the 35,000 mark on December 27th with apps being added at an intense rate of a several hundred apps per day.

The rapid inclusion of apps has been a trend throughout its life. The Next Web noted a fairly constant increase of 10000 apps per month. This meant that across the month of November, the Store more than doubled its catalog.

Just a couple of days earlier, Paul also reported that the Windows Store for Windows Phone passed 150,000 apps although it looks like a math error. The blog post claims Microsoft certified 75,000 apps which “more than doubled the catalog” which suggests that the catalog has some amount less than 150,000 apps.

But that is neither here nor there: the Windows Store is getting a bunch of SKUs.

In other Microsoft news, the company is rumored to be working on its next generation operating system. Codenamed Windows Blue, it will be a low cost upgrade for existing Windows users that will be based on a subscription service for updates.

Details are extremely scarce at this point but it does seem like a probable move from Microsoft. It does seem like Microsoft has been moving in that direction for some time now. According to The Verge in reporting on sources in the know, Windows Blue will keep the Windows 8 name for branding purposes but the OS will receive a new SDK, UI changes, and performance tweaks during yearly updates. The updates are due in mid-2013, and the Windows Blue update service will span from Windows 8 to Windows Phone (Windows Server was not mentioned). Oddly enough, with the Windows Blue update Microsoft will stop accepting new Windows Store applications built to run on Windows 8. The Windows Store will continue to allow existing Windows 8 applications, but will require developers to rewrite their applications using the new SDK in order to get them on the Store for users running Windows Blue subscription service.

It is a lot to take in, and there are many unknowns at this point. Do you think Microsoft has a good idea with the yearly subscription model, or will it cause backlash from users used to the way Windows has worked for years. Especially those that buy an OEM system with a pre-installed OS and use it until something breaks. Will they be receptive to yet another subscription service for an OS that traditionally has been a one-time purchase?

Assuming it is a good idea, how much would you pay for yearly updates? Will the Windows Store be enough of a success to essentially subsidize the development cost and allow for cheap pricing on the subscriptions?

So around the same time as my future of Windows editorial became published PC Mag published a related piece: Notch from Mojang outrages over certification for Windows Store. Mojang voiced his concerns for the platform and its attempts to “ruin the PC as an open platform.”

I have, and continue to, claim that Microsoft appears to want to close the Windows platform in a near-future revision of the platform. Once there is enough software available through Windows Update and Windows Store it seems highly likely that Microsoft will remove all other ways on to your device -- as they have done with Windows RT. The concept of a cross-device, controlled, and secure platform is just too tempting.

Loyal, but not stupid.

But backwards compatibility is not the only concern with going metro. Everything must be certified.

Indeed - as of the latest July 2012 certification requirements for Windows Store - Microsoft will predictably be censoring applications just as they do with the Xbox. Section 5.8 and 6.2 of the aforementioned certification requirements clearly state: applications must not contain excess or gratuitous profanity and applications must also not contain adult content. Of course this is aimed squarely at the various niches of adult graphic novels (correction: I apparently meant visual novels, not graphic novels - but I'm sure those would not be let on the Windows Store either) and similarly themed interactive content and the message is clear: get out and stay out.

I can think of a couple of countries where that will not fly.

To be fair Microsoft has addressed the issue in the very same section with the following clause:

We understand that in some cases, apps provide a gateway to retail content, user generated content, or web based content. We classify those apps as either Storefront apps, whose primary function is to aggregate and sell third party media or apps, or Streaming apps, whose primary function is to aggregate and stream web-based images, music, video or other media content. In some cases, it may be acceptable for a Storefront or Streaming app to include some content that might otherwise be prohibited in a single purpose app.

The clause functionally means: “Yeah we know web browsers cannot prevent themselves from surfing to the wrong side of the internet’s metaphorical tracks. This is not an excuse to ban them.” It also does not limit the censorship that Microsoft is clearly imposing.

And frankly the issue is not even with adult content; the issue is with the certification itself. We are at a point where Microsoft seems to want us to accept and migrate to their closed platform where everything is certified.