ASP.NET 2.0 在 Web 應用程式本地化方面引入革命性改進:Visual Studio 2005 整合「產生本地資源」、強型別全域資源存取、宣告式本地化表達式、自動文化特性偵測等。然而實務專案很快會面臨擴充性挑戰:
- 如何從替代來源(獨立資源組件、資料庫)載入資源?
- 如何管理混合環境(本地+全域+外部來源)?
- 如何控制資源來源同時保留設計工具整合優勢?
- 如何滿足企業級開發流程與多租戶客製化需求?
三部曲系列規劃
- 第一篇(本文):核心擴充機制——自訂資源提供者、表達式建構器、頁面剖析/編譯/執行期整合。
- 第二篇:Visual Studio 2005 設計工具整合——資源編輯器、IntelliSense、專案範本擴充。
- 第三篇:複雜資源階層——多租戶支援、客戶端自訂資源覆寫機制。
核心擴充點總覽
| 擴充點 | 角色 | 關鍵類別/介面 |
| 資源提供者 | 資料存取抽象 | ResourceProviderFactory、IResourceProvider |
| 表達式建構器 | 宣告式語法支援 | ExpressionBuilder、ResourceExpressionBuilder |
| 設計工具整合 | 開發體驗增強 | ResourceBuilder、自訂專案項目範本 |
資源部署痛點分析
傳統 .resx 檔案部署存在問題:
- 翻譯流程外包困難,檔案分散專案各處。
- 多伺服器部署同步複雜。
- 執行期修改需重新編譯部署。
- 無法支援動態租戶級資源覆寫。
解決方案架構願景
建立以資料庫為核心的資源儲存,搭配快取層、提供者工廠、自訂表達式建構器,實現:
- 集中式資源管理與版本控管。
- 執行期熱更新,無需重啟應用程式。
- 多層級回退機制:租戶資源 → 共用資源 → 預設資源。
- 完整保留 VS 設計時驗證、IntelliSense、強型別存取。
本系列將逐步實作此架構,助力企業級本地化解決方案落地。