擁有完整硬件訪問權限的本地Silverlight
作者 Jonathan Allen 譯者 侯伯薇
Silverlight Embedded 是專門為嵌入式設備設計的,那些設備不一定擁有網絡連接能力,或者只會偶爾連接。它選擇 XAML 作為 UI 層,從而嵌入式系統的設計師和開發人員可以實現工作的分離,就像 .NET 和 Web 開發人員一樣。但是硬件的限制意味著本地編程語言更適合。
重要的是要注意到這并不是 Windows 8 或者 WinRT。Silverlight Embedded 擁有對操作系統暴露出來的 Win32 API 以及硬件的完整訪問權限。在 Silverlight 之下,所有遺留的 Windows Embedded 類庫都可以繼續使用。
也就是說,它們之間有類似之處。例如,通過 DirectDraw 或者 OpenGL 提供了硬件加速圖形(Hardware accelerated graphics),但那并不是必須的。在 Silverlight Embedded 中可以使用一般的 XAML 綁定表達式支持數據綁定。在代碼端,模型需要實現 IXRPropertyBag 接口而不是 INotifyPropertyChanged。想要了解其他區別,你可以查看 Silverlight 3 和 Silverlight Embedded 之間的比較一文。
Silverlight for Embedded 的第一個版本是為 Windows Embedded CE 6 Release 3 發布的。這個版本擁有基于 Silverlight 2 的 API。下一個版本針對 Windows Embedded Compact 7,它會使用 Silverlight 3 的 API。第一個版本的工具很粗糙,但是微軟聲稱新的版本會更加成熟。想要開始使用它,所需工具有:
- Visual Studio 2008
- Expression Blend 3
- Silverlight for Embedded SDK
- Platform Builder 7
platform builder 是特別引入的: 這個工具會為 Expression Blend 的 Silverlight/XAML 項目創建 C++ 項目的框架。在運行工具之前,需要對將要訪問的控件命名,并注冊事件處理程序。表示它們的字段和回調函數會在得到的 C++ 頭文件和代碼文件中自動生成。當 XAML 發生改變時,就需要重新應用工具以更新生成的代碼。
在 Silverlight Embedded 還提供了像動畫之類的功能。故事板(storyboard)是在 Expression Blend 中創建的,就像你構建 Silverlight for web 或者 Silverlight for Windows Phone 應用程序一樣。當然,我們必須小心避免使用對于目標硬件過于復雜的動畫。你可以在視頻創建和使用 Silverlight for Embedded 應用程序中看到演示。
查看英文原文:A Native of Silverlight with Full Hardware Access