引言:《誰動了我的奶酪》啟示
斯賓塞·強森的寓言書指出:環境與需求如奶酪般會變質,關鍵在於承認變化、保持警覺、勇於尋找新奶酪。對開發者而言,奶酪隱喻我們熟悉的技術平台、工具與職涯舒適區。
Windows 開發者的奶酪正在被移動
長期以來,我們自稱「Windows Developers」,使用 VB、VC++、Delphi、C++ Builder,依賴各種 IDE 在 Windows 平台深耕。但 2001 年微軟推出 .NET,徹底改變技術底層:
- COM 消失:元件模型被組件取代。
- ADO 消失:被 ADO.NET 取代(離線架構、XML 序列化)。
- 指標消失:受管理堆疊、垃圾收集取代手動記憶體管理。
- VB Win32 API 消失:P/Invoke 取代,但大多 API 已封裝於 BCL。
- 新語言 C#:專為 .NET 設計,現代語法、型別安全、版本控制。
- 統一類別庫 (BCL):跨語言、階層化、取代 MFC/WFC/VB API。
- ASP.NET:編譯式、事件驅動、伺服器控制項,取代解釋式 ASP。
變化的本質:從緊密耦合到鬆散耦合
.NET 核心在於Web Services:以 XML、SOAP、WSDL、HTTP 為基礎的鬆散耦合分散式運算。開發者不再建構整體應用,而是組合、發布、消費服務。這要求思維轉換:
- 從「物件參考」到「訊息交換」。
- 從「同步呼叫」到「非同步、長時間執行」。
- 從「單一平台」到「跨平台、跨語言互通」。
如何尋找新奶酪?
- 接受現實:舊技術(VB6、COM、經典 ASP)進入維護模式,不再演進。
- 投資學習:C#、.NET Framework、ASP.NET、ADO.NET、XML/Web Services 核心棧。
- 實作練習:建立第一個 Web Service、消費公開 API、部署至 IIS。
- 社群連結:參與技術論壇、研讀 MSDN、追蹤微軟路線圖。
- 轉移既有資產:以 Interop 逐步遷移 COM 元件,採用分層架構隔離舊代碼。
給不同角色的建議
| 角色 | 行動重點 |
| VB6 開發者 | 優先學習 VB.NET(語法相近)與 .NET 概念,再評估 C#。 |
| C++ 開發者 | 掌握 Managed C++ 與 C#,理解受管理/非受管理互通。 |
| 架構師 | 設計服務導向架構 (SOA),定義服務契約與版本策略。 |
| 專案經理 | 規劃技術遷移路線圖,預留學習緩衝期,評估風險與 ROI。 |
結語
奶酪已被移動,抱怨無法阻止變化。唯有主動適應、持續學習、擁抱服務導向思維,才能在 .NET 時代找到屬於自己的新奶酪。變化雖痛苦,卻是成長的唯一路徑。