More on basic performance

C# and the .NET frameworks allow you to be incredibly productive and write elegant, maintainable code.  However, some of these productivity features can just make you productive at writing slow code.  “Sparkle” has an internal DOM for working with XAML.  We have an XPath-like data structure that lets us make references in that DOM.  This…


Stories from the Perf lab: Part I

During the past year, we’ve found and fixed a lot of perf issues in Expression and WPF.  I’d like to relate a few of them, not so much because you’ll have the exact same problems, but that the pattern of finding and resolving the bugs may be helpful experiences.  To start:   Expression uses a…


Snoop: An essential tool for debugging and perf work with WPF

My colleague Pete has it up on his site: This developed out of internal tools originally built into Expression that help us inspect our visual tree.  Originally we dumped the tree to a text file, then Pete put some UI on it, then Kenny incorporated the UI into Expression, and since then Pete has raised…


Profiler as the Debugger of Performance

I’ve been talking to a lot of people internally and externally about performance, and have observed something very interesting:  while people run the debugger over their code every day, stepping through the code to see if it works even when they don’t have a bug, very few people profile regularly.  If the code crashes, people will…


UML diagram of Model-View-ViewModel pattern

Conceptually there isn’t much to M-V-VM that can be expressed in UML…but if the GoF authors can use UML to describe Singleton (one object), I guess can make a 4 box UML diagram for M-V-VM.  M-V-VM-UML.jpg


More on what to use WPF for, and what other graphics technologies you may want to use

Pablo is one the most senior people on the WPF team and has been a key decision maker in deciding what scenarios WPF would address. I’m going to call out one point in particular, because I see a lot of people, including internally confused about WPF 3D.  if you already have domain knowledge…


What level of WPF graphics API should I use?

I was going to post something about the various levels you can use in WPF for graphics, but Pablo Fernicola beat me to it:


Why people hate frameworks

Great post on a discussion thread off Joel On Software.  Lutz pointed it out…hilarious: I happen to love frameworks, but I understand the sentiment in the posting.



CollectionView is a very interesting construct.  After including it in my ViewModel I meant to quickly blog about the usage…but when I started thinking about it and reading a bit more about it, it becomes even more interesting.  Lots of good blogging.  However, while I think about it, let me quickly make my original point….