From 743d169a75cadd773ed70660b5a73cded9fa0e0e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E6=B7=B3?= <454313500@qq.com> Date: Fri, 15 Dec 2023 18:27:22 +0800 Subject: [PATCH] =?UTF-8?q?feat:=E6=B7=BB=E5=8A=A0=E6=96=87=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/Yi.Abp.Web/Logs/log-20231214.txt | 116 ++++++++++++++++++ .../01.框架快速开始教程/01.Yi框架简介.md | 53 ++++++++ .../04.结构/03.模块结构.md | 60 +++++++++ 3 files changed, 229 insertions(+) diff --git a/Yi.Abp.Net8/src/Yi.Abp.Web/Logs/log-20231214.txt b/Yi.Abp.Net8/src/Yi.Abp.Web/Logs/log-20231214.txt index 034f8f5b..e2fe4b23 100644 --- a/Yi.Abp.Net8/src/Yi.Abp.Web/Logs/log-20231214.txt +++ b/Yi.Abp.Net8/src/Yi.Abp.Web/Logs/log-20231214.txt @@ -2608,3 +2608,119 @@ System.NotImplementedException: 等待更新消息通知 2023-12-14 16:42:23.322 +08:00 [INF] Application started. Press Ctrl+C to shut down. 2023-12-14 16:42:23.322 +08:00 [INF] Hosting environment: Development 2023-12-14 16:42:23.322 +08:00 [INF] Content root path: E:\code\csharp\Yi\Yi.Abp.Net8\src\Yi.Abp.Web +2023-12-14 16:48:34.244 +08:00 [INF] Yi框架-Abp.vNext,启动! +2023-12-14 16:48:38.034 +08:00 [INF] Loaded ABP modules: +2023-12-14 16:48:38.035 +08:00 [INF] - Yi.Abp.Web.YiAbpWebModule +2023-12-14 16:48:38.035 +08:00 [INF] - Yi.Abp.SqlsugarCore.YiAbpSqlSugarCoreModule +2023-12-14 16:48:38.035 +08:00 [INF] - Yi.Abp.Domain.YiAbpDomainModule +2023-12-14 16:48:38.035 +08:00 [INF] - Yi.Abp.Domain.Shared.YiAbpDomainSharedModule +2023-12-14 16:48:38.035 +08:00 [INF] - Yi.Framework.Rbac.Domain.Shared.YiFrameworkRbacDomainSharedModule +2023-12-14 16:48:38.035 +08:00 [INF] - Volo.Abp.Domain.AbpDddDomainSharedModule +2023-12-14 16:48:38.035 +08:00 [INF] - Volo.Abp.MultiTenancy.AbpMultiTenancyAbstractionsModule +2023-12-14 16:48:38.035 +08:00 [INF] - Volo.Abp.VirtualFileSystem.AbpVirtualFileSystemModule +2023-12-14 16:48:38.035 +08:00 [INF] - Volo.Abp.Localization.AbpLocalizationModule +2023-12-14 16:48:38.035 +08:00 [INF] - Volo.Abp.Settings.AbpSettingsModule +2023-12-14 16:48:38.035 +08:00 [INF] - Volo.Abp.Localization.AbpLocalizationAbstractionsModule +2023-12-14 16:48:38.035 +08:00 [INF] - Volo.Abp.Security.AbpSecurityModule +2023-12-14 16:48:38.035 +08:00 [INF] - Volo.Abp.Data.AbpDataModule +2023-12-14 16:48:38.035 +08:00 [INF] - Volo.Abp.ObjectExtending.AbpObjectExtendingModule +2023-12-14 16:48:38.035 +08:00 [INF] - Volo.Abp.Validation.AbpValidationAbstractionsModule +2023-12-14 16:48:38.035 +08:00 [INF] - Volo.Abp.Uow.AbpUnitOfWorkModule +2023-12-14 16:48:38.035 +08:00 [INF] - Volo.Abp.EventBus.Abstractions.AbpEventBusAbstractionsModule +2023-12-14 16:48:38.035 +08:00 [INF] - Volo.Abp.Threading.AbpThreadingModule +2023-12-14 16:48:38.035 +08:00 [INF] - Yi.Framework.Mapster.YiFrameworkMapsterModule +2023-12-14 16:48:38.035 +08:00 [INF] - Yi.Framework.Core.YiFrameworkCoreModule +2023-12-14 16:48:38.035 +08:00 [INF] - Volo.Abp.ObjectMapping.AbpObjectMappingModule +2023-12-14 16:48:38.035 +08:00 [INF] - Yi.Framework.Bbs.Domain.Shared.YiFrameworkBbsDomainSharedModule +2023-12-14 16:48:38.035 +08:00 [INF] - Yi.Framework.Rbac.Domain.YiFrameworkRbacDomainModule +2023-12-14 16:48:38.035 +08:00 [INF] - Volo.Abp.AspNetCore.SignalR.AbpAspNetCoreSignalRModule +2023-12-14 16:48:38.035 +08:00 [INF] - Volo.Abp.AspNetCore.AbpAspNetCoreModule +2023-12-14 16:48:38.035 +08:00 [INF] - Volo.Abp.Auditing.AbpAuditingModule +2023-12-14 16:48:38.035 +08:00 [INF] - Volo.Abp.Json.AbpJsonModule +2023-12-14 16:48:38.035 +08:00 [INF] - Volo.Abp.Json.SystemTextJson.AbpJsonSystemTextJsonModule +2023-12-14 16:48:38.035 +08:00 [INF] - Volo.Abp.Json.AbpJsonAbstractionsModule +2023-12-14 16:48:38.035 +08:00 [INF] - Volo.Abp.Timing.AbpTimingModule +2023-12-14 16:48:38.035 +08:00 [INF] - Volo.Abp.MultiTenancy.AbpMultiTenancyModule +2023-12-14 16:48:38.035 +08:00 [INF] - Volo.Abp.Auditing.AbpAuditingContractsModule +2023-12-14 16:48:38.035 +08:00 [INF] - Volo.Abp.Http.AbpHttpModule +2023-12-14 16:48:38.035 +08:00 [INF] - Volo.Abp.Http.AbpHttpAbstractionsModule +2023-12-14 16:48:38.035 +08:00 [INF] - Volo.Abp.Minify.AbpMinifyModule +2023-12-14 16:48:38.035 +08:00 [INF] - Volo.Abp.Authorization.AbpAuthorizationModule +2023-12-14 16:48:38.035 +08:00 [INF] - Volo.Abp.Authorization.AbpAuthorizationAbstractionsModule +2023-12-14 16:48:38.035 +08:00 [INF] - Volo.Abp.Validation.AbpValidationModule +2023-12-14 16:48:38.035 +08:00 [INF] - Volo.Abp.ExceptionHandling.AbpExceptionHandlingModule +2023-12-14 16:48:38.035 +08:00 [INF] - Volo.Abp.Domain.AbpDddDomainModule +2023-12-14 16:48:38.035 +08:00 [INF] - Volo.Abp.EventBus.AbpEventBusModule +2023-12-14 16:48:38.035 +08:00 [INF] - Volo.Abp.Guids.AbpGuidsModule +2023-12-14 16:48:38.035 +08:00 [INF] - Volo.Abp.BackgroundWorkers.AbpBackgroundWorkersModule +2023-12-14 16:48:38.035 +08:00 [INF] - Volo.Abp.DistributedLocking.AbpDistributedLockingAbstractionsModule +2023-12-14 16:48:38.035 +08:00 [INF] - Volo.Abp.Specifications.AbpSpecificationsModule +2023-12-14 16:48:38.035 +08:00 [INF] - Volo.Abp.Caching.AbpCachingModule +2023-12-14 16:48:38.035 +08:00 [INF] - Volo.Abp.Serialization.AbpSerializationModule +2023-12-14 16:48:38.035 +08:00 [INF] - Yi.Framework.Bbs.Domain.YiFrameworkBbsDomainModule +2023-12-14 16:48:38.035 +08:00 [INF] - Yi.Framework.Rbac.SqlSugarCore.YiFrameworkRbacSqlSugarCoreModule +2023-12-14 16:48:38.035 +08:00 [INF] - Yi.Framework.SqlSugarCore.YiFrameworkSqlSugarCoreModule +2023-12-14 16:48:38.035 +08:00 [INF] - Yi.Framework.Bbs.SqlSugarCore.YiFrameworkBbsSqlSugarCoreModule +2023-12-14 16:48:38.035 +08:00 [INF] - Yi.Abp.Application.YiAbpApplicationModule +2023-12-14 16:48:38.035 +08:00 [INF] - Yi.Abp.Application.Contracts.YiAbpApplicationContractsModule +2023-12-14 16:48:38.035 +08:00 [INF] - Yi.Framework.Rbac.Application.Contracts.YiFrameworkRbacApplicationContractsModule +2023-12-14 16:48:38.035 +08:00 [INF] - Yi.Framework.Ddd.Application.Contracts.YiFrameworkDddApplicationContractsModule +2023-12-14 16:48:38.035 +08:00 [INF] - Volo.Abp.Application.AbpDddApplicationContractsModule +2023-12-14 16:48:38.035 +08:00 [INF] - Yi.Framework.Bbs.Application.Contracts.YiFrameworkBbsApplicationContractsModule +2023-12-14 16:48:38.035 +08:00 [INF] - Yi.Framework.Rbac.Application.YiFrameworkRbacApplicationModule +2023-12-14 16:48:38.035 +08:00 [INF] - Yi.Framework.Ddd.Application.YiFrameworkDddApplicationModule +2023-12-14 16:48:38.035 +08:00 [INF] - Volo.Abp.Application.AbpDddApplicationModule +2023-12-14 16:48:38.035 +08:00 [INF] - Volo.Abp.Features.AbpFeaturesModule +2023-12-14 16:48:38.035 +08:00 [INF] - Volo.Abp.GlobalFeatures.AbpGlobalFeaturesModule +2023-12-14 16:48:38.035 +08:00 [INF] - Volo.Abp.BackgroundWorkers.Quartz.AbpBackgroundWorkersQuartzModule +2023-12-14 16:48:38.035 +08:00 [INF] - Volo.Abp.Quartz.AbpQuartzModule +2023-12-14 16:48:38.035 +08:00 [INF] - Yi.Framework.Bbs.Application.YiFrameworkBbsApplicationModule +2023-12-14 16:48:38.035 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.AbpAspNetCoreMvcModule +2023-12-14 16:48:38.035 +08:00 [INF] - Volo.Abp.ApiVersioning.AbpApiVersioningAbstractionsModule +2023-12-14 16:48:38.035 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.AbpAspNetCoreMvcContractsModule +2023-12-14 16:48:38.035 +08:00 [INF] - Volo.Abp.UI.Navigation.AbpUiNavigationModule +2023-12-14 16:48:38.035 +08:00 [INF] - Volo.Abp.UI.AbpUiModule +2023-12-14 16:48:38.035 +08:00 [INF] - Volo.Abp.Autofac.AbpAutofacModule +2023-12-14 16:48:38.035 +08:00 [INF] - Volo.Abp.Castle.AbpCastleCoreModule +2023-12-14 16:48:38.035 +08:00 [INF] - Volo.Abp.Swashbuckle.AbpSwashbuckleModule +2023-12-14 16:48:38.035 +08:00 [INF] - Volo.Abp.AspNetCore.Serilog.AbpAspNetCoreSerilogModule +2023-12-14 16:48:38.035 +08:00 [INF] - Volo.Abp.AspNetCore.Authentication.JwtBearer.AbpAspNetCoreAuthenticationJwtBearerModule +2023-12-14 16:48:38.035 +08:00 [INF] - Yi.Framework.AspNetCore.YiFrameworkAspNetCoreModule +2023-12-14 16:48:38.263 +08:00 [DBG] Yi-SQL执行:select Name from sqlite_master where type='table' and name<>'sqlite_sequence' order by name; +2023-12-14 16:48:38.313 +08:00 [DBG] Yi-SQL执行:select Name from sqlite_master where type='table' and name<>'sqlite_sequence' order by name; +2023-12-14 16:48:38.316 +08:00 [DBG] Yi-SQL执行:select Name from sqlite_master where type='table' and name<>'sqlite_sequence' order by name; +2023-12-14 16:48:38.317 +08:00 [DBG] Yi-SQL执行:select Name from sqlite_master where type='table' and name<>'sqlite_sequence' order by name; +2023-12-14 16:48:38.319 +08:00 [DBG] Yi-SQL执行:select Name from sqlite_master where type='table' and name<>'sqlite_sequence' order by name; +2023-12-14 16:48:38.324 +08:00 [DBG] Yi-SQL执行:select Name from sqlite_master where type='table' and name<>'sqlite_sequence' order by name; +2023-12-14 16:48:38.327 +08:00 [DBG] Yi-SQL执行:select Name from sqlite_master where type='table' and name<>'sqlite_sequence' order by name; +2023-12-14 16:48:38.329 +08:00 [DBG] Yi-SQL执行:select Name from sqlite_master where type='table' and name<>'sqlite_sequence' order by name; +2023-12-14 16:48:38.329 +08:00 [DBG] Yi-SQL执行:select Name from sqlite_master where type='table' and name<>'sqlite_sequence' order by name; +2023-12-14 16:48:38.332 +08:00 [DBG] Yi-SQL执行:select Name from sqlite_master where type='table' and name<>'sqlite_sequence' order by name; +2023-12-14 16:48:38.334 +08:00 [DBG] Yi-SQL执行:select Name from sqlite_master where type='table' and name<>'sqlite_sequence' order by name; +2023-12-14 16:48:38.336 +08:00 [DBG] Yi-SQL执行:select Name from sqlite_master where type='table' and name<>'sqlite_sequence' order by name; +2023-12-14 16:48:38.338 +08:00 [DBG] Yi-SQL执行:select Name from sqlite_master where type='table' and name<>'sqlite_sequence' order by name; +2023-12-14 16:48:38.340 +08:00 [DBG] Yi-SQL执行:select Name from sqlite_master where type='table' and name<>'sqlite_sequence' order by name; +2023-12-14 16:48:38.343 +08:00 [DBG] Yi-SQL执行:select Name from sqlite_master where type='table' and name<>'sqlite_sequence' order by name; +2023-12-14 16:48:38.344 +08:00 [DBG] Yi-SQL执行:select Name from sqlite_master where type='table' and name<>'sqlite_sequence' order by name; +2023-12-14 16:48:38.349 +08:00 [DBG] Yi-SQL执行:select Name from sqlite_master where type='table' and name<>'sqlite_sequence' order by name; +2023-12-14 16:48:38.351 +08:00 [DBG] Yi-SQL执行:select Name from sqlite_master where type='table' and name<>'sqlite_sequence' order by name; +2023-12-14 16:48:38.353 +08:00 [DBG] Yi-SQL执行:select Name from sqlite_master where type='table' and name<>'sqlite_sequence' order by name; +2023-12-14 16:48:38.355 +08:00 [DBG] Yi-SQL执行:select Name from sqlite_master where type='table' and name<>'sqlite_sequence' order by name; +2023-12-14 16:48:38.356 +08:00 [DBG] Yi-SQL执行:select Name from sqlite_master where type='table' and name<>'sqlite_sequence' order by name; +2023-12-14 16:48:38.357 +08:00 [DBG] Yi-SQL执行:select Name from sqlite_master where type='table' and name<>'sqlite_sequence' order by name; +2023-12-14 16:48:38.358 +08:00 [DBG] Yi-SQL执行:select Name from sqlite_master where type='table' and name<>'sqlite_sequence' order by name; +2023-12-14 16:48:38.359 +08:00 [DBG] Yi-SQL执行:select Name from sqlite_master where type='table' and name<>'sqlite_sequence' order by name; +2023-12-14 16:48:38.613 +08:00 [DBG] Yi-SQL执行:SELECT COUNT(1) FROM `Dept` WHERE ( 1 = 1 ) AND ( `IsDeleted` = 0 ) +2023-12-14 16:48:38.629 +08:00 [DBG] Yi-SQL执行:SELECT COUNT(1) FROM `Dictionary` WHERE ( 1 = 1 ) AND ( `IsDeleted` = 0 ) +2023-12-14 16:48:38.631 +08:00 [DBG] Yi-SQL执行:SELECT COUNT(1) FROM `DictionaryType` WHERE ( 1 = 1 ) AND ( `IsDeleted` = 0 ) +2023-12-14 16:48:38.634 +08:00 [DBG] Yi-SQL执行:SELECT COUNT(1) FROM `Menu` WHERE ( `MenuName` = N'系统管理' ) AND ( `IsDeleted` = 0 ) +2023-12-14 16:48:38.638 +08:00 [DBG] Yi-SQL执行:SELECT COUNT(1) FROM `Post` WHERE ( 1 = 1 ) AND ( `IsDeleted` = 0 ) +2023-12-14 16:48:38.642 +08:00 [DBG] Yi-SQL执行:SELECT COUNT(1) FROM `Role` WHERE ( 1 = 1 ) AND ( `IsDeleted` = 0 ) +2023-12-14 16:48:38.645 +08:00 [DBG] Yi-SQL执行:SELECT COUNT(1) FROM `User` WHERE ( 1 = 1 ) AND ( `IsDeleted` = 0 ) +2023-12-14 16:48:38.647 +08:00 [DBG] Yi-SQL执行:SELECT COUNT(1) FROM `Config` WHERE ( 1 = 1 ) AND ( `IsDeleted` = 0 ) +2023-12-14 16:48:39.168 +08:00 [INF] User profile is available. Using 'C:\Users\chenchun\AppData\Local\ASP.NET\DataProtection-Keys' as key repository and Windows DPAPI to encrypt keys at rest. +2023-12-14 16:48:39.234 +08:00 [INF] Initialized all ABP modules. +2023-12-14 16:48:39.368 +08:00 [INF] Now listening on: http://[::]:19001 +2023-12-14 16:48:39.368 +08:00 [INF] Application started. Press Ctrl+C to shut down. +2023-12-14 16:48:39.368 +08:00 [INF] Hosting environment: Development +2023-12-14 16:48:39.368 +08:00 [INF] Content root path: E:\code\csharp\Yi\Yi.Abp.Net8\src\Yi.Abp.Web diff --git a/Yi.Doc.Md/01.框架快速开始教程/01.Yi框架简介.md b/Yi.Doc.Md/01.框架快速开始教程/01.Yi框架简介.md index e69de29b..9772985a 100644 --- a/Yi.Doc.Md/01.框架快速开始教程/01.Yi框架简介.md +++ b/Yi.Doc.Md/01.框架快速开始教程/01.Yi框架简介.md @@ -0,0 +1,53 @@ +## 它是什么? + +YiFramework是一个基于.Net8+Abp.vNext+的后端开源框架 + +中文名称:意框架 + +英文名称:YiFramework + +但是,不仅仅是如此 + +## 它的理念 +优雅的进行快速开发,通常,简单程度与优雅程度不可兼得,Yi框架并不一昧的追求极致的解耦,会站在用户使用角度上,在使用难易度进行考虑衡量 + +> 一个面向用户的快速开发后端框架 + +在真正的使用这,你会明白这一点,极致的简单,也是优雅的一种体现。 + +## 特点 +- 面向用户的后端框架,使用简单,适合小型、中型、企业级项目 +- 项目内置源码,不打包,方便二开 +- 内置包含大量通用场景模块 +- 等等 + +## 基础设施简介 +- Jwt鉴权 +- 接口级别授权 +- 对象映射 +- O/RM +- 数据过滤 +- 多租户 +- 逻辑删除 +- 审计日志 +- 种子数据 +- 工作单元 +- 模块化 +- 动态Api +- 属性注入 +- 自动依赖注入 +- 当前用户 +- 仓储 +- Crud + + +## 内置模块简介 +- Rbac权限管理系统 +- Bbs论坛社区系统 + + +## 业务项目 +- RABC后台管理系统 +- BBS社区系统 + +> 重复的东西,无需再写一遍,这也是优雅的体现之一 diff --git a/Yi.Doc.Md/01.框架快速开始教程/04.结构/03.模块结构.md b/Yi.Doc.Md/01.框架快速开始教程/04.结构/03.模块结构.md index e69de29b..b92e4c6c 100644 --- a/Yi.Doc.Md/01.框架快速开始教程/04.结构/03.模块结构.md +++ b/Yi.Doc.Md/01.框架快速开始教程/04.结构/03.模块结构.md @@ -0,0 +1,60 @@ +## 简介 +通常,在Asp.NetCore中,**容器组装**过程 与 **管道模型组装** 过程 会将启动类文件变的非常长,同时也需要明确各个模块的依赖关系 +例如: +我们需要仓储的功能,但是仓储的实现需要依赖Sqlsugar +老的引入写法: +``` cs +service.AddUow(); +service.AddSqlsugar(); +...... +var app=service.Build(); +app.UseSqlsugar(); +...... +``` +这个文件会变得非常长,同时如果有顺序依赖关系的模块,还需按顺序组装 +例如: +在Asp.NetCore,我们只有先鉴权才能进行授权操作 +当模块越来越多,我们维护起来将越来越困难,所以引入了模块化功能 + +## 使用 +每一个类库都可以有自己的模块化文件,我们通常命名为类库全名+Module +例如:`Yi.Template.Application`的模块类叫做`YiTemplateApplicationModule` + +另外,该模块类实现`AbpModule`基类 +ConfigureServices:用来配置容器服务 +OnApplicationInitialization:用来配置管道模型 + +Abp内置`DependsOn`特性标签,可进行维护各个模块之间的依赖关系 + +## 完整例子 +创建模块化文件: +``` cs +using Volo.Abp.Modularity; +using Yi.Abp.Domain; +using Yi.Abp.SqlSugarCore; +using Yi.Framework.Bbs.SqlSugarCore; +using Yi.Framework.Mapster; +using Yi.Framework.Rbac.SqlSugarCore; +using Yi.Framework.SqlSugarCore; + +namespace Yi.Abp.SqlsugarCore +{ + [DependsOn( + typeof(YiAbpDomainModule), + + typeof(YiFrameworkRbacSqlSugarCoreModule), + typeof(YiFrameworkBbsSqlSugarCoreModule), + + typeof(YiFrameworkMapsterModule), + typeof(YiFrameworkSqlSugarCoreModule) + )] + public class YiAbpSqlSugarCoreModule : AbpModule + { + public override void ConfigureServices(ServiceConfigurationContext context) + { + context.Services.AddYiDbContext(); + } + } +} +``` +在启动管道模型组装文件使用入口模块: