Search code examples
operating-systemsoftware-distribution

What exactly changes when a software is to be upgraded from windows xp -> Vista -> Windows 7


I guess

  1. Win32 API
  2. MFC
  3. .NET
  4. Java (is also managed)

are "the only" ways of making windows applications. Please mention if there are some other ways through which we can build win apps

If its a managed enivronment .NET or Java. The application will run on all the Operating systems irrespective of its version. It only cares about the version (api) changes in a framework.

Now coming to Win32api/mfc I guess these api will be backward still compatible.So, when an application is built for windows XP. They need to release a seperate version for Vista and a seperate version for WINDOWS 7.

Why? If its an windowsxp 32bit application. It should run on Vista 32bit and Windows 7 too. right? Why do they have to release seperate version for new OS when its released (Windows 7). Why does some xp apps doesn't run on win7.

OK. Assuming that a newer version is to be released. All they need to do is compile the same source code for/on this newer win7 right? Then why does people take so much time to upgrade their softwares.

So softwares run on all xp,vista,win7 but the problem is significant especially with hardware drivers. one MUST need a new version for new OS. Why is it so?


Solution

    1. Win32 API's aren't always backwards compatible.
    2. Driver code usually has to change to take advantage of new features
    3. Win32 code that uses new features has to change to take advantage of new features
    4. It costs time and money to fix old stuff, you could just try to get people to buy new stuff.
    5. I wouldn't be surprised if much of the software that doesn't work is due to using non-api entry points on earlier versions of OS's, or due to specifically checking for version strings, or relying on Admin permissions.