关键词:admin blazor 文件上传 每个后台系统都离不开文件管理。 用户头像、商品图片、文章封面、附件文档……上传、存储、展示、管理,一套流程下来,看着简单,做起来全是细节: 用户传了 exe、bat 怎么办 图片太大了,页面加载慢 文件路径怎么输入、怎么预览 多租户的文件会不会混在一起 E ...
在软件开发中,常有“字不如表,表不如图”之说,一大段的文字数据描述,不如表格来得直观清晰,而图表则更加能描述数据的规律和走向,常见的有:销售直方图,股票K线图等,今天我们以一些简单的小例子,简述在基于.NET的Windows窗体编程中Chart图表的基本用法,仅供学习分享使用,如有不足之处,还请指正... ...
16. IAsyncEnumerable 异步流:边加载边处理的优雅之道 本章 GitHub 仓库:csharp-concurrency-cookbook ⭐ 欢迎 Star 和 Fork!所有代码示例都可以在仓库中找到并运行。 本章导读 本文目标:掌握 IAsyncEnumerable ...
在开始主题之前,老周分享另一个知识,碰巧这知识点也是 EF Core 的,是前些天一位新手程序猿问的,他那是一个小项目,因为小,所以采用 Code First 的方案。不过程序有两个版本,一个是用 SQLite 数据库,一个用 SQL Server。然后有些实体他设定了 CHECK 约束。众所周知, ...
Zenith.NET 最近做了一轮比较大的 RHI 重构。它不是一次普通的 API 改名,也不是单纯整理代码,而是把整个图形抽象层从早期“更容易上手的封装”,往更现代、更贴近 DirectX 12 / Vulkan / Metal 的底层模型推进。 这轮重构的重点,是新版引入了哪些能力、为什么要做 ...
前面几篇我们讲过CRUD、关联表、权限控制,每次都在强调一件事:不用写代码,或者只写几十行代码。 今天把这个理念推到极致——点几下鼠标,一个完整的CRUD模块就生成好了。 这就是 EasyAdminBlazor 内置的 CrudGenerator 可视化代码生成器。 一、传统方式:10个模块=120 ...
作者:张富春(ahfuzhang),转载时请注明作者和引用链接,谢谢! cnblogs博客 zhihu Github 公众号:一本正经的瞎扯 背景 最近在测试一个服务器的时候,遇到一个难题:我如何才能构造出多种请求,以便尽可能的覆盖到所有分支? 写单元测试固然是个办法,但是服务器依赖 mysql 和 ...
前面五篇我们讲了快速搭建、目录结构、CRUD、关联表、权限控制。今天说一个企业级系统的核心能力——多租户(SaaS)。 如果你做过面向企业的项目,一定遇到过这个问题:一套系统,要卖给不同的客户,每个客户的数据要隔离。 传统做法:每个客户部署一套,维护成本爆炸。 SaaS 做法:一套代码,多个客户共用 ...
.NET 11 Preview 5 发布 原文:.NET 11 Preview 5 is now available! - .NET Blog 发布日期:2026 年 6 月 10 日(美国当地时间) 今天,我们很高兴地宣布 .NET 11 的第五个预览版发布!此版本涵盖了 .NET Runtime ...
前言 众所周知,C#中的mongodb驱动默认是不会序列化和反序列只读属性的。所以当我们存储Protobuf的类型时,如果有属性是RepeatedField和MapField类型,那么该属性并不会被存储到mongodb数据库中。如果要正常存储,则需要自己调用RegisterClassMap方法注册该 ...
说到执行动态脚本,大多使用Lua、Python、JS等语言,为什么没有SQL动态脚本语言呢?现在它来了! AScript是一个开源的C#动态脚本解析执行引擎,支持扩展多种脚本语言,2026年6月8日正式发布了SQL脚本语言AScript.Lang.Sql,快来试试吧! 一、介绍 支持SqlServe ...
在日常软件开发中,文本输入与显示是最基础的功能,也是最简单的内容,主要用于在表单中获取用户输入的内容,和向用户展示内容。如果只是简单的文本输入与显示,用Label和TextBox就可以实现,但是富文本对控件的要求就比较多了,比如加粗,斜体,下划线等样式设置,它在一些应用场景中比较常见,比如留言板,论... ...
本文介绍一种让大语言模型制作幻灯片的实验性思路。通过定义一套极简的 XML 标签语言 SlideML,让模型输出页面描述,再由确定性渲染引擎真实绘制,并利用测量到的实际数据回传给模型,形成一轮一轮的调整优化。 ...
15. TPL Dataflow 流水线编程 本章 GitHub 仓库:csharp-concurrency-cookbook ⭐ 欢迎 Star 和 Fork!所有代码示例都可以在仓库中找到并运行。 一、本章导读 本文目标:从零构建生产级 Dataflow 流水线,掌握完整的设计思路、核心原 ...
14. 无锁编程与内存模型:不加锁,也能线程安全? 本章 GitHub 仓库:csharp-concurrency-cookbook ⭐ 欢迎 Star 和 Fork!所有代码示例都可以在仓库中找到并运行。 本章导读 本文目标:搞清楚无锁编程的核心工具——Interlocked、vola ...
AScript是一个开源的C#动态脚本解析执行引擎,脚本中支持定义事件处理。 一、Lambda委托 1 var s = @" 2 var p = new Person('tom', 20); 3 p.Saying += (ss,ee)=>{ 4 (ss as Person).Age+=1; 5 } ...
问题现象 在Windows平台上,通过Win32 API IOCTL_DISK_SET_DISK_ATTRIBUTES 将磁盘设置为只读后,出现了意料之外的行为:磁盘属性面板显示已只读,但NTFS文件系统仍允许写入;或者反过来,磁盘已取消只读,但NTFS仍拒绝写入。这种"磁盘层"与"文件系统层"状态 ...
一:背景 1. 讲故事 前些天有位朋友在微信上找到我,说他们的系统出现了CPU爆高,找不到原因,让我帮忙看一下,dump也拿出来了,接下来上windbg分析。 二:CPU爆高分析 1. 真的爆高吗 dump的分析第一原则就是相信数据,先使用 !tp 观察cpu使用率。 0:031> !tp Usin ...
整套ASP.NET线程卡死分析步骤总结(标准化排查套路) 一、第一步:宏观看整体指标 !tp 查看线程池Worker总数、Running/Idle、排队队列; 特征:Running=总线程、Idle=0、队列积压几千 → 大批量线程永久卡死不释放。 初步结论:不是瞬时并发高,是线程泄漏卡死。 二、第 ...
数组(Array)定义:是多个相同类型的数据按照一定顺序排列的集合,并使用一个名字命名 数组本身是引用数据类型,数组中的元素可以是任何数据类型 创建数组对象会在内存中开辟一整块连续的空间。元素在内存中是依次紧密排列的,有序的 数组一旦初始化完成,他的长度就是确定的,不能修改 1.一维数组的使用(6个 ...