CodeStock Presentation: Silverlight 5 for Line of Business Applications

A special thanks to everyone who attended my Silverlight 5 for Line of Business Applications talk at CodeStock 2011. It was a great crowd and I enjoyed meeting everyone. As promised, here are the links to the slide deck as well as the sample project that I used to demonstrate the new features that is…

Using ICustomTypeProvider in Silverlight 5 to Display JSON Data

By now you’ve likely heard the buzz surrounding the release of the Silverlight 5 beta and some of the great new features. Developers have been waiting some time for a dynamic type that can participate in data-binding for Silverlight. Silverlight 5 introduces this ability, but not in the form of Expando objects or the dynamic…

A Fluent Backwards Design

Fluent interfaces make code easier to read, understand, and use. They can also provide a layer of separation and decoupling to make it easier to reuse components in a straightforward fashion. In this post I will walk through the scenario of creating a fluent interface with a “backwards design.” This means I’ll start with the…

Dynamic Types to Simplify Property Change Notification in Silverlight 4 and 5

The biggest problem with data-binding is the requirement to implement the INotifyPropertyChange interface. There are dozens of solutions out there that try to simplify the process with techniques ranging from parsing lambda expressions and walking the stack frame to using IL weaving to modify classes at compile time. The most popular approach is to derive…

Supporting Non-Supported Entities like IEnumerable in Sterling

While the Sterling NoSQL database supports many items out of the box, there are certain item types it just doesn’t know enough about. For example, consider a property defined as IEnumerable. Unlike a list, an enumerable is not bounded. It simply exposes an iterator, and for all we know, that iterator might be an enumerable…

Performance Optimization of Silverlight Applications using Visual Studio 2010 SP1

Today I decided to work on some miscellaneous performance optimization tasks for my Sterling NoSQL Database that runs on both Silverlight and Windows Phone 7. The database will serialize any class to any level of depth without you having use to attributes or derive from other classes, and despite doing this and tracking both keys…

Creating a Markup Extension for MEF with Silverlight 5

One exciting new feature of Silverlight 5 is the ability to create custom markup extensions. Markup extensions are a part of XAML. Whenever you see a notation that starts and ends with a brace, you are viewing a markup extension. Markup extensions exist to pass information to properties in the XAML that the XAML parser…

The MIX 2011 Keynote on Wednesday 4/13 Recap

Today was an exciting day during what many have dubbed “the real” MIX 2011 keynote. There were announcements about Windows Phone 7, Silverlight, and Kinect. So what were my thoughts sitting in the audience? The awesome community created Windows Phone 7 video was incredible and I appreciate the recognition they gave the author. Please share…

Text Search with Ancestor Binding and Child Windows in Silverlight 5

In case you missed it, the release of the Silverlight 5 beta was officially announced at MIX today. Over the next few days in addition to blogging about my experiences at MIX, I’ll also be sharing with you some new features that are available in the new Silverlight beta. In this post, I’d like to…

MIX Sessions Recap for Day One

My first day of MIX was an exciting one. I expected the keynote would cover the non-Silverlight and Windows Phone 7 topics so contrary to the reports of “oh no” you’ll invariably hear, it only served to stretch my own excitement as I look forward to today’s keynote and what it will have to offer.…

The MIX 2011 Tuesday 4/12 KeyNote Recap

Today’s keynote was all about the plug-in free web. The keynote started with a barrage of IE9 statistics and demonstrations showing how “native support” is important. By native support, the team is referring to minimizing the layers between the web and the underlying hardware. It was very impressive to see the amazing performance of HTML5…