• 【转】Asp.net 2.0三层架构的构建与理解


    【转自】http://lovexuwenhao.javaeye.com/blog/327689
    下面是我看过的比较有帮助文章
    1.部署三层构架
      http://hi.baidu.com/trh87/blog/item/c1b1f12439b6433b8644f9d5.html
    2.ASp.net 剖析三层架构 (以pet shop 4.0为例)
      http://hi.baidu.com/ourok/blog/item/1a320c4a23aaeaf883025c51.html
    3. Three-Layer-Web-Application-Using-Asp-Net-Part1.pdf(可以搜索到)

    三层架构分别是数据访问层 database access layer,业务逻辑层business logic layer,用户表现层(用户接口层) user interface layer.简称分别为DAL,BLL,UIL.

    数据访问层主要是提供一些通用的对数据库进行操作的函数。业务逻辑层则调用这些函数完成某些功能,而用户表现层则又调用业务逻辑层的函数来使用这些功能。

    说起来比较简单,但是到底是怎么个实现法?不要着急,给你举个小例子就明白了。

    1,打开VS2005,建立一空白解决方案。注意是建立空白解决方案,而不是一个项目或者网站。建立方式是点击菜单栏的新建项目。项目类型选其他项目类型->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];

    这就是三层结构大体的样子。它的好处是结构清楚,功能模块清晰,出现异常能迅速定位排除。这种模式开发出来的代码非常美观,简洁,别人阅读起来特别方便。

    另外告诉大家一个 vs2005使用中的小技巧,目前还不知道的可以尝试下。当你写完一个函数要加注释的时候,在此函数名的上面一行打三个/(c#语言是三个/,vb里是三 个’)。然后你会发现程序自动出现了层次清晰的注释代码。你只需要在该加注释的地方补充你的注释即可。这样的注释看起来很漂亮,而且你以后调用的时候能看 到它的动态提示。


  • 相关阅读:
    python学习-(__new__方法和单例模式)
    jQuery弹性展开收缩菜单插件gooey.js
    轻量级Modal模态框插件cta.js
    基于jq流畅度非常好的图片左右切换焦点图
    基于jQuery实现的腾讯互动娱乐网站特效
    基于jQuery和CSS3炫酷图片3D旋转幻灯片特效
    可嵌入图片视频jQuery全屏滑块
    基于jQuery仿迅雷影音官网幻灯片特效
    基于jQuery自适应宽度跟高度可自定义焦点图
    基于jQuery实现汉字转换成拼音代码
  • 原文地址:https://www.cnblogs.com/xryyforver/p/1508522.html
Copyright © 2020-2023  润新知