WSBLog(ASP.Net版本的z-blog)发布!Version: 1.6 Beta Build 60420

用户 wubuku 2006-12-23 5839



这份代码是从z-blog(1.6 Beta Build 60420)用vb.net改写过来的,不敢独享,特此声明!使用了它的朋友,去感谢一下z-blog吧。

WSBLog 1.6 Beta Build 60420源代码压缩包请到我的BLOG下载。

这份源代码我没有好好整理,也没有做安装程序,要玩转它,恐怕需要稍懂点ASP.Net才行。

里面有个配置文件web.config.sample,BLOG的配置都在里面了。根据你的需要修改它之后,重新命名为web.config。

现在这份代码的质量在我的眼里实在算不上高的,很多地方我心里恨不得对它大改特改,呵呵。至于以后怎么改,我会把对WSBLog的后续修改,都写在BLOG里。敢兴趣的朋友可以关注。

虽然代码的质量不高,不过,如果你想在上面开发自己的ASP.Net的BLOG,又不想从头来的话(比如:模板、风格都自己搞是不是有点太浪费时间了?),也许它能给你一个不错的基础。最少,对于用惯了OO编程的人来说,它的结构和可读性应该比国内的大多数ASP程序要强很多。

如果有哪位朋友下载并且使用了它,就在我的BLOG上留个消息吧。

[ 本帖最后由 wubuku 于 2006-12-23 17:54 编辑 ]
最新回复 (9)
全部楼主
  • 用户 wubuku 2006-12-23 0
    引用 2
    Template、IMAGE、Style、CSS、等目录就不列出了。

    ===================================================
    前端aspx页面:
    ===================================================
    Catalog.aspx
    ——按分类、月份、Tags浏览列出BLOG文章
    Rss.aspx
    ——生成RSS、Atom、Google SiteMap等XML文件
    View.aspx
    ——查看文章,动态方式
    Login.aspx
    ——管理登陆
    Search.aspx
    ——文章搜索
    Cmd.aspx
    ——各种功能的入口页面
    Validcode.aspx
    ——生成图片认证码
    Down.aspx
    ——上传文件的下载
    Default.aspx
    ——BLOG首页
    Wap.aspx
    ——WAP首页,未完成

    JSHelper.aspx
    ——生成JavaScript脚本,这些脚本在“静态”的HTML页面中被调用,用于“动态”显示最新发表、最新评论等


    Web.config
    ——BLOG程序配置文件,在源代码包里命名为Web.config.sample,请自行修改。


    =======================================================
    JavaScript脚本目录:
    =======================================================
    SCRIPT\LoadInfo.aspx
    ——动态生成的JavaSript脚本,和common.js配合使用。设置一些common.js需要使用的JavaScript变量等。
    SCRIPT\common.js
    SCRIPT\simp_trad.js
    ——简繁转换支持
    SCRIPT\sort.htc
    SCRIPT\md5.js


    ===================================================
    实体类文件:
    ===================================================
    EntityObject\TTrackBack.vb
    EntityObject\TTag.vb
    EntityObject\TCategory.vb
    EntityObject\TUser.vb
    EntityObject\TComment.vb
    EntityObject\EntityBase.vb
    EntityObject\TArticle.vb
    EntityObject\TKeyWord.vb
    EntityObject\TUpLoadFile.vb
    ——目前每个类用于对于数据库中的一个表,只有Field和Property,没有方法。这样以后做ORM会很方便。


    ===================================================
    业务逻辑层:
    ===================================================
    BusinessRules\BusinessRulesBase.vb
    ——业务逻辑层的基类,目前在基类中提供数据库连接
    BusinessRules\UserManager.vb
    BusinessRules\CommentManager.vb
    BusinessRules\ArticleManager.vb
    BusinessRules\KeyWordManager.vb
    BusinessRules\UpLoadFileManager.vb
    BusinessRules\TrackBackManager.vb
    BusinessRules\BusinessRuleException.vb
    BusinessRules\TagManager.vb
    BusinessRules\CategoryManager.vb
    ——所有对数据库的操作都在这一层了。需要支持别的数据库,直接改这几个文件就可以。打算下一步通过ORM来支持不同的数据库类型,也是直接改这几个文件就可以了。相对来说,z-blog的数据库访问代码很分散。


    ===================================================
    页面处理类(处在业务逻辑层和aspx页面的中间,负责处理用户的输入、生成HTML代码、处理缓存等):
    ===================================================
    PageHandler\PageHandlerBase.vb
    ——所有页面处理类的基类
    PageHandler\Calendar.vb
    PageHandler\PageArticleManager.vb
    PageHandler\PageUpLoadFileManager.vb
    PageHandler\PageKeyWordManager.vb
    PageHandler\PageArticleList.vb
    PageHandler\PageTrackBackManager.vb
    PageHandler\WapPageHandler.vb
    PageHandler\XmlExporter.vb
    PageHandler\PageCommentManager.vb
    PageHandler\BlogBuilder.vb
    PageHandler\PageBlogConfigManager.vb
    PageHandler\PageTagManager.vb
    PageHandler\PageCategoryManager.vb
    PageHandler\PageUserManager.vb
    PageHandler\PageFileManager.vb

    PageHandler\PageArticle.vb
    ——这是一个特殊的页面处理类,它不是从PageHandlerBase继承来的,继承自TArticle.vb。


    ===================================================
    XML-PRC支持:
    ===================================================
    XML-RPC\Comment.aspx
    XML-RPC\Index.aspx
    ——XML-RPC支持,当前版本未完成


    ===================================================
    INCLUDE目录(替换Template中的相应模板标签的HTML片段):
    ===================================================
    INCLUDE\navbar.asp
    INCLUDE\previous.asp
    INCLUDE\statistics.asp
    INCLUDE\tags.asp
    INCLUDE\trackbacks.asp
    INCLUDE\archives.asp
    INCLUDE\authors.asp
    INCLUDE\calendar.asp
    INCLUDE\catalog.asp
    INCLUDE\comments.asp
    ——缓存的HTML片段,分类、统计、最新发表文章列表、最新评论等
    INCLUDE\favorite.asp
    ——网站收藏
    INCLUDE\link.asp
    ——友情链接
    INCLUDE\misc.asp
    ——XML聚合链接

    ===================================================
    CACHE目录:
    ===================================================
    CACHE\1.asp
    CACHE\1_list.asp
    CACHE\2.asp
    CACHE\2_list.asp
    CACHE\3.asp
    CACHE\3_list.asp
    ...
    ——缓存的每篇文章的摘要信息,Default.aspx和Catalog.aspx等前端aspx页面输出的时候,就是从这些文件中读取文章信息的。而不是读取数据库。
    CACHE\cache_cate.asp
    CACHE\cache_auth.asp
    CACHE\cache_tags.asp
    ——缓存的分类、作者、Tags信息。
    CACHE\cache_list.asp
    ——缓存的文章的分页信息。当有10万篇文章的时候,这个文件的大小是5M多,是性能的瓶颈。


    ===================================================
    POST目录:
    ===================================================
    POST\1.html
    POST\2.html
    POST\3.html
    ...
    ——静态文章页面
    POST\1_comment.html
    POST\2_comment.html
    POST\3_comment.html
    ...
    ——每篇文章的评论的HTML片段


    ===================================================
    辅助类和函数:
    ===================================================
    FUNC\ErrorHelper.vb
    FUNC\RegExp.vb
    ——正则表达式
    FUNC\DateTimeHelper.vb
    FUNC\ValidCodeImage.vb
    FUNC\ObjectMemberHelper.vb
    FUNC\RightsHelper.vb
    FUNC\JSEscapeUnescape.vb
    ——JavaScript的escape和unescape函数的VB模拟版本
    FUNC\GlobalCache.vb
    ——全局缓存
    FUNC\MD5.vb
    ——MD5散列生成
    FUNC\FileReadWriteHelper.vb
    FUNC\StringHelper.vb
    ——字符串处理
    FUNC\UBB.vb
    ——UBB解析

    ===================================================
    XML文档输出:
    ===================================================
    FUNC\XmlLib\TAtomTrackBack.vb
    FUNC\XmlLib\TRss2Export.vb
    FUNC\XmlLib\TAtomEntry.vb
    FUNC\XmlLib\TSiteMap.vb
    FUNC\XmlLib\TAtom10Export.vb
    FUNC\XmlLib\TAtomComment.vb
    FUNC\XmlLib\TAtomFeed.vb

    ========================================================
    BLOG配置:
    ========================================================
    Configuration\BlogConfiguration.vb
    Configuration\Language.vb
    ——和语言相关的字符串常量,需要更换语言的时候,修改这个文件和Web.Config即可

    ========================================================
    BLOG后台管理
    ========================================================
    ADMIN\Edit_widgeditor.aspx
    ADMIN\Autosaverjs.aspx
    ADMIN\Admin.aspx
    ADMIN\Error.aspx
    ADMIN\Edit_catalog.aspx
    ADMIN\Edit_tag.aspx
    ADMIN\Edit_setting.aspx
    ADMIN\Edit.aspx
    ADMIN\Admin_default.aspx
    ADMIN\Edit_keyword.aspx
    ADMIN\Edit_user.aspx
    ——目前后台管理很粗糙的。直接从z-blog的ASP代码迁移过来,没有充分利用ASP.Net的特性。
  • 离退版主 yangkui 2006-12-23 0
    引用 3
    wubuku 有这技术!帮ZBLOG开发几个插件吧
    那样我们就更支持你了😁

  • 用户 debugger 2006-12-24 0
    引用 4
    比较佩服编程高手,顶一下!

    http://www.winshome.com

  • 管理员 zx.asd 2006-12-24 0
    引用 5
    zblog里的索引重建和文件重建都可以扔掉了,没必要再单独生成cache,用HttpHandler重写Url比生成静态文件好多了,还要充分利用.net自身的功能.

    数据访问也要抽象和分离.

    事件处理也要调整.

    里面还有些版本控制留下来的隐藏文件没删.

    我感觉由lbs改出的.net版bkblog看上去更简洁些.

    短信已禁用,有事发贴。

  • 用户 wubuku 2006-12-25 0
    引用 6
    原帖由 zx.asd 于 2006-12-24 02:13 发表
    zblog里的索引重建和文件重建都可以扔掉了,没必要再单独生成cache,用HttpHandler重写Url比生成静态文件好多了,还要充分利用.net自身的功能.

    数据访问也要抽象和分离.

    事件处理也要调整.

    里面还有些版本 ...



    用URL重写,本来就是我想要做的事情。数据访问我打算用ORM来做。我是很烦自己写SQL的。我现在自己做项目都不写sql的。

    其实目前这份代码,在z-blog 1.6 beta 60420出来不久,也就是今年5月份的时候,我就做了大部分了。

    我也看出来当时的z-blog 60420有很多无用的代码,但是当时只是想先原样改过来有空再重构吧。

    不过,到目前为止,还是一直偷懒,没有做大的改动。所以你看我的代码,还是保留着z-blog 60420时候的风格。

    你看看下面这个是我10月份在这里发的帖子,当时就有这些想法了。可当时没有人响应,呵呵。看看最近有没有空弄弄吧:




    WSBLog开源项目现在招募志愿开发人员

    曾经在z-blog上看到有人一直想要z-blog的Asp.Net版本。

    而在试用过z-blog之后,用惯了OO编程的我,感觉尤其不爽,于是,现在,WSBLog来了。它一开始依据的是z-blog 1.6 Beta Build 60420,使用VB.Net进行了全面改写。

    WSBLog目前最大限度地保留了z-blog的大部分页面结构,便于z-blog老手上手。今后WSBLog将会独立发展。不再追踪z-blog的改动。当然,所有优秀的blog都是我们借鉴的对象。

    WSBLog使用面向对象技术对z-blog的代码进行了重构,程序的可读性有了巨大的改进。而且,由于.Net平台调试的方便性,相信更可以大大提高程序开发的效率。

    WSBLog个人版现在已经完成了80%左右的编码。勉强可以使用。现在比较欠缺的是XML-PRC和WAP浏览的功能。

    我的个人网站:http://yang.oucsoft.com,就是基于WSBLog搭建的。

    WSBLog现在招募志愿开发人员。WSBLog将使用GPL协议。有意愿者请提供自己的Blog链接,最好在列举一下自己曾经完成过的项目。

    WSBLog开发计划:

    1,现在的WSBLog使用的SQL Server数据库,凡是被录用的志愿者,可以提供SQL Server数据库使用。等WSBlog第一个版本开发完成,第一步就是使用ORM将其移植到所有主流的数据库上;

    2,开发WSBLog多用户版本;

    3,使用URL重写技术优化WSBLog的效率和结构。

    ……

    ——暂时先这些,有意者请留言联系!
  • 用户 wubuku 2006-12-25 0
    引用 7
    原帖由 zx.asd 于 2006-12-24 02:13 发表
    zblog里的索引重建和文件重建都可以扔掉了,没必要再单独生成cache,用HttpHandler重写Url比生成静态文件好多了,还要充分利用.net自身的功能.

    数据访问也要抽象和分离.

    事件处理也要调整.

    里面还有些版本 ...



    这份代码的主体部分,实际上,早在今年5月份的时候,我直接从z-blog移过来的。没有用到asp.net的很多特性仅仅是因为偷懒。

    我现在发布这个版本呢,只是想给某些打算自己写BLOG的同志一些参考,或者,希望能找到有兴趣和我做这个事情的人。我这个人其实蛮懒的……

    其实要是按照我的喜好,我甚至想要用C#重写全部代码的。用vb.Net仅是为了移植方便而已。说不定下一个版本就是C#的了。呵呵。


    其实除了前台文章的呈现,可能采用目前z-blog的机制会比较灵活之外,其余的所有东西,特别是后台管理,都没有必要用现在的从asp改过来的代码。


    我现在用13万文章来测试BLOG,乃是因为我想做的是多用户的BLOG,而目前的WSBLog还是单用户的,只是一个过渡的不成熟版本而已。

    还有就是,也许ORM部分,我打算自己写一个,不要太复杂,够用就可以了。

    [ 本帖最后由 wubuku 于 2006-12-25 23:25 编辑 ]
  • 用户 wubuku 2006-12-26 0
    引用 8
    如果你们注意观察一下我目前的BLOGhttp://www.wubuku.com/,就会发现,那些文章的后缀名是“.aspx”的,不是“.html”的。

    也就是说,实际上,我自己的BLOG已经在用URL重写了。我现在的BLOG实际上是不需要重建文件的。

    但是索引重建还有点用,因为某些统计信息缓存起来还是有必要的,可以加快浏览的速度。

    (但如果文章数量达到10多万这个规模,缓存机制还是需要考虑的,至于利用aspx自身的缓存机制还是自己处理,要好好考虑)。

    ================

    怎么说呢,我这个人有时候实在很懒,好多东西都是做到一半,凑合着用就算了。好多时候我知道怎么改会更好,但懒得动手。

    也许我这个人,根本就不适合当程序员。所以呢,楼上的谬赞我实在不敢当,我觉得我自己不是个好程序员,真的。

    至于WSBLog新版本的发布,恐怕时间会比较长,也可以说我这个人做事的效率不高,呵呵。

    所以啊,那位对用ASP.Net做多用户BLOG有兴趣,一起来搞一搞啦,呵呵。
  • 用户 daoming1982 2006-12-26 0
    引用 9
    如果我在大学时候认识你就好了.
    我大三下和大四的时候一直在用asp.net 做点小东西.
    虽然我武艺不高. 但是我很兴趣.

    wubuku 坚持...不要放弃...

    www.dowant.com/blog

    [ 本帖最后由 daoming1982 于 2006-12-26 14:34 编辑 ]

    http://www.dowant.com/blog
    默默关心ing Z-blog.

  • 用户 wubuku 2006-12-27 0
    引用 10
    原帖由 daoming1982 于 2006-12-26 14:30 发表
    如果我在大学时候认识你就好了.
    我大三下和大四的时候一直在用asp.net 做点小东西.
    虽然我武艺不高. 但是我很兴趣.

    wubuku 坚持...不要放弃...

    www.dowant.com/blog



    有兴趣什么时候都不会迟啊。

    这两天改了点东西,现在WSBLog已经支持树形目录了,测试网站:

    http://www.66ph.com/


    修改了一些东西,主要是:

    1,修改了小部分vb源代码,输出网站目录的时候,生成类似下面这样的树形的html代码:

    <li class="Closed"><a href="http://localhost/WSBLog/Catalog.aspx?cate=1">农、林、牧、渔业 (14)</a> <a href="http://localhost/WSBLog/Rss.aspx?cate=1" target="_blank"> <img src="http://localhost/WSBLog/IMAGE/LOGO/rss.png" border="0" alt="rss"></a>
        <ul>
        <li class="Closed"><a href="http://localhost/WSBLog/Catalog.aspx?cate=2">农业 (3)</a> <a href="http://localhost/WSBLog/Rss.aspx?cate=2" target="_blank"> <img src="http://localhost/WSBLog/IMAGE/LOGO/rss.png" border="0" alt="rss"></a>
            <ul>
            <li class="Child"><a href="http://localhost/WSBLog/Catalog.aspx?cate=3">谷物及其他作物的种植 (0)</a> <a href="http://localhost/WSBLog/Rss.aspx?cate=3" target="_blank"> <img src="http://localhost/WSBLog/IMAGE/LOGO/rss.png" border="0" alt="rss"></a></li><li class="Child"><a href="http://localhost/WSBLog/Catalog.aspx?cate=13">蔬菜、园艺作物的种植 (0)</a> <a href="http://localhost/WSBLog/Rss.aspx?cate=13" target="_blank"> <img src="http://localhost/WSBLog/IMAGE/LOGO/rss.png" border="0" alt="rss"></a></li><li class="Child"><a href="http://localhost/WSBLog/Catalog.aspx?cate=17">水果、坚果、饮料和香料作物的种植 (0)</a> <a href="http://localhost/WSBLog/Rss.aspx?cate=17" target="_blank"> <img src="http://localhost/WSBLog/IMAGE/LOGO/rss.png" border="0" alt="rss"></a></li><li class="Child"><a href="http://localhost/WSBLog/Catalog.aspx?cate=1200">中药材的种植 (0)</a> <a href="http://localhost/WSBLog/Rss.aspx?cate=1200" target="_blank"> <img src="http://localhost/WSBLog/IMAGE/LOGO/rss.png" border="0" alt="rss"></a></li>
            </ul>
        </li>
        <li class="Closed"><a href="http://localhost/WSBLog/Catalog.aspx?cate=22">林业 (0)</a> 
    <a href="http://localhost/WSBLog/Rss.aspx?cate=22" target="_blank"> <img src="http://localhost/WSBLog/IMAGE/LOGO/rss.png" border="0" alt="rss"></a>
            <ul>
            <li class="Child"><a href="http://localhost/WSBLog/Catalog.aspx?cate=23">林木的培育和种植 (0)</a> <a href="http://localhost/WSBLog/Rss.aspx?cate=23" target="_blank"> <img src="http://localhost/WSBLog/IMAGE/LOGO/rss.png" border="0" alt="rss"></a></li><li class="Child"><a href="http://localhost/WSBLog/Catalog.aspx?cate=27">木材和竹材的采运 (0)</a> <a href="http://localhost/WSBLog/Rss.aspx?cate=27" target="_blank"> <img src="http://localhost/WSBLog/IMAGE/LOGO/rss.png" border="0" alt="rss"></a></li><li class="Child"><a href="http://localhost/WSBLog/Catalog.aspx?cate=1202">林产品的采集 (0)</a> <a href="http://localhost/WSBLog/Rss.aspx?cate=1202" target="_blank"> <img src="http://localhost/WSBLog/IMAGE/LOGO/rss.png" border="0" alt="rss"></a></li>
            </ul>
        </li>
        </ul>
    </li>
    


    2、模板加入了一小段JavaScript,这段JavaScript的目的是动态地在li标签中加上一个透明的图像,用于用户点击展开和折叠树形目录;

    3、修改了Common.js脚本文件;

    4、修改了CSS样式文件。


    JavaScript代码主要是从这里扒的(CNL Tree Menu Ver1_02 - 无限级树形菜单 Written by CNLei, 枫岩)——声明一下。
    • ZBlogger技术交流中心
      11
          
返回