views:

331

answers:

10

I'm an MFC programmer. I just had my first taste of Vista (on a VPC... Yup, I'm late). I should be evaluating things in depth in the coming days. On taking a casual look, I noticed two major changes:

  • The shell is new
  • User Access Control
  • Event Viewer has changed (would like more info on this)

What other new features should I look out for from a programmer's point of view?

A: 

1- Machine with Vista have usually more Ram, this is a good news for you :)

2- Path to "Program files" are splitted in 2 : \Program Files (x86)\ and \Program Files\

3- My Document has changed

Daok
You only have 2 Program files folder if you have a vista 64 bit.
madgnome
...and that's been the case since the first 64-bit Windows release (during the XP timeframe, I believe?).
Reuben
+1  A: 

Well, from a programmer's point of view, WPF is "built in" to the system. That means that if you target an app to the 3.0 version of the .NET Framework, it should be able to install on Vista without a .NET Framework Install.

DirectX 10 is also new in Vista, but I assume if you didn't know that, you probably won't be programming against it.

Search is pervasive. Numerous kernel improvements. SuperFetch (friggin' awesome if you have enough RAM). IMO Vista goes to sleep and wakes up a LOT easier and more reliably than XP ever did. I/O priority -- now apps like AntiVirus and search indexers can request lower priority for disk access than they did in XP or before. That makes the user experience much more enjoyable when something's indexing the drive or a scan is running. All in all, Vista is good stuff IF you have gobs and gobs of memory to throw at it. I run Vista x64 with 4GB of RAM, and I actually like it.

Dave Markle
SuperFetch is their brand name for their new disk-caching mechanism. It eats up a ton of RAM, but in my experience speeds up the system a lot: http://www.microsoft.com/windows/windows-vista/features/superfetch.aspx
Dave Markle
+4  A: 

Vista is much more strict about enforcing rules that you were supposed to follow for XP anyway.

For example, you're not supposed to do anything that requires write access to your program's install folder. In XP a lot of programmers got away with breaking that because so many users run as adminstrator, but Vista will actually enforce it. A bunch of folders did move around ("Users" instead of "Documents and Settings", my Documents is different, etc), but if you're using the correct methods to retrieve those paths rather than assuming they're always in the same place you'll be fine.

Joel Coehoorn
there's actually a hidden symlink to the users directory at c:\documents and settings\ just to ease the issues with programs hardcoding these directories in...
nickf
+2  A: 

Processes and resources have "integrity levels". A process is only able to access resources at or under its own integrity level.

If you ever do any work with IE extensions this will become a PITA when you want to access something and discover that everything has a higher integrity level than IE in protected mode (default).

Gerald
+1  A: 

The audio subsystem has been redeveloped, so if you do anything audio related it is worth checking very carefully if everything still works.

Although many of the older API calls still work, some may not work as expected.

As a simple example, sound devices have much longer and more descriptive names than in XP, but if you continue to use the older APIs then you may find these longer names are truncated.

John Sibly
+1  A: 

Oh, yeah. There's a completely different driver model where much of the code is kicked out of kernel space and back into userland, to prevent poor drivers from trampling over the system. So if you do any driver work it's almost like starting over from scratch.

Joel Coehoorn
A: 

VIRTUALIZATION is also an interesting and necessary feature of vista.

TG
+11  A: 

There's a significant set of changes depending on what sort of software you write.

It's never a bad idea to check out the Windows Logo Certification (for Vista). There's a link to the Software technical requirements here. It always gives you a bit of an idea what to avoid doing (and what to design for).

In my opinion, Vista mostly started to enforce [existing] Logo certification requirements, in particular:

  • Don't write to HKLM
  • Don't save application data under the Program Files directory
  • Don't assume administrative permissions
  • Do save data to the user's application data directory
  • Regarding User Access Control (new to Vista), It's also a good idea to get across Manifest files. The best thing I could find on them is this blog entry here.

    Windows Drivers are under higher scrutiny under Windows Vista and pretty much require certification IMHO.

    The TCP/IP stack was rewritten and so too the audio subsystem (and multimedia streaming etc). Obviously advances in graphics, plus the inclusion of DirectX 10 and usual rollout of an updated Media Player, etc.

    Sorry, I also forgot to mention that Microsoft replaced ActiveSync (for Windows Mobile) with a completely new framework in Vista.

    RobS
    +2  A: 

    Perhaps wikipedia's Features new to Windows Vista and possibly Features removed from Windows Vista will be of use to you.

    RJFalconer