第一章
Hello,Windows Phone 7
有時一件事情看上去沒有朝著你預期的方向前進,吧你只需要清除過去的陰影,深吸一口氣,并嘗試以一個新的姿態或新的想法。在高爾夫運動中,它被稱為“重發一球”,在校園運動中,它被稱為“重做”,而在計算機行業,我們稱之為“重新啟動。”
最近的一個重啟是微軟已經重新啟動其新的手機市場方案。憑借其簡潔的外觀,醒目的字體,以及新的組織模式,微軟Windows Phone7不僅代表了與過去的Windows Mobile決裂也有別于目前市場的其他智能手機。 Windows Phone7的設備會由多個手機制造商和網絡供應商共同提供。
對于開發人員,Windows Phone 7也令人振奮,因為它支持兩種流行的和現代的編程平臺:Silverlight和XNA。
Silverlight是Windows Presentation Foundation(WPF)的一個基于客戶端的子集,其給了Web程序員前所未開發能力和控制力,允許在多個平臺和瀏覽器下實現高品質的文字,向量圖形,媒體,動畫組合,復雜的用戶界面和數據綁定在。 Silverlight通過Windows Phone7延伸到移動設備。
XNA的三個字母代表“新的架構”,他是微軟的游戲平臺,同時支持二維為基礎,與傳統的3D游戲的閉環結構的圖形。雖然XNA大都與開發Xbox 360游戲機有關,不過開發人員還可以使用XNA針對PC本身,以及微軟的經典音頻播放器Zune的高清開發。
無論是Silverlight或XNA都是非常好的WindowsPhone7的開發平臺,但程序員有一個選擇。而這一點,就是我們通常所說的“一個富人的尷尬。”
針對Windows Phone7
所有的Windows Phone7應用程序都用.NET托管代碼編寫。雖然在這本書中的示例程序是C#編程語言編寫的,你也可以用Visual Basic.NET編寫Windows Phone 7應用程序。你可以免費下載包含了NA Game Studio 4.0和手機模擬器的Microsoft Visual Studio 2010 Express for Windows Phone,并與Visual Studio 2010集成。視覺效果和動畫您可以使用開發Silverlight的應用程序的Microsoft Expression Blend。
XNA和Silverlight為Windows Phone 7共享了一些庫,你可以在Silverlight中使用XNA的一些庫,反之亦然。但你不能創建一個程序,混合來自這兩個平臺的視覺效果。也許這將有可能在未來,但不是現在。在創建一個Visual Studio項目,你必須決定您的價值百萬美元的想法是一個Silverlight程序或一個XNA程序。
通常你會將選擇Silverlight來編寫你的應用程序或實用工具。這個方案由一些標記和代碼組合。Extensible Application Markup Language稱為可擴展應用程序標記語言,簡寫為XAML和發音為“zammel。”XAML主要用于定義或布局用戶的界面控制和面板。代碼隱藏文件進行一些初始化和邏輯,但一般都是處理控件的事件。 Silverligh是編寫WindowsPhone的富互聯網應用(RIA),包括媒體和網站的最佳選擇。Silverlight for Windows Phone is a version of Silverlight 3 excluding some features not appropriate for the phone, but compensating with some enhancements.
XNA主要是用于編寫高性能的游戲。對于2D游戲,你定義精靈和周圍的背景位圖;3D游戲你定義三維空間模型。XNA內在了包括在屏幕上移動,用戶輸入,圖形對象,同步行等游戲常用的能力。
基于Silverlight開發應用程序和XNA開發游戲是基于他們的方便性,不過對于這樣點并沒有限制。你當然可以使用Silverlight和編寫游戲,你甚至可以編寫使用XNA傳統的應用程序,雖然這樣做有時可能具有挑戰性。
特別注意的是,Silverlight可以編寫一些使用矢量圖形而不是點陣圖形并且對用戶響應不高的游戲的理想選擇。比如一個俄羅斯方塊式的程序可能在Silverlight的工作相當不錯。事實上,您會發現XNA更難實現Silverlight的應用。比如實現一個列表框這樣對程序員來說很 “簡單”的事情,在NXA下簡直是一個酷刑
這本書的最初幾個章節是將Silverlight和XNA在一起描述,后期這本書將分為兩個不同的平臺。我懷疑一些開發人員始終堅持Silverlight而不會還要去學習其他環境。我希望這是一種不常見的現象。好消息是Silverlight和XNA是如此的不同,你可以在他們之間并行穿毫不混淆!
微軟一直將Silverlight定位為前端或云“界面”,所以云服務和Windows Azure的Windows Phone7開發的重要組成部分。Windows Phone是一個可以利用位置感知并獲得地圖以及Bing搜索和Windows Live服務的“云就緒“程序,Xbox Live也是可用的云服務之一,這使得XNA的網上多人游戲方案,也可以通過Silverlight的應用程序訪問。
Windows Phone Marketplace提供你的Windows Phone7應用銷售服務,注冊服務,并證明方案滿足可靠性,效率和良好的行為的最低標準部署。
Windows Phone 7與過去的Windows Mobile完全不同。但是,由于對Silverlight、XNA對C#的支持,所以你在這三種技術的投資時得到了延續和平衡。Silverlight和XNA已經被證明是強大的和流行的平臺。許多熟練的程序員已經通過了解網上社區的信息熟悉了其中一個框架或兩個。 C#中已成為許多程序員最喜歡的語言(包括我自己),開發人員可以使用C#共享Silverlight和XNA之間的方案和庫。
硬件基座
有經驗的開發人員比較過去的Windows Mobile設備后會發現微軟的Windows Phone7策略的重要轉變。微軟開始非常給力的定義硬件規格,通常稱為“基座”。
Windows Phone7設備各將有一個一致的屏幕大小。 (第二個屏幕規模預計在未來。)許多其他的硬件功能,保證每個設備上存在。
手機的正面由一個多點觸摸顯示屏和三個一般在顯示屏下方的行上的按鈕組成。從左至右,這些按鈕叫返回,開始和搜索:
l 返回:程序可以使用這個按鈕實現他們的導航需要,這個很像Web瀏覽器的回退按鈕。到達了程序的主頁,該按鈕會導致程序終止。
l 開始:這個按鈕將進入手機的開始屏幕。程序運行時不能用。
l 搜索:改按鈕來啟動搜索功能。
初始發行的Windows Phone7設備的有一個480 × 800像素的顯示空間。在未來,320 × 480像素的屏幕也將發行。Windows Phone7目前沒有其他屏幕大小選擇的計劃,所以顯然這兩種手機的屏幕尺寸將有非常重要的地位
從理論上講,最好的程序應該適應任何屏幕尺寸,但是這并不總是可行的,尤其是對游戲開發。你可能會發現自己專門針對這兩種屏幕尺寸進行路徑邏輯和布局出來,你必須依賴不同的XAML文件。
一般我們簡稱為“大屏幕“和“小屏幕“。兩者的最大屏幕的水平和垂直方向的共同點是160,所以你可以想像,作為160像素平方倍數的兩個畫面:
我用肖像模式(portrait mode)描述這些屏幕,因為portrait mode通常是智能手機的默認設計。原來的Zune的屏幕是240 × 320像素的Zune HD是272 × 480。當然,手機可以旋轉,將屏幕橫向顯示。某些程序可能需要手機在一定的水平方上。
你完全可以控制你需要支持的方向。默認情況下,Silverlight應用程序以portrait mode呈現,但是你可能會需要你的Silverlight應用程序調整自己的方向變化。新的事件支持,可專門用于檢測方向的變動,有些方向變化是自動處理的。與此相反,游戲程序員通常可以強加給用戶一個特定的方向。XNA程序默認使用風景模式(landscape mode),但它很容易重寫。
在縱向模式下,小屏幕是一個老式的VGA屏幕的一半(即640 × 480)。在橫向模式下,有一個大屏幕的WVGA尺寸,有時也被稱為(“寬VGA”)。在橫向模式下,小屏幕的高寬比3:2或1.5,大屏幕是五時03分或1.66長寬比...。這些都不符合電視縱橫比,標準清晰度4:3或1.33 ...和高清晰度的是16:9或1.77 ...是。 Zune的高清屏幕的寬高比為16:9。
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
