Share via

Tales from the Smart Client

John Gossman's observations on Avalon development

Excellent introduction to Model-View-ViewModel

Author: JohnGossman Date: 01/28/2009

Some thoughts on the RoutedCommand design

I think we have conflated several concepts with RoutedCommands: 1) The ICommand part with it's...

Author: JohnGossman Date: 11/01/2008

Expression architecture

I'm often asked about the Expression architecture, but have never found the time to really describe...

Author: JohnGossman Date: 10/16/2008

OffTopic: eBooks

My one lifelong hobby is reading. My house is full of bookcases and my floors are covered with books...

Author: JohnGossman Date: 08/26/2008

VisualStateManager for desktop WPF

As I’ve described before, we introduced the new VisualStateManager concept into Silverlight WPF...

Author: JohnGossman Date: 08/08/2008

How to initialize an attached DependencyProperty of type Collection

I was reading a thread about Commands in the WPF Disciples group and noticed a comment about being...

Author: JohnGossman Date: 07/28/2008

Great example of an attached behavior

From Dave Relyea's blog, Pixel Snapping in Silverlight as an attached behavior:...

Author: JohnGossman Date: 07/22/2008


Recently, I talked about how templates in WPF/SL are fundamentally built around the concept of a...

Author: JohnGossman Date: 06/10/2008

PresentationModel and WPF

Julian Dominguez is writing a series about the PresentationModel pattern and using it with WPF....

Author: JohnGossman Date: 05/28/2008

Visual States in XAML Templates

The Silverlight and desktop WPF implementations of Templates use the same syntax and programming...

Author: JohnGossman Date: 05/27/2008


A few months ago I was interviewed by Craig Shoemaker of Pixel8 about my experiences with Expression...

Author: JohnGossman Date: 05/22/2008

We're hiring

Author: JohnGossman Date: 05/21/2008

AttachedBehavior pattern sample

The ClickBehavior is about the simplest I can think of. For illustration purposes I only included...

Author: JohnGossman Date: 05/16/2008

.NET 3.5 SP1 Beta and WPF

Scott's blog has an extensive list of the new stuff:...

Author: JohnGossman Date: 05/12/2008

The Attached Behavior pattern

My favorite feature of WPF (desktop and web versions) is attached properties. It would be good...

Author: JohnGossman Date: 05/07/2008

Silverlight: the art of subsetting

I am an architect of WPF, both the full desktop version and the subset that provides the UI...

Author: JohnGossman Date: 05/01/2008

Finding memory leaks

I spent a quite a bit of time late in Blend tracking down memory leaks. Jossef has written the...

Author: JohnGossman Date: 02/07/2008

More on MVC and M-V-VM

There have been a raft of interesting articles and discussions of MVC patterns and WPF. A practical...

Author: JohnGossman Date: 02/06/2008

New role

We recently shipped Expression Blend, the product I had been working on for the last few years. I...

Author: JohnGossman Date: 05/05/2007

The source for information about WPF performance

Kiran just posted the definitive stuff on WPF perf. Get it here

Author: JohnGossman Date: 11/04/2006

More on basic performance

C# and the .NET frameworks allow you to be incredibly productive and write elegant, maintainable...

Author: JohnGossman Date: 10/06/2006

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...

Author: JohnGossman Date: 09/05/2006

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...

Author: JohnGossman Date: 08/21/2006

Profiler as the Debugger of Performance

I've been talking to a lot of people internally and externally about performance, and have observed...

Author: JohnGossman Date: 04/19/2006

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...

Author: JohnGossman Date: 04/13/2006

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...

Author: JohnGossman Date: 03/29/2006

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...

Author: JohnGossman Date: 03/21/2006

Why people hate frameworks

Great post on a discussion thread off Joel On Software. Lutz pointed it out...hilarious:...

Author: JohnGossman Date: 03/17/2006


CollectionView is a very interesting construct. After including it in my ViewModel I meant to...

Author: JohnGossman Date: 03/07/2006

Advantages and disadvantages of M-V-VM

I've had several questions about when and why to use M-V-VM versus other approaches. The obvious...

Author: JohnGossman Date: 03/04/2006

First try at a ViewModel for the example

In the first iteration of this example, I databound the View directly to the Model. While not...

Author: JohnGossman Date: 02/27/2006

New theory on presentations: No PowerPoint!

I was not particularly happy with my PDC presentation. We were asked to rehearse them, review the...

Author: JohnGossman Date: 02/26/2006

Computers are like electricity

People have been wondering about the impact of computers for a long time. In terms of previous...

Author: JohnGossman Date: 02/26/2006


In preparing my example of Model-View-ViewModel I had a lot of help from Adrian Sanchez, who...

Author: JohnGossman Date: 02/26/2006

Model-View-ViewModel pattern example

I've been promising an example of the Model-View-ViewModel pattern for some time. With the Feb CTP...

Author: JohnGossman Date: 02/26/2006

WinFX Feb CTP is available

New Expression build will be available "soon". I've been working on the Feb CTP bits for awhile, and...

Author: JohnGossman Date: 02/22/2006

Expression Interactive Designer CTP is available

The product I've been working on the past couple of years is available in CTP form. And, yes, this...

Author: JohnGossman Date: 01/24/2006

Shim Computer

I don't generally make posts that just point out cool things, but I do see a lot of design stuff in...

Author: JohnGossman Date: 01/14/2006

Talk on MVC

Daniel presented a talk about MVC to the NYC .NET Developer’s Group. Find it here.

Author: JohnGossman Date: 10/24/2005

Whats a controller anyway?

A friend pointed me to this great article about MVC:

Author: JohnGossman Date: 10/22/2005

Visual3D versus Model3D

Daniel tells the tale:

Author: JohnGossman Date: 10/13/2005

Confusion over definition of Controller in MVC

I've got a frustrated anonymous poster who complains that my definition of ViewModel in...

Author: JohnGossman Date: 10/12/2005

I've had weeks like this...

Author: JohnGossman Date: 10/11/2005

Further reflection on PresentationModel

I'm a big Fowler fan, his "Refactoring" book is one of my all-time favorites, and I used to read his...

Author: JohnGossman Date: 10/11/2005

The PresentationModel pattern

I got e-mail from an interested party pointing me to Martin Fowler's description of the...

Author: JohnGossman Date: 10/11/2005

But what about ValueConverters?

Chris mentions just using ValueConverters to adapt the Model to the View instead of this complex...

Author: JohnGossman Date: 10/09/2005

100 Model/View/ViewModels of Mt. Fuji

Trapped deep within the pragmatic hacker that is the essential me, there still lurks a computer...

Author: JohnGossman Date: 10/09/2005

Brain lock during PDC presentation

When I presented Model/View/ViewModel at the PDC I was a little worried that I would get tackled by...

Author: JohnGossman Date: 10/08/2005


Ryan Dawson asks about the long-term viability of DataTemplate...

Author: JohnGossman Date: 10/08/2005

Introduction to Model/View/ViewModel pattern for building WPF apps

Model/View/ViewModel is a variation of Model/View/Controller (MVC) that is tailored for modern UI...

Author: JohnGossman Date: 10/08/2005