正文内容加载中...
posted @ 2019-08-27 11:43 郑小超 阅读 (13) 评论 (0) 编辑
摘要:本系列文章将介绍如何在.Net框架下,从零开始搭建一个完成CRUD的Framework,该Framework将具备以下功能,基本实体结构(基于DDD)、基本仓储结构、模块加载系统、工作单元、事件总线(EventBus,具有事件溯源的功能)、以及依赖注入管理系统. 1、简介 本文将通过源码和代码注释和 阅读全文
posted @ 2019-03-30 16:14 郑小超 阅读 (238) 评论 (0) 编辑
摘要:1、简介 .NET 3.5 开始 ReaderWriterLockSlim登上舞台,ReaderWriterLockSlim 可以看做是 ReaderWriterLock 的升级版。 由于 ReaderWriterLockSlim 默认不支持递归调用、所以在某种意义上来说更不容易造成死锁。Reade 阅读全文
posted @ 2019-03-28 23:37 郑小超 阅读 (188) 评论 (0) 编辑
摘要:1、简介 本文主要演示日常开发中利用多线程写入文件存在的问题,以及解决方案,本文使用最常用的日志案例! 2、使用File.AppendAllText写入日志 这是种常规的做法,通过File定位到日志文件所在位置,然后写入相应的日志内容,代码如下: 报错了,原因,Windows不允许多个线程同时操作同 阅读全文
posted @ 2019-03-28 20:02 郑小超 阅读 (132) 评论 (0) 编辑
摘要:1、简介 关于Windows的异步I/O操作,只要解决的是同步I/O操作的线程利用率问题,通过异步I/O Api来提升线程的利用率,提升系统的吞吐能力,将各种I/O操作交给线程池然后交由硬件设备执行,期间完全不占用线程和CPU资源. 2、同步I/O存在的问题 当编写同步I/O操作时,在硬件设备执行I 阅读全文
posted @ 2019-03-28 00:09 郑小超 阅读 (161) 评论 (0) 编辑
摘要:1、简介 再说Windows的异步I/O操作前,先聊聊一些题外话,能帮助我们更好的理解异步I/O操作,常规的Web程序,当用户发起一次请求,当请求通过管道到达客户端的这个过程,会唤起一个线程池线程(后台线程),处理我们的业务代码,即所有的用户请求是通过异步的方式发起的,这个过程,.Net Frame 阅读全文
posted @ 2019-03-27 01:49 郑小超 阅读 (93) 评论 (0) 编辑
摘要:1、简介 泛型工厂理论上不算Gof23中设计模式之一,但是也算是一种非常好的设计模式,个人认为,废话不多说,先写个简单的抽象工厂,在写一个泛型工厂的例子来比较抽象和泛型的区别. 2、实战 还是房屋和道路,always road and house,例子不重要重要的是对模式的理解. 3、抽象工厂 ok 阅读全文
posted @ 2019-03-26 02:30 郑小超 阅读 (109) 评论 (0) 编辑
摘要:1、简介 在日常开发中,某些对象的状态如果发生改变,对应的行为也将发生改变,那么如何在运行时根据对象的状态动态的改变对象的行为,同时不产生紧耦合关系(即使用if else或者swith所带来的紧耦合关系).即对扩展开放,对修改关闭一开闭原则. 2、案例 假设用户提出了一个需求,有三类文档对象,他们都 阅读全文
posted @ 2019-03-25 15:47 郑小超 阅读 (49) 评论 (0) 编辑
摘要:1、消息投递服务 RabbitMQ是一种消息投递服务,怎么理解这句话呢?即RabbitMQ即不是消息的生产者,也是消息的消费者.他就像现实生活中快递模式,消费者在电商网站上下单买了一件商品,此时对应的生产者(商家)则生产了一件货物(概念上的生产,可能已经生产好了),接着生产者(商家)将货物发送给快递 阅读全文
posted @ 2019-03-17 19:03 郑小超 阅读 (85) 评论 (0) 编辑
摘要:本系列主要讲解RabbitMQ在.Net环境下的应用,由于Linux环境下,本人Linux功力有限,所以本系列的RabbitMQ跑在Windows环境中.所以的配置之类都在Windows环境中进行. 1、基础环境安装 (1)、安装Erlang 因为RabbitMQ是基于Erlang开发的,所以使用R 阅读全文
posted @ 2019-03-11 22:48 郑小超 阅读 (81) 评论 (0) 编辑