开源博客项目Blog .NET Core源码学习(11:App.Core项目结构分析)

  开源博客项目Blog的App.Core项目主要定义数据库表对应的数据类,同时定义配置文件读取、日志记录、辅助缓存等辅助类。App.Core项目安装的Nuget包不多,仅包括SqlSugarCore和Microsoft.Extensions.DependencyInjectio两类。
  App.Core项目的顶层文件夹如下图所示,下面逐一概述其大致用途。

在这里插入图片描述

  Config文件夹。包含对应App.Hosting项目的appsettings.json文件不同配置节的数据结构定义,分别为DbConfig(数据库连接字符信息)、QQAuthConfig(QQ授权登录配置)、SysConfig(系统基础配置),同时还定义了基于EasyCaching的缓存类SqlSugarCache,用于配置SqlSugar连接时配置ORM缓存。
  Data文件夹。其中的TransactionAttribute特性类供App.Application项目的数据库操作函数使用,用于启用数据库事务,而ISoftDelete接口仅定义一DeleteMark属性,供App.Core项目的Entities文件夹中众多数据库实体类继承及实现。
  Entities文件夹。保存数据库实体类、日志类等相关的接口、类定义。其下级结构如下图所示,其中:
  Blog文件夹包含与博客网站中文章分类、文章及标签、时间线等相关的实体类定义;
  Logs文件夹包含与系统异常、系统执行SQL、系统用户登录、系统操作等相关的日志类定义,但暂未看到使用这些类型记录日志的地方;
  SysManager文件夹包括与角色、授权、系统模块与按钮相关的类型定义;
  User文件夹包括与用户、账号、QQ账号相关的类型定义;
  IEntity泛型接口和Entity泛型类定义和实现了Id属性,App.Core项目的绝大部分数据类都继承了Entity泛型类。Post类应该保存的是类似公告的数据,但暂未在解决方案中找到使用该类的地方。

在这里插入图片描述

  Extensions文件夹。包含的ServiceCollectionExtension类定义SqlSugar的连接和配置函数,App.Hosting项目的program.cs文件中调用该函数启用SqlSugar模块;SqlSugarExtensions扩展类定义了分页和动态增加过滤器两个扩展函数。
  Pager文件夹。包含的IPagedList和PagedList定义和实现了分页数据接口,主要供SqlSugarExtensions类的分页函数ToPage使用。
  Repository文件夹。包含的IAppRepository泛型接口和AppRepository泛型类定义和实现了常用的增删改查等数据库操作函数,主要调用SqlSugar实现。
  Share文件夹。包含的CreativeType枚举定义了博客中的文章类型,包括原创和转载两种。

参考文献:
[1]https://gitee.com/miss_you/Blog
[2]https://www.donet5.com/Home/Doc
[3]https://github.com/MapsterMapper/Mapster
[4]https://github.com/rivenfx/Mapster-docs

  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值