Welcome to the Silverlight for Windows Embedded team blog. This serves as a place for the Silverlight team to share information about the Silverlight for Windows Embedded API set and how it can be used to create compelling UI on Windows Embedded Compact-based devices. This blog will include everything from small UI examples to tips and tricks on how to make the most of Silverlight. We also welcome comments and suggestions from our readers to help make this a valuable UI development resource.
To kick things off, today I am providing some background on Silverlight for Windows Embedded and some links to help you get started.
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.
The key to enabling the designers and developers to work simultaneously is Extensible Application Markup Language (XAML), a markup language for declarative application programming. As with Silverlight on the desktop, the designer creates the visible UI elements in the XAML and the developer creates the separate code-behind files to respond to events, manipulate the elements declared in the XAML, and control the underlying business logic of the application.
Unlike Silverlight on the desktop PC, which uses managed code (like C# or Visual Basic), Silverlight for Windows Embedded uses native code (C++) and does not run in a security sandbox, meaning that it has access to any API and resource on the device.
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.
Due to the differences between managed and unmanaged code, Silverlight for Windows Embedded uses an entirely different Base Class Library than the Silverlight that runs on your desktop PC, meaning that some functionality from the desktop (like .NET and sockets) will be very different on the device. This also means that desktop Silverlight applications will not run on Windows Embedded CE devices.
Finally, rather than running in a web browser, Silverlight for Windows Embedded applications are hosted in any Win32 window. To provide an immersive user experience, Silverlight for Windows Embedded shells and applications are typically run in full-screen mode.
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.
Silverlight for Windows Embedded first shipped with Windows Embedded Compact 6.0 R3, but this blog will be covering features shipping with the Windows Embedded Compact 7.0 Public Community Technology Preview (available since June 2, 2010). In order to use Silverlight for Windows Embedded you will need to install the following applications:
Note: Depending on the options you choose, this release could take up to 90 minutes to install. Additionally, having virus protection enabled may greatly increase your installation time.
We hope that this blog proves useful to you and that you frequently check back to see the content that we will be adding to it.