ASP.NET 1.x 時代,開發資料驅動頁面需手寫大量 ADO.NET 程式碼:建立連線、命令、資料配接器、填充 DataSet、綁定控制項……一個簡單的 GridView 編輯頁面動輒百行程式碼。ASP.NET 2.0 在 2005 年推出,宣稱「減少 70% 程式碼」,核心在於引入 資料源控制項 與 資料繫結控制項 的宣告式程式設計模型,讓開發者專注於商務邏輯而非管道代碼。
Common Language Runtime 提供記憶體管理、組件載入、安全性、JIT 編譯等服務,支援 C#、VB.NET、F# 等多語言互通,是 ASP.NET 應用程式的基石。
System.Data:ADO.NET 核心,包含 SqlClient、OleDb、EntityFramework 等資料存取元件。System.Web:ASP.NET 管道、控制項、快取、Session、安全性等 Web 應用模型。System.Configuration:web.config 讀寫、連線字串管理。System.Xml:XML 處理、序列化、XPath、LINQ to XML。<asp:SqlDataSource ID="SqlDataSource1" runat="server"
ConnectionString="<%$ ConnectionStrings:Northwind %>"
SelectCommand="SELECT * FROM Products"
UpdateCommand="UPDATE Products SET ProductName=@ProductName WHERE ProductID=@ProductID">
</asp:SqlDataSource>
<asp:GridView ID="GridView1" runat="server" DataSourceID="SqlDataSource1" AutoGenerateColumns="False">
<Columns>
<asp:BoundField DataField="ProductName" HeaderText="產品" />
<asp:CommandField ShowEditButton="True" />
</Columns>
</asp:GridView>
零後端程式碼即可完成查詢、分頁、排序、編輯、刪除,SqlDataSource 內部封裝連線管理、參數化查詢、交易處理。
搭配自訂商務邏輯層(BLL)與資料存取層(DAL),ObjectDataSource 直接呼叫物件方法,支援型別安全參數、自動對應、舊值衝突檢測,實現真正的三層式開發。
.NET 3.5 引入 LinqDataSource、EntityDataSource,支援 LINQ 查詢語法、延遲執行、變更追蹤,進一步提升開發效率。
| 控制項 | ASP.NET 版本 | 特色 |
|---|---|---|
| DataGrid | 1.x | 表格式,功能有限,需大量程式碼 |
| GridView | 2.0 | 支援編輯、分頁、排序、範本、資料鍵 |
| DetailsView / FormView | 2.0 | 單筆記錄顯示/編輯,支援範本完整自訂 |
| ListView / DataPager | 3.5 | 完全掌控 HTML 輸出,支援群組、分頁控制項分離 |
| Repeater | 1.x | 輕量、無預設版面,完全由範本決定 |
aspnet_regiis -pef "connectionStrings" 加密 web.config 敏感區段。SqlDataSource.EnableCaching="true" + CacheDuration 減輕資料庫負載。GridView.AllowCustomPaging 搭配預存程序 ROW_NUMBER() 分頁。EnableViewState="false",編輯頁面僅對必要控制項啟用。ASP.NET Core 採用 Middleware 管道、Dependency Injection、EF Core、Tag Helpers、Razor Pages/Blazor,雖架構大異,但「宣告式資料繫結、分層關注點分離、參數化查詢、快取策略」等核心思想延續至今。理解 2.0 時代的設計精華,有助於在現代框架中做出更優雅的架構決策。