有使用 Castle DynamicProxy(Autofac.Extras.DynamicProxy 也是相依於它)實作 AOP 的朋友應該對 IInterceptor
這個介面不陌生,實作這個介面就能得到一個攔截方法的攔截器,但是目前 IInterceptor 只提供同步的版本,如果攔截的對象是非同步方法,事情就會變得麻煩一些,我們來看看該怎麼做?
[小菜一碟] ASP.NET Core 發佈時,只輸出最小化後的 JS/CSS 檔案。
- 1057
- 0
- ASP.NET Core
我們有使用 Bundler & Minifier 來幫助我們將自己撰寫的 JS/CSS 檔案打包跟做最小化,但是 ASP.NET Core 專案在發佈的時候,預設會連同原始檔案也一併發佈出去,多了一些無謂的檔案,因此我們會希望專案在發佈的時候,不要輸出這些檔案。
[料理佳餚] .NET Core Console App 如何用組態(Debug|Release)來決定該輸出哪些設定檔?
以往我們都是透過組態(Debug|Release)來輸出不同環境的設定,這件事情到了 ASP.NET Core 則改由環境變數(Environment Variables)來控制,至於 Console App,網路上查到的資料也都是教我們用環境變數來控制設定的輸出居多,難道我們不能跟以前一樣使用組態來控制嗎?
[小菜一碟] 如何讓 ASP.NET Core MVC 的 Razor View 在開發時期即時編譯?
- 1828
- 0
- ASP.NET Core
ASP.NET Core 在發佈的時候,會將 Razor View 採用預先編譯的方式,這一點改變讓 Web 應用程式啟動得更快,但是在開發時期也是這樣就讓我挺不習慣的,原本我以為在開發時期即時編譯 Razor View 的功能,會在 Visual Studio 2019 v16.6 加進來,不過它似乎提早了
[小菜一碟] 讓 IE(Internet Explorer)也能夠跑 ES6、ES7、ES8 的語法
- 5081
- 0
- JavaScript
這件事情說穿了其實就是用 Babel,平常就有在關注前端技術發展的朋友應該不陌生,Babel 可以將 JavaScript 比較新的語法轉譯成通用的寫法,讓舊版的瀏覽器(例如:IE)可以執行,我們就不需要為了舊版的瀏覽器而捨棄新語法。
[料理佳餚] ES8(ES2017)神奇的 async/await 語法在 ES6(ES2015)怎麼呈現?
- 1369
- 0
- JavaScript
JavaScript ES8(ES2017)的版本支援 async/await 語法,就像這樣:
這個語法對於主力是 C# 的我們並不陌生,async/await 語法可以在該進行等候資源的時候進行等候,而且不會打亂我們閱讀程式碼的順序,清晰度大大提昇,不過我很好奇,它是怎麼辦到的?
[料理佳餚] 用 SemaphoreSlim 來做 async/await 的鎖定
在 C# 應用程式內部要做鎖定,第一時間我們一定是先想到 lock 陳述式,但是 lock 陳述式無法在 async/await 的場景下使用,程式編譯不會通過,我們會得到一個錯誤訊息 - 無法在 lock 陳述式的主體中等候
。

[創意料理] 在 ASP.NET Core 沒有了 OutputCache,那就自己弄一個 ResultCache 加減用。
- 1169
- 0
- ASP.NET Core
- 2020-05-26
ASP.NET Core 的 ResponseCache 觸發伺服器端快取的條件尤為嚴格,限制很多,這也是它跟過去我們所熟悉的 OutputCache 特別不一樣的地方,所以 ResponseCache 我們也沒辦法就這樣直接當做 OutputCache 來使用,缺的部分我們只好自己來補足。
[小菜一碟] ASP.NET Core 解決 SEO 要求網址全小寫及無斜線結尾的問題
- 2031
- 0
- ASP.NET Core
- 2020-05-22
之前有寫過一篇在 IIS 用 URL Rewrite 解決 SEO 要求網址全小寫及有無斜線結尾的問題,到了 ASP.NET Core 雖然沒有 URL Rewrite 擴充套件可以安裝,但是有一個 URL Rewriting Middleware 可以來幫助我們做到一樣的事情。
[小菜一碟] ASP.NET Core MVC 中 _ViewStart.cshtml 及 _ViewImports.cshtml 的作用
- 4883
- 0
- ASP.NET Core
_ViewStart.cshtml 在 ASP.NET MVC 就存在了,而 ASP.NET Core MVC 則多了一個 _ViewImports.cshtml,這兩個都會對 View 有全域性的影響,重新來了解一下 _ViewStart.cshtml 及新多的 _ViewImports.cshtml 的作用。