Using HTML5 Web Storage for Interprocess Communication

One of the exciting new features coming in HTML5 – and one that works in most HTML5 browsers today – is Web storage. The latest draft of the specification defines two types of Web storage: local storage and session storage. Local storage, which is analogous to isolated storage in Silverlight, persists data across browser sessions,…

Making HTML5 Come Alive with the Canvas API

The last five years of my career have been devoted to Silverlight. I began working with it long before version 1.0 was released, and with Silverlight 5 on the horizon, I’m even more excited about it today than I was then. The fact that you can write phone apps with it is icing on the…

Silverlight for Windows Phone Programming Tip #6

Recently I have heard of a couple of cases in which apps submitted to the Windows Phone Marketplace were rejected because they continued running when an incoming phone call arrived. While the Windows Phone 7 Application Certification Requirements don’t specifically state than an application must pause when a call arrives, it seems that certain actions…

Silverlight for Windows Phone Programming Tip #5

Quick: can you spot what’s wrong with this XAML?   <ProgressBar x:Name="Progress" Visibility="Collapsed" IsIndeterminate="True" />   If you answered that setting IsIndeterminant to true on a ProgressBar control in Silverlight for Windows Phone debilitates performance, go to the head of the class! If not, read on. If you use Silverlight for Windows Phone’s networking stack…

Real-World Tombstoning in Silverlight for Windows Phone, Part 4

Tombstoning is one of the greatest challenges in writing applications for Windows phones, which is why I decided to devote a series of blog posts to it. In Part 1 of this series, we built a photo-extras application that allows the user to perform simple image-editing chores on photos. In Part 2, we added tombstoning…

Real-World Tombstoning in Silverlight for Windows Phone, Part 3

In Part 2 of this series, we made progress toward including tombstoning support in a photo-extras application by adding OnNavigatedFrom and OnNavigatedTo methods that use a combination of page state and isolated storage to save the state of our app before it’s deactivated and restore that state following reactivation. But we also determined that work…

Real-World Tombstoning in Silverlight for Windows Phone, Part 2

In Part 1 of this series, we built a basic photo-extras application that allows a user to load photos from the phone’s Pictures library and convert the photos to grayscale. We also learned that in the absence of tombstoning support, the app doesn’t work very well. Specifically, if the user clicks the Start button to…

Real-World Tombstoning in Silverlight for Windows Phone, Part 1

One of the challenges that confronts every Windows phone developer is learning about tombstoning. As I briefly stated in an earlier article, tombstoning is Windows Phone 7’s way of allowing an application to restore itself to the same state it was in before it was interrupted. Although the operating system itself can run several applications…

Silverlight for Windows Phone Programming Tip #3

Application bars play an important role in the UI of many phone applications. An application bar can contain up to four buttons (and five menu items) giving the user quick and easy access to the app’s most commonly used features: Each button is an instance of ApplicationBarIconButton, and the ApplicationBarIconButton class exposes a property named…

Tombstoning Panorama Controls in Silverlight for Windows Phone

Earlier, I posted  a short article documenting a bug in Silverlight for Windows Phone’s Pivot control and demonstrating how to work around it to properly tombstone a Pivot control. Since the Pivot and Panorama controls are twin sons of different mothers, you may wonder: does the Panorama control suffer the same flaw? Well, there’s good…

Tombstoning Pivot Controls in Silverlight for Windows Phone

If you’re a Windows phone developer, you’ve figured out by now that tombstoning is an essential part of the application lifecycle, and that every application must be architected with tombstoning in mind. What is tombstoning? In short, while Windows phones are perfectly capable of running several applications at once, only OEMs can write apps that…

Silverlight for Windows Phone Programming Tip #2

Phone developers sometimes bemoan the fact that Silverlight for Windows Phone lacks syndication classes such as SyndicationFeed and SyndicationItem. In the desktop versions of Silverlight, these classes simplify the task of consuming RSS feeds, as well as other types of feeds such as ATOM. It’s a well-documented fact that you can work around this by…