2011年8月31日 星期三

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

繼續推出兩隻介紹Windows Phone 7程式設計教育訓練短片。

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

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

2011年8月30日 星期二

風雨無阻

日前颱風天那天,聽到朋友中有位講師不辭辛勞,不畏風雨的依舊在預定的時間遠赴台灣的另一端,只為了說好的幫同學們上課,聽到了之後相當感動,所以我哼著熟悉的歌曲,寫了底下這首歌...描述許多講師、作者們共同的心情...

請配上 周華健‧風雨無阻...

給你我的全部 .NET是我今生唯一的賭注
只留下這段代碼 讓我無怨無悔 全心的付出

怕你疲倦 怕你哭 怕你迷惘 怕你糊塗
編程千山萬里路 我可以朝朝暮暮

給你一本我的書 它是我一生不停的腳步
讓我寫滿數十萬字 堆滿整座倉庫 你慢慢閱讀

Silverlight是漫長的旅途 一會快樂 一會痛苦
千瘡百孔編程路 我可以縫縫補補
⋯⋯
提著昨日種種千辛萬苦 向明天換一些 夢想和錢途
範例夠不夠多 講解夠不夠好 可以要求 不要不在乎

不願讓你看見我的辛苦 是曾經無悔的風雨無阻
贈品夠不夠多 點心夠不夠好 可以追求 不認輸

配樂 請用 http://www.youtube.com/watch?v=D9b4Pnpbx4Q
http://www.youtube.com/watch?v=LwM8AIYC5S8

2011年8月29日 星期一

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

繼續放兩隻Windows Phone 7程式設計教育訓練短片。

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

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

2011年8月26日 星期五

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

三隻適合Windows Phone 7程式設計初學者由淺入深的教育訓練短片。

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鈕顯示提示訊息?

2011年8月25日 星期四

在努力背後...

(後記:一個多月後, 10/6這天賈伯斯過世了...這篇文章中第一行的辭職,得改成辭世了。全球幾乎都一同哀悼賈伯斯的離開,並且深表不捨,Apple和Google的首頁也特別掛上或連結了賈伯斯的肖像以表追悼,肯定他一生的成就)

聽到Steven Jobs辭職的消息,讓我有些感觸。

在他經歷了那麼多的事情之後,阻止他繼續向前邁進的,不是外界競爭對手的攻擊、不是潮流趨勢的更替、不是資源或能力上的限制,而是他自己的身體!

坦白說,一個在世代中如此具有影響力與領導特質的人,要能夠甘心停下腳步,其實相當不容易。我相信,在我們心裡,總是有一些夢想,對自己或未來的期待,隨時推動著我們往前邁進。年輕的時候,我參加TechED,坐在台下前幾排,認真地看著台上講師賣力的演出,我曾經想像過,如果有一天換我在台上,那會是怎樣的場景? 如今回想起來,感覺很遙遠,但記憶卻相當鮮明。

在我中學的時代,那時候的資訊雜誌只有第三波,印象中我常常投稿,把磁片寄到雜誌社,參加雜誌上的程式設計比賽,想像著有朝一日,我是期刊專欄作者的心情。如果不是現在在寫這篇文章,我根本早已忘記曾經做過這些事情。現在想起來,我對這段回憶的感覺居然是一陣溫馨。

好多年之後,小時候的夢想慢慢實現,但是我也逐漸發現,人生中最難的事情,不是拼命努力,不是隨波逐流,是如何在天平的兩頭當中拿捏出最適合自己的距離。

回頭看賈伯斯,我不知道,他是否也覺得自己的一生意義非凡,我更加不確定,如果讓我選擇,他這樣的人生對我來說是否有吸引力。

在這世界上許多努力奮鬥的國家當中,台灣人的工作時數和其他地區比起來算是很有得拚,我從退伍開始工作之後,就我印象所及,工作幾乎沒有間斷,35歲之前,一個工作接著一個,即便在新舊工作交替之際,也幾乎是立即銜接,沒有一刻喘息。

在我的身邊,約莫和我同一期的朋友同學們,大多都是這樣拼命,冬天的時候天沒亮就出門,踏進園區的辦公大樓之後,像是跌入陷阱,沒到星月高掛不會看到回家的身影。直到結婚,小孩出生,才開始慢慢把時間留給家人,逐漸找回一些時間給自己。

35歲像是一個分水嶺,35歲之前,最大的休閒,是喝著濃郁的咖啡寫程式,夜深了伴隨著廣播繼續努力;35歲之後,熬夜是留給年輕人的權利,節制是新發現的功課,還需要努力操練和學習。

如果看這篇文章的你,還沒結婚,不到30,或許你還可以多加把勁,在你前面的前輩,當年付出的努力,和你比起來可能有過之而無不及;如果你和我一樣,慢慢的有了年紀,發現身體似乎也得好好顧惜,而且還得留一些生命給自己,不妨開始再多花點時間和家人朋友聚聚,新的技術如此生生不息,資訊界沒有我們還是會繼續...

在努力背後,我盡可能凡事盡心盡力,最終的結果交給上帝。畢竟,人生價值的定義,肯定不止工作成就而已...



10/6 追悼賈伯斯

2011年8月24日 星期三

持續地改變是必然的趨勢...

大多是不想寫程式,不願意寫規格書,沒精神寫企劃案的時候,我才會寫文章。

不過最近,在FB上看到一篇文章,主要是提到Silverlight技術的目前狀況,以及與未來HTML5之間的一些問題,還有未來開發技術云云。最近半年看到很多這樣的文字或報導,也有不少學員詢問,所以有感而發。

說真的,大夥,別再問這個問題了,原因很簡單,就是展示層技術的改變根本就是必然的趨勢。(相信我,這還不是軟體開發趨勢裡面最讓人感到痛苦、悲憤、無奈、沮喪的一塊...那David言下之意,還有其他讓人更嘔的地方嗎? 當然有,還多著呢,以後有空再說)

前陣子上課,和學員聊到分散式應用程式開發,說到一個結論:『在商業應用程式開發當中,越沒有UI的程式越值錢!』

學員臉上泛起疑惑和不太相信的目光,我隨即解釋,你看過SQL Server吧,看過Skype,看過MSN,難寫的是MSN Server, 還是MSN UI? 有技術難度的是Skype Server, 還是Skype Client, 真正賣錢的是SQL Server的Services,還是SQL Server的Management Studio?

這就是啦,你寫的不是Game,那就讓我告訴你,在商業應用程式的世界裡面,UI是不值錢的,UI可以是賣點,但常常不是成交的關鍵,UI可以是客戶嫌棄你的理由,但UI不是會讓客戶付你多一點錢的原因。

過去這20年, UI層開發技術是一變再變的,從DOS的文字畫面,到Windows的GUI,到後來的Web UI,乃至於現在的WPF/Silverlight/Multi-Touch,這一路上的改變沒在少的,而且趨勢是改變的速度越來愈快,改變的幅度越來越大。

也因此,每當我聽到學員感嘆某些展示層的開發技術改變太快,我就很擔心,大夥把焦點放錯位置了,UI從來不是一套軟體(或專案)成功的關鍵,UI只是你跟客戶表演時候吸引人目光的火花,有時候不同的客戶你還得放不同種類的煙火(平板? 行動? PC? Web? Windows? RIA?),才會得到你想要的效果。

過去這十多年的展示層開發技術,有哪一些可以沿用或重用的? 其實少之又少,先不管是否component可以reuse, 連source code要拿來reuse都很困難。所以,最理想的展示層技術是什麼? 是不要寫。或是我講一講就出來(例如,我說,要有選單,選單就出現;給我來個master-details維護畫面,畫面就誕生),當然這種技術目前還沒出來(但星艦迷航記裡面有,所以我相信不久以後一定會有)。

展示層技術是你的操作介面,操作介面不負責核心的運算,大部分分散式應用程式的核心運算都在伺服器端,這也是真正賣客戶比較值錢的地方,至於過去選擇Windows/Web,現在使用Silverlgiht,以後要變成什麼技術,相信我,都無所謂的,因為未來3-5年一定會變...

1995年之前,我們用文字畫面做出來一堆App
1995年到2002年,我們用Windows模式做出來一堆App
2002年到2007年,我們開始走Web模式
2007年到現在,我們上了 RIA(Rich Internet Applicatiion)
現在到未來,我們還要掙扎在多種不同的展示層開發技術與應用平台之間...

但是, 請記得,上面這些都不是一套真正有價值的軟體賣錢的關鍵,因此,也別太執著了。如果可以,多花點時間在值錢的地方,至於UI,當然也很重要,但當你時間有限時,取捨就是一門藝術了。
(BTW, 請注意,UI跟使用者體驗有關,但不絕對有關~)