摘要:
所有的访问器接口都继承了ITransactionAccesser接口。ITransactionAccesser的含义在于:访问器对象即可以工作于一个事务(Transaction)上下文中,也可以在脱离事务的环境中工作。
阅读全文
摘要:
DataRabbit支持基于关系(Relation)和基于ORM的数据库操作,支持SqlServer,并且可以通过插件的方式提供对其它类型的数据库的支持。 阅读全文
摘要:
复制整个SqlServer数据库的问题,复制的内容包括数据库大纲、数据库中的存储过程、函数、表结构、主外键关系以及表中的所有数据等,也就是说copy版本与原数据库一模一样。 阅读全文
摘要:
System.Threading.Timer 是一个非常常用的定时器类,关于这个类的使用,我们需要注意以下几点:1.System.Threading.Timer 的任何一个实例,实际上是通过使用win32底层(非.NET Thread Pool中的线程)来进行调度的。2.当到达调度时刻时,Syste... 阅读全文
摘要:
做一个合格的Team Leader -- 基本概念 阅读全文
摘要:
SpringFox 用于将object 与 xml字符串相互转换。XML大纲遵循Spring.net的object配置大纲。 阅读全文
摘要:
灵活地使用Null Object设计模式,可以使得我们的代码更加简洁和精炼。 阅读全文
摘要:
在 我的架构经验小结(一)-- 常用的架构模型 一文中简单介绍了我常采用的几种架构模型,本文将稍微深入地介绍其中的一种 -- 三层架构模型。一.三层架构图 二.系统各层次职责1.UI(User Interface)层的职责是数据的展现和采集,数据采集的结果通常以Entity object提交给BL层处理。与UI平行的Service Interface层用于将业务发布为服务(如WebServi... 阅读全文
摘要:
本文来自我提供用例培训的PPT。本文内容包括1.用例基本概念2.用例的作用3.从何处发现用例线索4.如何发现用例5.编写用例的准则6.如何判断系统用例是否有效1.用例基本概念(1)需求分析(用例技术)、系统分析(OOA)、系统设计(OOD)、系统实现(OOP)(2)用例的主要作用是:用来捕获系统的高层次(High Level)用户功能性需求 (3)用例从用户的视角描述了在逻辑上相对完整的一个... 阅读全文
摘要:
经过这几年的积累,在系统架构方面逐渐积累了一些自己的经验,到今天有必要对这些经验作个小结。在我的架构思维中,主要可以归类为三种架构模型:3/N层架构、“框架+插件”架构、地域分布式架构。 一.三种架构模型 1.3/N层架构 这是经典的多层架构模型,对于稍微复杂一点或特别复杂的系统,不使用分层架构是很难想象的。下图是经典的3层架构: 如今,凡是个程序员都能侃侃而谈... 阅读全文
摘要:
今天在使用.NET操作消息队列时,碰到一个小问题,如果采用XmlMessageFormatter序列化消息体,则消息体中不能包含Hashtable等字段,否则将无法完成序列化和反序列化(即使消息体对象加上了Serializable特性也不行)。经过研究发现,XmlMessageFormatter不会... 阅读全文
摘要:
在将数据从数据源导出到数据目标的过程中,我们通常需要对数据进行一些检查、验证、加工、转换等操作,而这个加工转换的流程可能是非常复杂的,DTS通过可视化的拖拽的方式对数据加工转换流程进行自定义编辑。 下面的一个例子,是将某个市的学生记录表中的数据导出到省的学生记录表中,市数据库使用的是SqlServer,省数据库采用的是Oracle。 左边的工具栏中是不同类型的Filter,它们用于对... 阅读全文
摘要:
在windows平台上,MSMQ是首选的消息传递中间件,它是一种高速、异步、可靠的通信机制,当我们在Internet上的两个应用需要交换信息时,使用这样的中间件可能是必须的。WCF完全面向SOA,大大简化了以往风格迥异的多种分布式解决方案。刚好,最近的一个项目需要使用SOA架构,而底层需要使用MSM... 阅读全文
摘要:
ESFramework体系的目标之一就是帮助快速构建IM与业务相结合的系统,在我们的业务应用中,经常会遇到类似这样的需求:商家或服务商需要提供一些资料(文档、影片宣传资料等)给他的用户,他希望用户能方便地下载这些资料,另外,用户也可以直接上传自己的文件到服务器供商家检阅。这种功能就像我们常用的FTP... 阅读全文
摘要:
上一篇NaptP2P扩展主要介绍了NAPTP2P如何协助建立P2P Session,那只是整个故事的一半,NAPTP2P主要职能的另一半是确保P2P消息的可靠传递。我们已经知道,目前的NAPTP2P扩展的实现是基于UDP的NAPT穿透(以后还会加入基于TCP的NAPT穿透),而UDP是不可靠的,在传递的过程中可能会出现丢包、错包等情况,NAPTP2P扩展在UDP之上进行了增强来保证P2P消息的可靠传递。 阅读全文
摘要:
框架为应用作过多的假设的一个非常具体的现象就是,框架越俎代庖,把本来是应用要做的事情揽过来自己做。这是一种典型的吃力不讨好的做法。框架越俎代庖,也许会使得一个应用的开发变得简单,却会给其它更多想使用该框架的应用增加了本没有必要的束缚和负担。
阅读全文
摘要:
重新将ESFramework定位为一个单纯的通信框架,而在ESFramework之上,增加一个扩展层,称之为ESFramework扩展。ESFramework体系包括ESFramework框架以及建立在之上的ESFramework扩展层。 阅读全文
摘要:
好久没有写关于ESFramework的文章了,曾很早就承诺过要写一篇介绍基于ESFramework实现NAPT P2P的文章,今天终于能抽出时间做这件事。网络地址转换NAT(或者NAPT)的基本理论知识,网上有很多相关资料,不是很清楚的朋友可以先了解下什么是NAT、以及为什么要使用NAT。使用NA... 阅读全文
摘要:
在DTS开发记录(1)--系统总体结构 一文中,我们已经看到,一次数据传递任务基于一个连接对和一个数据映射进行。但是之前,我们并没有提到“数据迁移任务”这个元素。随着设计的演化,我们发现一个数据任务已经不再仅仅是一个连接对加上一个数据映射了。现在,我们完全有必要把“数据迁移任务”这个概念抽象的表示出来,称之为DataTask。 有了DataTask,我们的数据引擎就可以修改为基于一个... 阅读全文
摘要:
对于数据源向同一数据目标导出(我们称之为“数据汇集”)和增量导出来说,对主键的处理也是一个大的挑战。 我先定义一下在本DTS系统中主键(PrimaryKey)的含义:PrimaryKey 表示主键或联合主键,PrimaryKey并不是针对某个数据库表的,而是针对某个特定的DataMapping而言的,它用于在数据迁移过程中来唯一确定数据源或数据目标中每条记录。 所以,本DTS系... 阅读全文