有一天,我發現我的專案裡面居然有 Newtonsoft.Json
,可能有朋友會覺得,它是一個處理 JSON 很知名的套件,專案裡面有它有什麼好大驚小怪的? 可重點是我從來沒有安裝過它啊!
自從 .NET Core 3.1 開始內建 System.Text.Json 之後,我就再也沒有安裝過其他處理 JSON 的套件,那為什麼我的專案裡面會有 Newtonsoft.Json?我們來搞清楚這是怎麼回事?
有一天,我發現我的專案裡面居然有 Newtonsoft.Json
,可能有朋友會覺得,它是一個處理 JSON 很知名的套件,專案裡面有它有什麼好大驚小怪的? 可重點是我從來沒有安裝過它啊!
自從 .NET Core 3.1 開始內建 System.Text.Json 之後,我就再也沒有安裝過其他處理 JSON 的套件,那為什麼我的專案裡面會有 Newtonsoft.Json?我們來搞清楚這是怎麼回事?
之前有一個案子的使用者有一個特別的要求,因為在網頁上瀏覽的圖片大小稍微大了一點,在行動裝置上網路不穩定的時候,會載入比較久的時間,所以使用者就想說能不能在圖片顯示前,先顯示一個 Loading 的畫面,等待圖片下載完成之後再顯示出來?
我們或多或少應該都有遇過一種情況,就是某一些資料表 JOIN 起來的查詢較為緩慢,面對這類執行時間較長的查詢,我們第一步是先進行資料表本身的效能調校,調校之後如果查詢還是需要一點時間,又剛好我們的資料庫系統是使用 SQL Server 的話,那我們可以考慮為查詢建立 Indexed View
試試看。
如果我們接手維護一個資料庫,裡面的 Table、View、Stored Procedure、Function、Trigger 相依鏈錯綜複雜,想要定位發生問題的區塊,搞得像盜墓一樣,這天我無意間發現 SSMS(SQL Server Management Studio)有一個「檢視相依性
」的功能,有助我們來釐清資料庫物件的相依鏈。
上一篇文章有提到學著讀或寫 IL Code,對我們在程式執行狀況的掌握,有正向的提昇,那麼其中一種學習方式,就是透過我們平常撰寫的程式碼,看看它編譯出來的 IL Code 長什麼樣子,藉此來理解 IL Code,本篇文章就來介紹兩種查看 C# 編譯出來的 IL Code 的方式。
程式寫多了,我們多多少少會開發一些 Library 來輔助我們讓程式寫起來更方便一些,這些 Library 通常都獨立於專案之外,除了使用上的彈性之外,還有一個我們會關注的大概就是效能了,既然提到了效能,我們腦海中閃過的解決方案應該會有「撰寫 IL Code
」這個選項,IL Code 雖然可讀性極差,但是如果我們有能力可以讀得懂,甚至使用 IL Code 撰寫程式的話,對我們在程式執行狀況的掌握,絕對有正向的提昇。
我就用 IL Code 撰寫一段將值指派給私有欄位的程式來當個起頭,之後如果還有遇到 IL Code 可以發揮的地方,我也會儘量整理成文章分享給大家。
Windows Forms 的 DataGridView 開啟編輯資料之後,我們就可以在畫面上直接對資料進行修改,預設的統一操作行為是修改完資料之後,按下 Enter 鍵或是離開該儲存格,資料就會更新到綁定的 DataSource 上,就像下面這樣:
但是呢,使用者會希望能在修改之後立即更新到 DataSource,不要再多敲 Enter 鍵或離開儲存格的動作,尤其是 ComboBox,我們來看一下怎麼弄?
這件事情是這樣的,在 ASP.NET MVC 有一個 Display Mode 功能,我們公司把它應用在 AWD(Adaptive Web Design) 機制上,雖然在 ASP.NET Core 被拿掉了,但是我們可以實作 IViewLocationExpander 把它給弄回來,某天發現某個 Mobile 網頁的內容套到了 Desktop 版的 Layout,百思不得其解,最後爬了 ASP.NET Core 的原始碼才知道怎麼回事。
Cache 是在 Web 應用程式開發領域,無論前端或後端都需要深入了解的一件事情,良好的 Cache 機制是可以降低網頁的回應時間,以及同時節省後端伺服器的運算資源,其中關乎到 Cache 品質的兩項因素是:新鮮度
、命中率
,而影響到這兩項因素的關鍵就在於我們的更新策略。