Introducing the Model Thread View Thread Pattern

Reduce threading code, and increase UI responsiveness with a new pattern extending MVVM.
View Article
Building a Windows Phone 7 Puzzle Game

Get a head start with the new Windows Phone 7 developer tools. Learn how to create a Sokoban game in Silverlight for the WP7 platform.
View Article
Context Sensitive History. Part 2 of 2

A Desktop and Silverlight user action management system, with undo, redo, and repeat. Allowing actions to be monitored, and grouped according to a context (such as a UI control), executed sequentially or in parallel, and even to be rolled back on failure.
A 'task' is the term I use to describe application work units,
instigated by the user or the system.
This is part 2 in the series.
View Article
Context Sensitive History. Part 1 of 2
A Desktop and Silverlight user action management system, with undo, redo, and repeat. Allowing actions to be monitored, and grouped according to a context (such as a UI control), executed sequentially or in parallel, and even to be rolled back on failure.
A 'task' is the term I use to describe application work units,
instigated by the user or the system.
The main features of the task management system provided in this article are:
- Tasks can be undone, redone, and repeated.
- Task execution may be cancelled.
- Composite tasks allow sequential and parallel execution of tasks with automatic rollback on failure of an individual task.
- Tasks can be associated with a context, such as a UserControl, so that the undo, redo, and repeat actions can be, for example, enabled according to UI focus.
- Tasks can be global, having no context association.
- The task system can be wired to ICommands.
- Tasks can be chained, in that one task can use the Task Service to perform another.
- Return to a point in history by specifying an undo point.
- Coherency in the system is preserved by disallowing the execution of tasks outside of the Task Service.
- Task Model compatible with both the Silverlight and Desktop CLRs
View Article
App.Config Type String Verification with MSBuild

This article describes how to use an MSBuild custom task to verify that the type names in an app.config are valid at compile time.
View Article
Project Metadata Generation using T4

Generate project metadata with T4 and unburden yourself from string literals in XAML binding expressions and INotifyPropertyChanged event arguments.
This article describes how to use the T4 (Text Template Transformation Toolkit), which is built into Visual Studio 2008, and the Visual Studio automation object model API, to generate member and type information for an entire project. Generated metadata can then be applied to such things as dispensing with string literals in XAML binding expressions and overcoming the INotifyPropertyChanged property name string code smell, or indeed any place you need to refer to a property, method, or field by its string name. There is also experimental support for obfuscation, so member names can be retrieved correctly even after obfuscation. I've also ported the template to VB.NET, so our VB friends can join in on the action too.
View Article
A modular application toolset leveraging the Composite Application Library (PRISM)
Calcium is a WPF composite application toolset that leverages the Composite Application Library. It provides much of what one needs to rapidly build a multifaceted and sophisticated modular application. Calcium consists of a client application and server based WCF services, which allow interaction and communication between clients. Out of the box, Calcium comes with a host of modules and services, and an infrastructure that is ready to use in your next application.
Part 1
Part 2
Part 3
Part 4
An artificially intelligent guided navigation system for WPF
In this article we look at Perceptor, an artificially intelligent guided navigation system for WPF. Perceptor tracks a user's behaviour while he or she interacts with the user interface. Changes to the DataContext of a host control indicate user navigation behaviour, and induce the training of a neural network. Knowledge acquired by the neural network is used to predict the IInputElements to which a user may intend to navigate. This accelerates interface interaction, improves user efficiency, and allows for dynamic and evolving business rule creation.
View Article
Synchronous Web Service Calls with Silverlight 2: Dispelling the async-only myth
In this article we look at the asynchronous web service model in Silverlight 2, and how it can be augmented to allow synchronous web service calls. We also explore efficient channel caching, and asynchronous Silverlight Unit Tests. View Article
URL Object Serialization: An effortless approach to user account confirmation

A URL Object Serialization component that provides compression and encryption of CLR objects, enabling embedding within URLs. Also includes a user account purging component that performs the periodic removal of unconfirmed user accounts, and a website that demonstrates the user account confirmation. View Article
Legion: Build your own virtual super computer with Silverlight

Legion is a grid computing framework that uses the Silverlight CLR to execute user definable tasks. It provides grid-wide thread-safe operations for web clients. Client performance metrics, such as bandwidth and processor speed, may be used to tailor jobs. Also includes a WPF Manager application.
View Article
Clog: Client Logging, WPF Edition

A customizable log provider system that allows you to harness your existing logging system to log client side messages to your server using WCF. Includes WPF sample applications.
View Article
Clog: Client Logging, Silverlight Edition

A customizable log provider system that allows you to harness your existing logging system to log client side messages to your server. Includes a Silverlight interface and Log Viewer.
View Article
Silverlight Alien Sokoban

A fun Silverlight implementation of the game Sokoban. Contrasting Silverlight 1.1 and WPF, while showcasing some new features of C# 3.0, Expression Design, Expression Blend, and Visual Studio 2008.
View Article
WPF Alien Sokoban

A fun implementation of the game Sokoban, written to showcase some features of WPF, C# 3.0, Expression Design, and Visual Studio 2008.
View Article
Amazon-esque Pager

Yet another list pager, but this one can use LinkButtons or simple hyperlinks, provides scrolling within an ASP.NET Ajax UpdatePanel, and behaves similarly to the paging found on Amazon.com.
View Article