- 博客(54)
- 收藏
- 关注
原创 字符串拼接用“+”还是 StringBuilder?别再凭感觉写了
摘要:C#字符串拼接方式选择需根据场景决定。少量固定拼接直接用"+",编译器会优化;循环内或大量拼接应使用StringBuilder,避免O(n²)性能问题。StringBuilder通过可变字符数组减少内存分配,而string.Join适合集合拼接。测试显示10万次拼接时StringBuilder仅8ms,"+"方式则性能崩盘。基本原则:简单拼接用"+",循环用StringBuilder,集合用Join,格式化用插值。正确选择拼接方式对程序性能至
2026-03-20 16:48:35
294
原创 VSCode周更时代:开发者必备的3个应对策略
微软Visual Studio Code转向周更模式(1.111版起),应对AI编程工具竞争。本文提供三大应对策略:1)掌握AI代理权限分级管理(默认审批/AutoPilot等);2)管控扩展更新节奏,关闭核心扩展自动更新;3)建立兼容性评估习惯,善用版本回滚和调试快照功能。建议开发者在享受新功能的同时,通过主动管理工具链保持稳定性,如关闭自动更新、分层授权AI代理等,在快速迭代中把握主动权。
2026-03-18 23:02:52
315
原创 SQL Server安装避坑:这8个奇葩报错你遇到过几个?
摘要:SQLServer安装过程中常见8大奇葩错误及解决方案,包括.NET3.5依赖缺失、重启待处理、ODBC驱动冲突、大扇区硬盘不兼容、SSD固件问题、ISO解压异常、旧版组件残留和权限不足等问题。文章详细分析每个错误现象和成因,并提供针对性解决步骤,特别强调查看安装日志的重要性。这些经验总结来自真实案例,能帮助开发者有效规避安装陷阱,提升SQLServer部署成功率。(149字)
2026-03-18 23:01:17
304
原创 AI时代,.NET开发者的生存危机还是能力外挂?
AI不会淘汰你,但会放大你的特质。如果你本就爱学习、爱折腾,AI会让你如虎添翼;如果你安于现状、拒绝改变,AI会让你更快出局。回到标题的问题:AI时代,对咱们.NET开发者是危机还是外挂?答案不在AI手里,在你自己手里。你选择恐惧,它就是危机;你选择学习,它就是外挂。今天,当AI以惊人的速度进化时,我们每个人都站在同一起跑线上。GitHub Copilot、ChatGPT、Semantic Kernel,这些工具对所有开发者开放。这可能是咱们普通程序员,和大厂、高手差距最小的时刻。
2026-03-15 23:33:02
300
原创 .NET命名之谜:它与C#纠缠20年的关系揭秘
微软.NET框架命名趣闻:从技术代号NGWS到险些定名"AAAWare",最终选择".NET"体现了互联网时代的战略考量。C#与.NET共同演进20余年,形成语言与平台的完美共生——C#表达开发思想,.NET提供运行环境。通过托管代码、CLI标准等机制,这对组合从Windows专用发展为跨平台开源方案,展现了技术生态的持续创新。这段命名史不仅充满戏剧性,更是理解微软技术转型的重要窗口。
2026-03-14 16:19:55
349
原创 .NET 权限系统(RBAC)怎么设计?直接可复用
本文介绍了一套基于RBAC模型的权限系统设计方案,采用.NET Core+Vue技术栈实现。文章从数据库设计入手,详细讲解了用户、角色、权限等核心表结构,并提供了SQL Server建表脚本。后端部分重点阐述了JWT认证、权限验证中间件和自定义特性的实现方法。前端则展示了如何利用Vue3动态生成路由和实现按钮级权限控制。方案包含可复用组件与工具类,并讨论了数据权限、多租户等扩展场景。该设计已在企业级应用中验证,具有开箱即用、易于维护的特点。
2026-03-12 14:48:08
325
原创 记一次SQL server2008 数据库事务日志已满,导致程序崩溃排查过程
摘要:本文针对SQL Server 2008数据库"ERPData"事务日志已满的问题,提供了详细排查和解决方案。通过查询sys.databases中的log_reuse_wait_desc列定位问题原因,重点分析了ACTIVE_TRANSACTION状态的处理方法:使用DBCC OPENTRAN命令查找活跃事务,结合sp_who2和DBCC INPUTBUFFER获取进程详情,最后根据实际情况提交或回滚事务。同时提供了通用的日志收缩步骤,包括T-SQL命令和SSMS图形化操作两种方式。
2026-03-05 14:53:41
733
原创 ML.NET 快速入门与实践教程:机器学习框架
ML.NET是微软为.NET开发者打造的跨平台机器学习框架,让开发者无需Python基础就能在C#环境中构建智能应用。本文通过学生成绩预测案例,详细讲解ML.NET的核心概念与使用流程:从数据加载、模型训练到评估预测,并演示了房价预测的类似实现。关键步骤包括定义数据类、构建处理管道、选择训练算法以及创建预测引擎。文章还介绍了MLContext、IDataView等核心组件,帮助.NET开发者快速上手机器学习开发。
2026-02-28 15:29:24
670
原创 ASP.NET Core Blazor进阶1:高级组件开发
本文介绍了Blazor中的四种高级组件开发技术:1.渲染片段(RenderFragment)支持动态内容注入和参数化模板,2.动态组件实现运行时组件加载和渲染,3.错误边界组件提供异常捕获和优雅降级,4.虚拟化组件优化大数据集性能。这些技术能帮助开发者构建更灵活、健壮的Blazor应用,提升用户体验和性能表现。文章通过示例代码详细展示了每种技术的实现方法和应用场景。
2025-11-10 11:23:25
564
原创 解决.net core webapi iis发布之后 put、 delete 请求错误405.0
摘要:本文分享了.net core WebAPI部署到IIS后PUT和DELETE请求出现405错误问题的解决方法。问题是由于IIS中WebDAV模块会拦截PUT和DELETE请求导致的。解决方案是进入IIS功能视图的模块列表,删除名为WebDavModule或WebDavModule2的模块即可恢复正常。文章简要说明了问题原因和具体解决步骤,帮助开发者快速解决类似问题。(149字)
2025-11-10 11:20:14
440
原创 ASP.NET Core Blazor 核心功能三:Blazor与JavaScript互操作——让Web开发更灵活
本文介绍了Blazor中C#与JavaScript互操作的实用方法。通过IJSRuntime接口实现双向调用:C#可使用InvokeVoidAsync和InvokeAsync调用JS函数;JS通过[JSInvokable]特性调用C#方法。文章提供了弹窗提示、浏览器信息获取、图表集成等具体示例,并重点讲解了资源清理和性能优化技巧,帮助开发者在Blazor项目中灵活结合两种语言的优势,扩展应用功能。
2025-11-05 21:28:45
633
转载 Blazor入门第一篇之界面、API 与 MCP
本文介绍了在Blazor框架中实现界面交互、API接口和与MCP系统联动的方法。作者分享了HTML界面构建、API实现、服务注册等技术细节,并展示了状态保持的实现方式(通过服务对象和依赖注入)。文章最后呈现了实现效果,表达了程序员对编程的热情("生命不息,代码不止"),并邀请读者提供反馈建议。整个实现过程体现了程序员面对bug的冷静和解决问题后的喜悦,展现了技术探索的乐趣。
2025-11-04 14:13:09
41
原创 ASP.NET Core Blazor 核心功能二:Blazor表单和验证
摘要:本文介绍了Blazor中EditForm组件的使用及表单验证方案。主要内容包括:1)EditForm基础用法,通过Model参数绑定模型,使用DataAnnotationsValidator实现数据注解验证;2)自定义验证规则实现,通过继承ComponentBase创建CustomValidator组件,结合ValidationMessageStore管理验证消息;3)集成第三方验证库FluentValidation,展示如何定义复杂业务规则验证。文章提供了完整代码示例,涵盖内置验证、自定义验证和第三
2025-11-04 11:21:22
1023
原创 Blazor 感觉回到了ASP时代?
摘要: 本文探讨了Blazor框架与经典ASP时代的相似性,指出两者在服务端渲染模式、状态管理和C#主导开发等方面确有共通之处。但Blazor绝非简单的复古,而是通过组件化UI、现代数据绑定和WebAssembly支持等技术实现了"螺旋式上升"。它既保留了服务端开发的高效性,又融入了现代前端框架理念,为.NET开发者提供了更低的Web开发门槛和更灵活的技术选择,实现了传统与创新的完美结合。(149字)
2025-10-30 10:58:24
823
1
转载 C# .NET Core中Chart图表绘制与PDF导出
本文介绍了在.NET Core环境中使用OxyPlot和iText7库实现图表绘制与PDF导出的技术方案。文章首先分析了数据可视化的重要性以及PDF格式的优势,然后详细讲解了技术选型和实现步骤,包括创建柱状图、转换为PNG图像并导出为PDF文档。此外,还提供了扩展功能实现多图表导出的方法,并探讨了该技术的应用场景与最佳实践。这套方案能够有效提升业务决策效率、增强客户沟通效果,是.NET Core开发者进行数据可视化与文档生成的实用指南。
2025-10-30 08:38:08
77
原创 ASP.NET Core Blazor 核心功能一:Blazor依赖注入与状态管理指南
大家好,我是码农刚子。本文详细介绍了Blazor框架中的依赖注入机制和状态管理方案。依赖注入部分阐述了服务注册的三种生命周期方式(Singleton/Scoped/Transient)及在组件中的使用方法。状态管理章节系统梳理了7种解决方案:从简单的组件内状态到父子组件通信、级联参数,再到全局状态容器和Flux/Redux模式,并提供了本地存储持久化方案。文章还介绍了@ref指令的使用场景,包括组件引用、元素操作和循环处理等。最后给出了不同场景下的状态管理选择建议,帮助开发者构建更健壮
2025-10-29 09:19:00
809
2
原创 ASP.NET Core Blazor简介和快速入门三(布局和路由)
本文介绍了Blazor中的布局、路由和条件渲染功能。在布局方面,详细讲解了如何创建和应用布局组件(继承LayoutComponentBase),包括默认布局MainLayout的使用、嵌套布局的实现方式以及如何控制特定页面不应用布局(如登录页)。在路由和导航部分,简要提及了基本配置方法。最后,重点阐述了条件渲染(@if语句)和循环渲染(@foreach等)的语法和实际应用场景,通过学生信息列表等示例展示了数据绑定和动态UI生成的实现方式。这些核心功能共同构成了Blazor组件化开发的基础框架。
2025-10-25 18:20:18
873
原创 ASP.NET Core Blazor 路由配置和导航
大家好,我是码农刚子。本文系统介绍了Blazor单页应用的路由机制。主要内容包括:1)基础路由配置,通过@page指令定义URL映射;2)路由参数处理,支持参数约束、可选参数和通配符捕获;3)编程式导航实现,利用NavigationManager进行页面跳转和参数传递;4)高级功能如路由事件监听和嵌套路由布局。文章通过代码示例演示了用户管理、产品展示等典型场景的实现方式,完整呈现了Blazor路由从基础配置到复杂应用的全套解决方案。
2025-10-23 11:46:52
809
原创 ASP.NET Core Blazor简介和快速入门二(组件基础)
本文介绍了Blazor组件开发的核心知识点,包括:1. 组件生命周期:详细解析了初始化、运行和销毁三个阶段的关键方法,如SetParametersAsync、OnInitialized等,并提供了同步与异步方法的执行顺序说明;2. 数据绑定机制:涵盖单向绑定、双向绑定以及自定义组件绑定实现,特别说明了实时更新绑定和格式化绑定的应用场景;3. 事件处理:系统梳理了各类DOM事件处理方式,包括基础点击事件、表单事件、鼠标键盘事件等,并给出了性能优化建议;4. 参数传递:深入讲解了组件参数(Parameter)和
2025-10-20 08:59:23
1016
原创 ASP.NET Core Blazor简介和快速入门一(基础篇)
Blazor开发入门指南 Blazor是微软推出的基于.NET的开源Web框架,允许使用C#替代JavaScript构建交互式Web应用。它提供三种托管模式: Server模式:在服务端运行,通过SignalR实时更新UI,适合需要服务端功能的场景 WebAssembly模式:直接在浏览器运行,支持离线使用,但初始加载较慢 Hybrid模式:结合原生应用与Web技术,可访问设备功能 开发环境配置: 需安装.NET SDK和Visual Studio/VSCode 创建项目时选择对应模板(Server/WAS
2025-10-14 17:49:12
803
原创 ZKEACMS:基于ASP.Net Core开发的开源免费内容管理系统
摘要:ZKEACMS是一款可视化拖拽的.NET内容管理系统,支持SQL Server/MySQL/SQLite数据库。核心功能包括所见即所得的页面编辑、插件扩展、响应式设计、栅格布局、组件管理和LESS主题定制。用户可通过拖拽行列快速构建页面,但存在Meta标签无法删除、详情页SEO设置受限等问题。系统采用.NET Core 9.0 MVC架构,开源地址为Github.com/SeriaWei/ZKEACMS。
2025-10-08 09:31:58
326
原创 一个基于 .NET 开源、简易、轻量级的进销存管理系统
JxcLite是一款基于.NET开发的轻量级开源进销存管理系统,采用Known框架(Blazor跨平台插件框架)构建。项目包含Web/WinForm/Wasm多端支持,涵盖基础数据、进销存管理、财务对账、统计报表等完整功能模块。首次运行需进行系统安装,自动初始化数据库并生成示例数据。系统提供商品管理、采购销售、库存查询等核心业务功能,适合中小企业使用。项目开源地址:https://gitee.com/known/JxcLite
2025-10-07 09:32:04
245
原创 .NET开发中3秒判断该用 IEnumerable 还是 IQueryable
摘要:在.NET开发中,IEnumerable和IQueryable的核心区别在于查询执行位置:IEnumerable在内存中操作,IQueryable在数据源端执行。选择IEnumerable处理内存数据或需要立即执行的查询,使用IQueryable实现数据库端过滤、分页和动态查询。关键性能提示是避免过早调用ToList()导致全表加载。遵循"IQueryable推迟查询到数据源,IEnumerable处理内存数据"的原则,能快速优化应用性能。(150字)
2025-09-29 08:59:19
522
原创 【好用推荐】免费在线图片压缩工具,附源码
摘要:码农刚子开发了一款免费在线图片压缩工具,解决办公中图片过大无法上传的问题。该工具支持JPG/PNG/GIF/WebP/BMP格式,通过滑块自由调整压缩质量(0%-100%),提供实时预览和下载功能。前端使用FetchAPI,后端采用ASP.NETCore处理文件,具有安全便捷的特点。工具包含拖放上传、质量调整、进度显示等功能,适用于各类图片压缩需求。源码公开,可直接部署使用。该工具克服了在线压缩工具的安全隐患,为开发者提供了可靠的开源解决方案。
2025-06-22 21:44:02
299
原创 Hexo-butterfly文章顶部添加波浪效果
这篇文章介绍了如何在Hexo博客主题Butterfly的文章顶部添加波浪效果,具体操作包括修改themes/butterfly/layout/includes/header/index.pug文件,在适当位置添加波浪效果的SVG代码,并在_config.butterfly.yml文件中引入相应的CSS样式以实现波浪动画效果,CSS代码控制波浪的宽度、位置、高度以及动画效果,包括不同子元素的动画延迟和持续时间,还提供了黑色模式下的背景颜色调整,最后提醒注意CSS中的fill属性可以控制波浪颜色,建议与背景颜色
2025-06-15 18:53:11
375
原创 Hexo-butterfly友情链接页面优化
新建文件[Blogroot]\source_data\link.yml,没有_data文件夹的话也请自己新建。以下是默认友链格式示例。取消[Blogroot]_config.butterfly.yml中menu配置项内link页面的注释(这里我已改成中文【友链】)。替换[Blogroot]\themes\butterfly\layout\includes\page\flink.pug。替换[Blogroot]\themes\butterfly\source\css_page\flink.styl。
2025-06-14 23:41:09
611
原创 如何给Hexo-butterfly主题博客在复制时添加版权声明
这篇文章介绍了如何在Hexo-butterfly主题博客中为复制内容添加版权声明,以应对文章被盗和被爬取的问题。首先确认需要在博客详情内容标签中添加版权信息,避免影响用户体验。接着编写JavaScript代码,监听复制事件并在复制内容中添加版权声明,包括著作权声明、作者信息和原文地址。然后将这段JS代码放置在博客详情页模板中,并通过清除和重新生成页面进行测试。最后,提供了设置文章是否需要添加版权声明的方法,通过在文章头部添加`copyright`属性来控制是否添加版权声明。
2025-06-14 23:34:53
451
原创 C# WinForms 实现打印监听组件
摘要: 本文介绍了一款基于C# WinForms的打印监听组件,具备企业级打印任务管理功能。该组件支持多打印机实时监控,通过WebSocket与外部系统集成,提供自动化打印、状态反馈和远程控制等功能。界面采用TabControl分页管理各打印机任务,集成系统托盘快捷操作,并实现了打印机列表自动检测、默认打印机设置及首选项调用等功能。核心代码展示了如何动态绑定打印机到菜单和标签页,以及任务列表的数据展示与搜索交互设计。
2025-06-14 17:33:30
825
原创 Hexo-butterfly 接入腾讯混元大模型自动生成文章摘要(保姆教程)
这篇文章介绍了如何在Hexo博客系统中接入腾讯混元大模型来自动生成文章摘要的详细步骤,包括注册腾讯云账号、创建API KEY、安装和配置hexo-ai-summary-liushen插件、设置AI接口参数、适配Hexo主题以显示生成的摘要等内容,文章详细说明了每个步骤的操作方法和注意事项,如插件的安装、配置文件的修改、模板的添加和样式的设置等,帮助用户实现自动化生成和展示文章摘要的功能。
2025-06-10 15:34:45
806
原创 小白也能行!10分钟用Cursor搭建个人博客网站(零基础教程)
Cursor是一款集成GPT-4技术的智能代码编辑器,旨在简化编程过程,特别适合编程新手。它提供自动代码生成、代码解释、错误修复和对话式编程指导等功能,使得传统上需要掌握的HTML/CSS/命令行等知识变得不再必要。Cursor相较于传统VSCode的优势在于其内置的AI助手、智能补全和对话式编程功能。安装Cursor和Node.js后,用户可以通过简单的命令和Cursor的AI辅助,轻松搭建和自定义博客,并部署到GitHub Pages。整个过程无需编写复杂代码,极大地降低了技术门槛,让用户能够快速拥有并
2025-05-20 23:25:56
1472
原创 Humanizer:让.NET数据处理更人性化的利器
Humanizer是一个开源的.NET库(支持.NET Standard 1.0+),专注于将机械化的数据格式转换为符合人类自然语言习惯的表达形式。主要用于简化日期、时间、数字和货币的本地化和人性化表达。它非常适用于开发多语言应用,尤其是在需要展示用户友好格式的日期、时间或数量时。它通过简洁的API帮助开发者解决以下常见问题:日期时间:"2小时前"代替"2025-03-09 14:30:00"复数形式:"3 apples"自动处理单复数数字转换:"1,314"转"一千三百一十四"
2025-03-09 18:18:17
510
原创 .NET的HTTP请求组件大盘点,你用过几款?
以上是在.NET生态系统中常用的几种HTTP请求组件。HttpClient因其轻量级、可扩展性和异步支持等特点,成为大多数.NET项目的首选。然而,根据项目的具体需求和开发者的偏好,WebClient、HttpWebRequest和RestSharp等组件也有其独特的适用场景。
2024-08-28 17:52:21
699
原创 如何将winform只生成一个绿色文件
在Windows Forms (WinForms) 应用程序中,生成一个单独的“绿色文件”(也称为单一可执行文件或自包含可执行文件)并不是WinForms框架直接支持的功能,因为WinForms应用程序通常依赖于.NET Framework或.NET Core/.NET 5+运行时库,以及可能的其他资源文件和库。某些情况下,你可能仍然需要确保目标机器上安装了适当的.NET运行时,即使你发布了自包含的应用程序。这通常是因为自包含部署仅包括应用程序的依赖项,而不包括.NET运行时本身的更新或补丁。
2024-08-28 17:30:48
1013
原创 C#中HttpClient的几种数据格式
HttpClient类是一个非常强大的工具,用于在应用程序中发送HTTP请求和接收HTTP响应。(来自Newtonsoft.Json或System.Text.Json)的方法将响应字符串反序列化为C#对象。每种数据格式的选择取决于你的具体需求,包括你需要发送的数据类型、接收数据的客户端或服务器的期望格式等。通过其灵活的API支持多种数据格式,使得在C#应用程序中发送和接收HTTP请求变得简单而强大。也是常用的选择,因为它允许你将文件与表单数据一起发送。获取响应的流,以便进一步处理(如保存到文件)。
2024-08-26 20:09:41
958
原创 c# 如何处理跨域请求?你能说出几种方法?
在C#中处理跨域请求最常见和推荐的方法是在ASP.NET Core或ASP.NET Web API项目中配置CORS策略。在ASP.NET Core MVC或Razor Pages项目中,CORS的配置与ASP.NET Core Web API类似,都是在Startup.cs文件中通过AddCors和UseCors进行配置。你可以配置代理服务器来转发请求,并添加适当的CORS响应头。使用第三方库:比如Microsoft的Web API CORS库,它允许你在Web API项目中以更简单的方式实现CORS。
2024-08-26 20:01:39
1313
转载 2024年C#优秀实用的类库推荐
Entity Framework Core 支持多种数据库系统,如 SQL Server、MySQL、PostgreSQL 等,并且提供了丰富的查询、更新、删除等操作方法。ASP.NET Core Web API 提供了丰富的 API 路由、模型绑定、身份验证和授权等功能,使得开发者能够轻松地构建安全、可维护的 Web API 服务。OxyPlot 是一个用于数据可视化的类库,它支持多种图表类型(如折线图、柱状图、饼图等),并且具有高度可定制化的特点。它还提供了丰富的插件和扩展,以满足各种日志记录需求。
2024-07-23 22:39:02
1435
原创 C#中十种线程启动方式及其适用场景、优缺点分析
提供了丰富的API,如Task.Run、Task.WhenAll、Task.WhenAny等,易于集成和使用;C#提供了多种开启线程的方式,每种方式都有其独特的使用场景、优点和缺点。提供了丰富的并行操作API,如Parallel.For、Parallel.ForEach、Parallel.Sum等。C#提供了多种开启线程的方式,每种方式都有其特定的使用场景和优缺点。提供了直接控制线程的方法,如Start、Suspend、Resume、Abort等。较老的技术,可能在未来的.NET版本中逐渐淘汰;
2024-07-23 22:37:39
1360
原创 C#中IsNullOrEmpty和IsNullOrWhiteSpace的区别?
是两个用于检查字符串的静态方法,但它们的用途和返回值有所不同。、空字符串或仅包含空白字符(如空格、制表符、换行符等)。如果你还关心字符串是否仅包含空白字符,使用。、不是空字符串且不包含空白字符,返回。或空字符串(即长度为0的字符串)。如果字符串为空字符串(""),返回。如果字符串为空字符串(""),返回。这个方法用于检查一个字符串是否为。这个方法用于检查一个字符串是否为。如果字符串仅包含空白字符,返回。如果你只关心字符串是否为。且不为空字符串,返回。
2024-06-16 16:29:25
378
原创 推荐十个优秀的ASP.NET Core第三方中间件,你用过几个?
ASP.NET Core 作为一个强大的、跨平台的、高性能的开源框架,为开发者提供了丰富的功能和灵活的扩展性。其中,中间件(Middleware)是 ASP.NET Core 架构中的核心组件之一,它负责处理 HTTP 请求和响应的管道,允许开发者在请求和响应之间插入自定义逻辑。Application Insights 是 Microsoft 提供的一款强大的应用性能管理(APM)工具,它可以帮助开发者实时监控和分析 ASP.NET Core 应用的性能、可用性和使用情况。
2024-06-09 22:36:02
1202
3
原创 C# Dump
该函数的第一个参数是进程句柄,第二个参数是进程 ID,第三个参数是 dump 文件的路径和名称,第四个参数是 dump 文件的类型(这里使用了 MiniDumpNormal),第五个参数是异常信息(这里使用了 ex.ToString() 来将异常信息转换为字符串),第六个参数是是否压缩 dump 文件(这里使用了 false),最后一个参数是是否生成 full dump(这里使用了 false)。4、如何优化 dump 文件的大小:在某些情况下,dump 文件可能会非常大,导致存储和分析的困难。
2023-12-10 21:24:20
1651
ip2region地址定位库
2024-07-02
Resources.resx添加资源无法正常加载,如何解决?(语言-c#)
2025-06-14
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅