作者:吳祐賓
拋開『技術規格』談情懷,就是耍流氓
先說結論:AI 在 Delphi 改寫上並不值得相信,你仍必須有足夠的 Debug 知識。否則就算把 AI 罵哭,它寫的程式碼也提高不了多少正確性 (笑)
很久很久以前,DataSnap 在 2010 年的 XE1 迎來史詩級的改變,全面整合後端與前端,保證你在開發的每個角落都能看到、用到 "DataSnap",後端使用的叫 "DataSnap Framework",前端使用的叫 "DataSnap JavaScript Framework"
光陰似箭,時間來到 2026 年 RAD Studio 13.1,回顧 DXE 到 D13.1,十多年來 DataSnap 到底做了什麼重大改變:
1. DataSnap js framework 預設 sync AJAX 的問題改善了沒?
2.
Async callback hell 改善了沒?
3. Basic Auth
以外的驗證機制提供了沒?
4. 推出相容 VUE, REACT, Angular
的現代擴充了沒?
沒有,一個都沒有!
取而代之的,是 Marco Cantu 自研而來的 WebStencils server-side template engine(語法就是 ASP.NET Razor Pages:@if、@for、@RenderBody、@LayoutPage 等)
搭配著 HTMX,直接讓你十多年前的情懷封頂! 把現代 JavaScript 直接從 Delphi 世界中除名,眼不見為淨
HTMX 在開發原型 (Prototype Web Application) 的場合,確實是好用、舒服的解方
但我要寫的是現代 Web 應用!用的是 DevExtreme 這類能夠將 VCL 豐富體驗完整照搬到 Web 上的極緻方案!
看在我的眼裡,這等同官方親口承認:
「JS 整合之路,我不玩了」!
我之所以在意,是因為必須為相信我的讀者負責
我曾是虔誠信仰 DataSnap 的信徒,但人一生能有幾個 16 年?
官方許多華麗,但用起來坑一大堆的推廣,放在現在來看,像是拿自己的娛樂在挑戰我們的飯碗。所以我決定在這一刻停止,離開 DataSnap ,走往象徵應許之地的 horse
接著,用一個標準 DataSnap 專案,透過 Gemini CLI 輔助,平順地完成 Horse 大遷徒
建立 DataSnap REST Application
參考【DELPHI IN DEPTH DATASNAP 網站應用程式全端開發】一書
或
張子仁老師的【建置DataSnap Client Server 1, 2, 3】 系列文章
完成後的網頁畫面應該如下:
|
| 經典 Delphi 水族箱資料庫網頁化展示 |
建立 Horse 空白專案
參考這篇文章,逐步建立 Horse 空白專案 :【Delphi 現代化轉型】Day 3:授權降階計畫:用 Horse 跑出 API,每人年省 $2,000+ 支出
將上述 DataSnap 和 Horse 專案一併放到給 Gemini CLI 操作的資料夾,避免 AI 出格,也能專注在指定區域作業
我的路徑是 "vclDemos\geminicli" 作為 Gemini CLI 測試路徑 ,供您參考
安裝 Gemini CLI
Gemini 免費帳戶也能好好使用 Gemini CLI!
然而,Google 除了給訂閱 AI Pro 用戶 5TB 超大容量雲端硬碟 (2026-04-05 新聞) 外,Gemini CLI 也給得很大方,不僅能使用 API Token,還能夠使用 Google AI Pro 帳號登入消㧌 Chat 用量模式
1. 記得先安裝 Node.js,這是 Gemini CLI 的必要環境
2. 進入 https://geminicli.com/ 複製以下指令就可以安裝 Google CLI:
npm install -g @google/gemini-cli
|
| Gemini CLI 官網 |
執行 GEMINI
進入前面建立的 Gemini CLI 測試路徑,執行 "gemini",初次執行時,Gemini CLI 會要求身份驗證,有三種方式,我選 "Login with Google":
- Login with Google: 透過 Google Gemini Code Assist 認證
- Gemini API Key: 透過 GEMINI_API_KEY 進行認證
- Vertex AI: 透過 Google Cloud 使用 Google Gemini API
|
| Google Gemini Code Assist 登入 |
|
| 驗證成功! |
|
| PowerShell 也會回報訊息 |
再次執行,系統會詢問 AI 可否執行的權限:
1. 信任當前目錄
2. 信任上層目錄
3. 不信任
這裡我選 "1",Gemini 就只會在該目錄下操作。
Gemini CLI 支援中文交談
設定完成後,就可以在對話框中輸入訊息和 Gemini 交談,而且中文也可以通!
|
| 中間底下的對話框可以輸入中文 |
|
| Gemini 看得懂中文,也會用中文回答你 |
讓 Gemini CLI 成為自動化遷移工具
接著叫 Gemini CLI 做 DataSnap 專案遷徒到 Horse,要求它將 DataSnap API 在 Horse 重製
後端 API 遷徒 Prompt:
把 DataSnap 專案中的 API,復刻到 Horse,允許你使用 Horse 語法進行要國中生能看懂的最簡單解,若內部資料庫不足,必須使用網頁查找 Horse 相關文件進行調整,嚴禁瞎猜設計
前端 API 遷徒 Prompt:
Horse 建立前端網頁 reactclient.html,參考 DataSnap 的 reversestring.html 使用 React.js Stand-alone 方式復現,horse 要能載入此靜態網頁,api 連結 horse server,以簡明方式設計,不要炫技,若內部資料庫不足,必須使用網頁查找 Horse 相關文件進行調整,嚴禁瞎猜設計
|
| Gemini CLI 製作前端檔案歷程 |
|
| Gemini CLI 製作 Horse API 歷程 |
驗收
由於完全交由 Gemini CLI 發揮,我自己沒有動手寫程式碼,所以就不放佔畫面的程式碼了
一如往常的,Gemini 還是無法處理 WebBroker 一貫以來的 UTF8 顯示問題,必須搭配 Horse Docs 才能對症下藥,但問題不大,解決也是分分鐘的事
Gemini 前端的表現還不賴,連 RWD 也貼心做好做滿
看著歷年來官方、3rd 推出的【大遷徒】工具又貴又不完整,突然覺得有 AI 輔助的時代真的很幸福!











沒有留言:
張貼留言