my openid
posts - 30, comments - 251, trackbacks - 26, articles - 2
  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理

置顶随笔

     摘要: 在复杂企业级系统中消息总线占据着非常重要的作用,具体消息总线的产品是非常多的,如MSMQ,IBM 的MQ等,但是这些都是重量级,下面的系列文章将一步一步教你设计一个轻量级的消息总线,该消息总线即可支持嵌入式部署(进程内部署),又可支持分布式部署。1. 消息总线设计系列之 - 观察者模式2. 消息总线设计系列之 - 调停者模式3. 消息总线设计系列之 - 彻底解决消息总线的内存泄漏问题(委托与事件的...  阅读全文

posted @ 2008-04-18 21:13 风云 阅读(2143) | 评论 (9)编辑

     摘要: 关于委托于事件的关系在网上已经到处可见了,尤其是子阳兄 的C#中的委托于事件更是将它的讲的深入浅出,通俗易懂,实在是博客中的精品之作,无论是初学者还是老江湖都可以从这篇文章中领略不少。本文将从观察者模式的角度进一步来探讨之,希望你先看一下子阳兄C#中的委托于事件然后在看这篇文章,你的收获会是不一样的吆!(注:本文中的例子仍然选用子阳兄的例子,观察者模式的定义图例等大家可以在网上查阅,在这里就不一一...  阅读全文

posted @ 2008-04-18 19:02 风云 阅读(2294) | 评论 (6)编辑

     摘要: 在NDO 中对于需要持久化的实体对象,在它的生命周期中可处于以下4个状态或混合状态中。
临时状态(isNew),“脏”状态(isDirty),持久化状态,游离状态。。。。。。。
  阅读全文

posted @ 2006-12-15 17:57 风云 阅读(2100) | 评论 (17)编辑

     摘要: 在我的 也谈代码生成器 这篇文章中,我简要的介绍了代码生成器的7中设计方案,这篇文章我将以NDOGenerator为例详细介绍第五种设计方案的具体设计过程,希望和广大代码生成器爱好者在这个平台上相互分享一些设计思想!


如果要做一个通用的代码生成器(基于数据库驱动)必须具备的三要素:M V C
1:需要对数据库元数据进行建模(如,表,视图,列,视图列,存储过程,存储过程参数等)
2:一个良好的基于插件(命令模式)的控制器引擎
3:视图技术采用模板引擎


基于以上三要素来看NDOGenerator 的具体设计
  阅读全文

posted @ 2006-12-05 17:07 风云 阅读(3657) | 评论 (26)编辑

     摘要: 关于代码生成器 Teddy's Knowledge Base 兄在博客园上已经谈过几次了,如他的也谈orm和代码生成和没有ORM或代码生成数据就不能持久化了? - 用范型技术代替代码生成! 等,今天我不谈代码生成器的意义,只谈代码生成器的设计方案,最后给一个DEMO供大家下载.
  阅读全文

posted @ 2006-11-14 12:06 风云 阅读(4190) | 评论 (18)编辑

     摘要: Rails 技术自从2004年7月出来后,在整个IT业界引起了巨大的震动,现在的JAVA 开源领域也RAILS了,.Net 在Castle项目下也Rails了,Castle下的monorail已经IRC了。我对rails技术非常看好,但是看到monorail的模型层用的是Castle 的ActiveRecord ,就开始对monorail有了些许抵触的思想情节,继续往下看,看到模板有3个选择,第一NVelocity,第二Aspx,第三是Brail,当时我对Velocity/NVelocity已经很熟了,但是对NVelocity 有抵触(因为NVelocity 的作者已经说过了以后不会在更新NVelocity了,NVelocity 还有不少Bug呢,为了使用NVelocity 我就把NVelocity的Bug修改了4/5处),aspx的引擎支持的非常弱,Brail的视图引擎用的是Boo语言,又不熟悉,当时对monorail有一点不是特别看好。昨天在博客园上看到了一个兄台说Castle IRC Release1.0了,我怀着好奇心从官方网站上下载了monorail进行安装.........  阅读全文

posted @ 2006-11-10 18:18 风云 阅读(2414) | 评论 (13)编辑

     摘要: NDO 组件和例子下载,内置了一个基于Velocity模版引擎的代码生成器,该组件属于开源的,没有任何版权的纠纷,欢迎大家试用,如果有任何意见和建议请仅扔砖头就是了!
  阅读全文

posted @ 2006-11-09 16:05 风云 阅读(1692) | 评论 (8)编辑

     摘要: 半年多没上网了,今天早上一大早来到博客园,看了Teddy's Knowledge Base 兄的NBear,以及上个礼拜五发现的OQL.NET,以及我前一段以及现在正在做的NDO,我思索出来了四个问题,微软 DLinq技术来临前的国内 .NET 的 ORM 发展之局势   阅读全文

posted @ 2006-11-02 08:32 风云 阅读(2684) | 评论 (16)编辑

     摘要: Region和Products表的SCHEMA代码,Region表中的主键时赋值方式,Products中的主键是自动增一的CREATETABLE[dbo].[Region]([RegionID][int]PRIMARYKEY,[RegionDescription][nchar](50)NOTNULL)CREATETABLE[dbo].[Products]([ProductID][int]IDENT...  阅读全文

posted @ 2006-11-01 11:30 风云 阅读(1199) | 评论 (4)编辑

     摘要: 我开发的这个ActiveRecord 思想来源于现在非常火爆的Rails框架中的ActiveRecord - 活动记录,该模式来源于国际软件大师Martin Flowler所著的<<企业应用架构模式>>。文中Martin Flowler下了定义:一个对象,它包装数据库表或视图中的某一行,封装数据库访问,并在这些数据上增加了领域逻辑。 意思是说活动记录是一个实体对象,该实体对...  阅读全文

posted @ 2006-10-30 18:48 风云 阅读(2255) | 评论 (10)编辑

     摘要: NQL.NET 是我最近在NDO(DOTNET DataAccess Object)的基础上并吸收了Hibernate,Rails框架中的活动记录,Castle中的活动记录,Grove,ActionPack,OQL的精华思想上建立的一套数据库对象查询语言(NQL,NDO Query Language)它支持 CRUD操作,也包括 select、from、join、on、where、group by...  阅读全文

posted @ 2006-10-30 08:58 风云 阅读(1587) | 评论 (15)编辑

     摘要: 17. 比DataSet更简单的分页操作,并且性能也大大增强了,CurrentPageIndex = 1,PageSize = 5this.dataGrid1.DataSource=newQuery("Customers").Where(Ex.Like("ContactTitle","Sales%")).GetDataTable(1,5);SQL 输出SELECTTOP5*FROM(SELECT*...  阅读全文

posted @ 2006-10-29 12:30 风云 阅读(1956) | 评论 (22)编辑

2009年10月16日

     摘要: Mbs Framework 刚开始设计的时候仅仅是一个消息总线的Framework,该Framework已经有7年的历史上,用了很多的项目,这7年间经历了很多次重构,修改和完全重写,经受了项目的考验。今年7月份看了老赵的文章(适合C# Actor的消息执行方式 -中看不(3):中用的解决方案)有感就写了一篇文章回应老赵: 适合C# Actor的消息执行方式 -中看也中用的解决方案 和老赵在消息执行...  阅读全文

posted @ 2009-10-16 20:42 风云 阅读(1422) | 评论 (11)编辑

2009年7月17日

     摘要: 今天粗粗看了老赵的文章适合C# Actor的消息执行方式 -中看不(3):中用的解决方案,我在想如果用我以前写的消息总线来实现那不是中看也中用了,于是顺手写了一个测试代码(具体内容参见适合C# Actor的消息执行方式 -中看不(3):中用的解决方案回复),说来很惭愧我的消息总线系列已经一年多没有更新了,我这人太懒散惯了,没办法。废话不多说了,下面我就具体讲解一下设计思路。  在Actor模式中,...  阅读全文

posted @ 2009-07-17 14:53 风云 阅读(1323) | 评论 (25)编辑

2008年5月19日

     摘要: 委托在.Net Framework中占据着非常重要的作用,它是.Net事件机制的关键,随着.Net2.0中匿名委托以及.Net3.5中的Lamda的表达式的应用等都可以看出委托所扮演的角色。虽然委托的优点数不胜数,但是反对使用以及建议小心谨慎使用的是大有人在,我对委托的使用是既不反对也不盲目而是小心谨慎.对于委托的小心谨慎主要就是委托使用不当常常会造成内存泄露,关于委托内存泄漏的解决方案有很多种,...  阅读全文

posted @ 2008-05-19 15:26 风云 阅读(2437) | 评论 (21)编辑

2008年5月16日

     摘要: 自从写了上一篇消息总线设计系列之 - 观察者模式之后,已经好长时间了,实在惭愧,现在抽出时间了,写下这一篇。观察者模式的特点是每个观察者对象可以定阅一个或多个不同类型的主题对象,每个主题对象包括一个或多个相同类型的观察者对象,他们之间是高度耦合并且直接进行通讯。 如果项目中用到大量的观察者模式之后,你会发现系统中的观察者和主题对象形成了一张错乱无章的关系网,非常难以维护。调停者模式就是为了解决这种...  阅读全文

posted @ 2008-05-16 17:44 风云 阅读(1629) | 评论 (7)编辑

2008年4月18日

     摘要: 在复杂企业级系统中消息总线占据着非常重要的作用,具体消息总线的产品是非常多的,如MSMQ,IBM 的MQ等,但是这些都是重量级,下面的系列文章将一步一步教你设计一个轻量级的消息总线,该消息总线即可支持嵌入式部署(进程内部署),又可支持分布式部署。1. 消息总线设计系列之 - 观察者模式2. 消息总线设计系列之 - 调停者模式3. 消息总线设计系列之 - 彻底解决消息总线的内存泄漏问题(委托与事件的...  阅读全文

posted @ 2008-04-18 21:13 风云 阅读(2143) | 评论 (9)编辑

     摘要: 关于委托于事件的关系在网上已经到处可见了,尤其是子阳兄 的C#中的委托于事件更是将它的讲的深入浅出,通俗易懂,实在是博客中的精品之作,无论是初学者还是老江湖都可以从这篇文章中领略不少。本文将从观察者模式的角度进一步来探讨之,希望你先看一下子阳兄C#中的委托于事件然后在看这篇文章,你的收获会是不一样的吆!(注:本文中的例子仍然选用子阳兄的例子,观察者模式的定义图例等大家可以在网上查阅,在这里就不一一...  阅读全文

posted @ 2008-04-18 19:02 风云 阅读(2294) | 评论 (6)编辑

2007年8月31日

    只有注册用户登录后才能阅读该文。阅读全文

posted @ 2007-08-31 17:26 风云 阅读(1585) | 评论 (11)编辑

2007年3月8日

     摘要: 由于工作的原因,Ndo 的版本发布和更新有点慢,现在简单介绍一下Ndo 的新功能.

1: 支持1.1 和 2.0, 支持泛性
2: INdoManager 接口增加了很多IStatement, IProcedure,Query, Entity 的代理操作,大大简化了代码书写的数量.
3. 增强了IStatement ,IProcedure参数化查询功能(以前可能要写N行代码,现在只需要1行代码即可)
4. Sql 语句的参数占位符一律采用"@"表示,Ndo会自动根据数据库驱动程序的不同自动切换
5. 增强了Query 的Filter 功能
6. 降低了Condition 和Query 的强耦合关系,同时也删除了Condition 直接操作数据的功能
7. Nql 查询支持强类型查询
8. 支持2.0 ConnectionString 的配置
9: 对Ndo 实行了比较全面的单元测试
10. 对活动记录的改动比较大,支持泛性, 以前活动记录的查询用的是实例方法,现在的查询用的都是静态  阅读全文

posted @ 2007-03-08 17:55 风云 阅读(2542) | 评论 (24)编辑

2006年12月15日

     摘要: 在NDO 中对于需要持久化的实体对象,在它的生命周期中可处于以下4个状态或混合状态中。
临时状态(isNew),“脏”状态(isDirty),持久化状态,游离状态。。。。。。。
  阅读全文

posted @ 2006-12-15 17:57 风云 阅读(2100) | 评论 (17)编辑

2006年12月5日

     摘要: 在我的 也谈代码生成器 这篇文章中,我简要的介绍了代码生成器的7中设计方案,这篇文章我将以NDOGenerator为例详细介绍第五种设计方案的具体设计过程,希望和广大代码生成器爱好者在这个平台上相互分享一些设计思想!


如果要做一个通用的代码生成器(基于数据库驱动)必须具备的三要素:M V C
1:需要对数据库元数据进行建模(如,表,视图,列,视图列,存储过程,存储过程参数等)
2:一个良好的基于插件(命令模式)的控制器引擎
3:视图技术采用模板引擎


基于以上三要素来看NDOGenerator 的具体设计
  阅读全文

posted @ 2006-12-05 17:07 风云 阅读(3657) | 评论 (26)编辑