摘要:开发注意事项 1. 建表时,一定要选择好可能需要建索引的字段,而且尽量为多个字段建立 多列索引 而不是为每个字段建立单列索引,要不然后期数据量一大,查询将会非常慢 2. select where order by等sql关键字后最好接索引字段,要不然容易走全表查询,在编写sql语句时,可先使用exp 阅读全文
posted @ 2019-05-26 15:56 又见阿郎 阅读 (84) 评论 (0) 编辑
摘要:本博文仅仅是笔者自己的学习路线,归纳整理了一些好的设计模式资料。 1、策略模式 参考资料: "c 设计模式 策略模式"   "c 设计模式之策略模式" 定义是:封装一组算法,每个算法为独立的类,可以相互替代,因为它们有相似的行为。 策略模式主要是将产品共有的部分抽象出来,不同的行为据此抽象 阅读全文
posted @ 2019-05-14 11:52 又见阿郎 阅读 (281) 评论 (0) 编辑
摘要:一直在关注研究.net下的并发处理,之前也发布过几篇文章,今天就都整理下。 使用BlockingCollection来做并发处理,同时增加并发队列来做并发处理时的退出判断: 你真的知道.NET Framework中的阻塞队列BlockingCollection的妙用吗? 项目开发中应用并发的一二事 阅读全文
posted @ 2018-02-15 20:04 又见阿郎 阅读 (274) 评论 (1) 编辑
摘要:参考ObjectPool对象池设计原理还原一个简易的Provider模式。 存储对象的数组ObjectWrapper内元素的取、还操作通过Interlock.CompareExchange巧妙的实现,并且是线程安全的。 取操作: 。取完后将元素置为null 还操作: 如果元素为null,则赋值 设计 阅读全文
posted @ 2019-12-22 12:15 又见阿郎 阅读 (58) 评论 (0) 编辑
摘要:Micosoft.Extension.ObjectPool 源码架构、模式分析: 三大基本对象: 1. ObjectPool抽象类 2. ObjectPoolProvider抽象类 3. IPooledObjectPolicy接口 ObjectPool的默认实现是DefaultPool,对象池的创建 阅读全文
posted @ 2019-12-15 17:15 又见阿郎 阅读 (60) 评论 (0) 编辑
摘要:abp依赖注入的原理剖析 请先移步参考 "[Abp vNext 源码分析] 3. 依赖注入与拦截器" 本文此篇文章的补充和完善。 abp的依赖注入最后是通过IConventionalRegister接口的AddType方法实现的。先看下该接口: 该接口定义了三个方法,支持传入程序集、类型数组、具体类 阅读全文
posted @ 2019-12-08 14:54 又见阿郎 阅读 (108) 评论 (0) 编辑
摘要:相关模块 1. AbpAspNetCoreModule 2. AbpAspNetCoreMvcModule 3. AbpAspNetCoreMvcContractsModule abp通过这三个模块加载并配置了 asp.net core。,最主要的就是AbpAspNetCoreMvcModule模块 阅读全文
posted @ 2019-12-07 17:52 又见阿郎 阅读 (125) 评论 (0) 编辑
摘要:一、前言 参照前篇《4. abp中的asp.net core模块剖析》,首先放张图,这也是asp.net core框架上MVC模块的扩展点 二、abp的mvc对象 AbpAspNetCoreMvcOptions类 从这个类的名称来看,这个是abp框架里面的asp.net core配置mvc选项类,是 阅读全文
posted @ 2019-12-05 21:20 又见阿郎 阅读 (91) 评论 (0) 编辑
摘要:一个简单、基于AbpInterceptor的拦截器示例: 拦截器调用顺序,可参考打上断点调试分析: AutofacRegistration.Populate(内部调用Autofac.Extras.DynamicProxy) SimpleAsyncInterceptor.Intercept Castl 阅读全文
posted @ 2019-12-03 17:52 又见阿郎 阅读 (116) 评论 (0) 编辑
摘要:abp拦截器基本定义 拦截器接口定义: 默认抽象类定义: abp的拦截器实现是基于Autofac.Extras.DynamicProxy,这个包依赖两个组件:Autofac、Castle.Core(实质上是调用内部组件DynamicProxy实现动态代理)。关于此组件的资料参考 ".NET 通过 A 阅读全文
posted @ 2019-12-01 14:24 又见阿郎 阅读 (135) 评论 (0) 编辑
摘要:之前部署过BookStore项目,但是换了新电脑也想好好学习下这个示例项目,于是在新电脑上重新拉了Git上的ABP项目代码,一编译生成BookStore项目就报错,可以参考 "abp示例项目BookStore编译报错" 。解决了这个问题之后又报错了,截图如下: 我一开始以为是我的数据库链接语句配置错 阅读全文
posted @ 2019-11-16 23:49 又见阿郎 阅读 (152) 评论 (0) 编辑
摘要:abp中将生命周期事件抽象为4个接口: abp定义了一个模块生命周期接口,该接口只有两个方法,用于初始化和关闭。 这个接口的参数是IAbpModule接口的类型,也就是派生自AbpModule的模块类型。该接口有一个默认实现,是一个抽象类,主要是用于复用。 abp根据四个生命周期分别有四个类型,这四 阅读全文
posted @ 2019-10-05 16:50 又见阿郎 阅读 (145) 评论 (0) 编辑
摘要:条件语句重构分析 "策略模式重构条件语句" "状态模式重构条件语句" "多态重构条件语句" 其实这三种方式都是基于多态实现的,直接加上了各个的特性罢了。策略模式相比较状态模式,前者由客户端传入所有的选择项,而后在Context环境类中选择具体的选项、后者则是在Context状态管理器中根据客户端传入 阅读全文
posted @ 2019-07-23 22:32 又见阿郎 阅读 (77) 评论 (0) 编辑