Shuhari

2009年12月12日

C#编译器是如何判定某个变量没有使用过的?

摘要: 我们某个组员在编程过程中提出的疑问:看起来分明没有使用到的变量,编译器却没有发出任何警告。因为这个编译错误很容易避免,所以我一直也没有仔细想过这个问题,直到看过他的代码后才意识到,此问题并不是那么简单的。 阅读全文

posted @ 2009-12-12 12:21 Shuhari 阅读(2679) 评论(9) 推荐(2) 编辑

2009年11月13日

Silverlight校验框架的限制——基于异常的验证机制

摘要: 我们在项目中使用了Silverlight 3中新增的校验机制。一开始,感觉很不错:可以用标注的方式声明验证逻辑,自动设置校验控件,自动验证数据——一切似乎很好。但是很快我发现,Silverlight的校验机制也是存在严重限制的。 阅读全文

posted @ 2009-11-13 16:48 Shuhari 阅读(733) 评论(6) 推荐(0) 编辑

2009年11月12日

Silverlight陷阱:XAML中不能使用自定义字典

摘要: 我们知道,XAML中实际上是可以放置任何对象的,而系统将按照如下的规则管理嵌套的内容: 1. 如果对象实现了IList,那么嵌套内容将通过IList.Add添加到父对象; 2. 如果对象实现了IDictionary,并且元素用x:Key指定了键值,那么嵌套内容将通过IDictionary.Add添加到父对象; 3. 如果只有父对象用ContentPropertyAttribute声明了内容属性,那么嵌套内容将被赋值为到该属性。 我们在目前的项目中使用了很多XAML声明来减少编码量,但是在使用中我们发现,第2条对于Silverlight是不适用的,Silverlight的 XAML似乎只支持对Resources属性用字典方式来声明,对于自定义的字典内容,即使是ResourceDictionary也无法读取,否则运行时就会抛出异常。因为同样的方法在服务端已经普遍使用,所以我们把代码应用到Silverlight工程中的时候,根本没有想到这方面会出问题。从而花了很长时间、走了很多弯路去查找自己程序中的Bug,反复作了大量实验后,终于确定:这个问题来源于Silverlight和WPF 阅读全文

posted @ 2009-11-12 17:38 Shuhari 阅读(1630) 评论(1) 推荐(3) 编辑

2009年11月11日

Silverlight陷阱:注意程序集引用问题

摘要: 如果Silverlight应用程序的项目结构是Silverlight 应用程序 => Silverlight 类库 => 第三方组件,那么在程序集的引用上容易出现一些微妙的问题。本文描述了此问题出现的现象、原因和解决办法。 阅读全文

posted @ 2009-11-11 11:48 Shuhari 阅读(2264) 评论(4) 推荐(1) 编辑

2009年10月29日

WPF/Silverlight陷阱:XAML自定义控件的嵌套内容无法通过名称访问

摘要: WPF/Silverlight中使用XAML自定义控件存在无法通过名称访问内容的问题。 阅读全文

posted @ 2009-10-29 12:18 Shuhari 阅读(3540) 评论(24) 推荐(0) 编辑

2009年10月19日

用TDD方式实现老赵的SearchCriteriaBinder

摘要: 看了老赵的 我的TDD实践:可测试性驱动开发(下),我认为这种开发方式并无问题,不过我感到奇怪的是何以老赵会认为用TDD来完成这个工作就会显得尴尬?下面我用TDD的方式来完成同样的工作,读者可以自行比较和老赵的方法有何区别。 阅读全文

posted @ 2009-10-19 15:50 Shuhari 阅读(2389) 评论(30) 推荐(2) 编辑

2009年9月30日

自己动手,丰衣足食——补充Silverlight的布局系统

摘要: 我对Silverlight的布局系统一直感到不满,原因无他,太过罗嗦尔。它灵活是非常灵活,但对于界面布局并没有提供一个简洁的表达机制,使得即使简单的界面布局也常常生成一大坨又臭又长的XAML,写得累,看的人更累。在忍受这些毛病很长时间以后,我终于决定抛开Silverlight的默认布局容器,自己写一套更加方便的自定义布局管理器。 阅读全文

posted @ 2009-09-30 12:38 Shuhari 阅读(2735) 评论(11) 推荐(2) 编辑

2009年9月19日

Silverlight 山寨版样式浏览器

摘要: 我们在上个项目中使用了Silverlight,但是大家知道Silverlight现在那个设计器根本只能算文本编辑器,没什么可视化功能,我们在调整界面的时候哪怕只修改一个像素,都要重新编译运行程序才能看到效果,时间一长实在是苦不堪言。刚出来的Expression 3中文版也试用了一下,同样不太好用,放几个自定义控件上去Blend就傻掉了,此外这个版本和原来安装的Silverlight Tools似乎还有点冲突,也没有再用下去。趁着这个周末有点时间我做了一个Silverlight版本的样式浏览器,可以在界面上修改常用控件的属性样式并马上看到结果,还可以把设置好的样式作为XAML复制到剪贴板,算是个相当趁手的小工具。有一些功能尚未实现,不过对于现在的项目来说是足够用了。先放上来看看大家有什么意见。 阅读全文

posted @ 2009-09-19 16:57 Shuhari 阅读(1860) 评论(4) 推荐(1) 编辑

2009年9月16日

使用约定对Silverlight应用进行国际化

摘要: 关于对Silverlight进行国际化的方法,以前已经有过不少文章,我了解到的比较详尽的应当算是TerryLee的这一篇(http://kb.cnblogs.com/page/42913/)。正如这篇文章所指出的,Silverlight对国际化的支持存在不少小瑕疵,不过我最无法接受的问题是语法实在太过冗长。我在项目中为了减少国际化的工作量,同时也为了让代码变得干净清爽一点,采用了另外一种基于约定的国际化方案。 阅读全文

posted @ 2009-09-16 17:59 Shuhari 阅读(597) 评论(0) 推荐(0) 编辑

2009年9月3日

[观点]客户不应该为需求负责

摘要: 客户是垃圾。客户不专业。客户连需求都说不清楚。好吧,今天又看到了这样的文章,这回我倒是想说点什么了。 撇开软件这个行业不谈,在其他经济领域,我们这些开发者也是客户。大到房子、车子,小到电脑、手机,设置一只牙刷,一块肥皂,在日常生活多数情况下我们自己也是掏钱购买消费品的人。那么我想问一问了,在这么多消费领域,有哪一个厂家要求你作为用户自己提出产品需求呢? 阅读全文

posted @ 2009-09-03 16:40 Shuhari 阅读(2861) 评论(69) 推荐(4) 编辑

导航