C#开源架构分析
文章平均质量分 83
主要讲解各类项目和架构
余额抵扣
助学金抵扣
还需支付
¥159.90
¥299.90
购买须知?
本专栏为图文内容,最终完结不会低于15篇文章。
订阅专栏,享有专栏所有文章阅读权限。
本专栏为虚拟商品,基于网络商品和虚拟商品的性质和特征,专栏一经购买无正当理由不予退款,不支持升级,敬请谅解。
A_nanda
夜临门 路难行 手提孤灯 晓烛之明 且行且珍惜
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
一个简单实用的 WinForm 通用开发框架
WinformDevFramework 是一个开源、简单实用的 WinForm 通用开发框架,旨在简化WinForm应用程序开发的开源项目。它内置了一套完整的权限架构,涵盖了菜单、角色、用户、字典、日志、代码生成等一系列系统常规模块,旨在帮助开发者避免在权限管理、页面布局等基础功能上的重复劳动,从而更专注于业务逻辑的实现。原创 2025-07-22 15:18:27 · 307 阅读 · 0 评论 -
基于 WinForm 与虹软实现人脸识别功能:从理论到实践
虹软技术有限公司,作为在计算机视觉领域的佼佼者,开发了领先的虹软人脸识别SDK,广泛应用于安防、金融、智能终端等行业。信息反馈区:使用 Label 控件,当人脸检测到结果、比对成功与否等操作完成后,在此区域向用户输出文本信息,告知操作状态与结果,如“检测到人脸,特征提取成功”、“人脸比对不匹配”等。功能按钮:如“打开摄像头”、“人脸检测”、“特征提取”、“人脸比对”、“关闭程序”等,通过 Button 控件创建,合理布局在界面下方或侧边,按钮文字简明扼要提示功能。原创 2025-07-18 20:21:26 · 168 阅读 · 0 评论 -
ASP.NET Core 中快速读取配置的最佳实践
实现在Program.cs全职写分享不易,如果您觉得我的文章对您有帮助的话;强烈建议您打赏一元,我买瓶水喝;原创 2025-06-13 10:54:33 · 179 阅读 · 0 评论 -
人工智能AI
AI 使我们能够生成可以改进卫生保健的出色软件,让人能够克服生理上的不便,改进智能基础结构,创造令人惊叹的娱乐体验,甚至拯救地球!简而言之,AI 就是一种模仿人类行为和能力的软件。机器学习- 它通常是 AI 系统的基础,也是我们“教”计算机模型进行预测并根据数据得出结论的方式。计算机视觉 - 通过相机、视频和图像直观地解释世界的 AI 功能。自然语言处理 - 计算机理解书面或口头语言并作出相应反应的 AI 功能。文档智能 - 与管理、处理和使用表单及文档中的大量数据有关的 AI 功能。原创 2025-06-11 21:15:33 · 282 阅读 · 0 评论 -
使用 ML.NET Model Builder 训练机器学习模型进行预测性维护
你就职于一家制造公司,该公司在其运营中会使用工业设备。其中一台设备发生故障时,就会导致公司损失时间和资金。这就是务必对这些设备进行维护的原因。机器学习是一种使用数学和统计学来识别数据中的模式而无需显式编程的技术。Model Builder 是一种用于通过使用 ML.NET 训练和部署自定义机器学习模型的图形化 Visual Studio 扩展。例如,假设你要预测房屋的价格。如果单纯使用一种特征(如房屋面积,以平方英尺为单位)来估算房价,你可能会编写一种启发式算法,将较大的房屋与较高的价格联系起来。原创 2025-06-10 15:19:46 · 783 阅读 · 0 评论 -
在 Azure 机器学习中注册 MLflow 模型
训练后,需要部署机器学习模型,以便将模型与应用程序集成。在 Azure 机器学习中,将模型注册到MLflow时,可以轻松地将模型部署到批处理或联机终结点。假设你是一位数据科学家,为一家公司工作,该公司为医疗保健从业者创建一个应用程序,以帮助诊断患者的糖尿病。从业者输入患者的医疗信息,并期望应用程序做出回应,表明患者是否可能患有糖尿病。你期望定期重新训练预测糖尿病的模型。每当具有更多训练数据时,你都希望重新训练模型以生成性能更好的模型。每次重新训练模型时,都要更新部署到终结点并与应用程序集成的模型。原创 2025-06-11 09:47:42 · 868 阅读 · 0 评论 -
c# Autorest解析
3.要确认您使用的是 AutoRest V3,而不是旧版本,请运行 ,并确认您的核心版本为 3.0 及更高版本。如果您导入在生成时指定的命名空间(在 flag 下),则可以使用客户端。对于此示例, 假设命名空间是 ,您的客户端是。然后,如果您导入命名空间,则可以访问客户端。最后,您可以在 swagger 中定义客户端参数,因此这些参数也将在。类型的参数,您可以在其中传入 OAuth 令牌。模式下生成客户端时,我们有 、 和 的默认值。有关更多信息,请运行。原创 2025-06-09 09:18:19 · 298 阅读 · 0 评论 -
c#获取使用串口信息
获取串口号有多种方法,下面是几种不同的实现方法:using System.IO.Ports;原创 2025-03-18 14:44:51 · 863 阅读 · 0 评论 -
c#中使用时间戳转换器
在C#中,时间戳转换器通常用于将时间戳(通常是一个表示自某一特定时间点(如1970年1月1日UTC)以来的毫秒数的长整型值)转换为DateTime对象,或者将DateTime对象转换回时间戳。原创 2025-03-10 11:40:40 · 690 阅读 · 0 评论 -
优化 EF Core 和 LINQ 以实现高性能应用程序
实体框架核心(Entity Framework Core,简称 EF Core)是一款强大的对象关系映射(ORM)工具,它弥合了面向对象编程与关系型数据库之间的差距,而 LINQ 在.NET 中提供了强大的查询语法。二者结合起来简化了与数据库的交互操作,但一些不经意的使用方式可能会导致性能瓶颈以及可扩展性问题。本文将深入探讨针对 EF Core 和 LINQ 的有效优化技巧,展示好与不好的代码示例,讨论相关优势,并着重介绍那些有助于提升性能和可扩展性的特性。原创 2025-02-28 23:12:03 · 504 阅读 · 0 评论 -
DotnetSpider实现网络爬虫
通过使用DotnetSpider框架或HtmlAgilityPack库,.NET开发者可以快速实现网页数据的抓取。这些工具不仅提高了开发效率,而且提供了强大的功能来处理复杂的网页数据抓取需求。在进行网页数据抓取时,请确保遵守相关网站的爬虫政策和法律法规,合理合法地使用爬虫技术。DotnetSpider是一个开源的、轻量、灵活、高性能、跨平台的分布式网络爬虫框架,适用于.NET平台。创建一个数据模型来表示你想要抓取的数据。首先,你需要在你的.NET项目中安装DotnetSpider NuGet包。原创 2024-12-30 13:45:49 · 1167 阅读 · 0 评论 -
C#中通过Mapster实现轻量级高效对象映射器
当谈到 C# 中的对象关系映射时,许多人会立即想到 AutoMapper。事实上,AutoMapper 是一个出色的对象映射库。但是,今天我想分享另一个我个人认为更轻量级、更有用的库:Mapster。虽然它的受欢迎程度可能不如 AutoMapper 高,但它的力量是不可否认的。原创 2024-12-30 11:53:01 · 600 阅读 · 0 评论 -
c#跨进程通讯
进程间通讯是指在操作系统中,不同进程之间进行数据和信息进行交换的机制。在C#中,进程间通信可以通过多种方式实现,包括文件共享、命名管道、套接字、消息队列、远程过程调用(RPC)等。消息队列通常是独立于进程的,可以在不同的机器上运行。管道是一种半双工的通信机制,可以在同一台机器上的两个进程之间传输数据。管道分为匿名管道和命名管道。匿名管道通常用于父子进程之间的通信,而命名管道可以在不相关的进程之间进行通信。共享内存允许两个或多个进程访问同一块内存区域,这是最快的IPC形式,因为数据不需要在进程之间复制。原创 2024-09-26 09:14:22 · 1004 阅读 · 0 评论 -
MVVM开发框架
在C# WPF开发中,MVVM(Model-View-ViewModel)是一种流行的设计模式,它通过分离用户界面(View)和业务逻辑(ViewModel)来提高应用程序的可维护性和可测试性。以下是一些最受欢迎的MVVM框架,以及它们的代码实例、优缺点和使用场景。原创 2024-09-18 10:22:44 · 392 阅读 · 0 评论 -
winform开发中如何签入3D模型
要加载3D模型,你可以使用SharpGL的Model类,或者集成其他的3D建模库,如3ds Max的SDK或者Blender的Python API。在WinForms开发中,要签入3D模型,你可以使用第三方库,如OpenGL或者SharpGL。以下是一个基本的例子,展示如何在WinForms应用程序中使用SharpGL来签入一个3D模型。这只是一个基本的框架,实际的3D模型加载和渲染需要更复杂的代码。如果你需要加载复杂的3D模型,可能还需要考虑物理学(如使用Bullet物理库)、动画、纹理等方面的处理。原创 2024-09-24 13:57:40 · 753 阅读 · 0 评论 -
ASP.NET Core 中的 CRUD 操作
我们的披萨服务支持对披萨列表执行 CRUD 操作。这些操作是通过 HTTP 谓词执行的,它们通过 ASP.NET Core 属性进行映射。正如你所了解的,HTTPGET谓词用于从服务检索一个或多个项。此类操作使用[HttpGet]属性进行批注。GET你已经了解了GET操作的工作原理。让我们来详细了解一下POSTPUT和DELETE操作。原创 2024-09-14 17:34:00 · 553 阅读 · 0 评论 -
应用程序的复原能力
复原能力是指从暂时性故障中恢复的能力。应用的恢复策略会恢复正常功能且将对用户的影响降到最低。云环境中可能会发生故障,应用应以尽可能减少停机时间和数据丢失的方式做出响应。理想情况下,你的应用可以在用户根本就觉察不到问题的情况下正常完成故障的处理。由于微服务环境可能不稳定,因此在设计应用时要使其能够预期并处理部分故障。部分故障的示例可能包括代码异常、网络中断、服务器进程无响应或硬件故障。即使是计划内的活动(例如将容器移到 Kubernetes 群集中的其他节点)也可能会导致暂时性故障。原创 2024-09-14 09:27:06 · 703 阅读 · 0 评论 -
CAP (C# Distributed Application Framework)
当 CAP 启动时,会使用当前程序集名称作为默认组名,如果多个同组订阅者订阅同一个 topic 名,则只有一个订阅者可以接收到消息。然后,消息队列上的订阅将是类上定义的主题和方法上定义的主题的组合。它与消息队列中的广播模式相同,用于在多个不同的微服务实例之间处理相同的消息。CAP 是一个基于 .Net 标准的库,是处理分布式事务的解决方案,具有 EventBus 的功能,轻量级、易用、高效。作为节点发现,在实现网关代理功能的同时,您还可以轻松查看节点或其他节点数据,就像您正在访问本地资源一样。原创 2024-09-09 10:30:21 · 849 阅读 · 0 评论 -
TulingMember进销存系统
使用.net6,基于 Furion +viewui开发的一套极简的进销存管理系统。原创 2024-09-06 09:20:04 · 515 阅读 · 0 评论 -
.net maui界面动态添加元素(二)
Entry x:Name="useCode" Text="{Binding Barcode}" Placeholder="请输入设备编号" WidthRequest= "200" HorizontalOptions="Start" Grid.Row="2" Grid.Column="1" TextChanged ="barcode_TextChanged"/><TextCell TextColor="#161617" Text="1.检查电源"></TextCell>Text="点检明细:"原创 2024-08-22 15:43:08 · 435 阅读 · 0 评论 -
.net maui安卓开发中使用明文传输(一)
背景:最近在做一个pad上的项目,目的是执行每日点检功能(就是检查设备的各项保养指标);前期用HBuilder做了一个,但是现场的触摸屏选用的是TouchPie 安卓版本是6.0版本,上次开发的软件可以在安卓7.0上完美兼容,但由于触摸屏安卓版本太低不能兼容;询问厂商才知道这款触摸屏主板是rk3288,安卓版本不能兼容;因此想升级安卓版本是不可能的。因此用.net maui重新开发了个每日点检的小功能,以兼容低版本安卓设备;原创 2024-08-21 16:54:13 · 415 阅读 · 0 评论 -
uni-app可替换radio-group的控件uni-segmented-control(十九)
选项卡1的内容</text></view><view v-if="current === 1"><text class="content-text">选项卡2的内容</text></view><view v-if="current === 2"><text class="content-text">选项卡3的内容原创 2024-08-06 11:08:05 · 463 阅读 · 0 评论 -
uni-app步骤条steps源码解析(十八)
例如:网上购买一个商品需要先在网上下单-->当地物流人员取件-->中间物流转送--->目的地物流接收--->配送到买家手中;* @property {Array} options 数据源,格式为:[{title:'xxx',desc:'xxx'},{title:'xxx',desc:'xxx'}]activeColor: 选中状态的颜色 options: 数据源,格式为:[{title:'xxx',desc:'xxx'},{title:'xxx',desc:'xxx'}]原创 2024-08-06 09:33:50 · 873 阅读 · 0 评论 -
uni-app关于跨域问题(十七)
打印设备编号:设备信息原创 2024-08-05 10:23:03 · 640 阅读 · 0 评论 -
关于缓存的一些心得
Cache penetration(缓存穿透) :缓存穿透是指大量请求查询系统中不存在的数据如通过不存在的 UID 访问用户,既然这些数据在系统中不存在,那么肯定在Redis缓存中也不存在这批数据,这样导致这些请求都会穿透到DB,导致系统崩溃。有些同学可能就会问了,既然系统中都没这些数据,为什么还会存在这样的请求了?别忘了,这个世界上还有一群计算机破坏分子,他们可能基于各种目的,伪造这样的请求去攻击你的系统。原创 2024-08-02 11:22:18 · 297 阅读 · 0 评论 -
推荐一款处理TCP数据的架构--EasyTcp4Net
EasyTcp4Net是一个基于c# Pipe,ReadonlySequence的高性能Tcp通信库,旨在提供稳定,高效,可靠的tcp通讯服务。原创 2024-07-17 11:48:52 · 1437 阅读 · 0 评论 -
C#实现自定义标签的设计和打印
说明:第一行放的是带有公司log的图片,用的控件是picture;//默认打印机始终出现在列表的第一项。// 若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消注释以下行。设计标签:选用的是Fastreport自带的,可拆包忌用的标签设计器;/// ResourceService 的摘要说明。原创 2024-07-12 11:49:41 · 931 阅读 · 0 评论 -
UNI_App平台调试指南 debug(十五)
操作步骤:在 HBuilderX 编辑器中对目标行的行号处点右键,在右键菜单中选择“同步断点到调试器”,然后调试控制台会自动打开对应的代码并在指定行处标记断点。(图中指示 2)下找到需要调试的页面,单击打开 ,在右侧可以看到我们需要调试的内容(图中指示 3)。在需要调试的代码行号的位置,点击打上断点(图中指示 4)。的调试还提供一个便利的功能,可直接在编辑器中打断点,断点会自动同步到调试工具中。之后,在设备上进行操作,进入断点位置,可以方便我们跟踪调试代码。,项目启动后,在下方的控制台选择。原创 2024-07-11 15:17:56 · 1701 阅读 · 0 评论 -
一款简单的验证器Valit
验证规则Valit 是 .NET Core 的验证。代码周围不再有 if 语句。改写漂亮干净!原创 2024-07-01 10:51:39 · 615 阅读 · 0 评论 -
c#上位机与PLC通讯心跳的实现方法
在上位机与PLC的通信中,心跳机制类似于人体的心跳,是系统保持正常运行的关键指标之一。但是在实际应用中,我们写上位机时很多时候是不需要这么做的,因为大部分情况下,上位机本身就是实时通信的,也就是说它会不断地给PLC发送请求指令,因此上位机是很容易通过响应的报文来知道连接是否正常,因为心跳的本质仍然是数据交互。3、PLC心跳程序编写:在PLC的程序中,需要编写相应的逻辑来生成和发送心跳信号,如果需要检测,可以采用接通延时定时器,检测值的变化,如果在规定的时间内未收到心跳信号,系统应该及时发出警告或采取措施。原创 2024-06-28 10:43:14 · 1459 阅读 · 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 · 969 阅读 · 0 评论 -
uni-app数据和缓存(十三)
将 data 存储在本地缓存中指定的 key 中,会覆盖掉原来该 key 对应的内容,这是一个同步接口。将数据存储在本地缓存中指定的 key 中,会覆盖掉原来该 key 对应的内容,这是一个异步接口。从本地缓存中异步获取指定 key 对应的内容。从本地缓存中同步获取指定 key 对应的内容。异步获取当前 storage 的相关信息。同步获取当前 storage 的相关信息。从本地缓存中异步移除指定 key。从本地缓存中同步移除指定 key。同步清理本地数据缓存。原创 2024-06-26 17:38:00 · 455 阅读 · 0 评论 -
uni-app页面之间参数传递(十二)
保留当前页面,跳转到应用内的某个页面,使用。原创 2024-06-26 17:25:07 · 797 阅读 · 0 评论 -
uni-app滑块视图容器(十一)
注意滑动切换和滚动的区别,滑动切换是一屏一屏的切换。swiper下的每个swiper-item是一个滑动切换区域,不能停留在2个滑动区域之间。组件中,宽高自动设置为100%。注意:宽高100%是相对于其父组件,不是相对于子组件,不能被子组件自动撑开。一般用于左右滑动或上下滑动,比如banner轮播图。原创 2024-06-26 11:25:57 · 729 阅读 · 0 评论 -
uni-app实现下拉刷新/停止刷新(十)
开始下拉刷新,调用后触发下拉刷新动画,效果与用户手动下拉刷新一致。在 js 中定义 onPullDownRefresh 处理函数(),监听该页面用户下拉刷新事件。停止当前页面下拉刷新。原创 2024-06-26 08:52:31 · 1213 阅读 · 0 评论 -
一款轻量级的WPF UI库---Adonis UI
Adonis UI适用于 WPF 应用程序的轻型 UI 工具包,提供经典但增强的 Windows 视觉对象。原创 2024-06-24 11:32:39 · 661 阅读 · 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 · 422 阅读 · 0 评论 -
FTP数据传输响应问题
大部分提供的是本地存储,讲主程序存储到一个文件,然后根据主程序内运行的子程序,找到子程序运行文件,获取实时的加工参数。表面上很简单,大不了把对应设备的运行程序文件夹做个共享,在获取文件分布解析。//ftp下载文件时超时处理,继续重新处理。看着没有任何问题,但是在我获取主程序后,再次获取子程序时就会发现,由于远程设备一直在运行,大部分显示文件被占用。logger.Info("ftp文件:"+ftpfileparh);//应对ftp下载文件超时处理代码,待测试。/// 从ftp上下载文件到本地。原创 2024-06-21 13:54:00 · 132 阅读 · 0 评论 -
抓取另一个应用程序(app)内的测试数据方法
在Windows操作系统中,利用C#来抓取另一个应用程序(app)内的数据通常涉及到一些高级技术,如Windows API调用、内存读取、UI自动化等。这些技术都有其特定的用途和限制,而且可能涉及到法律和道德问题。在尝试这样的操作之前,请确保你了解相关的法律和隐私政策,并确保你有合法的理由和权限去获取其他应用程序的数据。原创 2024-06-19 15:28:17 · 512 阅读 · 0 评论 -
推荐一款WPF绘图插件OxyPlot
开始PlotViewPlotModelPlotView例子您可以在代码存储库的文件夹中找到示例。NuGet 包最新的预发布包由 AppVeyor CI 推送到。若要安装这些包,请设置 myget.org 包源并记住“-pre”标志。OxyPlot 是 .NET 的跨平台绘图库。该代码在 MIT 许可证下获得许可。这是一个非常宽松且对企业友好的许可证。参见和了解更多详情。核心库是一个,可以在不同的平台上使用。原创 2024-06-12 16:00:42 · 2559 阅读 · 2 评论
分享