原文:.NetCore技术研究-ConfigurationManager在单元测试下的坑最近在将原有代码迁移.NET Core, 代码的迁移基本很快,当然也遇到了不少坑,重构了不少,后续逐步总结分享给大家。今天总结分享一下ConfigurationManager遇到的一个问题。先说一下场景: 迁移.NET Core后,已有的配置文件,我们希望做到兼容,比如说app.config和web.config, 这样配置文件尽可能地和.NET Framework是一套,尽可能低保持一致。比如:appSettings、自...
近期在开发一个抢口罩的系统,类似于电商常见的秒杀系统。当时选型的的时候准备在netcore和golang之间选择一个作为系统的开发语言,网上的说法各异,有的说iris快,有的说.netcore快。于是决定自己做下测试。 iris在go的web开发框架中是非常流行的,它自己的介绍是最快的go语言web框架,这个肯定有一家之言的成分,但是说它是最快的go框架之一肯定没有问题。使用的iris的版本是12.1.8aspnetcore 就是微软在.netcore中开发的标准框架...
对于开发人员来说,构建一个消费应用程序时去了解各种各样的 API 是一个巨大的挑战。在你的 Web API 项目中使用 Swagger 的 .NET Core 封装 Swashbuckle 可以帮助你创建良好的文档和帮助页面。 Swashbuckle 可以通过修改 Startup.cs 作为一组 NuGet 包方便的加入项目。Swashbuckle 是一个开源项目,为使用 ASP.NET Core MVC 构建的 Web APIs 生成 Swagger 文档。Swagger 是一个机器可读的 RESTful API 表现层,它可以支持交互式文档...
在 ASP.NET Core Web API 集成测试一文中, 我介绍了ASP.NET Core Web API的集成测试. 在那里我使用了测试专用的Startup类, 里面的配置和开发时有一些区别, 例如里面去掉了用户身份验证相关的中间件.但是有些被测试的行为里面需要用到身份/授权信息.所以本文就介绍一下在API集成测试中发送请求时使用Bearer Token作为Authorization Header的情况. 集成测试中使用Bearer Token我这个项目里生产时使用的是Identity Server 4, 而进行集...
事由:这两天mentor给我布置了个任务让我用BenchmarkDotNet工具去测试一下同一个API 用同步和异步方法写性能上有什么差别。过程:首先我们需要在Nuget上安装BenchMarkDotNet(安装当前最新版本,当前我已经安装好了)但是却安装失败出现两个error。其中一个是 第二个ok,第二个错误非常显眼,那我先尝试着按照它的说法解决 我边在Nuget上找到 Microsoft.CodeAnalysis.CSharp 2.8.2 ,Microsoft.CodeAnalysis.Common (= 2.8.2) 我安...
《ASP.NET Core 微服务实战》译者序:https://blog.jijiechen.com/post/aspnetcore-microservices-preface-by-translator/ “微服务”的概念在 2014 年正式提出之后,越来越多的团队开始用它来设计自己的业务系统,各种微服务框架和开发过程管理方法也同时兴起、不断成熟。微服务设计方法清晰地定义了各个开发团队的业务边界,微服务框架以不同的方式实现了服务之间的协作与集成,根据康威定律我们可以推导这样一种产品开发方法必然...
《ASP.NET Core 微服务实战》译者序:https://blog.jijiechen.com/post/aspnetcore-microservices-preface-by-translator/“微服务”的概念在 2014 年正式提出之后,越来越多的团队开始用它来设计自己的业务系统,各种微服务框架和开发过程管理方法也同时兴起、不断成熟。微服务设计方法清晰地定义了各个开发团队的业务边界,微服务框架以不同的方式实现了服务之间的协作与集成,根据康威定律我们可以推导这样一种产品开发方法必然...
.Net core之Log4net、Nlog简单性能测试 比较log4net、nlog的文件写入性能(.netcore环境),涉及代码和配置如有不正确的地方,还请批评指正。 测试环境开发工具: Vsual Studio 2017 15.3 框架版本: .net core 2.0 操作系统:window10 Enterprise 1703 硬件配置:CPU I3-4170 3.7GHz,内存 8G,固态硬盘 日志组件 log4net 2.0.8 nlog 5.0.0-beta10 测试用例 1.不启用Buffer,连续插入20万行字符串到文件,单文件最大1MB。 2.启用Bu...
前言 在进行 Asp.Net Core 应用程序开发过程中,通常的做法是先把业务代码开发完成,然后建立单元测试,最后进入本地系统集成测试;在这个过程中,程序员的大部分时间几乎都花费在开发、运行、调试上,而且一再的重复这个过程,我称这个过程为“程序员开发螺旋”,并且在这个步骤中,重复率最高且没有创造力的工作就是启动、测试,作为程序员,努力提高生产力我们追求的目标,我们的工作就是尽量消灭重复劳动,解放生产力,提高产出...
前言 在开发 Asp.Net Core 应用程序的过程中,我们常常需要对业务代码编写单元测试,这种方法既快速又有效,利用单元测试做代码覆盖测试,也是非常必要的事情;但是,但我们需要对系统进行集成测试的时候,需要启动服务主机,利用浏览器或者Postman 等网络工具对接口进行集成测试,这就非常的不方便,同时浪费了大量的时间在重复启动应用程序上;今天要介绍就是如何在不启动应用程序的情况下,对 Asp.Net Core WebApi 项目进行网络...
介绍几年前,微软引入了HttpClient类来替代HttpWebRequest来发送Web请求。这个新的类更易于使用,更加简洁,更具有异步性,且易于扩展。 HttpClient类有一个可以接受HttpMessageHandler类对象的构造函数。HttpMessageHandler类对象可以接受一个请求(HttpRequestMessage), 并返回响应(HttpResponseMessage)。它的功能完全取决于它的实现。默认情况下HttpClient使用的是HttpClientHandler,HttpClientHandler是一个处理程序,它向网络...
前言 工欲善其事,必先利其器!在编写服务中首先要有一个好的测试工具,在dontecore下性能测试有BenchmarkDotNet,只需要简单的配置一下就可以对方法的性能进行详细的测试。但有时候需要对不同并发下看其处理效率和延时统计查看,如HTTP服务对应着大量的测试工具如ab,bombardier等等。由于找不到类似于测试HTTP服务的工具来测试代码用例,于时就有了ConcurrentTest这个组件的实现.通过ConcurrentTest组件可以运行不同的测试用例,并...
.NET Core 两种GC模式: Server GC / Workstation GC Server GC : 主要应用于多处理器系统,并且作为ASP.NET Core宿主的默认配置。它会为每个处理器都创建一个GC Heap,并且会并行执行回收操作。该模式的GC可以最大化吞吐量和较好的收缩性。这种模式的特点是初始分配的内存较大,并且尽可能不回收内存,进行回收用时会很耗时,并进行内存碎片整理工作。用一句简单的话说,这个就是贪婪模式,通过尽可能多的获得内存和少回收来得到更好...
单元测试的功能自从MVC的第一个版本诞生的时候,就是作为一个重要的卖点来介绍的,通常在拿MVC与webform比较的时候,单元测试就是必杀底牌,把webform碾压得一无是处。 单元测试的重要性不用多说了,有单元测试的做兜底的项目,好比给开发人员买了份保险,当然这个保险的质量取决于单元测试的质量,那些一路Mock的单元测试,看起来很美,但是什么都cover不到。目前工作中的一个老项目,有2万多个单元测试用例,其中不少是用心之作,...
"DefaultConnection": "Data Source=DESKTOP-9MR9DST;Initial Catalog=Test;Persist Security Info=False;User ID=sa;pwd=‘000000‘;Pooling=False;MultipleActiveResultSets=False;Encrypt=False;TrustServerCertificate=True" }, "Logging": { "IncludeScopes": false, "LogLevel": { "Default": "Warning" } }}在 startup.cs 中添加数据库服务public void ConfigureServices(IServiceCollection services){se...