What does Windows Vista SP1 Mean for Developers?

Category: Silverlight    |    179 views    |    Add a Comment  |   

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 image 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!

  • No Related Post

 

Have YOU Updated Your Windows SDK Recently?

Category: Silverlight    |    176 views    |    Add a Comment  |   

win-SDK_rgbIt can be pretty hard to keep everything up-to-date on a developer workstation these days. With so many CTP releases, betas, and service packs, I know I often realize that my own machine is behind in one area or another.

One particularly worthwhile update that might have missed your attention over the last couple of weeks is a new release of the Windows SDK, focused on enhancements in the .NET Framework 3.5, Windows Vista SP1 and  Windows Server 2008. Amongst other changes, this updated SDK has new documentation that covers all the new classes in WPF 3.5 (e.g. UIElement3D, System.AddIn, LINQ-based data binding), a variety of new samples for common Windows services such as User Account Control, Windows Search, Windows Error Reporting, Speech, and a range of shell APIs. If you’ve not installed the Windows SDK before, another incentive is a ZIP file containing over 100MB of sample WPF code (check out %ProgramFiles%\Microsoft SDKs\Windows\v6.1\Samples\WPFSamples.zip).

After installing the Windows SDK, you’ll want to do two things:

  • Run the new Windows SDK Configuration Tool (Start / Programs / Windows SDK v6.1 / Visual Studio Registration) to ensure that this is set as the default help collection in Visual Studio
  • Follow this workaround to fix a XAML Intellisense bug that will be very irritating if you’re a WPF developer.

For more information on the Windows SDK, check out the team’s blog or visit the recently overhauled Windows Vista development center on MSDN.

  • No Related Post

 

How to Embed Silverlight Content in Almost Any Web Page

Category: Silverlight    |    227 views    |    Add a Comment  |   

Streaming. Having uploaded a Silverlight application to the Silverlight Streaming service, you can now embed it in any web page as an <iframe>.If you want to include a cool Silverlight gadget on your blog, but your blog engine doesn’t support custom scripts or XAML files, this will work well. It’s also perfect for a social networking site like Facebook, since you can create an application that hosts an <iframe>.

Here’s a little example that demonstrates this:

All it took to embed this was one element:

<iframe
src=http://silverlight.services.live.com/invoke/32/SlLogo/
iframe.html

        frameborder=”0″ width=”258″ height=”100″ scrolling=”no” />

Of course, you’re welcome to steal this one-liner to add some Silverlight “bling”
to your own site :-)

In the next post, I’ll walk through a step-by-step guide to uploading an Expression Blend project to Silverlight Streaming.

  • No Related Post

 

Silverlight Streaming is Now Live

Category: Silverlight    |    173 views    |    Add a Comment  |   

Head over to silverlight.live.com to create yourself a Silverlight Streaming account key and begin uploading your Silverlight applications and media. Silverlight Streaming allows you to upload up to 4GB of media content, with videos of up to ten minutes in length. The storage is “in the cloud” and files are globally cached.

Here’s a rough and raw walkthrough of how you can use it:

  • Grab yourself the trial edition of Expression Media Encoder;
  • Take a video and encode it - make sure you go to the Output tab and choose a player template;
  • At the end of the encode process, you should have a directory that contains the media file, some XAML and JavaScript files and any thumbnails that you’ve specified through the Markers tool-window.
  • You’ll need to remove any .html, .aspx, .media, .csproj or .config files from the output directory. You won’t need these for the Silverlight Streaming service.
  • Then you’ll want to add a manifest that describes the Silverlight application; for a default player from Expression Media Encoder (I used the Glassy theme), you can use the following manifest:

<SilverlightApp>
   <loadFunction>StartWithParent</loadFunction>
   <jsOrder>
      <js>MicrosoftAjax.js</js>
      <js>PreviewMedia.js</js>
      <js>EmePlayer.js</js>
      <js>player.js</js>
      <js>startPlayer.js</js>
   </jsOrder>
</SilverlightApp>

  • Save the manifest as manifest.xml and add it to the directory.
  • Now simply zip all the files up (make sure they’re in the root of the zip file).
  • From silverlight.live.com, go to the Manage Applications tab and upload the application.
  • From here, Silverlight Streaming will guide you through the remaining steps, providing you with the JavaScript and HTML code you’ll need to add to your page to access the streamed content.

Check out the WPF Momentum video I posted a short while ago to see an example deployed in action.

  • No Related Post

 

Making Silverlight Easier for Systems Administrators to Install

Category: Silverlight    |    187 views    |    Add a Comment  |   

If you’re really astute, you may notice that we released a very minor update to the Silverlight 1.0 plug-in this week. There’s no changes to the core itself, apart from a fix to improve logging of Windows Media audio-only streams; as a result, machines won’t auto-update unless the site they visit explicitly requests the new version. (The new version is build 1.0.30109.0, incidentally.)

image The main reason why this release is interesting is that we’ve made a few changes to the installation process to enable systems administrators to deploy Silverlight into enterprise environments more easily. Starting from today, Silverlight is available as an optional update for Windows XP and Windows Server 2003 via the Windows Server Update Services tool (and, inevitably, Microsoft Update, since WSUS relies on Microsoft Update as its source for updates).

Many customers have requested help with deploying Silverlight internally, and this change will hopefully be welcomed by enterprises who want to distribute Silverlight within their organizations using their established management tools. By adding it as an optional update, enterprises can control the roll-out of Silverlight within their organizations and schedule its installation as a background task so that the perceptible impact is minimal, and ensure that end-users can view Silverlight content without requiring administrative rights to install the plug-in.

I’m really glad this is now available: the need for administrator rights to install a web plug-in is not unique to Silverlight, of course, but it’s been raised a number of times as a potential blocker to enterprise adoption. Having this available will solve that problem and make it far easier for enterprise administrators to control deployment of Silverlight to their users.

  • No Related Post