2014/03/18 實用 Windows Phone Apps 設計開發技巧解密 - 課程投影片及範例原始檔
[課程內容分享] 2014/03/18 實用 Windows Phone Apps 設計開發技巧解密
- 1476
- 0
- Windows Phone
2014/03/18 實用 Windows Phone Apps 設計開發技巧解密 - 課程投影片及範例原始檔
最近在MSDN論壇上看到有人發問一個問題:「要如何在手機上畫出3公分的直線?」。
乍看之下這應該是一個再也簡單不過的事情,啊不就拿尺來量一量就好了!? 連小學生都會的事情啊~~(被打)
不過事情往往沒有想像中那麼簡單.... 這個問題牽扯到不同裝置有不同的解析度,所以,同樣都是三公分,但是在不同的裝置上面的像素可是大不相同的啊~~
前面的兩篇文章簡單的介紹了基本的Web Service與Client端與SOAP Extension的加/解密應用,而這次,我們就簡單的來針對SOAP Extension的運作方式來做點更進一步的瞭解。
這次我們要真正的動手實作出一個可以將訊息進行加/解密的SOAP Extension功能。
雖然Web Service早就不是什麼新玩意兒,透過SOAP來進行資料交換/傳輸也不是什麼新奇的科技,不過還是有個和Web Service相關的「玩具」想要和大家分享一下。
這陣子以來有不少朋友問到關於Kinect for Windows SDK 1.0版中API改變等等相關的問題,而且微軟也在前陣子發行了商業版的Kinect for Windows的裝置。
不過,因為工作及我個人時間安排的關係,一直遲遲沒有機會去玩1.0版的Kinect for Windows SDK,沒想到就在2012年的5月21日,Kinect for Windows SDK也來到了1.5版了~
國外有個好心人,幫Developer們寫好了一個超方便的Library,只要一行程式碼,就可以讓我們不用自己動手去修改控制項的Template,而能「有條件」的在App中決定要使用Dark Theme或是Light Theme,而且無視使用者的手機設定。
這是2011.12.05的Windows Phone Mango 開發實戰課程的錄影、投影片以及相關範例檔。
前一陣子開始學習ASP.Net MVC3,不禁為MVC3裡面內建的許多方便的機制深感讚嘆,例如在Controller中對Model進行編輯所使用的Action預設範本,都會去檢查ModelState.IsValid,來確保Model的正確性。
這是個對開發者來說很方便的機制。然而,當ModelState.IsValid的值為False時,要慢慢去爬出ModelState中的每組值,就是一件有點累人的事了。
日前參加了點部落與微軟舉辦的Kinect for Windows創意應用競賽,在研究和實作的過程中看了不少國內外高手的作品之後,驚然發現 ~ 咦!?怎麼沒有一個像是Xbox360上的遊戲一樣,可以用比較接近人形的形狀來輕鬆顯示使用者骨架的控制項呢?
隨著Windows 8 Developer Preview釋出之後,Visual Studio 11 Developer Preview也跟著跟大家見面了(不是Express版喔,這次釋出的可是完整版!!)
接下來,就跟各位分享以在虛擬電腦中的Windows 8 Developer Preview透過ISO檔安裝Visual Studio 11 Developer Preview的過程~
雖然說自Windows Vista採用了AERO之後,Windows作業系統中應用程式預設的視窗就美觀了不少,但是對於喜歡應用程式有整體美的設計師來說,使用預設的視窗外觀對某些WPF應用程式來說,或許還是有可能造成破壞整體設計感的情況發生。所以,把預設的視窗外觀拔掉,讓設計師們更能展現設計的才能,針對不同的應用程式設計出不同的視窗外觀,想像起來是不是蠻美好的一件事呢?
最近在看ASP.Net MVC3相關的東西,為了求方便,所以想說直接建立一個Windows Server 2008 R2為作業系統的環境,一方面當作開發的環境,另一方面也好用來模擬到時候開發完後佈署的環境(又是因為懶....)。作業系統和軟體以及其他相關套件都安裝好了之後,當然免不了要實作一些小範例來加速了解整個架構和實作的方式。就這樣一路很順的建立好了一個支援HTML5的ASP.Net MVC3專案,直接使用專案樣版中預設提供的內容,在Visual Studio 2010中很開心的按下了F5....咦!!!?Exception!! 而且是出現在js檔裡面!!?
經過了前面兩章的暖身,這次我們就要來對Kinect最威能的部份-「身體感應」來做個基本的了解啦!!不然只拿Kinect來拍照的話對Kinect來說可是一種天大的污辱啊~~
當我們在開發應用程式的時候,常常會把應用程式的設定值放在App.config檔中。不過,如果是要發佈出去的時候,預設的設定值就不見得適用於每個使用者了。這個時候,如果能讓使用者在安裝我們的應用程式的過程中,可以透過介面,就能輕鬆的修改App.config的內容,要比要求使用者在安裝完應用程式之後,自行以記事本去修改App.config檔來得要親切而且專業得多。不過,該怎麼做呢?讓我們看下去!!
在上一篇文章中跟大家介紹了透過Kinect SDK取得攝影機擷取到的畫面的方式。雖然沒寫多少程式碼,不過,可能會有朋友覺得只是要拿個畫面而已,就得做這麼多事、寫這麼多程式是一件很累人的工作....(好吧,其實是我自己懶)
所以今天就要來介紹幾個可以加速開發的第三方元件,Let's Rock!!
上次跟大家分享了如何在Windows 7裡面使用Kinect,也順便介紹了幾個Kinect SDK中內建的小範例。不過,身為一個稱職的工程師,想要自己也動手來寫一個,是很合理,也很合邏輯的。
所以,這次就來跟大家分享如果自己撰寫支援Kinect的應用程式喔!!這次,我們要使用WPF搭配C#,來建立支援Kinect的應用程式!!一切當然都要從基礎開始,我們就從取得拍攝到的畫面開始吧!!
常常逗留在點部落的朋友們應該會發現,最近點部落和台灣微軟合作舉辦了一個Kinect for Windows創意應用競賽,只要想出Kinect在Windows上的相關應用並且實作出來,就有機會奪得豐厚的獎金和Tech.Days Taiwan 2011 的門票一張!!
不過這個Kinect for Windows SDK究竟應該怎麼玩呢??讓我們看下去~
除了前面介紹的三種方式之外,這篇是這一系列文的最後一種方式了。只要簡單的透過XmlDataProvider和強大的DataBinding的功能,就一樣可以做出有多語系功能的WPF應用程式。另外,這個方式也一樣能達到執行時期動態的語系切換功能喔!!
廢話不多說,直接開始吧!!
已經用過WPF/Silverlight的朋友們應該對於ResourceDictionary不陌生。不過,ResourceDictionary除了用來存放Style、Storyboard等等資源之外,也可以拿來實作多國語系喔!!而且透過ResourceDictionary的方式來實作多國語系,一樣可以達到執行時期動態的語系切換功能!!
廢話不多說,以下來來跟各位分享這個簡單的方式,也歡迎有興趣的朋友跟著一步一步做看看喔!!
習慣.Net Framework平台的朋友們應該對Resources.resx檔不陌生,在一般的Windows Form應用程式或是ASP.Net應用程式中都可以透過它來實作並且輕鬆的維護不同語系中所需要使用的資源;當然,在WPF中也可以這樣使用,這一篇就來跟大家分享在WPF中使用Resources.resx搭配資料繫結的好幫手-ObjectDataProvider來做到多語系應用程式的實作!!而且從這個範例開始,我們要來實作執行時期動態的語系切換功能!!
多語系的實作在各種平台和應用程式間一直是個很重要的環節,當然對WPF來說也不例外,接下來的幾篇文章,就要跟大家分享在WPF中,實作出支援多國語系的幾種方法。
第一篇就由在MSDN上也查詢得到的方法-透過LocBaml.exe來實作出多國語系的WPF應用程式來打頭陣。
如果我們使用Visual Studio中內建的專案樣版建立WPF專案,並且按下F5執行,就會看到專案中預設的MainWindow直接跳出來,這是很合理,也很合邏輯的一件事(這不是廢話嗎?!)。不過,寫過Windows Form應用程式或是寫過Windows Console Application的朋友們可能就會好奇:「我如果想在命令列輸入一些啟動參數的時候怎麼辦?」,抑或:「我在WPF中可以使用Console.WriteLine()並且有個簡單的介面追踨一些變數的值嗎?」;甚至是:「如果我想要做一個精簡模式,直接從命令列下指令,就能完成特定的工作;這樣WPF辦得到嗎?」。關於上面提到的問題,很開心的告訴大家:當然可以!!
Windows Phone Developer Tools 7.1 Beta已經出現了好一段時間了,隨著它的出現,MVVM Light Toolkit也推出了相容於Windows Phone 7.1 Beta版的更新讓Windows Phone的開發者使用(基於這次的Windows Phone 7.1 Beta中改動了不少的Library,原來的MVVM Light Toolkit for Windows Phone 7.0提供的Library和專案範本可是沒辦法硬套在Windows Phone 7.1 Beta專案上的喔!!)。
經過[IADP]抄傢伙~準備上工啦 - 下載及安裝IADP SDK一文的介紹,大家應該都對SDK有了基本的認識了,不過,如果每次開發都要手動加入參考,到了要測試的時候,又得手動把Debugger打開的話,應該有點虛(尤其是對我種懶人來講)~所以這篇就來介紹在上一篇裡面刻意被忽略掉的Plug-in啦~
在[IADP] Intel AppUp Developer Program簡介一文中簡單的介紹過了IADP,這次就來跟各位朋友們分享進行開發前最重要的步驟:下載及安裝IADP SDK。
我們常常透過由ItemsControl衍生出的的控制項,透過Silverlight或WPF強大的資料繫結功能,顯示一整個集合的資料。對於設計師來說,使用Blend來設計資料被繫結到某個控制項中的外觀,是再簡單也不過的。但是對於程式設計師來說,如果是對Silverlight或WPF還不夠熟練的話,要從程式中去取出某個被繫結後的控制項,可能就會在剛開始的時候碰得滿鼻子灰了。
在[MVVM]初步認識MVVM設計模式一文中,簡單的介紹了MVVM設計模式,相信比較行動派的朋友們應該都很迫不及待的想要動手透過MVVM設計模式來讓自己的系統架構和程式碼更加的乾淨漂亮了吧!!
在上戰場殺敵之前,必需把「傢私」準備好,這一篇文章就來跟大家分享要進入MVVM設計模式之前所需要進行的準備。
雖然說WPF、Silverlight和Windows Phone 7(也算是Silverlight啦)三大平台可以透過原生的XAML檔和CodeBehind的cs、vb程式碼進行到最基本的設計與程式邏輯分離,但是某種程度上來說,這樣的分層方式還是比不上MVC設計模式對階層的切分來得乾淨(對資料模型和使用者介面操作的程式碼還是都放在同一個CodeBehind檔中),也相對的較難使得使用者介面設計人員和程式設計人員做到更乾淨的分工。
這時候,一個能用在WFP、Silverlight和Windows Phone 7上,能做到軟體分層的設計模式就顯得很重要了,所以接下來就來介紹這次的主角--MVVM。
有在使用MVVM開發專案的朋友們應該都對Galasooft MVVM Light Toolkit不陌生吧~目前該Toolkit在Codeplex上的最新版本為MVVM Light Toolkit V3 SP1 (4)。
因為最近著手在研究Windows Phone上應用程式的開發,因此就「順便」的想說也來使用MVVM模式開發Windows Phone應用程式好了。
下載了CodePlex上最新版本下來,也依照官網上的安裝說明進行安裝的程序之後,開心的使用了Expression Blend要來建立一個新的MVVMLight For WP7專案的時候,一切看起來好像都很順利,不過....
通常在實作系統的時候,為了配合不同的需求,可能會需要自訂游標的形狀,雖然WPF中有Cursors類別可以用,但是提供的游標仍然有限,所以用圖片來當作游標,或是用XAML寫出來的UserControl來當作游標,似乎就成為不錯的選擇。
這次就來介紹怎麼在WPF中覆寫原來的系統游標,以自訂的游標取代。
如果使用Visual Studio 2008/2010針對32位元的WCF Service Library進行Debug時,Visual Studio會很貼心的自動幫我們以Microsoft WCF Service Host來承載該Library,以讓Debug的動作能順利進行。這個動作在一般32位元的作業系統上執行通常是很正常,也很順利就能Work;不過,若是改用64位元的作業系統,要執行Debug的動作時,就不一定會這麼順利了....
通常寫要給WPF或是Silverlight用的Action、Behavior還有Trigger都會是比較偏工程師的工作,但是VS2010預設沒內建這些檔案的樣版,折衷的作法一般就是先透過Blend開出檔案,再以VS2010編輯,但是每次都這樣太累了。
我幫有需要的人準備好了可以直接安裝的Extension檔,以後就能直接建立這幾種檔案啦!!
寫程式其實也是有規矩在的,尤其是要團體協同開發的時候,如果每個人使用的規則都不一樣,那要求每個人看得懂別人的程式碼,真的是會要了人的命。
像是命名空間、類別、變數、檔案命名、控制項命名,其實都要去訂下命名的規則,對團隊來說才會容易溝通。