Develop Silverlight Applications for 20 Million Nokia Symbian Device Users

The Silverlight Runtime for Symbian Devices

Microsoft has released Symbian for Silverlight – a free download.

It supports Nokia S60 5th Edition devices such as:

  • Nokia 5800 XpressMusic
  • Nokia N97
  • Nokia N97 Mini
  • S60 5th Edition SDK 1.0 Emulator

Apparently this covers some 20 million users worldwide!  The version version of the WebKit based browser is recommended which will be in upcoming firmware updates.

The Tools

You’ll need the Windows-based Microsoft Silverlight for Symbian Developer Tools plus:

  • Visual Web Developer 2008 Express Edition with SP1 with Silverlight Tools for Visual Studio 2008 SP1
  • Visual Studio 2008 SP1 with Silverlight Tools for Visual Studio 2008 SP1
  • Expression Blend 2 SP1 (free trial version)

Other versions of Expression Blend and Visual Studio are not supported. Application deployment on Internet Information Services (IIS) or a comparable web server such as Apache is supported.

Only development with C# is support – not VB.

The Symbian-specific tools include:

  • Samples
  • Runtime for the emulator (and command line to install it); note that the documentation includes instructions on getting the emulator
  • Documentation

To test, you launch the emulator and browse to sites running the silverlight application you have built.  You can open .xap files in folders but then network calls will fail.  Not much debugging support – limited to some basic browser error notifications with some Nokia-specific modification – though you could debug in Visual Studio by running the application up in a desktop browser.

The Capabilities (or lack thereof)

The Silverlight runtime for supported Nokia devices is based on Silverlight 2 with some limitations, hence why VS 2008 and Blend 2 are the tools supported.

JavaScript is largely not supported.  Pure XAML is OK.  So it’s Silverlight 2 style XAML+.NET apps to go 🙂

The documentation details the media limitations but here are a few major points.

  • Media is played through the Nokia Nseries digital music player for A/V playback and progressive download.  Adaptive streaming requires IIS Smooth Streaming.
  • Video needs to be MP4 H.264 – Baseline Profile (with some specific limitations)
  • Audio needs to be MP4 AAC-LC (including HE-AAC)
  • Full-screen requires the MediaElement to be the only element sized to the screen.
  • OpenFileDialog is customized for the Nokia devices for finding/selecting media files, taking pictures, etc.

These media features are not supported:

  • HTTP traditional streaming

  • Server-side playlists

  • Client-side playlists

  • Built-in VCR controls

  • Multiple MediaElement controls in one plug-in

  • MediaElement control used as content within another Silverlight control

  • Markers

  • Video overlay

  • Transparency

  • Digital Rights Management (DRM)

  • Alpha blending

  • Rotation and skewing of videos (RotateTransform and SkewTransform)

  • Some members of MediaElement (see "MediaElement Support" later in this topic)

  • VideoBrush element

These Silverlight features/technologies are not supported:

  • Cryptography

  • Deep Zoom

  • Dynamic language runtime (DLR)

  • Digital Rights Management (DRM)

  • Expression trees

  • HTML DOM bridge

  • JavaScript programmability

  • LINQ to SQL

  • Localization of Silverlight resources

  • Reflection

  • Sockets

  • Visual Basic

  • Windows Communication Foundation (WCF)

A few other plug-in related features not supported:

  • ThreadPool

  • Multiple plug-ins on one page

  • Dynamic plug-in xap-file source

  • Silverlight plug-in object

  • Custom Request/Response Headers

  • Silverlight plug-in access from JavaScript

  • Updating HTML DOM Values Through Managed Code

  • No Timeout Error if Network Goes Down

The following Silverlight 2 technologies are supported. However, some features may not be supported, or behavior may be different because of platform differences.

  • Silverlight 2 class library – no VB, WCF, ADO.NET Data Services, JSON, various controls, Polling Duplex, Syndication Classes, XML Utils, Reflection, Sockets, etc…

  • Media – see above

  • Controls – no Silverlight SDK controls (just the runtime ones) plus no support for ComboBox or MultiScaleImage; some runtime controls may not be suitable for the devices

  • Input – support for min/full QWERTY on-screen keyboard, but no T9

  • Isolated storage – fixed at 1MB per application and user must manually remove files after cleanup with no UI provided; read only access flag not supported

  • Fonts – only device (TrueType) fonts available, but can embed fonts resources (if licensed of course)

  • Graphics – No VideoBrush

  • Networking – basically limited to HttpWebRequest and WebClient – check recommended use of Dispose for large downloads

You can view the Silverlight privacy policy here and try Bing and HSN Silverlight applications on your Nokia phone.