摘要: 在`.NET Core 3.0`的版本更新中,官方我们带来了一个新的接口 IAsyncDisposable。那么.NET是为什么要在 .NET Core 3.0 发布的同时,带来该接口呢? 还有就是该异步版本和原来的IDispose有着什么样的区别呢? 到底在哪种场景下我们能使用它呢?...... 阅读全文
posted @ 2021-08-31 10:39 句幽 阅读(508) 评论(0) 推荐(2) 编辑
摘要: How to name your REST endpoint? How does your endpoint look? Are there any guidelines or best practices? How to name your endpoints? A short introduct 阅读全文
posted @ 2020-11-26 10:15 句幽 阅读(306) 评论(1) 推荐(2) 编辑
摘要: 对于大多数应用系统来说,几乎都离不开身份验证。因为我们需要保护一些数据,不让“非法”用户获取。所以我们必须得根据自身项目情况来添加对身份验证的支持功能。读完本文后您会知道为什么它叫JWT Bearer,而不是JWT或者Bearer,以及为什么微软在提供该包的时候,没有涉及到refresh_token的颁发。 阅读全文
posted @ 2020-06-29 18:44 句幽 阅读(7257) 评论(26) 推荐(73) 编辑
摘要: 通过本篇文章您将Get:1、将API返回的数据自动包装为所需要的格式 2、理解AspNetCore中Action返回结果的一系列处理过程。因为我们开发出来的API往往是面向的客户端,而客户端通常是由另外的开发人员使用前端框架来开发,所以开发的时候需要前后两端的人员都遵循某些规则,不然游戏可能就玩不下去了。而API的数据返回格式就是其中的一项。 阅读全文
posted @ 2020-05-15 16:20 句幽 阅读(4523) 评论(22) 推荐(58) 编辑
摘要: 发现网上很少有讲解关于.NET Core的单元测试文章,代码覆盖率的文章就更少了,所以就抽时间梳理了一篇。通过本篇文章您将Get:1: 为.NET Core应用添加单元测试 2: 为.NET Core应用进行代码覆盖率度量 3:使用Azure Devops进行自动化构建 4:收获类似于下面的这些徽章: 阅读全文
posted @ 2020-04-24 15:52 句幽 阅读(5396) 评论(24) 推荐(73) 编辑
摘要: .NET Core为咱们提供的默认依赖注入方式相对来说功能已经很完善了。某些情况下,您会发现,当我们的业务类被添加到依赖注入容器中时,该类构造函数中所依赖的其它类都得一同添加到容器。可是,我的一些依赖类为选型类型怎么办呢?对于这种选项类型,微软给出了专门的处理手段:Microsoft.Extensions.Options包。我们只需要使用该包为IServiceCollection提供的扩展方法AddOptions 阅读全文
posted @ 2020-03-27 18:14 句幽 阅读(4259) 评论(8) 推荐(36) 编辑
摘要: ChangeToken这个东西好像已经不止看到它一次两次了,在Microsoft.Extensions.FileProviders包里面也有发现它的身影。迷惑了很久之后,今天总算可以找个机会来扒一扒它,看看它到底是一个什么东西。其实,从MSDN里面的第一句描述以及这个类的命名,咱们还是可以读懂它的大致意思的。这不就是一个像观察者模式的东西吗? 当某某某发生变化的时候,就执行一个某某操作。 阅读全文
posted @ 2020-03-17 12:34 句幽 阅读(5273) 评论(7) 推荐(42) 编辑
摘要: 其实一说到AspNet Core里面的全局异常,其实大家都不会陌生。因为这玩意儿用的非常频繁,好的异常处理方案能够帮助开发者更快速的定位问题,也能够给用户更好的用户体验。那么在AspNet Core中我们该如何捕获和处理异常呢? 可能很多同学都知道:IExceptionFilter。 阅读全文
posted @ 2020-03-09 18:21 句幽 阅读(5597) 评论(17) 推荐(39) 编辑
摘要: 数据一致性是构建业务系统需要考虑的重要问题 , 以往我们是依靠数据库来保证数据的一致性。但是在微服务架构以及分布式环境下实现数据一致性是一个很有挑战的的问题。ServiceComb作为开源的微服务框架致力解决微服务开发过程中的问题。我们最近发起的ServiceComb Saga项目来解决分布式环境下 阅读全文
posted @ 2020-03-06 15:08 句幽 阅读(1037) 评论(0) 推荐(0) 编辑
摘要: 在实践领域驱动设计(DDD)的过程中,我们往往会遇到多个领域对象相互交互的情况。比如聚合根A在执行某操作之前需要得到聚合根B的某个信号(或某些数据)。如果在单体应用程序中,我们有条件和机会使得两者进行强引用来完成操作,但是这将直接打破领域驱动设计的规范,从而使得项目不可控,再次回到大泥球的开发。现在,咱们可以选取一种更纯净的方式来解决这类问题,并且还能够更清晰的描述领域对象的活动迹象。这就是咱们今天的主题 ———— 领域事件 阅读全文
posted @ 2020-03-05 17:47 句幽 阅读(6732) 评论(34) 推荐(36) 编辑
摘要: taiko是一个免费的开源浏览器自动化工具,由ThoughtWorks开发。它是一个node的库,Taiko使用Chrome Devtools API,它是为测试现代web应用程序而构建的。 阅读全文
posted @ 2020-03-03 11:41 句幽 阅读(3487) 评论(2) 推荐(4) 编辑
摘要: 在开发AspNet Core应用的时候,我们经常会为该应用公布一个特殊的检测接口出来。该接口的目的很简单,告诉某一些外界程序(比如docker,客户端等)这个程序现在是可以访问或者不能访问的,便于外界做出相应的操作,比如监控报警,页面通知用户稍作等待等。在Aspnet Core 2.2 之后,我们有了新的解决方式。只需要简单的操作就可以进行程序运行状况的检查。 阅读全文
posted @ 2020-03-02 17:08 句幽 阅读(3283) 评论(9) 推荐(37) 编辑
摘要: 咱们开发应用的时候,有时候可能需要建立一些独立于应用逻辑体本身的后台任务。在.NET Core 2.0 之后,官方为我们提供了一个叫做 `IHostedService` 的接口,它可以便于我们更好的实现托管服务。那么今天咱们就来扒一扒 `IHostedService` 到底是一个怎样的东西,我们可以在什么情况下使用它。 阅读全文
posted @ 2020-02-28 16:07 句幽 阅读(6412) 评论(12) 推荐(40) 编辑
摘要: 一说起设计模式,大家应该都不会太陌生。毕竟在面向对象的世界中,我们需要用到各种奇技淫巧的手段来构建我们的应用,而设计模式就是这些技巧的根本。既然都是向外界提供一个结果,那么Provider和Factory到底有什么不同呢? 阅读全文
posted @ 2020-02-24 17:59 句幽 阅读(3895) 评论(12) 推荐(37) 编辑
摘要: 一谈到如何在.Net中进行对象映射,可能大部分同学都会脱口而出:“使用AutoMapper!”。 是的,AutoMapper 是一个非常成熟的对象映射器。截至到写这篇文章,您能在Nuget上下载到的AutoMapper包的版本为:v9.0.0,而对应的 Github 的 star 已经高达7K。然后再来看一看,咱们今天要介绍的主角:Mapster。 不知道有多少同学听过它?应该很少吧,这一点从百度搜索也可以看出来 阅读全文
posted @ 2020-02-21 17:42 句幽 阅读(6030) 评论(17) 推荐(39) 编辑