AI Revamp(重構):Classic ASP → C#.NET

[29 Mar 2026]

前言

2025 年,我接觸到一個十多年前的「怪胎」系統。它的前端是 DotNet 風格的 HTML,而後端卻是 Classic ASP (VB 語法)。這種混搭在當年並不少見,因為 ASP.NET 初代版本相容 Classic ASP,讓很多人能快速製造出可運行的網頁系統。


然而,這樣的架構往往難以維護,資源控制也很差。當年不少開發者對 .NET 不熟悉,於是衍生出這類「怪胎系統」。

系統特點

  • 每個功能都是獨立的 ASP 頁面,沒有使用 #include 引入其他程式檔。
  • SQL 指令直接寫在程式碼中,缺乏儲存過程的結構化管理。

這些特點讓系統能跑,但維護成本極高。

重構策略

我已有一個 .NET Framework 4.8 的 C# 框架,於是採取以下步驟:

  1. 前端移植:舊版的 HTML 本身已採用 .NET 風格,因此可以直接移植到 .aspx 檔案中。我僅保留<body> 區塊內的 HTML,以及相關的 JavaScript 函式,確保前端結構完整並能順利整合到新的框架。
  2. AI 輔助轉換:利用 Copilot 將 VBScript 後端程式碼轉換為 C#。
  3. 資料庫優化:手動將 SQL 指令改寫成儲存過程,並將程式碼改為執行儲存過程。
  4. 程式碼可讀性:AI 在轉換過程中自動加上註解,讓程式碼更容易理解。
  5. 功能修正:AI 在轉換日曆功能時,產生了相同的錯誤,導致每一頁都有 bug。最後我與 AI 一起找出統一的修正方法,並套用到所有相關頁面。

工具的力量:AI + C#

這次重構的過程,AI 工具與 C# 的結合發揮了巨大作用:

C# 的優點

  • Strong Typing (強型別檢查):減少執行階段錯誤,讓程式更穩定。
  • using 區塊自動管理資源,避免連線洩漏。
  • ADO.NET 搭配儲存過程,提升安全性與效能。
  • Web Form 搭配 Class,結構簡單,維護容易。

Copilot 的優點

  • 快速將 VBScript 轉換成 C#,並加上註解。
  • 自動生成樣板程式碼,減少重複工作。
  • 提供最佳化建議,讓程式更符合 2025 的標準。
  • 幫助建立統一的工具函式,例如日曆修正,避免每頁重複修正。

選擇 .NET Framework 的理由

  • 長期支援:Microsoft 會持續支援 .NET Framework,確保系統在未來仍能穩定運行。
  • 資源豐富:.NET Framework 擁有大量的網上資源與技術文件,讓 AI 工具更容易找到參考並完成程式碼重構。
  • 成熟生態:多年累積的社群經驗與範例,讓維護與擴充更有保障。

Microsoft 生態系的加乘效果
由於 Copilot、ASP.NET 和 C# 都是 Microsoft 出品,它們在同一生態系中有天然的協同優勢:

  • Copilot 對 Microsoft 技術棧的熟悉度高,能更快理解語法與框架特性。
  • SQL Server、.NET Framework、C# 彼此相容性強,AI 在重構時能更容易生成正確的程式碼。
    這種「母語級」的理解,讓 Copilot 在 Microsoft 技術棧上的表現特別出色。

利用免費 AI 的取捨

  • 雖然使用免費 AI 能大幅節省開發時間,但仍需要大量檢查。整體時間與自己手寫程式差不多,然而因為多了檢查步驟,反而減少了盲點,結果更可靠。

從怪胎到正常專案的轉變

  • 舊系統結構過於怪胎,稍微改動程式碼就容易引發麻煩錯誤。重構成正常的 .NET 專案後,程式架構更清晰,修改與擴充都變得友善得多。

Before vs After

重構前:

  • 雜亂的 ASP 頁面,程式碼分散且難以維護。
  • SQL 指令直接嵌入程式碼,缺乏結構化管理。
  • 日曆功能 bug 反覆出現,每頁都要手動修正。
  • 程式架構怪胎,少少改動就容易出錯。

重構後:

  • 統一的 C# 架構,程式碼更清晰。
  • 資料庫改用儲存過程,效能與安全性提升。
  • AI 協助程式碼轉換與加註解,日曆 bug 以統一方法修正。
  • 專案結構正常化,改動更友善,維護更輕鬆。

結語

AI 並不是每次產生程式碼都百分百準確,尤其當多次生成之後,可能突然完全壞掉。因此,要好好保存每一個版本,萬一有問題都可以重用以往一個可行的版本。

這次重構過程並不算複雜,撰寫提示 (prompt) 也相當直接,但仍需要細緻的測試來確保穩定性。AI 工具大幅減少了重複性工作,而 C# 的簡單結構則讓系統更穩定、更具持續性。


十多年前的怪胎系統,因為 AI + C# 的結合,終於獲得了新生命。