自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

微軟平臺上的嵌入式開發(fā)技術(shù)大展廳

開發(fā)
本文的目的在于和各位學習討論微軟平臺上的嵌入式界面開發(fā)技術(shù)。文中對微軟UX技術(shù)Silverlight、WPF和Alchemy進行了概述總結(jié),并著重介紹了Alchemy。

從微軟的嵌入式 Roadmap 圖可以看到,Cashmere 代號很可能是微軟即將發(fā)布的 Windows Embedded CE (08年又被改名為 Windows Embedded Compact )的R3版本的代號,Chelan 代號很可能是2010年發(fā)布的Windows Embedded CE 7.0版本的代號。

自從前年R2版本的發(fā)布到現(xiàn)在,Windows Embedded CE 已近很久沒有大的變化了,Cashmere 版本給我們帶來了不少亮點,比如系統(tǒng)集成了 Adobe FlashLite、Gesture,優(yōu)化了網(wǎng)絡(luò)協(xié)議棧等。相關(guān)新聞?wù)埧催@,但是這些新聞的真實性我不敢保證。

本文的目的在于和各位學習討論微軟平臺上的嵌入式界面開發(fā)技術(shù)。目前確定的是Windows Embedded CE R3版本上將支持這個最新技術(shù),很可能在Windows Embedded其它產(chǎn)品上也支持這個技術(shù),所以標題我用嵌入式替代了Windows Embedded CE,桌面系統(tǒng)WPF、Silverlight如此多的資源也讓我們相信這一點。微軟總會想辦法讓它的技術(shù)在它的平臺上通用,讓其平臺下的程序員當起來不是那么的辛苦。

微軟最新嵌入式界面開發(fā)技術(shù)

目錄

如果給大家和自己帶來了價值,我想也許能繼續(xù)寫下去。前面的文章Windows Embedded CE 6.0 Internals等系列我仍然會繼續(xù)。我簡單整理了下,這個系列大概分為以下幾個部分,未來我會結(jié)合自己目前做的項目,將收獲和大家一起分享。這篇文章將做簡單介紹。

1.微軟UX技術(shù)概述

2.Alchemy帶來的開發(fā)流程的變化

3.Alchemy的一些Feature

4.Silverlight、Alchemy整體架構(gòu),及其比較

5.深入Alchemy

6.Alchemy的性能問題及優(yōu)化

7.動手寫一個Alchemy Shell

8.將編寫的好的Shell編譯進內(nèi)核鏡像中

9.Alchemy對手勢(Gesture)的支持

10GPU插件的編寫

11.把Silverlight(Web)、WPF(Desktop)應(yīng)用程序移植到Alchemy上

#p#

1.微軟UX技術(shù)概述

在博客園中我們經(jīng)常看到Silverlight的文章,讓我們先看一下這個技術(shù)是怎么來的。

微軟UX(User Experience,或稱UE)技術(shù)一覽:

微軟最新嵌入式界面開發(fā)技術(shù)

為了更高的開發(fā)效率,為了滿足用戶更高的視覺要求,新技術(shù)就這么不停的誕生了。從1981年MS DOS的第一個Release到現(xiàn)在已近28年了,很難看到還有使用DOS API編程的。當然使用Win32 API編程的還是挺多的,特別是Windows嵌入式開發(fā)。當然為了提高開發(fā)效率,也會用上MFC或者ATL/WTL,如果你要問用哪個適合,在這篇文章有解釋:從0開始Windows Mobile 開發(fā)。

博客園的討論最多的話題就是.Net,從.Net Framework第一個版本發(fā)布時(2002年2月13日)就作為微軟的核心產(chǎn)品。Windows Form介紹資料可以看這里。我在大學的時候自學過一點Asp.Net知識,對Web Forms印象還在,不過說實話當時學的確很浮躁,從來沒有問過自己為什么。希望你不要像我哦。如果你想找點介紹資料看,維基的請看這里,微軟的資料看這里。

跟一些人聊過WPF等新技術(shù),有人反對,有人支持,不管如何我認為作為一名技術(shù)人員,不能總隨波逐流,應(yīng)該靜下心來看看新技術(shù)到底有什么好的地方,好東西為什么不學習一下呢?如果說Windows Form大部分是對Native Win32的“包裹”的話,得到絢麗的用戶界面比較困難,那么可以說WPF改變了這個尷尬的局面。

看看維基對WPF的解釋:

"The Windows Presentation Foundation (WPF) is a graphical subsystem for rendering user interfaces in Windows-based applications.WPF, initially released as part of .NET Framework 3.0, is another step in Microsoft’s evolving rich client strategy. Designed to remove dependencies on the aging GDI subsystem, WPF is built on DirectX, which provides hardware acceleration and enables modern UI features like transparency, gradients and transforms. WPF provides a consistent programming model for building applications and provides a clear separation between the user interface and the business logic.”  (WPF基于DirectX,提供硬件加速和一些高級的特效。目前我跟大家一樣有個疑問:Alchemy跟DirectX的關(guān)系。相信以后編寫Alchemy GPU插件可以看到Alchemy與DirectDraw、Direct3D、OpenGL ES等的關(guān)系。)

WPF被完整的包含在Windows Vista、Windows 7、Windows Server 2008中,WPF Full package大概有200M。為了在Web和Embedded上使用這個技術(shù),微軟推出了更精簡的Silverlight Web(大概有4M)和Alchemy。

#p#

一提到Silverlight大家就想到了Adobe的Flash。是的,Silverlight是如此的相似Flash,以至于開發(fā)工具Expression Blend都像Flash的開發(fā)工具。(我最早接觸Flash是大一的時候?qū)W習Macromedia“網(wǎng)頁三劍客”^^,好懷念!)

下圖為Expression Blend: 

微軟最新嵌入式界面開發(fā)技術(shù)

下圖為Adobe Flash Professional: 

  微軟最新嵌入式界面開發(fā)技術(shù)

我簡單跑起來自帶的SmoothBlends例子,效果挺不錯,相信在嵌入式設(shè)備上會更有吸引力:

微軟最新嵌入式界面開發(fā)技術(shù)

Silverlight目前可用的學習資源已經(jīng)很多,這里就有關(guān)于Designer和Developer Workflow的介紹。我簡單列了一些,當你使用 Alchemy 時,你會發(fā)現(xiàn)它們在這些方面是通用的。

XAML是銜接Designer和Developer的關(guān)鍵: 

微軟最新嵌入式界面開發(fā)技術(shù)

#p#

這些經(jīng)驗同樣可以用在Alchemy上,特別是Designer部分工作: 

微軟最新嵌入式界面開發(fā)技術(shù)

微軟最新嵌入式界面開發(fā)技術(shù)

微軟最新嵌入式界面開發(fā)技術(shù)

當然這里的項目類型現(xiàn)在看來還應(yīng)該加上Alchemy:

微軟最新嵌入式界面開發(fā)技術(shù)

經(jīng)過上面這一介紹,你可能你還沒有弄清楚Silverlight、WPF、Alchemy之間是啥關(guān)系。其實它們的關(guān)系并不像三角戀那么復(fù)雜,捋一下就順了:

(1).使用相同的開發(fā)工具(Visual Studio、Expression),Designer和Developer的協(xié)作方式是相同的(上面圖中看到的那樣)。

(2).近乎通用的XAML(Extensible Application Markup Language)和UI,Controls、Graphics、Animations等都可以定義在XAML中。

(3).下面的截圖是Silverlight支持的類,Alchemy基本與其相似,除了沒有CPanel(記的可能不準確)。

微軟最新嵌入式界面開發(fā)技術(shù)

#p#

2.Alchemy帶來的開發(fā)流程的變化

從第一部分我們已經(jīng)看到帶來了什么變化。這里僅僅新技術(shù)談?wù)劷oWindows嵌入式產(chǎn)品帶來的影響。

微軟最新嵌入式界面開發(fā)技術(shù)

XAML來自XML,微軟為了能夠統(tǒng)一Web、Desktop、Embedded的界面開發(fā)而推出了XAML。XAML不光分離了Designer和Developer的工作,也為將Desktop和Web上的界面移植到Embedded設(shè)備上帶來了便捷。Alchemy給我們帶來了"Code Behind”式的嵌入式開發(fā)體驗。"Code Behind”式編程相信有過開發(fā)Asp.Net網(wǎng)站的應(yīng)該都有所體驗。

快速的UX方案將大大縮短嵌入式產(chǎn)品的開發(fā)周期。新的設(shè)備可能僅僅只需要設(shè)計人員去設(shè)計一個新的UI。這些新的UI從哪來?也許并不需要你重新構(gòu)思,從Desktop的WPF程序、從Web的Silverlight程序中都可以輕松的移植過來。

3.Alchemy的一些Feature

這里我簡單列出一些比較重要的Feature,更詳細的請等微軟正式發(fā)布這個技術(shù)時就可以看到了。

(1).支持Native C++ Code,不支持Managed Code。

(2).R3版本只支持2D加速,支持方式通過DirectDraw插件或OpenGL ES插件。Windows Embedded CE 7.0上將支持3D加速。

(3).支持Animation(這里不支持Adobe Flash,只支持使用Expression Blend開發(fā)的動畫),支持Transparency。

(4).不支持Build-in Media Control。

(5).支持Custom Control、Win32 Control,不支持Sub-Classing Control。

(6).不支持DeepZoom。不知道什么是DeepZoom?看了下面的截圖你應(yīng)該知道了:

微軟最新嵌入式界面開發(fā)技術(shù)

4.Silverlight、Alchemy整體架構(gòu),及其比較

下圖是 Silverlight 版本1和2的架構(gòu)圖:

微軟最新嵌入式界面開發(fā)技術(shù)

Silverlight 版本 2 支持兩個編程模型:Silverlight 的 JavaScript API 和 Silverlight 的托管 API。托管 API 基于 .NET Framework 的一個子集。Alchemy并不是基于.NET Framework,它不能使用托管語言(比如C#),而只能使用Native C++編寫。在上面有說過。

微軟最新嵌入式界面開發(fā)技術(shù)

Alchemy使用的了Silverlight Core。從圖中可以看到OEM商需要編寫的GPU插件的位置。從GPU插件中指定使用硬解碼還是軟解碼等配置。

5.深入Alchemy

這一部分可以進一步細分成下列部分:

(1).組件詳解,包括XamlRuntime.dll、Hgcore.dll等。

(2).Alchemy編程模型

(3).Visual Host

(4).資源管理

(5).控件,包括Native Control、User Control、Custom Control、Win32 Control。

(6).事件處理,特別值得注意的是Loaded事件

(7).2D加速原理

6.Alchemy的性能問題及優(yōu)化

未來不知微軟是否會推出相應(yīng)的工具來讓我們檢測我們開發(fā)好的Alchemy程序的Performance(包括我們開發(fā)的GPU Plugin),以及整體設(shè)備的Performance。如果沒有可能要我們自己做些這樣的工作,以及之后的優(yōu)化。

7.動手寫一個Alchemy Shell

8.將編寫的好的Shell編譯進內(nèi)核鏡像中

以上2部分內(nèi)容后續(xù)推出。

9.Alchemy對手勢(Gesture)的支持

Gesture架構(gòu):

微軟最新嵌入式界面開發(fā)技術(shù)

支持這些手勢:

微軟最新嵌入式界面開發(fā)技術(shù)

在使用Map、圖片查看等Application時,手勢會提供很大的便捷。但是像逆時針旋轉(zhuǎn)、順時針旋轉(zhuǎn)、半圓旋轉(zhuǎn)等手勢可能不支持。

10.GPU插件的編寫

11.把Silverlight(Web)、WPF(Desktop)應(yīng)用程序移植到Alchemy上

以上2部分內(nèi)容后續(xù)推出。

以上就對微軟平臺上的嵌入式開發(fā)技術(shù)進行了一番大致的總結(jié)。本文來自王克偉的博客:《微軟最新嵌入式界面開發(fā)技術(shù)》

【編輯推薦】

  1. 可口可樂使用Windows Embedded構(gòu)建新型出售機
  2. 點對點消息隊列函數(shù):用于WinCE的IPC機制
  3. WinCE系統(tǒng)下GSM Modem的測控應(yīng)用
  4. WinCE文件目錄定制及內(nèi)存調(diào)整
  5. 基于WinCE的液位遙測系統(tǒng)軟件設(shè)計
責任編輯:yangsai 來源: 王克偉的博客
相關(guān)推薦

2009-12-23 10:33:30

Silverlight

2010-01-13 09:51:21

微軟Linux嵌入式

2010-12-28 19:23:47

2011-06-21 11:30:31

嵌入式 Qt

2011-01-14 13:13:23

嵌入式Linux開發(fā)

2009-11-07 19:15:51

嵌入式軟件開發(fā)

2009-11-30 16:54:28

微軟

2009-07-17 16:06:59

ARM嵌入式開發(fā)

2010-01-06 11:21:05

嵌入式開發(fā)

2010-03-26 11:23:59

無線嵌入式控制技術(shù)

2010-06-09 11:33:50

嵌入式開發(fā)微軟Windows 7

2011-07-01 16:43:26

微軟MVP微軟嵌入式金融行業(yè)

2010-01-06 09:53:08

嵌入式

2009-07-10 17:36:29

嵌入式開發(fā)微軟Windows Emb

2010-01-13 09:15:35

嵌入式

2021-10-26 21:50:10

Rust嵌入式開發(fā)

2011-07-05 15:42:02

QT 嵌入式 Embedded

2011-11-30 17:19:06

微軟

2010-03-18 11:22:10

Windows Emb

2011-12-13 14:51:05

微軟
點贊
收藏

51CTO技術(shù)棧公眾號