先说明一下我使用的命名空间的想法,我是把前后台共同的类的命名就空间命名成了 CjjerBase ,只是前台的 CJJERGUESTBOOK,后台的是 BookAdminSpace ,基本达到表意,使用不同的命名空间还是考虑到.net加载信息的优化性,不再赘言。
设计与数据库交互的基类: conn类
代码拷贝框
[Ctrl+A 全部选择 然后拷贝]
设计类的时候,一般的说来,能使用现成的最好,重用思想 ,没有的话继承最好,实在没有的话自己设计,一般option explicit , option strict 都是打开的,利于程序有话,然后编译,设计了此类以后再任何页面请不要再跨此类使用数据库,这是出于OO思想(当换使用数据库的时候,只需要修改conn类即可)。
类设计的时候抛出异常的,对于非产品级别的(调试的,其实是永远的,我认为有2个版本,用户的和程序员的,这里指后者),直接调用
try conn.open() catch objerror as Exception HttpContext.Current.Response.Write("<font color =red>Conn类异常:</font>" & objerror.Message & ":" & objerror.source) Exit sub End try
这样的形式就可以了。
我在这里还使用了一个验证码的一个基类,就是那个验证码,我也单独设计了一个类:
代码拷贝框
[Ctrl+A 全部选择 然后拷贝]
坦白的说,确实不怎么样的类,此类只有一个共享方法:
Img::CheckImg (optional imgcheckid as string = "imgcheck", _ optional imgwidth as integer = 65,optional imgheight as integer = 25 , _ optional strsize as integer = 4 ,optional fonttype as string = "arial" , _ optional Fontdaxiao as integer =16,optional rgb1 as integer = 187 , _ optional rgb2 as integer = 251,optional rgb3 as integer = 255)
optional 的意思就是参数可选。
参数名称都是表意的,您可以理解的。
第三个就是一个UBB代码的,我也是设计了一个类:CjjerBase: bbCode:
代码拷贝框
[Ctrl+A 全部选择 然后拷贝]
其中做了一个几个最基本的转换,读者可以调用任何数据格式加载到UBB中的,其中核心的是:
Dim objregex as Regex Dim expressdata , replacedata as ArrayList '这里可以加载你的ubb转换的正则算式 Dim e_ex as IEnumerator = expressdata.GetEnumerator Dim e_re as IEnumerator = replacedata.GetEnumerator Dim new_str as string = GetHtmlcode( str ) do while e_ex.movenext() and e_re.movenext() objregex = new Regex( e_ex.Current,RegexOptions.IgnoreCase ) new_str = objregex.replace(new_str,e_re.Current ) loop
return new_str
注意,这里我一般只使用共享方法:
shared public Function GetBbcode(byref str as string ) as string
其中传入的参数是引用,这样速度更快,因为一般的说来,需要转化的字符串较长,这点还是重要的。
出处:蓝色理想
责任编辑:moby
上一页 程序之规划篇 下一页 用户控件设计
◎进入论坛网络编程版块参加讨论
|