2009年2月28日星期六

使用7z备份站点文件

使用下列命令可以将源目录(文件)压缩为gzip格式。我是用于备份数据库而使用gzip格式的,因为这种格式体积较小,可以通过phpMyAdmin来进行数据库还原。

./7z -a -tgzip $target_name.gz $source_site

使用WPS导出MySQL数据库

下面是正确的脚本用来导入Mysql数据库,并证明可以通过phpMyAdmin导入。

./mysqldump -c -e -uroot --default-character-set=gbk --skip-set-charset --hex-blob rzchina > rzchina_db.sql

get-content rzchina_db.sql | set-content -encoding utf8 rzchina_db_final.sql

Windows PowerShell Pipelines

PowerShell 中的管道操作符—— 大于号(output) 是可以使用的,但input操作符—— 小于号 ,是不在wps 1.0 版本中支持的,这确实很让人失望。 我本想使用mysql database_name sql_script_file_name的命令来进行数据库restore,但看来是无法执行了。

不过,我发现了两个很有用的command :
  • get-content
  • set-content
使用mysqldump导出时,在windows下创建的文件是unicode,而不是utf-8的,这样在导出utf-8数据库时,脚本中会出现乱码。因此可以采用下面的命令将txt文件转换为utf-8格式的:
get-content rzchina.sql | set-content -encoding utf8 rzchina_utf8.sql

2009年2月26日星期四

MOSS 2007的Query Filter WP出现问题

当在IBA Ecommerce Application的MOSS站点的web page中填加QueryString Filter Web Part时,出现an error occurs这样的错误,然后就无法添加了。

我原以为是因为我自定义web part的问题,但我在没有custom web part的页面中,也是无法添加。因此我怀疑是share point出了问题。由于这个web part是MOSS具有的feature, WSS没有,因此只好在另一台机器上重新安装一下,看看到底是什么原因。

2009年2月5日星期四

在TFS上创建开发者博客

TFS全称Team Foundation Server,是微软面向软件开发的大一统的解决方案,包括项目管理及代码管理等全套功能。在开发中,通过日志来发布每天或几天的工作进展,是一个很好的任务汇报、追踪和交流的方式。那么如何在TFS中创建开发者博客呢?

TFS Portal是TFS的网站入口,它是一个Share Point的站点。在给开发者权限后,每个开发者可以创建一个属于自己的博客,方法如下:
  1. 登录进TFS Portal。如果不知道地址,可在VS2008中,在Team Exploere的站点名称上点右键,可以找到“Show Project Portal”,单击后即跳转至网站首页。
  2. 在“Site Actions”中选择“Site Settings”,然后创建一个新Site。
  3. 选择“Blog”模板。
  4. 完成!更改一下站点标题,如“Blade's Development Blog”,再在Themes中选个主题,就可以发布日志了。
发布日志时需要注意,请使用IE浏览器,Chrome和Firefox编辑时,都不能使用Rich Editor。Enjoy!

VS2008和显卡的小Bug

发现一个VS2008的小Bug, 在我使用的DELL Server上,可能由于显卡不够强劲,经常会出现界面上一些部分消失(重画失败)的情况。后来发现现将Options中的动画效果关闭,再重启VS2008,就不重现问题了。另外,Google的Desktop也会影响VS2008。

购物车的局部OOD

现要实现一个基本的购物车功能。客户将选中的零件填加至(H)购物车,然后生成订单。在这个需求中,创建了下面几个类:
  • Order
  • OrderItem
  • Basket
  • BasketItem
  • Part: 零件类
我的设计是让BasketItem继承自Part, 而OrderItem再继承自BasketItem。但现在出现个小问题,就是当将Basket生成订单时,要将BasketItem转成OrderItem,而这样对象转换是不支持的。因此需要重新设计一下。

我想来想去,觉得还是用下列的办法:
在Order中创建一个BasketItems属性,专门用于存放Basket中的Items,只在订单生成时用到。而平时在显示Order数据时,使用的是OrderItems。

父类的对象和子类的对象的转换

今天遇到一个关于OO的非常基础、非常easy的小问题,确怎么样没想明白。记录如下:

Class A是Class B的父类: class B extends A。现在:
A a  = new A();
B b = new B();
如果:
b = (B)a
则是错误的;
而:
a = (A)b
就是正确的。