After trying out the Orcas Betas I was very disappointed that the XAML editor had actually been made harder to use, especially after using the VS 2005 November 2006
CTP addin for so long. There were some great additions to the editor and it seemed to be more
stable at least in the time that I spent in it but there were some usablity
differences
that I found infuriating and forced me to stop using the Betas for my
WPF development. Now that I've been using the RTM version for a while I'm happy
to report that the XAML editor is much more usable thanks to the new features that
made it into the final product.
Now if you've gotten used to the old XAML editor (or the plain XML editor, which
the CTP version was built on) closing your tags for you and adding quotes you won't need
to stop every 5 keystrokes to go back and add all the stuff you expected to be generated
when using Orcas. The new default view option is further icing on the cake. These issues were brought up by a lot of people during the Beta
process and obviously were added into the product near the end of the development cycle as indicated
by the separate Options dialog page for their settings as well as their absense
from the Betas. This really shows that MS does heed the feedback they get during
the CTP/Beta process.
A few additional WPF features that you get by moving from the 2005 CTP to 2008 RTM:
- The designer actually works more than 10% of the time! It's still quite possible
to "Whoops" it and it's still short of the rendering ability of Blend but it's a
big step from the CTP. It supports double-clicking to create event handlers but
unfortunately I haven't yet found a way to select anything other than the default
event like you can in Blend and in the WinForms/ASP.NET designers.
- Intellisense doesn't break when you reference a custom xmlns. It's also much more
geared toward XAML now that it's not based on the XML schema Intellisense. It also
works for adding xmlns definitions and lets you choose from a complete (more or
less) set of .NET namespaces in assemblies referenced by your project.
- Document Outline now works for XAML and even has an element level preview feature
that renders an element as you mouseover it in the outline.
The preview does require
that the design view be rendered but the outline itself is always there even if
you're staying in the text view. The outline breadcrumb familiar from the ASP.NET
designer also appears at the bottom of the editor in both modes and shares the same
preview functionality.
- Expanded syntax highlighting provides separate font settings for XAML which consist
of all the normal XML categories plus Markup Extension Class, Markup Extension Parameter
Name, and Markup Extension Parameter Value. There's also opening/closing tag highlighting
that works just like the bracket highlighting in C#.
- Formatting options let you set a tag wrapping length so elements with many attributes
will get wrapped to the next line or you can have every attribute placed on its own line.
- The Property dialog works for XAML. Like the Document Outline preview it requires
that the designer renders the XAML, but after that it can be used even in the text
only editor where it magically adds new attributes for any settings that you change.
This should be especially helpful for beginners who would otherwise have to waste
time digging through Intellisense to find the name of the property they want to
set.
- The integrated Zoom control lets you zoom in or out on the designer just like in
Blend. It also has a fit to window button that toggles to 100% and the maximum viewable.
- Solution Explorer knows that you're in a WPF project. Now if you right-click on
your project and Add -> User Control it gives you a WPF rather than WinForms
User Control!
- There is real backward compatibility with 2005 CTP so you don't need to be held
back by your poor coworkers that can't upgrade. When moving a project you will need
to run through the upgrade wizard the first time and you will need to plan on using
a separate 2008 solution as 8.0 and 9.0 slns are not compatible. The project upgrade
process will make a few changes including adding some new project properties (which
will be ignored by 2005), associating some new sub-elements (Generator and SubType)
with included XAML files, and removing the explicit reference to the Microsoft.WinFX.targets
MSBuild file. This last change is the only one that will mess with 2005 so once
the upgrade is completed, open the project as XML and add <Import Project="$(MSBuildBinPath)\Microsoft.WinFX.targets"
/> near the end of the file right below the CSharp/VisualBasic Import statement.
After that the project should work in both versions.
One additional tip: 2008 is much more stable on machines that have not had previous
Beta installations. I know it's a standard recommendation but my personal experience
has been that the WPF designer especially is
much more prone to crashing on my machines that were running Beta 2 and
had it uninstalled than my machines that were clean OS installs or only had 2005.