常见问题系列(一)对象序列化-编程思维

对象序列化是非常常见的技术,序列化为Xml或者Json字符串,这里记录使用微软内置库序列化为Xml遇到的一个问题。 原始代码: using System; using System.Collections.Generic; using System.IO; using System.Text; using System.Xml.Serialization; namespace Serial

.net emit 入门教程:第六部分:il 指令:1:概要介绍-编程思维

前言: 在之前的文章中,我们完成了前面五个部分的内容学习,包括: 第一部分:Emit介绍 第二部分:构建动态程序集 第三部分:构建模块(Module) 第四部分:构建类型(Type) 第五部分:动态生成方法 从今天开始,将进入本系列的难点与核心,IL 指令相关的教程。 为了更详细的介绍 IL 指令相关内容,第六部分:IL 指令 内容,将分为多个章节进行介绍: 1、概述(本篇):概要性的介

go 协程【vs】c# 多线程【go-c# round 1】-编程思维

〇、前言 最近接触到 Go 语言相关的内容,由于之前都是用的 C# 语言,然后就萌生了对这两种语言进行多方面比较。 本文将在 Go 的优势项目协程,来与 C# 的多线程操作进行比较,看下差距有多大。 实际上 C# 中也有类似协程的操作,是通过 yield 关键字实现的,等后续再另做对比。 一、准备工作 先准备 1000 个同样内容的 txt 文件,内容是一串简单的字符串,以供程序读取。    程

在 .net 中使用 opc ua 协议-编程思维

目录什么是 OPC UAUaExpert 的使用下载 UaExpert首次启动添加 OPC UA 服务器连接 OPC UA 服务器查看 PLC 数据使用 C# 读写 OPC UA 数据连接到 OPC UA 服务器获取节点的值写入节点的值 什么是 OPC UA OPC UA(OPC Unified Architecture,开放平台通信统一架构)是 OPC 基金会应用在自动化技术的机器对机器网络传

[maui]模仿哔哩哔哩的一键三连-编程思维

@目录创建弧形进度条绘制弧准备物料创建气泡创建手势创建交互与动效项目地址 哔哩哔哩(Bilibili)中用户可以通过长按点赞键同时完成点赞、投币、收藏对UP主表示支持,后UP主多用“一键三连”向视频浏览者请求对其作品同时进行点赞、投币、收藏。 “三连按钮”是一组按钮,轻击时当做普通状态按钮使用,当长按 2 秒钟后,转为三连模式,可以控制并显示进度,并在进度完成时弹出一些泡泡 一直想实现这个效果

.net emit 入门教程:第四部分:构建类型(type)-编程思维

前言: 在动态生成代码的过程中,构建类型(Type)是至关重要的一步。 通过使用 Emit 中的 TypeBuilder,我们可以定义和创建各种类型,包括类、结构体和接口。 本节将深入探讨如何使用 TypeBuilder 动态构建类型,并介绍其在实际应用中的重要性。 定义公用代码,生成程序集以供对照: 通过学习本系列之前的文章,我们可以轻松定义 AssemblyBuilder 程序集构建器,再通

.net emit 入门教程:第三部分:构建模块(module)-编程思维

前言: 在这一部分中,我们将深入讨论动态程序集中模块的概念以及如何构建和管理模块。 1、模块的概念: 模块是动态程序集中的基本单位,它类似于一个独立的代码单元,可以包含类型、方法、字段等成员。 在动态程序集中,模块扮演着组织代码和实现代码复用的关键角色。 它们允许开发人员将相关功能和数据组织在一起,并在需要时进行引用和重用。 一个程序集可以包含一个或多个模块,这种模块化的设计有助于提高代码的可维

.net aspire preview 4 发布!-编程思维

.NET Aspire Preview 4 is now available! Here's a summary of what's new in this preview release:.NET Aspire Preview 4 现已推出!以下是此预览版中新增内容的摘要: Podman   Support for running apps with podman支持使用 podman 运

[.net项目实战] elsa开源工作流组件应用(三):实战演练-编程思维

目录补充需求描述需求分析代码实现下发问卷活动 PublishQuestionnaireActivity通知活动:NotificationActivity等待问卷完成活动:WaitFillInSurveyActivity定时和延时活动:问卷活动:QuestionnaireActivity创建工作流开始工作流TroubleShooting 补充 之前的文章简单介绍了工作流和Elsa工作流库,这里再补

[.net项目实战] elsa开源工作流组件应用(二):内核解读-编程思维

@目录定义变量内存寄存器类寄存器中的存储区块类变量到存储的映射类上下文对象活动上下文(ActivityExecutionContext)工作流执行上下文(WorkflowExecutionContext)表达式执行上下文(ExpressionExecutionContext)构建构建活动构建工作流运行注册注册工作流注册活动填充Invoke活动可观测性设计器与APIs工作流配置查看工作流状态 本篇

garnet: 力压redis的c#高性能分布式存储数据库-编程思维

今天看到微软研究院开源了一个新的C#项目,叫Garnet,它实现了Redis协议,可以直接将Redis替换为Garnet,客户端不需要任何修改。根据其官网的信息,简单的介绍一下它。 开源仓库地址:https://github.com/microsoft/garnet 文档地址:https://microsoft.github.io/garnet/ Garnet是微软研究院基于C# .NET8.0

dogse入门指南-编程思维

dogse入门指南 Dogse作为游戏服务端引擎,目前只包含游戏服务端的核心部分,但这也是最核心的部分。它全部使用.net c#开发,充分兼顾了程序性能与代码编写的准确性与易用性,再加上以vs作为开发工具,极大的提升代码的编写效率,以及方便的调试性。 在使用Dogse之前,我们还需要先了解它能做什么,在游戏服务端里处于什么位置。 Dogse简单的说,实现了游戏服务器的基本框架,包含最基础的网

计算机网络-dns以及fastgithub-编程思维

前言 你是否观察到过这种现象,在访问Github时,有的时候能正常访问,有的时候再次刷新就访问不了,那么能不能有什么办法能一直访问。答案是有,就是在DNS层面能保证一直稳定获取可用并且快速的IP,这就是FastGithub的原理,笔者结合Github上的开源Code来讲下DNS的一些细节。 FastGithub - DnsServer 当然,也许FastGithub的原理有很多种,这只是其中一种

.net集成developersharp操作sql server数据库-编程思维

支持.Net/.Net Core/.Net Framework,可以部署在Docker, Windows, Linux, Mac。 本文提供了一种结合“原生Sql+轻量级ORM”操作各类数据库的工具。 该工具几乎只使用了一个方法/函数,却实现了几乎所有的数据操作功能。它已成功应用到了人工智能、产业互联网、智慧医疗、等多个大型项目上。   此工具在IDataAccess接口中提供。  IData

【译】.net 跨平台界面框架和为什么你首先要考虑再三-编程思维

现在用 C# 来开发跨平台应用已经有很成熟的方案,即共用非界面代码,而每个操作系统搭配特定的用户界面代码。这个方案的好处是可以直接使用操作系统原生的控件和第三方控件,还能够和操作系统深度集成。 这里的深度集成主要是指一些 Windows 专有的系统特性: Windows 托盘 Windows 跳转列表 Windows 系统主题 也包括一些移动平台的特性,例如 iOS 的原生滑动。

[.net项目实战] elsa开源工作流组件应用(一): elsa工作流简介-编程思维

Elsa工作流简介 工作流是什么? 引用维基百科中对工作流的解释: 是对工作流程及其各操作步骤之间业务规则的抽象、概括、描述。工作流建模,即将工作流程中的工作如何前后组织在一起的逻辑和规则在计算机中以恰当的模型进行表示并对其实施计算 Elsa 是一个功能强大的工作流库,支持在任何 .NET 应用程序中执行工作流。Elsa 可以使用C#代码或使用基于Web的可视化设计器生成JSON等方式定义工

告别繁琐!1分钟带你构建rabbitmq消息应用-编程思维

支持.Net/.Net Core/.Net Framework,可以部署在Docker, Windows, Linux, Mac。 RabbitMQ作为一款主流的消息队列工具早已广受欢迎。相比于其它的MQ工具,RabbitMQ支持的语言更多、功能更完善。 1.发送消息、获取消息、使用消息 本文提供一种市面上最/极简单的使用RabbitMQ的方式,只需要会调用以下三个方法,你就几乎可以掌握整个Ra

.net集成developersharp实现强大的aop-编程思维

(适用于.NET/.NET Core/.NET Framework)【目录】0.前言1.第一个AOP程序2.Aspect横切面编程3.一个横切面程序拦截多个主程序4.多个横切面程序拦截一个主程序5.优势总结6.展望 0.前言AOP(Aspect Oriented Programming)是“面向横切面编程”,主要是用来对程序/模块进行解耦。怎么理解?? 我们可以把一般的编程理解为“纵向编程”(主

.net core webapi项目部署iis后swagger 404问题解决-编程思维

.NET Core WebAPI项目部署iis后Swagger 404问题解决 前言 之前做了一个WebAPI的项目,我在文章中写到的是Docker方式部署,然后考虑到很多初学者用的是iis,下面讲解下iis如何部署WebAPI项目。 环境准备 iis ASPNETCoreModuleV2 重点 .NET Core Runtime iis的配置这里就不讲了,主要讲解.NET Core项目部署

c# on visual studio code-编程思维

[comment]: # C# on Visual Studio Code installation Download .NET Core SDK installer and install it. https://www.microsoft.com/net/download .NET Core SDK = Develop apps with .NET Core and the SDK+C