又到了 PowerShell 練習時間。今天的題目是 - 如何在 PowerShell 引用 C# DLL? 借用上一篇介紹的 DotNetZip 當例子,我打算用 PowerShell 動態建立加密 ZIP 檔。 準備 PowerShell 腳本 Test.ps1 如下,並將 DotNetZip....

工作上有愈來愈多需要加密壓縮的場合,過去我慣用的做法是從 C# 呼叫外部程式,借助 7z.exe 完成任務。不方便之處是我必須先將要打包加密的內容依目錄結構寫成暫存檔,再交給 7-Zip 處理,且做完必須刪檔抹去足跡。這裡隱藏一個危機,若程式在寫暫存檔到刪檔前出錯,便可能殘留明文內容,有資訊外流風險...

系統維運難免會有直接修改正式台資料庫的需求,這類更新程序需要被嚴謹規範,萬一指令 WHERE 條件下錯,更新對象從一筆變成一萬筆,可不是亂著玩的。 為防範出錯,除了制定申請程序、要求指令複核,通常還要保留更新前後資料狀態,一方面可供人為確認,另一方面作為佐證。不過,要防止更新結果與預期不一致,除了靠...

最近又被 ODP.NET 版本問題搞得很煩。 故事是我有顆公用程式元件最近改版(假設名稱叫 MyLibrary.dll 好了),專案參照的 ODP.NET 已升級到 2.122.1.0。移交給同事使用時,同事的 ASP.NET 為配合其他元件仍在使用 ODP.NET 2.112.2.0,這種狀況下,...

使用者通報某網頁無法開啟,錯誤訊息為 SQL 查詢發生 Timeout,由錯誤行數推論查詢指令為單純的 SELECT * FROM MyTable WHERE PK = @id。進一步測試並確認問題只出在 MyTable 特定一筆,@id 換成其他值就是正常的。還有一點奇怪的地方,另一個網頁也是查詢...

過去在 IIS 跑 ASP.NET MVC 的同學,前進 ASP.NET Core 後會發現,在網站使用靜態檔案的做法跟以前很不一樣。 在 ASP.NET MVC4/5 專案中,靜態內容與程式檔案、.cshtml 是參雜在一起的,除了依習慣命名的 Content、Views、Models、Contr...

很久之前曾介紹過 OWIN - 微軟重新定義的開放網站介面標準,讓 ASP.NET WebAPI 跟 SignalR 不再侷限 IIS ( System.Web.dll),可輕鬆放進 Console Application / Windows Service 執行。而 OWIN 採取 Host/Se...

工作上某系統操作時需開啟附檔名為 .jnlp 的檔案,很顯然我的 Windows 10 不認得它。 爬文得知這是 Java 5.0 推出的一種程式部署技術 - Java Web Start,可隨時更新到最新版本並簡化安裝升級程序,聽起來很像微軟的 ClickOnce。 在有安裝 Oracle Ja...

網友提到 Chrome 出現網站憑證無效(ERR_CERT_AUTHORITY_INVALID)訊息。 用 Chrome 查詢憑證資訊的方法之前零散提過,在這篇做個小整理。 當 Chrome 發現 HTTPS 網站憑證有問題,預設行為是阻止你檢視網站內容,將不會進入網頁而是出現下面的白畫面。若你確信...

.NET Core 3.1 LTS (Long Term Support) 已在 2019/12/3 正式釋出,依我的觀點 LTS 是作為企業解決方案選項的重要條件,.NET Core 3.1 LTS 的問市意味在工作上可以放心大膽用下去囉。(補充:.NET Core 3.1 的下一版將會更名為 ....

一年一度的台北馬,由於固定於 12 月舉辦,常被跑友當成驗收一年練習成果的期末考。雖然不愛大拜拜型賽事,但認真跑了一年期末缺考成何體統,自然不能缺席。 維持月跑量 200K 將近一年,前一場板橋馬挑戰破四失敗,但學到一些經驗:要事先預習路線、注意 GPS 誤差、配速下限是 5:41 需全程緊盯。台北...

繼續練習寫 ASP.NET Core 的正確姿勢。 除了在 ASP.NET Core 無所不在的 DI,另一個跨進 .NET Core 要習慣的轉變是 - async/await 非同步化! 延伸閱讀: ASP.NET async 基本心法 .NET 已逐漸走向非同步化。以 ViewComponen...