基于Silverlight/XAML開發嵌入式系統WinCE下應用程序UI
基于Silverlight/XAML開發嵌入式系統WinCE下應用程序UI By Toradex 秦海
1. 簡介 XAML (eXtensible Application Markup Language) – 可擴展應用程序語言,在桌面平臺廣泛應用于WPF和Silverlight應用程序UI設計開發,而針對嵌入式系統,Microsoft基于桌面平臺Silverlight定義了Silverlight/XAML for Windows Embedded, 提供針對Windows Embedded Compact 的應用程序UI開發框架, 以方便客戶在嵌入式設備上開發出更炫麗和易于交互的應用程序界面。
Silverlight/XAML for Embedded從Wince 6.0 R3開始支持,在這之應用程序UI開發主要是Win32或者MFC(Microsoft Foundation Class);Win32 雖然效率高,但開發相對比較復雜,且很難實現復雜界面設計;MFC是基于Win32 API和C++的面向對象類庫,同時包含應用開發框架,在.NET之前被廣泛應用,目前桌面平臺主流已是基于.NET的WPF/Silverlight框架;而在嵌入式平臺,由于.NET CF環境資源占用比較大,因此還是基于C++的框架為主流,因此對于架構簡單界面小巧的MFC還是占據一席之地;但隨著技術發展,MFC的缺點也越來越明顯,如無法應對復雜界面,開發仍然相對困難等;而相對的,Silverlight/XAML for Embedded可以說是更先進的UI開發框架,其優勢是可以開發復雜交互界面,程序UI和邏輯開發分離模型,與主流桌面環境采用類似的XAML語法,支持嵌入式處理器硬件圖形加速等。
2. Silverlight/XAML for Embedded 和桌面平臺Silverlight的主要區別
Silverlight | |
WinCE嵌入式系統應用程序UI開發 | 桌面平臺交互式Web前端應用開發 |
只支持Virtual C++ | 支持Virtual C#,.NET Framework等 |
基于Win32窗口,不依賴瀏覽器 | 基于瀏覽器插件 |
部分event/namespace等的差異 | 詳細差異對照可以參考這里 |
3. 這里是一個基于Toradex Tegra ARM平臺下Silverlight/XAML for Embedded 的開發實例,利用Expression Blend 創建Silverlight 應用導入到VS2008后下載到目標平臺 (注目前Microsoft已經停止對Expression Blend的延續并將其整合到VS2013 Update 4中) a. 開發環境準備,順序安裝下面項目 ./ 安裝 Virtual Studio 2008, 可以從這里下載試用版 ./ 安裝 VS2008 SP1, 可以這里下載 ./ 安裝 Microsoft Expression Blend 3, 可以從這里下載試用版 ./ 安裝 Windows Embedded Silverlight Tools, 可以從這里下載 ./ 安裝目標板Toradex Tegra 平臺WEC7 SDK, 可以從這里下載 b. 用 Microsoft Expression Blend 3 創建Silverlight 應用 ./ 創建 New Project –》 Windows Embedded Application
./ 建一個”Button”,顯示“print Message”,并命名為”PrintMessage”, 然后Properties -> Events, 設置Click 為 PrintMessage
./ 建立一個“TextBox”, 并命名為”MessageSpace”, 最后保存全部。
c. 在VS2008導入上面創建的應用,并在目標板部署 ./ 在VS2008創建New Project ->Virsual C++ ->Smart Device ->Silverlight for Windows Embedded Application,并按提示一步步導入上面建立的項目
./ 編輯”MainPage.cpp”
./ Build -> Deploy 應用,需要目標板OS image包含Silverlight組件,如果用的標準版,可以這里下載在目標板上面安裝后再部署運行示例程序
./另外,還可以從這里看到更多基于Silverlight/XAML for Embedded的開發實例
4. 總結 由于Microsoft 針對Embedded Compact OS沒有提供WPF支持,因此Silverlight/XAML for Embedded 就是比較熟悉Windows平臺開發的用戶在嵌入式平臺比較好的進行應用程序UI的一個選擇,開發難度和界面效果能夠讓人滿意,同時又不像桌面平臺依賴于瀏覽器,穩定和可靠性方面有保證;而不足方面是不具備跨系統平臺的兼容性,如果應用需要運行在多平臺,那么Qt可能是更好的選擇。

提交
Verdin AM62 LVGL 移植
基于 NXP iMX8MM 測試 Secure Boot 功能
隆重推出 Aquila - 新一代 Toradex 計算機模塊
Verdin iMX8MP 調試串口更改
NXP iMX8MM Cortex-M4 核心 GPT Capture 測試