發表文章

[研討會]TechDays 2012 相關內容

圖片
三天的活動在各式各樣的驚奇中落幕了, 我負責的兩個場次投影片如下, 請參考。 WCL308-打造跨Windows 8與Windows Phone應用[ slide ] WPH202-Windows Phone 開發應用實戰[ slide ] video:如何透過WP7存取Mobile Services(BETA) 其他影片和範例的部分, 稍帶我的NB完成修復, 就會陸續地放上來... :)

Tech Day 2012 點滴在心頭...

圖片
每年TechDay總是會發生令人驚奇的事件...今年也不例外。 從前年開始說,那年的TechDay當天,我興沖沖地到講師報到處報到,結果發現,已經有人用我的名字報到過了,領了我的講師服和餐券。好巧不巧,那一年我的主題是講security...Ruddy還說我是為了幫自己的場子暖場, 花錢買通派人來充當駭客, 突顯安全的重要性(報告Ruddy老師, 我真的沒有...>_<) 去年,開開心心的去 TechDay會場,結果在高速公路上車被追撞 >_< 今年, 終於在講演前一天晚上11點15分, 經過三十八次的修改和整理之後, 把我所負責的兩個場次final的slides和範例做最後的確認, 我心想, 最後一次備份在當天早上四點, 待會得要再重新備份一下, 先重開一下機吧(我大概一兩個禮拜沒重開機了), 當下, 關機, 重開....伸手去拿茶杯...水杯剛到口邊...我傻眼了!!!! 重開之後抓不到硬碟...硬碟不見了!!! 我知道SSD HD不見所代表的意義,幾乎是沒有救回的可能,但我不相信(我不是不相信SSD會死掉,我是不相信怎麼會這麼巧在現在、研討會的前一個晚上死掉???),所以我試著重開幾次,無效,當下,我用發抖的雙手(真的在發抖)以手機(好在手機還可以上網)留下了訊息給還在線上的Eric與Herman, 那時候moli已經睡了.,..Jeffray則顯示為在線上.... 後來聽說Eric收到的是: Herman收到的是 當時, 我又重開了一次機器...真的沒法重開, 這次死定了>_< 我手抖得更嚴重了...開始有點恍惚...想著人生的價值和意義, 以及生命的終極方向這類平常腦袋不會出現的議題....接著, 再傳訊息給Jeffray, 因此聽說後來Jeffray收到的訊息是...   可顯見當時我的精神狀態似乎已經有些不穩定, 這時候, 我只好跪在沙發旁向上帝禱告, 冷靜下來, 這時候FB上的Eric與Herman有了回應...Herman還在公司conf call, 我立刻情商借了一台Lenovo T400, 當下飆TAXI(我已經不敢開車了, 我怕會出人命)到松仁路...沒想到他們同事們(Ching, Carol)都還在公司奮戰, 我研討會前一晚SS...

如何刪除TFS(Team Foundation Service)雲端服務中不要的專案???

圖片
前幾天說了,最近在試著讓外包人員用免費的TFS雲端服務,來管理原始程式碼。 最近玩著玩著,不亦樂乎,就開了很多的專案(有朋友問說有沒有個數限制? 我還沒測到,目前沒碰到)。然而真的要讓外包人員簽入來使用時,發現這個帳號底下有太多測試用的專案(有點醜),想要一清而後快...但是...怎麼刪除呢??? 在Portal上沒有刪除的功能啦 >_<... 不急,想到那天聽到某場研討會的講師說,SQL Server其實有很多功能,但不少功能因為UI沒有看到,所以User就完全忘了有這個功能,但其實並不代表真的沒有!!! 想想也真有道理,很多UI沒有的功能,其實只是沒法從操作介面上執行,並非真的完全沒有!我們身為熟齡開發人員,總是能夠(也很懷念在文字模式)下下指令來幹些UI做不到的事情... 當下回憶一下命令列指令,試試看雲端服務是否也接受。一試之下果然可以,動作如下: 1.首先,如果你沒有VS2012,至少下載一下Express版本(因為很抱歉,刪除專案這種上流的動作VS2010不支援)。 2.接著,立刻開啟VS2012,並且用你的MS Account(就是那經典的Live ID, 也就是MSN帳號, 以後請稱他為MS Account)登入Team Explorer(如果不登入,也不是不能刪,但你可能待會會看到沒有權限的錯誤訊息)。 3.登入後,VS2012先放一邊,從Windows功能表開啟Developer Command Prompt,鍵入 tfsdeleteproject... 格式如下: C:\Program Files (x86)\Microsoft Visual Studio 11.0>tfsdeleteproject /collection:https://你的帳號.tfspreview.com/DefaultCollection 專案名稱 例如: C:\Program Files (x86)\Microsoft Visual Studio 11.0>tfsdeleteproject /collection:https://MyTestAccount.tfspreview.com/DefaultCollection TestProject1 接著會出現底下畫面: 如果一切正常,就可以...

使用免費的雲端TFS(Team Foundation Service)程式碼管理服務

圖片
最近幾年開發方法論大行其道,ALM也常常在各種社群活動或研討會中被提起,也因此, Team Foundation Service 的出現大概也不太讓人訝異了。 簡單的說, Team Foundation Service 採用雲端運算的技術提供了 目前 免費的應用程式生命週期管理相關服務,如果你以前用過Team Foundation Server或Source Safe,那現在的Team Foundation Service提供您相同的服務,又讓您不需要自己搭建伺服器,就能夠享有程式碼版本控管、自動建置(Continuous Build)、Unit test管理...等多項團隊開發所需要的程式碼管理功能。 當然,你可以用熟悉的Visual Studio作為開發用戶端,隨時連結到雲端的TFS服務,進行程式碼的簽出與簽入、開發與測試、工作項目管理與分派等動作。 目前VS2012和VS2010都可以作為TFS的用戶端,只是VS2010要連結上雲端的TFS服務,必須是安裝有的 KB2581206 的VS2010 SP1,請留意這個KB目前只能夠過connect來下載。 安裝完成之後,前往 Team Foundation Service 以Live ID登入後建立一個帳號,就可以享有TFS的雲端服務了: 請留意這個帳號也就是將來您的網址: 而且一個LiveID只能建立一個帳號,所以還是取一個比較正式一點的名稱會好一點。  在建立好帳號之後,就可以在該帳號底下建立新的開發專案: 目前TFS當然支援Scrum等時髦的開發方法,可以自動產出管理團隊所需要的各種報表,即便你沒有立即在專案團隊中導入這類的開發方法,單單拿TFS來做Source Code的管理也挺好用的: 專案建立完成之後,就可以從VS2010/VS2012的Team Explorer連結到這個位於雲端的TFS,操作的動作可以參考 這裡 。 在 https://tfspreview.com/ 網站當中有詳細的step by step使用教學,即便過去沒有用過Team Foundation Server,直接使用這個新的TFS服務也不會覺得太彆扭。 目前這個服務還挺適合與遠端合作的小型開發團隊,對於台灣為數不少的小型App或專案開發團隊來說,不啻為...

那個...舊版的Windows Azure Portal在哪裡???

圖片
前陣子,Windows Azure推出了很多新功能,這部分先前已經在 FaceBook 上和大家分享過了,而Windows Azure推出新功能的同時,微軟也順手修改了Windows Azure後端管理的Portal,把原本用Silverlight做的Portal改成了用HTML/HTML5開發... 當然,我對HTML5是毫無排斥的,儘管截至目前為止,我還不認為現階段的HTML5能"立即"取代Silvelright在LOB上的應用(況且其實新版的Windows Azure Portal原來也不全是HTML5寫的,而是HTML,這不是我說的,找兇手請按 這裡 ),但人家這麼熱心把Portal改成HTML寫的(當然是想要跨平台),我們當然也要跟著試用看看,但用了一陣子,我還是發現,我個人目前比較喜歡過去Silverlight的版本的Windows Azure Portal,原因很多,諸如: 1.有不少功能我依舊沒能在新版Portal找到(可能是我比較眼拙,沒看到) 2.就同時管理站台和後端資料庫來說,我還是覺得Silverlight版本目前穩定些 3.新的一些功能我還沒用上... 4.新版Portal似乎比較快,但比了一下沒快多少 5.有些舊版的設計和操作動線,我覺得比較好,新版的可能礙於HTML原因,沒法做到 6... 因為上述原因,所以我開始想找回舊版的Windows Azure Portal,但居然...找不到>_< 一旦你切到新版Portal之後,以後從後台管理網址登入它就自動幫我轉到新Portal了,舊的就不見了,輸入舊版Portal的網址也沒用 (自動轉到新的)>_< 但我不死心,這不太可能,所以找了一下,猜猜看在底下哪個畫面中: 答案是,頭頂上正中間那個Preview...我壓根沒想到Preview這個字和前一個版本Portal有何干係... (藏那麼隱密,是不想讓我發現是吧????) 裡面有個Previous Portal,就能把我帶回原本熟悉的Silverlight操作介面囉。 後記: 這邊,我得要說,對於資訊從業人員來說,是沒有拒絕新技術的空間的,有新的可能性、新的技術、新的玩具,本持著好奇心我們當然也一定要給它試試看...

專業的價值...

圖片
每次,我去修車的時候... 師傅說:先生你這車開那麼久了,這樣壞很正常拉,你要不要換台新的? 你不知道零件會老化嗎??? 我:是是是...那,這零件換掉要多少錢??? 師傅:喔...便宜啦,大概就XX萬就可以了... 每次,我去客戶那邊... 我說:大哥,這軟體我們用那麼多年了,總是會需要調整維護一下的... 客戶:是你們一開始沒有設計好吧? 我說:不是啦,技術總是會更新的,而且現在有一些新的需求...恩,大概,就收你XX萬就好了... 客戶:什麼? 你們當初沒設計好的東西,還想要加收錢??? -------------------------------------------------------------------------   我相信上面這樣的情況你一定和我一樣常碰到,我不知道有多少次,被修車廠唬的一愣一愣的,但我總是心甘情願地掏錢出來(好吧,我有點心不甘情不願,但我沒得選擇)。   有一次,我的動力方向盤打起來卡卡的,好像快不能正常轉向了,所以我立刻把車開到保養廠,師傅熱情的出來迎接我,問我車哪裡有問題,我描述狀況,接著師傅就把車開走了。剛好這時候我接到一通電話,我在講電話的同時,師傅把車弄好了(不到五分鐘),跟我說,這個動力方向盤的油沒了,要補充,打折後收我一千多塊,我趕緊謝謝他。   離廠前,師傅把剩下的動力方向盤油給我(很有良心),說:這是剩下的。我還沒反應過來,他就說:老闆,慢走,開車小心,注意安全。(好貼心的師傅)   我看了一下,那罐動力方向盤油只加了1/5,剩下4/5我要怎麼辦?放後車廂? 等他漏了再加? 我不知道!!! 他為何不乾脆 免費 幫我加一下呢? 像這樣類似的例子我碰過非常非常多(因為我的車老了,很多問題)   也有很多次,我明顯發現修車廠的人在唬爛我,但我換過很多家、原廠、副廠、出去玩的時候在風景區的修車廠(這更狠,擺明了就是要坑你,他清楚知道只會跟你做一次生意),幾乎都一樣,我常常有被唬弄的感覺。我想要跟著車看他怎麼修,修車廠的師傅總是說:『老闆,您可以到休息室等一下,不會那麼快喔!!!』   對照先前我在軟體社群看到有位朋友寫的一篇 文章 ,提到了軟體工程師的無奈和心酸,我其實很想說,軟體工程師大部分真的都太古意...

Metro Style App當中的Toast Notification訊息傳遞

圖片
Toast Notification是從WP7開始就有的新玩意兒,比起WP7,Metro Style App要送出Toast Notification比過去要來的簡單多了,而且有更多的樣板可以使用,在這段影片當中,我們介紹如何透過方便好用的NotificationsExtensions來送出Toast notification...

Metro Style App當中的資料儲存機制 - ApplicationData

圖片
ApplicationData是WinRT當中新的資料儲存機制,類似過去我們在Silverlight與WP7當中的IsolatedStorage,但由於同時又支援了Roaming, Temporary, 因此功能更為強大,在這段影片當中,我們就來看看WinRT當中的ApplicationData機制該如何使用...

Metro Style App與.NET 4.5中的非同步程式設計概念

圖片
非同步,是最近這幾年很重要的程式設計與開發概念。 過去,我們在寫程式的時候,總是從上到下一行一行執行,但隨著CPU運算能力越來越強大,且展示層的User Experience要求越來越高,用戶不容許今天我們的程式碼在跑長時間動作(例如開啟一個很大的檔案、或是讀取遠端資料庫或網路上的資料)時,畫面停止回應。 因此,最近這幾年程式設計都轉變成透過非同步的方式來設計,例如底下這樣的Silverlight程式碼: 在DownloadStringAsync的非同步Method呼叫下,返回值並不會立刻取得,而是在相對應的Completed事件當中取得,但這樣導致做一件工作需要拆成兩三段來寫,如果在非同步的呼叫之後,又要再次呼叫非同步方法,就會變成底下這樣: 這導致維護與程式碼閱讀的困難,更讓例外(Exception)處理變得很礙手礙腳。因此,在.NET 4.5和Windows的Metro Style App當中,開始有了新的非同步程式設計方式... 相關的說明與介紹,請參考底下影片:

從Silverlight到Metro的心路歷程

趁有空,用文字整理一下沒能完整在研討會上分享的心情。 從Windows 8的Metro Style Apps開始有消息時,我們就在官方的Slides上,看到了針對Metro Style Apps的開發,寫明了是可以採用多種技術,包含HTML+JavaScript, 包含XAML+C++, 包含了 XAML+C#(VB) ... 那時候可能很多人覺得疑惑,咦? XAML+C#,那不就是Silverlight(或WPF)嗎? 那為何不乾脆寫Silverlight呢? 我們知道,早在.NET 3.0開始(2006年), WPF 就是用XAML來描繪UI,而 Silverlight 的出現比WPF晚上了幾個月(2007年),沒想到在實務(實際使用)上,Silverlight後來比WPF更加的廣泛,同時也成為微軟在RIA上對抗Flash/Flex的利器。 (請回憶一下,在這個時間點, iPhone 才剛剛出現, iPad 還不知道在哪裡咧...) 後來沒多久,Windows Phone 被迫 出現了(2010年),我們都知道,Phone/Pad成功的關鍵,與App的多寡有著非常大的關係,因此從現在回頭看,在2010那個時間點,當時要讓App快速出現,最好的方式就是選擇一個可以快速上手,並且已經有著一定數量開發人員的開發技術,這個技術又要支援多媒體效果,又要有現成的開發工具,還能夠很快速地讓Runtime可以Porting到當時Windows Phone所採用的Windows CE上面,在當時 時間如此急迫的狀況下 ,幾乎沒有任何其他的選擇和可能性,因此Silverlight雀屏中選,成為WP7.0和WP7.5的主要開發技術。 好,知道歷史背景之後,我們回頭談XAML+C#, 前面說到, 因為當時Silverlight幾乎可以代表XAML + C#(VB)這一掛的開發技術,所以在我們看到Win8 Metro Style App所採用的主要開發技術是XAML+C#(VB)之後,很自然的覺得,Metro的開發技術可以用XAML+C#,那到底是不是說,Silverlight可以用在Metro Style Apps開發上呢? 現在回頭看,答案揭曉了,答案可以說是也可以說不是。但原因原來如此地簡單,因為:      S...