XAML Serialization

Currently I'm on a diversion into the world of Cider XAML Serialization.  XAML Serialization includes loading and parsing the XAML from file, converting it into an object model suitable for Cider features to edit, capturing undo/redo operations of XAML changes, formatting additions, preserving the format of existing XAML and finally saving it back to file.

Although I'm really jazzed about doing the Extensibility work (which I will still be doing in parallel) I'm also really excited about exploring this area.  Not only will it help me to better understand XAML (something I'll be doing starting this week is to go through the XAML spec checking for Cider XAML Load completeness) but I'll also get to work with Chuck Jazdzewski who is the architect who designed and implemented this feature.

The feature crew also includes a number of other great people: Obaid Rahman, Nikola Mihaylov and Zhanbo Sun

The first thing we are working on is the XAML Load feature.  This includes:

  • Reading, parsing, validating and creating an object graph based on the content of a XAML document
  • Creating the design time view of that object graph
  • Reporting errors from this process

Where the main scenarios we are covering include:

  • Opening an existing XAML file and viewing it
  • Viewing the output of Sparkle and Sparkle workflow (i.e. switching in between Sparkle and Cider)
  • Using Cider as a "XAML Pad"
  • Using external resources
  • Having performance that does not block