今天通過了第三科考試:070-547(MCPD: Web Developer)。

因為不知道會考什麼,所以沒有什麼準備就去考了(反正有一次免費重考的機會)。本來是打算先了解一下考題的方向和範圍,沒想到順利過了。

考題一共 40 題,時間只有兩個小時。我覺得跟上一科 (070-528)比起來,這科反而比較好考。

當然也不能說容易,只是 070-528 考的是進階的 ASP.NET 技術,考題挺細的。而 070-547 的考題偏向 Web 應用程式的架構設計、物件導向設計、資料庫設計、效能、延展性.....等,我覺得主要是設計方面的決策。考題當中大部分都是描述一個設計的需求,然後問 你用哪一種設計方法最好;或者是提出了解決方案,問你那個解決方案是否完整,少了什麼東西,諸如此類的。如果本身具備應用程式架構設計和元件設計的經驗, 我想應該會覺得容易些。

ASP.NET 技術當然也會考,例如個人化網站就考了兩三題,你應該要了解 Editor parts、User Profiles、Themes、Catalog parts 的用途和使用時機。另外,如果要讓網頁有一致的外觀,應該使用 XHTML+CSS 還是用 Master page,還是寫一個基礎類別讓其它開發人員繼承,光這個議題就考了兩三題,而且答案視題目給的條件和需求而各有不同。

從這裡也可以看出,這科的考試不只是考你是否了解 ASP.NET 的各種技術和控制項,更重要的是看你知不知道在什麼情況下該如何選擇適當的技術來解決問題。

記得還有考幾題跟 Web Farm 有關的題目,不外乎就是 scalibility 的議題,以及 session 要放在哪裡。另外還有 ASP.NET 網頁的自訂錯誤處理、@Page 指示詞的 Async 屬性、QueueUserWorkItem、Wizard 控制項等。

喔,Wizard 控制項可不是考你怎麼使用,而是怎麼設計喔!題目大概是問你:要讓一個初學者能夠很容易的透過你設計的 Wizard 頁面完成一系列的步驟,請問應該如何將每一步的操作說明顯示給 user 看。我選擇的答案是在每一步驟的上方顯示這個步驟的操作提示,不知道對不對就是了。其它的答案包括:在每個控制項右邊放一個隱藏的 Label,其內容是該控制項的說明,每當 user 按 Help 鈕時,就把 Label 顯示出來。另一答案是每當 user 按 Help 鈕時,開啟一個 HTML 說明頁面。

物件導向設計的部份,記得考了一題多型,雖然題目裡面沒有出現多型的字眼,但是確實是考你是否知道多型的概念。你必須知道什麼是 abstract class、virtual method 和 abstract method 的差別,並依照題目的情境來判斷什麼方法應該宣告為 virtual,什麼方應該宣告為 abstract。還有一題是考物件關聯,也就是給你一張 E-R diagram,請你設計對應的類別。

還有考兩三題單元測試,連 Code Coverage 的概念也有考喔!

大概就只記得這些了。