随笔分类 -  net

摘要:workflow-core自带事件的局限性 众所周知,workflow-core只能从外向内抛事件 比如在api接口中引发事件,在工作流中等待事件完成 //第一步,开启流程 public async Task<IActionResult> Add([FromBody] Dto parm) { //启 阅读全文
posted @ 2025-08-22 11:24 小菜刀小飞刀 阅读(218) 评论(2) 推荐(0)
摘要:小组在公司把冲压模块开发好后,我就兴冲冲地抱着电脑去车间了,准备部署软件——其实是浏览器的Vue网页。至于服务器嘛,那当然还是.net咯。我没想到见到了太多超出软件本体以外的事。 熟悉而又陌生的车间与生产 刚刚抵达工厂,确实感觉很大的一个厂区,但是公司这边也是一个厂区,同样很大,但是路上没有一人,静 阅读全文
posted @ 2025-04-11 12:51 小菜刀小飞刀 阅读(742) 评论(3) 推荐(5)
摘要:怎么从软件到硬件 这个问题对于我来说很难理解。即使我本身是程序员,即使看了很多科普视频,但仍然不知道。硬件是不可变的,软件是多变的,怎么用不变实现变化? 我偶然间看了系统推荐的游戏视频,发现了这个游戏。于是就趁着无聊玩了下。这个游戏展现了怎么从硬件到软件。 逻辑与哲学 在古希腊时,逻辑被注意到。当时 阅读全文
posted @ 2025-01-13 20:25 小菜刀小飞刀 阅读(669) 评论(0) 推荐(3)
摘要:探头与变送器 前面的文章已经实现了ModBus客户端与服务端和他们之间的通信。但只是软件不够,毕竟传感器是硬件。 经过我的了解,一个完整的实现了Modbus协议的,并且通过RS485电缆与电脑交换ModBusRTU报文的Modbus设备,一般由两个部分组成。 探头 探头就是将物理量转化为电信号的东西 阅读全文
posted @ 2024-11-03 15:04 小菜刀小飞刀 阅读(853) 评论(0) 推荐(2)
摘要:Task和Thread的区别 这是一个高频,深刻的问题,无论去哪都逃不过被询问这个问题。Task是基于Thread的,这是众所周知的。但是Task和Thread的联系如此简单和纯粹确实我没想到的。甚至只需要几十行代码就能呈现其原理。一个简单的模拟实例说明Task及其调度问题,这真是一篇好文章。 任务 阅读全文
posted @ 2024-09-03 22:54 小菜刀小飞刀 阅读(320) 评论(0) 推荐(1)
摘要:耗时很长的请求怎么处理?比如数据量大的。业务逻辑处理时间太久,以至于响应超时 这里的超时响应指的是ReadTimeOut,即发送请求内容完毕到接收响应数据开始的这段时间。普通HTTP请求可能在这段时间没有响应超时。 HTTP分块传输(Chunked Transfer Encoding)中每个数据块的 阅读全文
posted @ 2024-08-31 23:16 小菜刀小飞刀 阅读(983) 评论(0) 推荐(5)
摘要:软件构成 后端 后端是一个asp.netcore webapi项目,使用jwt进行身份验证和鉴权。 前端 前端是一个基于http协议的asp.netcore RezorPage项目,但实际上完全使用的wwwwroot目录下的静态文件。没有使用RazorPage。 目前只有后端接口鉴权,前端页面任意访 阅读全文
posted @ 2024-08-08 13:25 小菜刀小飞刀 阅读(965) 评论(5) 推荐(2)
摘要:自定义控件 自定义控件是我比较陌生的一个主题。我好久没练习过wpf了,需要巩固记忆。我想了一会儿,打开动漫之家,忽然觉得这个看漫画的图片浏览控件有意思。于是特地花了一天做了这个图片控件。我原本以为很容易,但实际上并不简单。这个图片浏览控件比我想象中要难许多,有技术上的难题,也有逻辑上的难题。好在最后 阅读全文
posted @ 2024-08-04 09:01 小菜刀小飞刀 阅读(605) 评论(0) 推荐(1)
摘要:进程的内存 一个exe文件,在没有运行时,其磁盘存储空间格式为函数代码段+全局变量段。加载为内存后,其进程内存模式增加为函数代码段+全局变量段+函数调用栈+堆区。我们重点讨论堆区。 进程内存 函数代码段 全局变量段 函数调用栈 堆区 托管堆与非托管堆 C# int a=10这种代码申请的内存空间位于 阅读全文
posted @ 2024-07-31 22:34 小菜刀小飞刀 阅读(2591) 评论(6) 推荐(8)
摘要:ILogger简单使用 asp.net core的webApplicationBuilder中自带了一个日志组件。无需手动注册服务就能直接在控制器中构造注入。 public HomeController(ILogger<HomeController> logger) { _logger = logg 阅读全文
posted @ 2024-07-29 09:15 小菜刀小飞刀 阅读(172) 评论(0) 推荐(0)
摘要:没有顶点着色器的遗憾 WPF不支持顶点着色器,只支持像素着色器。这可能是为了入门简便考虑,让使用者专心在像素着色器上。毕竟会的越少,钻得越深。 我去瞧了一下ShaderToy,上面似乎也只提供了像素着色器。 缺少顶点着色器的控制,一些效果就不好实现了,比如顶点动画,3D图形渲染。 但我发现了一种叫R 阅读全文
posted @ 2024-07-11 19:23 小菜刀小飞刀 阅读(275) 评论(0) 推荐(0)
摘要:易混淆概念辨析 在不同的上下文中,“Redis中间件”可以有不同的含义,这可能导致一些混淆。让我们来分解一下: Web中间件与消息中间件的区别: Web中间件:在ASP.NET Core(或类似框架)中,中间件是指处理HTTP请求管道的组件,例如处理请求、认证、日志记录等。这些中间件按顺序构成一个请 阅读全文
posted @ 2024-07-07 21:21 小菜刀小飞刀 阅读(227) 评论(0) 推荐(0)
摘要:疑问 着色器只能访问控件可视区域内的像素,但是阴影特效出现在控件可视区域外部,这是怎么实现的? 我想起来WPF中有个叫做装饰器的东西,然而阅读了一下文档,似乎不行 放置在装饰器层中的任何内容将呈现在设置的其他任何样式的顶部。 换言之,装饰器始终以可见的方式位于顶部,无法使用 z 顺序重写。 而且装饰 阅读全文
posted @ 2024-07-04 18:39 小菜刀小飞刀 阅读(96) 评论(0) 推荐(0)
摘要:WPF网格类型像素着色器由于WPF只能写像素着色器,没法写顶点着色器,所以只能在这上面做文章了 刚好有个纹理坐标TEXCOORD输入可用,而且值的范围是已知的0-1,左上角是原点,这就好办了 例子 索引 二分网格 使用ceil 0-1移动定义域到-0.5 - 0.5,然后向上取整变成 0 / 1 float4 main(f 阅读全文
posted @ 2024-06-29 23:11 小菜刀小飞刀 阅读(384) 评论(1) 推荐(7)
摘要:概念类比 范畴 CPU GPU 二进制文件 .exe .cso / .ps 二进制指令 机器码 CSO(shader指令) 助记符 汇编 SL 高级语言 C# HLSL 高级语言文件 .cs .hlsl / .fx 高级语言编译器 csc.exe fxc.exe API .NET API Direc 阅读全文
posted @ 2024-06-29 16:21 小菜刀小飞刀 阅读(495) 评论(0) 推荐(4)
摘要:wpf使用了Directx,所有才能够进行3D编程。 比较方便的是,3D模型也是声明式的,就像普通控件一样。 由于3D控件也是声明式的,所以还可以利用binding改变其属性 控件 Viewport3D 这是一个3D视口,所有的3D控件都要放在这里面。 3D空间的基本元素是 相机、 光源、 对象。 阅读全文
posted @ 2024-06-26 21:53 小菜刀小飞刀 阅读(674) 评论(0) 推荐(1)
摘要:关于三大类控件和画笔的关系,可以用这张图说明 可以看出,除了形状具有边框,为什么其他控件的边框要通过border装饰实现 图中还没填满,理论上还有几种类型控件 阅读全文
posted @ 2024-06-25 20:41 小菜刀小飞刀 阅读(44) 评论(0) 推荐(0)
摘要:VisualState基本使用 首先搭建一个自定义控件,继承自ContentControl,自动生成了这些文件 由于CustomButton在Custom命名空间中,所以改一下xaml中的引用 xmlns:local="clr-namespace:WpfApp1.Custom" 定义部件和视觉状态 阅读全文
posted @ 2024-06-23 16:16 小菜刀小飞刀 阅读(231) 评论(0) 推荐(0)
摘要:在上一篇通信协议碰到了多线程,阻塞、非阻塞、锁、信号量...,会碰到很多问题。因此我感觉很有必要研究多线程与异步编程。 首先以一个例子开始 我说明一下这个例子。 这是一个演示异步编程的例子。 输入job [name],在一个同步的Main方法中,以一发即忘的方式调用异步方法StartJob()。 输 阅读全文
posted @ 2024-06-08 13:16 小菜刀小飞刀 阅读(2101) 评论(4) 推荐(5)
摘要:基于WebSocket的modbus通信(三)- websocket和串口WebSocket传递ModbusTCP数据包 错误纠正 上一篇还有个错误,就是客户端写数据时服务端不需要响应,但我的服务端响应了的。我选择改客户端,把写数据时接收到的响应丢弃。 PrintBytes(ADUMessage.Serialze(request), "请求"); if (Client ! 阅读全文
posted @ 2024-06-02 19:30 小菜刀小飞刀 阅读(813) 评论(0) 推荐(1)

//右下角目录