2017 – MVP award – Great Start

On 1st of Jan 2017 I got a mail from Microsoft stating that I have been awarded an MVP award for my community contributions for Windows Development.

I am honoured to have been nominated and to have been awarded this. For a developer in Microsoft technologies this is the highest honour (sort of). Thank you @WindowsDev and @MVPAward

I think 2016 was a mixed bag and technically I did little to have deserved this honour. I have been a contributor to the UWP Community Toolkit and that was the primary driver. I am sure I did substantially more from 2011 – 2015 but hey maybe that’s what it took 🙂 still feels surreal

Going ahead I will try to blog more about #UWP and #UWPDev in 2017. Happy new year all

Json Formatter Edge Extension #Windows10

The only reason I install Chrome now and again is to use extensions like Json Formatter extension. Recently Microsoft released Windows 10 Anniversary update.
Edge browser on this update supports extensions. This list of extensions on store is still limited. The team is analysing the performance and publishing them accordingly.

Can’t wait any longer. I started by cloning Json-Formatter repo and used Microsoft Edge Extension Toolkit to port the extension to work on Edge.

You can download the repo and install the extension after enabling Extension developer mode from ‘about:flags’edge-extension-developer-featuresload-extensions

The repo is on Github https://github.com/hermitdave/json-formatter-edge along with instructions

An example geonames json service can be found here

By default the json is displayed like this on Edge browser.Screenshot (43)

With the extension installed, it is displayed at belowScreenshot (42)Screenshot (44)

To port another extension use the Micosoft Edge Extension Toolkit available on Store

What to do when your Surface devices don’t sleep

Starting Windows 8 Microsoft introduced a sleep state called Connected Standby (CS). Think of this sleep as your smartphone when its screen is off, the device is still running, connected to the mobile networks, capable of receiving notifications and wakeup calls etc.

In early days this feature was supported only on WOA… you know it as Windows RT.. yes something many wouldn’t care to remember.. Windows x86 / x64 SKU officially support CS starting with Haswell processor. Haswell introduced a sleep state S0. This keeps part of the device sufficiently awake to receive notifications etc while in low power state.

It never truly worked for me. I had one of the first engineering models from Intel delivered in June 2013 and the device refused to wake up properly. I tried just about everything and while things have gotten better, for people like myself, battery life is more important than notification (which I already get on my phones). A few times SP4 in CS has had around 50 – 90% drain in few hours ( 2 – 4).

The solution is easy – unless CS is something you rather than instead of longer battery life, you should force system to hibernate rather than go into connected standby.

Switching to hibernate:

  • press Start Menu and type power options
  • open Power Options from Control Panel.
  • tweak Choose what power buttons do option – enable hibernation and set desired settings
  • tweak Change when the computer sleeps – I prefer a short sleep
  • next click Change advanced power settings
  • Navigate to Sleep > Hibernate After > Ensure duration is correct.
  • Click  Ok and close all power options.


Screenshot (26)

Screenshot (27)

Screenshot (28)

Screenshot (29)

Windows Universal or Universal Windows – Part 2 #uwp #wpdev

Great minds think alike… its unlikely that you read the Part 1 its a bit TL;DR; to be frank.

Assuming you have a Windows Universal project or are starting there and are also interested in targeting Windows 10. Here is me creating a blank Windows 8.1 Universal project using Blank template.


This is what Windows Universal Project looks like… You have the Windows head (that’s what they called it), the Windows Phone head and the Shared head.

Whatever is in the shared head is copied to Windows & WindowsPhone head as the first step of compiling the project. Its a neater version of sharing a file by adding a file reference (Add existing file > Add link).

All shared stuff goes in Shared head. Anything specific to either head goes in Windows or WindowsPhone heads. Shared head usually includes all the Models, ViewModels, Services, Helpers, Behaviours and whatever stuff you don’t what to put in PCL (not everyone uses PCLs)

Lets add Windows 10 project to the solution

Screenshot (22) WindowsUniversal3

We need a few minor adjustments before Windows 10 project becomes a part of Windows Universal and thinks the same way. Lets delete the App.xaml and App.xaml.cs to start with.

Next right click unload Windows head and then right click and choose Edit

Scroll all the way down until you see something like this


Copy this line.

Now unload and edit the Windows 10 project. Scroll to the bottom to the exact same spot and paste the line without any changes.

Save and close. Reload both Windows head and Windows 10 project and that’s it. The Windows 10 universal project is now a part of Windows Universal project. The circle is complete.

All items in shared head are now a part of Windows 10 head and all you need to do is add Windows 10 head specific bits like you have for Windows 8.1 and Windows Phone 8.1

You build for store like you build before.

You have appx / appxbundle for

Windows (x86 / x64 / ARM)

WindowsPhone (ARM)

Windows 10 (x86 / x64 / ARM) compiled to Native


Windows Universal or Universal Windows – Part 1 #uwp #wpdev

Did I just say Windows Universal ? Sure that came and went with Windows 8.1.. If I am still talking about it… I mostly likely do not have anything useful to add. I am going to any ways.. Haters are gonna hate.

If you are contemplating a brand new Windows 10 app targeting Windows 10 device families like Windows.Desktop / Windows.Mobile etc you most likely have a Windows 8.1 or Windows Phone 8.1 app or both (or Windows Universal). If you don’t then you like many have been attracted by the idea of massive growth in Windows 10 install base since launch in August.

Yes Windows 10 will make it and your app will finally have a big big market however that day isn’t today. Windows Phone 8.1 still constitutes 90% of Windows on Mobile devices. Windows 10 on desktops is same as Windows 8.1 out there today. Yes a big chunk of them will eventually convert – maybe but they still haven’t.

App usage is important and growth is important and for that reason if nothing else you shouldn’t leave existing Windows 8.1 (phone included) out of this equation. Let me give you a personal example.

We (me working along with my employer) released our official app on Windows 10 Mobile to coincide with launch of Lumia 950 and Lumia 950XL on the 2nd of December. We started getting installs and reviews from around the world. I had left out Windows Phone 8.1 version because of a bug I couldn’t put my hand on. After a few days of messing around, we released Windows Phone 8.1 app on 15th December (17:00 hours). By end of day of 17th Windows Phone 8.1 accounted for 62.2% of the users and exceeded 70% on 18th.

Less than 3 days and 70% user base – don’t make them wait. Serve one serve them all.

Our app available on Windows Phone 8.1 and Windows 10 devices and can be downloaded Windows Store

All said and done I am hoping to follow my own advice about Window 8.1 users soon.


Windows Platform New App Versioning style #wpdev #uwp

Windows Store unification started a few days before the release of Windows 10. On 29th, I pushed an update out while waiting for Windows 10 upgrade – I had reserved by copy of Windows 10. While waiting, I continued with updates and having lost all patience, forced an update on the 30th.

I continued development using newly install VS 2015 and wanted to make an install I suddenly got this error “The version attribute of the Identity element must have a higher version number than ‘2015.729.2036.5893’

WTF ?? I tweeted angrily asking @VisualStudio what the heck was being added to StoreAssociation file..

Later that day, I reset my device and went back to VS 2013..nope it wouldn’t have any of it.. would still give me the same error as VS 2015. Who knows what the heck was happening.. I had little time and I haven’t heard from anyone so I continued with whatever it suggested.

On 1st August I encountered yet another problem with store.. this time.. “MakeAppx failed to open the package”. This time I asked on of the Microsofties to pull a few strings. They fixed that issue (AnyCPU was being read as ARM and ARM package wasn’t found so it failed) and in the thank you note, I mentioned that store was forcing timestamp based version. Non of those on the list commented so I assumed it was a cockup on my app since SL based 1Shot has no such issues.

store version error

Fast forward yesterday. I pushed on a new beta on a newly created store account. Today I wanted to update it and it fails with a similar message. I find support pages and chat with one of the support people. What am I told.. yes Timestamp based versioning is the new way in unified store. Sorry it wasn’t communicated and don’t know why it doesn’t hit SL apps but its all fine.

So it any of you lot develop with WinRT (many do I presume, you will face this issue soon).. just don’t format your machine like I did 🙂

Why can’t they just inform the developers ?? they find enough time to write boat loads of blogs about various things..