RSS 2.0 Feed
2005-05 Entries
摘要:一直忙着项目,周末闲下来看看新闻,某官员在那里驳斥外国批评“中国销售盗版软件比例达到95%”。谈到盗版问题,我又想起从前提到过的一个想法,趁着休息写一写。 对于MS来说,被盗版最多、它也最在乎的是Windows和Office软件这两大支柱。微软在全球有统一的定价体系,大家对此早已诟病多时了。 微软官方报价(在美国)Windows XP Professional $299 Windows XP Home Edition $199 Office Professional 2003 $499 Office Standard 2003 $399 相比之下(在中国大陆) Windows XP Professional RMB1998 Windows XP Home Edition RMB1498 Office Professional 2003 RMB3822 Office Standard 2003 RMB3058 以Windows XP Home Edition为例,在美国售价199美元,而美国人人均月收入保守估计在2000美元,也就是说购买一套Windows XP软件所占的比重仅为10%左右。而在中国大陆,假定中国人人均月收入能够达到2000人民币,也需要花掉70%的收入才能买到一套Windows XP。10% VS 70%,我想这个比例悬殊如此之大,连Gates先生也应该能够理解中国人民为什么买不起或者不愿买正版的Windows软件吧? 况且,中国人人均月收入能达到2000人民币吗?(就算把买不起PC的人群全部刨除,达到人均2000人民币也还是很有难度的。) 如果有一天,Gates终于想通了这个道理,按照中国人人均月收入有2000人民币计算,以相同的“比例”10%(也就是199人民币)在中国定价,相信会有一个比较良性的效果: 第一步,首先宣布考虑到中国人民的实际生活水平,即日起,按前述比例折算法取代以往的全球统一定价策略。第二步,经过充分的新定价政策宣讲之后,开始大规模的打击盗版专项行动(名称有点借鉴中国特色),从大公司开始,发律师信(这个好像是现在就有的手段),督促公司购买正版授权。公司应当权衡得出结论:Windows现在并不贵,正版也花销不算太大,买就买了,免得毁了公司的形象……逐步向中小公司推进……第三步,经过这么一个过程,企业市场的正版化基本完成,形成了一个正版多盗版少的氛围,以前总想着法不责众的小公司也应该考虑到盗版的风险。第四步,积极稳妥地向个人市场推进正版化过程,首先是鼓励,再有些软件包折扣之类(比如Windows XP+Office 2003单买199+399,折扣到499),……待使用正版的个人用户也逐渐多起来之后,反倒会形成一个“歧视盗版”或者“攀比正版”的氛围(而不是现在大家都支持盗版的氛围) MS是市场中的标杆,如果MS这么做了,应该会带动其他国际软件商调相应的整定价策略。如果真的这样的话,民间支持正版的声音强了,政府自然也就会跟进并做出实际的响应。这样才是一个双赢的过程,中国建立了一个正版化的环境,国际软件商也将从中获利。 以上感觉像在梦呓一般,说了很多实际上Gates不可能做的事情……...[阅读全文]

posted @ | Feedback (10) | Filed Under [ 日常生活 ]

摘要:最近手上的 Smart Client 项目已接近尾声,正准备为其添加“自动更新”功能。因为时间紧迫,完全自己开发是不可能了,再说已有现成的,为什么不用呢?呵呵~ 目前,实现“自动更新”这个特征,主要有两种选择:一个是采用 Microsoft Practice & Patterns 中提供的 Updater Application Block (现在属于 Enterprise Library 的一部分);另一种选择是采用 windowsforms.net 上一个微软员工写的一个 AppUpdater 组件(?http://windowsforms.net/articles/appupdater.aspx?)。 这两个东西有相似的地方,也有不同的地方,比如 Updater Application Block 提供了很强大的扩展接口,但个人感觉也有些体积庞大;后者比较小巧,windowsforms.net 中推出的 Terrarium (一个基于 .net 的游戏程序,也是一个典型的 Smart Client)中即采用了这个小家伙,并对它进行了扩展(Terrarium 中比较特殊的两点扩展是:1.采用Web Service形式,2.更新控制更加智能:只告诉一定数量的客户端需要更新软件,而告诉其他客户端“没有”更新,从而避免了更新高峰使服务器瘫痪的情形。随后逐批通知其他客户端更新软件。) 在搜索结果中发现,AppUpdater有一个广为人知的问题,如下图所示的提示: Unable to auto-download the missing parts of the application from:http://localhost/temp/System.resources.dll 但发现多数人给出的建议(比如:http://www.cnblogs.com/myxq/archive/2005/02/28/110370.aspx)就是,在系统中找到这些所谓“遗失”的文件,然后把它们加入到程序目录中来。 事实上,这些都是些资源文件,而且它们存在系统目录中,不应该是“missing”才对(因为程序也没有因为缺少它们而出现其他问题)。 搜索结果还发现一个现象是:问这个问题的大都是中文、日文、还有不认识的欧洲语言、俄语等等,基本上没看到英语用户在讨论这个问题。 我也查找了缺少的这些资源文件,它们所在的目录是:C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\zh-CHS 这样就比较明显了,对于英语用户他们不需要这些资源文件,他们使用已经打包在系统 dll 中的默认资源。可这个只是解释了为什么英语用户不讨论这个话题的现象。 简单看了 AppUpdater 的源码,发现这个错误提示出现的位置是一段自动下载缺失assembly的方法,它挂接了 AppDomain? 类的 AssemblyResolve 事件,当程序集解析失败时,自动从网络中下载。 我的初步猜测是,这几个资源文件是 AppUpdater.dll 自身依赖的,然后在它自己对自己进行解析时引发了这个 AssemblyResolve 事件。 很抱歉,我还没给出解决方法,仅仅初步分析了一下(还不知道对不对,最近太忙,闲下来再研究)。 另,这次第一次做 Smart Client 程序(这次主要突出的是离线工作的特征),有很多经验教训,过些日子待项目平静下来开始整理整理,做一些文章给大家参考。...[阅读全文]

posted @ | Feedback (14) |