Presentations

XAML Basics

An introduction to XAML and its use in Silverlight. You can download the presentation here.

Silverlight Firestarter, Cincinnati, March 2009

WPF 101

Introduction to Windows Presentation Foundation (WPF) for .NET University. You can download the presentation and samples here.

WPF for Developers

You've seen the sizzle, but what about the steak? In this presentation I will describe Windows Presentation Foundation (WPF) for developers. No reflected images. No animated page flipping transitions. No Expression Blend. No Silverlight. Just Visual Studio 2008 and code to actually do stuff. I'll cover the WPF fundamentals, including XAML, dependency properties, data binding, commands, validation, and styles. Then I'll talk about how to use these features to create desktop applications and describe some of the challenges I encountered creating my first WPF applications.

The presentation and demo source code can be downloaded here. For the resources I referenced during the presentation see this page.

Pragmatic Software Architecture and the Role of the Architect

What is software architecture? What is the role of the architect? Is architecture relevant to agile development? What does this have to do with developers? This presentation will answer these questions and more. It will help you bring an architectural mindset to your development by identifying architectural techniques you can use in your daily development. If you’re interested in architecture, being an architect, or just want to think about software development in a new way, join us for this exploration of architecture and the architect.

The presentation can be downloaded here. For an expanded version of the architecture references in the presentation, see this page.

Practical Caching in ASP.NET

Caching has been part of ASP.NET since its inception. Pages, page fragments, and arbitrary data elements can all be cached to increase performance. This session goes beyond the basics to demonstrate caching in a real web application. I show how to use post-cache substitution in a real application (to display more than the current time like most demos!). The presentation shows how to cache pages based on a custom attribute for the logged in user. Lastly, we I show one way to design a business tier to take advantage of data caching while remaining loosely coupled to the UI.

Presentation and supporting files can be downloaded here.

Real World Continuous Integration

Dan Hounshell and I did a joint presentation on our experience introducing continuous integration at Tellus. Presentation and supporting files can be downloaded here.

Software Architecture of Chef's Catalog

This presentation was a case study describing the architecture for the Chef's Catalog web site developed at Tellus. The web site integrated order processing from CommercialWare through the use of IBM MQ Queues. The site also integrated advanced search through iPhrase.

Earlier Presentations

Creating Extensible Applications in C#: Applying Object-Oriented Design and Using Code Dynamically

Cincinnati Programmers' Guild, November 2003

Presentation showing a design aproach to extend .NET applications without recompiling. Source and presentation can be downloaded here

Creating Extensible Applications

Dayton Microcomputer Association, Software Development SIG, November 2003

Presentation showing how to extend both C# and Delphi applications without recompiling. Similar to presentation at Cincinnati Programmers' Guild. Code and presentation can be download here.

Creating Extensible Applications

Dayton Microcomputer Association, Software Development SIG, July 2003

Initial presentation of how to extend applications, both in C# and Delphi. Served as a seed for other presentations on the subject, and the article for Visual Studio .NET Developer. I intended to publish parallel articles showing how to use this techniquie both in .NET and Delphi. Sadly, the last issue of Delphi developer was published as I was writing the article. Code and presentation can be download here.

Introduction to UML (Unified Modeling Language)

Cincinnati Programmers' Guild, August 2002

In this presentation, I introduced the fundamental aspects of UML. Presentation is available here.

Incremental Search Edit Box

Dayton Microcopmuter Association, Software Development SIG, August 2001

In this brief presentation, I showed an Delphi edit box component I created that is appropriate for incremental search. Instead of firing an event on every keystroke, it fires an event after a defined amount of pause time. Presentation and source is available for download.

My First Presentation - Clipper Row Locking

Dayton Clipper User Group, 1990ish

The first user group presentation I did was for the newly forming Clipper user group some time in the 1989-1990 time frame. The meeting was at MTC (Modern Technologies Corporation) who was leading the creation of the Clipper group in Dayton. Nantucket had been at the previous meeting describing all of the upcoming features of Clipper 5.0. The Nantucket meeting drew probably close to 200 attendees, which was quite a crowd in the room; luckily MTC was in a building that had been an elementary school, and the gymnasium made a great location for a meeting that large. There had to be more than a hundred people at the presentation I did on row locking, which to this day was probably the largest number of attendees at one of my presentations.

Since that first one, I've done many user group presentations for the Clipper user group, Delphi user group, and most recently for .NET user groups. I would highly recommend it to anyone looking to expand their professional horizons. First of all, it is a fairly safe environment to hone your presentation skills; most user groups are fairly forgiving audiences (as long as you don't step on their toes technically, in which case, you just get an entertaining conversation). And there is no better way to understand any topic than to have to explain it to other people; I always feel like I learn when creating presentations. And finally, it is a good way to establish a reputation as an "authority" amongst your peers.