使用企业库(Enterprise Library)的DAAB模块(一)
企业库(Enterprise Library)的webcast:
http://www.microsoft.com/china/msdn/events/webcasts/shared/webcast/Series/EntLib.aspx
什么是企业库?
微软开发的可充用的程序块(Application Block)库,来解决企业级系统开发过程中遇到的一些共同的问题,如日志、数据访问、错误处理,认证,缓存等等。
企业库实现了微软提倡的最佳实践(Best practices),是免费,开源的,可重用,可扩展,可修改。
Data Access Application Block(DAAB)是企业库中最常用的一个模块。
从微软网站上可以下载企业库,我装的是3.1版本。下载企业库
安装完成后,就在vs2005中创建一个web项目,来感受一下企业库的使用。
添加web.config文件,右键,出现下图:
单击后进入到企业库的配置界面,可以看到DAAB模块,其中Connection string自然就是数据库的连接字符串。缺省的LocalSqlServer值指向的是SQLExpress数据库,不知道为什么,每次修改了LocalSqlServer的值,保存再打开企业库的编辑界面,它又指向SqlExpress数据库了。我只好新建了一个字符串叫“Default Server”,指向Sql 2000的数据库。
再左键单击“Data Access Application Block”节点,属性窗口中找到“DefaultDatabase”属性,下拉选择“Default Server”,将其设置为缺省的连接字符串。
保存,在直接双击web.config,为发现多了一段Xml代码,
<connectionStrings>
<add name="Default Server" connectionString="Data Source=.;Initial Catalog=pubs;Integrated Security=True"
providerName="System.Data.SqlClient" />
</connectionStrings>
要在程序中使用DAAB中的类,必须添加对DAAB的引用。
并且在Default.aspx.cs中引用“Microsoft.Practices.EnterpriseLibrary.Data”命名空间。
在page_load事件中,添加如下代码:
Database db = DatabaseFactory.CreateDatabase();
IDataReader reader = db.ExecuteReader(CommandType.Text, sql);
GridView1.DataSource = reader;
GridView1.DataBind();
运行后就能看到数据显示到gridview上了。
而如果使用常规的ADO.NET的类,代码则多多了:
string sql = "SELECT * FROM sales";
SqlConnection conn = new SqlConnection(strConn);
conn.Open();
SqlCommand command = conn.CreateCommand();
command.CommandType = CommandType.Text;
command.CommandText = sql;
GridView1.DataSource = command.ExecuteReader();
GridView1.DataBind();
conn.Close();
而且DAAB的最简化的代码可以写成:
GridView1.DataSource = DatabaseFactory.CreateDatabase().ExecuteReader(CommandType.Text, sql);
GridView1.DataBind();
因此,相比于常规的ADO.NET,DAAB有如下的特点:
1.DAAB进行了封装,可以使用更简单、高效的代码来打到相同目的。
2.对不同的数据库(SQL Server/Oracle等)提供了统一的编程实现。比如不管是任何类型的数据库返回的数据集都用IDataReader,而不是像ADO.NET中要分别使用SqlDataReader,OracleDataReader.