天枫信息技术,专注于.NET技术的开发与应用

All Posts


小白2分钟学会Visual Studio将引用包打包到NuGet上

前言 之前我们说 10分钟学会Visual Studio将自己创建的类库打包到NuGet进行引用( ceC#),过程有些许繁琐,并且需要有一定的基础。 怎么办呢,不慌,看法宝。 两步完成打包上传操作:在类库方法创建成功后,我们的打包只需要两步就可以完成,并且都是点点点的操作。两步完成打包上传操作 第一步:打包 编写好程序后,点击属性配置包的一些必要信息。 还是以“繁简体相互转换”为例。简单在重复一遍,看过之前的可以不需要看这一步。 我们首先创建一个可调用的类库,以“繁简体相互转换”为例,当然你也可以创建 ...

小白 分钟 学会 Visual Studio 引用 打包 NuGet

10分钟学会Visual Studio将自己创建的类库打包到NuGet进行引用(net,net core,C#)

前言NuGet就是一个包(package)管理平台,确切的说是 .平台的包管理工具,它提供了一系列客户端用于生成,上传和使用包(package),以及一个用于存储所有包的中心库。对于一个现代化的开发平台,建立一种让开发者创建,分享与使用可复用代码的机制是十分必要的。这种“可复用代码”被打包后的文件通常被称作“包”(package), 对于.(包括 . Ce)平台来说这个机制的实现就是NuGet平台。NuGet的实现均为开源项目,包括了客户端工具,服务器,官方网站以及各语言的文档等。NuGet包的本质是一个 ...

10 分钟 学会 Visual Studio 自己 创建 类库 打包 NuGet 进行 引用 net net core C#

RabbitMQ从零到集群高可用(.NetCore5.0) -高可用集群构建落地

系列文章: RabbitMQ从零到集群高可用(.Ce5.0) RabbitMQ简介和六种工作模式详解 RabbitMQ从零到集群高可用(.Ce5.0) 死信队列,延时队列 RabbitMQ从零到集群高可用(.Ce5.0) 高可用集群构建落地 一、集群架构简介 当单台 RabbitMQ 服务器的处理消息的能力达到瓶颈时,此时可以通过 RabbitMQ 集群来进行扩展,从而达到提升吞吐量的目的。RabbitMQ 集群是一个或多个节点的逻辑分组,集群中的每个节点都是对等的,每个节点共享所有的用户,虚拟 ...

RabbitMQ 零到 集群 可用 NetCore5 可用 集群 构建 落地

使用 baget 搭建 nuget 私有服务

现在几乎所有语言都提供包管理工具,比如 Javript 的 npm ,Java 的 Maven ,Dart 的 pub 。. 程序当然是 NuGet 。NuGet 也出现很多年了,奇怪的是居然还有很多人不知道。 现在软件结构越来越复杂,在多个项目中往往需要共享一些库、组件等等。NuGet 为我们提供了方便的包管理功能。但是 NuGet 默认提供外网公开的服务,如果我们希望在公司内部或者自己家里进行一些库的管理,那么就需要自己来搭建 NuGet 私服。 Nuget 私服有几个工具可以搭建如官方的Nuget. ...

使用 baget 搭建 nuget 私有 服务

dotnet C# 给结构体字段赋值非线程安全

在 dot 运行时中,给引用对象进行赋值替换的时候,是线程安全的。给结构体对象赋值,如果此结构体是某个类的成员字段,那么此赋值不一定是线程安全的。是否线程安全,取决于结构体的大小,取决于此结构体能否在一次原子赋值内完成大家都知道,某个执行逻辑如果是原子逻辑,那么此逻辑是线程安全的。原子逻辑就是一个非 A 即 B 的状态的变更,绝对不会存在处于 A 和 B 中间的状态。满足于此即可称为线程安全,因为线程不会读取到中间状态。在 dot 运行时里面,特别对了引用对象,也就是类对象的赋值过程进行了优化,可以让对象 ...

dotnet C# 结构 体字段 赋值 线程 安全

iNeuOS工业互联平台,增加OPC UA驱动,同步和订阅方式读取数据

目 录 1. 概述... 1 2. 平台演示... 2 3. OPC UA应用效果... 21. 概述 最近的项目,用户需要使用OPC UA读取数据,通过设备模型(iNeuKernel)增加OPC UA驱动。 2. 平台演示 在线演示:http:www.ineuos.index.phpdemodemo30.html。 (注:自已注册用户,体验系统功能) 3. OPC UA应用效果 (1) 使用KEPServerEX 6 模拟数 ...

iNeuOS 工业 互联 平台 增加 OPC UA 驱动 同步 订阅 方式 读取数据

记一次 .NET 某机械臂智能机器人控制系统MRS CPU爆高分析

一:背景 1. 讲故事 这是6月中旬一位朋友加wx求助dump的故事,他的程序 cpu爆高➕UI卡死,问如何解决,截图如下:在拿到这个dump后,我发现这是一个关于机械臂的MRS程序,哈哈,在机械臂这种智能机器人领域居然还有 . 的用武之地,有点超出我的认知哈,不知道把员工当兄弟的大强子仓库里可有 . 控制的几台机械臂 😄😄😄。 关于界面卡死的问题我这里就不讨论了,只讨论这个cpu爆高的问题如何解决,毕竟追这个系列的朋友都被前面那些各种 内存泄漏,内存爆涨 弄倦了,换个口味也挺好。 二: Windb ...

一次 NET 机械 智能 机器人 控制系统 MRS CPU 爆高 分析

C#多线程开发-线程池03

你好,我是阿辉。 前面2篇文章介绍了线程的基础知识和线程同步,下面我们来一起认识学习下,线程池的使用。 线程池 创建线程是昂贵的操作,所以为每个短暂的异步操作创建线程会产生显著的开销。一般情况下,都会使用池,也就是线程池进行管理。线程池可以成功地适应于任何需要大量短暂的开销大的资源。事先分配一定的资源,将这些资源放入到资源池中。每次需要新的资源,只需从池中获取一个,不需要创建新的,当该资源不再被使用时,就将其返回到池中。在.中,线程池可以使用ThreadPool类型,受.通用语言运行时(CLR)管理。每个 ...

C# 多线程 开发 线程 03

ASP.NET管道处理模型(二)

从上一章中我们知道Http的任何一个请求最终一定是由某一个具体的HttpHler来处理的,不管是成功还是失败。 而具体是由哪一个HttpHler来处理,则是由我们的配置文件来指定映射关系:后缀名与处理程序的关系(IHttpHlerIHttpHlerFacty) 。 但是我们都知道在MVC中访问时并没有使用什么后缀,而是使用路由去匹配,那这又是怎么回事呢?接下来我们就来谈谈这件事。 首先我们来看下MVC中到底是由哪个HttpHler来处理的: Home 控制器:public class HomeContro ...

ASP NET 管道 处理 模型

第八章 Net 5.0 快速开发框架 YC.Boilerplate --全局注入设计

在线文档:http:doc.ycl.com#README 在线演示地址:http:yc.ycl.com#login 源码github:https:github.comlinbin524yc.boilerplate 源码gitee:https:gitee.comlinxuanmingyc.boilerplate 视频教程:元磁之力框架开源初心和框架设计介绍(上): https:www.bilibili.comvideoBV1VM4y1G7hC 元磁之力框架开源初心和框架设计介绍(下): https:www. ...

第八章 Net 5.0 快速 开发 框架 YC Boilerplate 全局 注入 设计