Silverlight for Windows Embedded

The Embedded world has both seen significant change and not so much change since Microsoft introduced Windows CE 1.0 back in 1996. Back then, when Microsoft introduced a fully featured GUI based operating system, one of the touted features was that knowledge of the desktop Windows OS would transfer down to Windows CE. Both have a Win32 based API, Both use the same file formats for .EXE and DLLS, both had a GDI/User based user interface with an Explorer-style shell.

In 2011, those similarities remain features of Windows Embedded Compact 7, the latest version of Windows CE. The Win32 API, file formats, and GDI/User UI remain. However, the desktop has moved, along with the other players in the industry to a more “Internetty” style user interface where the user interface is defined in a markup language and the intelligence of the application is written in code typically referred to as “code behind” Apps following this paradigm include browser-based UIs using HTML and JavaScript, along with Flash-based apps. Microsoft has pushed Silverlight, its rich-UI, cross platform, browser based solution as its entry into this programming style. Silverlight combines a power UI description language XAML, with CPU independent managed (.NET) code as the code behind. Silverlight runs across lots of browsers and even on Mac OS X systems.

Microsoft’s Embedded team has adapted Silverlight technology for use on Windows Embedded Compact, taking the powerful XAML driven rendering engine but replacing the (somewhat problematic) managed code back end with native C++ code. Running native code dramatically decreases startup time, enables direct access to the Win32 API and drivers and avoids that annoying garbage collection pause that eliminates managed code from driving real time applications. “Silverlight for Windows Embedded”, or SWE as it’s sometimes known, is a huge differentiator for Windows Compact, providing a powerful user interface engine that simply is head and shoulders above the competition.

So, how does one write an SWE application? First, download an evaluation copy of Windows Embedded Compact 7 here. If you’re not in Korea where lightning fast broadband is the norm, expect this to take a while as the download is massive. You can also contact your local Windows Embedded Rep. to get the multi-DVD package. If you are currently developing with Windows Embedded CE 6, you’ll want to install Compact 7 on a separate machine or in a VM as CE 6 and Compact 7 can’t be installed side-by-side.

With the evaluation copy of Windows Embedded Compact 7, you’ll also get an eval copy of Expression Blend 3, which is the tool used to assist in designing the SWE application’s front end. SWE uses Blend 3 because the Silverlight rendering engine used in SWE is Silverlight 3 based.

There is a great blog post on the SWE Blog that describes your first SWE application. There are other posts on how to create a Compact 7 image that supports SWE as well as one that describes how to create a control with SWE. Unfortunately, there isn’t much activity in the blog with the last post being August of 2010. However, the content that is there is quite is informative.

There was an earlier version of SWE that shipped with Windows CE 6 Release 3. However, this version supports only Silverlight 2, is slower than the Silverlight 3 version in Compact 7 and doesn’t have the powerful translation tool that auto generates the C++ native code framework from the Blend project. Some folks that used the CE 6 R3 version came away with a bad impression. The new version in Compact 7 is much better. I hope those early adapters will give the new version a try. It’s a whole new ballgame.

This entry was posted in Windows CE, Windows Compact. Bookmark the permalink.

Comments are closed.