随笔分类 - .NET
摘要:基于Sonar和.editorconfig的代码lint 在项目根目录下创建Directory.Build.props文件,在里面引入SonarAnalyzer.CSharp包: <Project> <PropertyGroup> <TargetFramework>net8.0</TargetFra
阅读全文
摘要:将框架从.NET6升级到8,顺便将各种依赖包也升级,容器化部署到测试环境后,SQL Server连接不了了: [2024-05-13 13:48:10 ERR] [Microsoft.EntityFrameworkCore.Database.Connection] An error occurred
阅读全文
摘要:问题描述 EFCore cannot get new value in docker, if use rsync replace sqlite file 基于.NET6开发一个查询SQLite的API,使用Docker进行部署,通过挂载的方式来访问数据库文件:docker run -d --name
阅读全文
摘要:SSL Provider, error: 31 - Encryption(ssl/tls) handshake failed 在测试环境部署服务后,调用API会抛出以下异常: Microsoft.Data.SqlClient.SqlException (0x80131904): A connecti
阅读全文
摘要:ASP.NET Core通过IInputFormatter来解析输入的数据,并进行模型绑定(Model Binding);通过IOutputFormatter来解析输出的数据,来格式化响应(format response)。 两个Nuget包 谷歌提供了Google.Protobuf包用于解析Pro
阅读全文
摘要:在生产环境中,通常有DBA同事对数据库进行监控,在发现如慢查询等问题时反馈给开发团队进行解决。 .NET平台提供了诊断机制,借助该机制可以实现EFCore记录慢查询日志功能,这样开发团队就可以通过日志告警发现慢查询问题而无需被动依赖DBA同事的反馈。 记录慢查询日志 基于.NET6创建API项目,安
阅读全文
摘要:前段时间有同事问了一个问题:JavaScript是单线程运行代码,那么如下代码片段中,同样是执行func1和func2,为什么只用 Promise.all 相比于直接执行 await func1();await func2(); 速度更快: async function func1() { awai
阅读全文
摘要:Python文档中有一段话: Remember that arguments are passed by assignment in Python. Since assignment just creates references to objects, there’s no alias betwe
阅读全文
摘要:公司系统中有一接口访问量大,内部计算逻辑较为复杂。在优化时打算把Request中的参数做为Key,Response做为Value放到进程内缓存中,以降低服务器压力,提高接口响应速度。因为Response中一些数据时效性要求较高,所以缓存设置一个较短的过期时间(比如10s)。 但这里牵涉到一个问题,如
阅读全文
摘要:JAVA 定义Person类 定义Chinese类 创建Chinese类实例 输出结果如下: 执行顺序为: 基类静态初始化块——当前类静态初始化块——基类初始化块——基类构造函数——当前类初始化块——当前类构造函数 ⚠️ JAVA中加载类时会调用类的静态代码块 执行结果如下: .NET 与JAVA相
阅读全文
摘要:序列化:将对象的状态信息及类型信息,转换为一种易于传输或存储形式(流,即字节序列)的过程。 下图为序列化过程图示,图片来自微软官方文档: 反序列化:与序列化相反,将流转换为对象的过程。 常用的有二进制序列化、XML序列化及JSON序列化三种序列化方式。.NET自身提供了对二进制序列化与XML序列化的
阅读全文
摘要:以下基于.NET Framework4.6及.NET Core2.0 .csproj 用于配置项目信息,如: 程序集名称、类型 Framework版本 项目所包含的文件信息,如:cs、html、js、config、xml等 项目所引用的程序集信息,包含本地dll与Nuget包 其它信息 程序集名称、
阅读全文
摘要:本文是《Clean C#》一书译文的序言,阅读译文请移步至:《Clean C#》译文。 《Clean C#》的副标题是Readable,Maintainable,Pleasurable,本书旨在提供一些编写具有良好可读性与可维护性代码的建议。虽然书名中带有C#字眼,但书中提供的经验绝不仅限于C#,也
阅读全文
摘要:团队内部若能统一代码风格对于日后的项目维护大有裨益,但面对厚达十几甚至几十页的代码风格规范,开发人员难免产生抵触心理。Python和Go等在语言层面就对代码风格作了一定的约束,但C#并没有,为解决这个问题,我们可以在VS中设置团队内部要统一采用的代码风格。 文中所用VS版本信息如下: 设置代码风格
阅读全文
摘要:原文地址:Unit testing best practicesPS:本文未翻译原文的全部内容,以下为译文。 编写单元测试有如下好处: 利于回归测试 提供文档 改进代码设计 但是,难以阅读和维护的测试代码则会适得其反。本文会提供一些编写单元测试的最佳实践以使得你的测试代码易于维护和理解。 为什么要写
阅读全文
摘要:用都知道的一句话概括:“引用类型在堆上,栈上只保存引用;值类型即可存放于栈上也可存放于堆上,值类型变量直接存储值本身”。 若把上述代码中的Person类型由class改为struct则会出现编译错误:Foreach iteration variable 'l' is immutable.Cannot
阅读全文
摘要:在.NET中,常用到的池有四个:字符串拘留池、线程池 、应用程序池、数据库连接池。 字符串拘留池 在.NET中字符串是不可变对象,修改字符串变量的值会产生新的对象。为降低性能消耗及减小程序集大小,.NET提供了string interning的功能,直译过来就是字符串拘留。所谓的字符串拘留池(int
阅读全文
摘要:文章会不定期更新,以下内容均为个人总结,欢迎各位拍砖指正 序列化与反序列化 JSON.NET应该是.NET平台上使用最为广泛的序列化/反序列化包了,ASP.NET和ASP.NET Core中默认序列化/反序列化包 Jil官网上说性能优于JSON.NET 文本日志记录 NLog Log4Net 以上二
阅读全文
摘要:前几天在webapi项目中遇到一个问题:Controller构造函数中抛出异常时全局过滤器捕获不到,于是网搜一把写下这篇博客作为总结。 HttpResponseException 通常在WebAPI的Controller中抛出的未处理异常,会以500的形式返回到客户端。而HttpResponseEx
阅读全文
摘要:在实际编程中,会经常遇到多个类中的某些方法实现逻辑类似的情况,这时我们可以将这些类中的相同部分抽象到父类中,对于有差异的地方,子类根据自身的实际需求来各自实现。 以羽毛球运动为例,打球必有发接发环节,发球分正手和反手两种(这里不谈论羽球技术细节),一般男单反手发球,女单正手发球,但发接发这个环节的流
阅读全文