第二天聽的場次就十分流離了,四處跑來跑去的。

  • 08:40-09:50 連接未來的 ASP.NET - 談 ASP.NET 4.0 整合 HTML5 & CSS3 / 奚江華 / WUX304 / 大會堂
  • 10:20 - 11:30 Microsoft Office 程式設計的過去、現在、未來 / 湯民富 / OSP302 / 101 CD
  • 13:30 - 14:40 軟體測試實務應用 - 測試自動化及進階除錯技巧  / 胡百敬 / DEV305 / 大會堂
  • 15:10 - 16:20 微軟身分識別與存取控制的終極解決方案: Forefront Identity Manager (FIM) 2010 / 邱爵榮 / SIA305 / 102
  • 16:25 - 16:40 MVP 下課 15 分鐘教室:XP Embedded 結合機器人的應用 / 吳明展 / 103
  • 16:50 - 18:00 使用 IIS Application Request Routing 可延展的網站基礎架構 / 胡士亮 / WSV302 / 201BC




#1 連接未來的 ASP.NET - 談 ASP.NET 4.0 整合 HTML5 & CSS3奚江華

這一場裡示範了 HTML 5 與 CSS 3 新的標籤與屬性在視覺上帶來的效果。在開發時,Visual Studio 2010 有「套用樣式」的功能,在樣式的選單中就可以預覽樣式套用的效果,滿類似我們在 Office 2003 之後版本,在 Word 裡看到的字型預覽。

但 Visual Studio 目前不支援 HTML 5 + CSS 3 的預覽,例如:在表單上套用圓角矩形效果,是無法在 IDE 上看出效果的。

主流繪圖工具皆支援 SVG 匯出功能,設計師可以在繪圖軟體(例如 Inkscape)匯出 SVG 後,再把 XML 直接填入網頁原始碼中。



#2 Microsoft Office 程式設計的過去、現在、未來,湯民富(範例程式碼下載投影片下載

寫 VBA 的人一定要選這堂的啊,我從以前第一次聽湯民富講課就覺得他講課很有料、節奏也安排得很好,除了語速有點快以外沒什麼好挑剔的了。


這堂課講到在 Office 上開發的程式──Office 2003 之前是 VBA,到了 Office 2007 時開始出現了 OBA,以 Office 和 SharePoint 作為 presentational tier,與外部資料夾、系統相連接。Office 2010 未來還是持續支援 VBA,不過 VBA 開發人員會面臨找不到 VBA 編輯器在哪的窘境,因為預設是隱藏的。想打開的話步驟如下:

  1. 檔案→選項→自訂功能區
  2. Ribbon 右鍵→打開「開發人員」頁籤,就可以找到 VBA 編輯器


VBA 舊專案要升級上來要面臨的調整包括:有些屬性或方法被移除,因此要尋找替代;大多數的 VBA 在 32-bits OS 上可以正常運作、但在 64-bits 會因為控制項不支援而爆炸(例如表單的 combobox);或是 32-bits 和 64-bits 之中的同名函式參數不同,所以造成參數要調整。

為了這方面的相容性檢查,微軟提供了 Office 2010 compatibility inspector tool,這個相容性檢查工具整合在 Office 2010 & VS 2008 以上版本,可以檢查專案中不相容的部分並加以註解,修改完成後也可以一鍵移除所有這方面的註解。但目前這個檢查工具不支援批次作業,得一個個檔案打開來檢查,未來新版可能會提供批次處理功能。


SharePoint 以前有 BDC (Business Data Catalog)、現在有 BCS (Business Connectivity Services),可以將資料寫回 DB 裡。透過這些新技術,客製化後的 Office 也可以變得很強大,表單可以直接在 Office 填寫後回傳給系統,不需要再經過 Web form / Window form。

想要在 Office 上開發程式,可以透過 Visual Studio,不過只有 VS 2010 支援 Office 2010 的 VSTO 開發就是了。

在 Office 2010, .NET framework 4.0 時就不必再部署 PIA,已經內建進去,但工程師在 Visual Studio 開發時還是要補下載 Office 2010 PIA。


在 Office 2007 開始,上方的工具列變成炫麗多彩的 Ribbon;而過去的「檔案」(在 Office 2007 是個旗標圖示,在視窗左上角)打開後有很多頁籤,這些頁籤稱之為 BackStage。若開發人員要開發自訂的 Ribbon,在 Visual Stuio 專案類型為「視覺化工具」;要開發 BackStage,專案類型就是 VSTO 的 XML 範本,BackStage 還可以放 WPF 控制項。

開發這方面的程式,最前面少不了要 Import Microsoft.Office.Interop.Word,值得一提的是現在內建有可另存 PDF 的方法:ExportAsFixedFormat()。


如果只是要產出帶有格式的文件,由於從 Office 2007 開始就支援檔案內容為 XML 的文件格式(在 Office 2007 以前版本的 Office 文件都是 binary),開發人員可以嘗試使用 Open XML SDK v2.0

為什麼建議使用 Opem XML SDK 呢?因為傳統使用 Interop 來開發 Office 相關的應用程式,往往在執行時都需要配合兩大 SOP:

  1. 要每兩天重開機一次:由於 GC 機制不佳,即使 dispose 仍會有工作卡住
  2. 要每兩個小時看一下有沒有 message box 跳出來卡住程式,有的話要去點掉


會有這些問題是因為 Office 本來就不是開發給 server 用的,所以搭配起來就沒那麼完美,也必需要在 Server 上裝 Office、裝對應的 PIA。使用 Open XML SDK 就不需要在 Server 安裝 Office 了。但 Open XML SDK 也並非萬靈單,無法取代 Office 物件模型,例如字數統計、版面設定、格式轉換的另存新檔(doc 轉 docx 或者 doc 轉 pdf 等等)。

開發時,不需要自己手刻文件範本,例如要建立一份 Word 文件範本,只要和平常編輯文件一樣,拉表格、設格式,最後在存檔時另存為 XML,就能夠得到文件範本了。如果要在特定位置填值,可以插入內容控制項、並為這些內容控制項取 alias,在程式中透過 alias 來賦值。

Open XML SDK Productivity Tool 這個輔助工具和 MSDN 一樣,是個參考書,可以查閱所有 function 用法。另外,在這個工具裡,開啟舊檔→開 Office 檔案,可以反組譯每段 Office XML 程式,反轉後再調整就可以直接用。目前此工具只限產生 C# code,如果需要 VB code 暫時請先上網自行找工具轉換之。

SharePoint 2010 增強在瀏覽器中處理 Office 文件的能力,其 Word Automation Service 可以很方便的進行格式轉換的另存新檔,企業可以把這個功能運用在大量文檔管理上。




20100928-20100930 微軟 Tech Days

因為大會給的 101 餐券,一餐的 quota 是兩百塊,我吃的很簡單,根本花不完,第二天還可以約佳佳一起午餐一起 share,吃飯的時候聊了好多,她笑我說我們怎麼老是只有在台北的時候可以好好吃飯講話啊,我也只能說抱歉啦,畢竟上次她難得來高雄我卻跑去台北考試了。

回台北國際會議中心的路上,我選擇走 101 二樓天橋、穿過世貿走回去。往旁邊一看,天氣好得不像話。我身邊經過的 Tech Days 學員說:「預報不是說要下雨嗎?怎麼這麼熱!」

──晚上拎著一堆東西要回家睡覺時,好吧,你們要的雨就下了。 XD




#3 軟體測試實務應用 - 測試自動化及進階除錯技巧胡百敬

這一場主要是要講 Visual Studio 2010 Ulitimate Edition 對測試帶來的幫助。

為什麼需要改變測試的方式呢?胡老師說了一個故事,很傳神地表達出現在的測試人員與開發人員的合作方式──測試人員在他的測試環境中,發現電燈壞了,試著再重複開關個幾次,確定真的打不開,於是提出了 bug、請開發人員修正,只見開發人員氣定神閒的打開自己桌上的電燈(=開發環境上的程式),「這燈沒壞啊。」

往往測試環境與開發環境,會造成無法重現問題、難以除錯。

而對測試的重視度,產業裡的現況大概是:硬體 product > 軟體 product >>>>> 軟體 Project。(專案型的產業有時還會靠 end-user 來測試。XD)

測試的管理工具方面,目前看到最多的方式是用 Excel,來記錄允入、允出準則等等,但是這種人工管理的模式,當程式一有異動時,很難掌控到哪些 test case 要跟著變動。Visual Studio 2010 有 test impact analysis,可以得知某行程式會影響哪些 test case,若有修改就可以知道要重測哪些 test case 來驗證。

有的人反映 test manager 不好用,因為每個 test case 都是一個 TFS 上的 work item。如果真的覺得想用舊方法(例如 Excel) 來記錄,可以先開一筆 work item,再把該份 Excel link 進來。


測試行為可以錄製成共用測試,以增加測試的再用性。Bug Tracking 時,Bug 的資訊可以包括擷圖或錄影檔,開發人員收到錯誤提報時,就能夠更精確瞭解問題形成時的面貌;每一個 Bug 也是 TFS work item,也有助於後續的追蹤。

另外還有智慧偵錯 (IntelliTrace) 功能,可以記錄程式所觸發的事件,例如:multi-thread 程式中是哪些 thread 影響。



#4 微軟身分識別與存取控制的終極解決方案: Forefront Identity Manager (FIM) 2010,邱爵榮

平常邱老師所負責的業務是 solution、並非 product,所以這場不講詳細設定,而是來談談導入 FIM 2010 後對企業的好處是什麼。

FIM 2010 的前身為 ILM,在 FIM 2010 中,系統提供了方便的管理介面:FIM portal,所有設定都透過入口網頁操作即可。

帳號管理的資料,可以由 FIM 和各系統之間取得關鍵屬性,互相同步資料。實務上的案例是:雲林科技大學每年都有很多的學生進進出出,而該校的 e-mail hosting 在 Live Mail,每學期需要大量地同步使用者清單,若使用傳統的管理模式,管理使用者資料並不方便,有了 FIM,每學期的學生帳號建置就輕鬆不少;另外,FIM 2010 也有流程設計,目前有某政府單位希望能用電子簽章跑公文,其流程就可以設計在 FIM 2010 之中。



#5 MVP 下課 15 分鐘教室:XP Embedded 結合機器人的應用,吳明成

由於每堂課之間的休息時間不長,本來怕參加了 MVP 下課 15 分鐘教室會來不及到下一堂課報到,都不敢去;第二天發現到其實各門課教室很少滿座,就放心的跑去聽了。

這堂課講者拿出了一隻貨真價實的嵌入式 XP 機器人來,機器人跑起來很有趣,可以做體操動作、撿東西,講者說他家裡還有一隻會在玄關和客人打招呼的機器人。 XD

開發嵌入式 XP 上的程式和一般的程式開發差不多,他的機器人是用 VB 來開發。機器人的舉重能力很高,現場帶來的機器人雖然小小一隻,但要舉起百來公斤的東西是沒有問題的。在機器人身上可以加入影像辨識等等模組擴充功能,擴充功能後,可以使用在家庭照護等生活功能上。不過機器人本身的關節並不便宜,隨隨便便一隻機器人都是好幾萬起跳,目前多數都是研究單位在用,還沒有辦法低價到能夠普及到日常家庭中。

20100928-20100930 微軟 Tech Days



#6 使用 IIS Application Request Routing 可延展的網站基礎架構胡士亮

這一場是 IIS 上的 ARR 模組與 CDN 的介紹。

有很多大型活動造成網站塞爆,不是技術選擇問題,而是系統架構調整要多方面思考。想要分散網站的負擔,可以考慮使用 ARR (Applicaation Request Routing)。ARR 是 IIS 7 以上才能使用的模組,第二版 ARR 更支援了硬碟快取(第一版只能快取在記憶體)。

ARR 可以做要求彙總 (Request consolidation)──如果同時有四面八方送出的一百個內容相同的 request 跑到 server 上,透過 ARR,可以將這些 request 彙集成一個去討 response 回來、再一起回應給 client,以減輕 server 負擔。

裝了 ARR 以後可以建立 server farm,此功能相依於 URL rewrite,至少要為 URL rewrite 設定預設值。只是講者自己也吐槽了目前 ARR 的 UI 上有部分內容翻譯不到位,例如:在 load balance 的設定中,有個「偶數分散」,其實應該翻成「平均分散」。 :p

Visual Studio 的 Web 效能測試可以用來做壓力測試,現場用這個功能來看 ARR 效果。


如果網頁內容只是純粹的靜態內容,可以 preload 到硬蝶來提升提供服務的速度;但以 live smooth streaming 為例,它無法快取,所以要進行要求彙總來促進效能。

Smooth streaming 是一種可以偵測使用者頻寬、提供該頻寬下的合理畫質、且高低畫質切換之間不停頓的技術,它的 video 每兩秒會切為一個 trunk,從最低頻寬開始播放再漸進切換。這種技術在 Silverlight 可支援,但要先把影片透過 Expression encode 轉成 smooth streaming 格式,並在 Silverlight 程式中引用 meida SDK(以判斷頻寬與要供應的畫質),IIS 上要裝 media pack,才能夠執行。


ARR 使用時,後端 content server 可以是 apache,不一定要通通是 IIS。如果需要登入才能下載檔案,由於 ARR 本身無法判斷登入,可以利用 cookies or server variable 判斷。ARR 不適合用在 SSO,只適用於提供靜態內容的網站。

ARR 本身也是 server farm,演算的方式是用 hash 來判斷 URL request,相同的 hash 就丟到相同的機器。cache 可以設定逾時時間(例如:五分鐘)或硬碟空間限制(例如:50 GB)。

有人問到傳統 Windows 內建的 NLB 演算法,答案是 waiting & run robbin。另外也有人問到,透過 ARR 是否會導致程式無法抓取使用者的來源 IP(會只看到 server IP),答案是:要抓使用者的 source ip 必須透過其他屬性,這和其他 proxy 的限制都一樣。






會場現場有可愛的乖乖大神駐守。我不喜歡奶油椰子口味,所以我沒有注意現場有沒有給大家乖乖當點心,不過今年乖乖人真好,四處贊助工程師們……我記得上次去 COSCUP 2010 也看到一大疊乖乖山啊。

20100928-20100930 微軟 Tech Days

乖乖大神和 show girl 玩猜拳。會跳 sorry sorry 的乖乖大神人氣明顯比旺旺還來得旺,我想應該是因為不管是 IT or Developer 都希望機器和程式乖乖運作、而沒有人希望自己的問題旺旺來的關係吧。 XD

20100928-20100930 微軟 Tech Days20100928-20100930 微軟 Tech Days










tags: teched / techdays2010 / techdays / microsoft




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


留言列表 (1)

發表留言
  • 湯民富
  • 你好用功呀~ 把課堂的內容都詳實的記錄下來了,感謝你的建議,還有機會的話,我會把講的速度再調慢一點 :)
  • 哇!大師出現,有神快拜!XD

    剛剛想說「難道我終於可以得到大師的 blog 網址了嗎」,結果你留下來的網址和 mail 都是填滿表單用的而已。(泣)

    謝謝你的課講得那麼棒,我覺得 VBA 很有趣喔!如果你有寫書的話我一定要推薦給商科的親朋好友們看,如果你用筆名出書還請偷偷透露ㄟ :D

    小草 於 2010/12/07 22:25 回覆

【 X 關閉 】

【PIXNET 痞客邦】國外旅遊調查
您是我們挑選到的讀者!

填完問卷將有機會獲得心動好禮哦(注意:關閉此視窗將不再出現)

立即填寫取消