`
izuoyan
  • 浏览: 9259885 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

.NET开源项目介绍及资源推荐:数据持久层 (微软MVP写作)

阅读更多
出处:http://www.cnblogs.com/Terrylee/archive/2006/12/02/opensource_framework_and_resource_recommendation_orm.html

在.NET平台下,关于数据持久层框架非常多,本文主要对如下几种做简要的介绍并推荐一些学习的资源:
1.NHibernate
2.NBear
3.Castle ActiveRecord
4.iBATIS.NET
5.DAAB
附加介绍:DLinq
一.NHibernate
提起NHibernate,相信大家都不陌生,NHibernate来源于非常优秀的基于Java的Hibernate关系型持久化工具,它从数据库底层来持久化.Net对象到关系型数据库,NHibernate为我们完成这一切,而不用自己写SQL语句去操作数据库对象,所写的代码仅仅和对象关联,NHibernat自动产生SQL语句,并确保对象提交到正确的表和字段中去.大量减少开发时人工使用SQL和ADO.NET处理数据的时间. NHibernate可以帮助消除或者包装那些针对特定数据库的SQL代码,并且把结果集从表格的表示形式转换到一系列的对象去。NHibernate采用XML文件配置的方式,每一个实体类都会对应一个映射文件,如下面的例子:

<?xmlversion="1.0"encoding="utf-8"?>

<hibernate-mappingxmlns="urn:nhibernate-mapping-2.0">

<classname="NHibernateWebDemo.Model.User,NHibernateWebDemo.Model"table="users">

<idname="Id"column="LogonId"type="String"length="20">

<generatorclass="assigned"/>

</id>

<propertyname="UserName"column="Name"type="String"length="40"/>

<propertyname="Password"type="String"length="20"/>

<propertyname="EmailAddress"type="String"length="40"/>

<propertyname="LastLogon"type="DateTime"/>

</class>

</hibernate-mapping>
学习资源
园子里首推DDL的Blog:http://www.cnblogs.com/renrenqq/,有NHibernate文档的中文翻译以及DLL写的一些非常优秀的NHibernate文章。
Aero的Nhibernate学习手记系列:http://www.cnblogs.com/chwkai/category/32514.html
无心之柳的Blog也非常值得推荐:http://www.cnblogs.com/9527/
博客园O/R Mapping团队:http://www.cnblogs.com/team/ORMapping.html
二.NBear
园子里Teddy开发的NBear大家都非常熟悉,现在已经发布了3.0正式版。NBear包含的组件不仅仅是数据持久层,还包含了IOC,分布式组件和Web组件。看一下Teddy对于NBear的介绍:
NBear的核心包括一个泛型、强类型的的ORM数据持久化接口、一组相关的Entity相关组件、高性能分布式组件、Web组件,因此:
1、NBear最适合开发各类基于ASP.NET 2.0,对性能要求较高的Web程序。NBear.Web组件提供了许多加速Web开发的组件,将使您基于标准 ASP.NET方式的开发效率大大提高;同时,简单易用、性能突出的泛型持久化支持,则将使您能够将更多注意力集中到业务开发,同时也不会有传统ORM持久化框架的性能问题和繁琐配置需要(NBear几乎不需手动配置,性能则接近DAAB)。
2、基于MQ和.Net Remoting的高性能分布式组件,将使您开发和维护分布式程序更加容易。一个基于NBear.IoC模块的开发的应用程序甚至无需重新编译就能部属为真正的负载均衡的分布式程序。
3、对于桌面应用程序,NBear同样是一个几乎没有什么学习曲线(多少人会为写一个小小的日历程序而仔细研究透彻Hibernate的参考手册?)、实用高效的数据持久化方案。
4、随着NBearV3带来的全面的ORM支持、更详细的文档和教程,和全面的代码生成工具,NBear也已经可以被用于企业级程序开发。
学习资源
学习资源当然首推Teddy的个人Blog:http://www.cnblogs.com/teddyma/
博客园NB团队:http://nbteam.cnblogs.com/
三.Castle ActiveRecord
ActiveRecord是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;}
}

}
学习资源
叶子的家:http://wj.cnblogs.com/
TerryLee的Castle开发系列:
Castle项目成员之一ayende的Blog:http://www.ayende.com/Blog/
四.iBATIS.NET
iBATIS.NET分为DataMapper和DataAccess两部分,应该说DataMapper是这个框架的核心,DataMapper使用XML文件来实现从实体到SQL statements的映射,学习起来非常简单,是用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;}
}

}
映射文件如下:


学习资源

善友的iBATIS.NET开发指南系列:http://www.cnblogs.com/shanyou/archive/2006/04/29/388610.html

五.DAAB
DAAB是微软Enterprise Library中的一个应用程序块,能够帮助我们实现通用的数据访问,所以也把它列在这里介绍一下。DAAB使应用程序中的数据访问在不知道具体的数据库系统的情况下进行,相信很多朋友对DAAB都很熟性并且已经在项目中使用,就不多介绍了,看一个简单的代码片断:
publicstringGetCustomerList()
{
//创建Database对象
Databasedb=DatabaseFactory.CreateDatabase();
//使用SQL语句创建DbCommand对象
stringsqlCommand="SelectCustomerID,Name,Address,City,Country,PostalCode"+
"FromCustomers";
DbCommanddbCommand
=db.GetSqlStringCommand(sqlCommand);
StringBuilderreaderData
=newStringBuilder();
//调用ExecuteReader方法
using(IDataReaderdataReader=db.ExecuteReader(dbCommand))
{
while(dataReader.Read())
{
//Getthevalueofthe'Name'columnintheDataReader
readerData.Append(dataReader["Name"]);
readerData.Append(Environment.NewLine);
}

}

returnreaderData.ToString();
}
学习资源
企业的帮助文档和Hands On Lab
附加介绍:DLinq
DLinq虽然不能算是开源框架,但是说到数据持久,还是提一下比较好,DLinq是微软
分享到:
评论

相关推荐

    微软开源ASP.NET MVC项目

    在“微软开源ASP.NET MVC项目”中,我们可以推测这可能是一个示例或模板项目,用于展示如何使用ASP.NET MVC框架来开发Web应用。这个项目可能是微软为了促进开发者对ASP.NET MVC的理解和使用而提供的资源。"Oxite...

    收集一些.NET开发资源站点和部分优秀.NET开源项目.doc

    标题中的“收集一些.NET开发资源站点和部分优秀.NET开源项目.doc”表明了本文档主要包含两方面的内容:一是关于.NET开发的各种资源站点,包括官方、社区、教程等平台;二是介绍一些优秀的.NET开源项目,这些项目可能...

    23个.NET开源项目

    ### 23个.NET开源项目:深度解析与应用价值 ...总体而言,这23个.NET开源项目覆盖了从测试、数据访问、架构设计到工具库的各个方面,为.NET开发者提供了丰富的资源和工具,极大地促进了.NET生态的繁荣和发展。

    .net 开源cms.zip

    .NET开源CMS,全称为“.NET开源内容管理系统”,是基于微软的.NET框架开发的,主要用于构建网站和应用程序的软件系统。这种CMS允许用户通过图形化的用户界面进行内容的创建、管理和发布,而无需深入理解底层的编程...

    .net BBS 开源项目

    .NET BBS 开源项目是一个专为中、小企业设计的强大论坛系统,其核心特性与功能丰富,旨在提供高效且易用的在线社区平台。作为开源软件,它允许用户自由地查看、修改和分发源代码,促进了技术共享与创新。 该项目...

    ASP.Net开源博客系统

    ASP.NET开源博客系统是一个基于微软的ASP.NET技术构建的、高度可定制的、免费的博客平台,用于个人或团队发布内容、分享见解和知识。它以其功能强大、易用性和可扩展性受到开发者和用户的欢迎,是学习ASP.NET开发的...

    .net开源框架

    其中,"whywhy898-DDit-Rapid-Development-Framework-cb46205"可能是一个特定的.NET开源框架项目,它的名称暗示了它是一个快速开发框架,专为提升开发效率而设计。 该框架通常包含了以下关键组件: 1. **权限管理*...

    Discuz开源论坛.NET版

    Discuz开源论坛.NET版是一款基于.NET技术构建的社区论坛软件,它为用户提供了丰富的功能和高度的可定制性。Discuz作为一个知名的社区平台,一直以来都以其稳定性和易用性受到广大用户的喜爱。将Discuz移植到.NET平台...

    CMS .NET 开源项目_C#门户网站cms程序.rar

    【标题】"CMS .NET 开源项目_C#门户网站cms程序.rar"揭示了这是一个基于.NET框架,采用C#语言开发的开源内容管理系统(CMS),主要用于构建门户网站。CMS是Content Management System的缩写,它允许非技术用户通过...

    .Net开源流程引擎RoadFlow最新版(全部源码)

    《.Net开源流程引擎RoadFlow深度解析》 .Net开源流程引擎RoadFlow是一款高效、灵活的流程管理工具,专为.NET开发者设计,提供了完整的源代码,方便开发者进行二次开发和定制。该引擎以其强大的功能和易用性,在企业...

    asp.net开源项目编码标准

    CodingStandards asp.net开源项目编码标准

    ASP.NET开源OA代码.7z

    ASP.NET开源OA代码是基于微软的ASP.NET框架开发的一款办公自动化系统,主要针对.Net4.0或.Net4.8框架进行设计。这个系统的源代码开放,允许开发者进行深入研究、定制化开发,甚至构建自己的企业级办公解决方案。OA...

    .Net开源CMS

    这是特定的.NET开源CMS系统的名称,其包含了多个项目和库,如DTcms.Web(Web应用程序)、DTcms.DAL(数据访问层)、DTcms.DBUtility(数据库操作工具类)、DTcms.BLL(业务逻辑层)、DTcms.Web.UI(用户界面)、...

    ASP.NET完整项目源代码

    本压缩包包含的是一个完整的ASP.NET项目源代码集合,提供了十个不同的项目示例,这对于学习和理解ASP.NET的工作原理、开发流程以及最佳实践来说,是一个宝贵的资源。 1. **ASP.NET基础**:ASP.NET是.NET框架的一...

    VS.NET开源框架

    VS.NET 开源框架 在企业级开源软件大盘点中,VS.NET 开源框架是一个重要的组成部分。这个开源框架包括了多个子项目,每个子项目都有其特点和优势。下面是对这些子项目的详细介绍: 1. Castle Castle 是一个 .NET ...

    ASP.NET开源论坛

    在提供的压缩包子文件中,"eastcode.org.txt"可能是关于东方源码网的介绍或使用指南,这个网站可能提供了该开源论坛的下载和教程资源。"东方源码网.url"是一个快捷方式,指向该网站,方便用户访问。"EntLibForum...

    CMS系统,ASP.NET开源

    在CMS系统中,C#用于编写后台逻辑、数据访问层和业务逻辑层代码。 【jQuery】 jQuery是一个流行的JavaScript库,简化了HTML文档遍历、事件处理、动画制作和Ajax交互。在ASP.NET CMS系统中,jQuery常用于提升前端...

    asp.net mvc项目源码

    这个源码包显然包含了一个使用ASP.NET MVC和三层架构开发的项目实例。三层架构通常指的是数据访问层(DAL)、业务逻辑层(BLL)和表示层(UI),这种架构设计有助于分离关注点,提高代码的复用性和可测试性。 `...

    开源项目-dotnet-cli.zip

    标题 "开源项目-dotnet-cli.zip" 提到的是一个与 .NET 开源命令行接口(CLI)相关的项目。.NET CLI 是微软开发的用于构建、管理和部署 .NET 应用程序的工具集,它支持跨平台操作,可以在 Windows、Linux 和 macOS 上...

    国内写的很不错的asp.net开源cms--NetCMS V1.7.0 build1125_src源码版

    NetCMS V1.7.0 build1125_src源码版是一款基于ASP.NET技术的开源内容管理系统(CMS),在国内开发者社区中获得了较高的评价。这款CMS提供了完整的源代码,允许用户进行深度定制和二次开发,以满足不同项目的需求。...

Global site tag (gtag.js) - Google Analytics