摘要: 在VS Code中使用Snippet Craft扩展提高编码效率 Snippet Craft 一个VS Code代码片段管理插件 功能 创建和插入代码片段 在编辑器区域右键菜单中点击插入Snippet,或在代码片段视图中点击条目,则会将代码片段插入到当前激活文档的光标位置。 代码片段编辑 代码片段在左侧栏中,根据创建时的文件内容类型,分组显示代码片段,可编辑已有的 阅读全文
posted @ 2024-08-23 00:17 林晓lx 阅读(266) 评论(0) 推荐(1) 编辑
摘要: [学习笔记]在不同项目中切换Node.js版本 @目录使用 Node Version Manager (NVM)安装 NVM使用 NVM 安装和切换 Node.js 版本为项目指定 Node.js 版本使用环境变量指定 Node.js安装多个版本的 Node.js设置环境变量验证配置使用 npm 脚本切换 在开发中,可能会遇到不同的Vue项目需要 阅读全文
posted @ 2024-08-22 19:52 林晓lx 阅读(171) 评论(0) 推荐(0) 编辑
摘要: [VS Code扩展]写一个代码片段管理插件(二):功能实现 @目录创建和插入代码片段代码片段列表代码片段预览代码片段编辑自定义映射默认映射自动完成项目地址 创建和插入代码片段 VS Code扩展提供了数据存储,其中globalState是使用全局存储的Key-Value方式来保存用户状态,支持在不同计算机上保留某些用户状态,详情请参考官方文档 若在编辑器区域 阅读全文
posted @ 2024-08-22 09:51 林晓lx 阅读(280) 评论(0) 推荐(0) 编辑
摘要: [VS Code扩展]写一个代码片段管理插件(一):介绍与界面搭建 @目录VS Code扩展机制项目搭建创建UI元素活动栏按钮主边栏视图主边栏工具栏按钮侧边栏右键菜单编辑器右键菜单项目地址 [VS Code扩展]写一个代码片段管理插件(一):介绍与界面搭建 [VS Code扩展]写一个代码片段管理插件(二):功能实现 写代码的时候,经常要输入重复的内容,虽然VS C 阅读全文
posted @ 2024-08-02 23:20 林晓lx 阅读(236) 评论(0) 推荐(1) 编辑
摘要: [MAUI 项目实战] 笔记App(二):数据库设计 @目录Sqlite配置创建实体笔记实体类笔记分组实体笔记片段实体笔记片段负载实体笔记片段仓库实体笔记模板(场景)实体笔记片段模板实体笔记片段模板负载实体配置EF创建映射迁移和种子数据项目地址 Sqlite配置 应用程序里使用Sqlite作为数据库,使用EntityFramworkCore作为ORM, 阅读全文
posted @ 2024-07-19 10:51 林晓lx 阅读(636) 评论(0) 推荐(6) 编辑
摘要: [MAUI 项目实战] 笔记App(一):介绍与程序设计 @目录前言软件规格说明主要功能运行环境开源组件库设备权限第三方服务使用介绍场景列表页从场景创建笔记编辑场景新增场景片段编辑场景片段删除场景片段删除场景笔记列表页创建新笔记编辑笔记新增笔记片段编辑笔记片段删除笔记片段删除笔记统计其它设置PIN到快捷方式换肤功能程序设计框架定义核心类项目地址 系列文章: 阅读全文
posted @ 2024-07-18 16:37 林晓lx 阅读(2113) 评论(17) 推荐(21) 编辑
摘要: [MAUI]集成富文本编辑器Editor.js至.NET MAUI Blazor项目 @目录获取资源从源码构建从CDN获取获取扩展插件创建项目创建控件创建Blazor组件初始化保存销毁编写渲染逻辑实现只读/编辑功能切换模式获取只读模式状态响应切换事件实现明/暗主题切换项目地址 Editor.js 是一个基于 Web 的所见即所得富文本编辑器,它由CodeX团队开发。之前写过一篇博文专 阅读全文
posted @ 2024-04-13 23:51 林晓lx 阅读(904) 评论(2) 推荐(11) 编辑
摘要: [MAUI]模仿哔哩哔哩的一键三连 @目录创建弧形进度条绘制弧准备物料创建气泡创建手势创建交互与动效项目地址 哔哩哔哩(Bilibili)中用户可以通过长按点赞键同时完成点赞、投币、收藏对UP主表示支持,后UP主多用“一键三连”向视频浏览者请求对其作品同时进行点赞、投币、收藏。 “三连按钮”是一组按钮,轻击时当做普通状态按钮使用,当长 阅读全文
posted @ 2024-03-25 19:43 林晓lx 阅读(514) 评论(3) 推荐(10) 编辑
摘要: [MAUI]集成高德地图组件至.NET MAUI Blazor项目 @目录前期准备:注册高德开发者并创建 key登录控制台创建 key获取 key 和密钥创建项目创建JS API Loader配置权限创建定义创建模型创建地图组件创建交互逻辑项目地址 地图组件在手机App中常用地理相关业务,如查看线下门店,设置导航,或选取地址等。是一个较为常见的组件。 在.NET M 阅读全文
posted @ 2024-03-23 21:57 林晓lx 阅读(3062) 评论(6) 推荐(22) 编辑
摘要: [.NET项目实战] Elsa开源工作流组件应用(三):实战演练 目录补充需求描述需求分析代码实现下发问卷活动 PublishQuestionnaireActivity通知活动:NotificationActivity等待问卷完成活动:WaitFillInSurveyActivity定时和延时活动:问卷活动:QuestionnaireActivity创建工作流开始 阅读全文
posted @ 2024-03-21 15:58 林晓lx 阅读(1220) 评论(9) 推荐(10) 编辑
摘要: [.NET项目实战] Elsa开源工作流组件应用(二):内核解读 @目录定义变量内存寄存器类寄存器中的存储区块类变量到存储的映射类上下文对象活动上下文(ActivityExecutionContext)工作流执行上下文(WorkflowExecutionContext)表达式执行上下文(ExpressionExecutionContext)构建构建活动构建工作流运 阅读全文
posted @ 2024-03-20 11:53 林晓lx 阅读(1339) 评论(5) 推荐(12) 编辑
摘要: 深度观察2024中国系统架构师大会(SACC) 今年的中国系统架构师大会(SACC)在我所在的城市广州举办,很荣幸受邀参加。这次能接触到国内最优秀的架构师,学习他们的架构思想和行业经验。对我而言非常有意义。 大会分为上下午共4场,我参加了上午的多云多活架构设计专场和下午的AIGC专场。 本篇文章就多云多活架构设计专场,我选取几位老师的观点进行分享 阅读全文
posted @ 2024-03-19 14:34 林晓lx 阅读(433) 评论(0) 推荐(1) 编辑
摘要: [.NET项目实战] Elsa开源工作流组件应用(一): Elsa工作流简介 Elsa工作流简介 工作流是什么? 引用维基百科中对工作流的解释: 是对工作流程及其各操作步骤之间业务规则的抽象、概括、描述。工作流建模,即将工作流程中的工作如何前后组织在一起的逻辑和规则在计算机中以恰当的模型进行表示并对其实施计算 Elsa 是一个功能强大的工作流库,支持在任何 .NET 应用程序 阅读全文
posted @ 2024-03-15 17:21 林晓lx 阅读(1280) 评论(6) 推荐(8) 编辑
摘要: 开源好用的所见即所得(WYSIWYG)编辑器:Editor.js @目录特点基于区块干净的数据界面与交互插件标题和文本图片列表Todo表格使用安装创建编辑器实例配置工具本地化自定义样式 今天介绍一个开源好用的Web所见即所得(WYSIWYG)编辑器:Editor.js Editor.js 是一个基于 Web 的所见即所得富文本编辑器,它由CodeX团队开发。源代码 阅读全文
posted @ 2024-03-11 18:42 林晓lx 阅读(2936) 评论(0) 推荐(2) 编辑
摘要: 在macOS中搭建.NET MAUI开发环境 @目录准备安装扩展安装 .NET安装工作负载安装 Xcode 命令行工具调试安卓应用安装 JDK安装 Android SDK安装 Android 模拟器安装模拟器安装镜像创建虚拟机同意许可条款创建 MAUI 项目调试 MAUI 应用切换调试目标参考资料 准备 一台 macOS Monterey 以上 阅读全文
posted @ 2023-12-31 00:20 林晓lx 阅读(850) 评论(0) 推荐(5) 编辑
摘要: @目录原理创建分布式事件总线实现自动订阅和事件转发使用启动Redis服务配置传递Abp默认事件传递自定义事件项目地址 原理 本地事件总线是通过Ioc容器来实现的。 IEventBus接口定义了事件总线的基本功能,如注册事件、取消注册事件、触发事件等。 Abp.Events.Bus.EventBus是 阅读全文
posted @ 2023-12-20 17:14 林晓lx 阅读(552) 评论(0) 推荐(7) 编辑
摘要: 拷贝数据库文件 首先在本地运行如下SQL语句,查看数据库文件的磁盘位置 SELECT name, physical_name AS CurrentLocation, state_desc FROM sys.master_files 默认是保存在C:\Program Files\Microsoft S 阅读全文
posted @ 2023-12-20 17:11 林晓lx 阅读(49) 评论(0) 推荐(1) 编辑
摘要: @目录原理:创建Docker网桥网络安装DinD创建镜像构建镜像运行容器 原理: Docker in Docker (以下简称 DinD)可以在 Container 中直接运行一个 Docker Daemon ,然后使用 Container 中的 Docker CLI 工具操作容器。其原理如下图 容 阅读全文
posted @ 2023-12-12 17:11 林晓lx 阅读(198) 评论(0) 推荐(1) 编辑
摘要: 将ECharts图表插入到Word文档中 @目录在后端调用JS代码准备ECharts库生成Word文档项目地址库封装本文示例 EChartsGen_DocTemplateTool_Sample 如何通过ECharts在后台生成图片,然后插入到Word文档中? 首先要解决一个问题:总所周知,ECharts是前端的一个图表库,如何在后台调用JS 阅读全文
posted @ 2023-11-15 11:26 林晓lx 阅读(965) 评论(1) 推荐(4) 编辑
摘要: DocTemplateTool - 可根据模板生成word或pdf文件的工具 你是否经常遇到这样的场景:产品运营有着大量的报告需求,或者给客户领导展现每周的运营报告?这些文档类的任务可以交给运营同事,他们负责文档排版和样式,你作为开发人员你只需要提供数据源,和一个映射表,告诉制作文档的人哪些字段可供使用。这样一来分工明确,减少了很多不必要的沟通成本。 Document Tem 阅读全文
posted @ 2023-11-07 19:06 林晓lx 阅读(1041) 评论(1) 推荐(6) 编辑
摘要: @目录类型约束基本类型联合类型控制流分析instanceof和typeof类型守卫和窄化typeof判断instanceof判断in判断内建函数,或自定义函数赋值布尔运算保留共同属性字面量类型(literal type)as const 作用 类型约束 TypeScript中的类型是一种用于描述变量 阅读全文
posted @ 2023-11-01 18:52 林晓lx 阅读(285) 评论(0) 推荐(2) 编辑
摘要: @目录基础知识创建类型类的初始化类型和值JSDoc 注释字段私有字段可选和非可选字段字段类型约束Getter/Setter静态成员函数重载构造函数参数属性类的实例化箭头函数this的作用域全局类和对象方法泛型泛型类泛型接口泛型函数装饰器 基础知识 创建类型 class Abc { } 类的初始化 c 阅读全文
posted @ 2023-10-31 21:33 林晓lx 阅读(249) 评论(0) 推荐(2) 编辑
摘要: ExcelPatternTool 开箱即用的Excel工具包现已发布! 应用系统开发中少不了跟Excel打交道,基于NPOI开发了ExcelPatternTool,与目前主流框架对比ExcelPatternTool着重单元格样式的控制,对于初始数据导入、报表导出等简单的Excel功能提升易用性。 阅读全文
posted @ 2023-10-25 18:31 林晓lx 阅读(1702) 评论(2) 推荐(17) 编辑
摘要: [MAUI]深入了解.NET MAUI Blazor与Vue的混合开发 @目录Vue在混合开发中的特点创建MAUI项目创建Vue应用使用element-ui组件库JavaScript和原生代码的交互传递根组件参数从设备调用Javascript代码从Vue页面调用原生代码读取设备信息项目地址 .NET MAUI结合Vue的混合开发可以使用更加熟悉的Vue的语法代替Blaz 阅读全文
posted @ 2023-10-18 17:15 林晓lx 阅读(4702) 评论(12) 推荐(15) 编辑
摘要: [MAUI]实现动态拖拽排序网格 @目录创建页面元素创建可绑定对象创建绑定服务类拖拽(Drag)拖拽悬停,经过(DragOver)释放(Drop)限流(Throttle)和防抖(Debounce)项目地址 上一章我们使用拖放(drag-drop)手势识别实现了可拖拽排序列表,对于列表中的条目,完整的拖拽排序过程是: 手指触碰条目 - 阅读全文
posted @ 2023-09-18 17:57 林晓lx 阅读(2769) 评论(4) 推荐(11) 编辑
摘要: [MAUI]在.NET MAUI中实现可拖拽排序列表 [toc] .NET MAUI 中提供了拖放(drag-drop)手势识别器,允许用户通过拖动手势来移动控件。在这篇文章中,我们将学习如何使用拖放手势识别器来实现可拖拽排序列表。在本例中,列表中显示不同大小的磁贴(Tile)并且可以拖拽排序。 ![在这里插入图片描述](https://img2023 阅读全文
posted @ 2023-08-15 14:33 林晓lx 阅读(2450) 评论(3) 推荐(22) 编辑
摘要: 假设需要通过SignalR发送消息通知,并在前端接收消息通知的功能 ## 创建SignalR服务 在项目中引用 ``` abp add-package Volo.Abp.AspNetCore.SignalR ``` 在Module文件中添加对模块依赖 ``` [DependsOn( ... type 阅读全文
posted @ 2023-08-03 17:47 林晓lx 阅读(841) 评论(0) 推荐(2) 编辑
摘要: [toc] 使用数据库的创建时间作为查询依据,在Abp框架中,实体类实现ICreationAuditedObject接口,或继承CreationAuditedEntity类,使用仓储创建记录时将自动生成CreationTime。 ## 实现 定义按创建日期范围查询(IDateSpanOriented 阅读全文
posted @ 2023-07-22 22:02 林晓lx 阅读(656) 评论(0) 推荐(3) 编辑
摘要: @[toc] ## 原理 回收站是当用户删除一条记录时,不是直接从数据库中删除,而是将其放入“回收站”,以便用户可以在需要时恢复数据。 在Abp框架中,若实体实现了ISoftDelete,则将实体标记为删除时不是物理删除,而是“软删除” ``` public interface ISoftDelet 阅读全文
posted @ 2023-07-20 08:58 林晓lx 阅读(575) 评论(0) 推荐(3) 编辑
摘要: @[toc] 用户关系(Relation)是描述业务系统中人员与人员之间的关系,如:签约、关注,或者朋友关系。 之前我们在扩展身份管理模块的时候,已经实现了用户关系管理,可以查看本系列博文之前的内容。[怎样优雅地增删查改(二):扩展身份管理模块](https://www.cnblogs.com/je 阅读全文
posted @ 2023-07-19 09:11 林晓lx 阅读(469) 评论(0) 推荐(2) 编辑
摘要: @[toc] ## 实现 定义按用户查询(IUserOrientedFilter)接口 ``` public interface IUserOrientedFilter { public string EntityUserIdIdiom { get; } Guid? UserId { get; se 阅读全文
posted @ 2023-07-18 11:30 林晓lx 阅读(501) 评论(0) 推荐(1) 编辑
摘要: @[toc] ## 实现 定义按任意字段关键字查询过滤器(IKeywordOrientedFilter)接口,查询实体列表Dto若实现该接口,将筛选指定的目标字段(TargetFields)包含指定的关键字(Keyword)的实体。 ``` public interface IKeywordOrie 阅读全文
posted @ 2023-07-14 08:54 林晓lx 阅读(662) 评论(2) 推荐(5) 编辑
摘要: @[toc] 之前我们实现了Employee,Alarm管理模块以及通用查询应用层。 Employee的集合查询业务,是通过重写CreateFilteredQueryAsync方法,来实现按组织架构查询的过滤条件。 我们将这段逻辑代码提取到通用查询应用层中,便可实现在任何业务的按组织架构查询。 ## 阅读全文
posted @ 2023-07-13 19:43 林晓lx 阅读(418) 评论(0) 推荐(1) 编辑
摘要: @[toc] 上一章我们实现了Employee管理模块,Employee的增删改查是通过其应用服务类,继承自Abp.Application.Services.CrudAppService实现的。 我们将封装通用的应用层,接口以及控制器基类。 ## 创建通用查询抽象层 创建接口ICurdAppServ 阅读全文
posted @ 2023-07-13 10:45 林晓lx 阅读(632) 评论(0) 推荐(4) 编辑
摘要: @[toc] ## 创建业务用户 区别于身份管理模块(Identity模块)的鉴权用户IdentityUser,业务用户(BusinessUser)是围绕业务系统中“用户”这一定义的领域模型。如:在一个医院系统中,业务用户可以是医生、护士、患者;在一个OA系统中,业务用户可以是员工、管理员、客户等。 阅读全文
posted @ 2023-07-12 19:22 林晓lx 阅读(465) 评论(0) 推荐(1) 编辑
摘要: @[toc] 身份管理模块(Identity模块)为通用查询接口的按组织架构查询和按户关系查询提供查询依据。 身份管理模块的领域层依赖Volo.Abp.Identity.Domain ![在这里插入图片描述](https://img2023.cnblogs.com/blog/644861/20230 阅读全文
posted @ 2023-07-08 20:11 林晓lx 阅读(484) 评论(0) 推荐(2) 编辑
摘要: @[toc] 软件系统中数据库或者持久层的基本操作功能可以用Curd描述,Curd即 增加(Create)、更新(Update)、读取查询(Retrieve)和删除(Delete), 这4个单词的首字母。 在常见的业务系统中,对数据的大部分操作都是Curd,在实践的过程中对数据的筛选、排序、分页、关 阅读全文
posted @ 2023-07-07 19:04 林晓lx 阅读(772) 评论(6) 推荐(7) 编辑
摘要: Vue + Volo.Abp 实现OAuth2.0客户端授权模式认证 @[toc] Volo.Abp的[身份服务器模块](https://docs.abp.io/zh-Hans/abp/latest/Modules/IdentityServer)默认使用 [IdentityServer4](https://identityserver4.readthedocs.io/ 阅读全文
posted @ 2023-07-07 11:32 林晓lx 阅读(1286) 评论(1) 推荐(4) 编辑
摘要: [MAUI]用纯C#代码写两个漂亮的时钟 @[toc] 谷歌在2021年5月份推出的Android 12给我们带来了新的UI设计规范Material You,你是否已经体验到了Material You设计的魅力了呢? 在原生主屏幕启动器中,有一个时钟小部件。这个小部件可以选择表盘风格。 > ![在这里插入图片描述](https://img2 阅读全文
posted @ 2023-07-01 19:35 林晓lx 阅读(3687) 评论(7) 推荐(17) 编辑
摘要: [MAUI]弧形进度条与弧形滑块的交互实现 @[toc] 进度条(ProgressBar)用于展示任务的进度,告知用户当前状态和预期; 滑块(Slider)通过拖动滑块在一个固定区间内进行选择数值范围。 进度条和滑块都是进度值在UI界面的映射,其中滑块可以抽象成为带控制柄(Thumb)的进度条,是界面元素和进度值的双向绑定。 在某些场景下,我 阅读全文
posted @ 2023-06-18 15:02 林晓lx 阅读(2153) 评论(19) 推荐(19) 编辑