[小菜一碟] 預熱 ASP.NET MVC 的 View

ASP.NET MVC 的 View 預設是 Load on Demand(按需加載),也就是說 View 第一次要 Render 的時候才會去載入跟編譯,這個就會造成一個現象,即使 Web 應用程式已經完成啟動,在瀏覽頁面的時候也是會感覺到一點延遲,尤其 Web 應用程式部署在 Azure App Service 上更為明顯,既然這樣,那我們就在 Web 應用程式啟動時候,把所有 View 載入跟編譯,然後 Render 一次就行了,我們來看看怎麼做?

...繼續閱讀 »

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

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

...繼續閱讀 »

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

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

...繼續閱讀 »

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

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

...繼續閱讀 »

[創意料理] 在 ASP.NET MVC 切莫無腦地使用 Html.Action、Html.RenderAction

Html.ActionHtml.RenderActionHtml.PartialHtml.RenderPartial 這四種方法都可以協助我們在 View 裡面渲染部分 HTML 內容,網路上針對這四種方式的差異說明大都著重在使用方式,但這次我們往下挖,看看這四種方式做了些什麼事?

...繼續閱讀 »

[料理佳餚] ASP.NET 在不修改既有程式及後端資料的情況下統一置換某個特定字串

程式的生命週期往往比我們想像中的長,通常年紀愈大的程式包袱愈重,後面接手的人肩負的壓力也愈重,如果我們知道有一個字串叫 http://www.xxx.com ,現在因為政策的關係必須改成 https://www.xxx.com ,偏偏 http://www.xxx.com 被到處寫死在資料庫及程式原始碼裡面,除了把寫死的那些找出來改之外,我們還可以怎麼做?

...繼續閱讀 »

[廚餘回收] 要發 HTTP PUT、DELETE Request 到 IIS 站台卻收到 404、405 的錯誤訊息

相信很多朋友都有遇到過,我們用 ASP.NET MVC 或 ASP.NET WebApi 做好的標記有 HttpPut、HttpDelete 的 Action,部署到 IIS 伺服器之後,試著去發 Request 卻收到 404、405 的錯誤訊息,除非我們只寫 HttpGet、HttpPost 方法,不然有大於 87% 的機率會遇到,底下就來記錄一下解決的方式。

...繼續閱讀 »

[食譜好菜] BundleConfig 在 ASP.NET Core 還存在嗎?

原先從 ASP.NET MVC 4 開始就有的能幫助我們針對 js、css 靜態檔案做 Bundling 及 Minification 的 BundleConfig 到了 ASP.NET Core 還在嗎?答案是有的,只是換了一種使用方式,大致上還是跟原先一樣有兩個步驟:

  1. 設定要 Include 的指令碼檔案
  2. 在 View 裡面嵌入使用

但實現細節卻大不相同,我們來看看是怎麼個不同法?

...繼續閱讀 »