摘要:
在.Net Core的源码中,很多地方都有中间件的地方,Kestrel Server和Asp.net Core 等都用了中间件的设计,比如在Kestrel Server中,Http协议的1.0, 1.1, 2.0分别注册了不同的中间件从而导致不同方式的解析报文,这些要求了我们如何设计一个优雅的中间件 阅读全文
摘要:
最近在看一个线程框架,对.Net的异步编程模型很感兴趣,所以在这里实现CLR定义的异步编程模型,在CLR里有三种异步模式如下,如果不了解的可以详细看MSDN 文档 Asynchronous programming patterns。 1.Asynchronous Programming Model 阅读全文
摘要:
今天这一篇博客讲的是.net core 自带的kestrel server,当你开发微服务k8s部署在linux环境下,一般默认开启这个高性能服务,如果大家之前看过我的owin katana的博客,会发现.net core 的好多实现在之前.net standard 的版本已经实现过了,当时开发的a 阅读全文
摘要:
最近在接触DDD+micro service来开发项目,因为EF Core太适合DDD模式需要的ORM设计,所以这篇博客是从代码角度去理解EF core的内部实现,希望大家能从其中学到一些心得体会去更好的写出高质量的代码。 从github 上去下载ef core仓库, 本篇代码的版本是基于tag v 阅读全文
摘要:
紧接着我的上一篇博客,可以点击这里回到上一篇博客,上回分析到ef 两个重要的对象,StateManager和ChangeTracker这个对象,当我们向DbContext添加对象的时候我们会调用如下代码。 1 private EntityEntry<TEntity> SetEntityState<T 阅读全文
摘要:
最近想写一个map 工具,在其中使用放射去给对象赋值感觉性能下降的很厉害,因为以前接触过AutoMapper所以写了一篇博客记录其中的实现原理。 在github 上可以下载AutoMapper 源码,直接打开sln 文件 就可以看到项目结构。 项目结构非常清晰,一个AutoMapper的实现类,两个 阅读全文
摘要:
最近看了一下开源项目asp.net katana,感觉公开的接口非常的简洁优雅,channel 9 说是受到node.js的启发设计的,Katana是一个比较老的项目,现在已经整合到asp.net core中。 从github克隆下来的项目,这个博客专门是从代码角度去理解katana项目,所以本篇随 阅读全文