What does Windows Vista SP1 Mean for Developers?
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!
Comments
Anonymous
March 19, 2008
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"!Anonymous
March 19, 2008
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.Anonymous
March 19, 2008
@danieldsmith 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.Anonymous
March 19, 2008
The comment has been removedAnonymous
March 19, 2008
The comment has been removedAnonymous
March 19, 2008
@colinizer 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.Anonymous
March 20, 2008
Really looking forward to the file copy improvements and less aggressive UAC.Anonymous
March 20, 2008
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. :(Anonymous
March 20, 2008
As you probably heard Vista SP1 was released to Windows Update on Tuesday.   Full list of updatesAnonymous
March 20, 2008
The comment has been removedAnonymous
March 20, 2008
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.Anonymous
March 21, 2008
Hi Tim, 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 ;-)Anonymous
March 25, 2008
Hey, 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?Anonymous
March 26, 2008
@ 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.Anonymous
April 03, 2008
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?Anonymous
April 06, 2008
Hi.. Can any body tell me is there any short of other prerequisite updates before SP1. As i am not able to get along with the SP1 Update… Any help provided is appriciable Thanks in advanceAnonymous
April 07, 2008
Hi Tim, have you seen any problems with IE 7 connecting to the ASP.NET webserver (VS 2005 SP1 + KB932232). I am running Vista x64 Ultimate SP 1. Debugging an ASP.NET web site opens IE 7, but it fails to load the web pages. The funny thing is, that Firefox 2.0 connects fine to the VS web server and loads the site. Thanks, KlausAnonymous
April 15, 2008
다운로드 세부 정보 Windows Vista 서비스 팩 1 모든 언어 독립 실행형(KB936330) (다운로드) Windows Vista 서비스 팩 1에 대한 정보 (KB 자료) HotfixesAnonymous
April 15, 2008
다운로드 세부 정보 Windows Vista 서비스 팩 1 모든 언어 독립 실행형(KB936330) (다운로드) Windows Vista 서비스 팩 1에 대한 정보 (KB 자료) Hotfixes