.NET微信网页开发之网页授权获取用户基本信息
开发背景
当用户在微信客户端中访问第三方网页,公众号可以通过微信网页授权机制,来获取用户基本信息,进而实现业务逻辑。我们一般通过用户网页授权来无感实现用户登录,并获取用户的微信信息。
注意:用户管理类接口中的“获取用户基本信息接口”,是在用户和公众号产生消息交互或关注后事件推送后,才能根据用...[2023/12/13]
基于DotNetty实现自动发布 - 实现一键打包发布
前言
上一篇,我只实现了一键检测代码变化,本篇才是真正的实现了一键打包发布
效果图
客户端打包待发布文件
<summary>
把多个文件添加到压缩包 (保留文件夹层级关系)
< ummary>
public sta...[2023/12/13]
快速入门:使用 .NET Aspire 组件实现缓存
前言
云原生应用程序通常需要各种类型的可扩展缓存解决方案来提高性能。.NET Aspire 组件简化了连接到流行的缓存服务(例如 Redis)的过程,今天小编就为大家简单介绍一下如何使用 .NET Aspire 组件实现缓存。
本文的内容概要:
创建一个设置为使用 .NET Aspire ...[2023/12/13]
分享一个 asp.net core 多文件分块同时上传的组件
分享一个可多个文件同时上传、断点续传,并实时反馈上传进度的 Asp.Net core 组件。
服务器端
引用 nuget 包:JMS.FileUploader.AspNetCore
然后启用上传组件:
app.UseAuthorization();
...[2023/12/13]
记一次 .NET 某新能源材料检测系统 崩溃分析
一:背景
1. 讲故事
上周有位朋友找到我,说他的程序经常会偶发性崩溃,一直没找到原因,自己也抓了dump 也没分析出个所以然,让我帮忙看下怎么回事,那既然有 dump,那就开始分析呗。
二:Windbg 分析
1. 到底是哪里的崩溃
一直跟踪我这个系列的朋友应该知道分析崩溃第一个命令就是 !...[2023/12/13]
聊一聊 .NET高级调试 中必知的符号表聊一聊 .NET高级调试 中必知的符号表
一:背景
1. 讲故事
在高级调试的旅行中,发现有不少人对符号表不是很清楚,其实简而言之符号表中记录着一些程序的生物特征,比如哪个地址是函数(签名信息),哪个地址是全局变量,静态变量,行号是多少,数据类型是什么 等等,目的就是辅助我们可视化的调试,如果没有这些辅助我们看到的都是一些无意义的汇编代...[2023/12/13]
基于.NET Core + Quartz.NET+ Vue + IView开箱即用的定时任务UI基于.NET Core + Quartz.NET+ Vue + IView开箱即用的定时任务UI
前言
定时任务调度应该是平时业务开发中比较常见的需求,比如说微信文章定时发布、定时更新某一个业务状态、定时删除一些冗余数据等等。今天给大家推荐一个基于.NET Core + Quartz.NET + Vue + IView开箱即用的定时任务UI(不依赖数据库,只需在界面做简单配置):Q...[2023/12/13]
AgileConfig 1.8.0 已适配 .NET8
Hello 大家好。本月圈子里最大的事莫过于 .NET8 正式 release。群友们都在适配 .NET8。抽个周末我也把 AgileConfig 升级到了 .NET8。下面把升级的过程简单记录一下,其中有个小坑,对大家升级的时候可能有所帮助。
升级
升级 .NET8
修改所有项目的目标框架...[2023/12/11]
.NET企业应用安全开发动向-概览
太长不读版:试图从安全的全局视角触发,探讨安全的重要性,讨论如何识别安全问题的方法,介绍.NET提供的与安全相关的基础设施,以及一些与时俱进的安全问题,为读者建立体系化的安全思考框架。
引言
关于“安全”二字,“一千个读者有一个哈姆雷特”,有人说安全就是杀毒软件,有人说安全就是第三方软件的安全...[2023/12/11]
基于DotNetty实现自动发布 - 自动检测代码变化
前言
很抱歉没有实现上一篇的目标:一键发布,因为工作量超出了预期,本次只实现了 Git 代码变化检测
已完成的功能
解决方案的项目发现与配置
首次发布需要手动处理
自动检测代码变化并解析出待发布的文件
简要说明
只需要填写解决方案的 Git 仓储路径即可自动发现项目 (通过...[2023/12/8]
基于DotNetty实现自动发布 - 项目的配置与发现基于DotNetty实现自动发布 - 项目的配置与发现
前言
上一篇,我们实现了基于 DotNetty 的通信基础模块的搭建,本篇,主要实现待发布 Web 项目的集成。
创建待发布项目
为了测试, 我创建了一个基于 .NET 4.8 的 Web 项目 OpenDeploy.TestWebProject
我本机的代码仓储路径是: D...[2023/12/8]
.NET 6 使用 LogDashboard 可视化日志.NET 6 使用 LogDashboard 可视化日志
在上一篇中我使用Nlog记录日志到了数据库,接下来我们进行日志的可视化展示
1. 关于LogDashboard
logdashboard是在github上开源的aspnetcore项目, 它旨在帮助开发人员排查项目运行中出现错误时快速查看日志排查问题
Tips: 项目已经有两年没有更新了
...[2023/12/8]
记一次 .NET 某零售管理系统 存储不足分析
一:背景
1. 讲故事
前几天有位朋友找到我,说他的程序会偶发性的报 存储空间不足,无法处理此命令 的错误,让我帮忙看下到底怎么回事,哈哈,人家是有备而来,dump都准备好了,话不多说,直接分析开干。
二:WinDbg 分析
1. 捕获dump中的异常
一般来讲别人说的只是一个参考,我们需要自...[2023/12/8]
用最清爽的方式开发dotNet
用最清爽的方式开发dotNet
不管是官方自带模板还是其他开源搞的,总是一来一大堆,如果你也嫌弃这些过于臃肿,不如看看我这个方式
前提
假设我要做一个简单的api
方式
想到清爽,那肯定是简单方便,脑袋第一个念头就是.Net6 推出的miniapi了
官方路子
使用 ASP.NET...[2023/12/8]
.NET使用分布式网络爬虫框架DotnetSpider快速开发爬虫功能
前言
前段时间有同学在微信群里提问,要使用.NET开发一个简单的爬虫功能但是没有做过无从下手。今天给大家推荐一个轻量、灵活、高性能、跨平台的分布式网络爬虫框架(可以帮助 .NET 工程师快速的完成爬虫的开发):DotnetSpider。
注意:为了自身安全请在国家法律允许范围内开发网络爬虫功...[2023/12/8]
.NET8顶级调试lldb观察FOH堆字符串分配
前言
好久没有动用LLDB了,本篇通过它来看下FOH也就是.NET8里面优化字符串,为了提高其性能增加的FOH堆分配过程。关于FOH可以参考:.NET8极致性能优化Non-GC Heap
详细
来看一个简单的例子:
public static string GetPrefix() =>...[2023/12/8]
.net 获取客户端真实ip
Nginx 如何设置
情况1
在只有1层nginx代理的情况下,设置nginx配置“proxy_set_header X-Forwarded-For $remote_addr;”。(此时$remote_addr获取的是用户的真是ip)
情况2
在有多层反向代理的情况下,
1)设置“最外层”...[2023/12/5]
一个NET8 AOT编译的辅助项目,让你的任何可执行应用快速部署为服务
??不知道大家有没有和小编一样,很多时候想将自己的一些应用转为服务运行,比如一些控制台应用或者.NET Core应用,但是又不想重新编码,把他们转为服务,本文将给大家提供些我使用过的方法,并提供一个基于NET8 AOT编译的辅助项目的封装工具构建方法,快来看看吧。点我?Star
我的快速开发框架...[2023/12/5]
基于DotNetty实现自动发布 - 通信实现
基于 DotNetty 实现通信
DotNetty : 是微软的 Azure 团队,使用 C#实现的 Netty 的版本发布。是.NET 平台的优秀网络库。
项目介绍
OpenDeploy.Communication 类库项目,是通信相关基础设施层
Codec 模块实现编码解码
Conv...[2023/12/5]
在NET8中使用简化的 AddJwtBearer 认证在NET8中使用简化的 AddJwtBearer 认证
开发环境
系统版本: win10
.NET SDK: NET8
开发工具:vscode
参考引用:使用 dotnet user-jwts 管理开发中的 JSON Web 令牌
注意:以下示例中的端口、token等需替换成你的环境中的信息
创建项目
运行以下命令来创建一个空的 Web ...[2023/12/5]
聊一聊 .NET高级调试 中的一些内存术语
一:背景
1. 讲故事
在高级调试的旅程中,经常会有一些朋友问我什么是 工作集(内存),什么是 提交大小,什么是 Virtual Size, 什么是 Working Set 。。。截图如下:
既然有很多朋友问,这些用口头也不怎么好描述,刚好上午有时间就系统的聊一下吧。
二:内存术语解读
1...[2023/12/5]
在Winform应用中增加通用的业务编码规则生成在Winform应用中增加通用的业务编码规则生成
在我们很多应用系统中,往往都需要根据实际情况生成一些编码规则,如订单号、入库单号、出库单号、退货单号等等,我们有时候根据规则自行增加一个函数来生成处理,不过我们仔细观察后,发现它们的编码规则有很大的共通性,因此可以考虑使用一些通用的业务编码规则生成,从而在系统中统一维护即可,本篇随笔介绍如何在W...[2023/12/5]
.NET8 依赖注入
依赖注入(Dependency Injection,简称DI)是一种设计模式,用于解耦组件(服务)之间的依赖关系。它通过将依赖关系的创建和管理交给外部容器来实现,而不是在组件(服务)内部直接创建依赖对象。
? 咱就是通过 IServiceCollection 和 IServiceProvide...[2023/12/5]
在WPF应用中使用GongSolutions.WPF.DragDrop实现列表集合控件的拖动处理
WPF应用中,控件本身也可以通过实现事件代码实现拖动的处理,不过如果我们使用GongSolutions.WPF.DragDrop来处理,事情会变得更加简单轻松,它支持很多控件的拖动处理,如ListBox, ListView, TreeView, DataGrid等源自ItemsControl的控...[2023/12/5]
.NET8极致性能优化AOT.NET8极致性能优化AOT
前言
.NET8对于性能的优化是方方面面的,所以AOT预编译机器码也是不例外的。本篇来看下对于AOT的优化。原文:.NET8极致性能优化AOT
详述
首先明确一个概念,.NET里面的AOT它是原生的。什么意思呢?也就是说通过ILC编译器(AOT编译器,参考:.Net 7 新编译器 ILC 简析...[2023/12/5]
ConfigureAwait in .NET8ConfigureAwait in .NET8
ConfigureAwait in .NET8
ConfigureAwait(true) 和 ConfigureAwait(false)
首先,让我们回顾一下原版 ConfigureAwait 的语义和历史,它采用了一个名为 continueOnCapturedContext 的布尔参数。
当...[2023/12/1]
Net 高级调试之十一:托管堆布局架构和对象分配机制
一、简介 今天是《Net 高级调试》的第十一篇文章,这篇文章来的有点晚,因为,最近比较忙,就没时间写文章了。现在终于有点时间,继续开始我们这个系列。这篇文章我们主要介绍托管堆的架构,对象的分配机制,我们如何查找在托管堆上的对象,我学完这章,很多以前很模糊的概念,现在很清晰了,知道了对象代的...[2023/12/1]
.NET周刊【11月第4期 2023-11-26】
国内文章
万字长文:从 C# 入门学会 RabbitMQ 消息队列编程
https: www.cnblogs.com/whuanle/p/17837034.html
如题,详细的介绍RabbitMQ以及C#的使用。
CPF C#跨平台UI框架开源了
https: www.cnblogs.co...[2023/12/1]
对 .NET程序2G虚拟地址紧张崩溃 的最后一次反思对 .NET程序2G虚拟地址紧张崩溃 的最后一次反思
一:背景
1. 讲故事
最近接连遇到了几起 2G 虚拟地址紧张 导致的程序崩溃,基本上 90% 都集中在医疗行业,真的很无语,他们用的都是一些上古的 XP,Windows7 x86,我也知道技术人很难也基本无法推动硬件系统和设备的升级,这里蕴含了巨大的人情世故。
写这一篇的目的是想系统化的整理...[2023/12/1]
WPF应用开发之控件动态内容展示
在我们开发一些复杂信息的时候,由于需要动态展示一些相关信息,因此我们需要考虑一些控件内容的动态展示,可以通过动态构建控件的方式进行显示,如动态选项卡展示不同的信息,或者动态展示一个自定义控件的内容等等,目的就是能够减少一些硬编码的处理方式,以及能够灵活的展示数据。本篇随笔通过实际案例介绍WPF应...[2023/12/1]
.NET8极致性能优化CHRL
前言
.NET8在.NET7的基础上进行了进一步的优化,比如CHRL(全称:CORINFO_HELP_RNGCHKFAIL)优化技术,CORINFO_HELP_RNGCHKFAIL是边界检查,在.NET7里面它已经进行了部分优化,但是.NET8里面它继续优化,类似人工智能,.NET8能意识到某些...[2023/12/1]
通过.NET Core+Vue3 实现SignalR即时通讯功能
.NET Core 和 Vue3 结合使用 SignalR 可以实现强大的实时通讯功能,允许实时双向通信。在这个示例中,我们将详细说明如何创建一个简单的聊天应用程序,演示如何使用 .NET Core SignalR 后端和 Vue3 前端来实现实时通讯功能。
步骤1:准备工作
确保你已经安装了...[2023/12/1]
.NET开源的处理分布式事务的解决方案
前言
在分布式系统中,由于各个系统服务之间的独立性和网络通信的不确定性,要确保跨系统的事务操作的最终一致性是一项重大的挑战。今天给大家推荐一个.NET开源的处理分布式事务的解决方案基于 .NET Standard 的 C# 库:CAP。
CAP项目介绍
CAP 是一个基于 .NET Stand...[2023/12/1]
.NET 与 OpenEuler 共展翅,昇腾九万里
openEuler 已支持 X86、ARM、SW64、RISC-V、LoongArch 多处理器架构,逐步扩展 PowerPC 等更多芯片架构支持,持续完善多样性算力生态体验。 openEuler 社区面向场景化的 SIG 不断组建,推动 openEuler 应用边界从最初的服务器场景,逐步拓...[2023/11/29]
龙芯发布 .NET 8 SDK 8.0.100-ea1(试用版)
随着.NET 8的发布,国内的社区朋友们也很关心龙芯.NET 团队对于Loongarch .NET 8的发布时间,目前从龙芯.NET编译器团队已经在龙芯.NET 官网上发布龙芯.NET 8 SDK-8.0.100-ea1 版本发布(试用版),从龙芯2019年启动.NET的研发工作 ,2022年完...[2023/11/29]
自研 Fast.ORM 已全面支持AOT编译 - China-Mr-zhong
Fast Framework
作者 Mr-zhong
代码改变世界....
一、前言
Fast Framework 基于NET6.0 封装的轻量级 ORM 框架 支持多种数据库 SqlServer Oracle MySql PostgreSql Sqlite
优点: 体积小、原生支持微软特...[2023/11/29]
一个基于.NET Core开源、跨平台的仓储管理系统
前言
今天给大家推荐一个基于.NET Core开源、跨平台的仓储管理系统,数据库支持MSSQL/MySQL:ZEQP.WMS。
仓储管理系统介绍
仓储管理系统(Warehouse Management System,WMS)是一种用于管理和控制仓库操作的软件系统,它可以帮助企业实现对仓库内物品...[2023/11/29]
一套开源、强大且美观的WPF UI控件库 - HandyControl
前言
今天给大家推荐一套开源、强大且美观的WPF UI控件库:HandyControl。
WPF介绍
WPF 是一个强大的桌面应用程序框架,用于构建具有丰富用户界面的 Windows 应用。它提供了灵活的布局、数据绑定、样式和模板、动画效果等功能,让开发者可以创建出吸引人且交互性强的应用程序。...[2023/11/29]
编程技巧 --- VS如何调试.Net源码
引言
如题,在VS中如何调试 .Net 源码呢?
一般来说,VS2022,都是默认启用 F12 转到定义能够看到源码,如果大家发现自己无法使用 F12 查看源码,可以在 "工具" -> "选项" -> "文本编辑器" -> "C#" -> "高级" -> "转到定...[2023/11/29]
.NET中有多少种定时器.NET中有多少种定时器
.NET中至少有6种定时器,每一种定时器都有它的用途和特点。根据定时器的应用场景,可以分为UI相关的定时器和UI无关的定时器。本文将简单介绍这6种定时器的基本用法和特点。
UI定时器
.NET中的UI定时器主要是WinForm、WPF以及WebForm中的定时器。分别为:
System.Wi...[2023/11/29]
中间件IIS监控指标、配置和Windbg调试分析
1. 关键性能计数器指标
a. Web服务(W3SVC)性能计数器
当前连接数(Current Connections):显示当前所有HTTP连接的数量。过高的数值可能表明网站流量过大或连接无法及时释放。
每秒请求数(Request ec):显示每秒钟收到的HTTP请求的数量。这可以帮助您了解网...[2023/11/29]
WPF应用开发之附件管理
在我们之前的开发框架中,往往都是为了方便,对附件的管理都会进行一些简单的封装,目的是为了方便快速的使用,并达到统一界面的效果,本篇随笔介绍我们基于SqlSugar开发框架的WPF应用端,对于附件展示和控件的一些封装处理界面效果,供大家参考斧正。
1、回顾附件管理,Winform端以及VueEle...[2023/11/29]
WPF --- 如何以Binding方式隐藏DataGrid列
引言
如题,如何以Binding的方式动态隐藏DataGrid列?
预想方案
像这样:
先在ViewModel创建数据源 People 和控制列隐藏的 IsVisibility,这里直接以 MainWindow 为 DataContext
public partial cla Mai...[2023/11/22]
Net 高级调试之十:轻量级代码生成的调试Net 高级调试之十:轻量级代码生成的调试
一、简介 今天是《Net 高级调试》的第十篇文章。说起来,高级调试,调试的内容还是挺多的,技巧也不少,但是,要想做一个合格的高级调试人员,还需要掌握如何调试动态生成的IL代码。今天要探讨的高级调试的技巧是如何调试通过 Emit 动态生成 IL 代码。可能有人会问,我们不是编写 C# 代码,...[2023/11/22]
.NET周刊【11月第2期 2023-11-12】.NET周刊【11月第2期 2023-11-12】
国内文章
一个基于百度飞桨封装的.NET版本OCR工具类库 - PaddleOCRSharp
https: www.cnblogs.com/Can-daydayup/p/17818557.html
本文介绍了PaddleOCRSharp,这是一个基于百度飞桨PaddleOCR的.NET OCR...[2023/11/22]
一款实用的.NET Core加密解密工具类库
前言
在我们日常开发工作中,为了数据安全问题对数据加密、解密是必不可少的。加密方式有很多种如常见的AES,RSA,MD5,SAH1,SAH256,DES等,这时候假如我们有一个封装的对应加密解密工具类可以直接调用,那这样可以节省不少的开发时间。今天推荐一款实用的.NET Core加密解密工具类库...[2023/11/20]
.NET 8 Video教程介绍(开篇).NET 8 Video教程介绍(开篇)
教程简介
本文将简单描述视频网站教程,视频网站是一个类似于腾讯视频一样的网站,视频资源用户自己上传,然后提供友好的界面查看视频和搜索视频,并且提供管理页面对于视频进行管理,我们将使用Blazor作为前端,并且由MasaFramework作为后端框架,一般情况下我们需要做简单的权限管理,对于用户登...[2023/11/20]
.NET8 Blazor新特性 流式渲染
什么是SSR
Blazor中的流式渲染结合了SSR(服务端渲染),服务端将HTML拼好返回给前端,有点像我们熟知的Razor Pages 或 MVC 。
当已经有了 Razor Pages 或 MVC 时,为什么还要选择使用 Blazor 来实现这一点?这里有几个原因。
首先,Ra...[2023/11/20]
.NET 8来了,那就开发一套基于.NET 8的快速开发框架吧,就叫Simple
??.NET 8来了,开发一套基于.NET 8的快速开发框架吧,就叫 Simple 点我?Star
?? 框架由来
为啥有了那么多开发框架,还得非要再搞个呢,大家都知道很多快速开发框架,啥ABP 啥水果啥的,怎么评价他们呢,就是一个字,叼!。
可是作为一个打工人,还不是公司用啥我用啥,公司不...[2023/11/20]
.NET8.0 AOT 经验分享 - 专项测试各大 ORM 是否支持
AOT 特点
发布和部署本机 AOT 应用具有以下优势:
最大程度减少磁盘占用空间:使用本机 AOT 发布时,将生成一个可执行文件,其中仅包含支持程序所需的外部依赖项的代码。减小的可执行文件大小可能会导致:
较小的容器映像,例如在容器化部署方案中。
缩短了较小映像的部署时间。
缩短启动时...[2023/11/20]