New Year. New Environment.

Happy New Year, Everyone!

At bitsofMine, we decided to celebrate the new year in style and changed our development environment at the same time: Windows 8 became Windows 8.1. Visual Studio 2012 became Visual Studio 2013.

That also means that from now on, we will target Windows 8.1 instead of Windows 8. Shouldn’t be much of a problem, because Microsoft sends out “gentle” upgrade reminders to all users of vintage Windows 8 anyway. And there isn’t much of a reason to stick with Windows 8 in the first place. Windows 8.1 for most parts has nicer features and better performance. And of course, we also want to have nicer features and better performance for bitsofMine! 🙂

So first thing in 2014 we migrated our bitsofMine code. It looked like a smooth ride: Visual Studio 2013 did most of the migration by itself, identified a couple of libraries that needed replacement and once these libraries were exchanged, bitsofMine for Windows 8.1 compiled and ran!

But as usual, the devil is in the details: For example, when navigating in the Timeline via “Goto Date”, the timeline did not move to the correct spot anymore. Microsoft’s document on API changes did not help us neither: all the APIs we were using were supposed to be unchanged. On second look, we noticed a subtle change Microsoft had applied: when scrolling in the timeline, which is technically speaking a GridView, so far the units in which any offset was measured had been “timeline elements”. Now, units appear to be display units instead. So when we were trying to navigate to, for example, a timeline element at index ten, instead we were moving the timeline by just ten “pixels” or more exactly ten display units.

Now, I should mention that this change makes a lot of sense. And you can even argue that Microsoft did not break anything: even before, the documentation never mentioned what kind of units were used in this API. 😉

In this case, the issue was easy to spot. But it also showed us that we need to do some thorough UI testing before we can consider the migration to be complete. In addition to API studies and automated tests that is. Once this is done, we will switch back to adding features. Stay tuned for the next release in January… 🙂