C#
文章平均质量分 93
王清培
这个作者很懒,什么都没留下…
展开
-
.NET对存储过程的调用抽象封装
最近一边参与公司的项目开发,一边还肩负着基础库的创建和维护。真真切切的体会到写框架的不容易,写出好的,方便使用的框架更不容易,需要考虑的东西太多,需要掌握的东西太多。不过不要紧我们正在前进的道路上。同志们一起加油!最近在使用存储过程的时候总觉得有点麻烦,尽管在前期对ORM和统一数据源接口封装已经下了很多功夫,对IDataParameter之类的接口已经进行了很好的封装,但是还是觉得麻烦。[王清原创 2012-06-14 23:03:53 · 1697 阅读 · 0 评论 -
WebAPi的可视化输出模式(RabbitMQ、消息补偿相关)所有webapi似乎都缺失的一个功能
最近的工作我在做一个有关于消息发送和接受封装工作。大概流程是这样的,消息中间件是采用rabbitmq,为了保证消息的绝对无丢失,我们需要在发送和接受前对消息进行DB落地。在发送前我会先进行DB的插入,单表插入,所以在性能上也是能接受的,单表插入做了压测基本上是一到两毫秒的时间,加上消息的发送(有ACK)再加上集群是两个节点的高可用(一个磁盘持久化节点),单台TPS基本上是在2000-3000左右。原创 2016-11-27 20:18:48 · 1666 阅读 · 1 评论 -
.NET深入解析LINQ框架(一:LINQ优雅的前奏)
阅读目录:1.LINQ简述2.LINQ优雅前奏的音符2.1.隐式类型 (由编辑器自动根据表达式推断出对象的最终类型)2.2.对象初始化器 (简化了对象的创建及初始化的过程)2.3.Lambda表达式 (对匿名方法的改进,加入了委托签名的类型推断并很好的与表达式树的结合)2.4.扩展方法 (允许在不修改类型的内部代码的情况下为类型添加独立的行为)2.5.匿名类型 (由对象初始化器原创 2012-11-10 16:39:19 · 2164 阅读 · 0 评论 -
.NET重构(类型码的设计、重构方法)
说到类型码,我们都会很有印象,在某个Entity内部多多少少会出现一两个类型码来表示当前Entity在某个抽象角度属于哪一种层面,比如在EmployeeEntity中,基本上会有一个表示性别的Age的属性,同时Age属性的最终保存是在某个age字段中的,它就是很典型的类型码元素;Age类型码属性用来表达了在用性别这一个抽象角度对实体进行分类时,那么实体会存在着两种被归纳的层面(男、女);在这个Age类型码属性被使用到的任何一个逻辑的地方都会有可能因为它的值不同而进行不同的逻辑分支,就好比我们在Emplo原创 2013-11-18 14:22:58 · 1187 阅读 · 0 评论 -
.NET深入解析LINQ框架(六:LINQ执行表达式)
在看本篇文章之前我假设您已经具备我之前分析的一些原理知识,因为这章所要讲的内容是建立在之前的一系列知识点之上的,为了保证您的阅读顺利建议您先阅读本人的LINQ系列文章的前几篇或者您已经具备比较深入的LINQ原理知识体系,防止耽误您的宝贵时间。到目前为止我们对LINQ的执行原理已经很清楚了,从它的前期构想到它真正为我们所用都有足够的证据,但是似乎问题并没有我们想的那么简单,问题总是在我们使用中频原创 2013-02-05 15:47:10 · 1361 阅读 · 1 评论 -
.NET深入解析LINQ框架(五:IQueryable、IQueryProvider接口详解)
3.5.环路执行对象模型、碎片化执行模型(假递归式调用)3.6.N层对象执行模型(纵横向对比链式扩展方法)3.7.LINQ查询表达式和链式查询方法其实都是空壳子3.8.详细的对象结构图(对象的执行原理)3.9.IQueryable与IQueryProvider一对一的关系能否改成一对多的关系4.完整的自定义查询3.5】. 环路执行对象模型、碎片化执行原创 2012-12-13 21:43:33 · 3607 阅读 · 0 评论 -
.NET深入解析LINQ框架(四:IQueryable、IQueryProvider接口详解)
阅读目录:1.开篇介绍2.扩展Linq to Object (应用框架具有查询功能)2.1.通过添加IEnumerable对象的扩展方法2.2.通过继承IEnumerable接口2.3.详细的对象结构图3.实现IQueryable 、IQueryProvider接口3.1.延迟加载IEnumertor对象(提高系统性能)3原创 2012-12-11 17:34:43 · 3388 阅读 · 0 评论 -
.NET深入解析LINQ框架(三:LINQ优雅的前奏)
】.动态LINQ查询(动态构建Expression表达式树)什么是动态LINQ查询?LINQ的编写是静态的,因为C#是基于静态类型系统原理设计的,在编写时已经确定类型,也就是在编译时就已经知道将要执行什么样的查询,条件是什么、排序方式是什么等等。那么很大一部分应用场合中我们需要根据用户的选择来查询数据源,以往我们都是通过判断的方式来拼接查询的SQL字符串,但是现在我们面对是强类型的LINQ原创 2012-12-04 12:53:27 · 1515 阅读 · 0 评论 -
.NET深入解析LINQ框架(二:LINQ优雅的前奏)
3】.LINQ框架的主要设计模型到了这里我们似乎隐隐约约的能看见LINQ的原理,它不是空中花园,它是有基础的。在上面的一系列新特性的支持下,微软通过大面积的构建扩展方法使得上述特性能连贯的互相作用,形成自然的集成查询框架。上面的这些特性都属于语言为了LINQ而做的增强,也可以说是设计者们在不断的探索新的比较符合现代开发体系的语言特性,也越来越多的支持函数式的编程特性,比如DLR的引入对Py原创 2012-11-22 21:43:09 · 1117 阅读 · 0 评论 -
.NET简谈C#之美—抽象类与接口孽缘
在很久很久以前我们的祖先将我们大自然所有能动的物体都定义成“动物”。但是后来在动物的群体当中,有一类动物进化的非常快,它们的智商明显高出其他动物,它们就是“人类”,这也许就是人类文明的起源。所谓的“人类”开始给动物定义级别了,他们认为“人类”是最聪明的,从而将自己和普通的动物划分界限并且人类是主导“动物”世界的头领。[王清培版权所有,转载请给出署名]可是大自然总是充满杀戮,大鱼吃小鱼,小鱼原创 2012-08-11 21:04:20 · 1022 阅读 · 0 评论 -
.NET面向上下文、AOP架构模式(实现)
1.上下文Context、面向切面编程AOP模型分析在本人的“.NET面向上下文、AOP架构模式(概述)”一文中,我们大概了解了上下文如何辅助对象在运行时的管理。在很多时候我们急需在运行时能把对象控制在一定的逻辑范围内,在必要的时候能让他们体现出集中化的概念,如人群、车辆、动物等等。而Context与AOP有着密切的联系,Context表示逻辑抽象的范围而AOP描述了在这个逻辑范围内如何进行控原创 2012-08-08 14:38:53 · 6349 阅读 · 0 评论 -
记5.28大促压测的性能优化(线程池相关问题)
目录: 1.环境介绍 2.症状 3.诊断 4.结论 5.解决 6.对比java实现 废话就不多说了,本文分享下博主在5.28大促压测期间解决的一个性能问题,觉得这个还是比较有意思的,值得总结拿出来分享下。 博主所服务的部门是作为公共业务平台,公共业务平台支持上层所有业务系统(2C、UGC、直播等)。平台中核心之一的就是订单域相关服务,下单服务、查单服务、支付回调服务,当然结算页暂时原创 2017-06-04 15:49:13 · 836 阅读 · 1 评论