摘要: 使用 Abp.Zero 搭建第三方登录模块(四):微信小程序开发 ​简短回顾一下微信小程序端的流程: 用户通过扫码进入小程序的鉴权页面,更新状态到ACCESSED已扫码 用户点击确认授权,微信通过wx.login()接口获取第三方登录的必要信息:Code登录凭证。 微信小程序主要为用户授权行为提供交互功能,用户在扫码之后,提供一个交互UI,如下: ​ 在使用 Ab 阅读全文
posted @ 2022-07-19 17:12 林晓lx 阅读(16) 评论(0) 推荐(0) 编辑
摘要: 使用 Abp.Zero 搭建第三方登录模块(三):网页端开发 ​简短回顾一下网页端的流程,总的来说网页端的职责有三: 生成一个随机字符作为鉴权会话的临时Token, 生成一个小程序码, Token作为参数固化于小程序码当中 监控整个鉴权过程状态,一旦状态变为AUTHORIZED(已授权)则获取小程序登录凭证code。调用ExternalAuthenticate 阅读全文
posted @ 2022-07-19 17:08 林晓lx 阅读(287) 评论(1) 推荐(2) 编辑
摘要: 使用 Abp.Zero 搭建第三方登录模块(一):原理篇 这是一篇系列博文,我将从原理分析、设计到代码编写,搭建一套基于微信小程序登录的网站第三方登录模块: 使用 Abp.Zero 搭建第三方登录模块(一):原理篇 - 林晓lx - 博客园 (nassauhappening.com) 使用 Abp.Zero 搭建第三方登录模块(二):服务端开发 - 林晓lx - 博客园 阅读全文
posted @ 2022-06-24 11:07 林晓lx 阅读(500) 评论(2) 推荐(2) 编辑
摘要: 使用 Abp.Zero 搭建第三方登录模块(二):服务端开发 ​ 微信SDK库的集成 微信SDK库是针对微信相关 API 进行封装的模块 ,目前开源社区中微信SDK库数量真是太多了,我选了一个比较好用的EasyAbp WeChat库。 EasyAbp/Abp.WeChat: Abp 微信 SDK 模块,包含对微信小程序、公众号、企业微信、开放平台、第三方平台等 阅读全文
posted @ 2022-06-24 11:05 林晓lx 阅读(141) 评论(6) 推荐(1) 编辑
摘要: [学习笔记]使用Docker+Jenkin自动化流水线发布.Net应用 ​使用Docker容器方案可以快速安全地将项目部署到客户的服务器上,作为公司项目,需要解决两个问题: 1. 需要搭建一个私有的Docker仓库,以便安全的存储镜像 2. 需要一套自动化发布方案,实现代码到应用部署的自动化流程 大致流程如下 ​ 在java世界中有很多文章介绍了Docker+Jenki 阅读全文
posted @ 2022-06-08 18:38 林晓lx 阅读(473) 评论(2) 推荐(5) 编辑
摘要: 将Abp移植进.NET MAUI项目(三):构建UI层 ​ 很开心,终于到了创建页面的时候了! 我们需要两个页面 MainPage 主页面 MusicItemPage 条目编辑页面 编写主页面 新建一个MainPageViewModel.cs,作为MainPage的ViewModel层 public class MainPageViewModel : V 阅读全文
posted @ 2022-05-25 18:46 林晓lx 阅读(313) 评论(3) 推荐(2) 编辑
摘要: 将Abp移植进.NET MAUI项目(二):配置与基类编写 ​ 因为我们要做一个数据持久化型的小应用,所以在完成Abp功能的集成后,我们需要做数据库相关的配置工作 配置数据库 在MauiBoilerplate.Core项目中,添加两个实体类: 我们简单的写一个歌曲(song)的实体类 其中包含了歌曲标题(MusicTitle),艺术家(Artist),专辑( 阅读全文
posted @ 2022-05-25 18:44 林晓lx 阅读(316) 评论(0) 推荐(1) 编辑
摘要: 将Abp移植进.NET MAUI项目(一):搭建项目 ​ 前言 写在.NET MAUI官宣正式发布之际,热烈庆祝MAUI正式发布! 去年12月份做了MAUI混合开发框架的调研,想起来文章里给自己挖了个坑,要教大家如何把Abp移植进Maui项目,由于篇幅限制,将分为三个章节。 将Abp移植进.NET MAUI项目(一):搭建项目 - 林晓lx - 博客园 阅读全文
posted @ 2022-05-25 18:43 林晓lx 阅读(2119) 评论(15) 推荐(13) 编辑
摘要: Soa: 一个轻量级的微服务库 Soa 项目地址:Github:MatoApps/Soa 介绍 一个轻量级的微服务库,基于.Net 6 + Abp框架 可快速地将现有项目改造成为面向服务体系结构,实现模块间松耦合。 感谢 RabbitTeam 的项目 RabbitCloud grissomlau 的项目 jimu 部分模块以及算法 阅读全文
posted @ 2022-05-18 15:47 林晓lx 阅读(1312) 评论(13) 推荐(12) 编辑
摘要: RoslynSyntaxTool 项目地址 Github: RoslynSyntaxTool 基础概念 Syntax Api: Roslyn 是微软开源的 .NET 编译平台。编译平台支持 C# 和 Visual Basic 代码编译,并提供丰富的语法分析 API。 语法树(SyntaxTree)是 阅读全文
posted @ 2022-05-16 14:49 林晓lx 阅读(510) 评论(0) 推荐(6) 编辑
摘要: ​上篇文章说过,服务发现和健康监测是面向服务体系架构重要的模块,Soa库可以配置使用Consul作为服务发现服务,或者轮询已配置的服务列表作为本机服务发现。 将用Hangfire来作为服务发现与健康监测的定时执行库 具体配置信息请参考Hangfire – Background jobs and wo 阅读全文
posted @ 2022-05-10 17:18 林晓lx 阅读(88) 评论(0) 推荐(1) 编辑
摘要: [.Net 6]写一个简单的文件上传控件后端 ​此项目是配合上一篇文章[Vue]写一个简单的文件上传控件 - 林晓lx - 博客园 (nassauhappening.com) 的后端程序,使用.Net 6项目框架搭建,开发前请安装Visual Studio 2022Visual Studio 2022 版本 17.1 发行说明 | Microsoft Docs 阅读全文
posted @ 2022-04-20 15:14 林晓lx 阅读(62) 评论(0) 推荐(0) 编辑
摘要: ​这篇将介绍如何写一个简单的基于Vue+Element的文件上传控件。 控件将具有 1. 上传队列的列表,显示文件名称,大小等信息,可以显示上传进度实时刷新 2. 取消上传 ​ 使用Element的uploader控件,上传文件的行为和样式不用自己全部实现,使代码简化。且有足够的扩展性,文件传输请求 阅读全文
posted @ 2022-04-20 15:10 林晓lx 阅读(569) 评论(4) 推荐(13) 编辑
摘要: [学习笔记]在Linux中使用源码编译的方式安装Nginx 使用源码的方式安装nginx,可以加深对linux目录的理解,今天就来放弃yum.. rpm.. dnf.. 这些在linux下较为“傻瓜”的操作方式,实战源码编译的方式安装nginx! 阅读全文
posted @ 2022-03-17 20:28 林晓lx 阅读(65) 评论(0) 推荐(0) 编辑
摘要: 用Vue编写一个简单的仿Explorer文件管理器 ​大家一定很熟悉你桌面左上角那个小电脑吧,学名Windows资源管理器,几乎所有的工作都从这里开始,文件云端化是一种趋势。怎样用浏览器实现一个Web版本的Windows资源管理器呢?今天来用Vue好好盘一盘它。 一、导航原理 首先操作和仔细观察导航栏,我们有几个操作途径: 点击“向上”按钮回到上一个 阅读全文
posted @ 2022-03-11 23:12 林晓lx 阅读(920) 评论(1) 推荐(2) 编辑
摘要: [学习笔记] Rocket.Chat 安装与设置启动项 这篇文章主要介绍手动安装的方式来安装Rocket.Chat,在Rocket.Chat官方有三种安装方式, 面向开发人员的直接使用meteor部署 传统的源码编译安装 Docker方式部署 接下来分别介绍: 使用Meteor方式部署 Meteor是一种Web应用构建平台(官网http://meteo 阅读全文
posted @ 2022-02-15 09:43 林晓lx 阅读(329) 评论(0) 推荐(0) 编辑
摘要: ​如果按照官方文档的步骤手动安装.Net5 会有一个坑: 在 Linux 上手动安装 .NET - .NET | Microsoft Docs 在使用systemd打包.Net5服务的时候,无法运行,报错如下图: ​ 查询系统日志发现对dotnet访问没有权限,dotnet已设置权限755并且ser 阅读全文
posted @ 2022-02-15 09:41 林晓lx 阅读(93) 评论(0) 推荐(0) 编辑
摘要: ​之前为了方便同事测试微信小程序,搭建了基于CentOS的预发布环境,.Net5 程序也已经部署好在上面,在公网上可以通过http协议的临时域名(jevonsflash.xxx.net)访问到后台Api。 然而小程序的正式线上版本,只可以跟指定的域名进行网络通信,且域名只支持 https,wss通信 阅读全文
posted @ 2022-02-10 20:59 林晓lx 阅读(62) 评论(0) 推荐(1) 编辑
摘要: ​公司的项目需要部署到一台公网的linux服务器,以便同事们测试小程序。 目标服务器是新搭建的CentOS 8虚拟机,以非docker的方式部署。现记录过程便于日后部署至项目甲方的服务器上,因为甲方的服务器可能未联网,或者网络资源有限(公司按流量算钱的WiFi棒) 宗旨是尽量用U盘拷贝二进制文件以离 阅读全文
posted @ 2022-02-10 14:36 林晓lx 阅读(634) 评论(0) 推荐(0) 编辑
摘要: ​ 在MAUI微软的官方方案是使用Blazor开发,但是当前市场大多数的Web项目使用Vue,React等技术构建,如果我们没法绕过已经积累的技术,用Blazor重写整个项目并不现实。 Vue是当前流行的web框架, 简单来说是一套模板引擎,利用“模板”和“绑定”两大特性实现web页面mvvm模式开 阅读全文
posted @ 2022-01-15 10:17 林晓lx 阅读(1857) 评论(11) 推荐(16) 编辑
摘要: ​ 混合开发的概念是相对与原生开发来说的:App不直接运行原生程序,而是在原生程序中运行一个Web程序,原生程序中包含Web运行时,用于承载Web页面。暂且将原生应用称之为Web容器,Web容器应该能让JavaScript代码与原生平台的代码交互,互相调用,同时为上层提供交互逻辑,例如导航,事件,C 阅读全文
posted @ 2022-01-15 10:15 林晓lx 阅读(500) 评论(0) 推荐(0) 编辑
摘要: ​上一章我们完成了小项目的面向服务体系改造,你或许一直在思考一个问题。为什么要将业务独立成微服务? 微服务原理 以一个健康医疗系统为例, 这个系统包含了用户模块,问卷的发放与填写,图表显示,报表生成与查看,患者管理等功能,传统的架构如下: ​ 随着项目规模的增长,在开发过程中会发现如下问题: 各模块 阅读全文
posted @ 2022-01-15 10:14 林晓lx 阅读(63) 评论(0) 推荐(0) 编辑
摘要: ​上一章我们说道,如果要使各模块之间解耦,使得各自独立成服务,首先要解除各个模块之间的引用关系。 还记得上一章我们的小项目吗 ?们回到之前的代码上来,当前的项目架构如下图: ​ 这次的任务是将它改造成面向服务体系的架构,是构建微服务的第一步改造: ​ 一. 引入Soa库 首先将Soa库的三个项目引入 阅读全文
posted @ 2022-01-15 10:14 林晓lx 阅读(56) 评论(0) 推荐(0) 编辑
摘要: ​ 上一章我们建立了一个典型的面向领域设计的Abp小项目,如果按照常规的开发方式,会遇到什么问题呢? 先来完善一下这个小项目,在定义好各实体类后,运行Miguration并向数据库里写入一些初始数据。 ​ 现在整个项目的依赖引用图如下,每一个都有独立的引用路线,互不干涉。 ​ 简略图如下 ​假设现在 阅读全文
posted @ 2022-01-15 10:11 林晓lx 阅读(64) 评论(0) 推荐(0) 编辑
摘要: ​ 在企业中大型项目中,随着业务的不断拓展,项目发展到一定程度,需要寻求项目的各模块解耦,独立成为微服务。如何实现呢? 首先我们先来简单回顾一下Abp框架怎样实现(DDD)领域驱动设计的,Abp框架的全称是:Asp.Net Boilerplate Project(即Asp.Net 的样板项目),我们 阅读全文
posted @ 2022-01-15 10:10 林晓lx 阅读(154) 评论(0) 推荐(0) 编辑
摘要: ​ 问题:在使用Update-Database时,突然出现“数据库中已存在名为 'XXX' 的对象”。 检查发现__EFMigrationsHistory表中的MigrationId与项目中的EntityFrameworkCore项目中的Migrations内容有不同的地方。 ABP的更新机制是对比 阅读全文
posted @ 2022-01-15 09:58 林晓lx 阅读(178) 评论(0) 推荐(0) 编辑
摘要: 闲来无事开发了个日期选择控件,感兴趣的同学前往: http://github.com/MatoApps/Mato.DatePicker Mato.DatePicker 说明 这是一个带有农历日历的日期选择Xamarin控件 可以指定初始日期 多选和单选日期 引用 PCL:http://www.n 阅读全文
posted @ 2018-07-23 23:50 林晓lx 阅读(1609) 评论(0) 推荐(0) 编辑
摘要: 大家好,很久没写博客了,最近在部署网站的时候,需要将写成console运算模块一并部署到服务器上。 然而Windows自带的任务计划程序是满足不了了,之前的公司有人开发过GerneralServiceHost,也就是个托管服务的程序,可惜没源码,那么自己写一个! 特点: 指定一个可执行文件作为任务, 阅读全文
posted @ 2018-07-02 20:20 林晓lx 阅读(1333) 评论(0) 推荐(0) 编辑
摘要: 到客户现场实施,很多情况下是没有网络的,我们需要在办公室准备好离线安装包。 假设现有已联网的客户机A,一台无网络的客户机B 客户机A 1.生成本地环境的包清单 pip3 freeze > requirements.txt 2.根据清单 下载到指定目录下(~/Projects) 进入requireme 阅读全文
posted @ 2018-07-02 20:06 林晓lx 阅读(288) 评论(0) 推荐(0) 编辑
摘要: 前几天遇到个touch事件的坑,记录下来以增强理解。 具体是 想把一个listview嵌套到另一个listview,这时候如果list view(子listview)的内容过多超过容器高度,它是不会出现滚动条压缩内容区域的,反而会将滚动区域转移到外面的list view(父listview),这个无 阅读全文
posted @ 2017-04-27 15:08 林晓lx 阅读(3737) 评论(1) 推荐(1) 编辑
摘要: 最近写毕业设计甚是烦恼,学校催得急,遇到Bug也多。所以脾气很不好。明显觉得在这样的状态下,效率低下,我记得有一个bug,是权限管理功能,嵌套if中,其中有一个||或判断,大家知道,这个或判断不满足情况下是不报异常的。这个或判断写在错误的地方结果是,调过来调过去,就是说我没权限。。想着我是不是要重装... 阅读全文
posted @ 2015-03-31 13:50 林晓lx 阅读(140) 评论(0) 推荐(0) 编辑
摘要: 项目里有一个WinForm程序,它需要使用一套第三方控件。而我的机器上存有这套控件的两种版本(一个是源码版,一个是演示版)。结果经常出现“程序集清单定义与程序集引用不匹配的问题”的异常。最要命的是有时候啥都没改,重新编译几次就没问题了,然后改了些东西之后再重新编译就又会报那个异常。 解决方法:首先,... 阅读全文
posted @ 2015-03-07 22:24 林晓lx 阅读(840) 评论(0) 推荐(0) 编辑
摘要: 刚刚提交了1.2版,待审核,歌词功能仍然未按照计划发布,因此这个月基本没什么起色,下载量依旧萎靡不振。求安慰 求超越。 阅读全文
posted @ 2014-11-28 21:02 林晓lx 阅读(127) 评论(0) 推荐(0) 编辑