顯示具有 講師文章 標籤的文章。 顯示所有文章
顯示具有 講師文章 標籤的文章。 顯示所有文章

2026年8月31日 星期一

零程式碼打造雙端點API:Data API Builder (DAB)

 


作者:楊先民  

精誠資訊/恆逸教育訓練中心資深講師

※網路引用請註明完整出處


在現代的系統架構中,前端與資料庫之間的溝通往往需要耗費大量人力撰寫 CRUD(新增、讀取、修改、刪除)的 API 程式碼。然而,微軟推出的開源工具 Data API Builder (DAB) 打破了這個常規。

透過 DAB,開發者與 DBA 完全不需要撰寫任何一行 C# 或 Node.js 後端程式碼,只需透過單一 JSON 設定檔,就能瞬間將關聯式資料庫(如 SQL Server)轉化為安全、支援現代化規格的 REST 與 GraphQL 雙端點 API。

本文將從核心原理出發,帶各位完整走過一次實戰建置流程,並深入剖析實務上最常踩到的「網路解析地雷」。

SSMS新功能全新「SQL Server 遷移至 Azure」

 


作者:楊先民  
精誠資訊/恆逸教育訓練中心資深講師


※網路引用請註明完整出處


資料庫管理工具的劃時代演進

對於廣大的資料庫管理員(DBA)、資料工程師以及 IT 架構師而言,SQL Server Management Studio(SSMS)無疑是每日工作中不可或缺的核心利器。從早期單純的地端(On-Premises)資料庫管理、T-SQL 查詢撰寫,到近年來支援雲端 SQL 服務,SSMS 一直扮演著極其關鍵的角色。

然而,隨著企業加速推進雲端數位轉型,傳統地端 SQL Server 工作負載遷移至 Azure 的需求呈現爆發式增長。過去,DBA 在進行雲端遷移時,往往需要在多個獨立工具之間切換——例如使用 Database Migration Assistant (DMA) 進行相容性評估、使用 Azure Database Migration Service (DMS) 執行資料轉移、或者使用 Azure Data Studio 進行現代化管理。這種分散式的工具體驗不僅增加了學習成本,也提升了跨團隊溝通與維運的複雜度。

為了徹底解決此痛點,微軟在 SSMS 最新版本中推出了全新的「SQL Server 遷移至 Azure」(Migrate SQL Server to Azure)體驗。這是一項集成了相容性評估、目標資源部署(Provisioning)、資料遷移以及監控的全流程一站式解決方案,代表著 SSMS 正式從「純地端工具」全面演化為「混合雲地一體化管理平台」。

當 Web 版 Gemini 再也不能滿足你的 Vibe Coding 需求 -- 啟動 Antigravity 2.0迎向代理優先

 

Google Web 版的Gemini + Canvas 的介面親切又直覺,只要描述想法,就能很快做出互動頁面、小工具與原型。許多人也因此完成了不少原本以為需要找工程師才能做的小功能。可是,當作品從「先跑起來看看」進入「要維護、要串資料、要反覆測試」的階段,Web 對話介面的限制就會逐漸浮現:上下文散落在多輪對話裡、多檔案修改不容易追蹤、執行與測試還要自己來回切換。

這時候,問題往往不是提示詞不夠長,而是需要一個能在本機工作區裡規劃、修改、執行與驗證的代理式開發環境。Google Antigravity 2.0 正好代表這種從聊天機器人走向 Agent-First 的轉變。

為什麼 AI Agent 要使用 Git Worktree?

 

Worktree 是 AI Agent 的安全工作環境

當你請 AI Agent 修改程式、做實驗、重構資料夾或產生新功能時,它需要一個可以放心嘗試的地方。Git Worktree 的用途,就是讓同一個 Git 專案同時開出多個資料夾:一個保留穩定版本,另一個讓 AI Agent 做實驗。這樣就不用備份整個專案,也不用擔心 AI 一邊嘗試、一邊把原本可用的版本弄亂。

你可以把它想成:Git 是專案的版本紀錄本,branch (分支)就像是不同想法的頁籤(特色分支),worktree 則是把某個頁籤拿出來變成獨立資料夾。AI Agent 在不同資料夾上做事,最後你再決定要不要把成果合併回主要工作的資料夾(main 分支)。

情境 不用 Worktree 的風險 使用 Worktree 的好處
讓 AI Agent 試做新功能 原本可用版本可能被改壞 實驗資料夾和穩定資料夾分開
同時請兩個 Agent 做不同方案 兩邊改到同一批檔案,容易混在一起 每個方案各自有工作區與分支
需要比較修改前後 只能靠記憶或反覆切換分支 兩個資料夾可直接並排比較
實驗失敗想放棄 要小心還原檔案 確認不保留成果後,移除 worktree,再刪除實驗分支

Git 是什麼?為什麼需要 Git?

Git 是一套版本控制工具。它會記錄專案在不同時間點的樣子,讓你知道誰改了什麼、何時改、為什麼改。如果改壞了,可以回到之前的版本;如果有不同想法,也可以開分支各自發展。

  • commit:把目前狀態存成一個版本快照。
  • branch:讓一條修改路線獨立發展,例如 main 是穩定主線,feature 分支是新功能實驗。
  • merge:把某個分支的成果合併回另一個分支。
  • reset:把目前分支退回指定版本。這個動作可能丟掉後續修改,使用前要確認。
  • worktree:把同一個 Git 專案的不同分支,放到不同資料夾中同時工作。

Git Worktree 的概念圖

圖解:這張圖整理 worktree 的核心概念,main 保持穩定,新的 worktree 則提供 AI Agent 獨立實驗空間。

圖 1:main 保留穩定版本,proj1-v2 讓 AI Agent 在另一個資料夾做實驗。

什麼時候要讓 AI Agent 使用 Worktree?

  • 你要它一次做比較大的修改,例如重構、換框架、加入登入流程、整理資料結構。
  • 你想同時比較兩種以上方案,例如 A 方案重視速度、B 方案重視可讀性。
  • 你要它修 bug,但不希望它影響目前可展示或可交付的版本。
  • 你想在 Agent 做事時,自己仍然能打開原本資料夾查看或執行專案。
  • 你要保留清楚的實驗紀錄,之後可以決定合併、放棄或交給另一個 Agent 接手。

如果只是改一行文字、補一個小註解或調整 README,通常不需要 worktree。Worktree 適合用在「改動範圍不小、可能要比較、可能會反悔」的工作。

安裝 Git

在 Windows 上可使用 PowerShell 搭配 winget 安裝 Git。打開 PowerShell 後輸入:

winget install --id Git.Git -e --source winget

安裝完成後,重新開啟終端機,再輸入以下指令確認是否安裝成功,這個指令是檢查 Git 的安裝版本:

git --version

如果系統找不到 winget,也可以前往 Git 官方 Windows 下載頁安裝:https://git-scm.com/download/win

註:winget 是 Windows Package Manager 的命令列工具,可用來搜尋、安裝、更新與移除軟體。它適用於 Windows 11 與較新的 Windows 10,通常會隨 App Installer 提供。

從一個小專案開始

如果是這台電腦上第一次使用 Git,請先輸入以下指令:

git config --global user.name "你的名字"
git config --global user.email "你的 Email"

可以使用以下指令查閱設定是否正確:

git config --global user.name 
git config --global user.email 

1. 建立專案與第一個檔案

本範例使用 Visual Studio Code 進行編輯,先建立一個資料夾 proj1,裡面放 src\index.html。這個檔案代表我們的第一版網頁內容。

<h1>Hello</h1>

操作結果:建立 proj1\src\index.html 後,專案已具備可交給 Git 管理的基本檔案結構。

圖 2:在檔案總管或 VS Code 中建立 proj1\src\index.html。

2. 初始化 Git 並建立第一個 commit

在包含 proj1 的上層資料夾中開啟 PowerShell;本文範例位置是 C:\Labs\gworktree。接著依序輸入以下指令,進入專案、初始化 Git,並確認目前的 worktree。剛開始只有主工作區。

cd .\proj1
git init -b main
git worktree list

指令結果1:成功建立 Git 本地端儲存庫以及 main 分支。

圖 3:終端機執行狀態。

指令結果2:執行 git init 後,資料夾中會出現 .git,代表這個資料夾已經成為 Git 專案。

圖 4:在檔案總管可以看到 .git 資料夾。

接著把檔案加入版本紀錄並建立第一個 commit:這項全域設定通常只需完成一次,之後即可正常建立 commit。

git add .
git status
git commit -m "初次 commit"

指令結果:執行 git add 與 git commit 後,Git 會建立第一個版本紀錄,作為後續比較與回復的基準點。

圖 5:建立第一個 commit 後,Git 已經記住初始版本。

3. 新增一個 worktree 當作實驗區

現在建立新 worktree 資料夾 proj1-v2,並同時建立新分支 feature-v2。新的版本可以在這個資料夾工作,不會直接動到 main 分支 (../Proj1) 的檔案。

git worktree add ../proj1-v2 -b feature-v2
git worktree list

指令結果:執行 git worktree add 後,Git 會建立 proj1-v2 資料夾,並將它連到新的 feature-v2 分支。

圖 6:Git 建立 proj1-v2,並把它連到新分支 feature-v2。

指令結果:再次執行 git worktree list,在檔案總管可以看到同一個專案目前同時存在 proj1 與 proj1-v2 兩個工作區。

圖 7:同一個專案現在有兩個資料夾:proj1 與 proj1-v2。

4. 在實驗區修改內容並提交

打開 proj1-v2\src\index.html,把內容改成第二版。此時 proj1 的 index.html 仍是 Hello,proj1-v2 則是 Hello v2。這就是 worktree 最直觀的價值:兩個資料夾可以同時存在不同版本。

<h1>Hello v2</h1>

操作結果:修改 proj1-v2 裡的 index.html 後,主工作區 proj1 仍保持原內容,兩邊可直接比較差異。

圖 8:左右兩邊的 index.html 內容不同,可直接比較。

接著在同一個 PowerShell 中,從 proj1 切換到 proj1-v2,再提交這次修改:

cd ../proj1-v2
git add .
git status
git commit -m "v2"
git log --oneline

指令結果:在 proj1-v2 中提交 v2 commit 後,實驗分支已保存修改成果。執行 git log --oneline 後,可以確認目前分支已有 v2 commit 與初次 commit 兩筆紀錄。

圖 9:在 proj1-v2 分支建立 v2 commit。

5. 回到 main分支,把實驗成果合併回來

如果你確認實驗結果可以採用,就在同一個 PowerShell 中切回 proj1,確認 main 的紀錄,再合併 feature-v2。

cd ../proj1
git checkout main
git log --oneline

指令結果:切回 main 後查看紀錄,可看到主線仍停在初次 commit,尚未受到實驗分支影響。

圖 10:回到 main 後,主線仍停在初次 commit。

合併 feature-v2 分支,並檢查紀錄:

git merge feature-v2
git log --oneline

指令結果:執行 git merge feature-v2 後,main 分支會取得實驗分支的修改內容。

圖 11:merge 後,main 取得 v2 的修改。

操作結果:合併完成後,主工作區的 index.html 也會呈現 Hello v2,表示修改已進入 main。

圖 12:合併後,主工作區也變成 Hello v2。

Merge 後如果反悔怎麼辦?

如果剛合併就發現不想要,而且這次變更尚未推送或分享,可以把 main 分支往前退一個 commit。git reset --hard 會改寫目前分支,並捨棄已追蹤檔案的未提交修改;執行前應先請 AI Agent 說明受影響的檔案並確認工作區乾淨。

git reset --hard HEAD~1

指令結果:執行 git reset --hard HEAD~1 會讓目前分支回到前一個 commit,僅適合尚未推送或分享的本機版本。

圖 13:HEAD~1 代表目前版本的前一個 commit。

如果要退到更早的指定版本,先查 log,複製目標 commit id,再 reset 到那個 id。

git log --oneline
git reset --hard 58b46a9

指令結果:使用指定 commit id 執行 reset,可以精準回到某一個歷史版本。

圖 14:使用 commit id 可退回指定版本。

這時候 ./proj1/src/index.html 就會還原到:

<h1>Hello</h1>

注意:

reset --hard 也會捨棄已追蹤檔案的未提交修改。若 main分支已經推送或與他人共用,不要用 reset 改寫歷史;應優先使用 git revert 建立一筆反向 commit。

git revert <commit-id>

若不確定該回復哪一筆 commit,使用git log列出目前工作區狀態與可能影響,確認後再執行。

6. 任務完成後收拾 worktree

確認要採用實驗成果時,可以再次合併;確認不再需要實驗區後,移除 worktree,再刪掉對應分支。這裡我們再度合併feature-v2分支。

git merge feature-v2
git worktree remove ../proj1-v2
git branch -d feature-v2
git worktree list

指令結果:完成 merge、worktree remove 與 branch -d 後,實驗工作區與分支都已清理,只留下 main。

圖 15:合併、移除 worktree、刪除實驗分支,最後只留下 main。

操作結果:在移除 worktree 之前,檔案總管中仍可看到 proj1-v2 資料夾。

圖 16:收拾前,檔案總管仍可看到 proj1-v2。

操作結果:移除 worktree 後,proj1-v2 資料夾消失,表示實驗工作區已收拾完成。

圖 17:移除後,proj1-v2 資料夾不再存在。

怎麼請 AI Agent 使用 Worktree?

上面的範例目的是讓你透過手動過程了解 Git Worktree 的運作原理,當你理解這個原理的時候,你才能夠準確地知道所下的提示詞會產生甚麼結果,以下列表幾個使用情境的提示詞範例僅供參考,使用 AI Agent 時,不只要下指令,也要講清楚限制、風險與完成條件。以下提示可以直接複製後依照專案名稱替換。

使用情境 提示範例
建立安全實驗區 請先不要修改 main 工作區。請用 Git Worktree 建立一個新的工作區與分支,分支名稱為 feature/login-demo。完成後列出目前 worktree,並說明你接下來會在哪個資料夾修改。
大改前先規劃 我想請你重構這個專案,但我沒有程式背景。請先建立 worktree,再用一般人看得懂的方式列出修改計畫、可能風險、驗收方式。等我確認後再動手。
比較兩個方案 請用兩個不同 worktree 分別做 A/B 方案:A 方案優先簡單、B 方案優先可維護。完成後請整理差異、測試結果與你建議採用哪一個。
合併前檢查 在 merge 回 main 前,請先檢查 git status、git log --oneline、修改檔案清單與測試結果。若有任何未提交或衝突,先停下來說明。
安全反悔 我想撤回剛才的 merge。請先解釋 git reset --hard 會造成什麼影響,列出目前 commit,再建議最安全的復原方式。不要直接執行危險指令,等我確認。

給初學者的安全檢查表

  • 改動前先確認:AI Agent 目前在哪個資料夾?在哪個分支?
  • 每次重要修改後,請 Agent 執行 git status,確認沒有意外檔案。
  • 要求 Agent 把每個 commit 訊息寫清楚,日後才知道每一步在做什麼。
  • merge 前先看 git log --oneline,確認要合併的是正確分支。
  • 看到 reset --hard、clean、delete、remove 這類字眼時,先請 Agent 解釋影響再執行。
  • 任務完成後移除不用的 worktree,避免日後忘記哪個資料夾才是正式版本。

一分鐘記住 Git Worktree

Git Worktree 不是進階工程師才需要的工具;對 AI Agent 使用者來說,它更像是一個安全工作流程。當你把穩定版本和實驗版本分開,AI Agent 就能更大膽地嘗試,你也能更清楚地檢查、比較、合併或放棄。

最實用的判斷方式是:只要你心裡出現「如果 AI 改壞了怎麼辦?」這個問題,就值得考慮先建立 Worktree。

更多學習資源:

除了本地 Git 之外,GitHub也是與程式版本控制,多人協作的重要工具,若想更完整學習 Git 與 GitHub 的觀念與實務操作,包含版本控制流程、分支協作、遠端儲存庫管理,以及團隊開發時常見的 GitHub 協作方式,建議可以進一步參考:

【GH900】Git版本控制與GitHub協作入門

參考資料

以下是參考資料列表:

2026年8月2日 星期日

使用Azure Lighthouse進行跨租用戶管理


 

當我們的多個Azure subscription(訂用帳戶)們在不同的 Microsoft Entra ID tenant(租用戶)或是我們要為客戶管理 Azure 中的資源時,使用B2C 將管理者帳戶邀請到被管理的subscription所在的Entra ID tenants 再授予權限雖然可行,但是管理者在進行管理時就需要在不同的 tenant 間進行切換目錄(switch directory),這並不方便集中管理,而使用 Azure Lighthouse 是更好的解決方案。

Azure Lighthouse支援多租用戶管理,管理者(服務提供者)可以透過Azure平台的工具,跨租用戶為客戶提供管理服務,客戶可以控制誰可存取或管理他們的訂用帳戶或資源群組。

以下我們就以 Contoso 與 TPNIC 為例來說明如何使用Azure Lighthouse 進行跨租用戶管理。在這個情境中,Contoso 是管理者帳戶所在的 Entra ID tenant,而TPNIC是Azure subscription 所在 Entra ID tenant,TPNIC 要讓 Contoso 的管理人員可以管理 TPNIC 的 Azure subscription。也就是說在Azure Lighthouse,Contoso扮演服務提供者而TPNIC扮演客戶。

Contoso 管理者要進行的操作

  1. 在Azure portal 的【搜尋資源服務及文件(G+/)】,搜尋並前往【我的客戶】。
  2. 在我的客戶的【概觀】,點選建立【ARM 範本】。
  3. 在【名稱】輸入您自訂的名稱(例如:Contoso 聯盟)。
  4. 在【已委派的範圍】選擇訂用帳戶或資源群組,預設是訂用帳戶。
  5. 點選【新增授權】後,在【角色指派】選擇使用者、群組或服務主體,預設是使用者。
  6. 在【名稱】選取要在TPNIC的訂用帳戶授予管理權的 Contoso帳戶,例如:MOD Administrator。
  7. 在【角色】選取要授予上述帳戶在TPNIC的訂用帳戶的管理角色,例如:參與者(目前只支援內建角色,不支援自訂角色)。(圖1)
    圖1 新增授權
  8. 按【新增】後,再按【檢視範本】。(圖2)
    圖2 建立 ARM 範本方案
  9. 按【下載】將範本存檔(預設檔名為template.json)。(圖3)
    圖3 顯示範本
  10. 將範本檔案交給 TPNIC 的 Azure 訂用帳戶管理者(Owner)。

TPNIC 管理者要進行的操作

  1. 在Azure portal 的【搜尋資源服務及文件(G+/)】,搜尋並前往【服務提供者】。
  2. 在【服務提供者供應項目】,點【+新增供應項目】(在上方)後,選【透過範本新增】。
  3. 點【瀏覽檔案】後,選取Contoso管理者給的範本檔案後,按【上傳】。(圖4)
    圖4 上傳範本檔案
  4. 按【檢閱+建立】後,按【建立】。(圖5)
    圖5 檢閱並建立
  5. 等待部署完成後,再次在Azure portal 的【搜尋資源服務及文件(G+/)】,搜尋並前往【服務提供者】。
  6. 點【委派】後,按【重新整理】即可看到委派的結果。(圖6)
    圖6 委派的結果

Contoso 管理者檢視結果

  1. 在Azure portal 的【搜尋資源服務及文件(G+/)】,搜尋並前往【我的客戶】。
  2. 在我的客戶點選【委派】後,按【重新整理】。(圖7)
    圖7 檢視委派的結果
  3. 點【全域訂用帳戶篩選】後,在【目前+委派的目錄】選【全選】,在【訂用帳戶】選【全選】。(圖8)
    圖8 所有訂閱

完成這些程序,Contoso 中被選取的帳戶(例如:MOD Administrator)就可以管理在 TPNIC 的那一個 Azure 訂用帳戶了!



您可在下列課程中了解更多技巧喔!

2026年7月30日 星期四

SSMS 22.7的預覽功能-內建格式化工具

 


作者:楊先民  
精誠資訊/恆逸教育訓練中心資深講師


※網路引用請註明完整出處


微軟在 SSMS 22.7(SQL Server Management Studio)中,除了推出大家引頸期盼的「架構比較(Schema Compare)」之外,還悄悄塞入了一個對 T-SQL 開發人員與 DBA 而言,堪稱「史詩級」的重大生產力更新:內建 SQL 格式化工具(SQL Formatter)預覽版

過去數十年來,SSMS 一直缺乏一個好用的原生程式碼排版功能。為了讓雜亂無章的 T-SQL 變得易讀,團隊成員必須各憑本事:有人習慣手動縮排,有人依賴線上的 Poor Man's T-SQL Formatter,更有許多企業會花大筆預算採購紅門(Redgate SQL Prompt)或 ApexSQL 等第三方付費套件。

現在,這個困擾大家已久的痛點終於迎來了解方!

SSMS 22.7 直接在核心中內建了官方的 SQL 格式化引擎。本文將以實務開發者的視角,為您深度拆解這個新功能的運作機制、客製化設定、快捷鍵,以及它如何與 DevOps 整合,幫團隊建立牢不可破的程式碼規範(Coding Standards)。

GitHub Copilot Desktop App簡介(2):指令設定、風格校準與實作練習

 


GitHub Copilot App 不是只能夠拿來寫程式,也可以用來改善日常工作流。許多人第一次接觸 GitHub Copilot 時,往往認為它只是開發人員的 AI 工具,主要用途是撰寫程式碼、修正錯誤或產生測試案例。然而,隨著 Agentic Development 的發展,GitHub Copilot App 已逐漸從「程式設計助手」轉變為「工作任務助手」。

GitHub Copilot Desktop App簡介(1):概念、安裝與第一個專案

 


本系列文章將帶領讀者從零開始認識 GitHub Copilot Desktop App,包含安裝、登入、建立第一個專案,以及實際體驗 AI Agent 協助開發的完整流程。

透過循序漸進的操作教學,讀者不僅能快速上手 GitHub Copilot Desktop App,更能理解它在 Agentic Development(AI Agent 驅動開發)中的定位與價值,並透過一個可重複練習的實作任務,親身體驗 AI Agent 如何參與軟體開發流程。

2026年6月26日 星期五

製作公車查詢系統的資料庫

 

作者:楊先民  
精誠資訊/恆逸教育訓練中心資深講師


※網路引用請註明完整出處


本期是想到我在快20年前寫的一個行動裝置程式:公車查詢系統。

現在回想起來,當年不太懂要怎麼樣在行動裝置上才能更快,現在則沒有這種問題,因為現在的行動裝置已經不能和之前比了,速度上來說都非常快了,所以可以儘可能的用資料庫設計來解決使用者的需求。

2026年6月11日 星期四

AI時代人人都該學的工具2 - Codex

 



Codex 是 OpenAI 推出的 AI 程式與工作助理。它可以讀取專案、修改檔案、執行命令,也能協助整理文件、產生表格與製作教學素材。這篇文章延續前一篇《AI時代人人都該學的工具1 - Codex》工具介紹,帶讀者完成 Codex 的基礎設定,並用一個發票整理練習,示範如何把資料交給 Codex 處理成 Excel 報表。

AI時代人人都該學的工具1 - Codex

 

這篇文章介紹Codex App 安裝與第一次使用時設定的完整教學,我們將以 Windows Codex App 為例子,從軟體下載、安裝、登入到進入主畫面一次完成。

在生成式 AI 逐漸進入軟體開發流程的今天,開發者需要的不只是聊天式問答,而是能讀懂專案、修改檔案、執行指令,並協助完成實際任務的工作環境。OpenAI Codex App 就是針對這種需求推出的桌面工具,定位為開發者管理 AI 代理人的工作中心。

簡單來說,Codex App 可以把 ChatGPT 的程式開發能力帶到本機專案之中。使用者可以在同一個介面中開啟工作區、描述需求、檢查修改內容,也能讓 Codex 依照授權執行必要指令。本篇文章將帶你認識 Codex App 的用途,並依照實際畫面說明 Windows Codex App的安裝與第一次登入流程。

2026年6月9日 星期二

vSphere 9授權方式的重大變更

 


VMware 的軟體定義資料中心(Software-Defined Data Center, SDDC)架構提供了自建虛擬化及私有雲環境的完整解決方案,包含了許多不同功能的軟體產品。以軟體的方式管理運算資源的優點,除了因資源的彈性而提高可用性及擴充性,還有可程式化及可自動化帶來的敏捷度及效率......等等。在使用軟體化帶來的好處之前,第一步就是將各種硬體運算資源先納入軟體的管理之下,因此其中最核心的元件就是VMware vSphere,也是最廣為企業客戶所採用的虛擬化平台。

2026年5月28日 星期四

SQL Server 2025中關於備份的新功能

 

作者:楊先民  
精誠資訊/恆逸教育訓練中心資深講師


※網路引用請註明完整出處


SQL Server 2025,在管理方面的新功能部分,將要介紹備份還原的功能,本期將分上下兩集,一集介紹備份的新功能,第二集則是介紹還原的功能。

隨著數據量的爆炸式增長與企業對「零停機」目標的追求,SQL Server 2025 在備份與還原技術上進行了革命性的升級。這次更新不僅僅是小修小補,而是針對雲端原生環境、高可用性(HA)架構以及高性能存儲進行了深度最佳化。

以下將針對 SQL Server 2025 的核心備份技術進行詳細的解析,並提供一個完整的範例說明,涵蓋 ZSTD 壓縮、次要副本完整備份、以及不可變儲存(Immutable Storage) 的實戰應用。

製作分析棒球的資料庫

 


作者:
楊先民
  
精誠資訊/恆逸教育訓練中心資深講師


※網路引用請註明完整出處


本期是一個臨時興起的主題,看完精典賽 WBC之後,對於情蒐這件事情我覺得非常重要,而且我在上課時就一直在講資料分析,投打對決,佈陣防守,這些原本可以讓一個實力比較沒這麼強的隊,能夠擊敗強隊(例如日本)。

在 .NET MAUI 中實作本地通知 – 使用 Plugin.LocalNotification

 


.NET MAUI(Multi-platform App UI)從 .NET 6 開始成為微軟主推的跨平台 UI 框架。只要寫一套 C# 與 XAML,就能編譯出 Android、iOS、macOS 與 Windows 的原生 App,取代了過去的 Xamarin.Forms。

雖然號稱「一次編寫,可多平台執行」,但現實是各平台的底層差異很大。為了維持框架核心的輕量,官方的Microsoft.Maui.Essentials只提供了最基礎的硬體呼叫功能(例如網路狀態、GPS、相機)。很多開發上必備的進階功能,像是本地通知、藍牙、或是背景常駐服務,官方目前都沒有直接內建,而是交由社群的 Plugin 來解決。

其中,「本地通知」幾乎是大部分 App 遲早會用到的功能。本地通知跟需要架設後端伺服器、申請憑證的遠端推播(FCM / APNs)不同,本地通知完全由裝置本機觸發,不需要網路連線。常見的應用場景包括:

● 行事曆提醒、鬧鐘

● 背景下載或資料同步完成的提示

● 離線狀態下的使用者互動

既然官方(包含 .NET MAUI Community Toolkit)都還沒提供這個功能,在目前的 MAUI 生態系中,由社群維護的 Plugin.LocalNotification 幾乎是唯一的首選。這套件成熟度高,且支援四大平台。

這篇文章將以 Plugin.LocalNotification 14.1 為例,紀錄如何從零實作跨平台的本地通知服務,順便整理各平台最常遇到問題的底層設定。

從等IT到自己做 - Vibe Coding給行政人員的新選項

 


行政、秘書、業務的日常

每個月底,小玲都要花兩天整理業績報表。她從多個 Google 試算表複製資料,再手動計算每位業務的達成率,最後做成 PowerPoint 給主管看。這件事她做了三年,既重複又勞累。

她曾經請 IT 部門幫她做一個自動整合的工具。IT 說排程要等兩個月—需求單、評估、排程、開發,每一步都有它的程序。這不是 IT 在刁難人,而是正式系統的開發本來就需要這些流程,才能確保穩定與安全。只是兩個月後,業務單位的欄位結構改了,整個評估又得重來。需求來得快,流程走得慢,這個落差本身就是問題所在。

這樣的故事經常的發生在行政人員、業務助理、行銷與 PM,有著大量重複性的數位工作,卻長期處於「有需求、沒資源」的困境。IT 忙於核心系統,外包費用太高,用Excel 則撐得很辛苦。

然後,AI出現了。

這不是那種要寫程式才能用的 AI,而是只要「說人話」就能幫你做出東西的技術。這正是 Vibe Coding 帶來的改變 — 把「寫程式」從手動輸入語法,變成用自然語言描述需求,讓AI產生可運作的工具。

2026年4月30日 星期四

SQL Server 2025中關於AI的快取篇



作者:楊先民  
精誠資訊/恆逸教育訓練中心資深講師


※網路引用請註明完整出處


Google Gemini API是按Token計費的。如果您的SELECT語法一次呼叫了10萬次API,月底的帳單可能會讓您大吃一驚。

所以需要使用快取(Caching)機制。如果相同的問題已經問過,直接從local table取回結果,不要重複呼叫,本期就來探討這樣的內容。

2026年4月29日 星期三

SQL Server 2025中關於DiskANN索引

 


作者:楊先民  
精誠資訊/恆逸教育訓練中心資深講師


※網路引用請註明完整出處


在資料庫技術與 AI 交匯的今日,DiskANN (Disk-based Approximate Nearest Neighbor) 索引無疑是SQL Server 2025 最具前瞻性的技術特徵之一。

作為一名資料庫與交易設計多年的專業人士,能感受到,「索引」的本質正在從傳統的「B-Tree 排序檢索」轉向「高維空間的拓撲導航」。

本期將跳過膚淺的行銷術語,直擊 DiskANN 的技術核心、算法優勢以及它為何能成為企業級向量搜尋的「終結方案」。

Blazor 10新功能介紹 - 3

 


在 .NET 10 的 Blazor中,安全性與前端互動能力都有重要提升。其中Passkey(通行密碼)支援讓 ASP.NET Core Identity 能直接實作無密碼登入,使用者可透過指紋、臉部辨識或硬體安全金鑰進行驗證,大幅提升安全性並降低密碼管理負擔。此外,Blazor 的 JavaScript Interop也導入更完整的物件語意,開發者可以直接呼叫 JavaScript 建構函式建立物件,並從 C# 讀寫 JavaScript 物件屬性。這些改進讓 Blazor 在身分驗證與前端整合方面更加現代化,也使開發流程更簡潔與安全。

本文將延續Blazor 10新功能介紹 - 1》、Blazor 10新功能介紹 - 2》一文的情境,介紹這些Blazor新功能。