本文记录在dotnet6的网络和在.NETFramework的行为的变更。在dotnet6下,默认的网络请求在系统网络代理变更的时候,是不会动态切换代理的。例如在应用运行进行网络通讯之后,打开Fiddler抓包,此时将会发现Fiddler抓不到包,只有在应用重启之后才能抓到。或者是开着Fiddler抓包,然后退出Fiddler之后应用就断网了如此行为是因为Fiddler抓包其中的一个原理就是设置系统的本机网络代理,而由于dotnet6下,应用不会动态切换代理,如果在应用启动进行网络通讯之后,再打开Fiddler抓包,在Fiddler打开之后,将会修改系统的本机网络代理,但是dotnet6的应用
对于大型的应用软件,特别是客户端应用软件,应用启动过程中,需要执行大量的逻辑,包括各个模块的初始化和注册等等逻辑。大型应用软件的启动过程都是非常复杂的,而客户端应用软件是对应用的启动性能有所要求的,不同于服务端的应用软件。设想,用户双击了桌面图标,然而等待几分钟,应用才启动完毕,那用户下一步会不会就是点击卸载了。为了权衡大型应用软件在启动过程,既需要执行复杂的启动逻辑,又需要关注启动性能,为此过程造一个框架是一个完全合理的事情。我所在的团队为启动过程造的库,就是本文将要和大家介绍我所在团队开源的dotnetCampus.ApplicationStartupManager启动流程框架的库背景这个
对于大型的应用软件,特别是客户端应用软件,应用启动过程中,需要执行大量的逻辑,包括各个模块的初始化和注册等等逻辑。大型应用软件的启动过程都是非常复杂的,而客户端应用软件是对应用的启动性能有所要求的,不同于服务端的应用软件。设想,用户双击了桌面图标,然而等待几分钟,应用才启动完毕,那用户下一步会不会就是点击卸载了。为了权衡大型应用软件在启动过程,既需要执行复杂的启动逻辑,又需要关注启动性能,为此过程造一个框架是一个完全合理的事情。我所在的团队为启动过程造的库,就是本文将要和大家介绍我所在团队开源的dotnetCampus.ApplicationStartupManager启动流程框架的库背景这个
在dotnet的最佳实践里面,不推荐在静态构造函数里面包含复杂的逻辑,其中也就包含了本文聊的和多线程相关的锁的使用。最佳做法是尽量不要在静态构造函数里面碰到任何和锁以及多线程安全相关的逻辑。本文来告诉大家,在静态构造函数里面使用锁将带来的问题以及原因在.NET的设计里面,一个类型的静态构造函数,是在此类型第一次被碰到时将会被CLR调用。调用的时候,只允许一个线程执行进入静态构造函数,换句话说是一个类型的静态构造函数不会重复被多个线程执行,只会被执行一次。如此即可保证静态构造函数的安全性不同于实例构造函数,实例构造函数大部分由代码里面的new关键词触发,执行代码的仅有一个线程。如果多个线程调用n
在dotnet的最佳实践里面,不推荐在静态构造函数里面包含复杂的逻辑,其中也就包含了本文聊的和多线程相关的锁的使用。最佳做法是尽量不要在静态构造函数里面碰到任何和锁以及多线程安全相关的逻辑。本文来告诉大家,在静态构造函数里面使用锁将带来的问题以及原因在.NET的设计里面,一个类型的静态构造函数,是在此类型第一次被碰到时将会被CLR调用。调用的时候,只允许一个线程执行进入静态构造函数,换句话说是一个类型的静态构造函数不会重复被多个线程执行,只会被执行一次。如此即可保证静态构造函数的安全性不同于实例构造函数,实例构造函数大部分由代码里面的new关键词触发,执行代码的仅有一个线程。如果多个线程调用n
本文记录一个WPF在dotnet6的一个已知问题,且此问题我已修复提交给官方仓库。这是一个只有在dotnet6框架下,非dotnet5也非.NETCore3.1也非.NETFramework的问题,要求开启DPI感觉等级为PerMonitorV2的特性,在带触摸屏上的应用,应用运行过程中,切换屏幕的DPI之后,触摸过程有概率触发在触摸线程访问UI的依赖属性,在触摸线程抛出异常炸掉应用条件必须同时满足以下条件:dotnet6:dotnet6.0.1及以上版本dotnet5和.NETCore3.1和.NETFramework没有此问题,这是新改出来的,细节请参阅原理部分应用开启PerMonitor
本文记录一个WPF在dotnet6的一个已知问题,且此问题我已修复提交给官方仓库。这是一个只有在dotnet6框架下,非dotnet5也非.NETCore3.1也非.NETFramework的问题,要求开启DPI感觉等级为PerMonitorV2的特性,在带触摸屏上的应用,应用运行过程中,切换屏幕的DPI之后,触摸过程有概率触发在触摸线程访问UI的依赖属性,在触摸线程抛出异常炸掉应用条件必须同时满足以下条件:dotnet6:dotnet6.0.1及以上版本dotnet5和.NETCore3.1和.NETFramework没有此问题,这是新改出来的,细节请参阅原理部分应用开启PerMonitor
正确使用HttpClient其实标题应该叫:在控制台程序中使用IHttpClientFactory以前一直使用的是HttpWebRequest,.NET6工程代码提示已过时,使用HttpClient代替,所以尝试使用HttpClient。经过几天的学习探索,基本掌握了HttpClient的使用方法。由于有时会写控制台程序,所以简单封装了一下(写控制台程序时使用,写Web程序时也可以使用但比较另类,一般不用这种方式,注入的方式请搜索别的博客):usingMicrosoft.Extensions.DependencyInjection;usingSystem;usingSystem.Collect
正确使用HttpClient其实标题应该叫:在控制台程序中使用IHttpClientFactory以前一直使用的是HttpWebRequest,.NET6工程代码提示已过时,使用HttpClient代替,所以尝试使用HttpClient。经过几天的学习探索,基本掌握了HttpClient的使用方法。由于有时会写控制台程序,所以简单封装了一下(写控制台程序时使用,写Web程序时也可以使用但比较另类,一般不用这种方式,注入的方式请搜索别的博客):usingMicrosoft.Extensions.DependencyInjection;usingSystem;usingSystem.Collect
异常:TheSSLconnectioncouldnotbeestablished,seeinnerexception.参考自https://www.cnblogs.com/leoxjy/p/10201046.html#5095270Centos报这个问题,Asp.NetCore3.1HttpClient请求Https报错的SSL证书异常的问题,请使用以下方法解决。方法一,非长久之计,有失效风险(已经测试过,晚上好好的,白天就异常)exportDOTNET_SYSTEM_NET_HTTP_USESOCKETSHTTPHANDLER=0;#可不运行以下语句dotnetbuild方法二,应该比较稳妥