Windows UWP 開發 - 前言

來源:互聯網
上載者:User

標籤:

    Windows 10 發布近一年了,Visual Studio 2015 也已推出 Update2,UWP app開發不僅時機成熟了而且也已經很方便了。所以我打算寫一系列的文章來記錄我是如何開發 UWP app的,對於我自己來說算是筆記,同時也供其它朋友參考。UWP app和之前的 WPF、Silverlight 非常相似,其 UI 部分基於 DirectX 技術,使用 XAML 描述構建,即靈活效果也很出色。邏輯代碼支援 C++、C#、VB 和 JavaScript,因此對於絕大多數程式員來說開發語言方面沒有障礙。當然首先要說明的一點就是,這些語言所能提供的功能並不相同。使用 C++ 開發可以支援全部 UWP 和絕大部分 Windows 功能(當然有些 Windows 功能不允許在需要提交到 Windows 商店的應用中使用,只能在通過側載方式部署的應用中使用)。使用 C# 和 VB 是一樣的,這二者都屬於 .Net 語言,可以調用 .Net 類庫,但有些功能是不支援的,或者說在沒有第三方類庫的情況下不能直接支援。首當其衝的就是 DirectX 這部分,要想通過 .Net 來使用 DirectX 必須依賴第三方類庫。JS 受到的限制恐怕是最多的,因此我不會在文章中使用這一語言。在關於 UWP 的文章中我將主要使用 C++/CX(並盡量使用標準 C++ 和 C++ 標準庫,C++ 文法將基於 C++11 標準,還會使用微軟的 PPL 並行模式庫和 AMP 庫以及 WIC 影像處理組件),可能會穿插一些 .Net,UI 方面則為 XAML 和 XAML+DirectX。當然主要是 XAML,不會詳細討論有關 DirectX 的內容,至少不會在 UWP 的文章中討論。原因很簡單,DirectX 的使用在 UWP 和 傳統 Windows 應用中並沒有什麼區別,而在 UWP 文章中我想要記錄的是 UWP 所特有的東西。另外我也不會去討論有關 Windows 10 IoT 方面的內容,只包含與 Windows 10 和 Windows 10 Mobile 有關的內容。

    首先說說開發平台和開發工具。要想開發 UWP app首先當然必須得有 Windows 10,在其它 Windows 版本上是無法直接開發 UWP app的。而且如果開發的應用要提交到 Windows 商店上面去,那麼千萬不能安裝內測版 Windows 10,一定要在正式版本中開發。這一點微軟也在開發說明中提到了,因為有些本身沒有任何問題的代碼會因為內測版的問題而崩潰,而有些代碼在內測版上沒問題卻不能在正式版上運行。所以開發用的 Windows 10 務必使用正式版本,而且不要在開發用的 Windows 中裝那些所謂的最佳化軟體,此類軟體很可能會引發一些莫名其妙的問題。另外 UWP app需要支援觸摸操作,所以準備一台測試用的平板電腦還是很重要的(測試用的裝置切勿安裝亂七八糟的東西)。至於 Windows 手機嗎,現狀就是用的人的確是很少啊,而且 Windows 上的模擬器基本上已經可以滿足需求了,如果是測試觸摸操作,在平板上也可以測試,所以是不是需要一部 Windows 手機就仁者見仁了,有則更好吧。至於 HoloLens 還是暫時使用模擬器吧,而且我暫時也不會討論與 HoloLens 有關的內容。

    Visual Studio 2015 當然是必不可少的,沒這個是沒辦法開發的,至少對絕大多數不想自找麻煩的程式員來說是如此。Community(也就是社區版)是免費的,和 Professional 版的功能基本一樣。為:https://www.visualstudio.com/downloads/download-visual-studio-vs。下載時一定要選擇 ISO,並且在下載後務必核對 SHA-1 值,因為很多人下載到的 ISO 出現了損壞,安裝損壞的 ISO 不僅會安裝失敗,而且可能會導致重裝都失敗,最終不得不重裝作業系統,所以安裝前務必核實 SHA-1 值。安裝時盡量只裝自己需要的部分,不要一股腦的全部勾選上,中國大陸地區的使用者切勿勾選標有“第三方”字樣的內容。如果下載的 ISO 是中文版的,那就不需要再去下載安裝中文語言套件了,但是可以選裝英文等其它的語言套件。


    15 年前我第一次獨立開發了一個應用,那是個人力資源管理軟體,那時開發軟體真的是很麻煩,基本上沒人去仔細斟酌 UI 設計,能用就行了,或者說能用就已經很不錯了。但現在 UI 互動介面已經變得越來越重要了,有很多人是專職的 UI 設計師。Visual Studio 在開發介面方面一直做的很不錯,XAML 本身就已經很易用了,而且 VS 還提供了更直接的滑鼠操作。不過很多 UI 設計師更喜歡 Blend,尤其是在做一些動畫效果時。Blend 已經包含在 VS 中了,無需單獨下載安裝,安裝 VS 時會同時自動安裝 Blend。我的文章還是會以 VS 為主,而且會直接使用 XAML,而不涉及使用 VS 設計器方面的內容。

    如果要在遠程裝置上調試還需要下載遠程工具,網頁地址和 VS2015 的是一樣的,在左側選擇就是了。至於下載 x86、x64 還是 ARM,這取決於遠程裝置上的作業系統,比如要在裝有 Windows 10 x86 的平板電腦上調試,那就下載 x86 版本,如果是 x64 的 Windows 10,那就下載 x64 版本。


    Windows 10 UWP 官方支援的廣告平台目前就只有兩個,一個就是微軟自己的廣告,另一個是 AdDuplex。微軟廣告的 SDK 可以從這裡下載:https://visualstudiogallery.msdn.microsoft.com/229b7858-2c6a-4073-886e-cbb79e851211。或者到這裡(https://developer.microsoft.com/zh-cn/windows/monetize/ads)選擇“擷取 SDK”。AdDuplex 的 SDK 在這裡:https://visualstudiogallery.msdn.microsoft.com/6930860a-e64b-4b46-9d72-62d7fddda077。

    開發人員帳號(微軟廣告已經整合到開發人員賬戶中了,無需單獨註冊)需要到微軟那裡去註冊,一次性收費(通過雙幣或美元信用卡),個人帳戶約 19 美元,公司帳戶約 99 美元,不同國家的註冊費用因匯率而略有不同。登入位址為:https://developer.microsoft.com/zh-cn/windows/programs/join,註冊前最好先看看這個https://developer.microsoft.com/zh-cn/windows/programs/faq。免費的學生開發帳號自從費用下調之後好像就取消了,所以要想提交應用到 Windows 商店,就得老老實實的繳費。當然也可以不提交到商店,比如側載或在自己的裝置上學習練慣用,這個是不需付費去要註冊開發人員帳號的。獲得開發人員帳號後要注意遵守協議,刷榜等行為會受到封號處罰,一旦被封是很難申訴解鎖的,只能重新繳費註冊新的帳號。而且如果是帳號被封,那麼此帳號下的所有應用都將作廢,也不能再從中獲得任何收入。當然一般情況下是不會有這樣嚴厲的處罰的,最多也就是應用被下架勒令整改。因為我自己沒有遇到過下架或封號處罰,所以沒有這方面的經驗和大家分享。

    註冊 AdDuplex 帳號直接到 AdDuplex 網站上去就行了,網站很簡潔,一目瞭然,無需任何費用和信用卡。http://www.adduplex.com/

    如果要使用微軟地圖,在獲得了開發人員帳號之後,還需要在每個應用中單獨註冊,這個以後再說,而且這個同樣也不收費。

    最後談談關於獲得開發協助方面的經驗。關於 UWP 開發,MSDN 上的內容(文檔:https://developer.microsoft.com/zh-cn/windows/windows-apps,樣本:https://github.com/Microsoft/Windows-universal-samples,注意微軟會不定期更新樣本)是非常豐富且充足的,但正如之前在英文 MSDN 論壇上一位 MSFT(也就是微軟員工)所說的那樣,“文檔散落的到處都是”,搜尋都很困難。另外最糟糕的一點就是有很多文檔雖然有中文版,但內容卻和英文版本不同,所以看 MSDN 還是得看英文版(如果是中文版的,把地址中的 zh-cn 換成 en-us 就變成英文版了,反之也一樣),至少得對照著看,只看中文版是不行的。有時英文版中有範例程式碼,中文版卻沒有,有的是英文版是針對 Windows 10 的,但中文版卻是針對 Windows 8/8.1 的,還有一些是翻譯上有問題。如果在開發過程中遇到問題可以去 MSDN 開發人員論壇提問,中文論壇為:https://social.msdn.microsoft.com/Forums/zh-CN/home,英文論壇為:https://social.msdn.microsoft.com/Forums/en-us/home,在中文論壇上提問時需要用中文,在英文論壇上提問時必須用英文,在中文論壇上用英文提問得到的回複會很少,而在英文論壇上用中文提問則根本得不到回複。其它的英文論壇還有:http://www.codeproject.com/,http://stackoverflow.com/,等等。論壇上的回複有時可能會比較慢,所以要有耐心,而且節假日一般是很少有人回複的,提問盡量選擇在工作時間,長期沒人回複或沒有有效回複的可能性也很大。再有一點需要注意,論壇上的回複,包括 MSFT 的回複都不一定 100% 正確,包括像我這樣的部落格裡面的內容也不能保證像經典教科書那樣權威,畢竟都是隨手寫的東西,沒有反覆仔細論證過,何況教程上有時還有錯誤。因此千萬不能養成直接抄襲的習慣,別人提供的參考用的代碼一定要自行測試一下,而且很可能需要根據自己的項目來調整修改。在此再附上一個連結:https://github.com/,這裡提供了很多非常有價值的開源第三方類庫,多數品質很好,但也並非都有保障,因此使用時還是要多多測試一下。有一點要注意,微軟和 MSDN 論壇都不為任何第三方類庫提供任何支援。在我的文章中可能會提到一些知名的第三方類庫,但也不會深入去討論這方面的內容。

    本文的內容對於已經入行的 Windows 開發人員來說肯定是膚淺了,但對於正準備開始 UWP 開發的朋友來說應該還是會有些協助。不管怎樣吧,最終還是那句話,轉載請註明出處。

Windows UWP 開發 - 前言

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.