Fork me on GitHub
上一页 1 ··· 8 9 10 11 12 13 14 15 16 ··· 24 下一页
摘要: 为了提高性能,需要对mysql批量插入进行一次性对对比,下面是测试完后的结果,存档以备后查。 1. 测试结果 记录条数 循环插入,一个事务提交insert00(ms) 批量函数插入 insert01(ms) 一个inser多个values insert02 (ms) 多个insert拼接 inser 阅读全文
posted @ 2022-02-08 20:32 桂素伟 阅读(202) 评论(0) 推荐(0)
摘要: 异步流是C#8.0出来的特性,可以让流式数据以尽快分批的方式返回,而不像之前那样,当全部获取到数据后,再返回。 下面的例子的场景有点特殊,查询一个较多的数据,为了查询不给数据带来很大压力,做成一个分批从数据查询回数据,组装成一个整理List返回。 如果是之前的做法,就需要等所有的数据返回后,累加到一 阅读全文
posted @ 2022-02-08 20:21 桂素伟 阅读(45) 评论(0) 推荐(0)
摘要: 属性——Property,由get,set访问器组成,这是C#使用度比较高的类成员。今天分几组对比测试,来看一下使用Property的性能。 被测试对象: public class MyClass { private string _myProperty1 = DateTime.Now.ToStri 阅读全文
posted @ 2022-02-07 20:36 桂素伟 阅读(156) 评论(0) 推荐(0)
摘要: BenchmarkDotNet是一款开源的性能测试工具,使用方式非常简单,特别是对实现同一功能的两种方式,犹豫不决时,可以使用它进行个对比。 比如我们比较ADO.NET方式查询数据库表,和用Dapper方式获取数据为表,只需要在两个方法上增加 [Benchmark]就可以了,然后调用var summ 阅读全文
posted @ 2022-02-07 20:23 桂素伟 阅读(142) 评论(0) 推荐(0)
摘要: C#里,foreach可以算是个高一等级的循环,因为想要使用foreach必须实现IEnumberable,然后还需要在这个接口的唯一方法中,用yield return返回元素,才能达到foreach的循环效果。 class MyList : IEnumerable { string[] arr = 阅读全文
posted @ 2022-02-07 20:20 桂素伟 阅读(50) 评论(0) 推荐(0)
摘要: using和IDisposable是组合使用的,像这种一个关键字和一个接口的组合,在C#中很少见的,using这个关键字,也就因为IDisposable多了一个身份。 其实很多人都知道IDisposable,有一个方法void Dispose(),通常是用来释放一些必须释放的资源时,要实现这个接口, 阅读全文
posted @ 2022-02-05 15:39 桂素伟 阅读(102) 评论(0) 推荐(0)
摘要: Moq在.net中比较出名的mock框架,NSubstitute也是属于这类框架,使用方式也如出一辙,是通过实现子类来达到mock的效果。下面的测试方法都是按照 UnitTest的三板斧Arrange Act Assert来展开的,代码具体如下。 using Microsoft.VisualBasi 阅读全文
posted @ 2022-02-05 15:35 桂素伟 阅读(96) 评论(0) 推荐(0)
摘要: 创建一个控制台项目,.net5或.net6(Preview),在Program.cs中写如下代码,F5,能顺利跑起来,没有Program类,没有Main函数。 这是C#9带来的顶级语句的功能。 System.Console.WriteLine("你好,C#"); 其实这里的Program类和Main 阅读全文
posted @ 2022-02-05 15:31 桂素伟 阅读(102) 评论(0) 推荐(0)
摘要: 如果想在一个项目中,用DapperPlus支持多种数据库该怎么做? 在《让Dapper支持Mock》中我们定义了DapperPlus,可以基于这个类,实现两个子类:MySqlDapperPlus,MsSqlDapperPls,在这两个子类的构造中适配对应的数据库类型,从注放容器中,获取IDbConn 阅读全文
posted @ 2022-02-05 15:26 桂素伟 阅读(85) 评论(0) 推荐(0)
摘要: 在上一篇说了封闭Dapper扩展方法为一个接口来支持Mock,接下来看看如何实现读写分离。 其实定义两个接口,一个用来实现读,一个用来实现写。在读的接口里只有Query的方法,在写的接口里实现Query和Execute全量(通读写的库也是支持读的,有的场景还是必须在写库里读,因为写库往读库中同步时是 阅读全文
posted @ 2022-02-05 15:20 桂素伟 阅读(112) 评论(0) 推荐(0)
摘要: Dapper,在.net的ORM中占有一席之地,用法简单,灵活,使用如下。但也带来一个问题,就是在单元测试时,Mock比较难办。 public List<Goods> GetAllGoods() { using var con = new SqlConnection(); var sql = "se 阅读全文
posted @ 2022-02-05 15:14 桂素伟 阅读(120) 评论(0) 推荐(0)
摘要: 我们知道,在c#中,如果两个类型没有继承关系 ,是不能相互值赋的,但有两个关键字implicit和explicit,可以让 Date date = DateTime.Now这样的赋值成为可能。 注:c#是没有Date类型的,但DateTime有Date属性 DateTime.Date,但这个属性本质 阅读全文
posted @ 2022-02-05 15:10 桂素伟 阅读(50) 评论(0) 推荐(0)
摘要: 当我们用nuget引用三方库时,在类型,或类型成员上会有注释,如下图,是MySql官方包,command的ExecuteNonQuery的注释 我们自己写一个类库项目CommentsLibrary,给类,构造函数,方法添加xml注释,然后生成 using System; namespace Comm 阅读全文
posted @ 2022-02-05 15:02 桂素伟 阅读(44) 评论(0) 推荐(0)
摘要: 前情提要:因为项目特点,需要在自己的服务器上集成测试,而不是用github的DevOpt体系;再有就是服务器是windows的;项目仓库在github上;并且项目是asp.net core的项目;开发人员一枚。以前的做法就是发布后,把执行码复制在服务器上启动;后来就是在服务器写了个bat,运行bat 阅读全文
posted @ 2022-02-05 14:55 桂素伟 阅读(62) 评论(0) 推荐(0)
摘要: 在使用visual studio开发过程中,有时发现在“错误列表”中的一些提示,大体分为错误、警告、消息,错误是我们必须处理的,否则代码通过编译,警告有时常常会被忽略(也许你是细心人,会处理掉),有时,这样的忽略会为应用埋下安全的隐患。 其实这些提示,是来自微软的IDE的Security Code 阅读全文
posted @ 2022-02-05 14:49 桂素伟 阅读(295) 评论(0) 推荐(0)
摘要: 大部分主流语言都支持web框架,并且实现起来相对轻便,简捷,比如: go的gin包 package main import "github.com/gin-gonic/gin" func main() { r := gin.Default() r.GET("/ping", func(c *gin.C 阅读全文
posted @ 2022-02-04 17:06 桂素伟 阅读(127) 评论(0) 推荐(0)
摘要: 随着撸码的时间增加,码感也会加强,今天看一个编码直觉案例吧! 案例: 需求:把查询到的数据列表生成csv文件 nuget包:CsvHelper 数据实体类: /// <summary> /// 商品 /// </summary> public class Goods { /// <summary> 阅读全文
posted @ 2022-02-04 17:01 桂素伟 阅读(161) 评论(0) 推荐(0)
摘要: new new用三种场景,最常用的实例化,泛型参数时的实例化约束,第三种是显式隐藏继承成员。 using System; using System.Collections.Generic; using System.Data; using System.Linq; using System.Text 阅读全文
posted @ 2022-02-04 16:56 桂素伟 阅读(37) 评论(0) 推荐(0)
摘要: 本例使用的规则引擎包是RulesEngine,关于RulesEngine的介绍,请自行补充,这里只是一个极简单使用场景。 例子大体就是用户有一些优惠券,系统会根据用户订单情况,筛选可以使用的优惠券供用户选择,用户选择后会计算出优惠后金额。 代码相对简单,就不一一介绍了,奉上service中的代码: 阅读全文
posted @ 2022-02-04 16:50 桂素伟 阅读(202) 评论(0) 推荐(0)
摘要: winform是一老技术,感觉都有点掉牙了(我近20年前就是从winform开始接触.net的);blazor,是微软技术圈里的新宠,正在被悉心照顾。当这一老一少的技术碰撞后,会有什么火花? .net v6.0.0-preview.3,给winform和blazor结合带来了前提。https://g 阅读全文
posted @ 2022-02-04 16:45 桂素伟 阅读(733) 评论(0) 推荐(0)
上一页 1 ··· 8 9 10 11 12 13 14 15 16 ··· 24 下一页