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

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