框架使用及规范参考

1.       三层结构模式开发
基类介绍:
(1)       数据层(DAL): Framework.DAL.DbObject必须继承,里面包括对存储过程 RunProcedure 和sql语句RunSQL的数据处理函数,根据参数不同,提供了四种重载,可返回四中数据类型:

执行sql语句---------------------------------------------------- #region 执行sql语句----------------------------------------------------
        
/**////<summary>
        
///1. 执行sql语句, 
        
/// rowsAffected=-1, 执行查询,并返回结果集中第一行第一列; 
        
/// rowsAffected=0 或其他, 返回受影响的行数
        
///</summary>
        
/// <example>
        
/// 参数:
        
/// IDataParameter[] parameters = new IDataParameter[3];
        
/// parameters[0] = GetParameter("@UserID", System.Data.DbType.Int32, currentUser.UserID);
        
/// parameters[1] = GetParameter("@Photo", System.Data.DbType.Binary, currentUser.Photo);
        
/// parameters[2] = GetParameter("@ImageType", System.Data.DbType.String, currentUser.ImageType);
        
/// 或
        
/// SqlParameter[] parameters ={ 
        
/// new SqlParameter("@NodeId", SqlDbType.Int, 4),
        
/// new SqlParameter("@Depth", SqlDbType.Int, 4)};
        
/// parameters[0].Value = 36;
        
/// parameters[1].Value = 4;
        
/// </example>
        
///<remarks>
        
/// int rowsAffected = 0;
        
/// return RunSQL("sql", rowsAffected [, parameters]);
        
///</remarks>

        protected int RunSQL(string sql, ref int rowsAffected, params IDataParameter[] parameters)
        
{ }

        
/**////<summary>
        
///2. 执行sql语句,并返回 DataReader
        
///</summary>
        
///<remarks>
        
/// return RunSQL("sql" [, parameters]);
        
///</remarks>

        protected IDataReader RunSQL(string sql, params IDataParameter[] parameters)
        
{}

        
/**////<summary>
        
///3. 执行sql语句,并返回 DataSet
        
///</summary>
        
///<remarks>
        
/// return RunSQL("sql", tableName [, parameters]);
        
///</remarks>

        protected DataSet RunSQL(string sql, string tableName, params IDataParameter[] parameters)
        
{}

        
/**////<summary>
        
///4. 执行 FillDataSet
        
///</summary>
        
///<remarks>
        
/// return RunSQL("sql", tableName, dataSet [, parameters]);
        
///</remarks>

        protected void RunSQL(string sql, string tableName, DataSet dataSet, params IDataParameter[] parameters)
        
{}
#endregion

 

(2)       业务层(BLL):必须继承 Framework.BLL.BizObject,暂无函数。

(3)       用户层(UI)在 *.aspx.cs 中继承Framework.UI.PageBase,里面提供了在UI可直接使用的公共函数。 

(4)       App_Code中模块结构参考:

BLL:逻辑层,DAL:数据层,Entity:实体定义。 

(5)       Entity示例:

注意第二个构造函数,在BLL需要返回Entity时,根据DAL返回的DataSet.Tables[0].Rows[0]作为参数,可直接构造Entity返回。

namespace  RM.Entity
{
    
/**//// <summary>
    
/// 歌曲实体
    
/// </summary>

    public class MusicInfo : BaseInfo
    
{
        
属性#region 属性
        
private int _CategoryID;
        
/**//// <summary>类别ID</summary>
        public int CategoryID
        
{
            
get return _CategoryID; }
            
set { _CategoryID = value; }
        }


        
private string _Category;
        
/**//// <summary>类别</summary>
        public string Category
        
{
            
get return _Category; }
            
set { _Category = value; }
        }

        
private string _Artist;
        
/**//// <summary>歌手名,30个字节</summary>
        public string Artist
        
{
            
get return _Artist; }
            
set { _Artist = value; }
        }


        
private string _Album;
        
/**//// <summary>专辑名称,30个字节</summary>
        public string Album
        
{
            
get return _Album; }
            
set { _Album = value; }
        }


        
private string _Year;
        
/**//// <summary>年代,4个字符</summary>
        public string Year
        
{
            
get return _Year; }
            
set { _Year = value; }
        }


        
private string _Comment;
        
/**//// <summary>注释,28个字节</summary>
        public string Comment
        
{
            
get return _Comment; }
            
set { _Comment = value; }
        }

        
#endregion


        
构造函数#region 构造函数
        
public MusicInfo()
        
{      }

        
public MusicInfo(DataRow dataRow)
        
{
            
this.Title = (string)dataRow["Title"];
            
this.CategoryID = (int)dataRow["CategoryID"];
            
this.Category = (string)dataRow["CategoryName"];
            
this.Album = dataRow["Album"== System.DBNull.Value ? string.Empty : dataRow["Album"].ToString();
            
this.Artist = dataRow["Artist"== System.DBNull.Value ? string.Empty : dataRow["Artist"].ToString();
            
this.Comment = dataRow["Comment"== System.DBNull.Value ? string.Empty : dataRow["Comment"].ToString();
            
this.Length = Convert.ToDateTime(dataRow["Length"]);
            
this.Url = dataRow["Url"== System.DBNull.Value ? string.Empty : dataRow["Url"].ToString();
            
this.Year = dataRow["Year"== System.DBNull.Value ? string.Empty : dataRow["Year"].ToString();
        }

        
#endregion

    }

}

 

2.     全局信息:Framework.Globals  全局静态变量,静态属性,静态方法

3.     错误信息处理:Framework.AppException 

自定义错误信息处理,为合理显示程序错误信息,避免在客户端暴露太多有关程序信息。根据参数不同实例化此类即可。内有两个静态方法:

(1)LogEvent:将错误日志写入windows系统事件日志;

(2)LogFile:将错误日志写入日志文件。

4.     命名问题:简短明了,见其名知其义。

5.     要使用 ///<summary>***///</summary> 对类、方法属性等进行说明!在其上一行输入“///”即可自动产生后面内容。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值