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
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.
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 1⁄2 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