OSSCore 開源解決方案介紹

基於.NetCore的積木化服務框架(Gitee地址),主要將常規解決方案進行進一步的抽象下沉形成相關基礎可選框架單元(在Framework 目錄),並在此基礎上實現常規系統模塊(在Modules 目錄),如用戶管理,權限管理等。

當前項目,目的是爲了提供一個思路,而不是模板。除了 Framework 下提供的基礎框架,OSSCore還有其他多個獨立的中間件類庫,見文檔下方。

已實現常規模塊

  1. Portal 用戶門戶
    用戶登錄註冊,支持以下方式自由組合:

用戶類型:管理員,用戶
賬號類型:手機號,郵箱,第三方(待完善)
登錄方式:密碼,動態碼,掃碼(進行中),Oauth(待完善),小程序(待完善)

同時還包括:用戶/管理員管理,權限碼管理,角色管理,以及登錄動態碼相關模板配置。

  1. Notify 通知服務
    主要包含通知模板管理,通知渠道(已接通華爲雲短信服務,阿里雲短信服務進行中,郵箱使用stmp協議)
    同時爲方便調試,提供系統測試通道,發送後會返回具體發送內容到交互端

安裝調試

  1. 數據庫腳本見 Docs/oss.core.sql,默認登錄賬號:[email protected] 111111
  2. 服務接口層
    正常微服務模塊相互之間可以獨立部署,爲了方便學習,提供了單點入口項目 OSS.Core.Module.All.WebApi ,直接運行即可(如果需要獨立模塊處理的,修改對應其他模塊的client通過Http訪問即可。)
    在倉儲層因爲使用了讀寫分離,配置 appsettings.json 的連接串時配置如下節點(或者配合倉儲層自行定義):
    "ConnectionStrings": {
        "WriteConnection": 寫連接串,
        "ReadConnection": 讀連接串
    }

     

  1. 交互層-管理端 (在 ** 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的字典配置管理組件。

其他相關獨立開源組件

除了以上核心的解決方案框架,本系統在底層已經使用,或將來會使用:

  1. OSS.Tools,通用工具中間件,分別包含:緩存,配置,日誌,定時器,網絡請求 中間件
  2. OSS.DataFlow, 異步消息中間件
  3. OSS.PipeLine, 流程引擎框架
  4. OSS.Clients.Pay, 支付相關客戶端SDK
  5. OSS.Clients.SNS, 社交相關客戶端SDK

 

 

可以關注OSSCore公衆號,關注後續更新

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章