全文將圍繞(1)設計模式 (2)敏捷開發 html
目的: 結構足夠合理,代碼足夠優美,擴展性、可讀性、易維護性作到最優。linux
首先,靈感來源是微軟的一個開源項目OrchardCore:https://github.com/OrchardCMS/OrchardCore, 最開始關注它的時候是.net Framework, 後來轉到了 .net coregit
這裏是他的官方文檔:https://orchardcore.readthedocs.io/en/dev/ 後期有精力的話,我會將它源碼分析作一個系列的博客。github
可以實現Saas和Blog比較完善業務功能,並且模塊的擴展性很好,可是不是微服務架構,沒有服務註冊、路由、發現等,很難作到分佈式。我畫了一張該項目的基礎模塊包依賴圖,用來分析項目依賴關係:設計模式
還有一個微服務的開源項目,surging:https://github.com/dotnetcore/surging, 封裝了很全的微服務中的服務註冊、發現、網關,使用Netty重寫了http、WS、Mqtt通訊協議,支持ProtoBuffer、MessagePack序列化方式,Kafka、RabbitMq消息中間件等。緩存
如下是我繪製的包依賴圖:架構
我着手搭建的項目將參考上述開源項目,總體架構圖我後期會作補充和拆解分析。負載均衡