Quartz.Net 持久化及 SignalR Core Dashboard的作法

系統開發難免會有一些背景批次定時的作業, 過去在 windows 平台可能開發 winform 或 console 程式由 windows 排程執行, 也可能自行開發程式內含 Timer 不斷的執行, 也曾見過有人將排程程式寫在網站程式中, 一樣利用 Timer 來執行, 省下另外建置的設備, 工程們總會找到自己的出路。 今天要分享的是 Quartz.Net 套件, 原本是 Java 下開源的框架, 1.0 版本早在 2002年9月發佈, 後來被移植到 .Net , 在 .Net 版本目前是 3.x 版, 適用於 .Net Framework 和 .Net Core, 這真的是很強大的排程作業軟體, 不過本身沒有提供什麼介面﹐所以需要自行開發。 網路上已有很多人發表了做法, 如今自己來做一套適合自己使用的介面﹐同時也分享給大家參考。

...繼續閱讀 »

Serilog.AspNetCore 的用法—使用 Serilog 強大的結構化資料 工具篇

前兩篇對於 Serilog 的使用和設定測試的差不多﹐目前為止應該可以應付大部分場景的使用﹐但Serilog 強大的 JSON 結構化格式呢?前面也提到過使用CompactJsonFormatter可以有更豐富的資訊﹐前面為了將Controller action獨立log還大費周張特別去撰寫如何取得Controller Name﹐如果改用CompactJsonFormatter 其實不用那麼麻煩﹐只是在前面也看過結構化的資訊用人類的眼睛並不容易直接找到想要看的資訊﹐這時就必須要有工具輔助﹐本來是想要自行撰寫﹐IT人員沒工具就要自已制作工具﹐不過已經有人做好好用的工具﹐就先來試試網路高手們的創作。

...繼續閱讀 »

Serilog.AspNetCore 的用法—基本使用方式

日期:2024/02/10
環境:.Net 8/Visual Studio 2022

今天大年初一﹐最近對 Serilog 做了些小研究﹐整理一下筆記﹐也是為了之後的專案使用。主要根據官網 GitHub - serilog/serilog-aspnetcore: Serilog integration for ASP.NET Core 進行測試和實作。Serilog有許多不錯的特點﹐例如﹐結構化的日誌﹑多種輸出的選擇(console, File…)﹑可在設定檔中配置…﹐在Asp.Net Core 算是居家出門備在身上的好良藥。

...繼續閱讀 »

Asp.net core web api + Vue & JWT refresh token 實作

原本在網路上想找一篇 Asp.net core Web Api 使用 JWT 認證﹐並且是使用 refresh token 機制的文章做參考﹐我想找的是前後端整合的﹐不過遍尋網路上的文章﹐九成以上都只講後端 Web Api 如何設計﹐極少數講前端﹐對於前後端如何配合使用更是難以找到相關文章﹐最後只找到一篇國外文章﹐具有前後端整合的文章不過前端用的是angular﹐剛好還沒時間研究但觀念差不多﹐所以就乾脆自行寫一篇前端使用 Vue 搭配 axios 如何做 refresh token 將前後端做個整合說明。

...繼續閱讀 »

Asp.Net Core 分散式Session – 使用 Redis

Session 是Web開發中可能會碰到的東西﹐雖然使用Session對於應用系統來說壞處多於益處﹐但有時在某些場景下或許有不得不用的情形﹐先不談其它的﹐Session就像是個全域性變數﹐隨時都可宣告﹐隨地都可修改內容﹐又任何時候都可信手拈來的使用﹐非常方便﹐可是就因為太方便了﹐若沒有好好的控管﹐很容易讓系統在出了問題時很難追查原因。在我曾接手過的案子就常見這種讓人恨的牙癢癢的系統。雖然要避免濫用Session﹐但還是不得不要了解Session的使用﹐由其是在分散式環境下要如何解決Session共用的問題。

...繼續閱讀 »

Redis Server 6.x for Ubuntu 20.04 Install

科技的演進﹐需求不斷擴張﹐使得系統架構越來越複雜﹐從早期的大型主機 Terminal方式﹑Client/Server﹑N-Tier﹐一路演進到分散式架構。早些年在分散式架構﹐透過 L4 Switch 和幾台 AP Server 就可以做出一個基本的分散式架構﹐對於 Session 的處理方式常會是以 L4 sticky 設定﹐讓 user 端黏在某台 AP Server﹐雖然有些失去  Load balance 的用意﹐但是是一個快速解決的方式。不過在容器化時代﹐這不是好的解決方案﹐為了能解決session 的共享﹐開始接觸了 Redis﹐工欲善其事﹐必先利其器﹐所以先將 Redis 環境架起來才能好好的研究。

因為之後開發的 .Net Core 程式要能發佈到 Linux Container ﹐所以 Redis 也打算採用 Linux 環境。

...繼續閱讀 »

Vue.js 學習心得1-重新認識 Web 開發

過去在職場上常聽到的是Internet 網頁程式設計師﹑Web應用工程師﹐但現在打開求職網站看到的則是徵求前端工程師﹑後端工程師﹑全端工程師﹐從名稱看前端工程師當然和前端框架有關﹐這幾年前端框架這名詞在Google一搜尋就會看不完的文章﹐那麼前端框架到底和過去的網頁應用程式開發有什麼不同呢?

...繼續閱讀 »