收发邮件之 MAILKIT 背景利用代码发送邮件在工作中还是比较常见的,相信大家都用过SmtpClient来处理发送邮件的操作,不过这个类以及被标记已过时,所以介绍一个微软推荐的库MailKit来处理。MailKit开源地址:https://github.com/jstedfast/MailKit需要邮件功能1、服务提供方:需提供邮件收发客户端或Web服务。如:QQ邮箱、GMail邮箱、126、16...
我把《系统设计》系列整理成了 PDF 大家好,我是等天黑。相信很多朋友应该注意到了,我最近发了很多系统设计的文章。是的,到目前为止,已经发了有 7 篇文章。这些内容主要翻译自 Alex Xu 的 《System Design Interview》,有卷一和卷二两本。System Design Interview 是系统设计的热门书籍,并且好评如潮。在 Amazon 网站上可以看到,在计算机操作系统分类上销量第...
PerfView专题 (第二篇):如何寻找 C# 中的 Heap堆内存泄漏 一:背景 上一篇我们聊到了如何去找 热点函数,这一篇我们来看下当你的程序出现了 非托管内存泄漏 时如何去寻找可疑的代码源头,其实思路很简单,就是在 HeapAlloc 或者 VirtualAlloc 时做 Hook 拦截,记录它的调用栈以及分配的内存量, PerfView 会将这个 分配量 做成一个 权重,最后可以根据 权重 高低来找到有问题的调用栈。二:案例演示 为了方...
PerfView专题 (第二篇):如何寻找 C# 中的 Heap堆内存泄漏 一:背景 上一篇我们聊到了如何去找 热点函数,这一篇我们来看下当你的程序出现了 非托管内存泄漏 时如何去寻找可疑的代码源头,其实思路很简单,就是在 HeapAlloc 或者 VirtualAlloc 时做 Hook 拦截,记录它的调用栈以及分配的内存量, PerfView 会将这个 分配量 做成一个 权重,最后可以根据 权重 高低来找到有问题的调用栈。二:案例演示 为了方...
投阿里被拒,说跳槽太频繁!三年两个工作,问题真的那么大吗? 什么样的跳槽频率才不算频繁?一位网友发问:投阿里被拒,理由是跳槽太频繁,不合适。三年两个工作,问题真的那么大吗?网友说,阿里对稳定性要求非常高,三年两跳和五年三跳都是红线,楼主确实频率高了些,频繁跳槽说明他开始就没想好。有人说,最保险的跳槽频次是五年两跳。也有人说,三年两跳怎么就频繁了?又不是老黄牛,只要在某方面出类拔萃,一年一跳都没事。有人说要看面试评价,中上的没有稳定...
为 EditorConfig 文件开启错误编译失败 前言上次,我们介绍了 EditorConfig 文件可以自定义代码样式规则。但是,当我们想设置代码样式严重性,比如不允许编译成功时,又踩了不少坑。修改无效想把 var 首选项,从“首选"var" 仅重构”,改成“首选显示类型 错误”:保存后再次打开 UI,发现配置没变。后来发现,需要一次改变一个下拉框的值,保存后关闭再次打开,修改另一个。无错误提示编写示例代码,发现检查出...
PerfView专题 (第一篇): 如何寻找热点函数 一:背景 准备开个系列来聊一下 PerfView 这款工具,熟悉我的朋友都知道我喜欢用 WinDbg,这东西虽然很牛,但也不是万能的,也有一些场景他解决不了或者很难解决,这时候借助一些其他的工具来辅助,是一个很不错的主意。很多朋友喜欢在项目中以记录日志的方式来监控项目的流转情况,其实 CoreCLR 也是这样的,参考如下代码:voidgc_heap::fix_alloc...
Blazor University (43)JavaScript 互操作 —— 类型安全 原文链接:https://blazor-university.com/javascript-interop/calling-dotnet-from-javascript/type-safety/类型安全在从 JavaScript 调用 .NET[1] 部分中,您可能已经注意到我们的 JavaScript 的第 6 行在将随机生成的数字传递给 .NET 之前调用了 toSt...
基于ABP的AppUser对象扩展 在ABP中AppUser表的数据字段是有限的,现在有个场景是和小程序对接,需要在AppUser表中添加一个OpenId字段。今天有个小伙伴在群中遇到的问题是基于ABP的AppUser对象扩展后,用户查询是没有问题的,但是增加和更新就会报"XXX field is required"的问题。本文以AppUser表扩展OpenId字段为例进行介绍。一.AppUser实体表...
【温故知新】C# Linq中 Where使用技巧 微信公众号:趣编程ACE关注可了解更多的.NET日常实战开发技巧,如需源码 后台回复 源码 即可;如果觉得对你有帮助,欢迎关注C# Linq中 Where使用技巧hello 大家好,很开心又能重新分享C#编程开发技巧了,之前因为工作和生活没有达成一个很好的平衡,导致状态下滑,好像断更很久了。在这里不得自我检讨一波,以后继续分享~大家一起交流呀~你可能不知道的源码网站.Ne...
ASP.NET Core 5.0中的Host.CreateDefaultBuilder执行过程 通过Rider调试的方式看了下ASP.NET Core 5.0的Web API默认项目,重点关注Host.CreateDefaultBuilder(args)中的执行过程,主要包括主机配置、应用程序配置、日志配置和依赖注入配置这4个部分。由于水平和篇幅有限,先整体理解、建立框架,后面再逐步细化,对每个配置部分再详细拆解。一.创建默认主机Host.CreateDefau...
【Maui正式版】创建可跨平台的Maui程序,以及有关依赖注入、MVVM双向绑定的实现和演示... 前言:Maui终于在2022年8月9日推送出来了。今儿就迫不及待来把玩一下先。A、我本地已有VS2022,不过版本比较老,此处选择更新。工具 -> 获取功能和更新里面,可以获取到新版本更新。B、最新版本是17.3.0,我本地只有17.1.1,选择 更新。C、让网络飞一会儿。1、更新完毕,打开VS,创建一个新的Maui项目(.NET MAUI应用)2、创建成功以后,右...
WinForm(六)组合布局属性 WinForm是基于控件的,不像code+mark的架构,可以非常灵活的用mark来布局,它只能用控件布局属性和窗口控件来完成对UI的布局。容器控件有一组控件叫容器控件,对布局特别有作用,它们分别是:TableLayoutPanel:表格布局面板,每个单元格都可以用来作为其他控件的载体,通过设置行或列的是一个以行和列的大小型来确定每个单元格所占的大小FlowLayoutP...
程序员双手飞快敲键盘的时候是在敲代码吗? 当你看到一个程序员的两只手在键盘上上下翻飞,行云流水的时候,多半不是在敲击代码大概率是在跟产品经理撕逼讨论需求另一种可能就是在跟测试打口水仗10%几率是在论坛码字摸鱼或者和人家开喷了。1%几率是在跟MM聊天可以手速飞快而不需要停下思考的代码,多半也可以靠Ctrl + C/V 搞定。而当你看到程序员双目呆滞,遥望天际的时候,多半编程开始了程序员们都知道的,程序的灵魂是可复制...
WebView2 通过 PuppeteerSharp 实现RPA获取壁纸 (案例版) 此案例是《.Net WebView2 项目,实现 嵌入 WEB 页面 Chromium内核》文的续集。主要是针对WebView2的一些微软自己封装的不熟悉的API,有一些人已经对 PuppeteerSharp很熟悉了,那么,直接用 PuppeteerSharp的话,那就降低了学习成本,那还是很有必须要的。之前自己也RPA获取过联盟的高清原画,现在就获取下王者的高清壁纸。王...
客户端应用试用限制设计 1.概要最近接到公司安排的任务给客户端设计一个“试用30天”的一个需求,其功能主要是为了防止客户拿到产品之后不支付尾款继续使用。众所周知靠纯软件想防“盗版”,“限制试用”等做法是行业难题。只要价值足够高一定有人会破解绕过你的所有防线达到免费试用的目的。那为什么还要写这篇文章呢,主要是为了给遇到同样问题的小伙伴提供一些"纸糊"的限制用户试用的思路,作为一个连接点的文章。这里...
ASP.NET Core 中的重定向 前言在《如何使用ASP.NET Core Web API实现短链接服务》中,我们使用了Redirect方法返回跳转状态码:[HttpGet("{shortUrl}")]publicIActionResultGetUrl(stringshortUrl){varhashids=newHashids("公众号MyIO",minHashLength...
老板加薪!看我做的WPF Loading!!! 老板加薪!看我做的WPF Loading!!!控件名:RingLoading作者:WPFDevelopersOrg原文链接: https://github.com/WPFDevelopersOrg/WPFDevelopers.Minimal框架使用大于等于.NET40;Visual Studio 2022;项目使用 MIT 开源许可协议;最外层使用Viewbox...
解决ASP.NET Core在Task中使用IServiceProvider的问题 前言问题的起因是在帮同事解决遇到的一个问题,他的本意是在EF Core中为了解决避免多个线程使用同一个DbContext实例的问题。但是由于对Microsoft.Extensions.DependencyInjection体系的深度不是很了解,结果遇到了新的问题,当时整得我也有点蒙了,所以当时也没解决,而且当时快下班了,就想着第二天再解决。在地铁上,经过我一系列的...
Rider调试ASP.NET Core时报thread not gc-safe的解决方法 新建了一个ASP.NET Core 5.0的Web API项目,当使用断点调试Host.CreateDefaultBuilder(args)时,进入该函数后查看中间变量的值,报错Evaluation is not allowed: The thread is not at a GC-safe point。在群里问了也没人回应,可能没有遇到过这个问题吧。一.解决问题的过...