学习笔记(三)2022
1 元数据(metadata)和代码(code) 2 ============================ 3 源码结构 4 =============================== 5 │ sscms.sln Visual Studio 项目文件 6 │ 7 ├─src/SS.CMS 接口、基础类 8 ├─src/SS.CMS.Cli 命令行工具 9 ├─src/SS.CMS.Core CMS核心代码 10 ├─src/SS.CMS.Web CMS App 11 └─tests 测试 12 ============================ 13 系统目录 14 ============================== 15 . 16 ├── log (运行日志目录) 17 ├── assets (后台资源文件目录) 18 ├── wwwroot (网站对外访问目录) 19 │ ├── SiteFiles (站群公用文件) 20 │ │ ├── Administrators (管理员文件夹) 21 │ │ ├── Users (用户文件夹) 22 │ │ ├── SiteTemplates (站点模板) 23 │ │ ├── TemporaryFiles (临时文件) 24 │ │ └── database.sqlite (本地数据库,可选) 25 │ │ 26 │ ├── ** (子站点文件夹) 27 │ └── index.html (默认页) 28 │ 29 ├── appsettings.json (.NET Core APP 配置文件) 30 ├── sscms.exe (SSCMS 主程序) 31 ├── sscms.json (SSCMS 配置文件) 32 └── web.config (非IIS部署可以删除) 33 ================================ 34 站点目录 35 ========================= 36 . 37 └── siteDir (站点目录) 38 ├── Template (站点模板) 39 │ └── Content (站点内容模板) 40 │ 41 ├── T_系统首页模板.html (站点首页模板) 42 └── index.html (站点首页) 43 =============================== 44 -Solution Items 45 -src 46 --Datory 47 --SSCMS 类库 48 ---Plugins 49 ----IPlugin.cs 50 --SSCMS.Cli 类库 51 ---Abstractions 抽象概念 52 --SSCMS.Core 类库 53 --Plugins 54 ---Plugin.cs 55 --SSCMS.Web 控制台应用程序 56 ---Program.cs 57 -tests 58 59 obj\Debug\net6.0\SSCMS.Web.xml 60 61 62 重要记录: 63 使用了Serilog框架记录日志 64 https://jwt.io/ 65 ———————————————————————————————————— 66 Quartz.NET托管服务轻松实现作业调度 67 ———————————————————————————————————— 68 Mono 跨平台的 .NET 运行环境 69 Quartz是一个开源的任务调度框架 70 McMaster命令行工具库 71 Datory 基于 Dapper 及 SqlKata 的通用数据库操作库,支持SqlServer、MySql、PostgreSql以及SQLite。 72 YamlDotNet 一个用于YAML的.NET 库 73 .NET缓存框架CacheManager 74 Senparc.CO2NET 公共基础库 75 微型 ORM 直接将数据库与 C# 对象映射的对象关係映射器。 76 Tokens.Jwt 77 FluentScheduler一个简单的任务调度框架 定时任务 https://github.com/fluentscheduler/FluentScheduler 78 Senparc.Weixin SDK 微信SDK https://sdk.weixin.senparc.com/ 79 HtmlAgilityPack; 敏捷的HTML解析器 https://html-agility-pack.net/ 80 https://dotnetfiddle.net/PRrnVc 类似http://jsfiddle.net 81 using SixLabors; 跨平台图形应用程序https://sixlabors.com/ 82 Newtonsoft 操作json的开源工具库 是json处理封装类 https://github.com/JamesNK/Newtonsoft.Json 83 =================== 84 ————常用命名空间———namespace————————————————————————————— 85 using System; 86 using System.Net.Http; 87 using System.Collections.Generic; 88 using System.Linq; 89 using System.Threading.Tasks; 90 using SqlKata; 91 using SSCMS.Enums; 92 using SSCMS.Models; 93 using SSCMS.Utils; 94 ———————————————————————————— 95 using FluentScheduler; 96 using Microsoft.AspNetCore.Antiforgery;反射 97 using Microsoft.AspNetCore.Authentication;认证 98 using Microsoft.AspNetCore.Http;浏览器 99 ----------------------- 100 =====微信SDK======== 101 using Senparc.Weixin; 102 using Senparc.Weixin.Exceptions; 103 using Senparc.Weixin.MP; 104 using Senparc.Weixin.MP.Containers; 105 using Senparc.Weixin.MP.Helpers; 106 using Senparc.Weixin.MP.AdvancedAPIs; 107 using Senparc.Weixin.MP.AdvancedAPIs.GroupMessage; 108 using Senparc.Weixin.MP.CommonAPIs; 109 using Senparc.Weixin.MP.Entities.Menu; 110 using Senparc.Weixin.MP.AdvancedAPIs.User; 111 ============= 112 using System.IdentityModel.Tokens.Jwt; 113 =================== 114 using SixLabors.Fonts; 跨平台图形应用程序https://sixlabors.com/ 115 using SixLabors.ImageSharp; 116 using SixLabors.ImageSharp.Drawing.Processing; 117 using SixLabors.ImageSharp.Formats.Png; 118 using SixLabors.ImageSharp.PixelFormats; 119 using SixLabors.ImageSharp.Processing; 120 ================ 121 using Newtonsoft.Json; 122 using Newtonsoft.Json.Converters; 123 ============ 124 using HtmlAgilityPack; 125 using System.Security.Claims;安全 126 using Microsoft.IdentityModel.Tokens;模型识别 127 using Dapper; 128 using Datory; 129 using Datory.Utils; 130 using TableInfo = SSCMS.Cli.Core.TableInfo; 131 Microsoft.AspNetCore.Hosting 命名空间 132 using Microsoft.Extensions.Configuration;命令行配置扩展。添加命令行方法 133 using Microsoft.Extensions.Hosting; 主机。创建默认生成器方法 134 using SSCMS.Configuration; CMS配置扩展。 135 using SSCMS.Core.Utils; CMS核心工具类。 136 using System.Runtime.Loader;提供 System.Runtime.Loader.AssemblyLoadContext 类,该类提供用于加载程序集的成员。 137 using Newtonsoft.Json.Converters; 转换器 138 using Datory.Annotations;注释 139 using System; 140 using System.IO;文件读写 141 using System.Security.Cryptography;密码相关 142 using System.Text;文本相关 143 using Microsoft.AspNetCore.Mvc; 144 using System.Linq; 类和接口支持使用查询的 语言集成查询 (LINQ) 145 System.Collections.Generic; 公开枚举数,该枚举数支持在指定类型的集合上进行简单迭代。系统通用 命名空间包含接口和类 146 using Newtonsoft.Json; 147 using SqlKata; https://www.nuget.org/packages/SqlKata/ 148 using SSCMS.Models;模型 149 using System.Threading.Tasks;线程,任务 150 using SSCMS.Services; 151 using Quartz.Impl; 152 using System.Collections.Specialized 命名空间包含专用的和强类型的集合,例如,链接的列表词典、位向量以及只包含字符串的集合。 153 using System.Reflection;系统反射 154 using CacheManager.Core;.NET缓存框架CacheManager 155 using Microsoft.Extensions.Configuration;扩展配置, 156 using Microsoft.Extensions.DependencyInjection; 服务集合 157 using Microsoft.Extensions.DependencyInjection.Extensions;依赖性注入 158 using SSCMS.Dto; 159 using SSCMS.Enums; 160 using SSCMS.Models; 161 using SSCMS.Services; 162 using Mono.Options; 163 using Quartz; 164 using McMaster.Extensions.CommandLineUtils;命令行工具库 165 using YamlDotNet.Serialization;一个用于YAML的.NET 库 166 using YamlDotNet.Serialization.NamingConventions;一个用于YAML的.NET 库 167 using Mono.Options; 168 using Mono.Options; 169 using Semver;语义版本控制 170 using System.Reflection;装配件反射 171 using Newtonsoft.Json.Linq;命名空间提供了用于实现 LINQ to JSON 的类。https://www.newtonsoft.com/json/help/html/N_Newtonsoft_Json_Linq.htm 172 using System.Runtime.InteropServices;运行时交互 173 using System.Collections.Specialized; 表示可通过键或索引访问的键/值对的集合。 https://docs.microsoft.com/zh-cn/dotnet/api/system.collections.specialized.ordereddictionary?redirectedfrom=MSDN&view=net-6.0 174 ----------------------------- 175 =======STL======= 176 using SSCMS.Core.StlParser.StlElement; 177 using SSCMS.Core.StlParser.Utility; 178 =============== 179 using ICSharpCode.SharpZipLib.Zip;实现在线压缩和解压缩 180 using SixLabors.ImageSharp; 图像处理,2D 图形 API 181 using SixLabors.ImageSharp.Processing;图像处理,2D 图形 API 182 ============= 183 using System; 184 185 using System.Collections.Specialized;表示可通过键或索引访问的键/值对的集合。 186 using System.Threading.Tasks; 187 using Datory; 188 using SqlKata; 189 using SSCMS.Enums; 190 using SSCMS.Models; 191 using SSCMS.Services; 192 193 ------------待看--------- 194 using System;数据类型转换、方法参数操作、数学计算、远程和本地程序调用等 195 using System.Collections.Generic;泛型集合接口和类。 196 using System.IO; 197 using System.Linq; 198 using System.Net; 199 using System.Reflection;反射 200 using System.Text; 201 using System.Threading.Tasks; 202 using Microsoft.Extensions.Configuration; 203 using Microsoft.Extensions.DependencyInjection; 204 using SSCMS.Cli.Core; 205 using SSCMS.Cli.Extensions; 206 using SSCMS.Core.Extensions; 207 using SSCMS.Core.Plugins.Extensions; 208 using SSCMS.Utils; 209 using Serilog; 210 using SSCMS.Cli.Abstractions; 211 using SSCMS.Configuration; 212 =============== 213 using Datory; 214 215 appsettings.json