摘要: 动手造轮子:实现一个简单的 EventBus Intro EventBus 是一种事件发布订阅模式,通过 EventBus 我们可以很方便的实现解耦,将事件的发起和事件的处理的很好的分隔开来,很好的实现解耦。 微软官方的示例项目 "EShopOnContainers" 也有在使用 EventBus 阅读全文
posted @ 2019-07-22 07:58 WeihanLi 阅读(1571) 评论(12) 编辑
摘要: 我们有一些服务是 dotnet framework 的,不能直接跑在 docker linux container 下面,最近一直在折腾把它部署在 windows container 下,折腾的有点恶心,记录一下。阅读全文
posted @ 2019-07-12 23:26 WeihanLi 阅读(200) 评论(0) 编辑
摘要: aspnet core 实现简单的伪静态化阅读全文
posted @ 2019-07-12 08:32 WeihanLi 阅读(417) 评论(0) 编辑
摘要: 在前后端分离的开发模式下,文档就显得比较重要,哪个接口要传哪些参数,如果一两个接口还好,口头上直接沟通好就可以了,如果接口多了就有点不适用了,没有接口文档会大大提高前后端的沟通成本。而 asp.net core 可以通过 [Swashbuckle.AspNetCore](https://github.com/domaindrivendev/Swashbuckle.AspNetCore) 很方便的集成 swagger 文档,相比之下 nodejs(express) 和 swagger 集成就很麻烦了,大概这就是强类型语言的优势吧。C# 是最好的编程语言~~~阅读全文
posted @ 2019-07-04 10:51 WeihanLi 阅读(177) 评论(0) 编辑
摘要: 在 asp.net core 中全局异常处理,有时候可能不能满足我们的需要,可能就需要自己自定义一个中间件处理了,最近遇到一个问题,有一些异常,不希望记录错误日志,目前主要是用户请求取消导致的 `TaskCanceledException` 和 `OperationCanceledException` 异常。因为我的 ERROR 级别的日志会输出到 Sentry,sentry的异常会自动发邮件提醒,如果是一些没必要的错误,自然不需要记录错误日志,于是就想自定义一个异常处理中间件,自己处理异常,不将异常处理直接交给 asp.net core 的异常处理。阅读全文
posted @ 2019-07-03 19:40 WeihanLi 阅读(474) 评论(0) 编辑
摘要: 之前做的一个数据库小工具可以支持根据 Model 代码文件生成创建表的 sql 语句,原来是基于 CodeDom 实现的,最近改成使用基于 Roslyn 去做了。实现的原理在于编译选择的Model 文件生成一个程序集,再从这个程序集中拿到 Model (数据库表)信息以及属性信息(数据库表字段信息),拿到数据库表以及表字段信息之后就根据数据库类型生成大致的创建表的 sql 语句。阅读全文
posted @ 2019-06-29 19:37 WeihanLi 阅读(503) 评论(6) 编辑
摘要: 最近使用 Angular 为我的活动室预约项目开发一个前后端分离的客户端,在部署上遇到了一个问题,前端路由不生效,这里记录一下。本地开发正常,但是部署到服务器上就有问题,之前部署到IIS上时需要配置一个 url rewrite ,可能遇到了类似的问题,查阅一番之后确实是这样。阅读全文
posted @ 2019-06-28 10:27 WeihanLi 阅读(73) 评论(0) 编辑
摘要: 有时候我们想实现 leftJoin 但是 Linq 提供的 Join 相当于是 `INNER JOIN`,于是就打算实现一个 `LeftJoin` 的扩展。阅读全文
posted @ 2019-06-26 18:34 WeihanLi 阅读(111) 评论(0) 编辑
摘要: `Newtonsoft.Json` 是 .NET 下最受欢迎 JSON 操作库,使用起来也是非常方便,有时候也可能会不小心就踩坑了,这次就踩了一个,坑是这样的,如果要序列化的对象实现了 `IEnumerable` 接口,`Newtonsoft.Json` 就会认为这个对象是一个数组。。然后遍历这个对象,输出其中的值,如果是一个自定义的类型而且还有其他属性,其他属性就会被忽略,序列化之后就会发生数据丢失。阅读全文
posted @ 2019-06-25 10:47 WeihanLi 阅读(164) 评论(0) 编辑
摘要: `newtonsoft.json` 是 .NET 下最受欢迎 JSON 操作库,原为 `JSON.Net` 后改名为 `Newtonsoft.Json`,之前一直推荐大家使用,除了性能好之外,主要是功能丰富,基本满足所有的可能用到的场景(不区分小写,现在还不行,,)。 遇到这样一个需求,全局使用一种时间格式,某些属性使用特殊的时间格式,这里以一个日期为例阅读全文
posted @ 2019-06-25 00:34 WeihanLi 阅读(164) 评论(0) 编辑