[創意料理] 用 SQL Server 的 Trigger 搭配 DMV 來抓增刪改資料表的兇手

系統中的程序(Applicaion、SQL Agent Job、Stored Procedure、...)一多,尤其大部分中小企業的資料庫增刪改並沒有得到良好的管理,重複的操作一直在做,資料若是正確的那大家相安無事,如果資料發生錯誤的時候,開發人員就雞飛狗跳了,眾多程序重複增刪改相同的資料,讓追查錯誤來源變成一件苦差事,萬一錯誤的資料又跟錢有關,那更是壓力山大,還好科技始終來自於人性,利用 SQL Server 的 Trigger 加上 DMV(Dynamic Management Views)可以幫助我們找到線索。

...繼續閱讀 »

[食譜好菜] ASP.NET MVC 應該多多利用瀏覽器的 Cache

長期在 ASP.NET 打滾,講到 Cache 第一時間就會想到 Redis、Memcached、... 這種伺服器端的 Cache 服務,但是在 Web 技術領域內還有瀏覽器端的 Cache,如果沒有特別指定,檯面上這些主流的瀏覽器都會把 Web 伺服器回應的內容存起來,我們應該要好好地利用它們來降低伺服器跟網路的壓力。

...繼續閱讀 »

[廚餘回收] Jenkins 的 Git Plugin 設定 Polling ignores commits in certain paths 套用在中文檔名上失效?

幾天前同事回報,他 merge 完 push 之後 Jenkins 為何沒有建置? 我目前所在的公司所有原始碼是湊在一起的,但是每一個建置作業又只需要建置某一個專案及其相依的專案,所以除了使用 Sparse Checkout paths 之外還搭配 Polling ignores commits in certain paths 來讓建置作業能夠控制在需要建置時建置,所以這問題肯定出在這兩個地方。

...繼續閱讀 »

[創意料理] ASP.NET MVC 在網址不變的情況下,自訂 HTTP 400(Bad Request)狀態碼的回應內容。

先前有寫過一篇個人常用的 ASP.NET MVC 自訂 HTTP 回應碼畫面的套路,一切看起來都很好,但是當使用者輸入一些資料,驗證不通過的時候,想要送 400(Bad Request)順便在 Body 中塞入一些訊息回傳給使用者,不做點調整是做不到的。

...繼續閱讀 »

[小菜一碟] 與團隊共享 ReSharper 的設定

ReSharper 這款由 JetBrains 打造的輔助開發神器,應該是無人不知無人曉了,基本款一年的費用才三四千塊非常值得投資,我們公司就為每位開發人員各買一套,而 ReSharper 當中可以調整項目非常細,用久了就會發現每個人調校出來的 ReSharper 風格都不太一樣,這時候就可以大家來討論出一個公版 Share 出來。

...繼續閱讀 »

[食譜好菜] Json.NET 處理多型的反序列化

多型在像是 C#、爪哇(用中文應該就不會被告了)這種強型別的物件導向程式語言,要將一個抽象類別的實例存到關聯式資料庫或是做序列化/反序列化,都需要另外處理,關於多型跟關聯式資料庫的對應方法我已經寫在這篇文章裡面,這篇要來寫寫多型如何做 JSON 的序列化/反序列化。

...繼續閱讀 »