学习笔记(二)元数据(metadata)和代码(code)
元数据(metadata)和代码(code) ============================ 源码结构 =============================== │ sscms.sln Visual Studio 项目文件 │ ├─src/SS.CMS 接口、基础类 ├─src/SS.CMS.Cli 命令行工具 ├─src/SS.CMS.Core CMS核心代码 ├─src/SS.CMS.Web CMS App └─tests 测试 ============================ 系统目录 ============================== . ├── log (运行日志目录) ├── assets (后台资源文件目录) ├── wwwroot (网站对外访问目录) │ ├── SiteFiles (站群公用文件) │ │ ├── Administrators (管理员文件夹) │ │ ├── Users (用户文件夹) │ │ ├── SiteTemplates (站点模板) │ │ ├── TemporaryFiles (临时文件) │ │ └── database.sqlite (本地数据库,可选) │ │ │ ├── ** (子站点文件夹) │ └── index.html (默认页) │ ├── appsettings.json (.NET Core APP 配置文件) ├── sscms.exe (SSCMS 主程序) ├── sscms.json (SSCMS 配置文件) └── web.config (非IIS部署可以删除) ================================ 站点目录 ========================= . └── siteDir (站点目录) ├── Template (站点模板) │ └── Content (站点内容模板) │ ├── T_系统首页模板.html (站点首页模板) └── index.html (站点首页) =============================== -Solution Items -src --Datory --SSCMS 类库 ---Plugins ----IPlugin.cs --SSCMS.Cli 类库 ---Abstractions 抽象概念 --SSCMS.Core 类库 --Plugins ---Plugin.cs --SSCMS.Web 控制台应用程序 ---Program.cs -tests obj\Debug\net6.0\SSCMS.Web.xml 重要记录: 使用了Serilog框架记录日志 https://jwt.io/ ———————————————————————————————————— Quartz.NET托管服务轻松实现作业调度 ———————————————————————————————————— Mono 跨平台的 .NET 运行环境 Quartz是一个开源的任务调度框架 McMaster命令行工具库 Datory 基于 Dapper 及 SqlKata 的通用数据库操作库,支持SqlServer、MySql、PostgreSql以及SQLite。 YamlDotNet 一个用于YAML的.NET 库 .NET缓存框架CacheManager Senparc.CO2NET 公共基础库 微型 ORM 直接将数据库与 C# 对象映射的对象关係映射器。 Tokens.Jwt FluentScheduler一个简单的任务调度框架 定时任务 https://github.com/fluentscheduler/FluentScheduler =================== ————常用命名空间———namespace————————————————————————————— using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using SqlKata; using SSCMS.Enums; using SSCMS.Models; using SSCMS.Utils; ———————————————————————————— using FluentScheduler; using Microsoft.AspNetCore.Antiforgery;反射 using Microsoft.AspNetCore.Authentication;认证 using Microsoft.AspNetCore.Http;浏览器 ----------------------- ============= using Senparc.Weixin; using Senparc.Weixin.Exceptions; using Senparc.Weixin.MP; using Senparc.Weixin.MP.Containers; using Senparc.Weixin.MP.Helpers; ============= using System.IdentityModel.Tokens.Jwt; =================== using System.Security.Claims;安全 using Microsoft.IdentityModel.Tokens;模型识别 using Dapper; using Datory; using Datory.Utils; using TableInfo = SSCMS.Cli.Core.TableInfo; Microsoft.AspNetCore.Hosting 命名空间 using Microsoft.Extensions.Configuration;命令行配置扩展。添加命令行方法 using Microsoft.Extensions.Hosting; 主机。创建默认生成器方法 using SSCMS.Configuration; CMS配置扩展。 using SSCMS.Core.Utils; CMS核心工具类。 using System.Runtime.Loader;提供 System.Runtime.Loader.AssemblyLoadContext 类,该类提供用于加载程序集的成员。 using Newtonsoft.Json.Converters; 转换器 using Datory.Annotations;注释 using System; using System.IO;文件读写 using System.Security.Cryptography;密码相关 using System.Text;文本相关 using Microsoft.AspNetCore.Mvc; using System.Linq; 类和接口支持使用查询的 语言集成查询 (LINQ) System.Collections.Generic; 公开枚举数,该枚举数支持在指定类型的集合上进行简单迭代。系统通用 命名空间包含接口和类 using Newtonsoft.Json; using SqlKata; https://www.nuget.org/packages/SqlKata/ using SSCMS.Models;模型 using System.Threading.Tasks;线程,任务 using SSCMS.Services; using Quartz.Impl; using System.Collections.Specialized 命名空间包含专用的和强类型的集合,例如,链接的列表词典、位向量以及只包含字符串的集合。 using System.Reflection;系统反射 using CacheManager.Core;.NET缓存框架CacheManager using Microsoft.Extensions.Configuration;扩展配置, using Microsoft.Extensions.DependencyInjection; 服务集合 using Microsoft.Extensions.DependencyInjection.Extensions;依赖性注入 using SSCMS.Dto; using SSCMS.Enums; using SSCMS.Models; using SSCMS.Services; using Mono.Options; using Quartz; using McMaster.Extensions.CommandLineUtils;命令行工具库 using YamlDotNet.Serialization;一个用于YAML的.NET 库 using YamlDotNet.Serialization.NamingConventions;一个用于YAML的.NET 库 using Mono.Options; using Mono.Options; using Semver;语义版本控制 using System.Reflection;装配件反射 using Newtonsoft.Json.Linq;命名空间提供了用于实现 LINQ to JSON 的类。https://www.newtonsoft.com/json/help/html/N_Newtonsoft_Json_Linq.htm using System.Runtime.InteropServices;运行时交互 ----------------------------- =======STL======= using SSCMS.Core.StlParser.StlElement; using SSCMS.Core.StlParser.Utility; =============== using ICSharpCode.SharpZipLib.Zip;实现在线压缩和解压缩 using SixLabors.ImageSharp; 图像处理,2D 图形 API using SixLabors.ImageSharp.Processing;图像处理,2D 图形 API ============= using System; using System.Collections.Specialized; using System.Threading.Tasks; using Datory; using SqlKata; using SSCMS.Enums; using SSCMS.Models; using SSCMS.Services; ------------待看--------- using System;数据类型转换、方法参数操作、数学计算、远程和本地程序调用等 using System.Collections.Generic;泛型集合接口和类。 using System.IO; using System.Linq; using System.Net; using System.Reflection;反射 using System.Text; using System.Threading.Tasks; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using SSCMS.Cli.Core; using SSCMS.Cli.Extensions; using SSCMS.Core.Extensions; using SSCMS.Core.Plugins.Extensions; using SSCMS.Utils; using Serilog; using SSCMS.Cli.Abstractions; using SSCMS.Configuration; =============== using Datory; appsettings.json