2011年9月28日 星期三

千里之行,始於足下...

今天早上,因為一時興起,到住家附近那個有湖的公園,一早步行上山,沿路蟲鳴鳥叫,難得清晨的乾淨空氣,精神很是清爽。

到了山頂,發現原來這座山也不是挺高,以前從公園湖邊往上看去,總是不知道山裡面是什麼,這次親自走一遭,終於算是體驗了一下這個步道。

沒想到住在這邊這麼多年,居然一直到今天,才有機會登山看看,從山上往下看的視野果然不同,沿途一邊思想最近手上的專案、公司的產品、以及未來在資訊技術上的改變與相關的因應之道,還有接下來準備整理學習的新技術...等,一邊步行、一邊思索;清晨登山,也算是頗有所得。

回頭想想,資訊技術的學習,似乎也是如此,有很多新(或其實不是很新)的技術,總是在我們身邊晃來晃去,有時候聽到朋友說(Ruddy老師最常幹這種事情,到處跟人說,最近有哪些新技術很有趣),但自己礙於時間,總是沒有辦法親自去試看看,從新穎的程式設計方法論、絢麗的展示層技術、或是某個哪個專案控管機制概念...等,我們常常都是聽的多,自己實際動手做卻來得少。

偶然一天,有機會下手,才發現其實並不如自己想像的那麼困難(相信我,很多書籍或課程把一門新技術描述的很難,絕大部分狀況都是作者和講師的問題,技術本身可能一點都不難),自己資質沒那麼差,只是過去並沒有真的把心思放在這裡,以至於似懂非懂。

很多路,得自己走過,才會有感覺。一旦你走進去,不管是一條路,還是一門技術,你才能夠去體驗、感受,進而才能評斷出優劣與利弊,在對前面的路感到迷惘的時候,很可能暫時放下思索,直接走出去,沿途所見常常能夠刺激你找到更寬廣的路。

對未來,或新的技術,想要挑戰看看嗎? 不妨,就從今天,從身邊的小山開始...

2011年9月27日 星期二

[推薦] Donma寫的...如何在WP7的Map Control當中,顯示中文化地圖...

最近大夥玩WP7 Mango玩的不亦樂乎,開始體驗Windows Phone在生活當中的強大功能與應用,但是在開發層面,目前最大的困擾就是內建的WP7 Map control,實在是好用到不行,包含支援所有的手勢和相關功能,但殘忍的是,居然不支援中文,扼殺了廣大台灣開發人員的創意,而我在研討會介紹的時候,也因為沒有中文顯示,顯得有些美中不足。

但是最近看到一篇Donma寫的文章,透過相當漂亮的作法,解決了這個問題,如果你對WP7或Silverlight應用程式地圖或導航開發有興趣,但苦於Map Control不支援中文,這篇文章可以說是救星了:
http://www.dotblogs.com.tw/junegoat/archive/2011/07/11/windows-phone7-bing-map-chinese-popo.aspx

我順手把測試的專案放在底下這個位置:[下載] 有興趣的朋友們可以參考。


後記:
回想和Donma的認識,應該是七年前了,當時他是大三的學生,而我則開始在資訊教育訓練和著作上有一些耕耘。那時候透過一個朋友的介紹,第一次看到Donma對於程式設計的狂熱興趣與強大的企圖心,我今天回想起來當時的情境,還是覺得這個形容詞算是貼切,一點都不誇大...

幾年後,他畢業了,過了一兩年,突然在很多微軟的研討會場合看到他,沒多久他也是微軟MVP的一員了,而現在他任職的公司則是微軟重要的合作夥伴,在公司中他也擔任重要且關鍵的開發任務...

我得說,這正是一個軟體開發人員精彩的成長歷程,從Donma身上我看到過去我曾寫過的文章『關於 如何快速增進程式功力』中所說,開發人員應該培養自己解決問題的能力的最佳例證。才幾年的時間,從學校的學生蛻變成專門解決他人問題的MVP,並且在軟體公司當中獨當一面,在如今景氣與趨勢變化迅速的年代,很多大學畢業生面對就業的困擾與憂心,希望政府提供幫助或是振興就業市場,但是別忘記,與其期待別人施予援手,其實自己才是開創未來前途最重要的關鍵因素。

Keep Walking~

2011年9月24日 星期六

困擾我的線...和藍芽斷線

線路,一直是很困擾我的問題。
桌上從USB、滑鼠、手機、充電器、螢幕...全都是線...你知道,這很煩的。
有的線不夠長,你還得弄延長線,有的線太長,你還得拿個橡皮筋什麼的把它捆起來,這也很煩。

所以如果可以,我盡量讓設備不要有線。
最近滑鼠左鍵被我按壞了(彈不起來),所以我只好再買一顆,這次我買了藍芽滑鼠,不用接接收器的那種(因為USB很寶貴,況且已經插滿了),買來,接好,可以用。

不過似乎移動沒有有線的滑鼠那麼順,沒關係,其實差異很微小,幾乎感覺不出來。
但發現一個嚴重的問題,就是擱著幾分鐘之後,XX,他不會動了>_<

try了幾次,發現是NB上的問題,每次我似乎都得重開藍芽,滑鼠才會醒過來,因此我找了一下,到底是哪邊的問題,最後....
電腦-->滑鼠右鍵-->管理-->裝置管理員-->Bluetooth無線電-->Generic Bluetooth Adapter-->滑鼠右鍵-->內容-->電源管理:


把那該死的『允許電腦關閉xxx以節省電源』取消掉,搞定。^_^

2011年9月23日 星期五

Windows Phone 7(WP7) - Mango(7.1) 中文 Apps 上架經驗

最近配合台灣成為全球第一個Mango Release的市場,開始將過去在微軟Marketplace上的一些Apps改成中文版,首先要提醒同學們注意的是,在現在的Mango版本App上架流程中,Assembly Infomation的Neutral Language不得保留空白(7.0時可以),你必須選擇你的Target Marketplace 的Language,因此我要上台灣市場,所以底下選的是:Chinese (Traditional, Taiwan)




請注意先前有學員測試,選擇Chinese (Traditional),怎麼上傳也傳不上去,App Hub始終跟你說Connect fail(詭異的訊息),改成 Chinese (Traditional, Taiwan) 就OK了,這個問題目前只有一位同學回報,如果未來有碰到類似狀況,請update讓我知道...

當你在Neutral Language 選擇了 Chinese (Traditional, Taiwan), 則你的App的 Description就可以先(只)寫中文,如果有勾選上架全球市場,則可考慮後面補上一段英文Description,例如:
-------------------------------------------------------------

這支App的功能是xxxx, 是一隻非常讚的App.....
改版歷程:
 v1.0 : xxx
 v2.0 : zzz

English Description:
This is a awesome App, for...
Version History:
v1.0 : xxx
v2.0: zzz
-------------------------------------------------------------
目前我差不多都是照上面這樣填寫Description...

總的來說,Mango機在台灣上市了,台灣的Marketplace也開放了,中文的App也可以上架了...萬事俱備,只剩你的加入了~ ^_^

2011年9月21日 星期三

[範例程式] Windows Phone 7.1 Mango 自訂動態磚範例

底下的這個範例是TechDays 2011研討會時,我Demo的WP7.1當中,自訂動態磚的操作,可以配合先前的教學影片一同觀賞。
[範例] 下載

[教學影片]
109 Tiles動態磚的使用介紹
這支影片當中介紹的是WP7當中相當重要的動態磚機制,我們介紹了7.0中的Application Tile以及7.1 Mango版本當中的Secondary Tiles。在WP7.1 Mango的版本當中,開發人員可以自由的透過程式碼建立Secondary Tiles,可以新增、修改或刪除,也可以自由地指定Tiles上的圖示、文字標題與數字等資訊。用戶從Start畫面點選Tiles也可以直接連入App,並且帶入參數,是一個相當好用的機制。

[範例執行展示]

2011年9月16日 星期五

Windows 8 Metro Style Apps開發...

Keynote新聞介紹  <---Windows 8 的中文介紹

要如何開發Windows 8 Metro Style 的 Apps呢...想嘗鮮的朋友可以看這裡...
(好像好像Silverlight啊~)

忙完Techdays 2011之後...

今年TechDays和過去一樣,會場依舊好多人,走道間依舊是嘶聲吶喊、拼命想刷你卡片的廠商,穿梭在人群中的,當然還是不乏讓人眼睛一亮的展場ShowGirls...

今年兩堂Windows Phone 7的課蠻開心的,可以看到平常在FB社團裡面才看得到的朋友們,這樣的大會也讓平時忙碌的講師們有難得的機會這樣聚在一起,說真的,參加了幾年下來,雖然每年都在備課時搞得天昏地暗,但講完之後的輕鬆和愉悅,以及和學員講師們互動的心情,也是少有其他經驗能比擬的。

和will保哥聊起,彼此好幾年前在台下當聽眾時的心情,Ruddy前輩則一直說...好多好年輕的講師啊, 一大堆講師他都快不認識了...其實從某個角度看,或許這也是一種傳承,講師中有在台上始終屹立不搖的大師,也有今年第一年登場的猛將,就是這樣的組合,才讓整個大會有著不同的激盪。

每次從台上往下看,學員中總是有每年都參加我的場次的朋友(特別是來自台中的幾位),每年這時候的聚集,似乎已經是一種不需言語的默契,有這樣的學員在總是能讓講師在忙亂中立刻像吃了定心丸一般的穩定。當然學員中也有第一次見面的新朋友,甚至遠從澎湖來的學員(很感謝您的熱情參與和配合^_^),一個年度盛會的成功,其實學員的投入才是最重要的關鍵。也很感謝學員很認真地讀完了PDF書稿,給我不少的Feedback。

在TechDays的前幾天,剛好跟網友們在FB中聊到,其實這個訊息爆炸的時代,到處都是學習的資源和管道,我們也錄製了非常多的教學影片,撰寫了不少的文稿或blog中的文章,其實學員即便在地球的另一端,也能夠迅速地掌握最新的技術。

因此,願意放下手邊的工作,參與三天的課程,顯然已經不只是對技術的熱情,更多是對未來的期待以及投入社群和大家一起互動的渴望,所以我很希望在課程的分享當中,更多一些和學員之間的互動,我也很建議學員,可以多認識身邊的其他技術夥伴,畢竟這是一個相當難得的場合,讓全台所有IT/開發人員能夠共聚一堂,不僅僅是垂直的技術學習,橫向的技術分享將是更無價的。

希望在今年的大會中,每一場次的課程都讓您有所收穫,我會在blog和fb.studyhost.com陸續把相關的內容持續post上來,希望對大家有幫助,期待下一次再見面。

2011年9月13日 星期二

Techdays Taiwan 2011

感謝大夥兒熱情參與今天的TechDays Taiwan 2011研討會,
說好的相關資源請參考底下連結:

[Slides]TechDays Taiwan 2011 WP7 Mango關鍵報告
[Slides]Microsoft WP7應用程式開發-AppHub帳號申請與送件
[電子書]WP7.1 Mango程式設計關鍵報告(CH1,2-試讀版)

[Resources]
.NET Walker專頁
WP7 Asia Developers Group

[Training Videos]
101 從基礎開始
從最基本的WP7應用程式設計開始,撰寫你的第一支WP7 App,內容包含如何透過Visual Studio 2010建立Windows Phone 7 App專案,建置與佈署到模擬器運行,WP7中基本的動畫設計概念,以及事件驅動程式設計...etc。

102 ApplicationBar選單與顯示模式
了解WP7當中的頁面架構,XAML的基本概念,控制項佈置位置,App顯示模式的改變,以及WP7當中相當重要的ApplicationBars介紹暨選單(MenuItem)與按鈕(IconButton)的設計。

103 場景切換、面參數傳遞、與Back鈕
如何設計多個畫面,並且在多個頁面當中進行切換呢? 多頁面時該如何傳遞或共用參數? 如何在切換頁面時加上自訂的特效動畫? 以及如何攔截Back鈕顯示提示訊息?

104 Launcher的使用
這支影片當中介紹的是Launcher與 Choosers的概念,以及如何透過叫用Launcher API在我們自己撰寫的App當中啟動手機內建的應用程式來達成特定的功能,例如傳送簡訊或撥打電話。比較特別的是,在Mango的版本當中,加入了ShareLinkTask,讓你的App可以輕易地送出訊息到FaceBook塗鴉牆或MSN的狀態上喔...

105 Choosers的使用
在這支影片當中,我們繼續討論了Chooser的使用,介紹系統中的Chooser種類,以及示範如何透過Save Ringtone Task將特定的音效檔案儲存到手機當作鈴聲,和如何透過PhoneNumberChooserTask的使用來取得手機通訊錄中特定人員的電話號碼...

106 WP7設定(Setting)頁面的設計
這支影片當中介紹的是WP7設定(Setting)頁面的設計,其中使用到了IsolatedStorageSettings技術,來保留使用者的設定狀態, 同時間介紹了 UserIdleDetectionMode 的功能,如何透過UserIdleDetectionMode 設定來防止應用程式在執行過程中被Screen Lock干擾(例如防止閱讀電子書時,突然出現的螢幕Lock),以及設定頁面的設計原則和技巧。

107 WP7 IsolatedStorageFile的使用技巧
這支影片當中介紹的是WP7當中的IsolatedStorageFile機制,同時也介紹如何利用WebClient下載特定的檔案,儲存到IsolatedStorage當中,以供後續的使用。除了IsolatedStorageFile機制的操作與使用方式之外,其中如何將圖檔儲存到IsolatedStorage當中,以及從IsolatedStorage當中把圖檔取回顯示到App中,也是相當重要的一部分。

108 Push Notification概念與Toast Notification使用介紹
這支影片當中介紹的是WP7當中相當重要的 Push Notification機制,我們扼要地說明了 Push Notification的概念、有哪些種類、以及如何使用、建立 Push Notification時需要注意哪些事項、以及Mango版本當中Push Notification機制的增強...。我們展示了Toast Notification的建立與發送方法,並且如何透過Mango當中針對Toast Notification新增的參數,喚起App並連結到特定手機頁面。

109 Tiles動態磚的使用介紹
這支影片當中介紹的是WP7當中相當重要的動態磚機制,我們介紹了7.0中的Application Tile以及7.1 Mango版本當中的Secondary Tiles。在WP7.1 Mango的版本當中,開發人員可以自由的透過程式碼建立Secondary Tiles,可以新增、修改或刪除,也可以自由地指定Tiles上的圖示、文字標題與數字等資訊。用戶從Start畫面點選Tiles也可以直接連入App,並且帶入參數,是一個相當好用的機制。

110 Tiles動態磚 vs PushTileNotification
這支影片接著繼續介紹WP7當中相當重要的PushTileNotification機制,我們先前介紹了7.0中的Application Tile以及7.1 Mango版本當中的Secondary Tiles。您會發現Tiles動態磚技術是WP7當中相當特殊好用的設計,而Tile最吸引人的其中一個原因,就是App的開發單位,可以透過PushTileNotification技術,主動把訊息推送到動態磚上,即便用戶端的App沒有正在執行,我們也可以藉由PushTileNotification把文字、數字與背景圖示等訊息,即時的推送到用戶端,直接呈現在手機的動態磚上,用戶不僅能收到即時的訊息,也不需要花費任何簡訊費用,是非常務實好用的功能。

111 WebServices基本呼叫
在這支影片當中,我們主要介紹了如何從WP7當中透過Web Services抓取位於Internet遠端的資料,這個技術讓WP7這也不只是一座孤島,能夠動態的透過存取遠端資料來掌握即時的訊息。在商業應用程式上也相當好用,我們可以透過這樣的方式來存取企業內部的資訊或後端資料庫中的內容。當然,這樣的存取需要撰寫Web Services(或WCF Services)因此我們在這支影片當中,完整的介紹了如何透過ASP.NET開發技術撰寫WP7(Silverlight)需要的Web Services,以及如何透過LinqToSql抓取到後端資料庫中的Record,直接傳遞給WP7來使用。

112 WebServices遠端資料存取 與 資料繫結(DataBinding)
前面我們介紹過了如何在WP7當中,透過Web Services抓取遠端的資料,而在這個影片當中,我們更進一步的,要來介紹如何把抓取到的資料直接以WP7(Silverlight開發技術)當中,傲視群雄的DataBinding機制,填入控制項當中,呈現出相當優質的畫面效果。這是WP7(Silverlight開發技術)中非常厲害的招式,請密切注意,立即收看 :) 。http://www.facebook.com/#!/pages/David%E7%9A%84NET-Walker%E5%B0%88%E9%A0%81/115848851788030

2011年9月12日 星期一

[教學影片] Windows Phone 7 - 程式設計關鍵報告(112 WebServices遠端資料存取與資料繫結)

今天Windows Phone 7程式設計教育訓練短片當中介紹的是,WP7(Silverlight開發技術)當中,傲視群雄的DataBinding機制 與 Web Services的整合...很精彩

112 WebServices遠端資料存取 與 資料繫結(DataBinding)
前面我們介紹過了如何在WP7當中,透過Web Services抓取遠端的資料,而在這個影片當中,我們更進一步的,要來介紹如何把抓取到的資料直接以WP7(Silverlight開發技術)當中,傲視群雄的DataBinding機制,填入控制項當中,呈現出相當優質的畫面效果。這是WP7(Silverlight開發技術)中非常厲害的招式,請密切注意,立即收看 :) 。

2011年9月9日 星期五

[教學影片] Windows Phone 7 - 程式設計關鍵報告(111 WebServices基本呼叫)

我們在今天的Windows Phone 7程式設計教育訓練短片當中介紹的是,如何從WP7存取遠端的資料,以及遠端資料庫中的內容。(今天這個主題超級重要喔~)

111 WebServices基本呼叫
在這支影片當中,我們主要介紹了如何從WP7當中透過Web Services抓取位於Internet遠端的資料,這個技術讓WP7這也不只是一座孤島,能夠動態的透過存取遠端資料來掌握即時的訊息。在商業應用程式上也相當好用,我們可以透過這樣的方式來存取企業內部的資訊或後端資料庫中的內容。

當然,這樣的存取需要撰寫Web Services(或WCF Services)因此我們在這支影片當中,完整的介紹了如何透過ASP.NET開發技術撰寫WP7(Silverlight)需要的Web Services,以及如何透過LinqToSql抓取到後端資料庫中的Record,直接傳遞給WP7來使用。

2011年9月8日 星期四

Windows Phone 7 - Mango 剪貼簿(Clipboard)

在Mango的版本當中,開發人員開始可以自由地控制手機中的文字複製貼上功能,程式碼的撰寫如同過去我們在WindowsForm當中的做法一樣,相當的簡單:
//設定剪貼簿中的文字
System.Windows.Clipboard.SetText("簡單貼...");
//取得剪貼簿中的文字
string buf = System.Windows.Clipboard.GetText(); <--目前不開放
就這樣,相當簡單但很好用。
範例下載

2011年9月7日 星期三

Data.Taipei台北市政府公開資料平台

台北市政府最近跟微軟合作,採用了微軟的Windows Azure雲端運算平台,打造了 『Data.Taipei台北市政府公開資料平台』,同時為了推廣應用在手機App上,配合工業局舉辦的App Star高手爭霸戰,加碼獎金30萬

不過我看了一下,目前對這個平台的技術架構沒太大疑問,但主要的問題是其中提供的內容稍嫌空泛了些,大家期待的公車即時位置尚未在這個平台上提供,而是需要另外向臺北市政府交通局申請,但是我對目前平台上提供的資訊(諸如台北市公廁位置或是警察局的位置)也沒太大興趣,況且這些資料也並非即時資訊,下載個Excel檔案就可以寫App了,大費周章的連上雲端平台似乎意義不大。

當然,我也知道不太可能要求台北市政府提供路口攝影機的即時影像資訊(雖然對我來說最希望看到的乃是這個,這樣宅男駭客就可以實現在家裡監控每個街口的電影情節),所以截至目前為止,我們只能先看看即時公廁位置(還每日更新呢)過過乾癮...

不過,就資料連結技術來說,台北市政府算是已經相當給力了,資料連結的介面提供了豐富的Atom或Json形式,採用OGDI以OData的形式提供資料(很趕得上潮流,拍拍手),甚至C#範例都有了(還很先進的用了Linq查詢咧...),一切都很不錯,就是Content差了些...>_<

不過話又說回來,台北是繼紐約、倫敦之後,成功導入該服務的市政單位,也算是很趕時髦了,希望台北市政府繼續努力,讓我能夠有機會在短時間內可以update這篇po文。

[教學影片] Windows Phone 7 - 程式設計關鍵報告(110 Tiles動態磚與PushTileNotification)

今天Windows Phone 7程式設計教育訓練短片當中介紹的是,許多開發人員有興趣的PushTileNotification機制。(今天這個主題很重要喔~)

110 Tiles動態磚 vs PushTileNotification
這支影片接著繼續介紹WP7當中相當重要的PushTileNotification機制,我們先前介紹了7.0中的Application Tile以及7.1 Mango版本當中的Secondary Tiles。您會發現Tiles動態磚技術是WP7當中相當特殊好用的設計,而Tile最吸引人的其中一個原因,就是App的開發單位,可以透過PushTileNotification技術,主動把訊息推送到動態磚上,即便用戶端的App沒有正在執行,我們也可以藉由PushTileNotification把文字、數字與背景圖示等訊息,即時的推送到用戶端,直接呈現在手機的動態磚上,用戶不僅能收到即時的訊息,也不需要花費任何簡訊費用,是非常務實好用的功能。

2011年9月5日 星期一

[教學影片] Windows Phone 7 - 程式設計關鍵報告(109 Tiles動態磚)

今天繼續推出一隻介紹Windows Phone 7程式設計教育訓練短片。(今天這個主題也很重要喔)


109 Tiles動態磚的使用介紹
這支影片當中介紹的是WP7當中相當重要的動態磚機制,我們介紹了7.0中的Application Tile以及7.1 Mango版本當中的Secondary Tiles。在WP7.1 Mango的版本當中,開發人員可以自由的透過程式碼建立Secondary Tiles,可以新增、修改或刪除,也可以自由地指定Tiles上的圖示、文字標題與數字等資訊。用戶從Start畫面點選Tiles也可以直接連入App,並且帶入參數,是一個相當好用的機制。

2011年9月2日 星期五

[教學影片] Windows Phone 7 - 程式設計關鍵報告(108 Push Notification)

今天繼續推出一隻介紹Windows Phone 7程式設計教育訓練短片。(雖然今天只有一支,但是今天這個主題很重要)


108 Push Notification概念與Toast Notification使用介紹
這支影片當中介紹的是WP7當中相當重要的 Push Notification機制,我們扼要地說明了 Push Notification的概念、有哪些種類、以及如何使用、建立 Push Notification時需要注意哪些事項、以及Mango版本當中Push Notification機制的增強...。我們展示了Toast Notification的建立與發送方法,並且如何透過Mango當中針對Toast Notification新增的參數,喚起App並連結到特定手機頁面。