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