Tools for WPF
In this book we work primarily with Visual Studio 2008. Specifically, we use the Express Edition, which Microsoft provides free of charge. Visual Studio 2008 has native support for WPF applications.
It is possible to build WPF applications with Visual Studio 2005; however, you need to install the WPF extensions for Visual Studio that never made their way to a final release. I strongly advise to move to 2008 if at all possible.
You can also use SharpDevelop (also known as #develop). It is an open-source IDE for .NET, and it has support for building WPF applications in .NET 3.0. It is a solid IDE, but it is hard to beat the level of support for WPF in Visual Studio.
The second primary tool for creating WPF applications from Microsoft is Expression Blend. Blend targets designers rather than developers. It works with the same files as Visual Studio, so a designer using Blend and a developer using Visual Studio can both work on the same projects, solution, and files. Blend is somewhat comparable to the IDE for Adobe Flash. You will find drawing tools, animation timelines, palettes, and other designer-centric features. Despite its focus, I recommend that developers become familiar with Blend. Blend is also one of the first Microsoft products to be written with WPF.
A third-party product exists for designing WPF interfaces—Aurora, by Mobiform Software. It provides a similar set of features as Expression Blend. One notable feature is that Aurora designer can be embedded in another WPF application. So if you have a need for providing a built-in XAML editor in your application, be sure to check it out.
Expression Design is another Microsoft product. It is for authoring vector-based graphical content, similar to Adobe Illustrator or Inkscape. Expression Design can be used to create logos, icons, and illustrations for use with WPF. It can natively output graphics as XAML, which can then be directly incorporated into WPF. Expression Design differs from Blend, in that Blend's focus is purely on authoring user interfaces.
Many other applications for producing 2D and 3D art now have plug-ins available for exporting assets in XAML. (Remember, XAML is the native tongue of WPF.) Some of the applications that have plug-ins available are Adobe Fireworks, Adobe Illustrator, Inkscape, Maya, Blender, and Lightwave.
Aside from the 3D tools just mentioned, at least one WPF-specific 3D content editor is available—ZAM 3D by Electric Rain. ZAM 3D is very similar to the Swift 3D product for Flash. It's more approachable than most 3D editors and is probably the best place to start for WPF developers interested in 3D.
One final tool worth mentioning is Kaxaml. It is a lightweight XAML editor featuring a live preview. That is, you can see how WPF will render your markup as you are typing. It is a very handy utility to have around, and at the time of this writing it is free.
Many other tools, utilities, control libraries, and so on become available every day. Some are third-party commercial products, and others are community-driven and free. Be sure to check in the appendixes for additional resources. For the sake of simplicity, we use only Visual Studio 2008 Express Edition in this book.