操作方法:
1,打开VS2013,建立一空白解决方案。注意是建立空白解决方案,而不是一个项目或者网站。建立方式是点击菜单栏的 新建à项目。项目类型选 其他项目类型->Visual Studio解决方案。右边的模板选择空白解决方案,填写名称,选择位置,点击确定即可。
2,打开解决方案资源管理器,右键点击此解决方案名称à新建à新建项目,项目类型为类库,使用语言选C#,命名为DAL.用同样的方法再新建一个项目命名为BLL,然后再新建一个ASP.NET网站,使用语言为c#,命名为 UIL.
3,添加项目BLL对项目DAL的引用。以及网站UIL对项目BLL的引用。方法是在资源管理器中右击项目名称à添加引用。在弹出的对话框中选中项目标签,选择适当的项目点击确定。
4,在项目DAL中添加一个新的类文件,名称为dataaccess.cs.然后在此类文件中写入那些访问数据库或者xml文件的通用的方法,以供BLL层的调用。我通常使用的是一个微软企业库的组件,调用了里面操作数据库的方法。当然关于这个代码我会在以后的文章中拿出来给大家分享。
先举个简单的例子,假设下面这个函数是根据传来的查询语句,返回一个dataset对象。
/// <summary>
/// 执行查询,返回数据集
/// </summary>
/// <param name="connectionName">连接字符串名</param>
/// <param name="commandType">命令类型(存储过程或T-SQL查询语句)</param>
/// <param name="command">存储过程名或T-Sql查询语句</param>
/// <returns>数据集</returns>
public static DataSet ExecuteDataSet(QueryType commandType, string command)
{
SqlConnection mysqlconnection = new SqlConnection(myconnectionstring);
……
Mysqlconnection.close();
Return mydataset;
}
5,假设我们在用户表现层要实现一个功能,就是根据一个用户ID获取用户的详细信息。那么就要在业务逻辑层设计这个函数。
在BLL项目中添加一个新类TheUser.
其中部分代码为:
Public class TheUser
{
…
///<summary>
///根据用户Id返回用户详细信息
///</summary>
/// <param name="userid">用户ID</param>
/// <returns>数据集</returns>
Public static DataSet GetUserInfoById(string userid) //函数定义为静态函数可以不用声明新类而直接调用
{
String strSql = “select * from UserInfo where UserId = ” + userid;
Return DAL.DataAccess.ExecuteDataSet(commandType.Text,strSql); //调用数据访问层函数,DAL为其命名空间
}
…
}
6,在用户接口层来调用这个函数.
在UIL网站中建立一个页面,在其.cs文件中要调用的函数中加入如下代码:
…
String UserId = “001”;
DataSet dsUserInfo = BLL.TheUser.GetUeserInfoById(UserId); //调用业务逻辑层函数。BLL为命名空间
DataTabel dtUserInfo = dsUserInfo.Tables[0];
…
这就是三层结构大体的样子。它的好处是结构清楚,功能模块清晰,出现异常能迅速定位排除。这种模式开发出来的代码非常美观,简洁,别人阅读起来特别方便。
《1》 第一层 表示层 用通俗的语言就是 UI 界面, 再通俗点就是我们平时上网时看到的界面。
《2》 第二层 业务逻辑层 ,,,说白了 ,就是 一个类 ,该类利用下边一层 ( 数据访问层 的方法返回的结果 DataSet ) 把 各个数据对象分解,再 从新 以更小的对象存储起来 (更加的有机体)
等待上层的应用。
《3》 第三层 数据访问层 。 该层说白了也是一个类 。 该类 其实是把数据库里的 数据 用该类的方法( 以sql查询为核心) 执行。