Windows 10 is highly compatible.

In my previous post, I discussed an overview of Windows 10 application compatibility and found only a single application that worked on Windows 8.1 64 bit that did not work on Windows 10 64 bit.

That is a really high level of compatibility no matter how you look at it, but,  is that enough… well not necessarily there any many issues that  can cause applications to not work on a new platform and obviously the bigger the change the greater the risk.

What factors affect application compatibility?

There are various factors that can affect application compatiblity, generally speaking:

  • The age of the application; the older it is the less probable it is to work with a modern OS and the restrictions in place like User Account Control, Session 0 Isolation, OS Versioning checks and the more probable it will depends on obsolete or removed technologies
  • Moving from 32 bit to 64 bit will decrease application compatibility, there are still many 16 bit applications and components still floating around in applications
  • The platform it was developed on–Microsoft .Net application–tends to work well because of the platform they are developed on (this is not to say developer can’t do bad things it’s just less likely). You would expect Java would be in the category but sadly no, the sheer number of breaking changes between JRE versions makes it a nightmare to manage in most complex environments
  • The knowledge and skill of the software engineer that wrote it

AppDNA can help detect all of the above issues (ok, except for the software engineer skill level) irrespective of whether the application is in-house or not.

But Windows 10 64 bit and Windows 8 64 bit are highly compatible, so why should I use AppDNA?

It’s highly unlikely you have a homogenous environment where all users use one operating system image and all their applications are on Windows 8.1 64-bit.  If they are, then perhaps you’re in that great position where you can just move with low risk, or can you?

Maybe not, when we further validated the results by looking a bit deeper into the AppDNA database we can see that between Windows 7 64-bit and Windows 10 64-bit, there are 3321 PE Files that are missing (or moved) so this means there are potentially 3321 files that your applications could be importing directly from and the API calls obviously are not present if these files are missing, or have moved to a non-library loading location.

Missing Files Windows 10

Missing files between Windows 7 64-bit and Windows 10 64-bit: 3321

And when we start to dig a little deeper for even more subtle changes, where the files are present but they have had specific API calls removed, we find that 4052 API calls are missing!  Many of these are surely benign and presumably your applications do not use unsupported or published API calls or do they!?

Missing APIs Windows 10

Missing API calls between Windows 7 64-bit and Windows 10 64-bit: 4052

As usual there are no guarantees however fortunately Citrix AppDNA has a category of algorithms in the OBSOLETE group that can detects applications that may depend on these files or API calls.

Better yet if you import your own customised operating systems AppDNA will automatically do a delta comparison between them to identify any missing PE file or API calls between the builds, especially important if you have highly customised builds.

 If you’re a XenDesktop or XenApp Platinum customer or partner download AppDNA today to help you on your migration to Windows 10.