自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 ConcurrentDictionary字典操作竟然不全是线程安全的?

好久不见,马甲哥封闭居家半个月,记录之前遇到的一件小事。标题不准确,实际上ConcurrentDictionary<TKey,TValue>绝大部分api都是线程安全且原子性的[1],唯二的例外是接收工厂函数的api:AddOrUpdate、GetOrAdd,这两个api不是原子性的,需要引起重视。All these operations are atomic and are thre...

2022-09-29 08:00:24 13

转载 朋友公司招聘用的一套C#基础面试题,10个码农8个错2个蒙,我也跳坑了…

朋友公司的一套面试题,很有意思,参见如下代码:classProgram{staticvoidMain(string[]args){vart=Num();Console.WriteLine(t);Console.ReadLine();}...

2022-09-28 08:00:46 7

转载 .NET Core 控制台如何嵌入运行 Web API网站?

【导读】我们知道在.NET Framework中可以嵌入运行Web APi,那么在.NET Core(.NET 6+称之为.NET)中如何内嵌运行Web Api呢,在实际项目中这种场景非常常见,那么我们本节以.NET 6.0作为演示示例一起来瞅瞅。内嵌运行.NET Core Web APi接下来我们通过控制台作为主程序来启动Web APi,首先我们创建名为EmbedWebApi的控制台程序,然后创...

2022-09-27 08:00:54 10

原创 C# 二十年语法变迁之 C# 2,C# 3 ,C# 4参考

C# 二十年语法变迁之 C# 2,C# 3 ,C# 4参考https://benbowen.blog/post/two_decades_of_csharp_i/自从 C# 于 2000 年推出以来,该语言的规模已经大大增加,我不确定任何人是否有可能在任何时候都对每一种语言特性都有深入的了解。因此,我想写一系列快速参考文章,总结自 C# 2.0 以来所有主要的新语言特性。我不会详细介绍它们中的...

2022-09-25 19:42:00 53

转载 过早的给方法中 引用对象 设为 null 可被 GC提前回收吗?

经常在代码中看到有人将 null 赋值给引用类型,来达到让 GC 提前回收的目的,这样做真的有用吗?今天我们就来研究一下。为了方便讲解,来一段测试代码,提前将 test1=null ,然后调用 GC.Collect() 看看是否能提前回收。平台采用: .net5publicclassProgram{staticvoidMain(string[]args)...

2022-09-23 08:00:35 8

转载 EntityFrameworkCore 模型自动更新(上)

【导读】嗯,距离上一次写博文已经过去近整整十个月,还是有一些思考,但还是变得懒惰了,心思也不再那么专注,有点耗费时间,学习也有点停滞不前,那就顺其自然,随心所欲吧,等哪天心血来潮,想写了就写写。模型自动更新(上)一般团队人数很少时,使用EF Core内置迁移基本已满足,满足的基本前提首先要生成迁移文件,然后和数据库进行对比,但团队人数一多,迁移文件等等涉及提交冲突等等,所以大部分情况下,我个人认为...

2022-09-22 08:00:49 6

转载 EntityFrameworkCore 模型自动更新(下)

【导读】上一篇我们讨论到获取将要执行的迁移操作,到这一步为止,针对所有数据库都通用,在此之后需要生成SQL脚本对于不同数据库将有不同差异,我们一起来瞅一瞅。SQLite脚本生成差异在上一篇拿到的迁移操作类即MigrationOperation为执行所有其他操作类的父类,比如添加列操作(AddColumnOperation),修改列操作(AlterColumnOperation)、创建表操作(Cre...

2022-09-22 08:00:49 8

转载 使用C#编写一个.NET分析器(一)

译者注这是在Datadog公司任职的Kevin Gosse大佬使用C#编写.NET分析器的系列文章之一,在国内只有很少很少的人了解和研究.NET分析器,它常被用于APM(应用性能诊断)、IDE、诊断工具中,比如Datadog的APM,Visual Studio的分析器以及Rider和Reshaper等等。之前只能使用C++编写,自从.NET NativeAOT发布以后,使用C#编写变为可能。笔者最...

2022-09-21 08:00:42 18

转载 跨语言调用C#代码的新方式-DllExport

简介上一篇文章使用C#编写一个.NET分析器文章发布以后,很多小伙伴都对最新的NativeAOT函数导出比较感兴趣,今天故写一篇短文来介绍一下如何使用它。在以前,如果有其他语言需要调用C#编写的库,那基本上只有通过各种RPC的方式(HTTP、GRPC)或者引入一层C++代理层的方式来调用。自从微软开始积极开发和研究Native AOT以后,我们有了新的方式。那就是直接使用Native AOT函数导...

2022-09-20 08:00:49 50

原创 C# 二十年语法变迁之 C# 5 和 C# 6参考

C# 二十年语法变迁之 C# 5 和 C# 6参考https://benbowen.blog/post/two_decades_of_csharp_ii/自从 C# 于 2000 年推出以来,该语言的规模已经大大增加,我不确定任何人是否有可能在任何时候都对每一种语言特性都有深入的了解。因此,我想写一系列快速参考文章,总结自 C# 2.0 以来所有主要的新语言特性。我不会详细介绍它们中的任何一个,但...

2022-09-19 08:00:28 87

转载 aardio+ WebView2!JavaScript 快速开发独立 EXE 程序

Electron 不错,但也不是完美的。Electron 带来了很多优秀的桌面软件,但并不一定总是适合我们的需求。多个选择总是好事!▶我使用 Electron 遇到的一些麻烦1、Electron 太大了!2、每一个 Electron 写的软件都要重复地带一个 Electron …… 升级与分发都不方便。3、Electron 不方便嵌入其他窗口界面,与其他语言、技术融合不易。4、并不是所有桌面软件...

2022-09-16 08:00:10 128

转载 总在用户态调试 C# 程序,终还是搭了一个内核态环境

一:背景 一直在用 WinDbg 调试用户态程序,并没有用它调试过 内核态,毕竟不是做驱动开发,也没有在分析 dump 中需要接触用内核态的需求,但未知的事情总觉得很酷,加上最近在看 《深入解析 Windows 操作系统》 一书,书中有不少案例需要深入到 内核态 ,所以这篇准备整理一下如何用 WinDbg 调试 C# 内核态吧。操作环境:Windbg Preview宿主机:Windows 10虚拟...

2022-09-14 08:00:52 15

原创 C# 二十年语法变迁之 C# 7参考

C# 二十年语法变迁之 C# 7参考https://benbowen.blog/post/two_decades_of_csharp_iii/自从 C# 于 2000 年推出以来,该语言的规模已经大大增加,我不确定任何人是否有可能在任何时候都对每一种语言特性都有深入的了解。因此,我想写一系列快速参考文章,总结自 C# 2.0 以来所有主要的新语言特性。我不会详细介绍它们中的任何一个,但我希望...

2022-09-12 22:39:00 616

转载 aardio + .NET 快速开发独立 EXE 程序,可防 ILSpy 反编译

▶简介aardio 可以非常方便地调用 .NET( 不需要任何复杂的步骤 )。.NET 在 aardio 中很好用,系统自带 .NET 组件以及各种开源 .NET 组件在 aardio 用户中也很受欢迎。aardio + .NET 生成的 EXE —— 可避免被 ILSpy 直接反编译。aardio 调用 .NET 示例://导入 .NET 支持库import dotNet; //导入.N...

2022-09-09 08:00:26 61

转载 为什么 C# 访问 null 字段会抛异常?

一:背景 1. 一个有趣的话题最近在看 硬件异常 相关知识,发现一个有意思的空引用异常问题,拿出来和大家分享一下,为了方便讲述,先上一段有问题的代码。namespaceConsoleApp2{internalclassProgram{staticPersonperson=null;staticvoidMain(strin...

2022-09-08 08:00:16 11

转载 C# 读写文件从用户态切到内核态,到底是个什么流程?

一:背景 1. 一个很好奇的问题我们在学习 C# 的过程中,总会听到一个词叫做 内核态 ,比如说用 C# 读写文件,会涉及到代码从 用户态 到 内核态 的切换,用 HttpClient 获取远端的数据,也会涉及到 用户态 到 内核态 的切换,那到底这是个什么样的交互流程?毕竟我们的程序是无法操控 内核态 ,今天我们就一起探索下。二:探究两态的交互流程 1. 两个态的交界在哪里我们知道人间和地府的交...

2022-09-07 08:00:41 25

转载 聊一聊 C# 后台GC 到底是怎么回事?

一:背景 写这一篇的目的主要是因为.NET领域内几本关于阐述GC方面的书,都是纯理论,所以懂得人自然懂,不懂得人也没法亲自验证,这一篇我就用 windbg + 源码 让大家眼见为实。二:为什么要引入后台GC 1. 后台GC到底解决了什么问题解决什么问题得先说有什么问题,我们知道 阻塞版GC 有一个显著得特点就是,在 GC 触发期间,所有的用户线程都被 暂停了,这里的 暂停 是一个统称,画图如下:这...

2022-09-06 08:00:44 9

原创 C# 二十年语法变迁之 C# 8参考

C# 二十年语法变迁之 C# 8参考自从 C# 于 2000 年推出以来,该语言的规模已经大大增加,我不确定任何人是否有可能在任何时候都对每一种语言特性都有深入的了解。因此,我想写一系列快速参考文章,总结自 C# 2.0 以来所有主要的新语言特性。我不会详细介绍它们中的任何一个,但我希望这个系列可以作为我自己(希望你也是!)的参考,我可以不时回过头来记住我使用的工具工具箱里有。????开始之前的一...

2022-09-04 22:38:00 156

原创 .Net Core&RabbitMQ消息存储可靠机制

前言上篇讨论过消息投递和消息消费过程中如何确保可靠传输,也提及到消息到达RabbitMQ中到被消费前也需要可靠的留存,可因许多的不确定因素会影响着消息的存在与否。消息中转点生产者发送消息到RabbitMQ中,如果交换机根据自身类型和RoutingKey能够匹配到队列,则存入相关队列,但当匹配不到队列时,遇到两种情况而使得消息走向不同的方向,消息可能会丢失或是发回给生产者,这取决于生产者对消息的配置...

2022-09-03 00:00:32 406

原创 .Net Core&RabbitMQ消息转发可靠机制

前言生产者发送消息到了队列,队列推送数据给了消费者,这里存在一些问题需要思考下生产者如何确保消息一定投递到了队列中RabbitMQ 丢失了消息(下文暂不涉及这块)队列如何确保消费者收到了消息呢生产者可靠发送执行流程当生产者将消息发送出去后,如果不进行特殊设置,默认情况下,发送消息操作后是没有返回任何消息给生产者的,这时生产者是不知道消息有没有真的到达了RabbitMQ,消息可能在到达RabbitM...

2022-09-02 08:00:32 262

原创 .Net Core&RabbitMQ基本使用

队列模式https://www.rabbitmq.com/getstarted.html对以上几种模式进行简要分类,可以分成如下三类(RPC暂不考虑)简单队列模式,单发单收,一对一模式Worker模式,单发多收(一个消息一个接收者,多个消息多个接收者),一对多模式发布订阅模式,包括发布订阅、路由、通配符模式,这三种只是交换机类型不同简单队列模式队列作为中间件,在生产者和消费者中间承担消息传递的通道...

2022-09-01 08:00:20 336

原创 .Net Core&RabbitMQ死信队列

过期时间RabbitMQ可以为消息和队列设置过期时间Time To Live(TTL)。其目的即过期。消息过期时间消息存储在队列中时,如果想为其设置一个有限的生命周期,而不是一直存储着,可以为其设置过期时间。比如,一条消息,我想要三分钟内有效,三分钟后再接收到该消息就算过时了,如果在队列中存储已经超过三分钟,消费者再去接收就是过时了,那便没有意义了。为消息设置过期时间可以从两方面着手,一是为消息本...

2022-08-31 08:00:22 86

转载 使用.NET简单实现一个Redis的高性能克隆版(七-完结)

译者注该原文是Ayende Rahien大佬业余自己在使用C# 和 .NET构建一个简单、高性能兼容Redis协议的数据库的经历。首先这个"Redis"是非常简单的实现,但是他在优化这个简单"Redis"路程很有趣,也能给我们在从事性能优化工作时带来一些启示。原作者:Ayende Rahien原链接:https://ayende.com/blog/197665-C/high-performanc...

2022-08-30 08:00:12 21

原创 C# 二十年语法变迁之 C#9参考

C# 二十年语法变迁之 C# 9参考自从 C# 于 2000 年推出以来,该语言的规模已经大大增加,我不确定任何人是否有可能在任何时候都对每一种语言特性都有深入的了解。因此,我想写一系列快速参考文章,总结自 C# 2.0 以来所有主要的新语言特性。我不会详细介绍它们中的任何一个,但我希望这个系列可以作为我自己(希望你也是!)的参考,我可以不时回过头来记住我使用的工具工具箱里有。:)开始之前的一个小...

2022-08-29 08:00:11 250

转载 使用.NET简单实现一个Redis的高性能克隆版(六)

译者注该原文是Ayende Rahien大佬业余自己在使用C# 和 .NET构建一个简单、高性能兼容Redis协议的数据库的经历。首先这个"Redis"是非常简单的实现,但是他在优化这个简单"Redis"路程很有趣,也能给我们在从事性能优化工作时带来一些启示。原作者:Ayende Rahien原链接:https://ayende.com/blog/197569-B/high-performanc...

2022-08-26 08:00:39 27

转载 使用.NET简单实现一个Redis的高性能克隆版(四、五)

译者注该原文是Ayende Rahien大佬业余自己在使用C# 和 .NET构建一个简单、高性能兼容Redis协议的数据库的经历。首先这个"Redis"是非常简单的实现,但是他在优化这个简单"Redis"路程很有趣,也能给我们在从事性能优化工作时带来一些启示。由于接下来的两篇较短,本文一起把它们一起翻译原作者:Ayende Rahien原链接:https://ayende.com/blog/19...

2022-08-25 08:00:49 17

转载 使用.NET构建简单的高性能Redis(三)

译者注该原文是Ayende Rahien大佬业余自己在使用C# 和 .NET构建一个简单、高性能兼容Redis协议的数据库的经历。首先这个"Redis"是非常简单的实现,但是他在优化这个简单"Redis"路程很有趣,也能给我们在从事性能优化工作时带来一些启示。原作者:Ayende Rahien原链接:https://ayende.com/blog/197473-C/high-performanc...

2022-08-24 08:00:26 18

转载 在 C# 中使用 Span<T> 和 Memory<T> 编写高性能代码

目录:.NET 中支持的内存类型.NET Core 2.1 中新增的类型访问连续内存: Span 和 MemorySpan 介绍C# 中的 SpanSpan 和 ArraysSpan 和 ReadOnlySpanMemory 入门ReadOnlyMemorySpan 和 Memory 的优势连续和非连续内存缓冲区不连续的缓冲区: ReadOnly 序列实际场景Benchmarking 基准测试安装...

2022-08-23 08:00:06 50

转载 养成这个习惯,学习.NET可以少走很多弯路

随着时代的发展,很多曾经风靡一时的编程语言后来被新的开发语言取代、慢慢走向没落,如:Delphi、Perl、Adobe Flash、Ruby等,但 .NET 始终坚若磐石,它作为一款备受受欢迎的开发平台,到底有什么优势呢? 1. 职业发展:在国内,.NET 不及Java、Python火热,但是.Net职位的竞争激烈程度要低很多,所以.NET开发从业者有更多选择的空间,尤其是工控行业,.NE...

2022-08-22 00:00:04 18

转载 微软和 Canonical 宣布适用于 Ubuntu 22.04 LTS 的原生 .NET 6

微软和 Canonical 达成新的合作伙伴关系,宣布了 Ubuntu 22.04 LTS 主机和容器的原生 .NET 可用性。.NET 开发人员现在可以通过一个 “apt install” 命令从 Ubuntu 22.04 LTS 安装 ASP.NET 和 .NET SDK 和运行时Canonical 为 .NET 6 LTS 和 ASP.NET 运行时发布新的、超小型 OCI-complian...

2022-08-20 08:00:14 21

原创 使用dotnet-monitor分析在Kubernetes的应用程序:Sidecar模式

dotnet-monitor可以在Kubernetes中作为Sidecar运行,Sidecar是一个容器,它与应用程序在同一个Pod中运行,利用Sidecar模式使我们可以诊断及监控应用程序。如下图所示,这是我们最终要实现的目标,通过可视化界面查看应用程序的指标信息。应用服务创建dotnetmonitor.yaml文件,如下所示。apiVersion: apps/v1kind: Deployme...

2022-08-19 08:00:01 43

转载 使用.NET简单实现一个Redis的高性能克隆版(二)

使用.NET简单实现一个Redis的高性能克隆版(二)[1]译者注该原文是Ayende Rahien大佬业余自己在使用C# 和 .NET构建一个简单、高性能兼容Redis协议的数据库的经历。首先这个"Redis"是非常简单的实现,但是他在优化这个简单"Redis"路程很有趣,也能给我们在从事性能优化工作时带来一些启示。原作者:Ayende Rahien 原链接:https://ayende.com...

2022-08-19 08:00:01 23

转载 .NET性能优化-快速遍历List集合

简介System.Collections.Generic.List<T>是.NET中的泛型集合类,可以存储任何类型的数据,因为它的便利和丰富的API,在我们平时会广泛的使用到它,可以说是使用最多的集合类。在代码编写中,我们经常需要遍历一个List<T>集合,获取里面的得元素进行一些业务的处理。通常情况下,集合内的元素不是很多,遍历起来非常快。但是对于一些大数据处理,统计,实...

2022-08-17 08:00:35 56

转载 解决ASP.NET Core在Task中使用IServiceProvider的问题

前言问题的起因是在帮同事解决遇到的一个问题,他的本意是在EF Core中为了解决避免多个线程使用同一个DbContext实例的问题。但是由于对Microsoft.Extensions.DependencyInjection体系的深度不是很了解,结果遇到了新的问题,当时整得我也有点蒙了,所以当时也没解决,而且当时快下班了,就想着第二天再解决。在地铁上,经过我一系列的思维跳跃,终于想到了问题的...

2022-08-16 08:00:24 75

原创 C# 二十年语法变迁之 C# 10参考

C# 二十年语法变迁之 C# 10参考https://benbowen.blog/post/two_decades_of_csharp_vi/自从 2000 年引入 C# 以来,该语言的规模已经大大增加,我不确定任何人是否有可能随时对每个语言特性都有深入的了解。因此,我想写一系列快速参考文章,总结自 C# 2.0 以来所有主要的新语言特性。我不会详细介绍它们中的任何一个,但我希望这个系列可以作为我...

2022-08-15 08:00:44 56

转载 时隔三年半,.NET Framework发布了 4.8.1 版本

.NET 开发平台 .NET Framework 最新的 4.8.1 版本随着 Visual Studio 2022 17.3 版本发布了。它的上一个版本还是 2019 年 4 月的 .NET Framework 4.8 ,开发时长约三年半的 .NET Framework 带来了一些新东西:  原生 Arm64 支持  .NET Framework 4.8.1 新增原生 ...

2022-08-12 08:00:52 1058

转载 透视C# Span<T>数据结构

先谈一下我对Span的看法, Span是指向任意连续内存空间的类型安全、内存安全的视图,可操作的滑动窗口。Span和Memory都是包装了可以在pipeline上使用的结构化数据的内存缓冲器,他们被设计用于在pipeline中高效传递数据。定语解读这里面许多定语,值得我们细细揣摩:1. 指向任意连续内存空间:支持托管堆,原生内存、堆栈, 这个可从Span的几个重载...

2022-08-11 08:00:55 24

转载 如何流畅的调试.NET官方组件的源代码

起因最近在研究ServiceScope的内一些内在运行逻辑,发现相关资料非常少,只有讲IOC相关的文章有说Core时代的官方依赖注入怎么使用。。遂决定还是要去看源代码。这部分源代码在Microsoft.Extensions.DependencyInjection库中,源代码位置在src/libraries[1]下。阅读了一点,发现内部解析服务的时候会来回倒腾,那看代码的方...

2022-08-10 08:00:19 49

转载 .NET Community Toolkit 从 8.0.0 版本开源, 包含 MVVM 工具包

.NET 社区工具包(.NET Community Toolkit )现已以 8.0.0 版发布!  .NET 社区工具包是一组适用于所有 .NET 开发人员,且与任何特定 UI 平台无关的帮助程序和 API。该工具包由 Microsoft 维护和发布,是 .NET 基金会的一部分,它还被多个微软内部项目和应用程序使用,例如 Microsoft Store。  .NET ...

2022-08-09 08:00:21 446

原创 创建、检查和反编译世界上(几乎)最短的 C# 程序

创建、检查和反编译世界上(几乎)最短的 C# 程序原文来自https://www.stevejgordon.co.uk/creating-inspecting-decompiling-the-worlds-smallest-csharp-program在这篇文章中,我认为创建世界上(几乎)最短的 C# 程序然后深入研究幕后发生的一些细节可能会很有趣。这篇文章不是为了解决现...

2022-08-08 08:00:13 235

CAD2006注册机免积分下载

方便快捷的破解能够让您的CAD学习道路更加的痛快!希望你能在这段旅途中享受到学习带来的快感!~

2011-07-26

VB.NET实现MSFLEXGRID鼠标滚轮.rar

用VB。net实现MSFLEXGRID鼠标滚轮滚动时,其内容也跟着改变。

2011-06-17

金山卫士部分已经开放了的源代码下载

金山卫士已经开放了的源代码下载,由于金山官方的网站访问量太大,可以到这里下载,只需1分就可以获得目前金山已经开放了的部分源代码,何乐而不为呢?

2010-12-02

强大的第三方控件DotNetBar下载

支持.NET2003 、2005、2008的强大的第三方控件DotNetBar下载,已经破解的版本,欢迎大家前来下载!

2010-10-22

PowerDesigner教程.chm

完全可以使用的PowerDesigner教程,绝对可以使用的!

2010-07-13

分区魔术师完整版下载

完整版的分区魔术师,方便任何人的使用,支持2003\xp

2010-07-13

详细设计说明书-软件设计文档国家标准

说明书编写规范软件质量保证计划编写规范数据库设计说明书编写规范数据要求说明书编写规范详细设计说明书

2010-07-12

史上最牛的网络收音机

网络收音机,蛮使用的,我已经杀过毒了,完全可以信赖!

2010-04-16

史上最完整的installsheild破解

installsheild破解 已经经杀软验证,并试用成功

2010-04-16

史上最牛的arcgis全套破解软件

arcgis破解软件 包括arcgis9.3 ,arcsde9.3等,

2010-04-16

VBA开发人员手册.pdf

用VB进行GIS开发的基础教程,通过生动详细的描述,将CAD二次开发的知识告诉给大家,是一本很不错的资料,希望大家多来看看。

2009-09-11

C#.Net网络程序开发-Socket篇.pdf

文档详细的讲解了c#网络编程的实现,是非常有用的c#socket编程资料,

2009-08-26

空空如也

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

TA关注的人

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