透過類別程式庫共享 ASP.NET Core Controller 及 TagHelper
我習慣將常用功能包成套件讓各專案共享。以昨天介紹的 QR Code Tag Helper 為例,通常會跟一堆網頁功能放進某個開發工具箱專案,編譯成 NuGet Package 方便各專案引用,而 ASP.NET Core 讓我們能輕易實現這個理想,只要像下圖這樣: 建立一個類別程式庫專案 Shar... Read More
View ArticleElectron.NET 太笨重?用 ASP.NET Core Minimal API 寫桌面小工具的快速做法
講到用 ASP.NET Core 寫桌面 GUI 程式,大家通常會馬上想到 Electron.NET。 Electron.NET 威力固然強大,對我來說卻太過笨重,開發需下載安裝 Electron CLI、額外設定,而發佈檔案因包含 Chromium,容量往往達到數百 MB,這個大小對 Teams、... Read More
View Article輕前端筆記 - Vue.js 整合 ASP.NET 之 script 及 style 標籤問題
前幾天介紹過用 Tag Helper 製作 ASP.NET Core 網頁自訂元件,我便開心寫起元件,初測 OK,與 Vue.js 整合卻遇到問題,與 Vue 處理內含 <script> <style> HTML 的行為有關,請容我娓娓道來。 我設計出以下實驗重現及觀察。新增... Read More
View ArticleVS2013/2015 .NET 老專案 NuGet 問題
某古老專案建置時,.nuget\nuget.exe 出現以下錯誤訊息: 用戶端與伺服器無法溝通,因為它們沒有公用的演算法。 The client and server cannot communicate, because they do not possess a common algorith... Read More
View Article【茶包射手筆記】.NET 專案參照看似一切正常,卻無法編譯
因為一個 .NET 參照問題鬼打牆十分鐘,脫身後想起好像不是第一次遇到,肯定是當時沒好好寫篇筆記才被詛咒,趕緊補上。 模擬出相似情境如下,UnitTests 專案參照 MyConsoleApp 專案,呼叫其中 DummyModel.RandomString() 方法(註:範例錯打成 Dymmy 請無... Read More
View Article.NET 4.6 專案可以參照及使用 .NET 4.8 編譯的程式庫嗎?
昨天分享 .NET 4.5.2 專案參照 4.6.1 專案,只有警告訊息但編譯會出錯的茶包,靠將 A 專案升為 4.6.1+ 解決,但愈想愈不對... 若低版本 .NET 參照高版本註定無法運作,為什麼被歸為警告而非錯誤?而 .NET 4.X 採「就地更新」(In-Place Update)政策,在... Read More
View Article輕前端筆記 - 使用 Vue SFC (.vue 元件)
前幾天提到在 ASP.NET 使用輕前端 整合 Vue.js 做 MVVM,若遇到伺服端元件輸出 script/style 的注意事項。FB 留言區 Died Liu 分享透過 defineAsyncComponent 方法載入 .vue 元件檔的做法,不需要 npm、webpack 也能享受用 .... Read More
View Article輕前端筆記 - Vue3 SFC(.vue) 元件打包
昨天分享透過 vue3-sfc-loader 載入 .vue 檔案的解決方案,讓輕前端也能輕鬆應用 SFC 元件實現氣刀體一致,但仍有美中不足之處。 首先,vue3-sfc-loader 的原理是把 Vue CLI 開發階段用的 SFC 編譯程式搬到瀏覽器端( vue3-sfc-loader.js ... Read More
View ArticleJavaScript 鄉巴佬筆記 - ?. 運算子與物件屬性名簡寫
自從宣告 IE 封印解除,我一改過去儘量用古老寫法以免惹 IE 生氣的保守心態,積極學習現代 JavaScript。猶如鄉巴佬進城,連看見自動販賣機也會大讚科技好進步。對專業前端開發人員來說,2022 年還在介紹這種基本常識簡直笑死,但心想「總有比我更晚解封的人」,還是拋開羞恥心(謎:不要提那種你沒... Read More
View ArticleJavaScript 物件複製方法比較
複製物件是 JavaScript 的實用技巧之一,十幾前我就學會用 jQuery.extend() 搞定,常見應用是結合參數預設值及函式傳入的設定值,例如: const defaults = { fontSize: '10pt', color: 'white', backgr... Read More
View ArticleJavaScript 快顯通知套件 - NOTY
當遇到狀況,網頁要顯示訊息的形式有很多種,最無腦最粗暴的做法是 alert(): 標題、位置、樣式沒得選,也談不上與網頁風格一致,但系統內建不必花腦筋,程式碼可中斷等使用者回應再繼續,用起來超簡單是它最大優點。 但如果你的網站要拿來換錢錢或分數,簡陋的 alert()/confirm() 很容易讓... Read More
View Article字型檔圖示黑魔法 - Ligatures
應用系統網站免不了會用到小圖示。早從 ASP/WebForm 時代,我就有四處蒐集 16x16、12x12 迷你 GIF 圖示的習慣,但檔案來自四面八方,很難要求配色、風格一致,所以認識 Font-Awesome,我如獲至寶。一套包含數百上千個圖示,用一個 woff/ttf 檔加 css 取代上千個... Read More
View Article【笨問題】命令列執行結果同時輸出到螢幕跟檔案
CLI 指令執行結果要存成檔案很簡單,加上 > filename 將 stdout 轉向檔案就可以了。(或是 2>&1 >filename 連錯誤訊息也一併寫入) 但這麼做有個缺點,導向檔案後螢幕完全看不到結果,遇到耗時較久的作業會無法掌握進度,連程式有沒有當掉都搞不清楚。... Read More
View Article簡介字型檔格式:TTF、EOT、WOFF、WOFF2
先前用 FontAwesome 時學到網頁字型檔格式是 woff/woff2,較早期 IIS 需加設 MIME Types 才能正確下載。前陣子查閱 Google Material Icons 文件,讀到一段字型檔放自家網站的 CSS 設定範例: @font-face { font-family... Read More
View Article好用的 Google Font 字型檔圖示:Material Symbols、Material Icons
前陣子驚喜發現 Google 有一套 Material 風格字型檔案圖示,數量超過 2500 個,開放原始碼,採 Apach V2 授權可免費用於個人及商業用途,還有友善的查詢介面: 使用方法跟 Font Awesome 一樣簡單,用 LINK 參照 CSS,在 HTML 插入 <span ... Read More
View ArticleJavaScript 快顯通知 NOTY 在 Github 被標為過時,還能用嗎?
前幾天分享我找到好用的快顯通知套件 - NOTY,當時從一堆套件選中 NOTY,它只需一個 js 一個 css 搞定,甚至支援 IE10+,在 Github 上獲得超過 6700 顆星算是主流選擇之一,而簡便性與擴充性感覺不錯,最吸引我的點 - 不依賴 jQuery。雖然我一定會靠 jQuery 再... Read More
View Article用 Roslyn APIs 解析 C# 實現程式碼產生器
我很愛用程式產生器節省無謂手工,其中有個經典應用是用程式產生器將服務元件轉成 WebAPI/MVC Controller + 客戶端呼叫程式庫,原理不難,程式產生器參照 C# DLL,用 Reflection 找出方法及所需參數,再從 XML Documentation 註解檔(.xml)取出對應說... Read More
View Article小試 SweetAlert2 快顯通知模式
前陣子找到 JavaScript 快顯通知套件 - NOTY,雖然原作者已不再維護,但評估它最符合我的需求,如要修改也在我的能力範圍,維持原判。但接二連三有讀者提到,老朋友 SweetAlert2 其實就有定時自動關閉及其他快顯通知所需功能,有「眾裡尋他千百度,驀然回首,那人卻在燈火闌珊處」的驚喜感... Read More
View ArticleFont Awesome 6 圖示還能免費用在商業用途嗎?
免費字型檔圖示 Font-Awesome 是我的主力圖示來源,至今已到 6.1.1 版,授權方案也有些改變。前幾天 Google Material 圖示一文提到 Font-Awesome 6 分為 Free、Pro、Pro Max 三種方案,當時的認知是只有 Free 可免費用於個人或中低量用途(每... Read More
View Article【笨問題】VSCode 無法編輯過長文字
發現 VSCode 有個問題,當一行文字過長,最尾端會變成 ... (刪節號),水平捲軸即使移到最右側也不會展開,因此看不到後面的文字也無法編輯。(我最常遇到的狀況是 Data Uri) 爬文才知,VSCode 水平捲軸一直有 10,000 字元的限制,存在超過五年了,但解法很簡單,開啟自動換行就... Read More
View Article