B e l l a C o d e


BellaCode is the place where I share my thoughts on software development as well as applications and source code I've developed.

I've been a professional software developer for nearly 20 years. I've worked on everything from user interface, large scale web services, huge databases, and down to hardware control.

On my blog, I keep my posts focused on the important stuff I've learned over the years. I keep each one short and to the point. I won't waste your time with technology rants nor day-to-day trivia.


ScrumPig is a Windows application I wrote to help small, co-located teams build software following the Scrum process.

It replaces the mess of 3x5 cards with a very lightweight and efficient UI.

It lets you build and prioritize a backlog, schedule and plan a sprint, see your daily stand up status, and burn down graph.

Download (free!)

Photiso is a small Windows application I wrote to organizes photos on the hard drive. It puts your photos into year and month photos, names your photos by date taken, and sorts out duplicate photos.

While backing up my photos, I realized that my personal photo collection was a mess of files from multiple cameras. While there are great programs for cataloging and viewing photos, there wasn't a simple program to consistently sort them in the file system.

I spent a lot of time making sure that Photiso works correctly and never deletes a file because I run it regularly on my own photo collection.

Download (free!)

BellaCode.Mvvm is a .NET class library I created to make following the Model-View-ViewModel (M-V-VM) pattern easy.

M-V-VM is a design pattern built to separate the user interface, application logic, and data model layers in a WPF application. It is specific to WPF because it leverages WPF's powerful data binding, command, and event trigger capabilities.

While you can always follow M-V-VM by directly setting the DataContext, I wanted to connect my view and view models from the XAML. I also wanted to write Plain-Old-CLR-Objects (POCO) view model classes without having to declare ICommand implementations, raise RoutedEvents, nor put in special data-binding code.

BellaCode.Mvvm lets you quickly use M-V-VM. It also contains a great set of behavior, actions, and value converters useful to most WPF applications. I used it on all my WPF projects. It is open source, so I've been able to help teams use it on large applications professionally as well.

Add to your project via NuGet

Open Source at GitHub