讓Windows CE 6.0 R2支持.NET CF 3.5
.NET Compact Framework已經升級到3.5的版本了,.NET CF 3.5支持LINQ和WCF等新的特性。對于Windows Mobile的開發人員來說,只需要安裝一個更新的CAB包就可以了。可是Windows CE的開發者如果想將.NET CF 3.5加入到OS Design,還是需要花一點功夫的。我們會使用革新2410D開發板作為我們的平臺,關于該開發板的介紹和開發過程,大家可以參考我之前的文章——《革新2410D開發板試用手記》,鏈接如下:
本文引用地址:http://www.104case.com/article/201610/305891.htmhttp://www.cnblogs.com/aawolf/archive/2008/05/29/1209854.html
來自Mike Hall的QFE
這篇文章的起因是Mike Hall在自己BLOG上發表的一篇文章:
http://blogs.msdn.com/mikehall/archive/2008/03/17/net-compact-framework-3-5-component-for-windows-embedded-ce-6-0-catalog-component.aspx
這篇文章介紹了微軟在2008年一月份推出的一個QFE的包,其中包括了.NET Compact Framework 3.5的組件。所謂QFE,就是Quick Fix Engineering,用于快速修復一些BUG或者增加一些新的功能,修改比SP要小,所以可以每月推出。
好了,既然有老大級的人物給我們指明了方向,小弟們跟著干就是了,首先在微軟網站上下載這個QFE包:
http://www.microsoft.com/downloads/details.aspx?FamilyID=a83124d5-7c8e-4abe-87fd-69654561be40displaylang=en
然后確認你的開發計算機上已經裝了下面的東西:
1. Visual Studio 2005
2. Visual Studio 2005 SP1
3. Visual Studio 2005 SP1 Update for Vista (if applicable)
4. Windows Embedded CE 6.0 Platform Builder
5. Windows Embedded CE 6.0 SP1 (required if PB 6.0 Tools have been installed)
6. Windows Embedded CE 6.0 R2
別緊張,基本上來說,只要你用的是Windows CE 6.0 R2,那么這些東西就都有了。

接下來,我們確認將Visual Studio 2005關閉,然后運行QFE的安裝程序就可以了。如果是在Vista下安裝的話,可能會遇到安裝文件出錯的問題,這是由權限問題造成的。我們可以參考下面的文章解決:
http://support.microsoft.com/kb/950793/en-us
不過我在Vista下安裝時沒有碰到這個問題。
創建.NET Compact Framework 3.5的應用程序
好了,安裝完成后,我們是不是需要打開Visual Studio 2005開始我們的平臺定制歷程了?不,首先還是讓我們先換一臺機器。
換機器干嘛?因為我們遇到了一個邏輯問題——.NET CF 3.5的應用程序在哪里?.NET CF 3.5的應用程序是由Visual Studio 2008開發的,而我們的Platform Builder 6.0是運行在Visual Studio 2005之上的。您可以將VS 2005和VS 2008裝在同一臺機器上,但是我沒有那么做,而是換了臺裝有VS 2008的機器,來進行下面的應用程序開發。
需要說明的是,按照常規,我們應該先用Platform Builder 6.0構建一個CE 6.0的平臺,然后導出SDK,然后再裝有VS 2008的機器上安裝,安裝完成后再使用VS 2008開發一個針對該CE 6.0平臺的應用程序。如果真這么干,拐彎就拐到爪哇國去了。
幸好Visual Studio 2008為我們提供了另一種方式,還是來看一下:

打開Visual Studio 2008后,還是首先選擇File – New – Project菜單項。在New Project對話框中選擇Visual C#中的Smart Device,然后選擇創建Smart Device Project,名字隨便定。
接下來的對話框對于經常看我文章的朋友也會很熟悉:

只是這一次我們選擇的Target platform不是Pocket PC或者Smartphone,而是Windows CE,還要記得一定要選擇.NET CF 3.5。
好了,接下來就進入了IDE的窗口設計器,看起來和普通的WinForm程序沒有太多區別。我們添加了三個按鈕和一個ListBox,還有兩個菜單項。

在第一個Button“Message”里添加下面的事件處理函數:
private void button1_Click(object sender, EventArgs e)
{
MessageBox.Show(Hello,.NET CF 3.5);
}
我承認我沒追求,所有程序不都是從Hello World開始的嗎?為了要突出一下.NET Compact Framework 3.5的新特性,我們還要添加對于LINQ的支持:
private void button2_Click(object sender, EventArgs e)
{
listBox1.Items.Clear();
var numbers = new List
var evenNumbers =
from p in numbers
where (p % 2) == 0
select p;
foreach (var number in evenNumbers)
listBox1.Items.Add(string.Format({0} , number));
}
關于LINQ我就不多作解釋了,記得添加System.Linq的引用,還有:
using System.Linq;
在添加完Linq后,我們還有一個更直接的辦法,就是版本號:
private void button3_Click(object sender, EventArgs e)
{
MessageBox.Show(Environment.Version.ToString());
}
System.Environment中的Version屬性可以很直接的告訴我們當前運行的.NET CLR的版本號。具體細節看MSDN幫助吧。
好了,程序編寫好了,接下來就要運行它了。但是我們的Visual Studio 2008里并沒有Windows CE的模擬器。沒辦法,只好選擇Windows Mobile 6 Professional的模擬器來跑了。
評論