应用框架设计
王清培
这个作者很懒,什么都没留下…
展开
-
利用抽象、多态实现无反射的绿色环保ORM框架
最近一直在忙新公司的基础库建设,对系统架构、开发框架及快速开发平台的设计实施都积累了一定的实践经验。一般的中小型的软件开发公司,如果按照技术储备来衡量软件项目的技术含量的评定依据是可行的。但如果光是按照人头来衡量软件的技术含量是不可靠的。所以我们在选择跳巢的时候是选择大公司还是选择有技术含量的公司要根据自己的职业规划来。(本人最近体会到的一点跳巢经验分享给大家)由于我现有单位技术部门刚刚成原创 2012-05-06 21:52:06 · 2419 阅读 · 2 评论 -
封装RabbitMQ.NET Library 的一点经验总结
这篇文章内容会很短,主要是想给大家分享下我最近在做一个简单的rabbitmq客户端类库的封装的经验总结,说是简单其实一点都不简单。为了节省时间我主要按照Library的执行顺序来介绍,在你看来这里仅仅是一个简单的经验总结,但是在我看来这些经验只有在你真正的封装rabbitmq客户端库的时候且将你的客户端安全稳定的发布上线后才会真的发现这些问题。比如你的库只是链接单个Node的时候和链接高可用集群的HAProxy时候是完全两回事。当你未能在你的库里使用反向注入LOG接口的时候一旦在线上发生网络解析和序列化原创 2015-08-22 21:47:08 · 5565 阅读 · 4 评论 -
.NET重构—单元测试重构
重构已是老生常谈的话题,我们或多或少对它有所了解但是对它的深刻理解恐怕需要一段实践过后才能体会到;提到重构就不得不提为它保驾护航的大功臣单元测试,重构能有今天的风光影响力完全少不了单元测试的功劳;最近一段时间写单元测试用例的时间远超过我写逻辑代码的时间和多的多的代码量,这是为什么?我一开始很难给自己一..原创 2013-10-06 20:12:38 · 1380 阅读 · 0 评论 -
.NET框架设计(高级框架架构模式)—钝化程序、逻辑冻结、冻结程序的延续、瞬间转移
这一篇文章我早准备写的,迟迟未写的原因是它过于抽象不太容易表达,也很难掌握;之前对它的理解还处于比较简单的功能性上,但是最近随着对领域驱动设计及架构的研究,设计思想有了一个提升对它的理解也有了一个更清晰的轮廓,所以才敢下手去写,这么好的一篇文章不能搞砸了;“钝化语句” 简单描述:将基于栈的调用抽象成基于我们自己构建的虚拟运行时调用;比如我们可以将普通的IF\ELSE调用进行对象化,然后就可以对他们进行面向对象的设计了;能做的事情就太多了,比如将所有的方法放入一个for循环语句组件当中去,它会自动的去原创 2013-08-11 17:22:50 · 1615 阅读 · 0 评论 -
.NET框架设计—常被忽视的框架设计技巧
通过上一篇的“.NET框架设计—常被忽视的C#设计技巧”一文来看,对于框架设计的技巧还是有很多人比较有兴趣的,那么框架设计思想对于我们日常开发来说其实并不是很重要,但是对于我们理解框架背后的运行原理至关重要;当我们使用着LINQ灵活的语法的同时我们是否能理解它的背后运行原理、设计原理更深一点就是它的设计模式及复杂的对象模型;原创 2013-08-04 19:26:23 · 1454 阅读 · 0 评论 -
.NET框架设计—常被忽视的C#设计技巧
本文中的内容都是我无意中发现觉得有必要分享一下的设计经验,没有什么高深的技术,只是平时我们可能会忽视的一些设计技巧;为什么有这种想法是因为之前跟一些同事交流技术的时候会发现很多设计思维被固化了,比如之前我在做客户端框架开发的时候会去设计一些关于Validator、DTO Transfer等常用的Common function,但是发现在讨论某一些技术实现的时候会被弄的云里雾里的,会自我郁闷半天,不会及时的明白对方在说的问题; 后来发现他们一是没有把概念分清楚,比如.NETFramework、C#、Vis原创 2013-07-29 16:56:46 · 3883 阅读 · 2 评论 -
.NET领域驱动设计—初尝(三:穿过迷雾走向光明)
开篇介绍在开始这篇富有某种奇妙感觉的文章之旅时我们先短暂的讨论一下关于软件开发方法论的简要:纵观软件开发方法论,从瀑布模型、螺旋模型、RUP(统一软件开发过程)、XP(极限编程)、Agile(敏捷开发)一路走来,他们的好他们的美,我想接触过的人都会口口称赞,都是大师们一身的经验结晶最后沉淀为专业的技术方向、技术领域,带领我们软件开发者们永无止境的前进,目睹一场又一场的美景一桌又一桌盛宴。他原创 2013-07-01 11:37:57 · 3542 阅读 · 2 评论 -
.NET领域驱动设计—初尝(二:疑问、模式、原则、工具、过程、框架、实践)
1.3.原则精简聚合 分离用例与接口功能(设计模式的使用之地)1.4.工具、框架1.5.过程1.3】原则原则对于任何一项技术实现来说都是至关重要的,在设计某一个系统功能的时候我们讲究的是设计原则:【单一职责原则Single Responsibility Principle、里氏替换原则Liskov Substitution Principle、依原创 2013-04-10 16:01:20 · 2173 阅读 · 0 评论 -
.NET领域驱动设计—初尝(一:疑问、模式、原则、工具、过程、框架、实践)
1.1.疑问1.1.1.UML何用1.1.2.领域建模1.2.模式1.3.原则1.4.工具1.5.过程1.6.框架1.7.项目演示最近在研究DDD颇有收获,所以整理出来跟大家分享,共同进步!我们在设计业务系统的时候都会存在一个非常棘手而又无法回避的问题“业务扩展性”、“业务灵活性、”面向对象化“,尽管我们熟练掌握设计思想、设计模式、设计原则等等关原创 2013-04-07 17:43:07 · 1750 阅读 · 0 评论 -
.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 · 3608 阅读 · 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 · 3389 阅读 · 0 评论 -
.NET深入解析LINQ框架(二:LINQ优雅的前奏)
3】.LINQ框架的主要设计模型到了这里我们似乎隐隐约约的能看见LINQ的原理,它不是空中花园,它是有基础的。在上面的一系列新特性的支持下,微软通过大面积的构建扩展方法使得上述特性能连贯的互相作用,形成自然的集成查询框架。上面的这些特性都属于语言为了LINQ而做的增强,也可以说是设计者们在不断的探索新的比较符合现代开发体系的语言特性,也越来越多的支持函数式的编程特性,比如DLR的引入对Py原创 2012-11-22 21:43:09 · 1118 阅读 · 0 评论 -
.NET深入解析LINQ框架(三:LINQ优雅的前奏)
】.动态LINQ查询(动态构建Expression表达式树)什么是动态LINQ查询?LINQ的编写是静态的,因为C#是基于静态类型系统原理设计的,在编写时已经确定类型,也就是在编译时就已经知道将要执行什么样的查询,条件是什么、排序方式是什么等等。那么很大一部分应用场合中我们需要根据用户的选择来查询数据源,以往我们都是通过判断的方式来拼接查询的SQL字符串,但是现在我们面对是强类型的LINQ原创 2012-12-04 12:53:27 · 1515 阅读 · 0 评论 -
.NET面向上下文、AOP架构模式(实现)
1.上下文Context、面向切面编程AOP模型分析在本人的“.NET面向上下文、AOP架构模式(概述)”一文中,我们大概了解了上下文如何辅助对象在运行时的管理。在很多时候我们急需在运行时能把对象控制在一定的逻辑范围内,在必要的时候能让他们体现出集中化的概念,如人群、车辆、动物等等。而Context与AOP有着密切的联系,Context表示逻辑抽象的范围而AOP描述了在这个逻辑范围内如何进行控原创 2012-08-08 14:38:53 · 6349 阅读 · 0 评论 -
.NET面向上下文、AOP架构模式(概述)
1. 上下文概述上下文:其实就是一个逻辑上的业务、功能区域。在这个逻辑区域里可以有效的进行管理,算是一种制度的约束,也可以理解为某种范围类的数据共享。其实在很多应用框架中到处可以看见上下文的概念,包括.NET本身的设计就建立在这种思想上的。实例化的对象默认存在于系统中的默认上下文中,我们可以构建自己的上下文将对象在运行时进行合理的管理。在ASP.NET框架中比较经典的就是HttpCon原创 2012-07-29 19:31:09 · 2038 阅读 · 0 评论 -
.NET可逆框架设计
前段时间一直在学习和研究.NET事务处理,慢慢的我发现可以使用事务处理来实现一种可逆的系统框架。这种框架在一些IT社区似乎还没有见过,但是在我们日常开发中确实有这个需求。所以我花了点时间深入的研究了一下事务的原理和使用,实现了以事务为纽带,以资源为操作对象的可逆框架。这里我假设您对事务有了整体的认识,也对自定义事务管理器有过了解。[王清培版权所有,转载请给出署名](可以参考本人的:.NET原创 2012-06-24 22:54:15 · 4166 阅读 · 2 评论 -
.NET对存储过程的调用抽象封装
最近一边参与公司的项目开发,一边还肩负着基础库的创建和维护。真真切切的体会到写框架的不容易,写出好的,方便使用的框架更不容易,需要考虑的东西太多,需要掌握的东西太多。不过不要紧我们正在前进的道路上。同志们一起加油!最近在使用存储过程的时候总觉得有点麻烦,尽管在前期对ORM和统一数据源接口封装已经下了很多功夫,对IDataParameter之类的接口已经进行了很好的封装,但是还是觉得麻烦。[王清原创 2012-06-14 23:03:53 · 1697 阅读 · 0 评论 -
Model与UIControl之间的模型关系
1:实体的使用范围和重要性这篇文章讨论的概念其实比较简单的,但是在实际的项目应用中非常的重要和普遍。我们的项目一般都是采用分层架构,有的三层有的可能五层或者其他的方式组织系统的架构,但是始终要将系统的架构按照模式设计,我们才能重用和接受维护。随着ORM的流行和大面积的使用,行业内出现各种各样的ORM框架,有自己开发的有大型的软件公司开发的,基本在使用上都遵循了以实体为中心的概念,也就是原创 2012-05-24 18:03:10 · 1361 阅读 · 1 评论