大家都知道,我寫 .NET 程式早已「無 LINQ 不歡」,上癮程度直逼「無 LINQ 吾寧死」 (LINQ or Die)(延伸閱讀:好 LINQ,不用嗎?)。這幾個月切到 PoewrShell 跑道,仗著它能無縫整合 .NET,遇到複雜一點的演算便想掏出 LINQ 解決問題。 但 LINQ 基於...

寫了一陣子 PowerShell,發覺自己跟它的陣列很不熟,老想著用 .NET LINQ 思維解題,有點吃力不討好。其實,PowerShell 陣列語法比 C# 靈活(例如: 索引可以是負數、用 .. 表示區間,+ 表示相對位置,註:C# 8.0 有加入一些)、ForEach()、Where() 也...

今天遇到的小問題,如下: 不長不短的人員姓名清單,想用 LINQ OrderBy 排序方便使用者尋找,排序結果有點怪,看不出依據為何。 加上 UT8 編碼後就清楚了,原來是依照 UTF8 編碼結果 byte[] 排列的: 爬文找到自己 9 年前的文章,才驚然想起,.NET 的字串排序可以靠 Cu...

寫 PowerShell Script 時,針對較複雜或步驟較多的作業,我會在執行過程加上 Write-Host 或 Write-Output 顯示一些資訊,一方面是回報進度可避免操作者茫然焦慮,另一方面,若發生錯誤,這些線索是判斷問題點的重要依據。 PowerShell 新手的疑問是: Write...

計劃把原本的手工部署與設定操作逐步轉成 PowerShell Script。這樣做有幾個好處: 作業標準化,避免人為失誤 寫成腳本,不管誰來操作結果都一致,不會無人交接手藝失傳,也排除腦殘眼拙手滑出錯的風險, 大量部署或需重複執行時可節省可觀時間 例如要部署上百台機器的場合。 可設定排程自動化部署...

學到一則有點驚悚的資安知識 - ASP.NET DLL 有可能因為管理操作不當,被人從 IIS 下載外流! 我們都知道 DLL 放在 ASP.NET bin 目錄時被視為程式,跟 App_Data 一樣具有特殊性,不能透過 httq://web-server/bin/Blah.dll 方式用瀏覽器下...

PowerShell 可以無縫整合 .NET 程式,威力無窮。但這也導致很多時候我搞不清楚這裡可以直接用 C# 寫法,還是該照 PowerShell 的規矩來? 新手上路階段,我最常踩到的坑就是多參數 PowerShell 函式的寫法。例如下面這段程式,大家猜猜輸出的結果是什麼? Hell? fun...

最近常在寫自動化及半自動化工作腳本,愈發覺得 PowerShell 好用,尤其能無縫整合 .NET 程式庫這點讓它威力無極限。但也開始學到一些實用但我之前沒學過的用法,會在 PowerShell FAQ 系列陸續整理分享。 【問題】PowerShell Function 如何接收外部函式作為輸入參數...

說來也算 .NET 的笨問題,但我第一時間竟有些迷惑,做個實驗強化信念。 疑問是下圖中的 Prop1、Prop2 是否每次取用都會重新執行,傳回不同結果? 完整程式如下: using System; using System.Collections.Generic; using System.Di...

前一篇文章我學到一個 .NET 組件編譯名詞 - Determinism。是指 .NET 編譯組件時停用加入 Timestamp 及隨機產生的 GUID 的做法,改以原始碼內容、工作路徑... 等條件為依據,確保相同程式碼在相同環境編譯出來的組件二進位內容完全一致,這有助於識別組件是否來自可信任來源...

在 Visual Studio 2019 想將 .NET Framework 專案設定版號自動跳號時卡住。 AssemblyInfo.cs [assembly: AssemblyVersion()] 上方的註解明明還提示可以寫成 1.0.* 讓系統自動跳號產生第三及第四段的 Build 及 Rev...

這是改寫 ASP.NET Core 後的一大困擾,ASP.NET Core 預設會將 .cshtml 編譯成 YourApp.Views.dll,不再像以前可以直接修改 Views 資料夾下的 .cshtml,重新整理瀏覽器就看修改後的結果。必須停止偵錯,重新編譯執行才會更新。 這項調整讓我的前端程...

在 VS2019 (版本 16.3.9) 開了新的單元測試專案,在 Test Explorer 可以看到測試方法,但測試無法執行。按下測試鈕後,測試無聲無息結束,執行測試數為 0,也沒傳回錯誤。同一個 Solution 有另一個 .NET Core 寫的 MSTest 單元測試 則一切正常測試。 O...

先懺悔一下好了。前篇討論 LINQ 邏輯執行時機的文章不小心示範了「好寫好用但不該推廣的技巧,」但未加註「叔叔有練過,小朋友不要學」或「叔叔在寫 Side Project,不會害到人」警語,恐有誤導之嫌。撰文前其實曾閃過「是否不妥」的念頭,但想想覺得還好便沒放心上。貼文後讀者 Shu Huan Hu...