/lin-cms-dotnetcore

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

Primary LanguageC#MIT LicenseMIT

Lin CMS .NET Core

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

项目简介

Build Status

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

本项目是 Lin CMS 后端的 .NET Core 2.2的 实现,

什么是 Lin CMS?

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

线上文档地址(完善中)

https://luoyunchong.github.io/vuepress-docs/dotnetcore/lin-cms/

线上 Demo

前端

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 2.2构建的,所以如果你比较熟悉Mvc、WebAPI、过滤器等概念,或者是 有.NET Framework中Mvc开发经验,相信你一定很容易写出代码。

后端主要技术

  • 数据库:FreeSql+MySQL5.6
  • ASP.NET Core2.2+MVC
  • 简化对象映射:AutoMapper
  • 身份认证框架:IdentityServer4
  • Json Web令牌:JWT
  • 文档:Swagger
  • 序列化:Newtonsoft.Json
  • 测试框架:Xunit
  • 日志 NLog
  • 简化注入服务:Scrutor
  • 通用扩展方法 Z.ExtensionMethods

前端

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

快速开始

Server 端必备环境

获取工程项目

git clone https://github.com/luoyunchong/lin-cms-dotnetcore.git

安装依赖包

打开lin-cms-dotnetcore项目目录

右击build-all.ps1,使用powershell运行。即可安装好相应的依赖。

打开powershell,cd到lin-cms-dotnetcore目录 ,输入如 下命令,运行此脚本。

.\build-all.ps1

双击lin-cms-dotnetcore.sln即可使用vs2019打开项目。

数据库配置

src/LinCms.Web目录中appsettings.json 请务必根据自己的实际情况修改此配置项

  "ConnectionStrings": {
    "Default": "Data Source=127.0.0.1;Port=3306;User ID=root;Password=123456;Initial Catalog=LinCms;Charset=utf8;SslMode=none;Max pool size=10"
  }

数据迁移

该项目使用FreeSql,默认自动迁移数据表结构,无须用户操作,但无数据,而且只有访问到表时才会创建某个表,所以用户可将备份SQL放到Mysql中生成,还原表结构及数据。

运行

用户可使用vs2019,单击LinCms .Web,即可自动启动后台服务。

会打开浏览器,访问https://localhosst:5001/swagger/index.html,会看到swagger的文档。

部署

https://blog.igeekfan.cn/2019/06/09/dotnetcore/ASP.NET-Core-Deploy-To-Ubuntu/

讨论交流

QQ 交流群

QQ 群号:643205479

微信公众号

微信搜索:林间有风

下个版本开发计划

  • 创建时间、创建人、修改时间、修改人、删除人、删除时间、是否删除(软删除)
  • 部署
  • 系统访问日志、错误日志可视化
  • 完善文档
  • 重构核心库结构
  • 基于lin-cms-vue的基础,将之前Mock.luo项目中的博客迁移过来
    • 博客随笔发布/编辑/删除
    • 留言板
    • 评论回复、审核、点赞等
    • 前端展示博客效果
    • 基础资料 BaseItem
    • 类别管理 BaseType

开源地址