views:

493

answers:

3

Hello,

Recently I installed Windows 7 in my development machine just to test, with it I installed Visual Studio 2010, but I was thinking in what are the major differences between the development for/under Windows XP, Windows Vista and Windows 7?, how about .Net Framework 4?

+5  A: 

User Account Control, Mandatory Integrity Control and the execution of software as non-administratior.

  • It creates a secure desktop that you cant access/modify from your code. (The secure desktop can be disabled with group policies. You would still see when your code requires higher privileges, but it wont lock up all screen with a secure desktop.)
  • Automatic redirects when writing to system-wide stuff (Program Files, HKLM) to a user-specific location. (Somewhere under %AppData%\Local\VirtualStore.)
  • Software marked as low integrity can only write to folders marked with low integrity.
Simon Svensson
+1  A: 

Uhm, between XP and Windows 7 - the whole model changed. Depening on what you're developing (device drivers) you may face an entirly new system with an event based kernel model. Dunno... the question is very general ;).

wishi
It needs to be general, because it's good to know many of the changes to learn how to use then and improve your abilities.
Nathan Campos
+1  A: 

If you develop Windows services, you should know that Windows services can no longer interact with the desktop starting with Vista. To communicate with a Windows service in Vista (and presumably Windows 7), you will need to use some sort of IPC, e.g., sockets, pipes, etc. If you've been holding off on learning Windows Communication Foundation (WCF), now would be a good time to do so since WCF can bridge this gap.

Matt Davis
There's a checkbox under the Log On properties named "Allow service to interact with desktop".
Simon Svensson
Yes, but this only allows the service to interact with Session 0. Users are logged into Session 1 (or greater). Thus if the checkbox is checked and your service displays a message box, it will show up in Session 0, not the session the user is logged into. http://blogs.technet.com/voy/archive/2007/02/23/services-isolation-in-session-0-of-windows-vista-and-longhorn-server.aspx
Matt Davis