日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

【开源】OSharpNS,轻量级.net core快速开发框架发布

發(fā)布時(shí)間:2023/12/4 编程问答 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【开源】OSharpNS,轻量级.net core快速开发框架发布 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

OSharpNS簡(jiǎn)介

OSharp Framework with .NetStandard2.0(OSharpNS)是OSharp的以.NetStandard2.0為目標(biāo)框架,在AspNetCore的現(xiàn)有組件?Microsoft.Extensions.DependencyInjection,Microsoft.Extensions.Configuration,
Microsoft.Extensions.Logging,Microsoft.Extensions.Caching,Microsoft.EntityFrameworkCore等 上進(jìn)行構(gòu)建的快速開(kāi)發(fā)框架。

框架目標(biāo)人群

本框架適用于中小型項(xiàng)目,一(兩)年以上開(kāi)發(fā)經(jīng)驗(yàn),對(duì)依賴注入,ORM,緩存,日志,發(fā)布訂閱模式有一定理解的開(kāi)發(fā)人員

框架組件組織

  • OSharp【框架核心組件】:框架的核心組件,包含一系列快速開(kāi)發(fā)中經(jīng)常用到的Utility輔助工具功能,框架各個(gè)組件的核心接口定義,部分核心功能的實(shí)現(xiàn)

  • OSharp.AspNetCore【AspNetCore組件】:AspNetCore組件,提供AspNetCore的服務(wù)端功能的封裝

  • OSharp.AutoMapper【對(duì)象映射組件】:AutoMapper 對(duì)象映射組件,封裝基于AutoMapper的對(duì)象映射實(shí)現(xiàn)

  • OSharp.EntityFrameworkCore【EFCore 數(shù)據(jù)組件】:EFCore數(shù)據(jù)訪問(wèn)組件,封裝EntityFrameworkCore數(shù)據(jù)訪問(wèn)功能的實(shí)現(xiàn)

  • OSharp.EntityFrameworkCore.MySql【EFCore MySql 數(shù)據(jù)組件】:EFCore MySql數(shù)據(jù)訪問(wèn)組件,封裝MySql的EntityFrameworkCore數(shù)據(jù)訪問(wèn)功能的實(shí)現(xiàn)

  • OSharp.EntityFrameworkCore.SqlServer【EFCore SqlServer 數(shù)據(jù)組件】:EFCore SqlServer數(shù)據(jù)訪問(wèn)組件,封裝SqlServer的EntityFrameworkCore數(shù)據(jù)訪問(wèn)功能的實(shí)現(xiàn)

  • OSharp.Permissions【權(quán)限組件】:使用AspNetCore的Identity為基礎(chǔ)實(shí)現(xiàn)身份認(rèn)證的封裝,以Security為基礎(chǔ)實(shí)現(xiàn)以角色-功能、用戶-功能的功能權(quán)限實(shí)現(xiàn),以角色-數(shù)據(jù),用戶-數(shù)據(jù)的數(shù)據(jù)權(quán)限的封裝

  • OSharpNS特性

    1. 模塊化的組件設(shè)計(jì)

    框架設(shè)計(jì)了一個(gè)模塊(Pack)的系統(tǒng),所有實(shí)現(xiàn)了模塊基類(OsharpPack)的類都視為一個(gè)獨(dú)立的模塊,一個(gè)模塊可以獨(dú)立添加服務(wù)(AddServices),并可在初始化時(shí)應(yīng)用服務(wù)(UsePack)進(jìn)行模塊初始化。

    2. 自動(dòng)化的依賴注入機(jī)制

    框架定義了ISingletonDependency,IScopeDependency,ITransientDependency三個(gè)空接口對(duì)應(yīng)DependencyInjection中的三種服務(wù)生命周期,系統(tǒng)初始化時(shí),通過(guò)反射檢索程序集的方式,檢索出所有服務(wù)類型(ServiceType)與服務(wù)實(shí)現(xiàn)(ImplementationType)及生命周期類型(ServiceLifetime)的相關(guān)數(shù)據(jù),對(duì)依賴注入的ServiceCollection進(jìn)行全自動(dòng)初始化。

    3. UnitOfWork-Repository模式,EFCore上下文動(dòng)態(tài)構(gòu)建

  • 數(shù)據(jù)模塊使用了UnitOfWork-Repository的模式來(lái)設(shè)計(jì),設(shè)計(jì)了一個(gè)泛型的實(shí)體倉(cāng)儲(chǔ)接口IRepository<TEntity,TKey>,避免每個(gè)實(shí)體都需實(shí)現(xiàn)一個(gè)倉(cāng)儲(chǔ)的繁瑣操作。設(shè)計(jì)了IUnitOfWork接口來(lái)管理事務(wù),通過(guò)UnitOfWork模式管理DbContext的創(chuàng)建,使同上下文類型同數(shù)據(jù)庫(kù)連接字符串的上下文使用相同DbConnection對(duì)象來(lái)創(chuàng)建,達(dá)到多上下文的事務(wù)同步能力。

  • 基于MVC的ActionFilter的UnitOfWorkAttribute?AOP 事務(wù)自動(dòng)提交,業(yè)務(wù)中不再需要關(guān)心事務(wù)的生命周期。

  • 系統(tǒng)初始化時(shí),通過(guò)反射檢索程序集的方式,檢索出各個(gè)實(shí)體與上下文的映射關(guān)系,向上下文中動(dòng)態(tài)添加實(shí)體類來(lái)構(gòu)建上下文類型,以達(dá)到上下文類型與業(yè)務(wù)實(shí)體解耦的目的。通過(guò)統(tǒng)一基類EntityTypeConfigurationBase<TEntity, TKey>的FluentAPI實(shí)體映射,自由配置每個(gè)實(shí)體與數(shù)據(jù)庫(kù)映射的每一個(gè)細(xì)節(jié)。

  • 4. 基于AspNetCore的Identity的身份認(rèn)證設(shè)計(jì)系統(tǒng)

  • 使用AspNetCore原生的用戶身份認(rèn)證框架,身份認(rèn)證相關(guān)操作統(tǒng)一使用UserManager<TUser>,RoleMamanger<TRole>兩個(gè)入口,保持了原生Identity的體系強(qiáng)大性與功能完整性。

  • 重新設(shè)計(jì)了用戶存儲(chǔ)UserStore和角色存儲(chǔ)RoleStore,使用框架內(nèi)設(shè)計(jì)的IRepository<TEntity,TKey>數(shù)據(jù)倉(cāng)儲(chǔ)接口來(lái)實(shí)現(xiàn)對(duì)數(shù)據(jù)的倉(cāng)儲(chǔ)操作,使Identity身份認(rèn)證系統(tǒng)與框架完美結(jié)合,避免了使用官方的Microsoft.AspNetCore.Identity.EntityFrameworkCore造成多個(gè)上下文或者被強(qiáng)制使用Identity上下文作為系統(tǒng)數(shù)據(jù)上下文來(lái)實(shí)現(xiàn)業(yè)務(wù)造成的尷尬。

  • 5. 設(shè)計(jì)了一個(gè)強(qiáng)大的功能權(quán)限與數(shù)據(jù)權(quán)限的授權(quán)體系

  • 從底層開(kāi)始,自動(dòng)收集了系統(tǒng)的所有業(yè)務(wù)點(diǎn)(IFunction)和數(shù)據(jù)實(shí)體(IEntityInfo),用于對(duì)系統(tǒng)的功能權(quán)限、數(shù)據(jù)權(quán)限、數(shù)據(jù)緩存、操作審計(jì) 等實(shí)用功能提供數(shù)據(jù)支持。

  • 功能點(diǎn)Function與MVC的Area/Controller/Action一一對(duì)應(yīng),是功能權(quán)限的最小驗(yàn)證單位,基于功能點(diǎn),可以配置:

  • 功能訪問(wèn)類型(匿名訪問(wèn)、登錄訪問(wèn)、限定角色訪問(wèn))

  • 功能的數(shù)據(jù)緩存時(shí)間及緩存過(guò)期方式(絕對(duì)過(guò)期、相對(duì)過(guò)期)

  • 是否開(kāi)啟操作審計(jì)(XXX人員XXX時(shí)間做了XXX操作)

  • 是否開(kāi)啟數(shù)據(jù)審計(jì)(操作引起的數(shù)據(jù)變化詳情(新增、更新、刪除))

  • 數(shù)據(jù)實(shí)體EntityInfo與數(shù)據(jù)庫(kù)中的各個(gè)數(shù)據(jù)實(shí)體一一對(duì)應(yīng),基于數(shù)據(jù)實(shí)體,可以配置:

  • 是否開(kāi)啟數(shù)據(jù)審計(jì),與Function上的同配置級(jí)別不同,如果指定實(shí)體未開(kāi)放審計(jì),則不審計(jì)當(dāng)前實(shí)體。

  • [未實(shí)現(xiàn)]?數(shù)據(jù)權(quán)限,基于角色 - 實(shí)體的數(shù)據(jù)權(quán)限設(shè)計(jì),通過(guò)配置實(shí)現(xiàn) XXX角色是否有權(quán)訪問(wèn)XXX實(shí)體數(shù)據(jù)(的XX屬性)

  • 設(shè)計(jì)了一個(gè)樹(shù)形結(jié)構(gòu)的業(yè)務(wù)模塊體系(Module),對(duì)應(yīng)著后端向前端開(kāi)放的操作點(diǎn)(菜單/按鈕),一個(gè)模塊可由一個(gè)或多個(gè)功能點(diǎn)構(gòu)成,模塊是對(duì)外開(kāi)放的特殊功能點(diǎn),是進(jìn)行角色/用戶功能授權(quán)的單位。把一個(gè)模塊授權(quán)給角色,角色即擁有了一個(gè)或多個(gè)功能點(diǎn)的操作權(quán)限。

  • 功能權(quán)限授權(quán)流程

  • [自動(dòng)]?創(chuàng)建MVC的各個(gè)Area/Controller/Action的功能點(diǎn)Function信息,存儲(chǔ)到數(shù)據(jù)庫(kù)

  • [自動(dòng)]?創(chuàng)建樹(shù)形模塊Module信息,并創(chuàng)建模塊與功能點(diǎn)(一個(gè)或多個(gè))的分配關(guān)系,存儲(chǔ)到數(shù)據(jù)庫(kù)

  • 將模塊Module分配給角色Role

  • 將角色Role分配給用戶User

  • 可將模塊Module分配給用戶User,解決特權(quán)問(wèn)題

  • 這樣用戶即可根據(jù)擁有的角色,自動(dòng)擁有模塊對(duì)應(yīng)著的所有功能點(diǎn)的功能權(quán)限

  • 功能權(quán)限驗(yàn)證流程

  • 功能點(diǎn)不存在時(shí),返回404

  • 功能點(diǎn)被鎖定時(shí),返回423

  • 功能點(diǎn)可訪問(wèn)性為匿名FunctionAccessType.Anonymouse驗(yàn)證通過(guò)

  • 功能點(diǎn)可訪問(wèn)性為需要登錄FunctionAccessType.Logined時(shí),用戶未登錄,返回401,已登錄則驗(yàn)證通過(guò)

  • 功能點(diǎn)可訪問(wèn)性為需要登錄FunctionAccessType.RoleLimit時(shí),流程如下:

  • 用戶未登錄,返回401

  • 逐個(gè)驗(yàn)證用戶擁有的角色Role,根據(jù)角色從緩存中取出Role-Function[]緩存項(xiàng),Function[]包含要驗(yàn)證的功能點(diǎn)時(shí),驗(yàn)證通過(guò)

  • 由分配給用戶的模塊Module對(duì)應(yīng)的功能點(diǎn),獲取到User-Function[](并緩存),Function[]包含要驗(yàn)證的功能點(diǎn)時(shí),驗(yàn)證通過(guò)

  • 驗(yàn)證未通過(guò),返回403

  • 系統(tǒng)初始化時(shí),根據(jù)每個(gè)角色Role分配到的模塊Module,自動(dòng)初始化每個(gè)?角色 Role - Function[]的權(quán)限對(duì)應(yīng)關(guān)系并緩存

  • 游客進(jìn)入系統(tǒng)時(shí),自動(dòng)請(qǐng)求所有可匿名訪問(wèn)FunctionAccessType.Anonymouse的模塊信息并緩存到瀏覽器,瀏覽器根據(jù)這個(gè)緩存的模塊集合,對(duì)前端頁(yè)面的各個(gè)操作點(diǎn)(菜單/按鈕)進(jìn)行是否隱藏/禁用的狀態(tài)控制

  • 注冊(cè)用戶登錄系統(tǒng)時(shí),自動(dòng)請(qǐng)求所有可執(zhí)行(包括匿名的FunctionAccessType.Anonymouse、登錄的FunctionAccessType.Logined、指定角色的FunctionAccessType.RoleLimit)的模塊信息并緩存到瀏覽器,瀏覽器根據(jù)這個(gè)緩存的模塊集合,對(duì)前端頁(yè)面的各個(gè)操作點(diǎn)(菜單/按鈕)進(jìn)行是否隱藏/禁用的狀態(tài)控制

  • 用戶User執(zhí)行一個(gè)功能點(diǎn)Function時(shí),驗(yàn)證流程如下:

  • [未實(shí)現(xiàn)] 數(shù)據(jù)權(quán)限授權(quán)流程

  • [未實(shí)現(xiàn)] 數(shù)據(jù)權(quán)限驗(yàn)證流程

  • 6. 集成 Swagger 后端API文檔系統(tǒng)

    OSharpNS 快速啟動(dòng)模板的開(kāi)發(fā)模式,集成了Swagger?API 文檔生成組件,更方便了前后端分離的開(kāi)發(fā)模式中前后端開(kāi)發(fā)人員的數(shù)據(jù)接口對(duì)接工作?;赟wagger的工作原理,API的輸入輸出都需使用強(qiáng)類型的數(shù)據(jù)類型,Swagger才能發(fā)揮更好的作用,而OSharpNS框架通過(guò)AutoMapper的ProjectTo對(duì)業(yè)務(wù)實(shí)體到輸出DTOIOutputDto提供了自動(dòng)映射功能,能有效減輕后端開(kāi)發(fā)中數(shù)據(jù)對(duì)象屬性映射的工作量。

    快速啟動(dòng)

    OSharpNS框架制作了一個(gè)基于dotnet cli命令行工具的快速啟動(dòng)模板,下面演示如何來(lái)使用這個(gè)模板快速創(chuàng)建一個(gè)基于OSharpNS框架的初始化項(xiàng)目。

    1. 安裝最新版本 dotnetcore sdk

    OSharpNS當(dāng)前版本(0.2.1-beta05)使用了?dotnetcore?當(dāng)前最新版本?2.1.1,所以對(duì)應(yīng)的?dotnetcore sdk?需要安裝到對(duì)應(yīng)版本?>=v2.1.301。

    2. 安裝OSharpNS的 dotnet new 項(xiàng)目模板

    在任意空白目錄,打開(kāi)cmd或者powershell命令行窗口,執(zhí)行命令

    dotnet new -i OSharpNS.Template.Mvc_Angular

    執(zhí)行后,將能看到osharp_xxx系列的命令已安裝到列表中

    3. 執(zhí)行 osharp_cmd 命令,獲取項(xiàng)目一鍵安裝腳本

    dotnet new osharp_cmd

    執(zhí)行后,將得到一個(gè)名為cmd_build.bat的批處理腳本文件

    4. 運(yùn)行腳本文件,生成項(xiàng)目初始化代碼

    直接執(zhí)行cmd_build.bat腳本代碼,將會(huì)提示?請(qǐng)輸入項(xiàng)目名稱,推薦形如 “公司.項(xiàng)目”的模式:,此名稱將用作解決方案名稱、工程名稱起始部分、代碼中的namespace起始部分。例如輸入Liuliu.Demo,將生成如下代碼結(jié)構(gòu):

    5. 用VS打開(kāi)解決方案

    打開(kāi)解決方案后,各個(gè)工程之間的引用關(guān)系已配置好,osharp框架的類庫(kù)已引用 nuget.org 上的相應(yīng)版本,并將自動(dòng)還原好。項(xiàng)目結(jié)構(gòu)如圖所示:

    項(xiàng)目代碼結(jié)構(gòu)說(shuō)明:

    • Liuliu.Demo.Core: 業(yè)務(wù)核心工程,頂層文件夾以業(yè)務(wù)模塊內(nèi)聚,每個(gè)文件夾按職責(zé)劃分文件夾,通??砂瑐鬏攲?duì)象Dtos、實(shí)體類型Entities、事件處理Events等,業(yè)務(wù)接口IXxxContract與業(yè)務(wù)實(shí)現(xiàn)IXxxService放在外邊,如果文件數(shù)量多的話也可以建文件夾存放。

    • Liuliu.Demo.EntityConfiguration: EFCore實(shí)體映射工程,用于配置各個(gè)業(yè)務(wù)實(shí)體映射到數(shù)據(jù)庫(kù)的映射細(xì)節(jié)。文件夾也推薦按模塊內(nèi)聚。

    • Liuliu.Demo.Web: 網(wǎng)站的Hosting項(xiàng)目,按常規(guī)方式使用即可

    項(xiàng)目啟動(dòng)配置

    • 按實(shí)際環(huán)境修改配置文件appsetting.Development.json中的OSharp:DbContexts:[SqlServer|MySql]中的配置信息,ConnectionString為數(shù)據(jù)庫(kù)連接串,AutoMigrationEnabled為是否開(kāi)啟自動(dòng)遷移

    • 如未開(kāi)啟AutoMigrationEnabled的自動(dòng)遷移功能,還需要在nuget 控制臺(tái)手動(dòng)執(zhí)行遷移操作

    Update-Database

    • 配置好后,即可正常啟動(dòng)端口號(hào)為7001的項(xiàng)目,啟動(dòng)后開(kāi)發(fā)模式將進(jìn)入Swagger的后端Api接口的文檔頁(yè)。

    6. Angular6的前端項(xiàng)目啟動(dòng)

    前端項(xiàng)目使用了ng-alain和kendoui作為UI進(jìn)行開(kāi)發(fā)的,需要熟悉nodejs,angular6等技術(shù)。

    安裝 NodeJS ,搭建前端技術(shù)環(huán)境

    • 安裝最新版本 NodeJS:angular6需要最新版本的 NodeJS,請(qǐng)到?NodeJS官方網(wǎng)站?下載最新版本的NodeJS進(jìn)行安裝。

    • 設(shè)置npm的淘寶鏡像倉(cāng)庫(kù):由于npm的國(guó)外倉(cāng)儲(chǔ)會(huì)很慢,所以最好把npm倉(cāng)庫(kù)地址指定國(guó)內(nèi)鏡像,推薦淘寶鏡像:

    npm config set registry https://registry.npm.taobao.org

    • 下載安裝 Visual Studio Code:前端最好用的IDE,官方下載

    使用 VS Code 打開(kāi) Angular 前端項(xiàng)目

    • 定位到項(xiàng)目的目錄src/ui/ng-alain,在空白處點(diǎn)右鍵,使用 VS Code 打開(kāi)項(xiàng)目,可看到如下結(jié)構(gòu):

    • 按Ctrl+Tab快捷鍵,調(diào)出VS Code的命令行控制臺(tái),輸入NodeJS包安裝命令:

      npm install

    • 包安裝完成后,輸入項(xiàng)目啟動(dòng)命令:

      npm start

    此命令將會(huì)執(zhí)行如下命令:ng serve --port 4201 --proxy-config proxy.config.json --open,其中--proxy-config proxy.config.json對(duì)前端項(xiàng)目發(fā)起的API請(qǐng)求進(jìn)行了代理,所有以?/api/開(kāi)頭的請(qǐng)求,都會(huì)轉(zhuǎn)發(fā)到服務(wù)端項(xiàng)目中進(jìn)行處理,代理的實(shí)際配置如下:

    {"/api": {"target": "http://localhost:7001","secure": false} }

    至此,項(xiàng)目啟動(dòng)完成,后續(xù)可以進(jìn)行用戶注冊(cè)的工作,請(qǐng)注意:

    系統(tǒng)的第一個(gè)注冊(cè)用戶,將自動(dòng)擁有系統(tǒng)最高權(quán)限的超級(jí)管理員權(quán)限

    最終效果如下圖所示:


    項(xiàng)目開(kāi)發(fā)進(jìn)度

    截止到目前,OSharpNS 框架的完成程度已經(jīng)很高了,計(jì)劃中的功能點(diǎn),除了數(shù)據(jù)權(quán)限未完成,其余均已得到較高水準(zhǔn)的實(shí)現(xiàn),具體功能點(diǎn)完成進(jìn)度如下所示:

    • [ ]?OSharpNS Framework

      • [x] 身份認(rèn)證Identity

      • [ ] 權(quán)限授權(quán)Security

      • [x] 系統(tǒng)System

      • [x] 用戶添加昵稱NickName屬性,并添加默認(rèn)驗(yàn)證器

      • [x] 重寫UserStore,RoleStore,使用現(xiàn)有IRepository進(jìn)行數(shù)據(jù)存儲(chǔ)

      • [ ] 實(shí)現(xiàn)角色-實(shí)體,用戶-實(shí)體的數(shù)據(jù)權(quán)限配置

      • [ ] 實(shí)現(xiàn)角色-實(shí)體,用戶-實(shí)體的數(shù)據(jù)權(quán)限過(guò)濾

      • [x] 實(shí)現(xiàn)功能權(quán)限各個(gè)業(yè)務(wù)實(shí)體的數(shù)據(jù)存儲(chǔ)

      • [x] 實(shí)現(xiàn)在系統(tǒng)初始化時(shí),遍歷反射程序集,自動(dòng)初始化功能點(diǎn)、數(shù)據(jù)實(shí)體、業(yè)務(wù)模塊等信息并持久化到數(shù)據(jù)庫(kù)

      • [x] 實(shí)現(xiàn)系統(tǒng)初始化時(shí),將功能點(diǎn),數(shù)據(jù)實(shí)體,角色功能權(quán)限等信息緩存到內(nèi)存中

      • [x] 實(shí)現(xiàn)角色-功能點(diǎn),用戶-功能點(diǎn)的功能權(quán)限驗(yàn)證

      • [x] 功能權(quán)限

      • [ ] 數(shù)據(jù)權(quán)限

      • [x] 實(shí)現(xiàn)鍵值對(duì)數(shù)據(jù)字典功能

      • [x] AspNet

      • [x] MVC

      • [ ] SignalR

      • [x] 實(shí)現(xiàn)框架啟動(dòng)入口app.UseOSharp(),調(diào)用Pack模塊管理器OSharpPackManager啟動(dòng)各個(gè)功能模塊(OSharpPack)

      • [x] 實(shí)現(xiàn)基于當(dāng)前請(qǐng)求的ServiceLocator的Scoped對(duì)象的解析

      • [x] 實(shí)現(xiàn)JSON請(qǐng)求的404處理中間件

      • [x] 實(shí)現(xiàn)JSON請(qǐng)求的異常信息到JSON操作結(jié)果與異常日志記錄中間件

      • [x] 添加Api專用控制器基類ApiController,AreaApiController

      • [x] 實(shí)現(xiàn)MVC功能點(diǎn)處理器

      • [x] 實(shí)現(xiàn)MVC業(yè)務(wù)模塊處理器

      • [x] 實(shí)現(xiàn)基于MVC的功能權(quán)限AOP攔截驗(yàn)證

      • [x] 實(shí)現(xiàn)基于MVC的事務(wù)提交AOP攔截提交

      • [x] 不同的映射類型,通過(guò)實(shí)現(xiàn)Profile來(lái)實(shí)現(xiàn)映射注冊(cè)

      • [x] 實(shí)現(xiàn)通過(guò)遍歷程序集,查找實(shí)現(xiàn)了IMapTuple接口的Profile來(lái)自動(dòng)注冊(cè)映射策略

      • [x] 定義MapToAttribute,MapFromAttribute類型,用以標(biāo)注Mapping的Source與Target類型,使用時(shí)在要映射的類型上標(biāo)注如[MapTo(typeof(TTarget))]或[MapFrom(typeof(TSource))]特性,框架初始化時(shí)自動(dòng)查找相應(yīng)的類型進(jìn)行CreateMap映射注冊(cè)

      • [x] 實(shí)現(xiàn)運(yùn)行時(shí)上下文類型初始化及自動(dòng)加載相關(guān)實(shí)體類型的功能

      • [x] 實(shí)現(xiàn)Repository倉(cāng)儲(chǔ)的數(shù)據(jù)存儲(chǔ)功能

      • [x] 實(shí)現(xiàn)UnitOfWork的多上下文管理及同DbConnection的上下文事務(wù)同步

      • [x] 添加常用Utility輔助工具類

      • [x] 添加框架配置Options定義

      • [x] 定義Entity數(shù)據(jù)訪問(wèn)相關(guān)接口

      • [x] 定義依賴注入模塊相關(guān)接口

      • [x] 定義并實(shí)現(xiàn)EventBus事件總線的設(shè)計(jì)

      • [x] 定義Mapper對(duì)象映射模塊相關(guān)接口

      • [x] 定義實(shí)體信息EntityInfo及初始化,用于給各個(gè)實(shí)體進(jìn)行數(shù)據(jù)日志審計(jì)配置及數(shù)據(jù)權(quán)限設(shè)計(jì)

      • [x] 定義功能點(diǎn)信息Function及初始化,用于收集各個(gè)業(yè)務(wù)功能點(diǎn)(如MVC的Action),用于對(duì)功能進(jìn)行緩存配置、操作日志審計(jì)、功能權(quán)限設(shè)計(jì)

      • [x] 定義Permissions權(quán)限模塊的相關(guān)接口

      • [x] 實(shí)現(xiàn)框架依賴注入服務(wù)啟動(dòng)入口,調(diào)用各個(gè)功能模塊(Pack)添加各模塊的服務(wù)映射

      • [x] 實(shí)現(xiàn)ServiceLocator服務(wù)定位模式的依賴注入對(duì)象的解析

      • [ ] OSharp

      • [x] OSharp.EntityFrameworkCore

      • [x] OSharp.AutoMapper

      • [ ] OSharp.AspNetCore

      • [ ] OSharp.Permissions

    原文地址:https://www.cnblogs.com/guomingfeng/p/osharpns-publish.html

    .NET社區(qū)新聞,深度好文,歡迎訪問(wèn)公眾號(hào)文章匯總 http://www.csharpkit.com

    創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來(lái)咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)

    總結(jié)

    以上是生活随笔為你收集整理的【开源】OSharpNS,轻量级.net core快速开发框架发布的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

    如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。