写Bug时,需要注意的几点3

博主头像 在对象之间搬移特性 类往往会因为承担过多责任而变得臃肿不堪。 (Move Method)搬移函数 含义:在程序中,里面的一个函数与其类外面的一个类或函数有着紧密的调用或者被调用,则需要对其函数内部的表示进行搬迁,在引用类中在创建一个类似功能行为的新函数。 当两个类在函数之间有着复杂的关联或者有太多的 ...

Autofac 集成测试 在 ConfigureContainer 之后进行 Mock 注入

在使用 Autofac 框架进行开发后,编写集成测试时,需要用 Mock 的用于测试的模拟的类型去代替容器里面已注入的实际类型,也就需要在 Autofac 完全收集完成之后,再次注入模拟的对象进行覆盖原有业务代码注册的正式对象。但 Autofac 默认没有提供此机制,我阅读了 Autofac 的源代... ...

.NET Core开发实战 微服务架构最佳实践

博主头像 .NET Core与以往版本最大的不同就是跨平台和开源,跨平台意味着你可以有更多的开发环境和部署环境的选择, 尤其是对Docker和Kubernetes,.NET Core都具有良好的支持。 .NET Core云原生微服务架构的开发,不仅涉及到.NET Core重要组件的知识,还涉及到DDD、远程调 ...

WPF -- Generic.xaml文件报错

博主头像 本文记录下创建自定义控制时碰到的一个小问题。 问题 在Generic.xaml文件中写好自定义控件的DefaultStyle后进行编译,VS报错。 把报错位置的内容全部注释掉后,重新编译,依然报错。 查看错误信息:“给定编码中的字符无效...”,找到错误定位的位置后,发现此处有中文。使用编辑器打开G ...

记一次 .NET 某电商交易平台Web站 CPU爆高分析

博主头像 一:背景 1. 讲故事 已经连续写了几篇关于内存暴涨的真实案例,有点麻木了,这篇换个口味,分享一个 CPU爆高 的案例,前段时间有位朋友在 wx 上找到我,说他的一个老项目经常收到 CPU > 90% 的告警信息,挺尴尬的。 既然找到我,那就用 windbg 分析呗,还能怎么办。 二: windbg ...

WPF 2D图形 Shape入门(一)--Shape

博主头像 本文是篇WPF Shape的入门文章 Shape 首先看看shape的继承链关系: 一个Shape具有哪些重要属性: 属性 说明 DefiningGeometry 默认的几何形状 RenderedGeometry 最终渲染后呈现的几何形状 Stroke 绘制的形状轮廓加上画刷(颜色) StrokeT ...

EF更新多对多关系表中记录的时候,无法更新关系表的问题。

博主头像 今天在工作中碰到了一个很奇怪的问题。 当在更新一个表A中的记录的时候,会发现,在跟该A表多对多关系的外键表B中,会被增加几条记录。 而原本我希望的是,只在这A表和B表的多对多关系表AB中,增加对应的记录,而不是在实体表B中增加记录(实体表中原本就有该记录,又增加了重复的记录)。 几经测试,终于解决了 ...

WPF 列表控件数据源绑定多个数据集合方法

在 WPF 用的多的列表控件如 ListBox 或 ListView 等,本文告诉大家在这些列表控件上进行绑定多个数据集合来源的多个实现方法。如有一个显示动物列表的控件,需要绑定的数据来源是阿猫和阿狗两个 ObservableCollection 列表,不在后台代码编写合并集合的代码情况下,可以通过... ...

写Bug时,需要注意的几点 02

博主头像 重构2-重新组织函数 重构的基本技巧--小步前进,频繁测试。 模式是你希望到达的目标,重构则是到达之路。 在单进程软件中,你永远不必操心多么频繁地调用某个函数,因为函数的调用成本很低。但在分布式软件中,函数的往返必须被减至最低限度。 (Extract Method)提炼函数 含义:将一个复杂的大函数 ...

中间件调研

博主头像 1. 简介 大型企业存在各种Client/Server交互业务,大部分都是基于RPC远程过程调用协议,全称:Remote Procedure Call Protocol。传输协议基于TCP、UDP、Http等。小部分采用WCF或者Web Service。 2. 交互方式 2.1 WEB Servic ...

WPF教程十五:数据模板的使用(重发)

数据模板 数据模板是一段如何显示绑定在VM对象的XAML代码。数据模板可以包含任意元素的组合,基于Binding来显示不同的信息。 在实际的开发中数据模板的应用场景很多,同样一个控件可以根据不同的绑定源,根据以设置好的数据模板可以显示对应的不同的内容。 很多人用不好控件模板和数据模板,觉得有点混乱, ...

.NET程序崩溃了怎么抓 Dump ? 我总结了三种方案

博主头像 一:背景 1. 讲故事 最近几天接到了几个crash的求助,可能这几个朋友没玩过怎么去生成dump,只能手把手教,感觉也不是一个办法,所以有必要总结一下,后续再有朋友咨询的话,我就可以把这篇文章丢过去了😏😏😏,好了,我大概总结了下面三种方式: procdump -e procdump → AE ...

Build 2021 :正式发布.NET 6 Preview4

博主头像 微软在不断推进.NET 6的可用性,昨晚的Build 2021大会上发布了Preview4, 这是一个很大的版本更新,带来大量的功能,以及接近最终的产品交付质量,不过,这并不意味着可以在生产环境使用了,正式发布RC版本是在8月份,正式发布RTM版本是在11.9 ,到时.NET正式完成.NET Fra ...

ASP.NET Core文件压缩最佳实践

博主头像 前言 在微软官方文档中,未明确指出文件压缩功能的使用误区。 本文将对 ASP.NET Core 文件响应压缩的常见使用误区做出说明。 误区1:未使用 Brotil 压缩 几乎不需要任何额外的代价,Brotil 压缩算法可以帮助你的网站提升约 20% 静态资源加载性能。 同时启用 Gzip / Bro ...

Win32Api -- 回到Windows桌面

博主头像 本文分享下回到桌面功能的实现方法,效果与快捷键(Win+D)相同。 实现方法 Windows回到桌面功能的实现方式有多种,可以模拟快捷键,也可以执行如下方法。其中方法一需要引用Shell32.dll,方法为添加引用,选择COM找到"Microsoft Shell Controls and Autom ...

推荐两个自动生成注释的 开源轻量级 Visual Studio 插件

博主头像 工欲善其事必先利其器,而 Visual Studio 就是我们的开发利器。 上一篇文章,介绍了一个很简单的方式去 制作代码片段(Code Snippet),对于编写代码本身,也是可以进行封装与重用的。 这篇文章,推荐两个自动生成注释的 开源轻量级 Visual Studio 插件。 1. 前言 在开 ...

<1···456···200>