原创 學習Source Generators之瞭解Source Generators的應用場景

前面的文章我們都初步學習了Source Generators的使用方式以及做了一些簡單的代碼生成工具。 但是Source Generators除了做自動代碼生成之外,還能有別的應用場景,本文來了解一下Source Generators的應

原创 學習Source Generators之打包成Nuget使用

前面我們簡單的實現了一個從swagger生成實體類的Generator,在實際使用中,通過nuget包引用使用會更方便,那麼本篇文章將介紹如何將Generator打包成Nuget來使用。 打包Nuget 這裏我們將GenerateClass

原创 學習Source Generators之輸出生成的文件

上一篇文章學習了通過獲取和解析swagger.json的內容,來生成API的請求響應類。 但是其中無法移動與編輯。 那麼本文將介紹如何輸出生成的文件。 EmitCompilerGeneratedFiles 在控制檯程序中,的Property

原创 學習Source Generators之從swagger中生成類

前面學習了一些Source Generators的基礎只是,接下來就來實踐一下,用這個來生成我們所需要的代碼。 本文將通過讀取swagger.json的內容,解析並生成對應的請求響應類的代碼。 創建項目 首先還是先創建兩個項目,一個控制檯程

原创 學習Source Generators之IncrementalValueProvider

前面我們使用了IIncrementalGenerator來生成代碼,接下來我們來詳細瞭解下IIncrementalGenerator的核心部分IncrementalValueProvider。 介紹 IncrementalValueProv

原创 學習Source Generators之IIncrementalGenerator

前面我們用ISourceGenerator來實現代碼生成。但是在官方的介紹中有這麼一個警告:Warning: Source generators implementing ISourceGenerator have been depreca

原创 學習Source Generators之HelloWorld

介紹 源生成器是 C# 開發人員可以編寫的一種新組件,允許執行兩個主要操作: 檢索表示正在編譯的所有用戶代碼的編譯對象。 可以檢查此對象,並且可以編寫適用於正在編譯的代碼的語法和語義模型的代碼,就像現在使用分析器一樣。 生成可在編譯過程中

原创 項目需要實現國際化?不妨來試試它

之前造了一個多語言國際化的輪子,第一個版本UI的體驗感不是太好,用blazor重新實現了一個UI,體驗感應該還算不錯。 LinguaNex LinguaNex是一個多語言連接中心,主打一個一處配置多語言,多處使用的想法。讓項目方便快捷實

原创 單層應用升級到多層應用3

接上文,我們已經初步完成了單層到多層的拆分,接下來就是再優化我們的結構了。 升級思路 在前文的Core項目中,包含了我們所有的基礎功能,但是有些項目可能只需要部分功能卻引用整一塊Core的話,會顯得有些多餘,需要將這部分基礎設施再做一下細緻

原创 單層應用升級到多層應用2

接上文,我們已經粗略的拆分了單層應用,主要講一些基礎設施功能代碼抽離出去,但是業務代碼部分還是比較臃腫。 接下來就準備將業務部分抽離一下。 思路 前面將一些基礎的部分抽離出去了,接下來就是業務和API方面,這裏準備再抽離出兩個類庫。分別是

原创 單層應用升級到多層應用1

前面我們已經逐步完善了我們的單層應用,但是隨着複雜度提升,單層應用逐漸變得臃腫。爲了更好地應對日益增長的業務需求和保持應用的可維護性,我們需要考慮將單層應用升級爲多層應用。 升級思路 在單層應用中,我們講基礎設施的功能以及業務功能都寫在

原创 助力項目快捷實現國際化,造個多語言輪子

前段時間跟同事吹水聊天時,吐槽一個話題,就是公司項目都需要做多語言,前端後端都需要做。 而且是需要支持8國語言翻譯,每次弄起來都特麻煩,每加一個Key就需要去翻譯其他7個語言出來添加,每新增一個項目就需要弄一遍多語言資源,重複且枯燥費時的

原创 造輪子之單層應用總結篇

在前面的篇章中,我們一起探討了單層應用,從基礎設施的建設到實現各種業務功能,我們的單層應用經歷了一次又一次的進化。讓我們來回顧一下我們所實現的一些重要功能。 首先,我們在基礎設施方面取得了巨大的進展。我們實現了自動依賴注入,這個神奇的技

原创 造輪子之文件管理

前面我們完成了設置管理,接下來正好配合設置管理來實現文件管理功能。文件管理自然包括文件上傳,下載以及文件存儲功能。設計要求可以支持擴展多種存儲服務,如本地文件,雲存儲等等。 數據庫設計 首先當然是我們的數據庫表設計,用於管理文件。創建一個

原创 造輪子之設置管理

前面我們基礎設施基本搭建完畢,後面可以做一些稍微複雜點的功能了,接下來就來實現一個設置管理。設置管理一般用做一些系統設置之類的,如郵箱配置等,面向使用人員。而不需要修改我們的配置文件,修改配置文件的方式就偏向於技術人員了。話不多說,開造。