本項目采用ASP.Net Core微服務技術,搭建博客和Saas平台。
全文將圍繞(1)設計模式 (2)敏捷開發
目的: 結構足夠合理,代碼足夠優美,擴展性、可讀性、易維護性做到最優。
以下目錄僅為整體思路,后期逐漸完善補充。
1.配置linux環境
2.持續集成
3.單元測試
4.用戶登錄
5.微服務API網關(Kong)
角色管理
模塊管理
菜單(導航)管理
主題配置
日志管理
博客內容管理
用戶評論管理
全文檢索
接入第三方認證及API治理
調用第三方API服務
工作流管理
定時作業、事件觸發
租戶(組織單位)管理(Saas)
ERP(簡化數據錄入、聯動、計算)
文件管理
郵件發送與接收
數字證書https管理
業務數據展示處理(報表)
大數據計算
其它技術
整體架構設計
首先,靈感來源是微軟的一個開源項目OrchardCore:https://github.com/OrchardCMS/OrchardCore, 最開始關注它的時候是.net Framework, 后來轉到了 .net core
這里是他的官方文檔:https://orchardcore.readthedocs.io/en/dev/ 后期有精力的話,我會將它源碼分析做一個系列的博客。
能夠實現Saas和Blog比較完善業務功能,而且模塊的擴展性很好,但是不是微服務架構,沒有服務注冊、路由、發現等,很難做到分布式。我畫了一張該項目的基礎模塊包依賴圖,用來分析項目依賴關系:
還有一個微服務的開源項目,surging:https://github.com/dotnetcore/surging, 封裝了很全的微服務中的服務注冊、發現、網關,使用Netty重寫了http、WS、Mqtt通信協議,支持ProtoBuffer、MessagePack序列化方式,Kafka、RabbitMq消息中間件等。
以下是我繪制的包依賴圖:
我着手搭建的項目將參考上述開源項目,整體架構圖我后期會做補充和拆解分析。