前言
閒聊 - Web API 是否一定要 RESTful? 一文提到我個人偏好用 ASP.NET MVC 寫 WebAPI,讀者 Mark 留言希望能有簡單範例參考。這篇文章將示範用 ASP.NET MVC 從無到有打造一個簡單 WebAPI 服務,提供給初學 ASP.NET MVC 不知如何下手... Read More
↧
範例教學:使用 ASP.NET MVC 打造 WebAPI 服務
↧
ASP.NET Core + Nginx on CentOS 安裝筆記
先前文章已初步驗證 ASP.NET Core 程式可以不經修改直接搬到 Linux 執行,接下來得真的把它配置好才能上戰場。
ASP.NET Core 內建的 Kestrel 伺服器輕巧但功能陽春,實務上需搭配 Reverse Proxy 對外提供服務,在 ASP.NET Core 值得學嗎? 提過... Read More
↧
↧
ASP.NET Core 網站 Linux SFTP 部署與權限設定問題
前文提到在 Linux 上將 /var/www 擁有者及群組都設成 www-data,再將我的帳號(jeffrey)也加入 www-data 群組,目的是讓以服務形式執行的 ASP.NET Core 網站可使用 www-data 身分讀寫檔案。而當要部署更新檔案,則使用我的帳號登入,藉著屬於 www... Read More
↧
用 Markdown Monster 寫部落格
這回更換部落格平台,背後我還做了另一項大改變 - 改用 Markdown 寫文章。
為什麼要用 Markdown
隨著 Github/Stackoverflow 大量採用 Markdown 作為技術文件、討論區的撰寫格式,這些年寫 Markdown 已成為開發者參與技術社群的必備技能,甚至許多技術作... Read More
↧
2018 烏來馬拉松
兩年前跑過烏來馬,念念不忘美味山豬肉、漂亮獎牌及好看的完賽衣。去年沒留意報名日期,發現時已額滿好扼腕,今年當然不想再錯過,盯緊報名日順利入手。報名時肖想限量的合體獎牌,腦波一弱報了 42+7K 勇士組,還拉了跑馬老搭擋忠孝哥下水。報名是四月的事,當時心想反正還有半年,只要認真練習不過是全馬再多加短短... Read More
↧
↧
False Sharing 原理動態展示
介紹一個比較進階的效能議題 - False Sharing,先分享兩篇文章:
多執行緒程式的效能隱形殺手 - False sharing by Jed
False-sharing 以及其解法 (以 Golang 為例) by Genchi Lu
False Sharing 是一種開發時不易意識到... Read More
↧
高負載 .NET Logging 議題與 NLog 極端效能調校
跟同事討論到高負載 .NET Logging 議題。某程式有巨量 Log 寫入需求,執行幾小時 Log 量可達數 GB,甚至懷疑寫 Log 可能成為效率瓶頸之一,程式目前使用 log4net,考是是否應更換成其他 Log 程式庫?如果要換,有哪些選擇?
早年用過 log4net,複雜的 XML 設定... Read More
↧
笨問題 - ASP.NET Core 在 Linux 佔用大量 Virtual Memory
身為 Linux 初心者,遇到不懂狀況大驚小怪也是很合理滴。
在一台 1GB RAM CentOS 上跑了兩個 ASP.NET Core 網站,使用 top 觀察 CPU 及記憶體用量,top 顯示的記憶體數據共有 VIRT、RES、SHR、%MEM 四個欄位:
兩個 ASP.NET Core 網... Read More
↧
2018 飛龍盃烘爐地馬拉松
因為業績壓力十月份排了隔週馬,重溫參加過兩回的土地公馬(2015 2016)。
大清早趕到會場。土地公,早安!
五點天色尚暗,從洪爐地向下展望仍是夜景。
全馬人數不足千人,標準小而美,五點半準時起跑。
只記得開頭與結尾的陡坡,忘記華夏科技大學旁有斜度超過 20% 的厭世坡,實地跑個兩分鐘所有記... Read More
↧
↧
TIPS - 使用 Dapper 將 JObject 陣列匯入資料表
今天遇到的需很類似先前展示過的正式台測試台 JSON + Dapper 資料搬移術,差別在於資料表匯出的 JSON 個數很多,逐一宣告成強型別類別再反序列化太費工,且日後新增匯入對象就得改程式碼也麻煩。心想 Json.NET 可以 DeserializeObject<List>,直接用 ... Read More
↧
.NET Core SQLite 多執行緒更新之 database is locked 錯誤
在部落格 Log 發現 SQLite 在執行更新時偶發資料庫鎖定錯誤:
Oct 21 05:19:46 Blog darkblog-core: An unhandled exception has occurred while executing the request.
Oct 21 05:19:... Read More
↧
【茶包射手日記】Android 異常網路流量偵察
小木頭報案,紅米手機幾天前開始陷入瘋狂吃電狀態,即使關掉螢幕放著,手機一小時就掉電 60% 並發燙。
依據茶包射手準則第四章,調查 SOP 的第一步當然要詢問當事人:「最近有動了什麼變成這樣嗎?」而當事人依報案者檢調詢問攻防指南第三條,自然要回答「沒有,沒做什麼不知為何就變成這樣。」很好,完全符合大... Read More
↧
打造超省 CentOS 家用伺服器
身為一個程式魔人,在家裡跑個伺服器也是很合理滴~
最近玩了 ASP.NET Core、CentOS,驚喜發現 .NET Core 跨到 Linux 平台後硬體要求大降,1GB RAM 就跑得動,CPU 要求也不高,便有在家裡弄台伺服器跑家用小程式(像是救救菜英文)的衝動。在家裡架站的念頭想存在已久... Read More
↧
↧
CODE - TFS 檔案異動報表產生器
工作需求,上線前置作業想從 TFS 版控抓出指定期間異動過的檔案清單,懶得尋覓現成軟體或工具,寫幾行程式自幹搞定。
TF.EXE 有個 History 命令可列舉特定期間(/v:Dyyyy-MM-dd~Dyyyy-MM-dd)特定目錄下(/recursive)所有 Changeset,加上 /for... Read More
↧
ASP.NET Core Docker 筆記 1 - 初探
前面研究過在 CentOS 安裝及設定 ASP.NET Core + Nginx,習得徒手在 CentOS 安裝部署伺服器的技能,依循 Roadmap 來到下一階段 - 學習使用 Docker 簡化部署。
容器化及 Docker 這幾年熱到發燙,有些人甚至認為它已在軟體產業掀起一波革命。(我親身體驗... Read More
↧
ASP.NET Core Docker 筆記 2 - 組合容器建構系統
上篇文章體驗過在 CentOS 用 Docker Container 分別跑 Nginx 跟 ASP.NET Core 網站,並建立 Reverse Proxy 關係,接著探討在實務上當需要多個 Container 協同運作時應如何規劃整合。
一個系統常可再拆解成多個服務。以線上購物網站為例,就可能... Read More
↧
2018 貓空半馬
十月也算馬拉松旺季,連兩年因撞期缺席,今年十月排了隔週馬(1 2)但日子錯開,念在是舉在自家後院的賽事,免寄物跑完能馬上回家沖澡,不參加說不過去,就跑吧。
早上睡到飽,七點十分才出門,散步晃到會場時間還綽綽有餘,有主場優勢就是爽。今年台灣的路跑比賽大爆發,光 10/28 一天全台大大小小路跑就超過 ... Read More
↧
↧
ASP.NET Core Docker 筆記 3 - 共用 Nginx 容器與 Certbot 整合
前篇文章介紹過使用 Docker Compose 設定關聯容器(Web、DB、Reverse Proxy)組成系統,容器被隔離在專用網段(Compose 自動建立的 Bridge),並可透過客器名稱彼此溝通,Compose 也確保相關服務一起啟動一起關閉,是用多個容器建構系統最簡便的做法。
註:關於... Read More
↧
Blazor 預覽筆記
我以前常苦勸只會用 WebForm Server-Side Event 寫網頁的同事:JavaScript 一定要學好學滿,Flash 已被賈伯斯賜死,Silverlight 也隨風而逝,在這 HTML5 時代唯有 JavaScript 才是王道,逃避不學 JavaScript 只會 C# 跟人家寫... Read More
↧
小把戲 - 讓 JSON.parse() 內建日期解析功能
JSON.parse 時另外指定 Reviver 函式將 "yyyy-MM-ddTHH:mm:ssZ" 轉成 Date 型別,已是我用 JavaScript 解析 JSON 字串的SOP。參考:我慣用的標準做法 幾乎每次使用都要加工,一直抱怨為何瀏覽器不直接內建。先前寫 Knoc... Read More
↧