![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C#开源架构分析
文章平均质量分 85
主要讲解各类项目和架构
优惠券已抵扣
余额抵扣
还需支付
¥399.90
¥499.90
购买须知?
本专栏为图文内容,最终完结不会低于15篇文章。
订阅专栏,享有专栏所有文章阅读权限。
本专栏为虚拟商品,基于网络商品和虚拟商品的性质和特征,专栏一经购买无正当理由不予退款,不支持升级,敬请谅解。
A_nanda
夜临门 路难行 手提孤灯 晓烛之明 且行且珍惜
展开
-
推荐一款处理TCP数据的架构--EasyTcp4Net
EasyTcp4Net是一个基于c# Pipe,ReadonlySequence的高性能Tcp通信库,旨在提供稳定,高效,可靠的tcp通讯服务。原创 2024-07-17 11:48:52 · 1077 阅读 · 0 评论 -
C#实现自定义标签的设计和打印
说明:第一行放的是带有公司log的图片,用的控件是picture;//默认打印机始终出现在列表的第一项。// 若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消注释以下行。设计标签:选用的是Fastreport自带的,可拆包忌用的标签设计器;/// ResourceService 的摘要说明。原创 2024-07-12 11:49:41 · 204 阅读 · 0 评论 -
UNI_App平台调试指南 debug(十五)
操作步骤:在 HBuilderX 编辑器中对目标行的行号处点右键,在右键菜单中选择“同步断点到调试器”,然后调试控制台会自动打开对应的代码并在指定行处标记断点。(图中指示 2)下找到需要调试的页面,单击打开 ,在右侧可以看到我们需要调试的内容(图中指示 3)。在需要调试的代码行号的位置,点击打上断点(图中指示 4)。的调试还提供一个便利的功能,可直接在编辑器中打断点,断点会自动同步到调试工具中。之后,在设备上进行操作,进入断点位置,可以方便我们跟踪调试代码。,项目启动后,在下方的控制台选择。原创 2024-07-11 15:17:56 · 175 阅读 · 0 评论 -
一款简单的验证器Valit
验证规则Valit 是 .NET Core 的验证。代码周围不再有 if 语句。改写漂亮干净!原创 2024-07-01 10:51:39 · 499 阅读 · 0 评论 -
c#上位机与PLC通讯心跳的实现方法
在上位机与PLC的通信中,心跳机制类似于人体的心跳,是系统保持正常运行的关键指标之一。但是在实际应用中,我们写上位机时很多时候是不需要这么做的,因为大部分情况下,上位机本身就是实时通信的,也就是说它会不断地给PLC发送请求指令,因此上位机是很容易通过响应的报文来知道连接是否正常,因为心跳的本质仍然是数据交互。3、PLC心跳程序编写:在PLC的程序中,需要编写相应的逻辑来生成和发送心跳信号,如果需要检测,可以采用接通延时定时器,检测值的变化,如果在规定的时间内未收到心跳信号,系统应该及时发出警告或采取措施。原创 2024-06-28 10:43:14 · 407 阅读 · 0 评论 -
uni-app菜单tabbar(十四)
原生tabBar是相对固定的配置方式,可能无法满足所有场景,这就涉及到自定义tabBar。但注意除了H5端,自定义tabBar的性能体验会低于原生tabBar。App和小程序端非必要不要自定义。H5端的自定义tabBar组件:H5端不存在原生tabBar性能更高的概念,并且宽屏下常见的tabBar在顶部而不是底部,此时可以使用custom-tab-bar组件来自定义普通自定义tabBar:使用view自行绘制tabBar。如果页面是多页方式,切换tabBar将无法保持底部tabBar一直显示。原创 2024-06-28 08:46:50 · 214 阅读 · 0 评论 -
uni-app数据和缓存(十三)
将 data 存储在本地缓存中指定的 key 中,会覆盖掉原来该 key 对应的内容,这是一个同步接口。将数据存储在本地缓存中指定的 key 中,会覆盖掉原来该 key 对应的内容,这是一个异步接口。从本地缓存中异步获取指定 key 对应的内容。从本地缓存中同步获取指定 key 对应的内容。异步获取当前 storage 的相关信息。同步获取当前 storage 的相关信息。从本地缓存中异步移除指定 key。从本地缓存中同步移除指定 key。同步清理本地数据缓存。原创 2024-06-26 17:38:00 · 258 阅读 · 0 评论 -
uni-app页面之间参数传递(十二)
保留当前页面,跳转到应用内的某个页面,使用。原创 2024-06-26 17:25:07 · 546 阅读 · 0 评论 -
uni-app滑块视图容器(十一)
注意滑动切换和滚动的区别,滑动切换是一屏一屏的切换。swiper下的每个swiper-item是一个滑动切换区域,不能停留在2个滑动区域之间。组件中,宽高自动设置为100%。注意:宽高100%是相对于其父组件,不是相对于子组件,不能被子组件自动撑开。一般用于左右滑动或上下滑动,比如banner轮播图。原创 2024-06-26 11:25:57 · 369 阅读 · 0 评论 -
uni-app实现下拉刷新/停止刷新(十)
开始下拉刷新,调用后触发下拉刷新动画,效果与用户手动下拉刷新一致。在 js 中定义 onPullDownRefresh 处理函数(),监听该页面用户下拉刷新事件。停止当前页面下拉刷新。原创 2024-06-26 08:52:31 · 204 阅读 · 0 评论 -
一款轻量级的WPF UI库---Adonis UI
Adonis UI适用于 WPF 应用程序的轻型 UI 工具包,提供经典但增强的 Windows 视觉对象。原创 2024-06-24 11:32:39 · 353 阅读 · 0 评论 -
LiteDB - 一个单数据文件 .NET NoSQL 文档存储
DbRef(x => x.Customer, "customers") // 1 对 1/0 引用。.DbRef(x => x.Products, "products") // 1 对多引用。// "Produts" 和 "Customer" 来自其他集合 (而不是嵌入的文档).Include(x => x.Products) // 1 对多引用。// 每个 Order 实例都会加载 Customer/Products 引用。// 插入新的 customer 文档 (Id 是自增的)原创 2024-06-24 10:14:49 · 98 阅读 · 0 评论 -
FTP数据传输响应问题
大部分提供的是本地存储,讲主程序存储到一个文件,然后根据主程序内运行的子程序,找到子程序运行文件,获取实时的加工参数。表面上很简单,大不了把对应设备的运行程序文件夹做个共享,在获取文件分布解析。//ftp下载文件时超时处理,继续重新处理。看着没有任何问题,但是在我获取主程序后,再次获取子程序时就会发现,由于远程设备一直在运行,大部分显示文件被占用。logger.Info("ftp文件:"+ftpfileparh);//应对ftp下载文件超时处理代码,待测试。/// 从ftp上下载文件到本地。原创 2024-06-21 13:54:00 · 45 阅读 · 0 评论 -
抓取另一个应用程序(app)内的测试数据方法
在Windows操作系统中,利用C#来抓取另一个应用程序(app)内的数据通常涉及到一些高级技术,如Windows API调用、内存读取、UI自动化等。这些技术都有其特定的用途和限制,而且可能涉及到法律和道德问题。在尝试这样的操作之前,请确保你了解相关的法律和隐私政策,并确保你有合法的理由和权限去获取其他应用程序的数据。原创 2024-06-19 15:28:17 · 168 阅读 · 0 评论 -
推荐一款WPF绘图插件OxyPlot
开始PlotViewPlotModelPlotView例子您可以在代码存储库的文件夹中找到示例。NuGet 包最新的预发布包由 AppVeyor CI 推送到。若要安装这些包,请设置 myget.org 包源并记住“-pre”标志。OxyPlot 是 .NET 的跨平台绘图库。该代码在 MIT 许可证下获得许可。这是一个非常宽松且对企业友好的许可证。参见和了解更多详情。核心库是一个,可以在不同的平台上使用。原创 2024-06-12 16:00:42 · 1659 阅读 · 2 评论 -
使用 ML.NET CLI 自动进行模型训练
ML.NET CLI 是一个.NET 工具。若没有安装,打开vs ,点击新建下项目按装多个工具和功能安装位置;安装后,你为其指定一个机器学习任务和一个训练数据集,而它将生成一个 ML.NET 模型以及要运行的 C# 代码,以便在应用程序中使用该模型。如下图所示,生成高质量的 ML.NET 模型(序列化模型 .zip 文件)以及用于运行该模型/对该模型评分的示例 C# 代码非常简单。此外,还会生成用于创建/训练该模型的 C# 代码,以便可以研究和迭代用于该生成的“最佳模型”的算法和设置。原创 2024-06-11 22:07:22 · 313 阅读 · 0 评论 -
HBuilder中能否使用机器学习
例如,你可能会使用JavaScript库如TensorFlow.js来进行前端的轻量级机器学习模型开发,或者使用Python后端与HBuilder配合,通过API调用实现机器学习服务。在HBuilder项目中使用TensorFlow.js(简称TF.js)是一个很好的选择,如果你想在Web应用中集成机器学习能力,尤其是浏览器端的计算。: 首先,确保你已经安装了HBuilder(原名DCloud),然后在HBuilder的项目中,可以通过npm来安装TF.js。: 对于预测任务,你可以使用。原创 2024-06-07 15:13:45 · 172 阅读 · 0 评论 -
.NET 使用Automapper映射 Record类型
值得注意的是,由于record是不可变的,因此我们只能在创建时初始化其属性,无法在后续代码中修改属性值。因此,在映射过程中,Automapper会自动为record类型的目标对象生成一个构造函数,并根据源对象的属性值进行初始化。我已经将项目的所有Dto都是用record类型,但是record类型还是有些需要注意的点,本文将介绍如何使用Automapper将POCO映射成record的对象。安装完成后,我们可以在项目中引入Automapper的命名空间,以便在代码中使用Automapper相关的功能。原创 2024-06-04 08:44:47 · 481 阅读 · 0 评论 -
机器学习ML.NET
是用于 .NET 的跨平台开源机器学习 (ML) 框架。ML.NET 允许开发人员在其 .NET 应用程序中轻松构建、训练、部署和使用自定义模型,而无需开发机器学习模型的专业知识或使用 Python 或 R 等其他编程语言的经验。该框架提供从文件和数据库加载数据,支持数据转换,并包含许多 ML 算法。借助 ML.NET,您可以针对(如分类、预测和异常检测)训练模型。您还可以在 ML.NET 中使用 TensorFlow 和 ONNX 模型,这使得框架更具可扩展性,并扩展了支持的方案数量。原创 2024-06-04 13:53:04 · 926 阅读 · 2 评论 -
一款高性能的轻量级ORM数据映射框架——Chloe
Chloe 是一个轻量级的对象/关系映射 (ORM) 库。查询接口类似于 LINQ。可以像 LINQ 一样查询数据并执行任何操作(联接查询 |群查询 |聚合查询 |插入 |批量更新 |批量删除 |分片)。对应文档链接:适应数据库包括:SqlServer、MySql、Oracle、SQLite、PostgreSQL、The Golden Warehouse of the National People's Congress。原创 2024-05-31 09:57:30 · 320 阅读 · 0 评论 -
uni-app增加home图标,实现回到功能主页(九)
众所周知,这个会将页面推入堆栈中,结合框架可以实现后退功能;但是界面堆栈中的界面如果推入过多,想要回到主界面就显得耗时很多;因此决定在app上加一个home图标,可以从任何页面退回功能主页。众所周知pages.json是应用的功能菜单,记录各个页面的位置,粗体代码意思是增加home导航按钮,悬浮在左侧。最近在优化一个uni-app项目,项目中有许多设备需要点检,点检完成后可以继续点检;点击功能列表下子页面,子页面包含回到主页图标,点击后回到功能列表。二、对应页面增加回到公共菜单方法。原创 2024-05-28 09:26:14 · 658 阅读 · 0 评论 -
利用EAS自动生成数据模型和sql脚本
用户类是分两个分布类进行映射的,第一个从dataentity继承过来,这个可以自己对原始方法进行扩展,例如调用数据库的存储过程。刚打开的时候项目报错是因为项目中缺少项目引用的两个引用文件导致的,在成功引用后就正常;在这个应用程序中,用户可自定义实体模型和枚举模型,只要选择相应的实体或者枚举进行右击添加即可。解决方案参数设定,在解决方案的设定中可设置项目名称、通用语言,命名空间和输出位置。点击生成代码,就会弹出生成路径的提示框,我们确认没问题后就会有对应的项目文件生成。同步可生成项目的管理文件和 设计文件。原创 2024-05-25 23:22:27 · 194 阅读 · 0 评论 -
excel数据导入到数据库的方法
普通的初学者肯定会想,那我读取excel数据,一行一行的读,然后插入到数据库中进行存储,然而这样利用事务进行存储本身也没有问题;System.Console.WriteLine("编码:"+dt.Rows[i][0].ToString()+"导入失败!System.Console.WriteLine("编码:" + dt.Rows[i][0].ToString() + "导入成功!原创 2024-02-22 10:22:22 · 1592 阅读 · 0 评论 -
VBA宏指令写的方法突然不能用了
表面看着也没有问题, 利用ADODB连接数据库,执行sql,然后利用CInt统计第一列数据的值,作为去重判断的依据;但是当运行到fqty与零判断的时候,我发现fqty是个未定义的值,不能与0判断;后来查询Rst的只有在光标在Open的那行有值,此时连接状态是1;时间比较久远,我前面的哥们走后,这个软件一直在用,最近系统不知道是不是更新的缘故;MsgBox "该SN未雕刻,可以继续雕刻", 48, "雕刻查重"Else MsgBox "该SN未雕刻,可以继续雕刻", 48, "雕刻查重"原创 2024-05-23 17:13:04 · 271 阅读 · 0 评论 -
uni-app实现页面之间的跳转传参(八)
设备编码:在点击相应的会导航到相应的功能。点检明细:设备保养与点检分为日保养,周保养,年保养三个分类,操作时请注意选择相应保养类型原创 2024-05-22 14:45:55 · 240 阅读 · 0 评论 -
如何在 ASP.NET Core 中实现中间件管道
ASP.NET Core 中的中间件是指拦截 HTTP 请求和响应的组件。它位于服务器和应用程序之间,允许您处理请求、执行逻辑和生成响应。将中间件想象成 Web 服务器和应用程序之间的友好看门人。这就像俱乐部的保镖,决定谁进去,谁不进去。ASP.NET Core 中的自定义中间件使开发人员能够将定制功能直接注入请求处理管道中。通过创建和实现中间件类,可以自定义应用程序处理传入请求和传出响应的方式。下面是自定义中间件类的示例:创建自定义中间件涉及使用遵循签名的方法实现类。原创 2024-05-21 15:03:36 · 142 阅读 · 0 评论 -
uni-app将radio-group元素分列展示(七)
点检类型:</view></view>--复选框改成下拉列表--><view class="title driverdata">设备类型:原创 2024-05-17 15:12:52 · 466 阅读 · 0 评论 -
一个开源轻量级的C#代码格式化工具-CSharpier
CSharpier是一款开源、免费、轻量级的C#语言代码格式化工具。它使用Roslyn来解析你的代码,并根据其自身的规则重新格式化代码。原创 2024-05-17 11:38:23 · 130 阅读 · 0 评论 -
记录一个更新adobe软件导致加载PDF文件异常的问题
warning MSB3277: “Spire.Pdf, Version=10.4.2.0, Culture=neutral, PublicKeyToken=663f351905198cb3”与“Spire.Pdf, Version=10.4.7.0, Culture=neutral, PublicKeyToken=663f351905198cb3”之间存在冲突。最近由于项目需要,没有办法把原有的adobe正版软件进行了卸载,换了个盗版软件,结果导致我的pdf文件加载的时候出现异常。度娘了一些无用资料。原创 2024-05-16 13:17:08 · 181 阅读 · 2 评论 -
uni-app 实现下拉单选功能(六)
input class="uni-inputDr " focus placeholder="请选择设备类型" v-model="radioValue" @click="ChangeShowDataType"/>imagesrc对应值为{'/static/date/day.png','/static/date/week.png','/static/date/year.png'}但不显示,不知道是不是缺少..这个引起的,带解决后在更新。原创 2024-05-15 16:36:22 · 234 阅读 · 0 评论 -
禁止多开客户端,只能打开一个exe
背景:最近接手一款比较老的软件,是用winform开发的比较老的软件,软件虽然有些bug但勉强能用;线上操作人员在操作软件打印内外标签时喜欢打开多个客户端,一个客户端打印内标签,一个客户端打印外标签,为了生产效率;表面看来没有问题,但人员操作总有失误的时候,有的人比较细心,打印内外标签时会核对一下工单;有的恰好相反,为了追求速率基本不开,扫码前一扫就过,导致时长出现物料编码出错。因此只能限制操作人员打开多个客户端。具体代码如下:namespace 盘检扫码工具。原创 2024-05-14 16:06:26 · 76 阅读 · 0 评论 -
.NET开源、功能强大、跨平台的图表库LiveChart2
LiveCharts2 是 从LiveCharts演变而来,它修复了其前身的主要设计问题,它专注于在任何地方运行,提高了灵活性,并继承LiveCharts原有功能。原创 2024-05-13 15:57:10 · 800 阅读 · 0 评论 -
AutoBogus测试数据生成器
一个 C# 库,通过添加自动创建和填充功能来补充伪造测试数据。配置有多个级别的配置可用。GlobalFaker上述级别是分层的,并按列出的顺序排列。因此,如果为配置设置设置,则使用该值,然后使用 .Global创建AutoFaker.Configure(builder=>builderWithLocale()()()()()WithBinder()()WithSkip()();});原创 2024-05-10 15:39:34 · 46 阅读 · 0 评论 -
基于 C# 开源的 EF Core 查询计划可视化神器
EFCore.Visualizer 是 Entity Framework Core 查询计划调试器,一个开源的 EF Core 查询计划可视化工具, 您可以直接在 Visual Studio 中查看查询的查询计划,开箱即用,非常方便。目前,可视化工具支持 SQL Server 和 PostgreSQL。如何使用在 Visual Studio 的扩展工具市场中,搜索并安装 EFCore.Visualizer。安装完成后,新的调试器可视化工具会添加到 Visual Studio 中。原创 2024-05-10 12:01:43 · 228 阅读 · 0 评论 -
分布式架构的演技进过程
缓存模式:随着系统的发展,用户人数的增多,业务量的增大;我们会发现默写信息的使用量逐步攀升,如果直接在磁盘上获取数据,耗时比较常,因此这部分数据会被缓存起来,节约时间,缓存模型也就应运而生。就需要将应用和数据分开存储,避免相互抢占资源。服务器集群:当客户量暴增,单个服务器已无法满足高并发场景,那么就适用多台服务器共同分担压力,提高系统的性能。时间有限,临时有事今天的分享先写道这里,下期我将逐步分析各个框架的优缺点和适用的技术。早期应用:早期的应用比较简单,访问人数有限,大部分的开发单机就能完成。原创 2024-05-08 13:21:58 · 122 阅读 · 0 评论 -
介绍一款.NET开源架构.NET MAUI
NET 多平台应用 UI (.NET MAUI) 是一个跨平台框架,用于使用 C# 和 XAML 创建本机移动和桌面应用。使用 .NET MAUI,可从单个共享代码库开发可在 Android、iOS、macOS 和 Windows 上运行的应用。.NET MAUI 是一款开放源代码应用,是 Xamarin.Forms 的进化版,从移动场景扩展到了桌面场景,并从头重新生成了 UI 控件,以提高性能和可扩展性。原创 2024-04-30 08:50:16 · 1076 阅读 · 0 评论 -
WPF简介
布局:Border、BulletDecorator、Canvas、DockPanel、Expander、Grid、GridView、GridSplitter、GroupBox、Panel、ResizeGrip、Separator、ScrollBar、ScrollViewer、StackPanel、Thumb、ViewBox、VirtualizingStackPanel、Window、WrapPanel。(System.Windows.Controls.Control),这个类是控件的基类。原创 2024-02-01 16:36:29 · 1211 阅读 · 0 评论 -
WPF如何:创建简单绑定
通过数据绑定,可以同步两个不同对象的属性值。提供对绑定定义的高级访问,绑定将绑定目标对象(通常为 WPF 元素)和任何数据源(例如,数据库、XML 文件或包含数据的任何对象)的属性连接起来。对象的大多数属性都是依赖项属性,默认情况下,大多数依赖项属性(只读属性除外)都支持数据绑定。无论绑定的对象是什么,也无论数据源的性质如何,每个绑定都遵循下图所示的模型。每个绑定通常具有以下四个组件:绑定目标对象、目标属性、绑定源和绑定源中要使用的值的。属性,要使用的值是 Name,源对象是 Employee 对象。原创 2024-01-24 11:44:23 · 812 阅读 · 0 评论 -
WPF控制 TextBox 文本何时更新源
标签>输入名称: 如果您有一个对话框或用户可编辑的窗体,并且想要推迟源更新,直到用户完成对字段的编辑并单击“确定”,则可以将绑定的。在下面的示例中,突出显示的代码行显示。原创 2024-01-24 11:19:45 · 1070 阅读 · 0 评论 -
路由事件概述 (WPF .NET)
您可以从功能或实现的角度考虑路由事件:从功能角度来看,路由事件是一种事件类型,它可以在元素树中的多个侦听器上调用处理程序,而不仅仅是在事件源上。事件侦听器是附加和调用事件处理程序的元素。事件源是最初引发事件的元素或对象。从实现的角度来看,路由事件是在 WPF 事件系统中注册的事件,由类的实例提供支持,并由 WPF 事件系统进行处理。通常,路由事件是使用 CLR 事件“包装器”实现的,以便像在 CLR 事件一样在 XAML 和代码隐藏中启用附加处理程序。原创 2024-02-01 11:13:29 · 1087 阅读 · 0 评论