[料理佳餚] ASP.NET Core 的 Feature Flags(Feature Toggle)

Feature Toggle 這個議題最近挺夯的,它達到的效果就是我們透過設定,就可以輕易地開關應用程式上的功能,讓開發好的功能可以真正地發佈到 Production 上,但是不相關的使用者不會受到該功能的影響,也方便我們去測試只有在 Production 上才能測試的案例,而 ASP.NET Core 已經有套件支援 Feature Toggle,我們來看一下怎麼做?

...繼續閱讀 »

[食譜好菜] 用 Visual Studio 2019 建置整個 ASP.NET Core 框架來下中斷點及追蹤程式碼

在這個時代做程式設計,通常不會自己造輪子,都是使用別人做好的工具居多,難免會出現鬼打牆的情況,倒不見得是工具本身有 Bug,大多是我們對於工具內部的運作機制不熟悉的關係,這時候有原始碼可以參考的話,就能方便我們去處理問題,如果還能建置起來進去工具內部追蹤程式碼,更能加快處理問題的速度,以避免鬼打牆的情況持續太久,這篇文章就來記錄一下如何用 Visual Studio 2019 建置整個 ASP.NET Core 框架?

...繼續閱讀 »

[廚餘回收] 在 ASP.NET Core 使用 ViewLocationExpander 實作 Display Mode 要當心 ViewLocation 的 Cache 機制

這件事情是這樣的,在 ASP.NET MVC 有一個 Display Mode 功能,我們公司把它應用在 AWD(Adaptive Web Design) 機制上,雖然在 ASP.NET Core 被拿掉了,但是我們可以實作 IViewLocationExpander 把它給弄回來,某天發現某個 Mobile 網頁的內容套到了 Desktop 版的 Layout,百思不得其解,最後爬了 ASP.NET Core 的原始碼才知道怎麼回事。

...繼續閱讀 »

[小菜一碟] 幾乎不用經過後端 Web 應用程式的運算,就能取得伺服器時間。

當我們把大部分的運算移往前端瀏覽器時,難免會遇到需要一個相對準確的當下時間,我們都知道客戶端的時間是不可信的,有可能使用者從來不校時,或是使用者有屬於自己的時差,又或者使用者與之校時的伺服器,其時間根本就是錯的,種種原因都造成客戶端的時間不可信,面對這個問題,我們第一時間想到的大概就是做一個取得後端伺服器時間的 Web API 給前端使用,這篇文章要來分享儘量不透過後端 Web 應用程式來取得伺服器時間。

...繼續閱讀 »

[小菜一碟] 極省!用 WebMarkupMin 讓網站流量再節省那麼一點

一般我們如果打造的系統是給企業內部使用的話,走的是 Intranet,大概不會有程式設計師會去在意網路流量,當應用場景搬到了 Internet,流量成為企業經營成本的時候,那可是能省則省,因為在網際網路上大多數的內容,觀看者是沒有直接為這些內容付費的,成本當然能少一點是一點,這篇文章就要來介紹 WebMarkupMin 這個套件,將我們的 HTML 內容做最小化,減少不必要的傳輸流量。

...繼續閱讀 »

[廚餘回收] 用 WebDeploy 發佈 ASP.NET Core 應用程式到 IIS 遇到「error MSB6006: "msdeploy.exe" 以返回碼 -1 結束」的錯誤訊息

關於如何發佈 ASP.NET Core 應用程式到 IIS 上,官網上的這兩篇文章說得很清楚。

照著官網的步驟弄,一切還算順利,但還是遇到了一個小亂流,在執行 WebDeploy 的命令時,出現了「error MSB6006: "msdeploy.exe" 以返回碼 -1 結束」的錯誤訊息。

...繼續閱讀 »

[料理佳餚] .NET Core Console App 如何用組態(Debug|Release)來決定該輸出哪些設定檔?

以往我們都是透過組態(Debug|Release)來輸出不同環境的設定,這件事情到了 ASP.NET Core 則改由環境變數(Environment Variables)來控制,至於 Console App,網路上查到的資料也都是教我們用環境變數來控制設定的輸出居多,難道我們不能跟以前一樣使用組態來控制嗎?

...繼續閱讀 »

[小菜一碟] 如何讓 ASP.NET Core MVC 的 Razor View 在開發時期即時編譯?

ASP.NET Core 在發佈的時候,會將 Razor View 採用預先編譯的方式,這一點改變讓 Web 應用程式啟動得更快,但是在開發時期也是這樣就讓我挺不習慣的,原本我以為在開發時期即時編譯 Razor View 的功能,會在 Visual Studio 2019 v16.6 加進來,不過它似乎提早了

...繼續閱讀 »

[創意料理] 在 ASP.NET Core 沒有了 OutputCache,那就自己弄一個 ResultCache 加減用。

ASP.NET Core 的 ResponseCache 觸發伺服器端快取的條件尤為嚴格,限制很多,這也是它跟過去我們所熟悉的 OutputCache 特別不一樣的地方,所以 ResponseCache 我們也沒辦法就這樣直接當做 OutputCache 來使用,缺的部分我們只好自己來補足。

...繼續閱讀 »