20100928-20100930 微軟 Tech Days

(聽課聽到第三天,已經有一種大腦容量快要滿了的感覺,所以讓生日比我大一天的藍澤光姐姐(?)來撐一下場面。)

(話說某日跟男朋友大人去逛大創,他經過文具區看到螢光筆,「好恐怖喔,銀光 (Silverlight) 筆欸。」←這麼敏感!這算是一種職業傷害嗎~XD)



第三天我聽了這些課:

  • 08:40 - 09:50 利用 ASP.NET MVC 專案特性實現 TDD 測試導向開發 / 黃保翕 / DEV303 / 101CD
  • 09:55 - 10:10 MVP 下課 15 分鐘教室:話說 Word 2010──大型文件的排版利器 / 王作桓 / 103
  • 10:20 - 11:30 Designer & Developer 的完美結合 – 企業應用開發分享 / 趙偉如、廖千翬 / WUX306 / 大會堂
  • 13:30 - 14:40 使用 Expression 製作 Windows Phone 7 應用程式雛形與成品 / 章立民 / WPH302 / 101AB
  • 15:10 - 16:20 軟體架構及模型設計 - 活用 Visual Studio 2010 降低系統維護成本 / 彭靖灝 / DEV304 / 大會堂
  • 16:50 - 18:00 軟體開發流程的改善 - 應用 Visual Studio 2010 Ultimate 及 Team Foundation Server 2010 / 徐鈞安 / DEV306 / 101CD



#1 利用 ASP.NET MVC 專案特性實現 TDD 測試導向開發黃保翕

測試的成功要素在於資源充足、瞭解需求(才能夠設計各單元之間的互動情境)、適當的自動化。開發時要注意程式的可測試性,程式結構不佳時可能會完全無法寫測試程式碼。單元測試可利用 Visual Studio 的「測試專案」,比對結果是否符合預期。

對 test code 而言,session 屬於外部物件,因此要透過 FakeHttpContext 來模擬。

Visual Studio 2010 多了 Suggestion mode(建議模式),有別於傳統的 intelligence 所採取的 Completion mode(完成模式),新版本更適合 TDD。例如,舊版中輸入 「GetMember(」會自動補完為「GetMemberByID()」(Suggestion mode 會自動修改為建議的函式名稱),新版不會自動補上,而且支援在測試程式碼中新增 (Generate From Usage)。





#2 MVP 下課 15 分鐘教室:話說 Word 2010──大型文件的排版利器王作桓

長文件的 Word 製作小技巧是:先打文章內容,不要去設定細部的格式,只用顏色粗略分出大標題、小標題、段落文字,接下來設計好給整份文件使用的樣式、使用取代中的格式來替代樣式,就能一次完成長文件的排版。

20100928-20100930 微軟 Tech Days





#3 Designer & Developer 的完美結合 – 企業應用開發分享,趙偉如、廖千翬

在瀏覽器上開發一般的網頁程式,因為瀏覽器對標準的支援度不一,往往需要製作多種版本才能夠應付,有了 Silverlight 就能夠以單一版本面對各種瀏覽器。過去網站開發時,往往是設計師先以手工草稿來產生 prototype,或是建立 hard coding 的網站內容格式、再讓開發人員調整,往往要耗用很多時間;有了 Expression Blend,可以更加所見即所得地討論設計架構實現的可行程度,兼顧 user experience 和實務應用,讓 ART + Developer 快樂合作。

20100928-20100930 微軟 Tech Days

20100928-20100930 微軟 Tech Days

DeepZoom 是一種可以讓使用者快速學習的操作模式,有助於使用者快速瀏覽多種品項。這個套件在匯出圖片時,也會同時匯出一個 Visual Studio 專案,內容的程式碼就包括一些基本的滑鼠事件。開發時,工程師可以在 Visual Studio 上完成多數的 Silverlight 程式,但與動畫的結合仍然要透過 Expression Blend。





#4 使用 Expression 製作 Windows Phone 7 應用程式雛形與成品章立民

這堂課一開始就強調不寫任何一行 code 也不看任何 code,事實上多數的操作的確很簡單,透過拖曳物件、設定屬性,很快速的就能完成一些基本功能。

未來 Silverlight for Windows Phone 7 適合用來做應用程式開發,而 XNA Game Studio 4.0 則是用來製作多畫面的 2D/3D 遊戲。過去就投入 Silverlight 技術的開發人員有福了,因為未來可以沿用先前在 Web / Window Form 的 Silverlight 程式開發經驗。(除了少數配合平台限制有所變化的部分要修改)

Windows Phone 7 的開發元件未來都會整合在 Expression Blend 4.0 之中,現在想搶先安裝會遇到一些問題,可能要把部分元件移除掉再安裝。

在 Expression Blend 4 可以直接設計各種 Windows Phone 專案,執行專案時會自動啟動 Windows Phone 模擬器,可以模擬出手機在直立或橫向時程式的顯示狀態。手機應用程式的 icon 必須是 PNG 格式 (62 * 62 pixel),如果 icon 圖檔名稱不想要設為預設讀取的圖片檔名,那麼必須切換到 Visual Studio 2010 匯入 icon,並且 "Build Action" 要設為 "content"。

建議不要在程式裡去做「返回上一頁」的設計,要讓使用者透過手機左下方的「←」按鍵去返回,以統一使用經驗。(在這一堂課的下課時,微軟也有送給每一位與會人員一本開發 Windows Phone 7 的使用者介面手冊。)

在設計階段就能把 XML 欄位作為資料來源餵進程式來,直接所視即所得,不需要設計人員手動 key-in 假資料。程式的動畫效果可以包裝在 State 中,如此一來介面與 event(例如點選時,做出展開的動畫效果)都可以不必寫任何程式,真實資料只要在 WCF 上實作出來、餵進程式裡就可以了。

Windows Phone 7 的 Application Bar(應用程式列)之中的圖示只要畫好按鈕中間的圖示即可,至於套用在按鈕外框的圓圈,系統會自動幫忙加上去。

在 WIndows Phone 7 的輸入,TextBox 在取得 focus 之後就會自動跳出虛擬鍵盤。(但就像之前第一天周旺暾老師說的,目前 Windows Phone 7 暫不支援亞洲區的文字輸入;看了一下別人的心得文,目前想要做中文輸入要自己建置虛擬鍵盤。)

影音部分也再次提到了 smooth streaming。首先開發人員要有 Silverlight media SDK、IIS smooth streaming client 1.1 RTW,主機環境上也要安裝 media streaming (media service),再把影片匯入到 Expression Encoder 轉成 IIS Smooth Streaming 格式,影片轉換完成後會得到一個資料夾,裡面會有各種格式的影片。在程式中設定影片來源時,並不是直接指向單一的影片檔,而是指向一個 XML 資源檔,讓系統去判別現在應該從何處抓取適當畫質的影片。





#5 軟體架構及模型設計 - 活用 Visual Studio 2010 降低系統維護成本,彭靖灝

軟體開發中最大的成本通常發生在維護階段,可能會面對人事異動、使用後的需求調整等等;在需求變動後,新的需求可能會與既有架構相衝突,若按照這樣的需求規劃執行更動,是否會影響現有的 code?利用 Architecture Explorer,可以看出程式與程式之間的關係。

過去人工繪製的系統架構圖,在架構設計期間可以拿來做溝通理解之用,但實際進行開發時,開發人員未必會遵循照做,使用自動化工具產生的圖,才能夠反映真正的架構狀態。

文件和開發結果往往無法同步,註解的完善度、專案的能見度(工作進度)、設計能見度(程式相依性)。好的文件可以讓後續的人從文件中管理問題,即使這個人看不懂程式碼本身,但至少能憑藉文件進行 trouble shooting。





#6 軟體開發流程的改善 - 應用 Visual Studio 2010 Ultimate 及 Team Foundation Server 2010,徐鈞安 (blog / Plurk)

導入適當的工具和流程可以節省時間,但無法直接解決問題,因為組織中的成員習性不會因為這些東西即刻改變,需要將許多精神內化為組織文化的一部分。

世界上有很多奇形怪狀的團隊:code review 和版本控制都不做的團隊、用記事本來開發 C# 程式的公司、因為沒有版本控制所以直接在 server 上安裝 Visual Studio 實機 debug 的單位、因為發生 SQL injection 所以不修補程式碼而是直接花三百萬買了固若金湯的防火牆的機關……

Visual Studio 2010 支援靜態程式碼分析,也可以做網站架構解析,另外結合了 TFS 可以進行版本控制。frama 再三強調:即使一個人也要做版本控制!建議在每個專案都有相同的目錄結構,每個人都要瞭解 check-in & check-out 的時機。開發時可以開分支,在正式版本上的臨時修改要記得 merge 回去開發版本上,以確保未來開發不會走山。不要把所有東西壓成 zip 以後整包丟進版控,這樣沒有意義。

從版本控制裡拿出的任意版本都要可以編譯。做到一半的版本,TFS 有「擱置」可以用,擱置到版本控制系統的程式碼只有作者本人可以看到,其他人無法讀取。千萬不要 commit 到版本控制系統裡。

佈署前手動列出的資料異動清單與程式碼異動清單可能掛萬漏一,導致更新後程式無法正確執行。因此,資料庫也要納入版本控制:首先開啟一個 SQL server 2008 資料庫專案,選擇目前正式環境線上使用的資料庫匯入,就可以得到納管資料(基本上納管的是 shema,不是真實的 record)。以前的作法是手動匯出 DB shema、存成文件後納管,但這樣無法記錄異動者與異動時間。若比對 DEV & Production 的資料庫 schema 有差異時,Visual Studio 可以匯出修改用的 schema,協助資料庫佈署作業。PK, FK 一定要加,以免得到垃圾資料。

程式碼分析:在 Visual Studio 2010 Ultimate 選擇安全性原則即可進行分析。

工作分派時,由 PM 預估工時、工程師確認工時無誤後畫押,專案經理應負起瞭解工程師手邊的工作、協助安排優先順序的責任。在指派時也要讓成員能瞭解到目前的 work item 與哪個需求有關,以利於工程師能夠瞭解 work item 之間的相依程度。工作單要以狀態為主來規劃管理,監控所有未關閉的需求,免得怎麼加班都做不完。








今年的活動很豐富,除了課程本身、MVP 下課 15 分鐘的簡短分享,還有不同主題的 BoF 社群互動時間、廠商說明產品的互動式座談會,不過這些活動和正課的時間都衝突到,滿可惜的。

另外可能活動都安排在一樓吧,整個會場好擠,每次想靠近一樓的活動展板看一下課程時間、教室位置,不是被和 show girl 合影的人擠到海角天邊、就是根本就人多到無法靠近,泣。

現場給了無限量的瓶裝礦泉水和旺旺家出的眾多餅乾們,也有滿多人提出礦泉水不環保、建議大會提供環保杯和飲水機,加上會場冷氣滿強的,如果可以給熱紅茶就太完美了。 :D








arrow
arrow

    小草 發表在 痞客邦 留言(1) 人氣()