基於.NetCore的積木化服務框架(Gitee地址),主要將常規解決方案進行進一步的抽象下沉形成相關基礎可選框架單元(在Framework 目錄),併在此基礎上實現常規系統模塊(在Modules 目錄),如用戶管理,許可權管理等。 當前項目,目的是為了提供一個思路,而不是模板。除了 Framewor ...
基於.NetCore的積木化服務框架(Gitee地址),主要將常規解決方案進行進一步的抽象下沉形成相關基礎可選框架單元(在Framework 目錄),併在此基礎上實現常規系統模塊(在Modules 目錄),如用戶管理,許可權管理等。
當前項目,目的是為了提供一個思路,而不是模板。除了 Framework 下提供的基礎框架,OSSCore還有其他多個獨立的中間件類庫,見文檔下方。
已實現常規模塊
- Portal 用戶門戶
用戶登錄註冊,支持以下方式自由組合:
用戶類型:管理員,用戶
賬號類型:手機號,郵箱,第三方(待完善)
登錄方式:密碼,動態碼,掃碼(進行中),Oauth(待完善),小程式(待完善)
同時還包括:用戶/管理員管理,許可權碼管理,角色管理,以及登錄動態碼相關模板配置。
- Notify 通知服務
主要包含通知模板管理,通知渠道(已接通華為雲簡訊服務,阿裡雲簡訊服務進行中,郵箱使用stmp協議)
同時為方便調試,提供系統測試通道,發送後會返回具體發送內容到交互端
安裝調試
- 資料庫腳本見 Docs/oss.core.sql,預設登錄賬號:[email protected] 111111
- 服務介面層
正常微服務模塊相互之間可以獨立部署,為了方便學習,提供了單點入口項目 OSS.Core.Module.All.WebApi ,直接運行即可(如果需要獨立模塊處理的,修改對應其他模塊的client通過Http訪問即可。)
在倉儲層因為使用了讀寫分離,配置 appsettings.json 的連接串時配置如下節點(或者配合倉儲層自行定義):"ConnectionStrings": { "WriteConnection": 寫連接串, "ReadConnection": 讀連接串 }
- 交互層-管理端 (在 ** FrontEnds\AdminSite ** 目錄)
本地調試請配置 /config/proxy.ts 對應的代理介面地址。當前項目使用AntDesignPro框架,不熟悉如何調試運行的需要先行學習。
系統解決方案框架:
這裡主要是介紹服務層解決方案框架,在Framework文件夾。通過目錄結構展示如下:
Context 上下文
OSS.Core.Context 全局上下文(App,Tenant,User),通過全局 CoreContext 靜態類訪問。
OSS.Core.Context.Attributes 上下文請求攔截中間件擴展處理
Extension
OSS.Core.Extension.Cache 針對全局IResp介面的緩存方法擴展
OSS.Core.Extension.PassToken 全局行級數據安全通行碼擴展方法
OSS.Core.Extension.Mvc.Configuration Config配置全局擴展
Captcha (驗證碼)
OSS.Core.Extension.Mvc.Captcha 驗證碼請求攔截中間件擴展(人機校驗)
OSS.Core.Extension.Mvc.Captcha.Ali 阿裡雲驗證碼請求攔截中間件擴展實現
Core 核心模塊
OSS.Core.Domain 核心框架 - 領域實體(根)基礎類庫
OSS.Core.Service 核心框架 - 領域服務邏輯層基礎類庫
OSS.Core.WebApi 核心框架 - 領域協議層(WebApi)基礎類庫
Repository 倉儲
OSS.Core.Rep.Dapper 倉儲層基礎封裝(基於開源Dapper類庫)
OSS.Core.Rep.Dapper.Mysql 基於Mysql的倉儲層進一步封裝
Opened
OSS.Core.Domain.Opened 核心框架 - 領域實體(根)基礎類庫的全局公共部分類庫
Component
OSS.Core.Comp.DirConfig.Mysql 基於Mysql的字典配置管理組件。
其他相關獨立開源組件
除了以上核心的解決方案框架,本系統在底層已經使用,或將來會使用:
- OSS.Tools,通用工具中間件,分別包含:緩存,配置,日誌,定時器,網路請求 中間件
- OSS.DataFlow, 非同步消息中間件
- OSS.PipeLine, 流程引擎框架
- OSS.Clients.Pay, 支付相關客戶端SDK
- OSS.Clients.SNS, 社交相關客戶端SDK
可以關註OSSCore公眾號,關註後續更新