views:

92

answers:

3

Hello,

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?

+1  A: 
  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.
James Deville
+2  A: 

It depends on the nature of the software.

One of the biggest reasons that software targeted to XP must be upgraded for Vista/Win7 is the security issues surrounding UAC. For instance, a lot of older XP software would write to data files in the Program Files directory, and certain other locations, that won't work on Vista without a security elevation. If it interacts with Protected Mode IE then it has to deal with the protected mode issues.

Also, people would like your software to take advantage of features on the newer operating systems. For instance, themes, and Aero skins so your software has a consistent look and feel with other applications on their system.

Gerald
+3  A: 

Your question appears to have 2 subquestions. I'm addressing just the first one:

  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

You may be missing out on many other platforms or languages. I don't claim to know all of them, but off the top of my head I recall py2exe which allows you to write Windows application in python. It may indeed ultimately convert to Win32 API, but that's what .NET and the JVM (in Windows) do as well.

Quoted from site: "py2exe is a Python Distutils extension which converts Python scripts into executable Windows programs, able to run without requiring a Python installation."

Edit

:
In fact, try this - Google "<name of language> to exe". It looks like most of languages, the popular ones at least, have some sort of F/OSS project behind them that compiles them to Windows executables.

bguiz

related questions