As many people will have noticed, we released Windows Vista Service Pack 1 this week (read about the notable changes here). Aside from the inevitable bug fixes and enhancements to support new hardware types, one of the underlying changes is that SP1 brings the Windows Vista and Windows Server 2008 codebases together.
This is a big deal, but it's surprising how few people have noted it: this is the first time we've ever had a common codebase for Windows that goes all the way from a budget consumer PC right up to a mainframe-class datacenter server. Internally to Microsoft, this makes it easier for us to provide sustained engineering on the product: if we want or need to update a system component, we only have to produce two binaries (x86 and x64) for all languages and product editions. Compare that to the days of Windows XP/2003, when we had maybe 25 different language editions and x86 and x64 variants for both client and server OS releases, and you can see how the testing matrix has become a lot simpler! Externally, the benefit is of course that simply by updating to SP1, you get the benefit of a kernel that has been through an extensive server-hardening process. (Check out this Channel 9 video I recorded last year with Eric Hanson to get just a small flavor of the stress testing work that we do with every build.)
Beyond the kernel and subsystem improvements, Windows Vista SP1 brings major improvements to IIS 7. Comparing the original Windows Vista "RTM" version against that shipped with SP1 is like comparing the basic and premium models of a car - the SP1 version of IIS contains all the features added to create the server-strength edition (with the caveat that Windows Vista SP1 is obviously not licensed for use as a commercial-scale production Internet web server). As a crude measure, compare the two screenshots of the administration console below - the left image is of Windows Vista RTM, the right is of SP1:
You'll see other changes to Windows Vista that affect certain relatively niche groups of developers. Direct3D receives a minor update to 10.1; there are new APIs to control the Data Execution Protection and Kernel Patch Protection features; and there are new cryptographic and random number generation algorithms available for developer use. As ever, more information about these features can be found in the Windows SDK.
As a .NET developer, you'll notice that Vista SP1 updates the installed .NET components to .NET Framework 3.0 Service Pack 1. The good news is that many of the enhancements from .NET Framework 3.5 are included in 3.0 SP1 - for example, of the list of fifteen enhancements to WPF described in this blog post, everything apart from System.AddIn and the Firefox XBAP support is included in Windows Vista SP1. This is a little bit confusing, but it probably helps to know that each of the last .NET Framework releases have built on top of each other, rather than existing side-by-side. The diagram to the right demonstrates this.
As a result, all the CLR and class library enhancements that were made to existing assemblies in 3.5 are incorporated in 3.0 SP1 (mscorlib.dll is updated from 2.0.50727.312 to 2.0.50727.1434); the binaries are identical to those shipped with .NET Framework 3.5. The only difference between 3.0 SP1 and 3.5 is that 3.0 SP1 doesn't have any of the new assemblies ("green bits") added in 3.5 for new capabilities like LINQ. Of course, if you've already installed .NET Framework 3.5 on your Windows Vista machine prior to installing SP1, you'll still have the full 3.5 release on your machine afterwards.
The many other nice features in SP1 for end-users and IT Professionals are outside of the scope of this entry, but suffice it to say that some of the major peeves have been addressed: UAC is less aggressive, file copy performance has been greatly improved (and it takes less time to "estimate"!), application compatibility is better, resuming from standby is faster, and over a thousand bugs have been fixed. For more detail on all these items, check out the main Windows Vista Service Pack 1 site.
It's worth noting in closing that many of the above fixes at least have been delivered via Windows Update over the last twelve months. We're moving away from the old-school approach where service packs were the main way that fixes were delivered to a more agile model where patches are available via Windows Update (or its enterprise equivalent, WSUS) and then rolled into a service update at a later stage. The goal is to reduce the gap between us fixing something and you seeing the results of that fix.
Well, what are you waiting for? Go install Windows Vista Service Pack 1!
Just think how much easier life will be when you eventually stop making 32-bit versions of Windows and everyone moves over to 64-bit :-)
You guys should totally do this for "Windows 7"!
We tried SP1 last week and uninstalled shortly afterwards due to a few issues. We could have probably resolved these, and the upgrade is very attractive, but too risky in a live development environment at the moment without time to troubleshoot little issues.
The industry is currently in that window where it's not clear if new machine's come with SP1 or an upgrade is required. This affects things like whether it's necessary to manually add the mime types to IIS as you mentioned 2 posts ago.
In looking at new machines lately we considred 64-bit vista, but a quick google shows some of the issues that make the 64-bit choice one that is better suited to servers than developer workstations.
Perhaps the fact that there's a choice, reduces the motivation to get these things sorted, so perhaps Windows 7 being 64-bit only will give it the final push, albeit with some switching pains, if not a lot of software upgrade revenue for ISVs.
I installed it, installer asked to reboot, I let it - machine comes up and falls back over.
god only knows what went wrong but after installing sp1 my machine would not boot again, not even in safe mode.
I spent a considerable amount of what would have been billable time (I am a software developer) massaging my laptop back to life.
if it wasnt for my paranoia of keeping backups of my enviroment I would still be spending more billable time getting my development enviroment back to life.
This experience directly contrasts with a work colleauge of mine installing SP1 and not having any problems what so ever.
Having said that, god help the poor sods who dont have the tools to massage their computers back to life and need to take their new computers back to their supplier.
I am waiting for "the second wave" as my vista language is not in the first one. Why first and second waves of translations? It cannot be the (for example) Swedish translators (second wave) being occupied translating to Spanish or German (first wave).
Second wave is coming "later in 2008" is what I have heard. Hopefully "2008" is _not_ calendar year, but "microsoft year" (ending in april?).
I've been using the x64 version for my main development system since it was still in beta. VS2005 now VS2008. Real problems so far = zero.
Really looking forward to the file copy improvements and less aggressive UAC.
Tried Vista... WAAAAY too slow. Tried Vista SP1, but now have strange crashes in network applications after sleep mode. Definitely NOT ready for prime time. :(
As you probably heard Vista SP1 was released to Windows Update on Tuesday.   Full list of updates
caution : SP1 sucks !! installed it twice and i got a complete system failure
Windows 7 as x64 only? No, not yet. I use Vista x64 and am very happy with it. It is definitely a solid product that, for me, has exhibited excellent compatibility with both my hardware and software. The problem is simply that you need a 64 bit core to run it. There are still too many slightly older machines that are plenty fast enough to run Vista and presumably Windows 7 (like my P4 3.4Ghz Extreme machine at home), but simply cannot run x64 since they are missing the EM64T extensions. Eventually, these machines will go away, but not by 2010. I do think, however, that Microsoft should market x64 as the preferred edition of Windows and insist to vendors that they pre-install x64 versions of Windows 7 on all new machines capable of running it. This should be enough to get the tide moving toward an x64 only world by the following Windows release.
Could you tell us the reason why .net Framework 3.5 wasn't included in Windows Vista SP1 ? Is it as simple as a timeframe problem ?
I installed Windows Vista SP1 on two machines now and I don't get more problems with it, and not a lot less too ;-)
One thing that came to mind, that there should some adaptive UAC, like you grant one application to UAC to run in full control , it wont popup any more unless significant attributes of that applicaton changed ? Will there be any such improvements to UAC like that?
@ Mehfuz Hossain
There are too many variables involved in creating an adaptive UAC like you described. For instance, you may have an application that you're confident is safe, but displays questionable activity in the presense of a live network. Running this application once while the network is disabled is safe enough, however, simply enabling the network will change nothing in terms of the application. You wouldn't want UAC to allow the application to run again later if the network is alive.
tim -- i installed VS 2008 and .NET 3.5 and my mscorlib build number is 1433, not 1434. what is different in the SP1 mscorlib and that which was in the 3.5 install?