The Expression Blend Asset pane showing the analytics behaviorsOn Monday I gave an hour long presentation to a standing-room-only room at the Microsoft Mix conference in Las Vegas about the new Microsoft Silverlight Analytics Framework.  I knew there was interest in this but I was overwhelmed by the amount of interest.  I did the presentation in a Microsoft Expression Blend SketchFlow player and posted it online on my personal web site at Charette.com/saf.  Luckily the session was recorded and you can watch it now here.  Alfonso Corretti from Nedstat joined me on stage as well to explain how they were starting to use the new framework with their customers.  My friend Peter Kellner was there as well and took a photo of the session.

Partners

Microsoft could not have done this alone and we reached out to many of web analytics vendors across the world to design the framework as well as build vendor-specific components for it.  We even enlisted design talent from Archetype to design some cool icons for the behaviors.  We have a growing list of analytics vendors and seven contributed components to be included in the installer for the framework that you can download on http://msaf.codeplex.com, under the OSI-approved Microsoft Public License.  You can see their icons in the asset pane in Blend once the framework is installed and enabling one or more of them is as simple as dragging the behavior into a Silverlight application and setting account information in the property pane.

  • ATInternet.WebAnalytics.ATInternetAnalytics.24x24 ATInternetAnalytics: AT Internet
  • Comscore.WebAnalytics.ComscoreWebAnalytics.24x24 ComscoreWebAnalytics: comScore, Inc.
  •  GlanceGuide.WebAnalytics.GlanceGuideAnalytics.24x24 GlanceGuideAnalytics: GlanceGuide
  •  Google.WebAnalytics.GoogleAnalytics.24x24 GoogleAnalytics: Google Analytics – (see the post on the Google Analytics Blog and this page)
  •  PreEmptive.RuntimeIntelligence.RuntimeIntelligenceAnalytics.24x24 RuntimeIntelligenceAnalytics: PreEmptive Solutions – (see the press release here)
  •  NedstatIcon SitestatMeter: Nedstat
  •  alpha_blue QuantcastAnalytics: Quantcast
  •  Microsoft.WebAnalytics.Behaviors.ServiceOrientedAnalytics.24x24ServiceOrientedAnalytics: An experimental behavior for a Service-Oriented Architecture analytics service – the protocol is a well-defined HTTP GET or POST request and an analytics service would just need to configure a web service that accepts and logs that request.
  • Telerik RadControls  - see (this post here)

Other analytics vendors have committed to building components for the framework and we hope to have many more components included in the framework.  They include Anvato, Conviva, Coremetrics, Nielsen, Skytide, Visible Measures, WebTrends, and Unica (see press release).  If you don’t see your favorite analytics vendor here, please point them to the framework so we can start a conversation with them ASAP.

Behaviors

As you can see, the framework is made up of a collection of behaviors that designers would drag and drop into their designs in Microsoft Expression Blend, the design tool for Silverlight:

  • Add Microsoft.WebAnalytics.Behaviors.ABTesting.24x24ABTesting to define A/B Testing scenarios linked to visual states
  • Add Microsoft.WebAnalytics.Behaviors.Pulse.24x24 Pulse to the LayoutRoot to track regular intervals.
  • Add Microsoft.WebAnalytics.Behaviors.ServiceOrientedAnalytics.24x24 ServiceOrientedAnalytics to the LayoutRoot to send a data to a service using HTTP GET or POST.
  • Add Microsoft.WebAnalytics.Behaviors.ConsoleAnalytics.24x24 ConsoleAnalytics to the LayoutRoot to send data to the Visual Studio Debugger, the FireBug console in FireFox, Chrome's JavaScript Console, or Safari's debug console.
  • Add Microsoft.WebAnalytics.Behaviors.TrackAction.24x24 TrackAction to any scene element to track the event specified in the Trigger EventName.
  • Add Microsoft.WebAnalytics.Behaviors.TrackForm.24x24 TrackForm to any panel (Grid, StackPanel, WrapPanel, etc.) to track controls together in a form and set the SourceName to a submit button.
  • Add Microsoft.WebAnalytics.Behaviors.TrackFormControl.24x24 TrackFormControl to any controls below a TrackForm control to track the controls together.
  • Add Microsoft.WebAnalytics.Media.TrackMultiScaleImage.24x24 TrackMultiScaleImage to track Deep Zoom multi-scale images.
  • AddMicrosoft.WebAnalytics.Media.TrackPlayer.24x24  TrackPlayer to the Microsoft Silverlight Media Framework Player to track all of the events its logging framework emits.
  • Add Microsoft.WebAnalytics.Media.TrackSmoothStreamingMediaElement.24x24 TrackSmoothStreamingMediaElement to a SmoothStreamingMediaElement to track the media events that it triggers.
  • Add Microsoft.WebAnalytics.Behaviors.TrackTouch.24x24 TrackTouch to the LayoutRoot to track when the user makes a multi-touch gesture on Windows 7.

Future

We just released the framework for Silverlight 3 (Visual Studio 2008+Expression Blend 3) as a Beta to get additional feedback from designers and developers who start using it.  The entire source code for the framework is available under the MS-PL open source license at http://msaf.codeplex.com.   You can start using the framework today in your Silverlight 3 project.  There is an SDK for the Silverlight 4 Beta (which will get updated very soon to the latest Visual Studio 2010 and Silverlight 4 Release candidate) also available on the CodePlex site.  With some of the new functionality in Silverlight 4, we will want to add new event handlers to the framework, relating to new controls like the Pivot Collection and features like webcam/microphone, printing, and elevated trust.  We now are at a great time to ask developers and designers what events are important to track in Silverlight 4.  If you have an idea for an event, add it to the Issue Tracker so we can consider it.  We want to release the Silverlight 4 analytics framework around the release of Silverlight 4 – so stay tuned – if you want to include your analytics service in the framework installer for Silverlight 4, please contact me ASAP.

We have also included behaviors for WPF applications so you can add analytics to your desktop rich client applications – this was done at the last minute in a few hours with about 99% of the code shared between Silverlight and WPF.  We still have to adapt the design-time assemblies for the framework behaviors and rebuild the analytics vendor components.  Our partners and customers who are building Surface and kiosk applications are especially excited about this.

We also want to build the framework for Windows Phone 7 Series and want input from the community on what are the events, scenarios, controls, and analytics services that need to be supported for this framework – put your input and suggestions in the project’s issue tracker.