您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 项目/工程管理 > NET开源项目介绍及资源推荐:数据持久层
在.NET平台下,关于数据持久层框架非常多,本文主要对如下几种做简要的介绍并推荐一些学习的资源:1.NHibernate2.NBear3.CastleActiveRecord4.iBATIS.NET5.DAAB附加介绍:DLinq一.NHibernate提起NHibernate,相信大家都不陌生,NHibernate来源于非常优秀的基于Java的Hibernate关系型持久化工具,它从数据库底层来持久化.Net对象到关系型数据库,NHibernate为我们完成这一切,而不用自己写SQL语句去操作数据库对象,所写的代码仅仅和对象关联,NHibernat自动产生SQL语句,并确保对象提交到正确的表和字段中去.大量减少开发时人工使用SQL和ADO.NET处理数据的时间.NHibernate可以帮助消除或者包装那些针对特定数据库的SQL代码,并且把结果集从表格的表示形式转换到一系列的对象去。NHibernate采用XML文件配置的方式,每一个实体类都会对应一个映射文件,如下面的例子:publicclassUser{publicUser(){}privatestringid;privatestringuserName;privatestringpassword;privatestringemailAddress;privateDateTimelastLogon;publicstringId{get{returnid;}set{id=value;}}publicstringUserName{get{returnuserName;}set{userName=value;}}publicstringPassword{get{returnpassword;}set{password=value;}}publicstringEmailAddress{get{returnemailAddress;}set{emailAddress=value;}}publicDateTimeLastLogon{get{returnlastLogon;}set{lastLogon=value;}}}它对应的.hbm.xml文件如下:?xmlversion=1.0encoding=utf-8?hibernate-mappingxmlns=urn:nhibernate-mapping-2.0classname=NHibernateWebDemo.Model.User,NHibernateWebDemo.Modeltable=usersidname=Idcolumn=LogonIdtype=Stringlength=20generatorclass=assigned//idpropertyname=UserNamecolumn=Nametype=Stringlength=40/propertyname=Passwordtype=Stringlength=20/propertyname=EmailAddresstype=Stringlength=40/propertyname=LastLogontype=DateTime//class/hibernate-mapping官方主页:学习资源园子里首推DDL的Blog:,有NHibernate文档的中文翻译以及DLL写的一些非常优秀的NHibernate文章。大名鼎鼎的张老三:的Nhibernate学习手记系列:无心之柳的Blog也非常值得推荐:博客园O/RMapping团队:二.NBear园子里Teddy开发的NBear大家都非常熟悉,现在已经发布了3.0正式版。NBear包含的组件不仅仅是数据持久层,还包含了IOC,分布式组件和Web组件。看一下Teddy对于NBear的介绍:NBear的核心包括一个泛型、强类型的的ORM数据持久化接口、一组相关的Entity相关组件、高性能分布式组件、Web组件,因此:1、NBear最适合开发各类基于ASP.NET2.0,对性能要求较高的Web程序。NBear.Web组件提供了许多加速Web开发的组件,将使您基于标准ASP.NET方式的开发效率大大提高;同时,简单易用、性能突出的泛型持久化支持,则将使您能够将更多注意力集中到业务开发,同时也不会有传统ORM持久化框架的性能问题和繁琐配置需要(NBear几乎不需手动配置,性能则接近DAAB)。2、基于MQ和.NetRemoting的高性能分布式组件,将使您开发和维护分布式程序更加容易。一个基于NBear.IoC模块的开发的应用程序甚至无需重新编译就能部属为真正的负载均衡的分布式程序。3、对于桌面应用程序,NBear同样是一个几乎没有什么学习曲线(多少人会为写一个小小的日历程序而仔细研究透彻Hibernate的参考手册?)、实用高效的数据持久化方案。4、随着NBearV3带来的全面的ORM支持、更详细的文档和教程,和全面的代码生成工具,NBear也已经可以被用于企业级程序开发。官方首页:学习资源学习资源当然首推Teddy的个人Blog:博客园NB团队:三.CastleActiveRecordActiveRecord是Castle中的一个子项目,现在的版本是RC1。它同样是一个非常优秀的持久层框架,在底层封装了NHibernate,改用Attribute来代替配置文件,这样就不用再像NHibernate那样去编写复杂的配置文件。如下代码片断所示:[ActiveRecord(Users)]publicclassUser:ActiveRecordBase{privateint_id;privatestring_name;privatestring_password;privatestring_emailAddress;privateDateTime_lastLogon;[PrimaryKey(PrimaryKeyType.Identity,LogonID)]publicintId{get{return_id;}set{_id=value;}}[Property(LogonName)]publicstringName{get{return_name;}set{_name=value;}}[Property(Password)]publicstringPassword{get{return_password;}set{_password=value;}}[Property(EmailAddress)]publicstringAddress{get{return_emailAddress;}set{_emailAddress=value;}}[Property(LastLogon)]publicDateTimeLastLogon{get{return_lastLogon;}set{_lastLogon=value;}}}官方主页:学习资源官方文档:叶子的家:的Castle开发系列:项目成员之一ayende的Blog:四.iBATIS.NETiBATIS.NET分为DataMapper和DataAccess两部分,应该说DataMapper是这个框架的核心,DataMapper使用XML文件来实现从实体到SQLstatements的映射,学习起来非常简单,是用DataMapper后,我们可以自由的使用SQL语句或者存储过程;DataAccess允许我们通过一个简单的接口来操作数据,而不必了解底层实现的细节。如下代码片断:[Serializable]publicclassPerson{privateintid;privatestringfirstName;privatestringlastName;privateDateTime?birthDate;privatedouble?weightInKilograms;privatedouble?heightInMeters;publicPerson(){}publicintId{get{returnid;}set{id=value;}}publicstringFirstName{get{returnfirstName;}set{firstName=value;}}publicstringLastName{get{returnlastName;}set{lastName=value;}}publicDateTime?BirthDate{get{returnbirthDate;}set{birthDate=value;}}publicdouble?WeightInKilograms{get{returnweightInKilograms;}set{weightInKilograms=value;}}publicdouble?HeightInMeters{get{returnheightInMeters;}set{heightInMeters=value;}}}映射文件如下:?xmlversion=1.0encoding=utf-8?sqlMapnamespace=Personxmlns=:xsi==Persontype=IBatisNetDemo.Domain.Person,IBatisNetDemo//aliasresultMapsresultMapid=SelectAllResultclass=Personresultproperty=Idcolumn=PER_ID/resultproperty=FirstNamecolumn=PER_FIRST_NAME/resultproperty=LastNamecolumn=PER_LAST_NAME/resultproperty=BirthDatecolumn=PER_BIRTH_DATE/resultproperty=WeightInKilogramscolumn=PER_WEIGHT_KG/resultproperty=HeightInMeterscolumn=PER_HEIGHT_M//resultMap/resultMapsstatementsselectid=SelectAllPersonresultMap=SelectAllResultselectPER_ID,PER_FIRST_NAME,PER_L
本文标题:NET开源项目介绍及资源推荐:数据持久层
链接地址:https://www.777doc.com/doc-3524691 .html