什麼是智慧型裝置?PDA,SmartPhone等MS一系列與手持功能相關的產品都可以叫做智慧型裝置。
可以有很多方法開發與設計PDA等智慧型裝置的程式,這裡只討論.net Compact Framework下的程式設計。所謂公欲善其事,必先利其器,這裡先說明一下如何設定一個PDA的開發環境。
在VS.net2003中已經內建了一個PDA的模擬器,讓我們可以很快的在一台PC機上開發與測試PDA應用程式。這個模擬器名為emulator,預設的安裝位置應該是:C:\Program Files\Microsoft Visual Studio .NET 2003\CompactFrameworkSDK\ConnectionManager\Bin,而在相應的Images目錄下,應該有兩個映像檔案,分別用於載入Pokect PC 2002和Windows CE.net的類比程式。
你可以在VS.net下自動載入並測試這樣的程式(後面講到),這裡先手動的啟動它。
你是不能通過雙擊Emulator.exe而啟動模擬器的,它應該同時載入一個映像檔案,你可以建立一個BAT檔案來啟動它(啟動介面參見後面的):
1c:
2cd "C:\Program Files\Microsoft Visual Studio .NET 2003\CompactFrameworkSDK\ConnectionManager\Bin"
3start Emulator.exe /CEImage Images\PocketPC\2002\1033\PPC2002.bin /Skin Images\PocketPC\2002\1033\ppc2002.xml /Video 352x496x16 /Ethernet true
如果你的PC系統是XP並且在網上升級了SP2,並且系統運行在“實模式”(自己這樣認為的)下,那麼你將得到一個錯誤資訊。如果你連結在Internet上,並且通過錯誤嚮導,你應該可以在MS的網站是找到相關的錯誤資訊並更正它。
或者,查看你的Boot.ini檔案,其中的啟動選項裡或者有這的內容:/noexecute=optin 修改為:/execute
如果還有錯誤而不能啟動模擬器,請刪除所有的啟動選項使它可能像這樣:1[boot loader]
2timeout=5
3default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
4[operating systems]
5multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /execute /fastdetect
6
好了,這樣應該可以運行PDA或者WindowsCE的模擬器了。但或許你並不能成功,因為PC與模擬器的通訊是通過網卡的,如果你的PC機沒有活動的網卡,那麼模擬器也是不能正常工作的。如果你的PC機正連結在Internet上,那麼這個問題已經解決了。如果你是單PC機,那麼你得再安裝MS的
方法:
1、開啟控制台。
2、“添加新硬體”(注意,這裡的中文是我自己翻譯的,可能與你的PC機上的不一樣)
3、點擊“下一步”,當然你是找不到新硬體的。如果不幸你正好安裝了新硬體,那請先安裝好你的新硬體吧。
4、騙電腦說:是的,我已經把新硬體添加到主機主了。
5、尋找硬體類別,當然也是走過場,選擇最後一個(也可能是第一個):添加一個新的硬體。
6、下一步
7、選擇自己安裝新硬體。
8、找到網卡裝置(NetWork adapters),下一步
9、選擇MS公司,Microsoft loopback adapter
10、後面的自己安裝了,下一步,下一步。。。。。
這樣,你在單機上也可以類比PDA編寫程式了。
下面就是一個不成文的Hello,world了。
開啟VS.net2003,建立一個項目,當然一個獨立的工程也行。
選擇C#->Smart Drivce Application(應該是智慧型裝置應用程式)
好了,一個Form應該出來了,加一個Button和一個Lable,讓點擊Button的時候,Lable上的Text為“Hello,world.”
如果這個你做不到的話,下面的就最後不要看了。呵呵,,相信沒有人不會的。。。當然,你最好也添加一個Button,讓它被點擊時退出Form
好了。Ctrl+F5,開始吧。。。(F5也行)
選擇一個模擬器吧,預設你是只有一個模擬器和一個裝置連結的。我這裡有好幾個,呵呵,一會再講怎樣添加模擬器。
VS.net2003預設的是2002,但它好像有點小問題,沒關係,是完全可以運行我們的Hello,world的。
如果你很幸運,你可以看到這樣的一個PDA啟動介面。呵呵,可以玩一下PDA了。。。
請注意,如果你的在VS.net2003下建立的項目,那麼在第一次啟動PDA模擬器時候,會自動給PAD安裝.net Compact Framework.而且在退出模擬器的時候,要儲存PAD模擬器的狀態,否則下次啟動的時候又要重新安裝.net Compact Framework...
如果你是手動啟動的模擬器,上面提到的方法,那麼你的PDA模擬器上是沒有安裝.net Compact Framework的,當然也就不能運行Hello world了。。。
好了,請仔細觀察VS的輸出內容,這時候應該正在啟動應用程式,一會你就會看到:我們的Hello,world.出來了:
請點擊Exit退出程式,否則下一次編譯啟動時會提示錯誤,你無法寫入程式檔案,因為PDA的程式一但啟動後是不關閉的。只有在記憶體不足時,系統才會關閉,所以我們自己做一個Exit,但只是為了調試,真的程式也是不要退出的。原因是與PDA的工作模式相關的。更多的請參考相關書籍了。
更多的用.net開發智慧型裝置的文章我會在後面的學習中寫出來與大家討論。這裡就重新只說明如果安裝並啟動模擬器,以便面開發使用。
Emulator2002的網路設定不是很好,不知道什麼原因,它不能訪問區域網路的IIS。而2003Phone Edition則可以。我不知道為什麼,反正它的網路連結設定都得設定為Work.
2002可以訪問126但不能訪問我的區域網路上的Server.
2003都可以訪問。。。
關於2003的電話版模擬器,可以在MS的網站上下載到,我弄丟了,找一下應該不難。
好了,更多的內容在以後學習到了再寫吧,今天我也只做個Hello,world.
因為PDA可以訪問Web伺服器,而我們又可以在在Web伺服器上添加WebService等一些計算工作大量放在伺服器上的分布式程式,想必這樣的工作模式會是一個很好的新天地。。。。。