用多层架构构建一个简易留言本.docxVIP

  • 0
  • 0
  • 约6.15千字
  • 约 6页
  • 2022-06-26 发布于上海
  • 举报
用多层架构构建一个简易留言本 ASP.NET 终于可以让 Web 开发人员从 ASP 的面条代码中脱身出来,以全新的方式来构建 Web 站点,就像Windows Application 一样,我们同样可以用面向对象的、多层的方式来组织和构建Web Application。 下面给出的是一个功能非常简单的留言本程序,旨在揭示 ASP.NET 强大的能力和全新的开发方式。如果只相对留言本程序本身而言,大家可能怀疑用这么多的气力实现如此简单的程序是否 值得,但我说过,例子只是用来说明问题和描述解决方案。其实我认为,从维护和扩充的角度来 说,即使再简单的程序,从一开始就进行良好的设计也是非常值得的。 留言本采用多层的方式来构建,下面的介绍为了方便大家理解,并未按照层次的顺序介绍: 一、数据实体(CMessageData 类) CMessageData 派生自DataSet,用来维护留言数据,在构造函数中,调用 CreateDataTables()来增加一个用来保存留言数据的 DataTable,并加到自身的 DataTable 集合中。静态属性TableMapping 用来描述这个 DataTable 的 DataColumn 和数据库中物理字段的映射关系,数据访问层将使用这个属性来填充数据进 CMessageData 对象中。 public class CMessageData : DataSet { public CMessageData() { this.CreateDataTables(); } public static DataTableMapping TableMapping { get { DataTableMapping result = new DataTableMapping(t_gbook_postinfo, MessageTable); result.ColumnMappings.Add(id, Id); result.ColumnMappings.Add(last_reply_time, LastReplyTime); //….. return result; } } private void CreateDataTables() { DataTable dt = new DataTable(MessageTable); dt.Columns.Add(Id, typeof(Int32)); dt.Columns.Add(LastReplyTime, typeof(DateTime)); // ….. dt.Columns[Id].AutoIncrement = true; dt.Columns[Id].AutoIncrementSeed = 0; dt.Columns[Id].AutoIncrementStep = -1; dt.PrimaryKey = new DataColumn[] {dt.Columns[Id]} this.Tables.Add(dt); } AddedNewRow 属性返回一个新增进数据表的、空的 DataRow,用于给逻辑层填充。FillDataFormDataBase()的两个重载调用数据访问层的相应方法来填充一个新的 CMessageData 对象并返回。UpdateToDatabase 用于讲自身的数据更改更新回数据库。 public DataRow AddedNewRow()… public static CMessageData FillDataFromDatabase(Int32 startRecord, Int32 maxRecord)… public static CMessageData FillDataFromDatabase(Int32 id) … public void UpdateToDatabase()… 二、数据访问层(CDataAccess 类) 负责连接数据库,进行 SIUD(Select,Insert,Update,Delete)操作。数据连接信息放在AppParameters.xml 文件中。 FillMessageData()的两个重载创建新的 CMessageData 对象,填充数据,然后返回: public static CMessageData FillMessageData(Int32 startRecord, Int32 maxRecord) public static CMessageData FillMessageData(Int32 id) UpdateMessageData()把参数中的CMessageData 对象所作出的更改更新回数据库: public static Int32 UpdateMessageDat

文档评论(0)

1亿VIP精品文档

相关文档