1) Castle
Castle是.Net系统级框架,它通过将一些成熟开源应用进行无缝整合而成的一套完善的应用系统框架,这其中包括了ActiveRecord、DynamicProxy、MonoRail及MicroKernel/Windsor。MicroKernel/Windsor是Castle的底层核心实现,它采用IoC容器对系统进行运行期动态设置,主要包括Facilities、Components、Services三大部分。
ActiveRecord对当前热门的ORM框架NHibernate进行了封装处理,主要包括将一些常用的数据进行抽象化、通过Attribute来取代mapping文件等。在ActiveRecord的实现中,Model对象必须继承于Active-RecordBase对象以便于Castle容器进行控制,限制Model对象从其他非持久化对象继承的可能,这是有违NHibernate/Hibernate最初的设计思想的。在Hibernate的设计思想中,Model对象可以是任意的Java Bean对象。MonoRail是Ruby on Rail的.Net实现,这是一个MVC Web框架。它与传统WebForm在控制上的不同在于WebForm采用页控制器模式,而MVC采用前端控制器模式。在界面表达方式上MonoRail采用模板引擎输出,模板引擎在PHP和JSP上已广泛使用,而在ASP.NET上因为服务端控件的强大功能和易用性而很少有人使用,两者是各有优缺点。
2) Spring.NET
Spring.NET是由Spring框架移植而来的,Spring框架是Java著名的应用系统框架,它已成为了替代轻量级企业应用的开发标准框架了。Spring.NET包括:
Spring.Core core就是一个对象工厂(ObjectFactory), 它通过配置中的对象定义来创建对象,它的目的是消除对象的new操作。在配置文件中,除了定义对象的一些属性外,还能定义对象之间的相互关系,这就使得对象之间的耦合延迟到了运行时, 如果针对接口或抽象类进行编程,则还可以通过具体对象的不同实现来定制系统的行为。
Spring.AOP 这是按AOP联盟的接口定义来实现的,AOP即面向截面编程,其核心是通过给对象创建一个动态代理对象来接管对象的操作,这样就能对操作进行前置和后置处理了。
Spring.Data 这是一个由第三方实现的整合到Spring内的数据访问组件,目前已包括了NHibernate的实现部分。Spring.NET还显得不够成熟,一些功能因为平台的局限性而导致了移植上的困难, 与Castle相比就差了一些。
3) Nhibernate
Nhibernate是.NET持久层框架,它从Java上的Hibernate移植而来。作为一种o/r mapping框架,它具有以下一些特点: 完善的数据映射及关联操作; 可扩展的持久机制; 强大的数据加载功能; 面向对象的数据查询语言HQL; 缓存机制; 多数据库支持。
Nhibernate的强大之处在于开发者几乎不用去了解任何数据存储和查询的细节问题,而能更专注地通过面向对象设计来构建系统。其HQL查询语言完全是针对对象及其属性来设计的,与SQL语法保持一致,降低了学习的曲线。
当然,Nhibernate还有一些不足之处,如报表数据。另外在性能上, Nhibernate通过反射来执行一些操作以及数据行到对象之间的转换, 都会造成性能上的一些损失。
4) iBatis.NET
作为另一种.Net持久层框架,iBatis.NET同样是从Java上的iBatis移植而来的o/r mapping框架,它包括DataMapping和DataAccess两部分:
DataMapping: ORM的实现部分, 对象映射通过映射文件来定义,支持one-to-one、one-to-many等对象关系映射。与Nhibernate显著不同的是,ibatis.net不会自动生成SQL语句,它通过预先定义好的SQL映射来执行数据操作,对于想自由操作SQL或使用复杂表达式的人来说,这是个不错的选择。
DataAccess: 数据存取框架实现,通过在配置文件中定义DAO接口及其实现,就可以方便使用DaoManager进行数据操作了,这也是一个在运行时决定具体实现的标准应用。
.Net 开源框架
最新推荐文章于 2024-02-04 16:16:13 发布