自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(12)
  • 资源 (2)
  • 收藏
  • 关注

原创 10分钟理解契约测试及如何在C#中实现

Pact需要使用ASP.Net Core项目的Startup类来启动Web服务器,但是,在最新的.NET Core中,传统的Startup.cs被Minimal API取代。接下来,让我们运行测试,测试运行完成后,测试项目的pact文件夹下会生成一个“MyAPI Consumer-MyAPI.json”,这个Json文件中保存了预期的输入和输出,如下图。此外,契约测试框架将读取保存的 Pact Json 文件,并向服务提供者(服务器)发送请求,并且将根据 Pact Json 文件中的预期输出来验证响应。

2023-09-15 16:15:00 103 1

原创 你真的知道吗?catch、finally和return哪个先执行

因此,无论是throw异常的时候还是return返回值的时候,被调用的方法只是把异常对象或者返回值放到了这个特定的位置,在return或者throw执行之后,如果方法中还有finally等没有执行完成的代码,那么这些代码仍然会在return、throw之后继续执行,然后方法执行才会结束,之后调用这个方法的代码才会从Stack Frame中读取到返回值或者获取到被调用的方法抛出的异常对象。上面程序执行结果是“bb”。接下来,我们再来捉弄一下方法的返回值,我们尝试在finally代码块中修改方法的返回值。

2023-08-02 06:04:27 133

原创 不用Blazor WebAssembly,开发在浏览器端编译和运行C#代码的网站

我将会为大家分享一个如何用.NET技术开发“在浏览器端编译和运行C#代码的工具”,核心的技术就是用C#编写不依赖于Blazor框架的WebAssembly以及Roslyn技术。

2023-02-10 06:38:58 636 1

原创 天坑,这样一个lambda随机取数据也有Bug

这段代码有的时候运行正常,有的时候则会断言失败,从而程序抛出异常,令人不解。

2022-12-07 06:21:03 191

原创 Entity Framework Core 7中高效地进行批量数据插入

因为之前的版本中,EF Core无法实现高效地批量插入、修改、删除数据,所以我开发了Zack.EFCore.Batch这个开源项目,比较受大家的欢迎,获得了400多个star。现在支持.NET 7了

2022-12-01 10:24:10 1634

原创 谁说.NET没有GC调优,只改一行代码就让程序不再占用内存

经常看到有群友调侃“为什么搞Java的总在学习JVM调优?那是因为Java烂!我们.NET就不需要搞这些!”真的是这样吗?今天我就用一个案例来分析一下。

2022-11-30 08:00:00 289 1

原创 两步开发.NET Core剪裁器,并且开源它

十天前,我发布了对.NET Core程序进行瘦身的开源软件Zack.DotNetTrimmer,与.NET Core内置的剪裁器相比,Zack.DotNetTrimmer不仅对程序的剪裁效果更好,而且还支持WPF、WinForm程序。很多朋友对于这个开源项目的原理很感兴趣,因此我将通过这篇文章为大家介绍它的工作原理。技术1、检测程序加载的程序集和类微软提供了用于对.NET Core的运行时行为进行分析的库Diagnostics,它可以获取丰富的运行时信息,比如类的实例创建、程序集加载、类加载、方法调用

2022-03-22 08:00:00 235

原创 .NET Core剪裁器Zack.DotNetTrimmer升级瘦身引擎,并支持剪裁计划的录制和回放

上周,我发布了对.NET Core程序进行瘦身的开源软件Zack.DotNetTrimmer,与.NET Core内置的剪裁器相比,Zack.DotNetTrimmer不仅对程序的剪裁效果更好,而且还支持WPF、WinForm程序。下面是Zack.DotNetTrimmer与.NET内置的剪裁器的对比图:项目地址:https://github.com/yangzhongke/Zack.DotNetTrimmer一周时间内,相关文章在各平台获得了超过四万阅读量,项目收获了将近200个star,

2022-03-21 10:10:48 224

原创 一个更好用的.NET Core程序瘦身器,减小程序尺寸到1/3

一、为什么要开发.NET Core程序瘦身器? .NET Core具有【剪裁未使用的代码】的功能,但是由于它是使用静态分析来实现的,因此它的剪裁效果并不是最优的。它有如下两个缺点:不支持Windows Forms和WPF,而对于程序剪裁功能需求最强烈的其实反而是桌面程序的开发者。 无法删除运行时没有被使用的程序集。比如,我们的程序中使用了A程序集,A程序又引用了B、C两个程序集,A程序集中只有M1方法使用了B程序集,而A程序集中只有M2方法使用了C程序集。我们的程序中只调用了A中的M1方法,而从.

2022-03-08 17:45:50 515

原创 Dev C++中配置YZKGame游戏引擎项目的方法

多年前,我开发了使用C语言进行游戏开发的框架YzkGame,让初学者可以通过游戏开发的形式学习C语言,并且基于它编写了《零基础趣学C语言》这本书。当时,我只提供了在Visual Studio中使用YzkGame进行开发环境配置的步骤,并且提供了免配置的傻瓜化项目生成向导。有一些大学教学的时候使用的是Dev C++,而非Visual Studio,而很多初学者是不知道如何在Dev C++配置第三方库的,因此我下面就讲解一下在Dev C++中配置YzkGame游戏引擎库的使用方法,思路同样适用于在Dev C++

2022-02-21 13:05:20 2540

原创 如何让asp.net core mvc发布时候不编译cshtml视图

为了避免运行时编译cshtml造成的性能问题,ASP.NET Core MVC项目在发布的时候默认会把cshtml文件编译到dll中,但是有的项目希望能在运行时修改cshtml视图文件。网上有文章讲到过在csproj文件中添加false等方式来修改这个默认的行为,但是那些做法都是旧版.net core的做法,在.net 5/6等新版本中不起作用。下面的方法是我验证过的在最新版的.net core中有效的不编译cshtml视图的做法。步骤1、安装Nuget包:Install-Package Micro

2022-02-09 08:00:00 359

原创 .NET Core分析程序集最优美的方法,不用Assembly.LoadFile(),超越ReflectionOnlyLoad

在编写.NET程序的时候,如果需要对一个程序集文件进行分析,我们可以使用Assembly.LoadFile()来加载这个程序集,然后对LoadFile()方法返回的Assembly对象进行进一步的分析。但是Assembly.LoadFile()方法会以执行为目的把程序集加载到程序中,因此它对于被加载的程序集文件有严格的要求,比如,如果被程序集所依赖的程序集不存在,那么LoadFile()会抛出异常,再比如,在.NET Core中加载.NET Framework的程序集,LoadFile()也会抛出异常。如果

2022-02-08 18:07:48 243

html5开发的多线程下载器.zip

html5开发的多线程下载器 因为下载是使用XHR下载的,有跨域问题,因此需要在被下载的文件服务器上开启cors,允许当前网站下载: Access-Control-Allow-Origin *.youzack.com; Access-Control-Allow-Methods GET,POST,OPTIONS; Access-Control-Allow-Headers Range; Access-Control-Expose-Headers Content-Type,Content-Length;

2020-02-22

76 万英语单词及中文释义数据库.zip

这是一份英文->中文字典的双解词典数据库 CSV本文格式,所以可以用任何编程语言读取分析,并且导入自己用的数据库76 万个词条

2020-02-22

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除