lin-cms-dotnetcore功能模块的设计
先來回答以下問題。
1.什么是cms?
Content Management System,內(nèi)容管理系統(tǒng)。
2.dotnetcore是什么?
.NET Core,是由Microsoft開發(fā),目前在.NET Foundation(一個非營利的開源組織)下進行管理,采用寬松的MIT協(xié)議,可構(gòu)建各種軟件,包括Web應(yīng)用程序、移動應(yīng)用程序、桌面應(yīng)用程序、云服務(wù)、微服務(wù)、API、游戲和物聯(lián)網(wǎng)應(yīng)用程序。
3.lin-cms 是什么?
Lin-CMS 是林間有風(fēng)團隊經(jīng)過大量項目實踐所提煉出的一套內(nèi)容管理系統(tǒng)框架。Lin-CMS 可以有效的幫助開發(fā)者提高 CMS 的開發(fā)效率,
Lin的定位在于實現(xiàn)一套 CMS的解決方案,管理系統(tǒng)的基礎(chǔ)框架,提供了不同的后端,不同的前端實現(xiàn),后端也支持不同的數(shù)據(jù)庫,是一套前后端完整的解決方案
目前官方團隊維護 lin-cms-vue,lin-cms-spring-boot,lin-cms-koa,lin-cms-flask 社區(qū)維護了 lin-cms-tp5,lin-cms-react,lin-cms-dotnetcore,即已支持vue,react二種前端框架,java,nodejs,python,php,c#等五種后端語言。
lin-cms-vue(官方)
https://github.com/TaleLin/lin-cms-vue
???? Vue+ElementUI構(gòu)建的CMS開發(fā)框架,
林間有風(fēng)團隊經(jīng)過大量項目實踐所提煉出的一套內(nèi)容管理系統(tǒng)框架
內(nèi)置了 CMS 中最為常見的需求:用戶管理、權(quán)限管理、日志系統(tǒng)等
lin-cms-koa(官方)
python
https://github.com/TaleLin/lin-cms-koa
????使用Node.JS KOA構(gòu)建的CMS開發(fā)框架
lin-cms-flask(官方)
node.js
https://github.com/TaleLin/lin-cms-flask
????A simple and practical CMS implememted by flask
lin-cms-spring-boot(官方)
java
https://github.com/TaleLin/lin-cms-spring-boot
???? 基于SpringBoot的CMS/DMS/管理系統(tǒng)開發(fā)框架
lin-cms-tp5(社區(qū))
php 被官方fork。
https://github.com/TaleLin/lin-cms-tp5
???? A simple and practical CMS implememted by ThinkPHP 5.1
lin-cms-react(社區(qū))
https://github.com/Bongkai/lin-cms-react
???? React+Antd構(gòu)建的CMS開發(fā)框架
lin-cms-dotnetcore(社區(qū))
C#
????A simple and practical CMS implemented by .NET Core 3.1 一個簡單實用、基于.NET?Core
https://github.com/luoyunchong/lin-cms-dotnetcore
.NET Core 3.1實現(xiàn)的CMS;前后端分離、Docker部署、OAtuh2授權(quán)登錄、自動化部署DevOps、GitHub Action同步至Gitee
4.lin-cms-dotnetcore有哪些特點?
基于.NET Core3.1實現(xiàn)的LIN-CMS-VUE后端API,并增加了博客模塊。目前實現(xiàn)簡約的權(quán)限管理系統(tǒng)、基礎(chǔ)字典項管理、隨筆專欄,評論點贊、關(guān)注用戶、技術(shù)頻道(標簽分類)、消息通知,標簽等仿掘金模塊。
功能模塊的設(shè)計
基礎(chǔ)權(quán)限模塊
用戶信息:郵件、用戶名(唯一)、昵稱、頭像、分組、是否激活、手機號、是否是Admin、個性簽名
?注冊/登錄
?上傳頭像
?修改個人密碼
?用戶基本信息修改
?用戶增刪改,配置分組
綁定第三方賬號
?GitHub登錄
?QQ 登錄
分組信息:是否靜態(tài)分組(無法刪除,無法修改分組編碼)、名稱可以修改
?分組增刪改
?分組配置權(quán)限
文件管理
?本地文件上傳
?七牛云存儲
?文件去重,秒傳
系統(tǒng)日志:請求方法、路徑、http返回碼、時間、用戶昵稱、用戶id、訪問哪個權(quán)限、 日志信息
?記錄系統(tǒng)請求的日志
?異常日志
設(shè)置管理:name(鍵),value(值),provider_name(提供名),provider_key(提供者值)
?設(shè)置新增修改刪除
?所有設(shè)置
比如存某用戶選擇的是markdown還是富文本。
name="Article.Editor", value="markdown" 或 "富文本", provider_name為"User", provider_key為用戶Id或存儲七牛云的某一個配置
name="Qiniu.AK", value="asfadsfadf23rft66S4XM2GIK7FxfqefauYkcAyNGDAc" , provider_name為"Qiniu"或自己定義的字符串 provider_key為空cms 管理員維護模塊
?標簽管理:名稱、圖片,是否啟用/禁用,排序、文章數(shù)量、用戶關(guān)注數(shù)量。
?標簽增刪改
?標簽列表,禁用
?校正文章數(shù)量
?技術(shù)頻道:封面圖、名稱、是否啟用/禁用、排序、編碼、備注描述、下屬標簽.一個技術(shù)頻道對應(yīng)多個標簽
?技術(shù)頻道增刪改
?列表、禁用
?隨筆管理:
?審核隨筆/拉黑
?管理員刪除隨筆
?評論管理
?后臺審核通過/拉黑
?管理員刪除評論
?字典類別管理:編碼,名稱,排序
?增刪改查
?字典管理::編碼,名稱,排序,類別:如隨筆類型(原創(chuàng)、轉(zhuǎn)載、翻譯)
?增刪改查
cms 用戶端模塊
技術(shù)頻道
?首頁展示技術(shù)頻道
?選擇技術(shù)頻道后,可再根據(jù)標簽查詢文章
分類專欄管理:發(fā)布隨筆時可選擇單個分類。
?分類增刪改(隨筆數(shù)量、圖片、名稱、排序)
?分類列表,僅查看、編輯自己創(chuàng)建的分類專欄
標簽:統(tǒng)計每個標簽下多少個文章、多少人關(guān)注
?標簽列表
?無限加載
?最新/最熱 根據(jù)標簽名稱模糊查詢
?已關(guān)注的標簽
?熱門標簽
隨筆
?支持目錄導(dǎo)航(滾動時,固定至頂部位置),展示字數(shù)統(tǒng)計、預(yù)計閱讀時長;
?作者介紹:頭像,昵稱,簽名,隨筆數(shù);
?展示文章類型:原創(chuàng)、轉(zhuǎn)載、翻譯
?相關(guān)文章
?推薦文章
?支持markdown,增刪改(僅自己的隨筆),修正分類專欄中的隨筆數(shù)量
?支持富文本編輯隨筆
?列表無限加載,按標簽查詢隨筆
?點贊隨筆
隨筆詳情頁
評論
?用戶關(guān)閉評論時,無法對隨筆進行評論
?評論隨筆(內(nèi)容支持超鏈接、emoji)
?刪除自己的評論
?點贊評論
?回復(fù)評論
關(guān)注
?關(guān)注/取消關(guān)注用戶
?關(guān)注/取消關(guān)注標簽
?我關(guān)注的用戶發(fā)隨筆
個人主頁
?關(guān)注的用戶
?粉絲
?關(guān)注的標簽
?用戶專欄分類展示
?最新發(fā)布的隨筆
隨筆
關(guān)注
設(shè)置
?編輯器設(shè)置,(可切換markdown/富文本)
?代碼風(fēng)格配置(tango、native、monokai、github、solarized-light、vs)
?密碼修改:快速登錄的賬號,初次設(shè)置時可留空
?個人資料更新
個人主頁設(shè)置
安全設(shè)置
博客設(shè)置
消息
?評論:點贊評論、評論隨筆、回復(fù)評論
?喜歡和贊:點贊隨筆、點贊評論
?關(guān)注,誰誰關(guān)注了你
腦圖分享
http://naotu.baidu.com/file/6532431a2e1f0c37c93c5ffd1dd5b49c?token=87690a9bc64fbae1
分組
分為三種
id name info 1 Admin 系統(tǒng)管理員 2 CmsAdmin 內(nèi)容管理員 3 User 普通用戶審計日志
大多數(shù)表存在如下8個字段,用于記錄行的變化狀態(tài),is_deleted為軟刪除,執(zhí)行刪除操作時,將其狀態(tài)置為true,默認實體類繼承?FullAduitEntity?即可擁有以下8個字段。該設(shè)計參考ABP中的實現(xiàn)。FullAduitEntity為泛型,默認id為long類型,FullAduitEntity<Guid>,即可改變主鍵類型,默認LinUser表主鍵long,保持create_user_id,delete_user_id,update_user_id都與LinUser的主鍵相同
id bigint create_user_id bigint create_time datetime is_deleted bit delete_user_id bigint delete_time datetime update_user_id bigint update_time datetime相關(guān)技術(shù)
數(shù)據(jù)庫相關(guān):ORM:FreeSql+DataBase:MySQL5.6
ASP.NET?Core3.1+WebAPI+RESTful
簡化對象映射:AutoMapper
身份認證框架:IdentityServer4
Json Web令牌:JWT
文檔API:Swagger(Swashbuckle.AspNetCore)
序列化:Newtonsoft.Json
測試框架:Xunit
日志?Serilog
依賴注入服務(wù)AutoFac
通用擴展方法 Z.ExtensionMethods
云存儲:七牛云 MQiniu.Core
分布式事務(wù)、EventBus:DotNeteCore.CAP
GitHub第三方授權(quán)登錄AspNet.Security.OAuth.GitHub
QQ第三方授權(quán)登錄AspNet.Security.OAuth.QQ
Docker
Azure DevOps
健康檢查AspNetCore.HealthChecks.UI.Client
GitHub Action同步至Gitee
分層結(jié)構(gòu)(Layers)
framework
IGeekfan.CAP.MySql:為CAP實現(xiàn)了配合FreeSql的事務(wù)一致性擴展
identityserver4
LinCms.IdentityServer4:使用id4授權(quán)登錄
src
LinCms.Web:接口API(ASP.NET Core)
LinCms.Application:應(yīng)用服務(wù)
LinCms.Application.Contracts:DTO,數(shù)據(jù)傳輸對象,應(yīng)用服務(wù)接口
LinCms.Infrastructure:基礎(chǔ)設(shè)施,數(shù)據(jù)庫持久性的操作
LinCms.Core:該應(yīng)用的核心,實體類,通用操作類,AOP擴展,分頁對象,基礎(chǔ)依賴對象接口,時間擴展方法,當(dāng)前用戶信息,異常類,值對象
LinCms.Plugins 使用單項目實現(xiàn)某個業(yè)務(wù)的擴展,不需要主要項目結(jié)構(gòu),可暫時忽略。
test
LinCms.Test:對倉儲,應(yīng)用服務(wù)或工具類進行測試
lin-cms 開源地址分享
后端接口?https://github.com/luoyunchong/lin-cms-dotnetcore
管理后臺UI?https://github.com/luoyunchong/lin-cms-vue
前端UIhttps://github.com/luoyunchong/lin-cms-vvlog
功能特性
?Azure Devops CI/CD構(gòu)建
?GitHub Action實現(xiàn) GitHub Gitee代碼同步
?.Net Core結(jié)合AspNetCoreRateLimit實現(xiàn)限流
?方法級別權(quán)限控制
社交賬號管理:支持多種第三社交賬號登錄,不干涉原用戶數(shù)據(jù),實現(xiàn)第三方賬號管理
多語言
?全局敏感詞處理
日志記錄,方便線上排查錯誤
?支持多種數(shù)據(jù)庫,并測試,
?Mysql
?Postgresql
?Sql Server
?SQlite
Demo
用戶端 lin-cms-vvlog?https://vvlog.baimocore.cn
普通用戶:710277267@qq.com
密碼:123qwe
管理員 lin-cms-vue?https://cms.baimocore.cn/
管理員:admin
密碼:123qwe
總結(jié)
以上是生活随笔為你收集整理的lin-cms-dotnetcore功能模块的设计的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 快速打造属于你的接口自动化测试框架
- 下一篇: 简单说说async/await