Skip Navigation Links网站首页 > 学院首页 > 文章浏览
阿帕奇网站公告.
来源:互联网作者:阿帕奇
发表时间:[2008-10-9 21:49:25]。评论 0 篇
浏览113次。最后阅读时间:[2009-1-6 15:29:57]
文章字体【
项目需求:

一:能留言 二:显示留言 三:管理留言 四:附带一栏目管理 五: 管理员管理 六:栏目管理 .... 等

留言版的其他功能正如读者所知,此处不再列举,需求暂时列举到这里。

项目分析:

首先,需要说的是,ASP.NET是一个比较高级的解决方案,根据我的经验,至少比php,asp高级,这是微软花了起来开发的一个框架(.NET)的一部分,在我看了,它在很大的面向的是用户和程序员(美工的地位的在微软看来他们自己会解决,即使事实不是这样,如果美工在微软的产品找不到自信就去玩PHP,这算乱谈),.NET的框架为开发中小企业网站提供能良好的解决问题的方案,完全的面向对象和N层开发在ASP.NET能得到一定的体现,细细说了,太长,此处省去.这次我采用4层编程演示一下,有兴趣的读者自己体会,先画了小图说明一下何谓我说的“四层”。

这里,我把整体的业务层也分为2层理解和处理的。

一、实现分析:

用户留言是初步实现用户交流管理的项目,用户能浏览留言和发表留言,管理员能管理留言,沿着这个主线,我们只分析过程,不设计程序和数据库,可以得到一个 用户-->提交->反馈结果的流程的。

二、技术分析: 我先把这里与遇到的(肯定会)一些问题列出来,当然,没做过就不知道是不是有,但好的策划都能预料到的,事实上,没有多少人能提前遇到多少问题:

·如何理解N层设计 ·如何设计编程配置类 ·如何自定义控件 ·如何编译代码 ·如何使用应用程序状态 ·如何使用模板 ·如何使用正则类 ·如何生成验证码 ·如何提高ASP.NET的性能...

当然,在项目分析的时候说这些,有些违背OOP的精神的味道,但列出来希望读者明白我做了什么,那些对您有用,原因很简单,我不会几千字教会您怎么使用,掌握OOP,但您只需花很少的时间能掌握到实实在在的技术。关于留言版,读者可能太熟悉了,想必您用asp/jsp/php等都开发过,其中的思想大体相同,这里不再做问题分析。

记住,用ASP.NET绝对会是前所未有的感觉。

下面是具体的程序开发。

1、框架规划

首先采用div布局设置,页面框架也就是3部分组成,顶部的一个<p>标签说明和一个<li>的项目列表,主要是导航用的;第二部分是主题部分;第三部分是下面的说明。请看截图:

上下的部分我做成用户控件处理,中间的部分随着url的不同加载。

2、文件规划

除了首页需要展示留言的信息以为,需要一个页面(post.aspx)发表留言和admin/index.asp处理后台的数据(此处只说栏目的数据和留言的数据管理)

+----------guestbook(虚拟目录请先在MMC建立) ----+bin(必须) ----+style ------------all.css ----+images ----+inc ------------imgcheck.aspx(图片验证码) ----+admin ----+js(javascript文件) ----+ascx(自定义控件) ----+vb(vb文件) ----+data(数据库)

3、程序规划

数据库:access 测试平台:2k+.NET1.1.423

程序就是采用上面说的4层框架的思想去写,我这里使用的是(VB.NET)。

4、数据库结构

data目录下面的db.mdb文件,其中涉及到三个表:

szd_book(留言):

szd_sort(栏目)

szd_user(用户登陆)

先说明一下我使用的命名空间的想法,我是把前后台共同的类的命名就空间命名成了 CjjerBase ,只是前台的 CJJERGUESTBOOK,后台的是 BookAdminSpace ,基本达到表意,使用不同的命名空间还是考虑到.net加载信息的优化性,不再赘言。

设计与数据库交互的基类: conn类

代码拷贝框 [Ctrl+A 全部选择 然后拷贝]

设计类的时候,一般的说来,能使用现成的最好,重用思想 ,没有的话继承最好,实在没有的话自己设计,一般option explicit , option strict 都是打开的,利于程序有话,然后编译,设计了此类以后再任何页面请不要再跨此类使用数据库,这是出于OO思想(当换使用数据库的时候,只需要修改conn类即可)。

类设计的时候抛出异常的,对于非产品级别的(调试的,其实是永远的,我认为有2个版本,用户的和程序员的,这里指后者),直接调用

tryconn.open()catch objerror as ExceptionHttpContext.Current.Response.Write("<font color =red>Conn类异常:</font>" & objerror.Message & ":" & objerror.source)Exit subEnd try

这样的形式就可以了。

我在这里还使用了一个验证码的一个基类,就是那个验证码,我也单独设计了一个类:

代码拷贝框 [Ctrl+A 全部选择 然后拷贝]

坦白的说,确实不怎么样的类,此类只有一个共享方法:

Img::CheckImg (optional imgcheckid as string = "imgcheck", _optional i

[1][2][3]下一页

标题
内容
作者
时间