While I've been prepping for the upcoming Vista shows I've been giving a lot of thought about explaining to developers why they should be there to see this stuff.  The 2 reasons that immediately spring to mind are:

  • Vista and WinFX will be with us very soon
  • Vista and WinFX help us to solve some very common problems

Vista Logo

Today I want to give some examples of what I mean by solving common problems in the context of using the new WinFX API's and, if you read this I really want you to think about how you either: A) solve these problems today, or B) avoid tackling these types of problems altogether.

It's not about spinning textboxes

When we hear about WPF it is generally in the context of spinning text boxes or buttons containing embedded video animations.  Much of this frivolity hides the real power of WPF and what it is designed to bring to us.  WPF unifies the rendering stack with a new set of API's that allow developers to fully exploit the power and capabilities of the graphics system.  These provide developers with higher levels of abstraction over:

  • 2D and 3D Graphics
  • Animation
  • Documents
  • and Media

For example, developers can now treat 2D shapes as basic controls.  This means that developers can simply add shapes to a canvass and set their properties while the system is responsible for performing tasks such as double-buffering, re-freshing and re-drawing the screen when the property value is changed.

For 3D graphics developers simply lay out 2D shapes and specify the z-ordering and WPF provides a Viewport3D object which contains the 3D model for displaying these in a truly 3D way.

The Document features of WPF are another major leap forward for the way that we work with text in our applications.  Prior to WPF, working with text meant either using Labels, working through MSHTML, or doing custom drawing.  But each of these techniques has major drawbacks when it comes to displaying well paginated, formatted text.  Even moreso if that text needed to be shown with balanced flow layout. 

Working with Text

Perhaps the method that came closest to supporting this was MSHTML and the use of the underlying HTML flow layout engine - the drawback here of course was that we lost a lot of programmatic control for manipulating the underlying text objects.

With WPF the new API's supply us with controls such as TextBlock, FlowDocument, FormattedText, Floater, and the TextFormatter to work with textual layouts.  Using these layout and the new document packaging specifications make it a breeze to work with documents in rich client applications and even have them interoperate with Office 12 applications.

If you are unsure about whether to come to the events that are occurring over the next couple of months, consider a few things.  Beta 2 will be on our doorstep very soon which means that Vista is nearly ready for prime-time.  These events will provide you with a great way to get a close-up look at the capabilites of the new platform and to ask a lot of questions of the people who are closest to the technology.  This will be the best way to get an idea of what you should be learning to do with these new tools.

If you see me at one of the events grab me and we can sit down with the grunty, aero-enabled Samsung that I'll have with me and we can run through some of this WPF stuff - because I think that it's pretty cool.  Smile [:)]