先来回答以下问题。

1.什么是cms?

Content Management System,内容管理系统。

2.dotnetcore是什么?

.NET Core,是由Microsoft开发,目前在.NET Foundation(一个非营利的开源组织)下进行管理,采用宽松的MIT协议,可构建各种软件,包括Web应用程序、移动应用程序、桌面应用程序、云服务、微服务、API、游戏和物联网应用程序。

3.lin-cms 是什么?

Lin-CMS 是林间有风团队经过大量项目实践所提炼出的一套内容管理系统框架。Lin-CMS 可以有效的帮助开发者提高 CMS 的开发效率,

Lin的定位在于实现一套 CMS的解决方案,管理系统的基础框架,提供了不同的后端,不同的前端实现,后端也支持不同的数据库,是一套前后端完整的解决方案

目前官方团队维护 lin-cms-vue,lin-cms-spring-boot,lin-cms-koa,lin-cms-flask 社区维护了 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构建的CMS开发框架,

  • 林间有风团队经过大量项目实践所提炼出的一套内容管理系统框架

  • 内置了 CMS 中最为常见的需求:用户管理、权限管理、日志系统等

lin-cms-koa(官方)

  • python

  • https://github.com/TaleLin/lin-cms-koa

  • ????使用Node.JS KOA构建的CMS开发框架

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/管理系统开发框架

lin-cms-tp5(社区)

  • php 被官方fork。

  • https://github.com/TaleLin/lin-cms-tp5

  • ???? A simple and practical CMS implememted by ThinkPHP 5.1

lin-cms-react(社区)

  • https://github.com/Bongkai/lin-cms-react

  • ???? React+Antd构建的CMS开发框架

lin-cms-dotnetcore(社区)

  • 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实现的CMS;前后端分离、Docker部署、OAtuh2授权登录、自动化部署DevOps、GitHub Action同步至Gitee

4.lin-cms-dotnetcore有哪些特点?

基于.NET Core3.1实现的LIN-CMS-VUE后端API,并增加了博客模块。目前实现简约的权限管理系统、基础字典项管理、随笔专栏,评论点赞、关注用户、技术频道(标签分类)、消息通知,标签等仿掘金模块。

功能模块的设计

基础权限模块

  • 用户信息:邮件、用户名(唯一)、昵称、头像、分组、是否激活、手机号、是否是Admin、个性签名

    • 注册/登录

    • 上传头像

    • 修改个人密码

    • 用户基本信息修改

    • 用户增删改,配置分组

  • 绑定第三方账号

    • GitHub登录

    • QQ 登录

  • 分组信息:是否静态分组(无法删除,无法修改分组编码)、名称可以修改

    • 分组增删改

    • 分组配置权限

  • 文件管理

    • 本地文件上传

    • 七牛云存储

    • 文件去重,秒传

  • 系统日志:请求方法、路径、http返回码、时间、用户昵称、用户id、访问哪个权限、 日志信息

    • 记录系统请求的日志

    • 异常日志

  • 设置管理:name(键),value(值),provider_name(提供名),provider_key(提供者值)

    • 设置新增修改删除

    • 所有设置

比如存某用户选择的是markdown还是富文本。

name="Article.Editor",
value="markdown" 或 "富文本",
provider_name为"User",
provider_key为用户Id

或存储七牛云的某一个配置

name="Qiniu.AK",
value="asfadsfadf23rft66S4XM2GIK7FxfqefauYkcAyNGDAc" ,
provider_name为"Qiniu"或自己定义的字符串
provider_key为空

cms 管理员维护模块

  • 标签管理:名称、图片,是否启用/禁用,排序、文章数量、用户关注数量。

    • 标签增删改

    • 标签列表,禁用

    • 校正文章数量

  • 技术频道:封面图、名称、是否启用/禁用、排序、编码、备注描述、下属标签.一个技术频道对应多个标签

    • 技术频道增删改

    • 列表、禁用

  • 随笔管理:

    • 审核随笔/拉黑

    • 管理员删除随笔

  • 评论管理

    • 后台审核通过/拉黑

    • 管理员删除评论

  • 字典类别管理:编码,名称,排序

    • 增删改查

  • 字典管理::编码,名称,排序,类别:如随笔类型(原创、转载、翻译)

    • 增删改查

cms 用户端模块

  • 技术频道

    • 首页展示技术频道

    • 选择技术频道后,可再根据标签查询文章

  • 分类专栏管理:发布随笔时可选择单个分类。

    • 分类增删改(随笔数量、图片、名称、排序)

    • 分类列表,仅查看、编辑自己创建的分类专栏

  • 标签:统计每个标签下多少个文章、多少人关注

    • 标签列表

    • 无限加载

    • 最新/最热 根据标签名称模糊查询

    • 已关注的标签

    • 热门标签

  • 随笔

    • 支持目录导航(滚动时,固定至顶部位置),展示字数统计、预计阅读时长;

    • 作者介绍:头像,昵称,签名,随笔数;

    • 展示文章类型:原创、转载、翻译

    • 相关文章

    • 推荐文章

    • 支持markdown,增删改(仅自己的随笔),修正分类专栏中的随笔数量

    • 支持富文本编辑随笔

    • 列表无限加载,按标签查询随笔

    • 点赞随笔

    • 随笔详情页

  • 评论

    • 用户关闭评论时,无法对随笔进行评论

    • 评论随笔(内容支持超链接、emoji)

    • 删除自己的评论

    • 点赞评论

    • 回复评论

  • 关注

    • 关注/取消关注用户

    • 关注/取消关注标签

    • 我关注的用户发随笔

  • 个人主页

    • 关注的用户

    • 粉丝

    • 关注的标签

    • 用户专栏分类展示

    • 最新发布的随笔

    • 随笔

    • 关注

  • 设置

    • 编辑器设置,(可切换markdown/富文本)

    • 代码风格配置(tango、native、monokai、github、solarized-light、vs)

    • 密码修改:快速登录的账号,初次设置时可留空

    • 个人资料更新

    • 个人主页设置

    • 安全设置

    • 博客设置

  • 消息

    • 评论:点赞评论、评论随笔、回复评论

    • 喜欢和赞:点赞随笔、点赞评论

    • 关注,谁谁关注了你

脑图分享

http://naotu.baidu.com/file/6532431a2e1f0c37c93c5ffd1dd5b49c?token=87690a9bc64fbae1

分组

分为三种

id  name        info
1   Admin       系统管理员
2   CmsAdmin    内容管理员
3   User        普通用户

审计日志

大多数表存在如下8个字段,用于记录行的变化状态,is_deleted为软删除,执行删除操作时,将其状态置为true,默认实体类继承 FullAduitEntity 即可拥有以下8个字段。该设计参考ABP中的实现。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

相关技术

  • 数据库相关:ORM:FreeSql+DataBase:MySQL5.6

  • ASP.NET Core3.1+WebAPI+RESTful

  • 简化对象映射:AutoMapper

  • 身份认证框架:IdentityServer4

  • Json Web令牌:JWT

  • 文档API:Swagger(Swashbuckle.AspNetCore)

  • 序列化:Newtonsoft.Json

  • 测试框架:Xunit

  • 日志 Serilog

  • 依赖注入服务AutoFac

  • 通用扩展方法 Z.ExtensionMethods

  • 云存储:七牛云 MQiniu.Core

  • 分布式事务、EventBus:DotNeteCore.CAP

  • GitHub第三方授权登录AspNet.Security.OAuth.GitHub

  • QQ第三方授权登录AspNet.Security.OAuth.QQ

  • Docker

  • Azure DevOps

  • 健康检查AspNetCore.HealthChecks.UI.Client

  • GitHub Action同步至Gitee

分层结构(Layers)

  • framework

    • IGeekfan.CAP.MySql:为CAP实现了配合FreeSql的事务一致性扩展

  • identityserver4

    • LinCms.IdentityServer4:使用id4授权登录

  • src

    • LinCms.Web:接口API(ASP.NET Core)

    • LinCms.Application:应用服务

    • LinCms.Application.Contracts:DTO,数据传输对象,应用服务接口

    • LinCms.Infrastructure:基础设施,数据库持久性的操作

    • LinCms.Core:该应用的核心,实体类,通用操作类,AOP扩展,分页对象,基础依赖对象接口,时间扩展方法,当前用户信息,异常类,值对象

    • LinCms.Plugins 使用单项目实现某个业务的扩展,不需要主要项目结构,可暂时忽略。

  • test

    • LinCms.Test:对仓储,应用服务或工具类进行测试

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构建

  • GitHub Action实现 GitHub Gitee代码同步

  • .Net Core结合AspNetCoreRateLimit实现限流

  • 方法级别权限控制

  • 社交账号管理:支持多种第三社交账号登录,不干涉原用户数据,实现第三方账号管理

  • 多语言

  • 全局敏感词处理

  • 日志记录,方便线上排查错误

  • 支持多种数据库,并测试,

    • 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

lin-cms-dotnetcore功能模块的设计相关推荐

  1. 大力发展先进制造业和装备制造业-高端数控机床(组合机床和立柱移动式三坐标及其基础模块和功能模块规划设计图册技术)

    前言: 原大连组合机床研究所工作,主要从事组合机床和柔性组合机床及其自动线.高端多坐标自动换刀数控机床等研发和设计. 历任技术员.工程师.高级工程师和室主任等职,曾获国家科技攻关中作出突出贡献重大成果 ...

  2. 一网打尽APP常见功能模块页面设计,超全超详细

    本文转自墨刀公众号,这篇文章主要分享了一些我们日常常见的页面设计,超实用. 本期「素材播报」比较特别,没有原型分享,只想跟刀友们唠唠页面设计. 页面.组件都是构成原型的基础元素,不同的是,组件的搭建构 ...

  3. 网上商城的功能模块架构设计之(二)

    一.商城架构设计 现以一个小型的商城来设计访问实现系统,后期会根据业务的增长和用户的增加来进行架构的扩展. 二.商城功能架构访问逻辑图 三.系统功能列表 画出商城功能树的原因是为了更好更方便的看出包含 ...

  4. 项目_功能模块_基于Spring Boot的文件上传下载功能的设计与实现

    文章目录 基于Spring Boot的文件上传下载功能模块的设计与实现 1.前言 2.技术栈 3.关键源码 4.实现效果 4.1.登录 4.2.文件列表 4.3.上传文件测试 4.3.1.测试图片 4 ...

  5. Java后端开发功能模块思路

    文章目录 前言 一.查找接口及参数信息 1.1 找访问路径 1.2 参数及返回结果信息 1.3 编写功能模块函数 二.代码设计思路 三.总结 前言 对于正在学习Java后端开发的同学来说,对于Java ...

  6. C#毕业设计——基于C#+vs.net+SQL Server的多功能聊天软件设计与实现(毕业论文+程序源码)——多功能聊天软件

    基于C#+vs.net+SQL Server的多功能聊天软件设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于C#+vs.net+SQL Server的多功能聊天软件设计与实现,文章末尾附有 ...

  7. Java充电宝模型设计_继续探讨点赞功能模块设计

    继续探讨点赞功能模块设计 前几天我们设计了点赞模块的模块,大致思路就是: 用户点赞,首先缓存到redis中进行保存,redis中既要保存点赞总数,还要保存点赞记录.然后定时执行redis数据到数据库中 ...

  8. mysql订单详情的设计_订单功能模块设计与实现

    在商城项目中,之前我们介绍了购物车功能模块的实现,商品加入到购物车之后,就是到购物车结算,然后显示购物车的商品列表,点击去结算,然后到了未提交前的订单列表, 点击提交订单后,生成此订单,返回订单的订单 ...

  9. 这10个功能模块,手把手教你从零设计电商系统

    导读:电商业务与我们的生活息息相关,大家可能对电商多少也有一些了解,事实上,即使是一个最小化的电商系统,也依然是非常复杂的. 所以,我们先花一点时间,一起以一个创业公司的CTO的视角,设计一个最小化的 ...

最新文章

  1. java中class_JAVA中的Class类
  2. ACL 2021 | 为什么机器阅读理解模型会学习走捷径?
  3. STM32----重温ADC测量电压值
  4. CSS cursor 属性-鼠标形状
  5. java程序设计实验指导书_java程序设计实验指导书-my
  6. spring---FactoryBean与BeanFactory的区别
  7. 《笨方法学PYTHON》——eighteenthlesson
  8. SpringBoot启动后启动内嵌浏览器
  9. 在ubuntu用wget下载多个文件,axel多线程下载(多线程超级快)
  10. 配置销售开票时结转销售成本
  11. Oink:类似Foursquare Radar的排名应用
  12. SigFox Vs. LoRa:技术和商业模式之间的比较
  13. 各地发布防病提示,秋冬不注意腹泻来敲门
  14. 【SEMrush教程】SEO关键词魔法工具使用技巧
  15. Python—基于Flask框架调用百度接口实现语音识别功能
  16. 欧几里德算法及其扩展算法
  17. 中国能不能写出操作系统?
  18. ubuntu使用自定义鼠标主题
  19. 不知不觉很久不写博客了
  20. 是什么让沃尔玛发现了尿布和啤酒之间的关系呢?

热门文章

  1. 扼杀 304,Cache-Control: immutable
  2. php变量的判空和类型判断
  3. linux oracle手动启动两个实例
  4. jquery如何获取元素的滚动高度
  5. C#正则表达式编程(四)转致周公
  6. nest 架构_如何与其他人分享您的Nest Cam Feed
  7. box-shadow阴影合集
  8. Question | 网站被黑客扫描撞库该怎么应对防范?
  9. ActiveMQ与spring整合
  10. 云堆栈三大服务模式解析