2011-12-19 12:13 by 风云, 1197 visits, 网摘, 收藏, 编辑
摘要:背景 随着Asp.net mvc的越来越流行,关于和Mvc整合的DI容器也非常的多,而Mini容器一致没有把整合的方案发布出来,以至于不时的收到有些网友询问这些事,于是便有了该文。[源代码从这里下载,Mini容器官方地址]解决方案 创建自定义工厂 public class NLiteControllerFactory : DefaultControllerFactory { private IServiceLocator ServiceLocator; public NLiteControllerFactory(IServiceLocator s...
阅读全文
2009-07-17 14:53 by 风云, 1634 visits, 网摘, 收藏, 编辑
摘要:今天粗粗看了老赵的文章适合C# Actor的消息执行方式 -中看不(3):中用的解决方案,我在想如果用我以前写的消息总线来实现那不是中看也中用了,于是顺手写了一个测试代码(具体内容参见适合C# Actor的消息执行方式 -中看不(3):中用的解决方案回复),说来很惭愧我的消息总线系列已经一年多没有更新了,我这人太懒散惯了,没办法。废话不多说了,下面我就具体讲解一下设计思路。 在Actor模式中,...
阅读全文
2008-05-19 15:26 by 风云, 2919 visits, 网摘, 收藏, 编辑
摘要:委托在.Net Framework中占据着非常重要的作用,它是.Net事件机制的关键,随着.Net2.0中匿名委托以及.Net3.5中的Lamda的表达式的应用等都可以看出委托所扮演的角色。虽然委托的优点数不胜数,但是反对使用以及建议小心谨慎使用的是大有人在,我对委托的使用是既不反对也不盲目而是小心谨慎.对于委托的小心谨慎主要就是委托使用不当常常会造成内存泄露,关于委托内存泄漏的解决方案有很多种,...
阅读全文
2008-05-16 17:44 by 风云, 2283 visits, 网摘, 收藏, 编辑
摘要:自从写了上一篇消息总线设计系列之 - 观察者模式之后,已经好长时间了,实在惭愧,现在抽出时间了,写下这一篇。观察者模式的特点是每个观察者对象可以定阅一个或多个不同类型的主题对象,每个主题对象包括一个或多个相同类型的观察者对象,他们之间是高度耦合并且直接进行通讯。 如果项目中用到大量的观察者模式之后,你会发现系统中的观察者和主题对象形成了一张错乱无章的关系网,非常难以维护。调停者模式就是为了解决这种...
阅读全文
2008-04-18 21:13 by 风云, 3244 visits, 网摘, 收藏, 编辑
摘要:在复杂企业级系统中消息总线占据着非常重要的作用,具体消息总线的产品是非常多的,如MSMQ,IBM 的MQ等,但是这些都是重量级,下面的系列文章将一步一步教你设计一个轻量级的消息总线,该消息总线即可支持嵌入式部署(进程内部署),又可支持分布式部署。1. 消息总线设计系列之 - 观察者模式2. 消息总线设计系列之 - 调停者模式3. 消息总线设计系列之 - 彻底解决消息总线的内存泄漏问题(委托与事件的...
阅读全文
2008-04-18 19:02 by 风云, 3204 visits, 网摘, 收藏, 编辑
摘要:关于委托于事件的关系在网上已经到处可见了,尤其是子阳兄 的C#中的委托于事件更是将它的讲的深入浅出,通俗易懂,实在是博客中的精品之作,无论是初学者还是老江湖都可以从这篇文章中领略不少。本文将从观察者模式的角度进一步来探讨之,希望你先看一下子阳兄C#中的委托于事件然后在看这篇文章,你的收获会是不一样的吆!(注:本文中的例子仍然选用子阳兄的例子,观察者模式的定义图例等大家可以在网上查阅,在这里就不一一...
阅读全文
2007-08-31 17:26 by 风云, 1644 visits, 网摘, 收藏, 编辑
摘要: ORM 的 OR 映射方式比较流行的是xml/标签,NBusiness 中的映射今天介绍的是用实体定义语言-E# 来描述,该语言和Visual Studio 紧密集成,比XML 语法简洁的多,和.NET 中的标签语法一样简单和简洁。
ORM 的优点很多,但是缺点也不少,比如运行效率低,有的ORM需要大量的映射文件(Hibernate等),今天给大家介绍 — NBusiness, 它的开发效率和运行效率极高。 开发人员用e#来定义OR映射,定义校验规则,定义权限,定义日志,定义模板(sql模板,充血实体模板,集合模板,缓冲模板,贫血实体模板), 然后e#编译器进行编译生成一个动态链接库DLL,以及对应的存储过程。到此大家应该明白为什么NBusiness 的开发效率高- 语法简介和简单的E#; 性能高的原因是调用ORM组件中的持久化方法是静态的,不需要动态生成SQL,而是直接通过存储过程的!
阅读全文
2007-03-08 17:55 by 风云, 2664 visits, 网摘, 收藏, 编辑
摘要: 由于工作的原因,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. 对活动记录的改动比较大,支持泛性, 以前活动记录的查询用的是实例方法,现在的查询用的都是静态
阅读全文
2006-12-15 17:57 by 风云, 2266 visits, 网摘, 收藏, 编辑
摘要:在NDO 中对于需要持久化的实体对象,在它的生命周期中可处于以下4个状态或混合状态中。
临时状态(isNew),“脏”状态(isDirty),持久化状态,游离状态。。。。。。。
阅读全文
2006-12-05 17:07 by 风云, 4066 visits, 网摘, 收藏, 编辑
摘要:在我的 也谈代码生成器 这篇文章中,我简要的介绍了代码生成器的7中设计方案,这篇文章我将以NDOGenerator为例详细介绍第五种设计方案的具体设计过程,希望和广大代码生成器爱好者在这个平台上相互分享一些设计思想!
如果要做一个通用的代码生成器(基于数据库驱动)必须具备的三要素:M V C
1:需要对数据库元数据进行建模(如,表,视图,列,视图列,存储过程,存储过程参数等)
2:一个良好的基于插件(命令模式)的控制器引擎
3:视图技术采用模板引擎
基于以上三要素来看NDOGenerator 的具体设计
阅读全文
2006-12-04 11:03 by 风云, 307 visits, 网摘, 收藏, 编辑
摘要:这个版本的Ndo对视图的支持增强了,并且增强对实体类的单表映射,下个版本将增加对一对多关联关系的支持!
简单介绍一下,实体类的使用方法:
阅读全文
2006-11-25 19:52 by 风云, 1984 visits, 网摘, 收藏, 编辑
摘要:NDO - DOTNET Data Access Object 的简称,是一个轻量型的数据访问组件,配置简单,支持多数据库,内部对ADO.Net 进行了良好的封装,使开发者不需要关心和了解ADO.Net 的底层细节,不需要根据不同的数据库专门写一套DAO。该组件内建了Statement 和 Procedure 对象专门针对于Sql 语句和存储过程处理的对象(类似于JDBC API),Statement 和 Procedure 比DAAB提供了更多的API,使开发者使用起来更方便和更快捷。NQL - NDO Query Language 是NDO 组件的又一个数据访问组件,它是基于Statement 对象之上的,使用简单灵活。活动记录 - ActiveRecord 一个ORM的精简版(支持单表的CRUD,多表操作可以借助NQL或Statement或Procuedure组件来实现)。相关内容,请看下面的介绍:
阅读全文
2006-11-14 12:06 by 风云, 5052 visits, 网摘, 收藏, 编辑
摘要: 关于代码生成器 Teddy's Knowledge Base 兄在博客园上已经谈过几次了,如他的也谈orm和代码生成和没有ORM或代码生成数据就不能持久化了? - 用范型技术代替代码生成! 等,今天我不谈代码生成器的意义,只谈代码生成器的设计方案,最后给一个DEMO供大家下载.
阅读全文
2006-11-10 18:18 by 风云, 2620 visits, 网摘, 收藏, 编辑
摘要: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进行安装.........
阅读全文
2006-11-09 16:05 by 风云, 1776 visits, 网摘, 收藏, 编辑
摘要:NDO 组件和例子下载,内置了一个基于Velocity模版引擎的代码生成器,该组件属于开源的,没有任何版权的纠纷,欢迎大家试用,如果有任何意见和建议请仅扔砖头就是了!
阅读全文
2006-11-02 08:32 by 风云, 2908 visits, 网摘, 收藏, 编辑
摘要:半年多没上网了,今天早上一大早来到博客园,看了Teddy's Knowledge Base 兄的NBear,以及上个礼拜五发现的OQL.NET,以及我前一段以及现在正在做的NDO,我思索出来了四个问题,微软 DLinq技术来临前的国内 .NET 的 ORM 发展之局势
阅读全文
2006-11-01 11:30 by 风云, 1256 visits, 网摘, 收藏, 编辑
摘要:Region和Products表的SCHEMA代码,Region表中的主键时赋值方式,Products中的主键是自动增一的CREATETABLE[dbo].[Region]([RegionID][int]PRIMARYKEY,[RegionDescription][nchar](50)NOTNULL)CREATETABLE[dbo].[Products]([ProductID][int]IDENT...
阅读全文
2006-10-30 18:48 by 风云, 2356 visits, 网摘, 收藏, 编辑
摘要:我开发的这个ActiveRecord 思想来源于现在非常火爆的Rails框架中的ActiveRecord - 活动记录,该模式来源于国际软件大师Martin Flowler所著的<<企业应用架构模式>>。文中Martin Flowler下了定义:一个对象,它包装数据库表或视图中的某一行,封装数据库访问,并在这些数据上增加了领域逻辑。 意思是说活动记录是一个实体对象,该实体对...
阅读全文
2006-10-30 08:58 by 风云, 1735 visits, 网摘, 收藏, 编辑
摘要:NQL.NET 是我最近在NDO(DOTNET DataAccess Object)的基础上并吸收了Hibernate,Rails框架中的活动记录,Castle中的活动记录,Grove,ActionPack,OQL的精华思想上建立的一套数据库对象查询语言(NQL,NDO Query Language)它支持 CRUD操作,也包括 select、from、join、on、where、group by...
阅读全文
2006-10-29 12:30 by 风云, 2033 visits, 网摘, 收藏, 编辑
摘要:17. 比DataSet更简单的分页操作,并且性能也大大增强了,CurrentPageIndex = 1,PageSize = 5this.dataGrid1.DataSource=newQuery("Customers").Where(Ex.Like("ContactTitle","Sales%")).GetDataTable(1,5);SQL 输出SELECTTOP5*FROM(SELECT*...
阅读全文