控件開發是發掘程式設計師創造力的最佳途徑,要求跨越前端(HTML/CSS/JS)與後端(.NET Framework、設計模式、架構)的全棧能力。本系列開篇建立核心認知框架。
四大核心認知
1. ASP.NET ≠ ASP+
- ASP:COM 架構、直譯執行、VBScript/JScript、HTML 與程式碼混雜
- ASP.NET:.NET Framework、編譯執行、C#/VB.NET 完整 OO、Code Behind 分離、Web Services/Remoting 整合
- 效能、功能、維護性全面超越,非單純改名
2. ASP.NET 頁面生成本質
- IIS 裝載 → AppDomain 隔離 → 首次編譯為機器碼
- .aspx 內容本質是
Render 方法的一連串 writer.Write 呼叫
- .aspx.cs 才是真正的邏輯核心,.aspx 僅是視圖模板
3. 技能投資雙軌制
| 軌道 | 內容 | 關係 |
| 前端實作 | HTML/CSS/JS/DHTML 完成創意介面 | Render 的輸出素材 |
| 架構思維 | 設計模式/UML/框架/AOP/MDA | 決定如何組織邏輯、擴充、維護 |
缺乏前端基礎無法產出優質 Render 輸出;缺乏架構思維無法驾驭複雜控件邏輯。
4. Attribute:中介資料的操作工具
- 編譯器產生 Assembly 時同時產生 Metadata(類別、方法、屬性、欄位描述)
- IDE 透過 Reflection 讀取 Metadata 實現 IntelliSense、屬性視窗、物件瀏覽器
- Attribute 讓開發者在原始碼標記 Metadata,控制設計時/執行時行為
- 例子:
[Browsable(false)] 隱藏屬性、[DefaultValue("")] 設定預設值
前置準備清單
- ✅ HTML/CSS/JavaScript 扎實基礎
- ✅ C# 或 VB.NET 物件導向程式設計
- ✅ .NET Framework 核心類庫熟悉度
- ✅ Attribute/Reflection/Metadata 概念理解
- ✅ 設計模式基本認識(至少 Strategy、Factory、Composite、Template Method)
系列規劃預告
- 控件生命週期與起步
- 屬性持久化與設計器序列化
- TypeConverter 與 PropertyTab
- UITypeEditor 視覺化編輯
- ComponentEditor 元件編輯器
- ControlBuilder 編譯期解析控制
- 進階主題:設計器、資料繫結、模板、樣式