One of the questions I hear a lot from customers and friends is "My project is going to ship post Vista and thus post-WinFX, shouldn't I want to bypass Windows Forms and use WPF instead?"
My opinion is that it all depends on the kind of application you are writing (i.e. what will WPF enable for your applications or how will it make them easier to implement?), your tolerance for breaking changes in beta and CTP releases of WPF (although if you are starting now that is no longer a big concern) and your tolerance for building on a v1 technology. There is also a cost to the redistributable in terms of size (on CD or to download), time to install and minimum requirements.
It's good to note that "minimum requirements" doesn't just mean the reach to down level OSs (98, Me or 2K) but you can also bet that the first set of XP machines that came out in 2001 will also struggle or not support WPF. Although the minimum system requirements are not known, my guess is that the current WinFX runtime minimum system requirements detailed on the February CTP info page is a reasonable estimation.
That said, I've never had a great story on what was meant by "tolerance for building on a v1 technology"... until now -- Charles Petzold has a great blog entry that tells the story.
Don't get me wrong, WPF is the UI technology of the future and there are a lot of well documented reasons to move to WPF, it's just important to move to it when it makes the most sense for your products and Charles Petzold's post will help you make that decision.
A few links I've heard good things about or have read recently:
Lately I've taken an interest in WPF/E. I'm meeting up with Mike Harsh later this week to get the full skinny. Here are some starting points:
The DigiBarn computer museum has a collection of screen shots of installing, booting and using Microsoft Windows 1.03 (circa 1985).
In some ways its amazing to see how far we've come, in other ways, a lot of the fundamentals haven't changed.
A dev on the Cider team, Marco Goertz sent this around, I had a a good laugh.
Apparently this is something that was developed internally -- I can't confirm that but I wouldn't be surprised.
At Microsoft we are self -critical and at the same time we can and do laugh at ourselves. Either way we learn...
Seen on Dare Obasanjo's email signature:
THINGS TO DO IF I BECOME AN EVIL OVERLORD #154I will instruct my Legions of Terror in proper search techniques. In particular, if they are searching for escapees and someone shouts, "Quick! They went that way!", they must first ascertain the identity of this helpful informant before dashing off in hot pursuit.
The hot news from the WPF and Window Forms world is that the WPF/WF interoperability layer (code-named Crossbow) will be shipping together in WinFX v1.0. Check out Mike Henderlight's blog post.
This is really cool for two reasons.
Kudos to the Crossbow team.
Take a look at this way cool tool that Benjamin Wulfe put together called "Managed Spy" (why not Spy#?)
Not only does it give you a view of the window hierarchy like Spy++, it also allows you to get/set the public properties on the Controls in that hierarchy.
I sure wish this existed a couple of years back!
Currently I'm on a diversion into the world of Cider XAML Serialization. XAML Serialization includes loading and parsing the XAML from file, converting it into an object model suitable for Cider features to edit, capturing undo/redo operations of XAML changes, formatting additions, preserving the format of existing XAML and finally saving it back to file.
Although I'm really jazzed about doing the Extensibility work (which I will still be doing in parallel) I'm also really excited about exploring this area. Not only will it help me to better understand XAML (something I'll be doing starting this week is to go through the XAML spec checking for Cider XAML Load completeness) but I'll also get to work with Chuck Jazdzewski who is the architect who designed and implemented this feature.
The feature crew also includes a number of other great people: Obaid Rahman, Nikola Mihaylov and Zhanbo Sun.
The first thing we are working on is the XAML Load feature. This includes:
Where the main scenarios we are covering include:
No, not that kind of "Touch Me". Touch Screens.
Touch screens have been around a long time and they have been slowly integrating into our lives: PDAs, kiosks (printing your photos at Walmart, buying tickets at the movie theatre), Tablet PCs etc. It's been more of a slow and steady evolution instead of a revolution though. I believe we are on the cusp of the next generation of touch screens.
Look at the kind of computer interaction that is made possible by Multi-Touch Interaction.
What's cool is how fluid the touch gestures are, there was excellent tracking, even with 8-10 concurrent gestures. The example of resizing and sorting photos, and the map interaction in the video really showcase how a touch screen UI can be far more intuitive and productive than a keyboard and mouse (for certain applications).
Now check out "Origami" -- an Ultra Mobile PC (UMPC). This includes the Microsoft Touch Pack which is an add-on to Windows XP which "optimizes the touch screen user interface for UMPCs to simplify navigation and ease-of-use while on the go".
In other words, people are coming up with really cool new ways of using a touch screen at the same time the cost of a touch screen is no longer the hurdle it used to be.
I think we're on to something here...
The Office team has really made some cool and somewhat risky changes to their UI. The feeling is that users will find "new" features that have been in Office for a long time.