【译】A unit of profiling makes the allocations go away
在 Visual Studio 17.8 Preview 2 中,我们更新了单元测试分析,允许你在性能分析器中使用任何可用的工具——而不仅仅是仪表工具。有了这个更改,可以很容易地快速分析孤立的小工作单元,进行更改,然后重新度量和验证更改的影响。假设您有良好的测试覆盖率,这是利用现有资产来帮助...[2023/10/23]
WPF性能优化:Freezable 对象
Freezable是WPF中一个特殊的基类,用于创建可以冻结(Freeze)的可变对象。冻结一个对象意味着将其状态设置为只读,从而提高性能并允许在多线程环境中共享对象。
Freezable的应用
我们定义画刷资源的时候常常会这样写:
<SolidColorBrush x:Key="Re...[2023/10/20]
WPF绘图(一):几何(Geometry)与形状(Shape)
1. Geometry
在数学中,我们可以用一个方程描述圆:x2+y2=25。这个方程描述的是,一个半径为5,中心点在(0,0)的圆。这种纯数学的描述就是Geometry(几何)。
但此时,这个“圆”我们是看不见,摸不着的。如果想要看到这个几何图形,就必须用画笔,颜色等信息,去“绘制”它。
...[2023/10/20]
IL编织器 --- Fody
介绍
这个项目的名称“Fody”来源于属于织巢鸟科(Ploceidae)的小鸟(Fody),本身意义为编织。
核心Fody引擎的代码库地址 :https: github.com/Fody/Fody
Github上是这样介绍的:
Fody 是一个用于织制 .NET 程序集的可扩展工具。...[2023/10/20]
Util应用框架Web Api开发环境搭建
要使用Util应用框架开发项目,首先需要搭建合适的开发环境.
迈出第一步,对于很多.Net新人可能并不简单.
如果你对.Net环境并不熟悉,请尽量按照本文档进行操作.
操作系统
请安装 Windows 10 以上版本操作系统.
你也可以使用MAC操作系统,但需要自行解决开发环境问题.
...[2023/10/18]
造轮子之集成GraphQL
先简单对比以下GraphQL和WebAPI: GraphQL和Web API(如RESTful API)是用于构建和提供Web服务的不同技术。
数据获取方式:
Web API:通常使用RESTful API,客户端通过发送HTTP请求(如GET、POST、PUT、DELETE)来获取特定的...[2023/10/17]
详解.NET依赖注入中对象的创建与“销毁”
在DI容器中注册类型,DI容器就可以帮我们创建类型的实例;如果注册类型实现了IAsyncDisposable或者IDisposable接口,对象销毁时DI容器还会帮我们调用DisposeAsync或Dispose方法。这是如何实现的呢?一起来看看吧。本文是基于Dependency Injecti...[2023/10/16]
.NET开源简单易用、内置集成化的控制台、支持持久性存储的任务调度框架 - Hangfire
前言
定时任务调度应该是平时业务开发中比较常见的需求,比如说微信文章定时发布、定时更新某一个业务状态、定时删除一些冗余数据等等。今天给推荐一个.NET开源简单易用、内置集成化的控制台、支持持久性存储的任务调度框架:Hangfire。
.NET之Hangfire快速入门和使用??
项目介...[2023/10/16]
为.NET打开新大门:OpenVINO.NET开源项目全新发布为.NET打开新大门:OpenVINO.NET开源项目全新发布
为.NET打开新大门:OpenVINO.NET开源项目全新发布
在AI的应用越来越广泛的今天,优化深度学习模型并进行推理部署已经成为了一门必要的技术。Intel开发的OpenVINO工具包(Open Visual Inference and Neural network Optimization...[2023/10/16]
【译】使用保留大小写的查找和替换来保存您的命名方式【译】使用保留大小写的查找和替换来保存您的命名方式
Visual Studio 搜索体验获得了一项新功能,允许用户查找和替换文本,而不必担心不同的大小写。例如,方法参数“catalogItemId”和对象属性“CatalogItemId”有相同的名称,但大小写不同,但都应该用类似“productId”的东西替换,并使用各自的大小写。
&...[2023/10/16]
.NET高性能开发-位图索引(一)
首先来假设这样一个业务场景,大家对于飞机票应该不陌生,大家在购买机票时,首先是选择您期望的起抵城市和时间,然后选择舱等(公务舱、经济舱),点击查询以后就会出现航班列表,随意的点击一个航班,可以发现有非常多组价格,因为机票和火车票不一样,它的权益、规则更加的复杂,比如有机票中有针对年龄段的优惠票,...[2023/10/16]
Dotnet工具箱:开源、免费的纯前端工具网站,带你探索10大工具分类和73个实时在线小工具Dotnet工具箱:开源、免费的纯前端工具网站,带你探索10大工具分类和73个实时在线小工具
1. 前言
大家好,我是沙漠尽头的狼。
Dotnet工具箱是一个纯前端的、开源和免费的工具网站,周末我参考了开源项目it-tools,对网站界面文字进行了汉化,并重新部署了网站。该网站共有10大工具分类,提供了73个实时在线小工具。使用Vue3开发的Dotnet工具箱具有独特的特色,本文详细介...[2023/10/16]
记一次 .NET某新能源检测系统 崩溃分析记一次 .NET某新能源检测系统 崩溃分析
一:背景
1. 讲故事
前几天有位朋友微信上找到我,说他的程序会偶发性崩溃,一直找不到原因,让我帮忙看一下怎么回事,对于这种崩溃类的程序,最好的办法就是丢dump过来看一下便知,话不多说,上windbg说话。
二:WinDbg 分析
1. 到底是哪里的崩溃
对于一个崩溃类的dump,寻找崩溃点...[2023/10/16]
Semantic Kernel .NET SDK 的 v1.0.0 Beta1 发布
介绍 Semantic Kernel (SK) 是一个开源的将大型语言模型(LLM)与流行的编程语言相结合的SDK,Microsoft将Semantic Kernel(简称SK)称为轻量级SDK,结合了OpenAI,Azure OpenAI和Hugging Face等AI LLM的集成。它使开发...[2023/10/13]
【Dotnet 工具箱】基于 .NET 6 和 Angular 构建项目任务管理平台
1.Rhea 时间管理大师
Rhea 是一个基于 C# 和 .NET 6 开发的在线任务管理平台,类似于 禅道、Jira、Redmine, 滴答清单等。
支持多视图多维度统一管理任务。多级结构,工作区,空间,文件夹,列表,可以更灵活的进行任务管理。
应用支持多主题和主题色切换,灵活搭配,随心...[2023/10/13]
Util应用框架 7.x 来了Util应用框架 7.x 来了
什么是Util应用框架?
Util是一个.Net平台下的应用框架,旨在提升中小团队的开发能力,由工具类、分层架构基类、Ui组件,配套代码生成模板,权限等组成。
Util应用框架 7.x介绍
Util应用框架的最新版本是7.x,保持与.Net最新稳定版本同步更新。
与Util 1.x相比,最新...[2023/10/13]
使用 OpenTelemetry 构建 .NET 应用可观测性(4):ASP.NET Core 应用中集成 OTel
目录前言使用 elastic 构建可观测性平台在 ASP.NET Core 应用中集成 OTel SDK安装依赖基础配置Instrumentation 配置创建自定义 Span 和 Metric完整的代码演示kibana 中查看数据TracingMetricsTracing 和 Logs 的关联...[2023/10/13]
Asp-Net-Core开发笔记:EFCore统一实体和属性命名风格
前言
C# 编码规范中,类和属性都是大写驼峰命名风格(PascalCase / UpperCamelCase),而在数据库中我们往往使用小写蛇形命名(snake_case),在默认情况下,EFCore会把原始的类名和属性名直接映射到数据库,这不符合数据库的命名规范。
为了符合命名规范,而且也为...[2023/10/11]
.NET微服务系列之Saga分布式事务案例实践
自从Wing正式发布以后,很多童鞋反馈对Saga分布式事务比较感兴趣,今天就跟大家分享一下“跨行转账”的分布式事务实践案例,入门使用教程请自行前往Wing官方文档。
假设自己名下有“中国农业银行(ABC)”和“中国工商银行(ICBC)”的...[2023/10/11]
.NET 8 RC 2 发布,将在11月14日发布正式版
微软2023-10-10 发布了 .NET 8 RC 2,下一站是.NET 8正式发布,就在下个月Net Conf 2023[1](11月14日)期间正式发布,我们也开始筹备第四届中国.NET开发者峰会了。 经过长达一年时间的开发,.NET 8 规划的所有主要的新功能都已推出,.NET 8 及其...[2023/10/11]
.NET静态代码织入——肉夹馍(Rougamo)发布2.0.NET静态代码织入——肉夹馍(Rougamo)发布2.0
肉夹馍(https: github.com/inversionhourgla Rougamo)通过静态代码织入方式实现AOP的组件,其主要特点是在编译时完成AOP代码织入,相比动态代理可以减少应用启动的初始化时间让服务更快可用,同时还能对静态方法进行AOP。
摆烂半年又一更,感谢各位的支持,那...[2023/10/11]
.NET 8 候选版本 2 (RC2) 现已可用
.NET 8 候选版本 2 (RC2) 现已可用,并包含了许多 ASP.NET Core 的出色新改进!
这是我们计划在今年晚些时候发布的最终 .NET 8 版本之前分享的最后一个候选版本。.NET 8 计划中的大部分功能和更改都已包含在此候选版本中,随时供您试用。您可以在文档中找到 .NET...[2023/10/11]
造轮子之asp.net core identity
在前面我们完成了应用最基础的功能支持以及数据库配置,接下来就是我们的用户角色登录等功能了,在asp.net core中原生Identity可以让我们快速完成这个功能的开发,在.NET8中,asp.net core identity支持了WebApi的注册登录。这让我们在WebApi中可以更爽快的...[2023/10/9]
.NET周刊【10月第1期 2023-10-01】
国内文章
.NET应用如何防止被反编译
https: www.cnblogs.com/Can-daydayup/p/17736700.html
本文主要讲述了如何防止.NET应用被反编译。虽然无法完全防止反编译,但可以通过混淆代码、加密敏感数据、动态生成代码、使用代码混合技术和代码签名等方法增...[2023/10/9]
.Net析构函数再论(CLR源码级的剖析)
前言
碰到一些问题,发觉依旧没有全面了解完全析构函数。本篇继续看下析构函数的一些引申知识。
概述
析构函数目前发现的总共有三个标记,这里分别一一介绍下。先上一段代码:
internal cla Program : IDisposable{
static void Main(s...[2023/10/9]
.Net7自定义GC垃圾回收器.Net7自定义GC垃圾回收器
1.前言
CLR和GC高度耦合,.Net7里面分离CLR和GC,则比较容易实现这件事情。本篇来看下,自定义一个GC垃圾回收器。
2.概述
这里首先演示下自定义GC垃圾回收后的效果。
1.下载Custom.dll
2.找到当前.Net目录,比如这里的7.0.10
C:\Program Fi...[2023/10/9]
关于Async、Await的一些知识点关于Async、Await的一些知识点
在ASP.NET Core中,当一个HTTP请求到达服务器时,它会被分配给线程池中的一个线程来处理。该线程会执行相应的Controller方法。
如果这个方法是一个异步方法并且使用了await关键字,那么在await的代码执行完毕之前,这个线程会被释放回线程池,可以用来处理其他的HTTP请求。...[2023/10/9]
.NET周刊【9月第4期 2023-09-24】
国内文章
有趣的“可扩展近似计数”算法
https: zhuanlan.zhihu.com/p/656817283
在编程的世界里看见数学的身影,会让我充满好奇和兴奋。这不,在一年一度介绍.NET新版本的官方开发博客《Performance Improvements in .NET 8》中,我...[2023/10/9]
【ASP.NET Core】在 Mini-API 中注入服务
经过版本更新,Mini API 的功能逐步完善,早期支持得不太好的 mini API 现在许多特性都可以用了,比如灰常重要的依赖注入。
咱们先来个相当简单的注入测试。来,定义一个服务类,为了偷懒,老周这里就不使用 接口 + 实现类 的方式了。
public cla MyService :...[2023/10/9]
一套基于 .NET Core 开发的支付SDK集 - paylink
前言
在我们的日常工作开发中对接一些第三方支付是比较常见的,如最常见的就是支付宝、微信支付的对接。今天给大家推荐一个基于.NET Core开发的支付SDK集:paylink,它极大简化了API调用及通知的处理流程从而大大提供我们的工作生产效率。
运行环境
.NET Core 3.1、.NET ...[2023/10/9]
.NET应用如何防止被反编译.NET应用如何防止被反编译
前言
前段时间分享了两篇关于.NET反编译相关的文章,然后文章留言区就有小伙伴提问:如何防止被反编译?因此本篇文章我们就来讲讲.NET应用如何防止被反编译。.NET反编译相关的文章可以看如下文章:
4款免费且实用的.NET反编译工具
.NET反编译神器ILSpy怎么用?
.NET应用如何防止...[2023/10/9]
记一次 .NET某账本软件 非托管泄露分析
一:背景
1. 讲故事
中秋国庆长假结束,哈哈,在老家拍了很多的短视频,有兴趣的可以上B站观看:https: pace.bilibili.com/409524162 ,今天继续给大家分享各种奇奇怪怪的.NET生产事故,希望能帮助大家在未来的编程之路上少踩坑。
话不多说,这篇看一个.NET程序集...[2023/10/9]
.NET Core使用SkiaSharp快速生成二维码( 真正跨平台方案)
前言
在.NET 6之前我们一直是使用QRCoder来生成二维码(QRCoder是一个非常强大的生成二维码的组件,用到了System.Drawing.Common 包),然后从.NET 6开始,当为非 Windows 操作系统编译引用代码时,平台分析器会发出编译时警告。异常如下:
S...[2023/10/9]
.NET 数据库大数据操作方案(插入、更新、删除、查询 、插入或更新)
1、功能介绍
海量数据操作ORM性能瓶颈在实体转换上面,并且不能使用常规的Sql去实现
当列越多转换越慢,SqlSugar将转换性能做到极致,并且采用数据库最佳API
操作数据库达到极限性能,当然你如果不用sqlsugar了解一下原理也可以使用其他ORM实现
Bu...[2023/10/9]
Asp-Net-Core开发笔记:快速在已有项目中引入EFCoreAsp-Net-Core开发笔记:快速在已有项目中引入EFCore
前言
很多项目一开始选型的时候没有选择EFCore,不过EFCore确实好用,也许由于种种原因后面还是需要用到,这时候引入EFCore也很方便。
本文以 StarBlog 为例,StarBlog 目前使用的 ORM 是 FreeSQL ,引入 EFCore 对我来说最大的好处是支持多个数据库,...[2023/10/9]
记一次 .NET 某餐饮小程序 内存暴涨分析
一:背景
1. 讲故事
前些天有位朋友找到我,说他的程序内存异常高,用 vs诊断工具 加载时间又太久,让我帮忙看一下到底咋回事,截图如下:
确实,如果dump文件超过 10G 之后,市面上那些可视化工具分析起来会让你崩溃的,除了时间久之外这些工具大多也不是用懒加载的方式,比如 dotmem...[2023/9/25]
2023版:深度比较几种.NET Excel导出库的性能差异
2023版:深度比较几种.NET Excel导出库的性能差异
引言
背景和目的
本文介绍了几个常用的电子表格处理库,包括EPPlus、NPOI、Aspose.Cells和DocumentFormat.OpenXml,我们将对这些库进行性能测评,以便为开发人员提供实际的性能指标和数据。
下表将功...[2023/9/25]
6.swagger完善:界面显示注释+多版本控制
周末,写点简单的水一下。
新版本的vs创建项目的时候可以选择自带一个swagger。然而这只是基本的swagger功能。
几个接口无所谓啦,随着接口越来越多,就这么丢给你,一时间也会懵逼,所以这篇文章要做的有两个功能。
给swagger文档添加注释
给swagger添加切换...[2023/9/25]
拦截|篡改|伪造.NET类库中不限于public的类和方法
大家好,我是沙漠尽头的狼。
本文首发于Dotnet9,介绍使用Lib.Harmony库拦截第三方.NET库方法,达到不修改其源码并能实现修改方法逻辑、预期行为的效果,并且不限于只拦截public访问修饰的类及方法,行文目录:
什么是方法拦截?
示例程序拦截
非public方法怎么拦截?
总结...[2023/9/25]
记一次 .NET某新能源MES系统 非托管泄露记一次 .NET某新能源MES系统 非托管泄露
一:背景
1. 讲故事
前些天有位朋友找到我,说他们的程序有内存泄露,跟着我的错题集也没找出是什么原因,刚好手头上有一个 7G+ 的 dump,让我帮忙看下是怎么回事,既然找到我了那就给他看看吧,不过他的微信头像有点像 二道贩子,不管到我这里是不是 三道,该分析的还得要分析呀。??????
二:...[2023/9/25]
在 Net7.0环境下测试了 Assembly.Load、Assmebly.LoadFile和Assembly.LoadFrom的区别在 Net7.0环境下测试了 Assembly.Load、Assmebly.LoadFile和Assembly.LoadFrom的区别
一、简介 很长时间没有关注一些C#技术细节了,主要在研究微服务、容器、云原生、容器编排等高大上的主题了,最近在写一些框架的时候,遇到了一些和在 Net Framework 框架下不一样的情况,当然了,我今天主要测试的是,在通过【添加项目引用】和【手动拷贝DLL】的情况下,这三个方法加载程...[2023/9/20]
如何在.NET电子表格应用程序中创建流程图
前言
流程图是一种常用的图形化工具,用于展示过程中事件、决策和操作的顺序和关系。它通过使用不同形状的图标和箭头线条,将任务和步骤按照特定的顺序连接起来,以便清晰地表示一个过程的执行流程。
在企业环境中,高管和经理利用流程图来规划业务流程,使他们能够识别瓶颈、优化生产力并增强决策能力……用例列...[2023/9/20]
【.NET8】访问私有成员新姿势UnsafeAccessor(下)
前言
书接上回,我们讨论了在.NET8中新增的UnsafeAcce or,并且通过UnsafeAcce or访问了私有成员,这极大的方便了我们代码的编写,当然也聊到了它当前存在的一些局限性,那么它的性能到底如何?我们今天就来实际测试一下。
测试代码
话不多说,直接上代码,本次测试代码如下:
...[2023/9/20]
【.NET8】访问私有成员新姿势UnsafeAccessor(上)
前言
前几天在.NET性能优化群里面,有群友聊到了.NET8新增的一个特性,这个类叫UnsafeAcce or,有很多群友都不知道这个特性是干嘛的,所以我就想写一篇文章来带大家了解一下这个特性。
其实在很早之前我就有关注到这个特殊的特性,但是当时.NET8还没有正式发布,所以我也没有写文章,现...[2023/9/19]
记一次 .NET 某电力系统 内存暴涨分析
一:背景
1. 讲故事
前些天有位朋友找到我,说他生产上的程序有内存暴涨情况,让我帮忙看下怎么回事,最简单粗暴的方法就是让朋友在内存暴涨的时候抓一个dump下来,看一看大概就知道咋回事了。
二:Windbg 分析
1. 到底是谁吃了内存
这个问题说的再多也不为过,一定要看清楚这个程序是如何个性...[2023/9/19]
.NET 8 的 green thread 异步模型被搁置了
.NET 平台上的green thread 异步模型实验结果最近出来了,具体参见:https: github.com/dotnet/runtimelab/i ue 2398 ,实验结果总结一下就是在.NET和 ASP.NET Core中实现Green Thread是可行的。Green Threa...[2023/9/19]
.NET Core 实现Excel的导入导出
目录前言NPOI简介一、安装相对应的程序包1.1、在 “管理NuGet程序包” 中的浏览搜索:“NPOI”二、新建Excel帮助类三、调用3.1、增加一个“keywords”模型类,用作导出3.2、添加一个控制器3.3、编写导入导出的控制器代码3.3.1、重写“Close”函数3.3.2、添加...[2023/9/18]
基于 ActionFilters 的限流库DotNetRateLimiter使用
前言
在构建API项目时,有时出于安全考虑,防止访问用户恶意攻击,希望限制此用户ip地址的请求次数,减轻拒绝服务攻击可能性,也称作限流。接下来,我们就来学习开源库DotNetRateLimiter 如何轻松实现限流。
项目使用配置
安装Nuget包
在新建立的WebAPI项目中,通过Nuget...[2023/9/18]
.NET周刊【9月第2期 2023-09-10】
国内文章
使用 OpenTelemetry 构建 .NET 应用可观测性(2):OpenTelemetry 项目简介
https: www.cnblogs.com/eventhorizon/p/17678251.html
目录
前世今生
OpenTracing
OpenCensus
Ope...[2023/9/15]
.NET使用quartz+topshelf实现定时执行任务调度服务.NET使用quartz+topshelf实现定时执行任务调度服务
一、项目开发
1.新建控制台应用(.NET Framework)
2.配置新项目,自行修改项目名称、位置和框架(建议使用.NET Framework4.5以上版本)
创建好的项目目录如下:
3.右键引用,点击添加引用(R)...
4.引用管理器-&...[2023/9/14]