Developers can easily leverage Silverlight on multiple platforms nowadays, including the upcoming version of Windows Compact Embedded (Windows CE). However, there are a few differences that need to be taken into account, as far as the client-side version of Silverlight and the Windows Embedded Compact 7 flavor are concerned. First off, Silverlight for the Windows client uses managed code, including C# and Visual Basic. This is not valid for Silverlight for Windows Embedded, which is designed to use native code (C++). At the same time, the latter is not sandboxed, meaning that developers can enjoy access to all the APIs and resource on the device.
“Silverlight for Windows Embedded is a native code (C++) UI framework that enables a new designer/developer paradigm that will dramatically improve the user interfaces on devices and the time and cost needed to deliver a differentiated experience. Leveraging familiar tools like Expression Blend, designers can quickly and easily design rich, compelling UIs for embedded devices on the Windows Embedded CE platform. At the same time, developers implement the code-behind with Visual Studio and Platform Builder,” revealed Microsoft’s David Franklin.
By taking advantage of the Extensible Application Markup Language (XAML), a markup language for declarative application programming, developers and designers can work better together. According to Microsoft, it’s easy for designers to deal with the user interface in XAML while simultaneously, the developers can put together the code behind the UI.
“To make setting up the C++ project easier, we provide the Windows Embedded Silverlight Tools (WEST) which allows you to take a Blend 3 project and create a C++ project in Visual Studio with many of the required initialization functions and event handlers automatically stubbed out for you. If you make changes to the Blend project, you can just run WEST again, and have the C++ project updated to reflect those changes,” Franklin added.
Because of the implied differences between managed and unmanaged code developers will find that their desktop Silverlight applications will not work by default on Windows Embedded Compact 7, or on any Windows CE devices for that matter. The two versions of Silverlight in fact take advantage of different Base Class Libraries. And there are also details such as the fact that Silverlight for Windows Embedded applications do not run in the browser, but hosted in a Win32 window instead.
“In order to achieve smooth, responsive animations, devices can take advantage of the acceleration commonly enabled by the Graphics Processing Units (GPUs) on their hardware. Silverlight for Windows Embedded supports hardware acceleration using DirectDraw and OpenGL through a process called cached composition,” Franklin said.
To start testing the next release of Silverlight for Windows CE, early adopters will need Windows Embedded Compact 7.0 Public Community Technology Preview, which was released on June 2, 2010, but also Expression Blend 3 and Visual Studio 2008.