Changelog
完整的版本紀錄請見專案根目錄的 CHANGELOG.md。
本頁列出近期版本的重點:
2.5.0 🎉
v2.5.x 系列正式版。同時也是新文件站 linzap.github.io/ZapLib 的首個正式版。
✨ 新功能
OracleSQL類別 — 純託管 Oracle 連線,免裝 Oracle Client。詳見 SQL / Oracle- 自動產生的 API Reference 由 DocFX 從 source code 的 XML doc comments 抽出
🔒 安全性更新
升級多個有 CVE 公告的相依套件,無公開 API 變動:
| 套件 | 原版本 | 新版本 | CVE |
|---|---|---|---|
Newtonsoft.Json |
12.0.1 | 13.0.3 | GHSA-5crp-9r3c-p9vr |
Microsoft.Owin 家族 |
4.2.0 | 4.2.3 | GHSA-3rq8-h3gj-r5c6 |
MailKit + MimeKit |
3.3.0 | 4.16.0 | 3 個 advisories |
MailKit 跳了 major 版本,但 ZapLib 的
Mailer公開 API 維持不變,使用方式完全相同。
🔤 方法命名修正(含 Obsolete 別名)
修正三個 public method 的英文拼字錯誤。舊名稱仍可使用(編譯時有 warning),下一個 major 版本才會移除:
| 舊名稱 | 新名稱 |
|---|---|
SQL.Connet() |
SQL.Connect() |
SQL.BuildconnString() |
SQL.BuildConnectionString() |
OracleSQL.Connet() |
OracleSQL.Connect() |
Fetch.SetRequestContnet() |
Fetch.SetRequestContent() |
升級 2.4.x → 2.5.0 的程式碼不需任何修改,只會看到 deprecation warning。
2.5.0-beta1
OracleSQL 類別首次出現。詳見 SQL / Oracle。
2.4.13
2.4.13-beta3
SQL類別新增 Timeout 機制 — 除非程式明確指定,否則會嘗試從 Connection String 的Connect Timeout抓取,都抓不到才使用預設 30 秒
2.4.13-beta2
- 實驗機制:當
EnableDBAlwaysOn啟用且SQLReadOnly=true時,若QuickDynamicQuery/QuickQuery回傳 0 筆,會自動切回SQLReadOnly=false重新查詢。避免讀寫分離架構下 secondary 尚未同步的問題
詳見 SQL / Query — DB Always-On Read-Only Routing。
2.4.12(含 2.4.9 ~ 2.4.12)
SQL 讀寫分離支援
- 新增屬性
SQL.EnableDBAlwaysOn— 啟用 DB Always On 才有的ApplicationIntent=ReadOnly設定 - 新增屬性
SQL.SQLReadOnly— 動態切換 ReadOnly / ReadWrite - 也可在 Global Config 中指定
EnableDBAlwaysOn=True
2.4.8
Config.Delete(key)— 刪除appSettings中的參數Config.DeleteConnectionString(key)— 刪除connectionStrings中的連線字串
詳見 Utility / Config。
2.4.7
Config 系列新增 3 個功能(可在 Config 檔案被加密的狀況下運作):
Config.SetOrAdd(key, val)— 設定 / 新增appSettings參數Config.SetOrAddConnectionString(key, val, providerName)— 設定 / 新增 connectionStringsConfig.GetConnectionStrings()— 取得所有連線字串設定
2.4.6
Crypto.Md5()改為使用 ZapLib 自行實作的 MD5(ZapLib.Utility.MD5),不再依賴System.Security.Cryptography.MD5
詳見 Security / MD5。
2.4.5
SQL新增SQLDBReplace()— 無須變更 SQL 語法即可自動替換 DB Name
詳見 Global Config — SQLDBReplace。
2.4.4
SQL新增QuickBulkCopy()— 大量寫入
詳見 SQL / Bulk Copy。
2.4.3
MyLog支援自訂 Log 檔案副檔名RegExp支援自訂RegexOptionsSQL根據 ConnectionString 動態填補缺少的設定Crypto支援自訂編碼
2.4.2
Mailer/ImplicitMailer支援 Password 為null跳過驗證
2.4.1
Mailer/ImplicitMailer新增AddAttachments()— 取得附件cid可在 HTML body 中嵌入圖片- 新增
AttachmentsList屬性
詳見 Mailer / Inline Image with Content-ID。
2.4.0
Mailer/ImplicitMailer.Send()新增attchments參數- 新增 Config
TLS12— 強制使用 TLS 1.2
2.3.0
- 新增
ImplicitMailer類別 — 底層採用 Aegis Implicit Mail,支援 port 465 的隱式 SSL 加密
2.2.0
Mailer改用 MailKit,支援 TLS 1.2
原先
SmtpClient不支援 TLS 且被微軟棄用。
2.1.0
ExtApiHelper.Response/Request改為 public- 新增
ZipHelper類別 — 快速 Zip 壓縮 - 新增
MyLog.Read(page)— 翻頁讀取 log - 新增
Fetch.Patch方法 - 大量套件更新(jQuery、SignalR、WebApi、Owin、Newtonsoft.Json)
2.0.x 重點
2.0.12— 新增Mirror.GetClasses、ClassMirror、DllLoader、JXPath、Config.Refresh2.0.9— 新增DynamicObject、修正 query string 中文亂碼2.0.7—SQL新增 transaction 選項2.0.6—ExtApiHelper.GetHeader<T>、Cast.ToEnum<T>2.0.5— 新增JsonReader2.0.4— 新增[SQLType]Attribute 與ISQLParam介面2.0.3— 新增ExpParam<T>SQL 參數擴展
v1.19.1
- 新增
[ValidPlatform]平台驗證 Fetch.ValidPlatform屬性 — 自動附加驗證資訊ZapLib.Security.Const.Key/Const.GodKey— 系統金鑰與上帝鑰匙
完整紀錄
v1.x 及更早期的版本紀錄請見 完整 CHANGELOG.md。