[This has been produced primaily for UK ISVs we are engaging around Vista and WinFX development - but hey - you found it, so hopefully you will find it useful]

Author: Eric Nelson, Microsoft Ltd, UK
Initial Release: 7th March 2006
Last Updated: 18th July 2006
Current Vista CTP: July - MSDN Subscribers
Current .NET Framework 3.0 CTP: July - public download
Last Beta Vista: Beta 2 - MSDN Subscribers (and was public for a few weeks)
Last Beta .NET Framework 3.0: Beta 2 - public download

Overview

.NET Framework 3.0 (formally known as WinFX) and Windows Vista are currently in Beta. The product teams are releasing regular builds which we can download and use for development. These builds are called Community Tech Previews (CTPs). The good news is CTPs get released frequently (every month or so), the bad news is they are tested less rigorously than the more infrequent Beta releases of Vista and WinFX.

There is an offical Beta 2 of both technologies which are the easiest to get up and running. However there are later CTPs - at the time of writing we have June and July CTPs which came after the Beta 2 releases.

Beta 2 is significant in that applications built against .NET Framework 3.0 Beta 2 can be deployed into live environments thanks to a go-live license . The later CTPS do not include a go-live license.

.NET Framework 3.0 contains three main technologies:

  • Windows Presentation Foundation (WPF) - powerful unified framwork for building great user experience
  • Windows Communication Foundation (WCF) - a single unified approach to communicating from A to B (and B to A, and A to B1/B2/B3 and...)
  • Windows Workflow Foundation (WF) - a workflow framework which developers can embed into their solutions to manage everything from sub second in-memory only workflow to 30 day long human interaction workflow persisted to disk

Vista contains many new features which applications can take advantage of other than those we associate with .NET Framework 3.0. There is a great 200 page chm file to download which covers these in a fair bit of detail.

Setting Up a Development Machine:

Vista and .NET Framework 3.0 are in beta right now - they can (and do!) have problems and I would not recommend them for installation on your current development machine. You therefore have three options:

  • Install into a Virtual PC
    • This is perfectly fine for most stuff. A Windows XP guest OS with .NET Framework 3.0 installed is a great starting point, but you can even go the whole hog and install Vista as a guest OS. This works fine. This is not a good option if you are primarily interested in exploring Windows Presentation Foundation as this requires a high end GPU which virtual machines do not emulate.
  • Create a dual boot PC with two OS installs
    • This takes me back to the time before Virtual Machines - perfectly valid and some of my colleagues use this approach.
  • Find a secondary machine and install the betas on that
    • This is a good choice if you have the kit.

The next choice is whether to develop .NET Framework 3.0 using a Windows XP OS or Vista. Both Vista and WinFX are in beta and have different development teams and different release cycles. In general .NET Framework 3.0 runs fine on top of Vista BUT is a slightly more problematic environment than .NET Framework 3.0 on top of Windows XP. Therefore:

  • If you just want to do .NET Framework 3.0 work - I would recommend you stick with XP.
  • If you want to develop for some of the new features in Vista and .NET Framework 3.0 - then go with Vista. In the most part things will be fine and it is the environment I switched to with Beta 2.

Beta 2 or June CTP or July CTP?
You now need to decide which builds of Vista and .NET Framework 3.0 you wish to work with. Right now you have three alternatives. The safest route is to go with Beta 2 - but the later CTPs introduce new bug fixes and in the case of Workflow represent a later release candidate. Tom has produced a great blog looking at the alternatives. I would suggest you check that out first before going any further.

The following are the instructions if you elect to go with Beta 2.

Setting up a Beta 2 machine for .NET Framework 3.0 development (in guest OS or dual boot or second PC)

You should now be ready to start developing for .NET Framework 3.0 and/or Windows Vista.

Learning the Technology

There is a lot of resources out there for .NET Framework 3.0 development - articles, blogs, webcasts and even books. We have now pulled most of that together under http://www.netfx3.com/ . A good UK site is http://www.winfxguide.com/

Windows Presentation Foundation (codename Avalon) http://wpf.netfx3.com/ 
I still need to pad out this section but for now check out the top level MSDN site http://msdn.microsoft.com/windowsvista/building/presentation/ and also the blog of my old friend/colleague and WPF evangelist Tim Sneath.

Specifically check out his First Steps to Learning WPF.

Windows Communication Foundation (codename Indigo) http://wcf.netfx3.com/
I would also recommend you read two articles to get going with WCF:

Check out the many sampled in the Windows SDK - extremely good, easy to setup and easy to learn.

Windows Workflow Foundation http://wf.netfx3.com/
You can now build applications that make use of Windows Workflow - but where to start? Firstly you are not alone - there are plenty of folks already exploring this technology and sharing what they find. Take a look at the main site http://wf.netfx3.com/ to see just how much is being written about Windows Workflow and the breadth of samples that already exist (NB: many are still for Beta 1) and a number of good blogs to check out.

You might also like to put your headphones on and have a listen to the recordings of the PDC sessions on Workflow. The following are worth checking out:

There is a good book available based on Beta 1 - easy to read and plenty of detail. Order from Amazon "Presenting Windows Workflow Foundation"

Check out the many samples in the Windows SDK - extremely good, easy to setup and easy to learn.

Windows Vista
I would recommend you first take a whirl as an end user of what is included in Windows Vista. This is now nicely summarized at http://www.microsoft.com/windowsvista/. Once you have that out of the way you can begin to think about how to develop for Windows Vista.

A good overview article on the the top ten features can be found at http://msdn.microsoft.com/windowsvista/top10/

In H2 of 2005 the Windows SDK team started working on the "Windows Vista Developer Story" - a 500+ page document provides real content to developers looking to get started writing Windows Vista applications using the new Windows SDK. There is an initial release of this (200 pages or so) which I would highly recommend.