.Text简单客户端几近完成

可是服务器终端连接不上了……暂时无法使用。:-(

设置TextBox的PasswordChar属性

if (ckbShowPassword.Checked){
  tbPassword.PasswordChar='\0'; 
}
else{
  tbPassword.PasswordChar='*';
}

用tbPassword.PasswordChar=’ ‘;是不行的。其实char类型的初始值就是’\0’,在这里不过是还其本来面目罢了。

一篇有意思的文章

先来看看效果吧——

文章地址:http://www.codeproject.net/cs/miscctrl/flagseditor.asp

.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
)……

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

生亦何哀,死亦何苦?

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

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

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

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

一周之营营

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