Debugger Canvas on Channel9

Hi everyone, Robert Green from Channel9 asked me to do a Debugger Canvas video for Channel9 last week and it went live today.  Check it out!


Exploring Code Canvas

Introduction I originally started working on Code Canvas back in 2007, but it was essentially put on hold after 2009 because the technology to make it testable in the field was not available.  For example, Visual Studio at the time did not support editing code in anything other than the standard file-based tabbed-editors.  Also there…


Code Canvas vs. Code Bubbles vs. Debugger Canvas

You may have seen my previous comparison of Code Canvas vs. Diagrams/Visualizations, but sometimes people also ask me “What is the relationship between Code Canvas and Debugger Canvas?”, or “Is Debugger Canvas the same as Code Bubbles?”.  Here are my personal thoughts on some of the high-level differences between the three: Code Canvas: Shows source…


Debugger Canvas 1.1 is Released!

Hi everyone, we are pleased to announce the release of Debugger Canvas version 1.1. This version includes a number of bug fixes, new features, and improves performance. Some of the new features are: – Easily turn Debugger Canvas on or off, even in the middle of a debug session. – Quickly navigate up and down…


Debugger Canvas Available for Download!

I’m pleased to announce that Debugger Canvas is available for download on DevLabs!  Debugger Canvas is a Power Tool for Visual Studio 2010 SP1 that pulls together the code you’re exploring onto a single pan-and-zoom display. As you hit breakpoints or step into code, Debugger Canvas shows just the methods that you’re debugging, with call…


Introducing Debugger Canvas

Over the past several months I’ve been working on a new Power Tool for Visual Studio with Andrew Bragdon and Brown University.  The purpose of the power tool is to get feedback from users (that means you!) about using a Code Bubbles like experience for debugging through code inside Visual Studio.  The Power Tool will…


ZoomableApplication3: When not to ApplyTransform

By default, ZoomableCanvas works by coercing its RenderTransform to be a combination of a ScaleTransform and a TranslateTransform  representing the current Scale and Offset, respectively.  This is the most performant mode in WPF, and makes your UIElements scale up and down for free, but sometimes you can get better effects without the transform.  If you…


ZoomableApplication2: A Million Items

The original sample for Chris Lovett’s VirtualCanvas showed a random set of shapes on a canvas.  You could use a menu to choose whether to have 5, 500, 12500, or 50000 shapes “on the canvas”.  I use quotation marks because the point of the sample was to show that with UI virtualization you could have…


ZoomableApplication1: Scale and Offset

For the first entry in the series of examples using the ZoomableCanvas, I’ll start off with just the basics: Scale and Offset.  I’ll start by creating a brand new app, renaming it from WpfApplication1 to ZoomableApplication1, and adding a reference to a class library that I created after downloading the ZoomableCanvas source code and its…



ZoomableCanvas is the Panel that displays almost all of the elements in Code Canvas.  Code Canvas is actually made up of several layers of ZoomableCanvases that are stacked on top of each other, and they are synchronized by simply sharing the same values for Scale and Offset.  Scale and Offset are the driving forces behind…