使用 Visual Studio 2019 編譯 Web Site Project 時吐出奇怪錯誤訊息,只有短短一句:Build (web): 並未將物件參考設定為物件的執行個體。(Object reference not set to an instance of an object),錯誤所在的... Read More
↧
【茶包射手日記】詭異的 Web Site Project 編譯錯誤
↧
如何開啟 .jnlp 檔?
工作上某系統操作時需開啟附檔名為 .jnpl 的檔案,很顯然我的 Windows 10 不認得它。
爬文得知這是 Java 5.0 推出的一種程式部署技術 - Java Web Start,可隨時更新到最新版本並簡化安裝升級程序,聽起來很像微軟的 ClickOnce。
在有安裝 Oracle Ja... Read More
↧
↧
ASP.NET Core Middleware 實驗
很久之前曾介紹過 OWIN - 微軟重新定義的開放網站介面標準,讓 ASP.NET WebAPI 跟 SignalR 不再侷限 IIS ( System.Web.dll),可輕鬆放進 Console Application / Windows Service 執行。而 OWIN 採取 Host/Se... Read More
↧
ASP.NET Core 基礎 - 使用靜態檔案
過去在 IIS 跑 ASP.NET MVC 的同學,前進 ASP.NET Core 後會發現,在網站使用靜態檔案的做法跟以前很不一樣。
在 ASP.NET MVC4/5 專案中,靜態內容與程式檔案、.cshtml 是參雜在一起的,除了依習慣命名的 Content、Views、Models、Contr... Read More
↧
【茶包射手札記】SQL Blocking 詭異案例 - sp_releaseschemablock
使用者通報某網頁無法開啟,錯誤訊息為 SQL 查詢發生 Timeout,由錯誤行數推論查詢指令為單純的 SELECT * FROM MyTable WHERE PK = @id。進一步測試並確認問題只出在 MyTable 特定一筆,@id 換成其他值就是正常的。還有一點奇怪的地方,另一個網頁也是查詢... Read More
↧
↧
ODP.NET 參照版本暴力修改工具(終極版)
最近又被 ODP.NET 版本問題搞得很煩。
故事是我有顆公用程式元件最近改版(假設名稱叫 MyLibrary.dll 好了),專案參照的 ODP.NET 已升級到 2.122.1.0。移交給同事使用時,同事的 ASP.NET 為配合其他元件仍在使用 ODP.NET 2.112.2.0,這種狀況下,... Read More
↧
VS 小技巧 - 快速寫出 ASP.NET Core DI 需要的參數建構式
由 ASP.NET Core 練習 - 依賴注入 DI 我們知道 ASP.NET Core 已全面使用依賴注入管理物件生命週期,Model、Controller 要使用服務,或是服務 A 要使用服務 B,都要透過 DI 容器取得服務的執行個體(Instance),而非自己 new 一個出來用。而使用... Read More
↧
防禦式 SQL 更新
系統維運難免會有直接修改正式台資料庫的需求,這類更新程序需要被嚴謹規範,萬一指令 WHERE 條件下錯,更新對象從一筆變成一萬筆,可不是亂著玩的。
為防範出錯,除了制定申請程序、要求指令複核,通常還要保留更新前後資料狀態,一方面可供人為確認,另一方面作為佐證。不過,要防止更新結果與預期不一致,除了靠... Read More
↧
字串 Split() 結果出現 System.Array 不支援 LINQ 方法錯誤
對同事做了一場 Dapper 威力展示。
原本打算示範 cn.Query("SELECT ColName FROM TblName").First().ColName.Split(',').First() 讀取 CSV 欄位值 Split() 分割成字串陣列再用 First() ... Read More
↧
↧
使用 C# 實現資料不落地加密 ZIP 壓縮
工作上有愈來愈多需要加密壓縮的場合,過去我慣用的做法是從 C# 呼叫外部程式,借助 7z.exe 完成任務。不方便之處是我必須先將要打包加密的內容依目錄結構寫成暫存檔,再交給 7-Zip 處理,且做完必須刪檔抹去足跡。這裡隱藏一個危機,若程式在寫暫存檔到刪檔前出錯,便可能殘留明文內容,有資訊外流風險... Read More
↧
PowerShell 練習 - 呼叫 .NET DLL 程式庫
又到了 PowerShell 練習時間。今天的題目是 - 如何在 PowerShell 引用 C# DLL?
借用上一篇介紹的 DotNetZip 當例子,我打算用 PowerShell 動態建立加密 ZIP 檔。
準備 PowerShell 腳本 Test.ps1 如下,並將 DotNetZip.... Read More
↧
【茶包射手日記】詭異的 SQL 字串截斷錯誤
某套老系統在新裝的測試環境噴出 SQL String or binary data would be truncated. (字串或二進位資料會被截斷) 錯誤。
詭異之處在於:引發錯誤的輸入內容很簡短,想不出有超出 VARCHAR 長度的可能,加上該系統運作了十多年,第一次在這個環節遇到字串過長被截... Read More
↧
黑暗後花園 Facebook 粉絲專頁破千抽獎活動
慶祝我的臉書第二頻道 - 黑暗後花園 在 2020 年開春讚數破千,說好的抽獎活動來了!
這回的獎品是黑暗工作室六萬多人團隊精心研發的程序員專屬螢幕小配件,伴你 Coding 到深夜。
當你面對踏破鐵鞋也抓不出 Bug、改了又改的規格,或是才剛上手就被潮流淘汰的 JavaScript Framewo... Read More
↧
↧
C# SFTP 上傳下載範例
近幾年來,網站全面改用 HTTPS 加密傳輸已是業界共識,違者會被 Google 調降搜尋結果排名,被 Chrome 在額頭刺上【不安全】。同樣的,檔案傳輸協定 FTP 如不升級成加密版 SFTP,也一樣會被資安單位盯上要求改善。過去寫過 C# FTP 上傳、下載範例,如今也該與時俱進,研究一下 C... Read More
↧
dotnet ef 找不到指定的命令
大家新年好,鼠年大吉。
今年過年比較怠惰,拖到初三才開始寫 Code。起了個迷你 Side-Project 計劃寫個網頁版「一二級保養檢核表」自用,最重要的目的是想熟悉 Razor Page。資料庫部分準備用 EF Core + SQLite,照著先前寫的 EF Core 筆記要產生資料表 Scri... Read More
↧
淺談 PowerShell 中的密碼字串加密處理
使用 PowerShell 處理認證身分時,常會被要求以 System.Security.SecureString 型別傳遞密碼參數。Windows 作業系統針對 SecureString 有額外的安全防護,包含內容加密儲存、降低記憶體搬移或轉存次數、可透過 Dispose() 主動釋放記憶體...... Read More
↧
ASP.NET Core 新增修改刪除(CRUD)介面傻瓜範例 (1)
本系列文章打算用一個簡單的案例,展示如何用 Visual Studio 2019 專案範本快速做出一個可以新增修改刪除 SQL 資料的 ASP.NET Core Razor Page 網站,就像傻瓜相機一樣容易上手。(OS: 該不會現在的小朋友已不知傻瓜相機是什麼,結果看不懂比喻)
假想的需求情境像... Read More
↧
↧
ASP.NET Core CRUD 傻瓜範例 (2) - 資料庫準備
EF Core 是 ASP.NET Core 官方推薦的資料庫存取方式。雖然在 ASP.NET Core 裡,你還是可以沿用古法,自己開 SqlConnection,自己寫 T-SQL 透過 SqlCommand、SqlParameter 讀寫資料庫,沒什麼不行。但以下 Visual Studio ... Read More
↧
ASP.NET Core CRUD 傻瓜範例 (3) - 快速產生清單與新增修改刪除介面
上一篇提到,EF Core 是 ASP.NET Core 官方推薦的資料庫存取做法,因此,使用 EntityFramework 開發系統可以享用更多工具內建支援,像是「自動依據 Entity 物件產生新增修改刪除介面」。
目前為止,我們已備好 DailyRecord.cs、JournalDbCont... Read More
↧
ASP.NET Core CRUD 傻瓜範例 (4) - 介面客製調整
Scaffolding 雖然可以產生清單及新增修改刪除介面,但公版介面與實際需求總有些差距,以本次的情境為例,有幾個地方需要修改:
清單項目應依日期順序顯示,預設只顯示當月,必要時則可指定年月查詢歷史記錄
日期欄位雖為 DateTime,但輸入時只需提供日期就好,顯示時亦然
記錄限每日一筆,雖有 ... Read More
↧