首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> ASP.NET 基礎 >> 關於ASP.NET

BlogEngine.NET 架構與原始碼分析系列 (10) 開發擴展 (中) - Widget 小工具

     編輯:關於ASP.NET

Widget 概念

頁面側邊欄的模組化功能區塊:分類列表、行事曆、標籤雲等。統一開發標準,即插即用。

核心基類

  • WidgetBase:繼承 UserControl,重寫 Render 產生統一外框 (標題、編輯按鈕、內容區)。抽象方法 LoadWidget 初始化內容。IsEditable 決定是否顯示編輯鈕。GetSettings 從 DataStore 讀取設定並快取。
  • WidgetEditBase:可編輯 Widget 的編輯介面基類,抽象 Save 方法持久化設定,提供 Saved 事件。

目錄結構規範

/widgets/{WidgetName}
  widget.ascx (.cs)      // 繼承 WidgetBase
  edit.ascx (.cs)        // 繼承 WidgetEditBase (若 IsEditable=true)

TextBox Widget 實作範例

public override void LoadWidget()
{
    var settings = GetSettings();
    if (settings.ContainsKey("content"))
        Controls.Add(new LiteralControl(settings["content"]));
}
public override string Name => "TextBox";
public override bool IsEditable => true;

編輯介面 edit.ascx 提供文字區編輯內容,Save 寫回 DataStore。

載入機制

  • 頁面載入時掃描 /widgets 目錄,實例化各 Widget 控制項加入側邊欄 PlaceHolder。
  • 設定讀寫透過 DataStore 統一序列化儲存 (XML/DB)。

總結

Widget 以「基類契約 + 目錄慣例」實現高度模組化側邊欄,開發者可快速新增功能區塊無須修改核心代碼。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved