Daniel Vaughan

free range code

Publications

Introducing the Model Thread View Thread Pattern


Mtvt

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

Calcium logo

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

Perceptor logo

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

Synchronous Web Services in Silverlight Logo

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

UrlSerialization overview

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 logo

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

Clog: WPF Edition logo

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

Clog: Silverlight Edition logo

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

Silverlight Alien Sokoban screen shot

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

WPF Alien Sokoban screen shot

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

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 

 

 

 

Order the Book

Ready to take your Windows Phone development skills to the next level? My book is the first comprehensive, start-to-finish developer's guide to Microsoft's Windows Phone 8. In it I teach through complete sample apps that illuminate each key concept with fully explained code and real-world context. Windows Phone 8 Unleashed

Windows Phone Experts Windows Phone Experts
LinkedIn Group

 

Bio

Daniel VaughanDaniel Vaughan is co-founder and president of Outcoder, a Swiss software and consulting company dedicated to creating best-of-breed user experiences and leading-edge back-end solutions, using the Microsoft stack of technologiesin particular WPF, WinRT, and Windows Phone. 

Daniel is a five-time Microsoft MVP, with experience across a wide range of industries including finance, e-commerce, and digital media. 
Daniel is the author of Windows Phone 8 Unleashed and Windows Phone 7.5 Unleashed, published by SAMS.

Daniel is a Silverlight and WPF Insider, a Microsoft Azure advisor, a member of the WPF Disciples, and a member of the Microsoft Developer Guidance Advisory Council.
Daniel also sits on the advisory board of PebbleAge, a Swiss Financial Software company.

While originally from Australia and the UK, Daniel is currently based in Zurich Switzerland. 

Daniel is the developer behind several acclaimed Windows Phone apps including Intellicam and Splashbox; and is the creator of a number of popular open-source projects including the Calcium and Clog.

Daniel also manages the Windows Phone Experts group on LinkedIn; a group that has over 4000 independent developers, Microsoft employees, and Windows Phone enthusiasts.


E-mail Send mail

 

Microsoft MVP logo Disciple
WPF and Silverlight Insiders
 

 

 

Sign in