- 博客(1981)
- 资源 (22)
- 问答 (2)
- 收藏
- 关注
原创 【NetCore】Net Core Api 中 HttpClientFactory 的设计与最佳实践
在 .NET Core 中,HttpClientFactory 是一个用于高效管理 HttpClient 实例的工具,它通过避免多个 HttpClient 实例重复创建的潜在问题,提高了性能并确保了更好的生命周期管理。HttpClientFactory 也与依赖注入(DI)机制紧密集成,简化了对外部 HTTP 服务的调用。下面将详细讨论 HttpClientFactory 的设计理念、最佳实践和如何使用它来提高你的应用程序的性能和可维护性。
2025-11-17 08:52:01
33
转载 【NET】.NET基础篇-6.启动流程之Environment 马仔也是黑社会
Environment在启动流程中的使用比较简单,算是团伙里的小马仔。在实际生产中通过其他手段,甚至不做配置也可以保证程序运行–至少我做过的项目中很少有配置builder.Environment。但可是但,马仔也是黑社会,结局时突然杀出来捅死老大,改变剧情走向的比比皆是,问题是这小弟你平时得教得好,用得顺。天天拎着个刀片在各个码头晃荡,其实有他没他都可以,你嫌他烦说他两句,他歪着头斜着眼,用手把烟屁股从嘴里揪出来,晃荡着肩膀跟你说“老大让我来的”。就是个-臭-配置运行环境的。2.3 两个获取文件的方法。
2025-11-04 14:44:05
44
转载 【NET】.NET基础篇-5.启动流程之Configuration
本文介绍了.NET中的Configuration配置系统,重点解析了ConfigurationManager的核心作用及使用方式。Configuration作为统一的配置管理工具,支持从多种数据源(如JSON文件、环境变量、命令行参数等)读取配置,并通过IConfiguration接口提供访问。文章详细阐述了多环境配置的加载顺序和优先级,包括默认配置源(appsettings.json、环境变量等)和自定义配置源的实现方法。通过示例代码展示了如何添加JSON配置、用户机密、环境变量等不同配置源,并介绍了自定
2025-10-30 08:27:15
56
转载 【NET】.NET基础篇-4.启动流程之WebApplicationBuilder 梦入神机
如果你还记得,那么你就会记得,上篇文章提到的启动流程中的1个对象5个成员和5个成员的4个步骤;
2025-10-29 17:05:22
46
转载 【NET】.NET基础篇-3.NET的工作流程
本文以框架记忆法拆解.NET核心流程,分为启动和响应两大阶段。启动流程围绕WebApplicationBuilder对象展开,包含配置、服务、环境、日志和主机5个成员,通过初始化、实例化、装配和配置中间件4个步骤完成。响应流程由Kestrel服务器主导,循环监听请求并创建处理管道,包括端口监听、请求解析、中间件处理和响应生成等步骤。全文采用由外而内的层次化拆解方式,将.NET核心机制简化为清晰的框架结构,便于系统化理解和记忆。
2025-10-28 14:02:20
37
转载 【NET】.NET基础篇- 2. .NET编年史:从闭源老六到跨平台双花红棍
.NET: 犹如巡行和汇演,你眼光只接触我侧面。开篇引言对于许多开发者而言,.NET Framework、.NET Core 和 .NET 这几个名词就像一团迷雾。它们是什么关系?为何会有这样的演变?听着像哥仨,其实就是同一个人戴了三顶假发:最早的那顶叫Framework,只混Windows堂口,趁着Win系统家大业大,霸道得很;后来剃头跑路,整了顶Core,跨平台混码头;现在干脆不戴了,直接光头叫.NET,见谁都说‘我开源的,给根烟?
2025-10-27 14:50:50
54
转载 【NET】.NET基础篇- 1. CLR
CLR是.NET的核心运行时环境,负责代码编译、内存管理、线程调度等核心功能。它采用托管堆和栈管理内存,堆存放引用类型并由垃圾回收器(GC)管理,栈存放值类型且自动维护。CLR通过分代策略优化GC性能,将对象分为0/1/2三代,并区分工作站和服务器两种GC模式。此外,CLR还处理装箱拆箱、异常处理、安全验证等任务,使开发者能专注于业务逻辑而无需操心底层细节。
2025-10-22 16:23:44
55
原创 【NetCore】.NET Core 面试必杀技:IoC与DI从入门到精通,字字深度解析
摘要: 本文深入解析了.NET Core中的IOC(控制反转)与DI(依赖注入)技术。首先从概念层面区分了IOC(设计原则)和DI(实现方式),然后详细介绍了.NET Core内置DI容器的实现机制,包括服务注册的三种方式(Singleton、Scoped、Transient)及其适用场景。文章特别强调了生命周期管理的重要性,通过代码示例展示了正确使用方法,并警示了常见的误用情况。最后探讨了DI在降低耦合度、提高可测试性等方面的优势,为.NET Core开发者提供了全面的技术指导。 (150字)
2025-10-11 11:36:41
69
原创 【C#】面试官最爱问的 C# 细节:ref、out、in 到底有啥区别?
摘要:C#中的ref、out和in关键字用于按引用传递参数,实现方法与调用方共享内存。ref允许方法读写已初始化的变量,实现双向修改;out专为输出设计,方法必须赋值给未初始化的变量;in则提供只读引用,适合传递大型结构体以提升性能。三者各有优缺点:ref灵活但易引发副作用,out支持多返回值但增加复杂度,in高效安全但对小型数据无意义。使用时应根据需求选择,避免滥用。
2025-09-30 08:28:12
475
原创 【YiFeiWebApi】YiFeiWebApi接口公测说明文档
YiFeiWebApi接口公测开放,提供X-API-License和X-API-CompanyId授权参数。本文详细介绍了使用ApiPost工具进行接口测试的步骤:包括下载软件、新建目录、配置Header参数(授权密钥和公司编号)、创建HTTP接口(POST请求,JSON格式)、发送请求及问题排查。同时提供了JavaScript请求Demo和ApiPost项目文档链接,方便开发者快速接入和使用该API服务。
2025-09-29 13:09:44
572
原创 【NetCode】突破.NET Core高级面试:15个架构与底层原理精粹(附代码解析)
摘要: .NET Core高级面试核心问题解析 本文精选15个.NET Core高级面试问题,涵盖框架架构、请求管道、依赖注入、托管服务、中间件等核心机制。重点包括: .NET Core跨平台模块化设计 依赖注入的三种生命周期(瞬时/作用域/单例) 托管服务实现后台任务 自定义中间件与异常处理 EF Core关系配置与JWT认证实现 内存管理优化与API版本控制 这些问题考察对框架底层原理的理解,区分中级与高级开发者的关键能力。掌握技术实现细节并能清晰阐述原理,是高级岗位的核心竞争力。 (字数:147)
2025-09-27 20:01:13
217
原创 【C#】.NET开发中30秒判断该用 IEnumerable 还是 IQueryable
摘要: 在 .NET 开发中,IEnumerable 和 IQueryable 是 LINQ 中两个关键接口,但性能差异显著: IEnumerable:适用于内存数据(如 List、数组),先将所有数据加载到本地再筛选,适合小数据集。 IQueryable:专为远程数据源(如数据库)设计,通过表达式树将 LINQ 转换为 SQL 查询,仅返回所需数据,大幅提升大数据场景性能。 核心区别: 执行位置:IEnumerable 在内存中过滤,IQueryable 在数据库端过滤。 性能:大数据时,IQueryab
2025-09-27 19:47:04
134
原创 [C#].NET Core-Worker Services
.NET Core 3.0+引入了Worker Services项目模板,可用于创建长时间运行的后台服务。文章演示了在VS2022+.NET 8.0环境下创建Worker Service的过程,包含Program和Worker两个核心类,Worker继承自BackgroundService实现定时任务。随后介绍了如何通过添加Microsoft.Extensions.Hosting.WindowsServices包将服务部署为Windows服务,包括发布项目、使用sc.exe命令创建/启停服务等步骤。该模板简
2025-09-24 21:14:10
71
原创 【Dev】Visual Studio 工具栏不显示 DevExpress 组件解决办法
在vs工具箱列表中右键新建选项卡,选项卡右键–选择项···-打开选择工具箱项-.NET Framework 组件,勾选需要的Dev组件 确定加载,如下图。找到Dev安装目录 下的ToolboxCreator.exe所在的文件夹 打开cmd。找到DevExpress安装路径下的Bin\Framework找到图下dll。在vs工具箱列表中右键新建选项卡,将dll直接拖到vs工具箱中。Dev组件版本与VS版本兼容问题导致无法正常加载显示。
2025-09-21 05:04:44
269
原创 【WebApi】什么情况开启&如何开启缓存
缓存可以作为一个缓冲区,将第一个请求的结果缓存起来,在缓存有效期内,后续的请求可以直接获取缓存结果,从而保护后端资源。缓存的数据在一段时间内是有效的,在这期间所有相同的请求都可以直接使用缓存结果,无需再次处理。某些请求需要执行复杂的计算、查询庞大的数据库或者调用外部缓慢的API,这些操作会大量消耗CPU、数据库连接等宝贵资源。如果业务上可以接受用户看到的数据不是绝对最新的(有几秒或几分钟的延迟),那么缓存就非常有用。· 商品详情页:对于销量不高、不参与秒杀活动的商品,其信息(如描述、规格)不会频繁变动。
2025-09-07 22:23:55
252
原创 【JavaScript】 JS中URL插值拼接字符串
JavaScript不支持C#的$"{变量}"字符串插值语法。在JS中应使用ES6模板字符串(反引号和${})拼接字符串,如${baseUrl}/api?...company=${company}。也可使用传统拼接或URLSearchParams处理URL参数。主要区别在于:C#用$""和{变量},JS用反引号和${变量}。前端框架中可能看到类似语法,但纯JS必须使用模板字符串。
2025-09-04 16:26:07
181
原创 【Layui】Layui Table 底部合计栏实现方案
本文介绍了Layui Table底部合计栏的实现方案。通过使用Layui Table组件,在表格渲染完成后计算数值列的总和,并将合计行插入到表格底部。方案实现了以下功能: 初始化表格时开启合计行功能 计算当前页数据的数值列总和 动态添加合计行到表格底部 监听分页和数据排序事件,重新计算合计值 代码示例展示了完整的实现过程,包括表格初始化、合计行计算、事件监听等关键步骤,适用于需要展示数据汇总统计的场景。
2025-09-03 13:32:23
198
原创 【MES】工业4.0智能制造数字化工厂(数字车间、MES、ERP)解决方案:智能工厂体系架构、系统集成以及智能设计、生产、管理、仓储物流等
此外,还介绍了智能工厂实施的具体策略和步骤,包括总体规划、分步实施、基础信息梳理、业务主线实施等,并详细介绍了ERP协同门户、条码体系建设、数字仓储、生产计划、MES生产流程、设备联网、设备管理、质量管理、追溯管理、移动工厂管理、可视化产销、智能一卡通、智能监控等多个系统实施模块的功能和特点,旨在帮助企业实现智能化、高效化、透明化的生产管理,提升企业的竞争力和市场响应能力。功能包括设备履历、保养维修体系、备件管理、故障预警、异常申请、设备点检、运行状态监控、OEE和稼动分析、员工作业时效管理等。
2025-08-27 13:06:53
926
原创 【Layui】调整 Layui 整体样式大小的方法
本文介绍了4种调整Layui默认样式偏大的方法:1)使用HTML缩放(最简单);2)修改CSS变量(推荐);3)通过Less/Sass重新编译(最灵活);4)针对特定组件单独调整。文章提供了每种方法的具体代码实现,并提醒调整后需注意布局间距和部分固定尺寸组件的处理。建议根据项目需求选择合适方法,其中CSS变量覆盖是最简单有效的解决方案。
2025-08-08 14:32:04
1560
原创 【易飞】核价单默认含税
前提:你要系统允许选择标准字段(默认不允许),个案允许哈。触发器在新增或修改,未勾选含税不允许保存。业务部门在做核价单时,会遗忘勾选含税。一、利用信息传递方式解决。
2025-08-07 11:10:05
1140
原创 【C#】2025年:是时候重新认识System.Text.Json了
曾几何时,在.NET的世界里,Newtonsoft.Json如同一位德高望重的王者,无人不晓。直到有一天,一位名叫System.Text.Json(后文简称STJ)的新贵悄然登场。它出身名门(.NET官方),身怀绝技(号称性能超群),本应是明日之星,却被无数开发者贴上了“坑王”、“难用”、“反人类”的标签。无数个深夜,开发者们为了解决一个看似简单的JSON序列化问题,从STJ切换回NSJ,嘴里念叨着:“STJ,劝退了。
2025-07-30 16:03:35
295
原创 【英语】300句生活英语必备口语
300句生活英语口语大全发布!涵盖日常出门、居家琐事等各类生活场景,如"I'm heading out now."和"Let's tidy up a bit."等实用表达。无论是与外国人交流,还是出国留学、旅行,这些现成句子都能让沟通更顺畅。文中配有生动图片,帮助读者轻松掌握地道英语表达。
2025-07-30 09:09:58
290
转载 【C#】埋葬这9种过时设计模式!.NET 10 + C#12 的现代化重构指南
曾几何时,某些设计模式是 .NET 优秀架构的基石。我们为 DbContext 包装仓储层,为缓存构建装饰器,精心设计线程安全的单例类。随着高级依赖注入、源生成器、Minimal API 和 C#12 新特性的到来,许多经典模式悄然过时。并非它们有错,而是 .NET 已替你处理了这些关切。EF Core 已通过 DbSet 暴露仓储逻辑,并通过 SaveChangesAsync 管理工作单元。放手依赖多年的模式或许不适——但随着 .NET 进化,这些模式常成为冗余脚手架。• 将装饰器功能迁移到中间件层。
2025-07-28 08:56:47
84
转载 【ASP.NET Core】ASP.NET Core 中的 .NET 通用主机详解
通用主机由 Microsoft.Extensions.Hosting 提供,核心职责包括:• 应用生命周期管理(启动、运行、停止)• 内建依赖注入(DI)容器支持• 配置系统(支持 JSON、环境变量、命令行等)• 内置日志记录支持• 支持后台服务(如 IHostedService)不仅服务于 ASP.NET Core,还适用于控制台程序、Windows 服务、Worker Service 等。
2025-07-22 08:56:13
136
原创 【MSSQL】如何清理SQL SERVER内存解决内存占用高的问题
摘要:本文介绍了三种释放SQL Server占用内存的方法:1)重启SQL Server服务;2)动态调整最大内存设置,先减小再恢复;3)通过定时任务自动释放内存。重点分析了SQL Server内存占用高的原因(缓存机制),并提供了详细的存储过程脚本和作业配置,通过DBCC命令清除缓存并重置内存限制来实现内存释放。建议在生产环境采用第三种方案,设置每周定时任务自动执行释放操作,避免手动干预
2025-07-10 13:33:09
1102
原创 【WPF】外部引用样式
本文介绍了如何在WPF应用中全局引入按钮样式资源。通过修改App.xaml文件,将BaseButtonStyle.xaml样式文件添加到应用程序资源字典中,实现按钮样式的全局应用。这种配置方式使得所有按钮都能自动继承该样式,无需在每个页面重复定义,提高了代码复用性和维护效率。
2025-07-02 15:10:14
386
原创 【WPF】WPF(样式)
本文介绍了WPF中Window.Resources的三种样式应用方式:1) 通过TargetType="Button"为窗体所有按钮设置通用样式;2) 使用x:Key定义特定命名样式,可单独应用于指定按钮;3) 通过BasedOn继承基础样式并覆盖特定属性。示例代码展示了如何设置背景色、边距等属性,以及样式继承与覆盖的效果,最终呈现不同按钮样式的界面展示。这些方法实现了WPF窗体中按钮样式的统一管理和灵活定制。
2025-07-02 14:42:24
504
转载 【人生】你最大的痛苦如果是上班,那说明你过得还不错
正如《人民日报》揭露的上班“真相”:“上班最大的意义,不只是那点工资,而是工作能让你有规律的生活,有见人的机会,有稳定的社交圈子。你不必热爱上班,但你得利用上班,让自己变得足够强大,哪怕某天“被裁”,也能坦然说一句:。当你还有班可上,有稳定的薪水、有社保、有方向——那种痛,其实是一种“高配的焦虑”真正厉害的人,懂得在系统里学规则,然后跳出规则,反过来利用规则。一旦脱离职场,他们马上陷入真空,不知道自己是谁,更不知道去哪。你痛苦,是因为你还有能力承受。把上班当“临时过渡”,不过度依赖上班过活,你就不会焦虑。
2025-07-02 08:18:10
345
原创 【生活】你过度的担忧和焦虑是在逃避真正的责任
这个世界并非完美,我们也并非完美,但我们会一直用行动与真心陪伴他们成长。有时候我们所谓的焦虑,毫无意义。
2025-06-30 09:10:56
596
原创 【C#】C#中的Type类详解
C#中的Type类是System命名空间的核心组件,为.NET反射系统提供基础支持。它作为抽象基类,表示各种类型声明,并提供类型元数据访问,包括属性、方法等成员信息。获取Type对象可通过typeof运算符、实例GetType方法或类型名称查找。Type类包含Name、Namespace等关键属性,以及GetMethods()等方法,支持动态类型检查、对象创建、成员调用等反射操作。在插件系统和动态编程中尤为实用,但需注意反射带来的性能开销、安全风险和维护复杂性。合理使用Type类可以增强代码灵活性,但性能敏
2025-06-23 10:15:35
1767
原创 【易飞】通过信息传递触发时机复制生成品号实现复制品号自动带出原自定义字段数据
【现状】标准程序易飞复制品号无法实现带出原品号信息自定义字段数据。【解决】利用录入用户信息传递。触发时机:复制生辰品号信息。
2025-06-09 13:43:19
235
原创 【Linq】LINQ性能优化指南:14个实用技巧提升查询效率
本文将解析14个LINQ性能优化技巧,助你构建高效查询。✅ 按需投影数据通过这14个技巧,你可以显著提升LINQ查询性能,构建更高效的.NET应用。• ToHashSet():O(n)时间复杂度,哈希机制快速去重。原理:HashSet提供O(1)时间复杂度的存在性检查。原理:Any在找到首个匹配项后立即终止,减少迭代次数。原理:ForEach直接操作集合,保留延迟求值优势。• Distinct():需创建枚举器,开销更高。优势:过滤/排序在数据库端执行,减少数据传输量。效果:禁用变更跟踪,减少内存占用。
2025-06-05 09:41:02
576
原创 【YiFeiWebApi】新增根据ERP单据性质设定自动生成单号
通常在MES厂家除了对接标准接口外,在生成单据时通常会有一个需求:根据ERP单据性质设定自动生成符合ERP规则的单号。
2025-06-04 10:34:38
631
原创 【Asp.Net】GridView、Repeater 导出Excel长数字显示成科学计数
【代码】[Asp.Net]GridView导出Excel长数字显示成科学计数。
2025-05-23 14:54:15
370
原创 【WebApi】YiFeiWebApi接口安装说明
其他为账套数据库连接配置,支持多个账套:SqlConnection前面为账套数据库名。(2)修改服务器配置文件Licence的RegistrationCode。DSCSYSSqlConnection 为公用数据库连接配置。(1)网站名称、物理路径、IP地址、端口。(1)授权工具:根据机器码生成授权码。(2)拷贝文件至服务器站点目录。
2025-05-13 15:07:43
706
原创 【C#】EF Core 10 现已支持 LeftJoin 和 RightJoin 运算符查询了!
最近发现 EF Core 10 中的新增功能引入了在 LINQ 中支持 LeftJoin 和 RightJoin 运算符查询的新功能。在 EF Core 10 之前,开发人员需要通过复杂的组合查询实现 LEFT JOIN 需要在特定配置中执行SelectMany、GroupJoin 和 DefaultIfEmpty 操作。本文咱们一起来看看在 EF Core 中使用 LeftJoin 和 RightJoin 运算符进行左右连接查询的代码简洁度。
2025-05-12 10:36:09
560
原创 【人生】感悟
若有人背叛和辜负你,请不要去怨恨他,怨恨别人伤的是自己,你只需要停止付出,生活自会给他惩罚。一定要管好自己的嘴,不要经常跟人说自己身体不好,记性差,命不行等,看似谦虚,实则自证预言,也不要经常说别人不好,说别人不好自己也好不了。2、人什么时候才会大彻大悟,当你爱错人,结错婚,生场大病,生意失败,经历生离死别和背叛时,你就会明白,什么是人生之无常。4、心情不好的时候,别为难自己,人生除了生死,其他都是小事,只要太阳每天照常升起,就没有过不去的坎。凡事都要想开点,看淡点,简单点,糊涂点。
2025-05-12 10:06:37
321
转载 【人生】想赚大钱,必是平静的狠人
做内容,第八年重新起号,屏蔽鄙夷,坚持回自己的节奏,哪怕再忙,每天抽出3小时写文章,半年收获几万读者;《人民日报》也曾说过一句话:“身处快时代,宁可慢一点,也不要走捷径,只要坚持做正确的事,时代不会辜负长期主义者。一点不顺就破防,一点波动就内耗,一点争议就上头,最后不是项目黄了,就是自己先卷死自己。能搞钱的人,最大的能力从来不是嘴皮子和执行力,而是:稳定自己的情绪,穿越自己的起伏。他们不是没情绪,而是从不让情绪上桌——情绪是最贵的成本,乱了情绪,搞钱就得交学费。不是冲动,是认定一条路,就会死磕到底。
2025-04-25 12:20:10
135
E10在线建档资料集合
2023-06-09
ERP二次开发+插件+插件制作指南和脚本使用指南
2023-06-09
E10查用SQL语句集合E10查用SQL语句集合
2023-06-09
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅