/lin-cms-dotnetcore

😃A simple and practical CMS implemented by .NET Core 3.1 一个简单实用、基于.NET Core 3.1实现的CMS;前后端分离、Docker部署、OAtuh2授权登录、自动化部署DevOps、GitHub Action同步至Gitee

Primary LanguageC#MIT LicenseMIT

Lin CMS .NET Core

😃 A simple and practical CMS implememted by .NET Core 3.1.5

项目简介

gitee async

本项目是完全出于个人喜爱,看到Lin-cms有了python,node.js,社区也有人出了lin-cms-tp5的版本

本项目是 Lin CMS 后端的 .NET Core 3.1的 实现,通过Vue.js实现的前后端分离CMS平台,目前实现简约的权限管理系统、基础字典项管理、随笔专栏,评论点赞,消息通知,标签等仿掘金模块。

什么是 Lin CMS?

Lin-CMS 是林间有风团队经过大量项目实践所提炼出的一套内容管理系统框架。Lin-CMS 可以有效的帮助开发者提高 CMS 的开发效率, 需要前端?请访问前端仓库。官方团队产品了解请访问TaleLin

线上文档地址(完善中)

线上 Demo

前端

  • 在原开源项目中增加了博客随笔、随笔评论、关注用户、标签、关注标签、技术频道(标签分类)、插件式功能(目前还没有) ,具体特点查看如下lin-cms-dotnetcore功能模块的设计,开源地址见下方。

Lin CMS 的特点

Lin CMS 的构筑**是有其自身特点的。下面我们阐述一些 Lin 的主要特点。

Lin CMS 是一个前后端分离的 CMS 解决方案

这意味着,Lin 既提供后台的支撑,也有一套对应的前端系统,

首先,传统的网站开发更多的是采用服务端渲染的方式,需用使用一种模板语言在服务端完成页面渲染:比如 Razor等模板技术。

服务端渲染的好处在于可以比较好的支持 SEO,但作为内部使用的 CMS 管理系统,SEO 并不重要。

但一个不可忽视的事实是,服务器渲染的页面到底是由前端开发者来完成,还是由服务器开发者来完成?其实都不太合适。现在已经没有多少前端开发者是了解这些服务端模板语言的,而服务器开发者本身是不太擅长开发页面的。那还是分开吧,前端用最熟悉的 Vue 写 JS 和 CSS,而服务器只关注自己的 API 即可。

其次,单页面应用程序的体验本身就要好于传统网站。

框架本身已内置了 CMS 常用的功能

Lin 已经内置了 CMS 中最为常见的需求:用户管理、权限管理、日志系统等。开发者只需要集中精力开发自己的 CMS 业务即可

更多关于Lin CMS的介绍请访问Lin CMS线上文档

所需基础

由于 Lin 采用的是前后端分离的架构,所以你至少需要熟悉 C# 和 Vue。

后端 C#

该项目的Lin 的服务端框架是基于.NET Core 3.1构建的,所以如果你比较熟悉Mvc、WebAPI、过滤器等概念,或者是 有.NET Framework中Mvc开发经验,相信你一定很容易写出代码。

相关技术

实践

  • DDD(Domain-Driven Design)领域驱动设计
  • Logging(日志)
  • DevOps(CI/CD,自动化构建)
  • Database Migrations(数据库自动迁移)
  • Authentication(身份认证)
  • Authorization(授权)
  • Separation of Concerns(关注点分离)
  • Repository Pattern(仓储模式)
  • SOLID Principles(单一职责)
  • Clean Code(代码整洁之道)

分层结构(Layers)

  • framework
    • VoVo.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:对仓储,应用服务或工具类进行测试

前端

前端需要开发者比较熟悉 Vue 的,另外需要了解 ES6,axios,ElementUi、webpack、Vuex、Vue-Router等等等

讨论交流

QQ 交流群

  • 林间有风(lin-cms-vue) QQ 群号:643205479
  • .NET Core搬砖队(lin-cms-dotnetcore) QQ群号:762828442

微信公众号

微信搜索:林间有风

开发计划

自动化构建CI/CD

azure devops

github action

开源地址