2009年4月6日

摘要: 静默安装就是安装时不显示UI,只显示一个CMD窗口,并用命令行传递安装时需要的参数。心想静默安装怎么地安装完了得有个结果显示出来吧,结果NSIS制作的安装包真是彻底静默了,命令执行之后立马返回了,而且一行信息也没有显示出来,要不是到安装目录下自己看看,天知道安装成功没有?在Winamp的论坛上,已经有人问过同样的问题,结论是要使用下面的参数重新编译NSIS的源代码,才能把安装时的详细信息在静默安装... 阅读全文
posted @ 2009-04-06 22:52 南柯之石 阅读(6775) 评论(0) 推荐(0) 编辑
摘要: 清明节放三天假,本来想去黄山。可是黄山的旅店都订不到,就改去了苏州。开始了苏州被宰的经历。 本来是没有报团的,想自己到苏州想去什么地方去什么地方,可是一到苏州就下着小雨。找起公交车实在是麻烦。就在火车站旁边报了一个团。本来计划好的路线也被破坏了。改成了去北寺塔,水上游苏州,枫桥和虎丘。商量好地点之后忘了最重要的一步——砍价,直到一天玩完了,才发现原价105元/人付了钱才感觉不太对。 第一个... 阅读全文
posted @ 2009-04-06 16:59 南柯之石 阅读(903) 评论(1) 推荐(0) 编辑

2009年4月5日

摘要: 花了一个晚上的时间好不容易把NSIS的源代码编译过了,设置环境真是不容易啊。 首先解释一下为什么要编译NSIS的源代码,因为有时要修改NSIS的设置,比如让NSIS支持LOGGING啊,加大字符串长度,虽然这两个在网站上有下载编译好的,但是如果有别的设置要更改呢?如果要自己写个插件扫描器呢?都要把NSIS的源代码重新编译一遍。很不可理解。不过目前也只能这样。 根据文档上的要求,编译NS... 阅读全文
posted @ 2009-04-05 21:42 南柯之石 阅读(3893) 评论(1) 推荐(0) 编辑

2009年4月2日

摘要: NSIS是一个用于生成安装程序的软件,用NSI脚本可以很方便地写出一个安装包。最大的优点就是免费。VS自带的建立MSI安装包能实现的功能比较单一,听说有微软有另一个专门做安装包的软件能实现更强大的功能,不过比VS Pro还要贵……。所以如果只是最简单的安装、卸载,MSI足够了,如果想多提供一些功能,又不想多花钱的话,NSIS或是INNO都是不错的选择。其中NSIS更灵活一些。INNO更简单一些。 ... 阅读全文
posted @ 2009-04-02 23:50 南柯之石 阅读(5417) 评论(3) 推荐(2) 编辑

2009年3月26日

摘要: 在把源代码打包的时候,常做的一步就是把文件夹中的所有bin目录和obj目录删除,不然打的包会很大。如果解决方案中只有一个项目,手工删除这两个目录还可以。项目一多了,一个个地手工删除自然很累。 懒惰的程序员都会去写个程序做这个事情。上学的时候就写过一个Power工具包,里面就包括这个功能。现在想想那个时候还是太勤快了,写那么多代码做这么点儿破事儿,累不累啊? 因为用bat,几行代码就可以搞定... 阅读全文
posted @ 2009-03-26 21:39 南柯之石 阅读(429) 评论(2) 推荐(0) 编辑

2009年3月20日

摘要: 先来看一个代码: Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ -->using System; using System.Collections.Generic; namespace YeildReturn { class Prog... 阅读全文
posted @ 2009-03-20 23:24 南柯之石 阅读(2105) 评论(9) 推荐(0) 编辑
摘要: 制作服务端程序的安装包,常常要创建数据库和其中的表。在创建之前,应该检测一下这个数据库是否已经存在了,如果已经存在,那么弹出消息框问用户是不是要覆盖现有的数据库数据。这里是一个使用NSIS制作安装包时的检测方法。 检测部分的NSI代码如下: nsExec::Exec 'sqlcmd -S .\SQLEXPRESS -d SampleDB' Pop $0 ... 阅读全文
posted @ 2009-03-20 22:05 南柯之石 阅读(746) 评论(0) 推荐(0) 编辑

2009年3月19日

摘要: 首先声明一下:有人早就发现了这个问题,发过了帖子,也已经有微软的人说这是“by design”的行为。但是我依然对这个诡异的行为表示不可理解。所以发上来,看看大家的见解。示例代码非常之简单。[代码] TextBox要设置为Wrap使其自动换行。 重现Bug的步骤如下:图1. 运行程序图2. 输入很多字母图3. 将光标放到行首图4. 输入空格,光标不见了光标不可见,其实还是... 阅读全文
posted @ 2009-03-19 22:14 南柯之石 阅读(3089) 评论(8) 推荐(0) 编辑

2009年3月17日

摘要: 想了解一下MVVM的具体实现,所以就写个小程序实际用用,结果用的时候发现了一个问题。想问问大家的意见,有没有什么比较合适的解决方案。 这个小程序大体分了了M,VM,V三层,一层一个DLL。(也许这就有问题……)其中VM层里定义了Command。V层里都是窗体类。 关系是:V使用VM和M,VM使用M。 问题是这样的:有一个Command(在VM层)需要窗体的切换(跳转),但是从VM层又无法直接使用V... 阅读全文
posted @ 2009-03-17 22:56 南柯之石 阅读(561) 评论(2) 推荐(0) 编辑

2009年2月24日

摘要: 公司里用的是NUnit,但是用起来并不觉得好用,因为发现VS的测试代码可以自动生成的。于是大致比较了一下Visual Studio里自带的Unit Test和NUnit的区别。 在stackoverflow上有人讨论过这个问题。下面的条目都是摘自各个网页。做个汇总,方便大家参考。 最表面上来看,用的类库不同,这个问题很好通过一个宏来解决。 #if !NUNIT using Mi... 阅读全文
posted @ 2009-02-24 20:20 南柯之石 阅读(5192) 评论(2) 推荐(1) 编辑

2009年2月22日

摘要: 其实这个标题就是在自欺欺人。了解一些现在食品现状之后发现,真想吃得健康,只能是自己动手,丰衣足食了。既然做不到,那只能多了解一下,外面卖的什么东西吃了不太健康,要注意量。 有人对此倒是看得很开,知道现在其实什么东西都不健康,可是知道不能不吃啊。结果都懒得去了解什么不健康,也全然不在乎吃东西健康不健康,反正大家都这么吃,要死一起死,活下来了还给人类的进化做贡献了不是? 最近牛奶出了那么多事儿... 阅读全文
posted @ 2009-02-22 16:34 南柯之石 阅读(421) 评论(2) 推荐(0) 编辑

2009年2月19日

摘要: 今天有同事给一个WPF程序的后台逻辑写UT,用的是NUnit框架,写之前感觉UI不好写UT,给后台逻辑写UT应该是没有什么问题,但是写开了才发现问题。 问题就出在了后台逻辑获取资源的部分,代码类似下面。 Application.Current.Resources[XXXX] 运行时抛出NullReferenceException,Application.Current为null。 ... 阅读全文
posted @ 2009-02-19 22:45 南柯之石 阅读(713) 评论(1) 推荐(0) 编辑

2009年2月11日

摘要: 再下一城。BUG描述:当RowDefinition的Height属性被设置为Auto时,MaxHeight将不会对这个Row的Height起到限制作用。2012年6月1日更新:这是因为Grid的Auto比MaxHeight的优先级要高。拖动Splitter之后MaxHeight生效,是因为拖动Splitter会使 Grid的Auto失效掉。回复中ocean的回复请无视之。Bug发现过程:想做一个像Visual Studio 2008里Error List一样的东西。平时自动占用最小的空间,可以在适当的时候自己弹出来,但是又不要弹得过高。示例窗口代码如下:Demo WindowCode ... 阅读全文
posted @ 2009-02-11 23:32 南柯之石 阅读(2337) 评论(8) 推荐(0) 编辑

2009年2月10日

摘要: 关于WPF数据绑定是什么,请参考Data Binding Overview。关于WPF数据绑定的Validation更多细节,请参考Data Validation in 3.5。关于WPF数据绑定的Validation中的ErrorTemplate怎么用,请参考ErrorTemplate Attached Property。ErrorTemplate将被绘制在Adorner Layer上,关于Ad... 阅读全文
posted @ 2009-02-10 22:50 南柯之石 阅读(2260) 评论(9) 推荐(1) 编辑

2009年2月9日

摘要: 在上一篇中,描述了模态对话框隐藏之后变成了非模态的Bug,很多人回复表示这不算是一个Bug,我也表示理解。Bug只有在需求之下才有意义,不同的需求,对Bug的界定也不一样。作为一个Framework,.NET只能做到在多数时候是符合最广泛群体的需求的,就可以说它合格。但是对于前一篇描述的问题,想补充一下自己的考虑。Window的Show和ShowDialog,用于将窗体展现(我没有用显示)出来,而... 阅读全文
posted @ 2009-02-09 22:03 南柯之石 阅读(3779) 评论(16) 推荐(0) 编辑

2009年2月5日

摘要: 发现这个问题时,隐约记得之前有人已经发过这个问题,想把链接放到这里,不过找了半天,实在找不到。日后如果找到了一定加上。问题描述:用ShowDialog方法弹出一个模态对话框,然后将此对话框的Visibility属性设置为Hidden,再设置回Visible,发现这个对话框已经不是模态的了。有人会觉得关就关了得了,也不会有这个问题,干什么要把Close取消掉然后再显示出来呢?因为这是有应用环境的。应... 阅读全文
posted @ 2009-02-05 21:52 南柯之石 阅读(3698) 评论(9) 推荐(0) 编辑

2009年1月19日

摘要: Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--> ... 阅读全文
posted @ 2009-01-19 21:41 南柯之石 阅读(836) 评论(0) 推荐(0) 编辑

2009年1月17日

摘要: 冲突的地方就在于窗体应该不应该有左上角的图标?不知大家平时有没有注意这个问题?这个谁说都没有用,看看微软的已经有的软件,主窗体都有,从主窗体弹出的绝大多数子窗体都没有。再来看看微软自己的UX Guide上是怎么说的。Title bars● Dialog boxes don’t have title bar icons. Title bar icons are used as a vis... 阅读全文
posted @ 2009-01-17 00:11 南柯之石 阅读(1263) 评论(2) 推荐(0) 编辑

2009年1月16日

摘要: 正在做的一个项目就是用WPF做的。项目初期做DEMO时也是,同时也是CTO推荐的。但是CTO的考虑却和我们不一样。 记得做DEMO时,把东西给CTO看后,得到的反馈之一是,为什么用WPF做这么点儿功能用了这么久?怎么还要写逻辑? 不知道CTO是不是只看过WPF的广告,而没有自己涉足过。似乎在CTO的观念中,WPF是可以极大地减少代码逻辑,增加开发效率的新技术。如果XAML不属于代码的话,前... 阅读全文
posted @ 2009-01-16 23:16 南柯之石 阅读(730) 评论(5) 推荐(0) 编辑
摘要: 我是一个土生土长的北方人,来到了上海一年多了,过着其实无论在哪儿都一样的生活——吃饭、工作、睡觉。但是安静的时候,常常感觉自己的生活缺了点什么,可是又说不上来。尤其到了年底,这种感觉就越发强烈起来。 晚饭没有像平时一样在公司吃。回到家里,吃着刚买回来的饺子,想起了儿时在家过年的情景。 不懂事的时候就发现,哪天早晨起来,吃的是腊八粥,那么就快要过年了,就要发压岁钱了。这一天,家里人还会剥些蒜... 阅读全文
posted @ 2009-01-16 21:36 南柯之石 阅读(467) 评论(3) 推荐(0) 编辑

2009年1月14日

摘要: 又是一个看起来很简单的问题。像下面这样在Closing里弹出个MessageBox确认一下不就行了?[代码]代码简单得不能再简单了,而且试了一下可以达到目的,似乎是没有什么问题啊。但是很多代码需要大量的测试才能发现问题。这个代码就是其中之一。在说明BUG之前,先给几个信息,大家可以猜猜如何重现这个问题。1. 只有非模态的子窗体有这个BUG。主窗口是没有问题的。2. 弹出MessageBox的时候,... 阅读全文
posted @ 2009-01-14 23:25 南柯之石 阅读(2516) 评论(0) 推荐(0) 编辑

2009年1月13日

摘要: 1. Discussion on Google Group. http://groups.google.com/group/scintilla-interest/browse_thread/thread/8cfd7ab494c8b04c wackzingo wrote: > [snip] > Then in main I go to create one and refere... 阅读全文
posted @ 2009-01-13 21:39 南柯之石 阅读(650) 评论(0) 推荐(0) 编辑

2009年1月12日

摘要: 有人可能会说这有什么好写的。不就是一行代码就能搞定的吗?而且为什么需要用代码设置SelectedItem呢?用户所点的Item不就自动是SelectedItem吗?在这里将要讨论我们的,就是ListBox自己没有能自己把SelectedItem设置正确的情况。本来想当作一个WPF Bug清单的一篇文章的,但是又感觉也许就是有这样变态的需求呢。我们用一个非常简单的代码的XAML就可以重现这个问题。[... 阅读全文
posted @ 2009-01-12 23:56 南柯之石 阅读(9378) 评论(8) 推荐(1) 编辑

2009年1月11日

摘要: 在上一篇“Windows Vista中五花八门的菜单赏析”(不知道为什么不在首页了……寒~~~~)中把微软的菜单“批斗”了一番。有网友问那应该怎么做?其实这是一个很复杂的问题。就算你做到了UX Guide上写的所以要求,也只能算是到了看上去良好的程序。一个UX良好的软件的根本原则非常简单——“好用,易用”... 阅读全文
posted @ 2009-01-11 23:08 南柯之石 阅读(1878) 评论(3) 推荐(0) 编辑
摘要: 由于曾经项目里很多人做的界面实在是看不过去,于是有一段时间特别关注于程序的界面设计。要有良好的使用体验,又要符合UX guide的要求。从控件的选用、布置到界面上的所有文字都有精细的要求。如果没有专门学习过,很难第一次就做得很好。(当然你可以说Google做的东西很多不符合MS的UX guide,但是人家做的东西就是好看又好用。这就是感觉,在有感觉之前,总要有一个过程来领悟,方法就是通过学习。)学... 阅读全文
posted @ 2009-01-11 21:05 南柯之石 阅读(1298) 评论(5) 推荐(0) 编辑
摘要: 在WPF BUG清单之二,介绍过RadioButton在绑定上的一个Bug。现在再来介绍它的另一个造成RadioButton的点击事件处理不正确的BUG。现象是:点在RadioButton的范围内,可这个RadioButton就是选不中。先来看一个例子。Windows里一个常见的对话框,用了多个RadioButton。如下图所示。图1. RadioButton使用范例把RadioButton放在G... 阅读全文
posted @ 2009-01-11 15:37 南柯之石 阅读(3855) 评论(6) 推荐(0) 编辑

2009年1月10日

摘要: 俗话都知道,就不说了。 但是到了工作上,就没有这么简单了。 每个人都有不同的工作习惯: 有的人工作效率高,但是没有耐心,坐不住;有的人工作效率低,但是很有定力,一坐一天。 有的人晚上很精神,倾向于晚上加会班;有的人早晨头脑才清醒,到了下午工作效率就下降。 但是不同的人总要在一起工作。于是总会要有冲突: 工作效率高的心里歧视工作效率低的,觉得这么点儿工作也做这么久。 有耐心的... 阅读全文
posted @ 2009-01-10 01:02 南柯之石 阅读(328) 评论(0) 推荐(0) 编辑

2009年1月5日

摘要: 今天为了L2S,园子里各路人马济济一堂,最后园子将近骂场。而且骂人不带脏字,水平之高不输言官。 没有直接参与,感觉没有必要,有时间学习好了。但是还是忍不住间接参与了——发了这个帖子,表达一下个人的观点。 林子大了。 人多了,总会有支持的,有反对的, 有发牢骚的,有没事找事儿的,有专门斗嘴的, 有看完不回的,有看个标题就瞎评论的, 有不懂装懂的,有在一边冷笑的, 有心情不好来泄愤的,有过来凑... 阅读全文
posted @ 2009-01-05 23:07 南柯之石 阅读(285) 评论(3) 推荐(0) 编辑
摘要: 自从编程脱离了刀耕火种的时代以来,文档就是程序的重要组成部分。而且各种名目的文档无所不有。对于写代码出身的人来说,往往相当不重视文档的编写。但是不幸的是,作为软件支持的重要组成部分,很多时候,文档却能影响软件产品的成败。 笔者一个月写帮助文档的经历实在是感触颇多,总结出来希望能给大家一些帮助。入门水平,特为没有写过文档而又计划写文档而准备。 如无特别说明,下面的文档特指CHM类型的帮助... 阅读全文
posted @ 2009-01-05 22:27 南柯之石 阅读(6340) 评论(7) 推荐(2) 编辑

2008年12月24日

摘要: 项目到了尾声,正在修补BUG的阶段中。接到通知要在1个月内完成项目的所有用户手册。一共有几大类。包括Help Document, User Guide, API Document等。然后就回到了的加班的日子。天天十点多回家。随便吃点东西,看看新闻,记记账,洗漱一下,就基本到了睡觉的时间。不爽的是 [WPF Bug清单] 系列也被迫中断了。其实回来写BLOG是想把学习到的知识积累起来,现在白天倒是学... 阅读全文
posted @ 2008-12-24 23:18 南柯之石 阅读(278) 评论(0) 推荐(0) 编辑

导航