随笔分类 - .NET
摘要:@目录获取资源从源码构建从CDN获取获取扩展插件创建项目创建控件创建Blazor组件初始化保存销毁编写渲染逻辑实现只读/编辑功能切换模式获取只读模式状态响应切换事件实现明/暗主题切换项目地址 Editor.js 是一个基于 Web 的所见即所得富文本编辑器,它由CodeX团队开发。之前写过一篇博文专
阅读全文
摘要:目录补充需求描述需求分析代码实现下发问卷活动 PublishQuestionnaireActivity通知活动:NotificationActivity等待问卷完成活动:WaitFillInSurveyActivity定时和延时活动:问卷活动:QuestionnaireActivity创建工作流开始
阅读全文
摘要:@目录定义变量内存寄存器类寄存器中的存储区块类变量到存储的映射类上下文对象活动上下文(ActivityExecutionContext)工作流执行上下文(WorkflowExecutionContext)表达式执行上下文(ExpressionExecutionContext)构建构建活动构建工作流运
阅读全文
摘要:Elsa工作流简介 工作流是什么? 引用维基百科中对工作流的解释: 是对工作流程及其各操作步骤之间业务规则的抽象、概括、描述。工作流建模,即将工作流程中的工作如何前后组织在一起的逻辑和规则在计算机中以恰当的模型进行表示并对其实施计算 Elsa 是一个功能强大的工作流库,支持在任何 .NET 应用程序
阅读全文
摘要:@目录原理创建分布式事件总线实现自动订阅和事件转发使用启动Redis服务配置传递Abp默认事件传递自定义事件项目地址 原理 本地事件总线是通过Ioc容器来实现的。 IEventBus接口定义了事件总线的基本功能,如注册事件、取消注册事件、触发事件等。 Abp.Events.Bus.EventBus是
阅读全文
摘要:@目录在后端调用JS代码准备ECharts库生成Word文档项目地址库封装本文示例 EChartsGen_DocTemplateTool_Sample 如何通过ECharts在后台生成图片,然后插入到Word文档中? 首先要解决一个问题:总所周知,ECharts是前端的一个图表库,如何在后台调用JS
阅读全文
摘要:你是否经常遇到这样的场景:产品运营有着大量的报告需求,或者给客户领导展现每周的运营报告?这些文档类的任务可以交给运营同事,他们负责文档排版和样式,你作为开发人员你只需要提供数据源,和一个映射表,告诉制作文档的人哪些字段可供使用。这样一来分工明确,减少了很多不必要的沟通成本。 Document Tem
阅读全文
摘要:应用系统开发中少不了跟Excel打交道,基于NPOI开发了ExcelPatternTool,与目前主流框架对比ExcelPatternTool着重单元格样式的控制,对于初始数据导入、报表导出等简单的Excel功能提升易用性。
阅读全文
摘要:@目录Vue在混合开发中的特点创建MAUI项目创建Vue应用使用element-ui组件库JavaScript和原生代码的交互传递根组件参数从设备调用Javascript代码从Vue页面调用原生代码读取设备信息项目地址 .NET MAUI结合Vue的混合开发可以使用更加熟悉的Vue的语法代替Blaz
阅读全文
摘要:@目录创建页面元素创建可绑定对象创建绑定服务类拖拽(Drag)拖拽悬停,经过(DragOver)释放(Drop)限流(Throttle)和防抖(Debounce)项目地址 上一章我们使用拖放(drag-drop)手势识别实现了可拖拽排序列表,对于列表中的条目,完整的拖拽排序过程是: 手指触碰条目 -
阅读全文
摘要:假设需要通过SignalR发送消息通知,并在前端接收消息通知的功能 ## 创建SignalR服务 在项目中引用 ``` abp add-package Volo.Abp.AspNetCore.SignalR ``` 在Module文件中添加对模块依赖 ``` [DependsOn( ... type
阅读全文
摘要:[toc] 使用数据库的创建时间作为查询依据,在Abp框架中,实体类实现ICreationAuditedObject接口,或继承CreationAuditedEntity类,使用仓储创建记录时将自动生成CreationTime。 ## 实现 定义按创建日期范围查询(IDateSpanOriented
阅读全文
摘要:@[toc] ## 原理 回收站是当用户删除一条记录时,不是直接从数据库中删除,而是将其放入“回收站”,以便用户可以在需要时恢复数据。 在Abp框架中,若实体实现了ISoftDelete,则将实体标记为删除时不是物理删除,而是“软删除” ``` public interface ISoftDelet
阅读全文
摘要:@[toc] 用户关系(Relation)是描述业务系统中人员与人员之间的关系,如:签约、关注,或者朋友关系。 之前我们在扩展身份管理模块的时候,已经实现了用户关系管理,可以查看本系列博文之前的内容。[怎样优雅地增删查改(二):扩展身份管理模块](https://www.cnblogs.com/je
阅读全文
摘要:@[toc] ## 实现 定义按用户查询(IUserOrientedFilter)接口 ``` public interface IUserOrientedFilter { public string EntityUserIdIdiom { get; } Guid? UserId { get; se
阅读全文
摘要:@[toc] ## 实现 定义按任意字段关键字查询过滤器(IKeywordOrientedFilter)接口,查询实体列表Dto若实现该接口,将筛选指定的目标字段(TargetFields)包含指定的关键字(Keyword)的实体。 ``` public interface IKeywordOrie
阅读全文
摘要:@[toc] 之前我们实现了Employee,Alarm管理模块以及通用查询应用层。 Employee的集合查询业务,是通过重写CreateFilteredQueryAsync方法,来实现按组织架构查询的过滤条件。 我们将这段逻辑代码提取到通用查询应用层中,便可实现在任何业务的按组织架构查询。 ##
阅读全文
摘要:@[toc] 上一章我们实现了Employee管理模块,Employee的增删改查是通过其应用服务类,继承自Abp.Application.Services.CrudAppService实现的。 我们将封装通用的应用层,接口以及控制器基类。 ## 创建通用查询抽象层 创建接口ICurdAppServ
阅读全文
摘要:@[toc] ## 创建业务用户 区别于身份管理模块(Identity模块)的鉴权用户IdentityUser,业务用户(BusinessUser)是围绕业务系统中“用户”这一定义的领域模型。如:在一个医院系统中,业务用户可以是医生、护士、患者;在一个OA系统中,业务用户可以是员工、管理员、客户等。
阅读全文
摘要:@[toc] 身份管理模块(Identity模块)为通用查询接口的按组织架构查询和按户关系查询提供查询依据。 身份管理模块的领域层依赖Volo.Abp.Identity.Domain ![在这里插入图片描述](https://img2023.cnblogs.com/blog/644861/20230
阅读全文