當有大量資料 Client/Server 之間往返時,可以考慮使用壓縮/解壓縮來降低網路流量的往返,不過,這伴隨而來副作用就是伺服器的資源損耗,使用時務必深思;壓縮/解壓縮是要彼此搭配,一方壓,另一方解,演算法也要能對應的比較常見的就是 GZip/Deflate 了,等下為了減少篇幅,我會只會呈現 Deflate 的實作,其餘的代碼就到 github 看
[WinForn] BindingSource 使用 ErrorProvider 驗證欄位
畫面上有 BindingNavigator、DataGridView,它們的資料都來自 BindingSource,我希望透過上方的編輯區塊進行編輯、驗證的互動,不是 GridView,畫面設計如下圖:

我想要做的功能很簡:單當移動"列"時,驗證當下的所有欄位,驗證失敗不准離開
[SpecFlow] 一個 Step 呼叫多個 Step
當你想要聚焦,減少 Scenario 的 Step Definition 時,可以合併他們,提高 Scenario 的可讀性;但伴隨來的副作用就是細節被隱藏到 Step.cs 測試程式碼,從 Sceario 讀不出來,團隊內若都很了解細節,這樣倒是一個不錯的做法
[C#] 向 CA Server 註冊 WebServer 憑證範本
- 1727
- 0
- Certificate
為了註冊 CA 憑證動作更簡化,於是花了三四天研究怎麼用 C# 控制註冊流程,過程真的挺累,結果挺爽的...
[WinForm] 利用全域例外捕捉和方法自訂特性,提升Error可讀性
- 3323
- 0
- Error Handler
- 2019-06-23
結對開發時常常會看到例外處理寫的不好,來看看這一次的案例...
[C#.NET] 如何定義多欄位的常數
當資料庫只存放 Key,UI 需要呈現"說明"讓用戶可以閱讀,常見的做法有:DB 存放說明欄位、應用程式定義說明欄位。
這個 Key 是給應用程式判斷邏輯用是常數,我選擇放在應用程式,若 DB 也要閱讀定義,就從應用程式寫到 DB;反之,你也可以統一在 DB 定義,透過 T4 產生 cs,讓應用程式使用。
不管你選哪種方式,統一一種就好。
Specflow v3 + MsTest v2 Run Tests in Parallel
當測試案例越來越多的時候,執行的時間會越來越長,這時候就可以靠並行測試 (Parallel Test),來縮短測試時間,只要確定測試案例之間沒有共用資源,就可以使用囉
Specflow v3 ScenarioContext.Current、FeatureContext.Current or ScenarioStepContext.Current 已過時的解決方案
Specflow 提供了 ScenarioContext.Current, FeatureContext.Current or ScenarioStepContext.Current 靜態成員讓我們使用,Specflow 3 之後它們已經被標記過時(Obsolete),為了以後相容性的還是別用了,那要改用甚麼呢...
Entity Framework 6 使用 SQL Server 2016 Always Encrypted 的限制與解決方案
- 1184
- 0
- Entity Framework 6
- 2019-06-03
SQL Server Always Encrypted 可以保護我們的資料,但同時也帶來了一些不便,比如索引跟內建的預存無法使用,強制使用參數化查詢,這裡列出我已知的開發限制,下次碰到就可以直接避開
Entity Framework 6 連接 SQL Server Dynamic Data Mask
- 661
- 0
- Entity Framework 6
- 2019-05-29
SQL Server Dynamic Data Mask 防止沒有權限的帳號檢視敏感性資料