代码改变世界

非常优秀的.NET框架及持久层

2011-05-09 11:51  elivsit  阅读(2825)  评论(0编辑  收藏  举报

编辑器加载中...

Castle是针对。NET平台下的一个非常优秀的开源项目,从数据访问框架 ORM到依赖注入容器,再到WEB层的MVC框架、AOP,基本包括了整个开发过程中的所有东西,为我们快速的构建企业级的应用程序提供了很好的服务。Castle在历经好几年、经过了3个RC版本之后,终于要发布1.0版本了。

笔者对于Castle项目的研究也有很长一段时间,也写过大量的Castle的文章。但是,随着微软“新。NET时代”的到来,Castle项目将会面临一些尴尬,如何找到自己的定位、后续如何发展是Castle项目作者不得不考虑的一个问题。

1.数据访问ActiveRecord

Castle中的ActiveRecord是一个轻量级的ORM组件,它在底层封装了NHibernate.NHibernate是一个基于。Net,用于关系数据库的对象持久化类库,它是著名的Hibernate的。Net版本,采用xml配置文件进行关系的映射。在ActiveRecord中,则对这种方式进行了进一步的封装,采用特性(Attribute)的方式进行映射。随着微软在。NET Framework 3.5中推出了自己的轻量级ORM——LINQ to SQL, ActiveRecord的处境变得有些尴尬,尽管有人会说LINQ to SQL目前只支持SQL Server,是的,但是LINQ强大的扩展性相信大家都看到了吧,现在LINQ对Oracle数据库的接口已经开放,所以这点在不远的将来一定会得到解决,在微软的实体框架发布时对Oracle数据库的LINQ支持一定没问题。

2.MVC框架MonoRail

在07年的时候微软发布了ASP.NET 3.5 Extentions的第一个CTP版本,其中最引人瞩目就是ASP.NET MVC Framework.在这之前,Castle中的MonoRail可以说是。NET平台下最为著名的MVC框架。由于ASP.NET MVC Framework的出现,在。NET开发界引起了一场诸如“为什么会出现ASP.NET平台下的MVC框架”,“MS MVC框架漩涡中的MonoRail未来”等的讨论。的确,在微软ASP.NET MVC Framework之后,MonoRail处于一个进退两难的境地,Hamilton也说“MonoRail 2.0最终结果如何取决于MS MVC框架的实现。如果最终的MS MVC非常棒,并且提供了很多功能,我会考虑放弃MonoRail 2.0.如果MS MVC最终版不是那么完美,缺少了必须实现的功能,那么MonoRail 2.0可以复用MS MVC的基础架构,以提供一些有价值的扩展”。但是有一点毋庸置疑那就是ASP.NET MVC Framework拥有的观众数量将是MonoRail无法达到的?

3.依赖注入容器Windsor Container

Windsor Container在Castle中的地位举足轻重,相信有很多朋友都是通过它才开始学习Castle的,Windsor Container以其良好的设计,简洁的配置很快赢得了开发者的口碑。正当Castle经过了3个RC版本,准备发布1.0正式版时,微软模式与实践团队在其团队博客中公布了微软依赖注入容器的开发计划,命名为Unity,并且将会把其他8个应用程序块都移植到Unity之上。这对于Castle来说,无疑又是一个晴天霹雳。虽然在模式与实践团队目前发布的Unity CTP版本中,我们看到它的设计有些还是非常的丑陋,如构造函数注入和属性注入等。但是有一点我们不得不承认,只要是微软官方发布的产品,.NET开发者都会去用,而且拥护程度远远超过开源项目。
OJB.NET

     OJB.NET是一款.NET平台下的对象/关系映射(O/R Mapping)工具。

Advanced Data Provider

     Advanced Data Provider是为ADO.NET提供的动态数据提供者 。可以让应用程序透明的访问不同的ADO.NET 数据提供者。

iBATIS.NET

    iBATIS.NET帮助你的应用系统创建更好的持久层框架。

Persist.NET

     Persist.NET是C#编写的一款完整的持久层框架。

NDal

     NDal是一个数据提取层(DAL)框架,它可以运行在.NET和Mono环境下。

Ubik

     Ubik是C# 2.0下的ORM持久层框架,当前是WinForms应用程序开发提供的.它支持OPath的子集而可以进行面向对象查询,且包含一个网络事件系统.

Gentle.NET

    Gentle.NET是一款开源的与关系数据库(RDBMS)无关的对象持久层框架,可以自动生成SQL和对象结构。它拥有一个SQL工厂用来创建自定义查询、DataView构建助手和卓越的性能和完善的文档。

ObjectBroker

    ObjectBroker是.NET平台下的一款开源O/R映射框架。它支持对象缓存,1:1, 1:n 和 m:n的关联映射等特性。

Websharp

    Websharp是国人开源的一款开源持久层框架,它的目标是设计一个基于.Net的通用的应用软件系统的框架,以简化基于.Net平台的企业应用软件的开发。目前,Websharp关注于企业应用软件的以下几个方面:1、  数据库访问2、  O/R 映射3、  AOP4、  分布式访问

FileHelpers Library

    FileHelpers Library是一款C#编写的开源 .NET 类库。它使用简单,很容易就可以从固定长度文件或界定记录(CSV)读/写数据。它也支持从不同的数据存储格式(Excel, Access, SqlServer)导入/导出数据。

参考博客:http://www.codeok.com/opensource/c/ormap/list-2.shtml

什么是持久化?ORM?

参考链接:http://www.cnblogs.com/anme/archive/2009/10/09/1579389.html

ORM-Object/Relational Mapper 对象数据映射

        Object/Role Modeling 对象角色建模

IOC容器:Castle,Spring.NET;

数据持久层:NHibernate,NBear,Castle ActiveRecord,Grove ;

日志记录:Log4net, Logging Application Block;

单元测试:NUnit,TestDriven.Net ;

项目:cs,dnn,asp.net forums,.Text,Cuyahoga,petshop

编辑器:FreeTextBox,FCKEditor