.Text简单客户端:架构草案

设置部分:设置WebService URL、UserName、Password。Password应该做加密。暂时不支持Proxy。目前本地Username/Password和远端一样,但在后台应预留未来扩展空间。现在只支持单个blog。

本地登录成功后,自动登录远端WebService,获取相应的Blog信息、Category信息。具体流程:

Login Locally->Login WebService->Get Blog Infomation DataSet->Get Category List DataSet->Display post interface

显示发贴界面。

发贴,成功后给一个信息,清理发贴界面。

明天下午不上班,应该可以做出一个雏形来了。

.Text简单客户端进度

基本完成WebService部分。明天做客户端部分。比较烦人的是如果用.NET做,则客户端机器必须安装有.NET Framework SDK。不过想到这东西也就是自己用,就无所谓了。嘿嘿。

今天来学院的专家是北大外语学院院长刘曙雄教授。虽然出了一点小问题(笔记本电脑插了个没开的电源),后来还是比较顺利地进行了整个过程。

也许月半说得对,我追求的尽善尽美,真的别人不会在意。但是,如果只有别人在意的事才去做的话,人活得会不会太累呢?

.Text简单客户端设想

.Text支持用metaBlogAPI或者WebService做客户端。不过前者只有英文版软件可用(如wBloggar),而且似乎不大灵光,后者则太过简单,连Category都不支持。所以打算自己做一个简单的、第一版只支持新增Post的客户端。大体结构如下——

                            DATABASE
                               |
              .TEXT STORED PROCEDURE
    (我的意思是.Text提供的SQL Server过程)
                               |
                            WebService
                               |
                              Client

在看.Text原来的Stored Procedure时,想起来作者没有提供详细的文档,只能自己研究了。通过查阅源码和数据库结构,大体了解了两个关键存储过程和表中参数的用法。下面简单列一下,备考。

首先,每个Post的CategoryId是放在blog_links表中。这个让我比较迷惑。作者把Post的category当作和“链接”一样的东西,混杂不清。

所以,在添加Post的时候,要执行两个过程:blog_InsertEntry和blog_InsertLink,第二个过程需要第一个过程返回的PostId值。来看看着两个过程的参数意思——

Create Proc blog_InsertEntry
(
@Active bit, //是否publish出来
@Title nvarchar(255), //标题
@TitleUrl nvarchar(255), //标题URL。这个我不大明白,从来没用过。
@Text ntext, //内容
@SourceUrl nvarchar(200), //来源URL
@PostType int, //BlogPost-1, Story-2, Comment-3, PingTrack-4,Undeclared-5,这里用1就好
@Author nvarchar(50), //作者
@Email nvarchar(50), //邮件地址
@SourceName nvarchar(200), //来源
@Description nvarchar(500), //描述,基本没什么用
@BlogID int, //不用解释了吧
@DateAdded datetime, //日期,用当前日期可也
@IsXHTML bit, //1-支持HTML, 0-不支持,对于Post应该支持,Comment则不支持
@ParentID int, //Post为-1, Comment是PostId
@ID int output) //返回ID
……

Create Proc blog_InsertLink
(
@Title nvarchar(150), //标题,对于Post,用Null
@Url nvarchar(255), //URL,对于Post,用Null
@Rss nvarchar(255), //RSS,对于Post,用Null
@Active bit, //活动,1
@NewWindow bit, //新窗口,0
@CategoryID int, //这个关键,不过无需解释了
@PostID int, //同上
@BlogID int, //同上
@LinkID int output //返回ID
)……

这样一来就清楚啦。稍候把发文流程思路整理一下再放上来。

生亦何哀,死亦何苦?

大抵整日寻思生死大事的有两种人,一种是怕死的,另一种不怕。和尚里面,大有因怕死而信佛出家,最后却反而不怕的,这就是信仰的作用。

我是俗人,怕死怕得不行。我的怕,并非死亡本身,而是此事的无常。在无常降临之前,能做多少有意义的事呢?终日沉陷在名利的梦中,这梦一直在麻痹我。虚荣,虚荣,虚荣的阴影实在将整个人笼罩了——这甜蜜的笼子!

惟有“抓住当下”罢,这样想着,却已让“当下”不断地消逝。而下一个当下,说不定就是属于无常的了。

这样想着,“当下”,已成过去。

一周之营营

现在只过去两天,还有三天无聊的日子在前面等着。烦躁,无所事事而又忙个不停。

教育部专家组检查工作

我要演示多媒体网络课程,紧张ing…

资源库系统

前两天开始写东方研究资源库的东西,感觉不错。特别是用Microsoft Application Block来做数据库访问,方便极了。我自己写了一个连接字符串访问方法,这下更方便啦。

打算这个星期之内完成。预计要注意的地方:

1、资源文件的上传下载管理。现在的想法是把二进制内容放在数据库,不过大尺寸的文件怎么办呢?是否应该放在硬盘目录中?再考虑。

2、缩略图。是否应该生成缩略图?对于图片当然这样会比较好,但是就复杂一些了。

领导视察

早上8点多到了学校,赶忙把服务器上的课件系统作了重新编译,然后修改了一两处在Windows2000上必定会有的错误(因为unicode的关系),看起来像点样子了。

9点多一干校长、处长之流鱼贯而入。一切正常,没想到轮到我演示的时候居然连接不到服务器了。后来用了本地文件糊弄过关,勉强算完成任务。

之后书记找我谈话,说如果校领导出面留的话,我怎么打算。我告诉他房子都已经租好了,非走不可。现在是箭在弩上,不得不发。蒋涛这个星期来广州,可以谈一下关于内容方面的话题。最近对managed content思考了很多。

Managed Content

之前在写CSDN网站规划文档时曾经提到过所谓Managed Content。今天突然想到,这个managed概念怎么体现呢?光是默默地在后台把内容组织好似乎还不足以凸现“managed”的感觉。所谓“managed”,我现在的体会有两个方面,一是under control,二是managed by human being。要让读者感到,呈现的内容是在控制之下的,是有管理的,是有序的;同时,也要让读者强烈地感受到有人在管理这些内容,有人在关心读者。Freeman很早之前就说过这个意见,当时只是觉得有道理,没有深入去考虑。

也许“频道主持人”这样的形式可行?

今天下午吃饭小结

前一段生病,嘴里真要淡出禾花雀来了。所以今天专门跑到机场路去吃重庆火锅。开始是打算去“红缘”的,快到门口时被隔壁的“艄翁鱼”吸引住了。

点了个鸳鸯锅底,清汤的部分据称是乌鸡煲的,不过挺腥气——我最怕腥气了。红汤部分不够浊,显得有些寡。先上个泡菜,味道有些奇特,还算不错。跟着是一人一根“艄翁骨”,即筒骨。似乎是卤或是煮的,直直竖着、插了一根吸管——骨髓受到饮料的待遇,也算是一大奇事了。当然味道还过得去。

这家店特色的地方是把鱼分作十个部位来吃。今天点的“鱼脑”,被证明是失败的,也许点“鱼唇”会好些。然后就是保留节目了:鸭血、鸭肠、牛肉,还有海白菜和金针菇。喝的青岛纯生,吃完后来了一杯椰子汁,感觉相当不错。

两个人,156元。