Our First WPF End-To-End Reference Sample: Family.Show

The first three days of next week are going to be crammed full of announcements as MIX gets under way (click the hyperlink above to view the virtual conference site, where you'll be able to keep up-to-date on everything that's going on). In any big week like this, it's easy for some of the smaller announcements to slip out unnoticed, so I couldn't resist the opportunity to share this one now!

Today, in collaboration with Vertigo Software, I'm pleased to announce the launch of a brand new end-to-end reference sample for WPF. Available for download immediately, Family.Show is a genealogy explorer that allows you to create or import a family tree and explore, annotate or save it to XPS.

We've shipped the source code for a number of demos before, but the bar for a reference application is somewhat higher. The goal here is to show best practices for the construction of an application and to try and include as much reusable code as possible that others can use both to understand the framework and to "borrow" for a real application.

Getting the right scenario is a critical element - it has to be realistic, applicable, provide scope to hit a lot of commonly-used feature areas, and of course, it has to be interesting in its own right. I think we've done that pretty well with this sample:

  • It's realistic because there are shrink-wrapped applications for sale today that offer similar functionality;
  • It's applicable because it's a data-centric scenario, because the idea of a hierarchical tree is pervasive in many business scenarios (CRM and HR to name just two), it covers data visualization (also a key requirement for many modern business applications), and because it has a well thought out model that keeps data and presentation separate.
  • It covers many feature areas: data binding, styling and templates, animation, XML serialization, resources, rich text editing, image manipulation, Windows Vista integration and XPS output.
  • It's interesting: everyone has a family story to tell, and having a great tool that imports the GEDCOM standard interchange format for family trees and provides a great way to view that data is something that even passes the "mother test" (does my mother yawn within five seconds of me talking about what I'm doing at work).

 The Vertigo guys worked really hard with this application: although they've constructed many reference applications for us before, this was actually their first WPF project. They did a great job with it, and their creative thinking and combination of design and development skills really added to the quality of the finished work.

I won't go through an exhaustive feature list, but I do want to highlight my favorite feature, which is the time slider on the bottom left hand corner of the window. This allows you to go back in time and see the family tree as it existed at an earlier point in history. As people are born or marry into the family, they fade in, which makes this really powerful as a way to share your own family history with others.

The source code is definitely something to peruse in detail. I've often thought that you can tell a really well-designed application because the source code looks more like a work of art than a work of engineering. Here again, Vertigo have delivered really well: from the factoring of the code (check out the class diagram in the solution) to the code itself, this is some of the nicest-looking WPF code I've ever had the pleasure to see. You'll learn more about the way WPF works and the smart ways to use WPF from dissecting this code than you could from reading any book. Check out the class diagram that's included in the Visual Studio solution for a great entry-point into the code.

There's a video coming out shortly (on their site) in which they will talk through their experiences of using the application, and Scott Stanfield (their CEO) is presenting a session on this application at MIX. With the slightly alarming but amusing title of "I See Dead People", it should be a blast - if you're at MIX, make sure you're there!

Comments (20)
  1. Anonymous says:

    Tim, this was a fascinating project to work on with you. I want to stress to all the folks who haven’t had the pleasure of working with WPF just how incredible this platform is. We couldn’t nor wouldn’t have attempted a visualization and user-experience like this with traditional WinForms.

    It’s probably the first big WPF sample app with source code. I hope your readers our kind to our devs. There’s always one more line of code to tweak…

    BTW, for your MIX ’07 readers, I’m presenting this (with source code and designer-friendly demos) on Tuesday, May 1st at 11:30am in Delfino 4005.

  2. Anonymous says:

    Great app Tim, and well written roundup about it. Nice job!

    See you in Vegas.

  3. Anonymous says:

    Tim Sneath vint d’annoncer, sur son blog , la mise à disposition de la première application de référence

  4. Anonymous says:

    That is excellent, because I learned how to program ASP classic with the Vertigo reference app, which contains beautiful documentation explaining why they made this or that design choice.

  5. Anonymous says:

    Great application! I will watch the code. I only played with it from 10 minutes ;-).

  6. Anonymous says:

    Tim Sneath posted the first end-to-end reference sample on his blog. The Family.Show application – developed

  7. Anonymous says:

    No, Microsoft isn’t going into the genealogy software business. It’s just that they badly want developers to use the facilities of the new Windows Presentation Framework (WPF, codename “Avalon”) that shipped with Windows Vist..

  8. Anonymous says:

    You’ve been kicked (a good thing) – Trackback from DotNetKicks.com

  9. Anonymous says:

    Beautiful. Engaging. Inspiring.

    As a long-time data visualization junkie and a big fan of managed code and Microsoft’s exquisite new suite of design tools, I couldn’t have found a better sandbox to play in as I ramp up my WPF skills.

    Thank you Tim. Thank you Vertigo.

  10. Anonymous says:

    Family.Show – Demonstrando WPF – VS2005 Essa nova aplicação vai lhe ajudar a explorar mais ainda os recursos

  11. Anonymous says:

    This is an awesome app. I have been building out my family tree in this app for last 2 hours and I can’t just stop playing with this clean and very useful app.

    I like the feature where you can add photos and a short bio for each person in the family.

  12. Anonymous says:

    Vertigo Software have just shipped Family.Show (family history explorer – stuff that my Dad would dig

  13. Anonymous says:

    Unfortunately I’m not in Vegas, but I have been keeping up with the keynotes and some of the other cool

  14. Anonymous says:

    Hi Tim!

    I wanted to know when will you Vertigo the feedback and issues sent to the feedback email.

    I sent them an email asking would they sort of information would they need in order to help them more.



  15. Anonymous says:

    This week we are running Windows Server 2008 training with some of our early adopters in the UK. I promised

  16. Anonymous says:

    Three months ago, we launched Family.Show, our first end-to-end reference sample for WPF. Family.Show

  17. Anonymous says:

    Three months ago, we launched Family.Show, our first end-to-end reference sample for WPF. Family.Show

  18. Anonymous says:

    WPF をフル活用した事例が増えててきている。 Mix で発表された FAMILY.SHOW はツリーでデータ管理することに特化したgenealogy expl…

  19. Anonymous says:

    ちょっとおもしろそうなソフトがあったので紹介まで。 家系図を作成するソフトです。 ダウンロードは→ Family.Show WPFでできており、ソースも公開されています。 日本語の入力、表示も可能ですが

  20. Anonymous says:

    ちょっとおもしろそうなソフトがあったので紹介まで。 家系図を作成するソフトです。 ダウンロードは→Family.Show WPFでできており、ソースも公開されています。 日本語の入力、表示も可能ですが、姓名が逆に・・・ ソースがあるので修正できそうですね。

Comments are closed.

Skip to main content