随笔- 471  评论- 1014  文章- 4 

[.net][开源]Stella Forum v 2.0 / v1.1 / v0.2(Astrophel)

Stella Forum v2.0是一个开放全部源代码的基于.net的论坛。本论坛开发的动力是学习与交流.net技术,其中所使用的.net技术涉及多个著名的开源项目,并有Notus自己的想法在里面。更详细的资料请点击进入察看。而v1.1则是稍早的一个版本,但也是一个很完善的论坛程序了。同2.0不同的是,这个没有使用spl和皮肤更换的设计,所以更适合初学者!最后,翻箱底找到了最初写的论坛Astrophel。我想,通过这三个版本的变化,可以给初学者带来很多开发之外的东西……

下载连接
http://www.cnblogs.com/Files/notus/Astrophel.rar

http://www.cnblogs.com/Files/notus/Stella_v1_1.rar

http://www.cnblogs.com/Files/notus/StellaForum_v_2.rar



经过大概一个月的开发,sf2终于可以和大家见面了

2.0与之前的1.1的不同:
1.设计了更易于扩展的三层架构,以后将以此架构为基础扩展论坛的功能
2.数据层使用了petshop模式,即可以随意更换数据访问组件。2.0随带的是基于o/r mapping技术的数据访问层,使用SPL。
3.采用了可更换主题皮肤的设计。2.0随带两套主题皮肤,分别是经典论坛样式和汐草街论坛样式。
4.日志记录使用了log4net。
5.重新设计的Model类,更加符合面向对象的规范。
6.增加了跟踪帖子修改的功能。
7.增加了所使用的第三方组件的连接,方便下载者的学习。
8.放弃了安装文件的制作。提供了安装说明,下载者需要自己安装。
9.从2.0开始,将提供大量的文档供学习交流

正式版的下载地址:


前几天曾放出一个测试版,请大家重新下载这个最新的版本,和测试版相比,正式版做了很多调整。

关于本论坛的其它信息:

作者
本论坛是由菜鸟四人组发起的一个开放源代码的项目,由组内的Notus负责具体的开发工作。
菜鸟四人组成立于2005年1月,核心成员:懒人一个、迈克老猫、Qifang、Notus

关于
stella froum 开发的动力并不是为大家提供一个可以实际运行的论坛程序,而是学习与交流.net技术。
当然我们会以实际运行为最终目标,但是现在不是。

如果您的目的只是想要获得一个自己使用的论坛程序,那恐怕你要付出很多时间和精力来对本系统进行二次开发。
另外,如果您是初入.net的新手,我想本系统也不太适合您深入的学习。因为会被系统内一大堆过度和糟糕的设计弄得迷失方向,我想,您现在应该做的是,认真的看几本好书,养成登陆msdn和使用google的习惯,试着去看一些英文资料。

本论坛的下载者:

0.熟悉asp.net架构,希望通过对本论坛系统提出建设性意见而帮助广大asp.net初学者的高手 :)
1.已经对.net有一定的了解,用asp.net做过开发,希望学习更多asp.net知识的人。
2.对log4net(日志记录)\opensmtp(邮件发送)\spl(基于o/r mapping的数据持久层)感兴趣但从来没接触过的人。

通过下载并学习本系统您可以得到什么?

1.面向对象分析与设计的认识。
2.基于层模式的asp.net系统架构的认识。
3.基于o/r mapping的数据持久层spl的认识。
4.自定义控件的使用

----------------------------------------------------------------

Open Source] Stella Forum v 1.1 公开 
经过近一个星期的忙碌, stella forum 的bugs排除版v 1.1终于可以公开啦,新版本主要是修正了之前发布的最初版的一些明显的bugs,并在一些功能上做了调整,如果您下载了v1.1,那么希望您可以将您的意见和发现的bugs及时的反馈给我们,以便可以推出更好的下一版。
安装后的内容为:stella  forum v1.1 的所有源文件、帮助文档、类库文档、数据库连接字符串修改工具、sql脚本、bugs提示
所需环境为:IIS5.0以上,.net framework v1.1,SQL Server 2000,若需要编辑源文件,则还需要visual studio .net 2003

Beginning ASP.NET using C# . Let us walk together,so as not lose our way !

当时由于时间紧,所以留下了很多的bug没有处理,我想近几天把bug汇总一下,回学校后就集中收拾一下,算做1.1版推出,希望各位下过并安装了这个论坛的朋友可以帮忙把这个bug列表完善一下,如果您在使用过程中发现了问题,都可以贴到这里来,众人拾柴火焰高,我是希望可以在大家的帮助下把这个小东西慢慢的完善起来 :)

下面是我和朋友发现的一些bug,分类列在下面,如果您发现了新的bug,可以在这里回复

安装程序

1.当目标计算机上装有sql server 2000的多个实例时,数据库连接会失败
详细描述:
2.删除了db.sql
详细描述:1.当数据库安装错误时,不能自主进行安装
3.未提供自主修改连接字符串的功能
详细描述:1.当安装错误或想改变数据库设置时,因为数据库连接字符串是加密的,所以修改起来比较麻烦

vs.net设计时

1.不能顺利的加载除web项目以外的其他项目
详细描述:当加载model等项目时,会提示失败
2.未指明有些项目需要unsafe生成
详细描述:1.utility和custondbaction两个项目因为有加密操作使用了petshop3中的类,该类需要unsafe关键字生成
3.有些代码的注释写的不够详细
详细描述:

oo设计

1.不同角色的会员使用了一个类
详细描述:1.斑竹和会员及管理员是不同的用户类型,应该用不同的类
2.斑竹和论坛版块脱离
详细描述:1.斑竹并没有设成版快的属性,这造成在实际操作时判断斑竹的混乱
3.实现发表、编辑、回复所用的用户控件及相关类的设计混乱
详细描述:
4.为尝试新特性而胡乱的使用多态、单件、计时器等
详细描述:

具体实现

1.过多的使用后绑定显示datagrid的数据
详细描述:在使用datagrid显示数据的时候,过多的依赖itemdatabound事件对数据进行处理
2.未限制用户输入
详细描述:1.密码的输入可以输入任意字符
3.未验证用户输入
详细描述:1.对传到后台的数据没有在表示层进行安全性检查就把数据传到了业务层
4.freetextbox控件的图片上传问题
详细描述:1.好像不能上传图片2.据说ftb有上传漏洞,没有补
5.版块和论坛的资料统计有问题
详细描述:1.使用单件进行数据统计,并且每隔一定时间上传到数据库,会造成数据的丢失
6.未使用论坛设定
详细描述:1.准备了显示论坛信息的类,但没有使用
7.一个会员只能担任一个版快的斑竹
详细描述:1.当把一个斑竹设成另一个版快的斑竹时,该会员就不是原先的版块的斑竹了
8.log文件使用了绝对路径
详细描述:1.错误记录的文件使用了绝对路径来标识位置
9.楼层号的计算未实现
详细描述:1.楼层号只计算了该页的层数,如翻页就会从头开始计算

其他

1.没有规范的文档
详细描述:1.应该做一个规范的三段式文档

 
-------------------------------------------------------------------------

我是.net的初学者,所以这个论坛做的很简单,只有一个版面,而且没有其他的功能,不过以后会慢慢完善的!
体系介绍:
用了一个简单的三层系统来开发,另外还有一个辅助组件。
data主要用来处理和数据库的交互操作,business是带有crud功能的业务实体,而最前面的ui则是具体的页面了,tools装了很多的东西,包括一些论坛设定、自定义的异常类、数据库操作辅助类及其他。
具体分析:
1. 数据库模板的使用
2. 带有crud功能的业务实体的使用
3. tools组件介绍
3.1 config:从web.config获取论坛的设定
3.2 helper:有方便对数据库的操作和对页面操作的一些辅助方法
3.3 redexception:自定义的异常类
3.4 rols:这是一个enum,装在config里面了,用来方便操作用户的角色
4. 和.net提供的forms验证相结合的自定义的验证体系:redprincipal/redidentity
5. 和mssql紧密相连,包括用procedure实现的分页,用view实现的主题详细页面,用trigger实现的关联操作
6.使用了forms验证的verbs选项来控制未登陆者的活动
7.ui的页面部分使用了公共基类redpage,在其中有自定义的异常捕获机制、自动加入页眉和页脚控件的pageload事件和一些方便操作的属性
部署解决方案
我对vs的安装系统还不是很明白,所以各位如果想在本机运行该论坛,只能用下面的笨办法了,或许下一版本推出的时候会有一个安装程序,这样就不用这么麻烦了 -_-o
---项目文件----
1.在e盘新建一aspx文件夹
2.使用iis将aspx其设为虚拟目录
3.使用vs.net在aspx下新建Astrophel空白解决方案
4.在Astrophel下新建UI的web项目,然后将其移除
5.将解压的文件原封不动的复制到Astrophel,将其覆盖!(这么做的目的就是想在把ui设成虚拟目录,因此你也可以直接在iis里设置),这时如果切换回vs.net,会弹出对话框,依次选择“改写”“否”,最后还会弹出sql server的连接设置,取消先。(如没有这些,则可以选择“添加现有项”手动把项目添加进去)
6.现在看你的解决方案,如果没有意外的话,应该有5个项目文件,点开ui项目,应该可以正确的查看里面的文件!(其实我们上面做的这一些,都是为了这个web项目)
---数据库文件----
7.在sql server里新建一个Astrophel的空白数据库,然后在里面添加一个“id:kerry;password:notus;role:db_owner”的用户
8.打开vs.net的服务器资源管理器,新建一个到Astrophel的数据连接,
9.点开AstrophelDB项目--Create ScriptsCreate--Scripts.cmd,运行之(注意可能一开始的时候没有运行选项,这时应先打开一遍,然后再用右键点,就有运行选项了),弹出sql server登录对话框,其中数据库就填刚才的Astrophel,然后使用sa登陆,确定后会弹出运行窗口,完成。
10.如果没有意外的话,现在查看数据库,便会发现诸如table/procedure/view等项都设置好了。
---运行----
11.现在打开ie,键入http://localhost/aspx/Astrophel/ui/Pages/List.aspx,如果上面都运行良好,那就应该可以查看主页面,并进行相应的操作。
经验心得
1.“通过私有构造函数强化不可实例化的能力”
2.“避免重复创建对象”
3.“多考虑重用而不是复制”
4.善于使用用户控件,注意给控件设置易于使用的对外接口
5.forms验证的verbs选项在使用的时候必须成对出现
6.把业务实体需要的特征值放入轻量化的标量数据中

最后的话
在论坛将要完成的时候,我接触到了petshop3和〈effective java〉。
〈effective java〉这本书我是今天才从图书馆发现并借出来的,我只看了前面的几页,但是立刻就产生了作用,我把论坛里数据操作的部分从basedata拿出来,放到了helper里面,并且认真的做了在使用返回类的属性时的检查,果然,语言不是主要的,思想才是王道!推荐和我一样水平(刚刚对.net有了全面的认识,急待进一步的提高)的人都去读读这本书
毫无疑问,petshop3给我的震撼是巨大的,在这里就不多说了,但是希望大家都可以接触到petshop3。

路漫漫其修远兮,吾将上下而求索……

posted on 2005-05-25 11:17  Notus|南色的风  阅读(...)  评论(...编辑  收藏