随笔分类 - .NET
摘要:这是一篇系列博文,我将使用Abp.Zero搭建一套集成手机号免密登录验证与号码绑定功能的用户系统: Abp.Zero 手机号免密登录验证与号码绑定功能的实现(一):验证码模块 Abp.Zero 手机号免密登录验证与号码绑定功能的实现(二):改造Abp默认实现 Abp.Zero 手机号免密登录验证与号
阅读全文
摘要: 最近在做一个生成文档的需求。通过先制作一个包含各字段占位符的文档模板,导入这个模板并填写内容替换掉占位符,再输出成最终文件。 由于版式固定,安全性更好,业务上常用Pdf作为最终标准化的格式, 在.Net平台下,可以使用PdfSharp导入,,导出Pdf文档。这次做一个生成电子处方Pdf的小示例:
阅读全文
摘要:Sms 适用于AbpBoilerplate的短信服务(Short Message Service,SMS)模块,通过简单配置即可使用,仅更改一处代码即可切换短信服务提供商。 Aliyun.Sms由阿里云Sms提供服务(https://www.aliyun.com/product/sms) Tence
阅读全文
摘要:ExcelPatternTool Excel表格-数据库互导工具 介绍: 指定Pattern文件-一个规则描述的json文档,基于此规则实现Excel表格与数据库之间的导入导出,校验等功能。 特点: 小巧,轻量化的命令行工具 基于json文档的配置 支持Excel97-2003(xls)与Excel
阅读全文
摘要:这是一篇系列博文,我将从原理分析、设计到代码编写,搭建一套基于微信小程序登录的网站第三方登录模块: 使用 Abp.Zero 搭建第三方登录模块(一):原理篇 - 林晓lx - 博客园 (cnblogs.com) 使用 Abp.Zero 搭建第三方登录模块(二):服务端开发 - 林晓lx - 博客园
阅读全文
摘要: 微信SDK库的集成 微信SDK库是针对微信相关 API 进行封装的模块 ,目前开源社区中微信SDK库数量真是太多了,我选了一个比较好用的EasyAbp WeChat库。 EasyAbp/Abp.WeChat: Abp 微信 SDK 模块,包含对微信小程序、公众号、企业微信、开放平台、第三方平台等
阅读全文
摘要: 很开心,终于到了创建页面的时候了! 我们需要两个页面 MainPage 主页面 MusicItemPage 条目编辑页面 编写主页面 新建一个MainPageViewModel.cs,作为MainPage的ViewModel层 public class MainPageViewModel : V
阅读全文
摘要: 因为我们要做一个数据持久化型的小应用,所以在完成Abp功能的集成后,我们需要做数据库相关的配置工作 配置数据库 在MauiBoilerplate.Core项目中,添加两个实体类: 我们简单的写一个歌曲(song)的实体类 其中包含了歌曲标题(MusicTitle),艺术家(Artist),专辑(
阅读全文
摘要: 前言 写在.NET MAUI官宣正式发布之际,热烈庆祝MAUI正式发布! 去年12月份做了MAUI混合开发框架的调研,想起来文章里给自己挖了个坑,要教大家如何把Abp移植进Maui项目,由于篇幅限制,将分为三个章节。 将Abp移植进.NET MAUI项目(一):搭建项目 - 林晓lx - 博客园
阅读全文
摘要:Soa 项目地址:Github:MatoApps/Soa 介绍 一个轻量级的微服务库,基于.Net 6 + Abp框架 可快速地将现有项目改造成为面向服务体系结构,实现模块间松耦合。 感谢 RabbitTeam 的项目 RabbitCloud grissomlau 的项目 jimu 部分模块以及算法
阅读全文
摘要:RoslynSyntaxTool 项目地址 Github: RoslynSyntaxTool 基础概念 Syntax Api: Roslyn 是微软开源的 .NET 编译平台。编译平台支持 C# 和 Visual Basic 代码编译,并提供丰富的语法分析 API。 语法树(SyntaxTree)是
阅读全文
摘要:上篇文章说过,服务发现和健康监测是面向服务体系架构重要的模块,Soa库可以配置使用Consul作为服务发现服务,或者轮询已配置的服务列表作为本机服务发现。 将用Hangfire来作为服务发现与健康监测的定时执行库 具体配置信息请参考Hangfire – Background jobs and wo
阅读全文
摘要:使用源码的方式安装nginx,可以加深对linux目录的理解,今天就来放弃yum.. rpm.. dnf.. 这些在linux下较为“傻瓜”的操作方式,实战源码编译的方式安装nginx!
阅读全文
摘要:如果按照官方文档的步骤手动安装.Net5 会有一个坑: 在 Linux 上手动安装 .NET - .NET | Microsoft Docs 在使用systemd打包.Net5服务的时候,无法运行,报错如下图: 查询系统日志发现对dotnet访问没有权限,dotnet已设置权限755并且ser
阅读全文
摘要:公司的项目需要部署到一台公网的linux服务器,以便同事们测试小程序。 目标服务器是新搭建的CentOS 8虚拟机,以非docker的方式部署。现记录过程便于日后部署至项目甲方的服务器上,因为甲方的服务器可能未联网,或者网络资源有限(公司按流量算钱的WiFi棒) 宗旨是尽量用U盘拷贝二进制文件以离
阅读全文
摘要:上一章我们完成了小项目的面向服务体系改造,你或许一直在思考一个问题。为什么要将业务独立成微服务? 微服务原理 以一个健康医疗系统为例, 这个系统包含了用户模块,问卷的发放与填写,图表显示,报表生成与查看,患者管理等功能,传统的架构如下: 随着项目规模的增长,在开发过程中会发现如下问题: 各模块
阅读全文
摘要:上一章我们说道,如果要使各模块之间解耦,使得各自独立成服务,首先要解除各个模块之间的引用关系。 还记得上一章我们的小项目吗 ?们回到之前的代码上来,当前的项目架构如下图: 这次的任务是将它改造成面向服务体系的架构,是构建微服务的第一步改造: 一. 引入Soa库 首先将Soa库的三个项目引入
阅读全文
摘要: 上一章我们建立了一个典型的面向领域设计的Abp小项目,如果按照常规的开发方式,会遇到什么问题呢? 先来完善一下这个小项目,在定义好各实体类后,运行Miguration并向数据库里写入一些初始数据。 现在整个项目的依赖引用图如下,每一个都有独立的引用路线,互不干涉。 简略图如下 假设现在
阅读全文
摘要: 在企业中大型项目中,随着业务的不断拓展,项目发展到一定程度,需要寻求项目的各模块解耦,独立成为微服务。如何实现呢? 首先我们先来简单回顾一下Abp框架怎样实现(DDD)领域驱动设计的,Abp框架的全称是:Asp.Net Boilerplate Project(即Asp.Net 的样板项目),我们
阅读全文
摘要: 问题:在使用Update-Database时,突然出现“数据库中已存在名为 'XXX' 的对象”。 检查发现__EFMigrationsHistory表中的MigrationId与项目中的EntityFrameworkCore项目中的Migrations内容有不同的地方。 ABP的更新机制是对比
阅读全文