摘要:这是关于领域驱动设计的一个系列博文,目的是在学习之后能够使用领域驱动设计的知识来开发应用。领域驱动设计是目前比较火的概念,其实早在2004年的时候 **Eric Evans** 就提出了领域驱动设计。但是直到后期才被大家所认识,特别是随着现在微服务的兴起,许许多多的人意识到了领域驱动设计的好处,认为它是指导微服务设计的一把利器。 阅读全文
posted @ 2020-01-08 16:13 句幽 阅读 (1079) 评论 (11) 编辑
摘要:.NET Core为咱们提供的默认依赖注入方?#36739;?#23545;来说功能已经很完善了。某些情况下,您会发现,当我们的业务类被添加到依赖注入容器中时,该类构造函数中所依赖的其它类都得一同添加到容器。可是,我的一些依赖类为选型类型怎么办呢?对于这种选项类型,微软给出了专门的处理手段:Microsoft.Extensions.Options包。我们只需要使用该包为IServiceCollection提供的扩展方法AddOptions 阅读全文
posted @ 2020-03-27 18:14 句幽 阅读 (380) 评论 (2) 编辑
摘要:ChangeToken这个东西好像已经不止看到它一次两次了,在Microsoft.Extensions.FileProviders包里面也有发现它的身影。迷惑了很久之后,今天总算可以找个机会来扒一扒它,看看它到底是一个什么东西。其实,从MSDN里面的第一句描述以及这个类的命名,咱们还是可以读懂它的大致意思的。这不就是一个像观察者模式的东西吗? 当某某某发生变化的时候,就执行一个某某操作。 阅读全文
posted @ 2020-03-17 12:34 句幽 阅读 (2890) 评论 (7) 编辑
摘要:其实一说到AspNet Core里面的全局异常,其实大家都不会陌生。因为这玩意儿用的非常频繁,好的异常处理方案能够帮助开发者更快速的定位问题,也能够给用户更好的用户体验。那么在AspNet Core中我们该如何捕获和处理异常呢? 可能很多同学都知道:IExceptionFilter。 阅读全文
posted @ 2020-03-09 18:21 句幽 阅读 (429) 评论 (7) 编辑
摘要:在?#23548;?#39046;域驱动设计(DDD)的过程中,我们往往会遇到多个领域对象相互交互的情况。比如聚合根A在执行某操作之前需要得到聚合根B的某个信号(或某些数据)。如果在单体应用程序中,我们有条件和机会使得两者进行强引用来完成操作,但是这将直接打破领域驱动设计的规范,从而使得项目不可控,再次回到大泥球的开发。现在,咱们可以选取一?#25351;?#32431;净的方式来解决这类问题,并?#19968;?#33021;够更清晰的描述领域对象的活动迹象。这就是咱们今天的主题 ———— 领域事件 阅读全文
posted @ 2020-03-05 17:47 句幽 阅读 (1546) 评论 (19) 编辑
摘要:taiko是一个免费的开源浏览器自动化工具,由ThoughtWorks开发。它是一个node的库,Taiko使用Chrome Devtools API,它是为测试现代web应用程序而构建的。 阅读全文
posted @ 2020-03-03 11:41 句幽 阅读 (318) 评论 (2) 编辑
摘要:在开发AspNet Core应用的时候,我们经常会为该应用公布一个特殊的检测接口出来。该接口的目的很简单,告诉某一些外界程序(比如docker,客户?#35828;齲?#36825;个程序现在是可以访问或者不能访问的,便于外界做出相应的操作,比如监控报警,页面通知用户稍作等待?#21462;?#22312;Aspnet Core 2.2 之后,我们有了新的解决方式。只需要简单的操作就可以进行程序运行状况的检查。 阅读全文
posted @ 2020-03-02 17:08 句幽 阅读 (1491) 评论 (7) 编辑
摘要:咱们开发应用的时候,有时候可能需要建立一些独立于应用逻辑体本身的后台任务。在.NET Core 2.0 之后,官方为我们提供了一个叫做 `IHostedService` 的接口,它可以便于我们更好的实现托管服务。那么今天咱们就来扒一扒 `IHostedService` 到底是一个怎样的东西,我们可以在什么情况下使用它。 阅读全文
posted @ 2020-02-28 16:07 句幽 阅读 (2008) 评论 (11) 编辑
摘要:一说起设计模式,大家应该都不会太陌生。毕竟在面向对象的世界中,我们需要用到各种奇?#23478;?#24039;的手段来构建我们的应用,而设计模式就是这些技巧的根本。既然都是向外界提供一个结果,那么Provider和Factory到底有什么不同呢? 阅读全文
posted @ 2020-02-24 17:59 句幽 阅读 (1687) 评论 (12) 编辑
摘要:一谈到如何在.Net中进行对象?#25104;洌?#21487;能大部分同学都会脱口而出:“使用AutoMapper!”。 是的,AutoMapper 是一个非常成熟的对象?#25104;?#22120;。截至到写这篇文章,您能在Nuget上下载到的AutoMapper包的版本为:v9.0.0,而对应的 Github 的 star 已经高达7K。然后再来看一看,咱们今天要介绍的主角:Mapster。 不知道有多少同学听过它?应该很少吧,这一点?#24433;俁人?#32034;?#37096;?#20197;看出来 阅读全文
posted @ 2020-02-21 17:42 句幽 阅读 (2407) 评论 (13) 编辑
摘要:伴随着 .NET Core 3.0 一起发布的 C# 8 ,从发布?#20004;?#24050;经过了快大半年了。如果您细心的话,就能发现在C# 8新增的功能中有一条:“默认接口方法” 。 半年前当我看到这一新特性的时候,我惊呆了,但是惊讶之余是更多的疑惑。因为对于接口这个东西来说,从C#发布?#20004;?#30340;十多年里几乎一直保持它的样子,然而在C# 8之后,它有了巨大的变化。随着而来,也是各种争论的声音。 阅读全文
posted @ 2020-02-17 17:22 句幽 阅读 (4039) 评论 (48) 编辑
三剑客和女王APP
河北十一选五推荐任 武汉麻将深度技巧 天津快乐10分 江苏11选5 棒球比分网直播 八闽福州麻将完整版 福州麻将怎么玩 7ml篮球即时比分 微乐吉林麻将历史版本 竞彩篮球比分直播现场500完整n 幸运龙宝贝 25选7 广东十一选五 广东快乐十分 投资理财平台有多少是靠谱的 盛大比分网