随笔分类 -  五分钟的.NET

摘要:通过本篇文章您将Get:1、将API返回的数据自动包装为所需要的格式 2、理解AspNetCore中Action返回结果的一系列处理过程。因为我们开发出来的API往往是面向的客户端,而客户端通常是由另外的开发人员使用前端框架来开发,所以开发的时候需要前后两端的人员都遵循某些规则,不然游戏可能就玩不下去了。而API的数据返回格式就是其中的一项。 阅读全文
posted @ 2020-05-15 16:20 句幽 阅读(4672) 评论(22) 推荐(58) 编辑
摘要:发现网上很少有讲解关于.NET Core的单元测试文章,代码覆盖率的文章就更少了,所以就抽时间梳理了一篇。通过本篇文章您将Get:1: 为.NET Core应用添加单元测试 2: 为.NET Core应用进行代码覆盖率度量 3:使用Azure Devops进行自动化构建 4:收获类似于下面的这些徽章: 阅读全文
posted @ 2020-04-24 15:52 句幽 阅读(5460) 评论(24) 推荐(73) 编辑
摘要:.NET Core为咱们提供的默认依赖注入方式相对来说功能已经很完善了。某些情况下,您会发现,当我们的业务类被添加到依赖注入容器中时,该类构造函数中所依赖的其它类都得一同添加到容器。可是,我的一些依赖类为选型类型怎么办呢?对于这种选项类型,微软给出了专门的处理手段:Microsoft.Extensions.Options包。我们只需要使用该包为IServiceCollection提供的扩展方法AddOptions 阅读全文
posted @ 2020-03-27 18:14 句幽 阅读(4513) 评论(8) 推荐(36) 编辑
摘要:ChangeToken这个东西好像已经不止看到它一次两次了,在Microsoft.Extensions.FileProviders包里面也有发现它的身影。迷惑了很久之后,今天总算可以找个机会来扒一扒它,看看它到底是一个什么东西。其实,从MSDN里面的第一句描述以及这个类的命名,咱们还是可以读懂它的大致意思的。这不就是一个像观察者模式的东西吗? 当某某某发生变化的时候,就执行一个某某操作。 阅读全文
posted @ 2020-03-17 12:34 句幽 阅读(5360) 评论(7) 推荐(42) 编辑
摘要:其实一说到AspNet Core里面的全局异常,其实大家都不会陌生。因为这玩意儿用的非常频繁,好的异常处理方案能够帮助开发者更快速的定位问题,也能够给用户更好的用户体验。那么在AspNet Core中我们该如何捕获和处理异常呢? 可能很多同学都知道:IExceptionFilter。 阅读全文
posted @ 2020-03-09 18:21 句幽 阅读(5785) 评论(17) 推荐(39) 编辑
摘要:在开发AspNet Core应用的时候,我们经常会为该应用公布一个特殊的检测接口出来。该接口的目的很简单,告诉某一些外界程序(比如docker,客户端等)这个程序现在是可以访问或者不能访问的,便于外界做出相应的操作,比如监控报警,页面通知用户稍作等待等。在Aspnet Core 2.2 之后,我们有了新的解决方式。只需要简单的操作就可以进行程序运行状况的检查。 阅读全文
posted @ 2020-03-02 17:08 句幽 阅读(3440) 评论(9) 推荐(37) 编辑
摘要:咱们开发应用的时候,有时候可能需要建立一些独立于应用逻辑体本身的后台任务。在.NET Core 2.0 之后,官方为我们提供了一个叫做 `IHostedService` 的接口,它可以便于我们更好的实现托管服务。那么今天咱们就来扒一扒 `IHostedService` 到底是一个怎样的东西,我们可以在什么情况下使用它。 阅读全文
posted @ 2020-02-28 16:07 句幽 阅读(6693) 评论(12) 推荐(42) 编辑
摘要:一说起设计模式,大家应该都不会太陌生。毕竟在面向对象的世界中,我们需要用到各种奇技淫巧的手段来构建我们的应用,而设计模式就是这些技巧的根本。既然都是向外界提供一个结果,那么Provider和Factory到底有什么不同呢? 阅读全文
posted @ 2020-02-24 17:59 句幽 阅读(4195) 评论(12) 推荐(39) 编辑
摘要:一谈到如何在.Net中进行对象映射,可能大部分同学都会脱口而出:“使用AutoMapper!”。 是的,AutoMapper 是一个非常成熟的对象映射器。截至到写这篇文章,您能在Nuget上下载到的AutoMapper包的版本为:v9.0.0,而对应的 Github 的 star 已经高达7K。然后再来看一看,咱们今天要介绍的主角:Mapster。 不知道有多少同学听过它?应该很少吧,这一点从百度搜索也可以看出来 阅读全文
posted @ 2020-02-21 17:42 句幽 阅读(6328) 评论(17) 推荐(39) 编辑
摘要:伴随着 .NET Core 3.0 一起发布的 C# 8 ,从发布至今已经过了快大半年了。如果您细心的话,就能发现在C# 8新增的功能中有一条:“默认接口方法” 。 半年前当我看到这一新特性的时候,我惊呆了,但是惊讶之余是更多的疑惑。因为对于接口这个东西来说,从C#发布至今的十多年里几乎一直保持它的样子,然而在C# 8之后,它有了巨大的变化。随着而来,也是各种争论的声音。 阅读全文
posted @ 2020-02-17 17:22 句幽 阅读(5052) 评论(48) 推荐(41) 编辑
摘要:对于“ + ”,“ - ”,“ * ”,“ / ”,“ is ”,“ as ” 等C#的运算符可能大家都再熟悉不过了。但是有时候大家在阅读一些网站上的代码或者开源项目的源码时,会遇到一些奇奇怪怪的运算符,特别当几个少见的运算符连在一起的时候,仿佛有一种 “别人的C#和我的C#怎么不一样” 的感觉。随着C#的版本更新,它为我们提供了许许多多的语法糖和新运算符方便我们更流畅的来编写代码。当有时候遇到不认识的运算符,就会本着 “百度不行就谷歌” 的程序员大法来疯狂操作一波。但是!! 搜索引擎他喵的居然不认这些符号。 阅读全文
posted @ 2020-02-14 16:45 句幽 阅读(1941) 评论(14) 推荐(18) 编辑
摘要:【五分钟的dotnet】是一个利用您的碎片化时间来学习和丰富.net知识的博文系列。如果您现在正在使用.NetCore的话,相信您对await 和 async这两个关键字再熟悉不过了。它们是为异步编程提供的语法糖,便于我们在代码中更便捷的进行异步操作。await 和 async其实是对Task对象都一层包装操作。而当我们查看Task对象的时候,会发现他有一个叫做 Yield() 的方法。 阅读全文
posted @ 2020-01-24 15:41 句幽 阅读(2576) 评论(7) 推荐(13) 编辑
摘要:在上一篇文章:《闪电光速拳? .NetCore 中的Span》中我们提到了在.net core 2.x 所新增的一个类型:Span。但是您会发现它无法用在我们项目的某些地方,它独特的 ref结构 使它没有办法跨线程使用、更没有办法使用Lambda表达式。所以,这个时候如果我们又想跨线程操作数据又想获得类似Span这样的性能怎么办呢? 阅读全文
posted @ 2020-01-20 18:13 句幽 阅读(2749) 评论(17) 推荐(35) 编辑
摘要:在dotnet core2.x之后,引入了一个叫做Span 阅读全文
posted @ 2020-01-17 18:43 句幽 阅读(4962) 评论(24) 推荐(57) 编辑
摘要:伴随着dotnet core的不断迭代,我们在享受.net性能上的提升之外,还收获了许许多多新出现的API。不知您有没有发现,有这样一个类型在开始逐渐出现在我们的视野中 ———— ValueTask 阅读全文
posted @ 2020-01-13 18:28 句幽 阅读(4117) 评论(8) 推荐(23) 编辑
摘要:IEnumerable**和**IEnumerator**,如果不仔细看,是不是都以为它们是同样的一个单词。特别是我们习惯了每天看大量的中文,这种只是很小区别的单词更是容易犯错。在.NET的世界里好像有这种类似单词的情况还真的不少,比如**Authentication**和**Authorization**(认证和授权)。记得第一次见着它俩的时候,我说怎么看了半天怎么第一部分是它,第二个部分还是它?甚至我一度以为它们是同一个东西。(*关于认证和授权将在后期为大家介绍。*) 阅读全文
posted @ 2020-01-10 18:05 句幽 阅读(1625) 评论(4) 推荐(13) 编辑
摘要:【五分钟的dotnet】是一个利用您的碎片化时间来学习和丰富.net知识的博文系列。它所包含了.net体系中可能会涉及到的方方面面,比如C#的小细节,AspnetCore,微服务中的.net知识等等。您可以在下班坐地铁的时候,拿出手机逛一逛博客园,利用短短的五分钟完成阅读。 阅读全文
posted @ 2020-01-06 18:05 句幽 阅读(2319) 评论(13) 推荐(24) 编辑

点击右上角即可分享
微信分享提示