网站导航免费论文 原创论文 论文搜索 原创论文 网学软件 学术大家 资料中心 会员中心 问题解答 原创论文 大学论文导航 设计下载 最新论文 下载排行 原创论文 论文源代码
返回网学首页
网学联系
最新论文 推荐专题 热门论文 素材专题
当前位置: 网学 > 编程文档 > ASP.net > 正文

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

来源:http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/10/12
、逻辑层

这个留言本的逻辑层很简单,由三个类组成,CMessage用来描述一条留言,CReply用来描述一条回复,CReplyCollection集合类用来描述多条回复。

CMessage提供了一个重载的构造函数:

public CMessage(DataRow row)

我们可以用CMessageData中个一个DataRow的数据来初始化一个CMessage对象。

public void FillDataRow(DataRow row)

这个函数则把自身的数据填充进参数中的DataRow对象。我们用类似:

GetMessage().FillDataRow(messageData.AddedNewRow())

这样的代码就可以把一条新的留言内容新增到一个CMessageData对象中,其中GetMessage()是页面上收集用户填入的数据并返回一个CMessage的一个方法。

public CReplyCollection Replys

这个属性用来公开对自身这条留言的所有回复。



四、界面层 - 用户控件

为了方便我们把一个CMessage对象和页面上显示出来的一条留言绑定在一起,把一个CReply对象与页面上显示出来的一条回复绑定在一起,我们制作两个UserControl。MessageBlock控件用来显示一条留言,它通过属性:

public CMessage Message

来对象公开CMessage接口,我们只需要把一个CMessage对象赋值给这个属性,就可以让这个控件显示CMessage对象所表示的留言的内容。

ReplyBlock控件用来显示一条回复,同样通过属性:

public CReply Reply

来公开一个CReply类型的接口。

在MessageBlock控件中,我们根据对应的CMessage对象的Replys属性中所包含的回复,通过LoadControl()方法来动态载入ReplyBlock控件,并放置在一个PlaceHolder类型的Web控件中。



五、界面层 - 页面

现在页面的显示非常简单了,我们在主页面(default.aspx.cs)中创建一个CMessageData对象,填充数据,再用LoadControl()方法来载入MessageBlock控件来显示留言就可以了。

CMessageData messageData = CMessageData.FillDataFromDatabase((iPage - 1) * iPageSize, iPageSize);

for(Int32 i = 0; i < messageData.Count; ++i) {

                MessageBlock msg = (MessageBlock)LoadControl("MessageBlock.ascx");

                msg.Message = new CMessage(messageData.Tables["MessageTable"].Rows[i]);

                hldMessage.Controls.Add(msg);

}



以一个功能齐全的留言本来衡量,我们上面构建的留言本缺少删贴、管理功能,但是只要基础架构出来,完善和扩展功能是非常简单的。

上面的留言本展示了一个基础的程序架构,真正大型程序的架构可能要复杂上很多。比如数据实体类我们可以把字段信息和映射信息放入一个XML文件中,然后我们只需要创建一个通用的数据实体类,通过载入不同的XML文件就可以描述不同的数据实体;在数据复杂的情况下,维护各个数据间的关系也是一个挑战。

源代码可以在http://www.86soft.com/clsoft/kaneboy/gbook.zip下载到,如果你要用,记住修改一下AppParameters.xml文件,至少里面连接字符串的Access文件的路径是需要更改的(你可以干脆在global.asax中用MapPath()来动态得到这个路径:),CAppParameters.cs文件中的_sAppParameterFileName字符串的值也要根据实际情况作出改变(同样你可以用MapPath():),然后在IIS中建立一个名为gbook的虚拟目录来承载这个项目。

网学推荐

免费论文

原创论文

设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved 湘ICP备09003080号