1 year in I'm still on the WPF learning curve

I’ve been working with WPF fairly regularly (3+ nights per week) for around 1 year now and documenting a few discoveries along the way, but I’m still on the learning curve. Maybe not a serious productivity-damaging curve like Karsten talks about (although I’ve been throught it), but still a curve none-the-less. This week I’ve been looking at the typography and document creation/editing classes like RichTextBox, FlowDocument, Figure, Floater and a plethora of others. I find it very easy to imagine a time in the future where entire books will be devoted just to FlowDocument and its children, such is the depth of the API. I’m about half-way through Petzold’s “Applications = Code + Markup“ and I’m regularly finding classes that were previously completely unknown to me. This can be a little un-nerving - it seems like as soon as you start to feel comfortable with the API something new comes along that opens up new possibilities, but also makes you realize how much you still don’t know. It seems this doesn’t just affect regular developers - in the comments of this CodeProject article WPF program manager Rob Relyea says “I just learned last week about .You should try that out and compare. I was surprised to discover InkCanvas had done this.“ The comment is dated from the start of this month. If program managers who’ve worked with the platform since it’s inception are continuing to discover cool things, you can bet there are plenty of happy discoveries and “aHa“ moments to come for those prepared to make the effort.

All this is not just idle IL speilunking - I’m working on a WPF “content creation” application in my spare time that I’m hoping to release a beta for soon, with a final release in the “Vista timeframe” (and that nolonger means “some time in the far future” either like it once did). It’s no Max or NewYork Times Reader, but it aint notepad either.


Rob Relyea
Yes, WPF (and .Net beyond that) has a large number of APIs.
Hopefully, you’ll find that we generally are consistent (following the .Net design guidelines), so that as you move from one API area to the other, you are leveraging general API pattern knowledge.

You should also be able to leverage similar sets of capabilities in these different API areas. Databinding, animation, styles – generally work the same in UI, 2d graphics, 3d graphics, flow documents, etc…

We developed for 5 12 years. While we certainly need to continue to evolve in future versions, I hope that you (and the rest of the community) enjoys those "aHa" moments.

Writing about them, as you do, will help others reach that stage earlier. Keep it up!

I’m looking forward to your content creation app. I think that all of us will learn from each other as we learn to take advantage of new capabilities in WPF.

Later, Rob
19/09/2006 8:47:00 PM