RSS 2.0 Feed
2004-11 Entries
摘要:微软美国community(社区)正在试点一项新的活动,对支持微软技术的朋友表示感谢(有小礼物赠送)和欢迎(邀请参加online, offline的社区活动)。我准备通过博客堂搜索到一位这样的朋友。   如果您:每周访问博客堂一次或者更多,人在美国,目前还不是MVP (Most Valuable Professioanl),对微软技术很感兴趣,有自己的关于微软技术的Blog或者网站或者写的文章,请回复此帖。第一位符合条件的回复将得到我的邀请。我会通过email告知您登录网站和代码。   更新1:有同事赞助一个邀请名额,现在可以邀请2位支持微软技术的朋友。 更新2:telestar接受了第一个邀请,尚还有一个邀请名额。   贴子以"现状"提供且没有任何担保也没有授予任何权利...[阅读全文]

posted @ | Feedback (30) | Filed Under [ IT ]

摘要: 一周前的有奖问答的题目是:自相矛盾的设计指导?前后的矛盾之处在于:TypeConverter类在ConvertTo和ConvertFrom无法执行的时候抛出NotSupportedException是不符合设计指导的要求的,无法Convert的情形是对于某些输入而言的。最合适的异常是在比较InvalidOperationException 和NotSupportedException之后我提到的“不要忘记ArgumentException及其子类”。   当然现在就只能将错就错,将TypeConverter单列出作为特例。因为不是每个程序员都充分了解和注意所有的设计指导,未来的新增加的API也未必能100%与设计指导保持一致。如果您在Beta的ASP.NET 2.0, WinFrom2.0, Avalon 1.0, Indigo 1.0发现使用不妥之处,请及时指出,以利于改进。   贴子以"现状"提供且没有任何担保也没有授予任何权利...[阅读全文]

posted @ | Feedback (2) | Filed Under [ Quiz 设计指导 | Design Guideline ]

摘要:Avalon程序员需要了解的基本概念包括Logical tree, Visual Tree, Style, Routed Event, Dependency Property, Resources等。这个Post从一个实例加深对LogicalTree和VisualTree的认识。   以这个Xaml文件为例: <Window x:Class="AvalonApplication1.Window1" xmlns="http://schemas.microsoft.com/2003/xaml" xmlns:x="Definition" Text="AvalonApplication1" ID="mainWindow">     <Grid>         <Button Content="Click Me" Click="ButtonClick"/>     </Grid> </Window>   其LogicalTree的结构被Xaml清晰的表述出来了:一个Window包含了一个Grid, 而这个Grid又包含了一个Button。但是当这个window显示在屏幕上的时候,实际上使用的VisualTree是什么样的呢。   VisualTree的结构取决于Window,Grid和Button的Style,用户可以自己订制所以决无唯一的答案。在缺省的XP下显示上面这个Xaml,其VisualTree的结构如下:   AvalonApplication1.Window1     System.Windows.Controls.Border         System.Windows.Controls.Grid             System.Windows.Documents.AdornerDecorator                 System.Windows.Controls.ContentPresenter                     System.Windows.Controls.Grid                         System.Windows.Controls.Button                             System.Windows.Controls.Grid                                 System.Windows.Shapes.Rectangle                                 System.Windows.Shapes.Rectangle                                 System.Windows.Shapes.Rectangle                                 System.Windows.Shapes.Rectangle                                 System.Windows.Shapes.Rectangle                                 System.Windows.Shapes.Rectangle                                 System.Windows.Shapes.Rectangle                                 System.Windows.Shapes.Rectangle                                 System.Windows.Controls.Border                                     System.Windows.Controls.FlowPanel                                         System.Windows.Controls.ContentPresenter                                             System.Windows.Controls.Text                                 System.Windows.Controls.Grid + GridLinesRenderer                         System.Windows.Controls.Grid + GridLinesRenderer                 System.Windows.Documents.AdornerLayer             System.Windows.Controls.Primitives.StatusBar             System.Windows.Controls.Primitives.ResizeGrip             System.Windows.Controls.Grid+GridLinesRenderer   得到此输出的代码在我的LonghornBlogs上可以看到。同时试试看你能否回答出最后提出的那个问题。   贴子以"现状"提供且没有任何担保也没有授予任何权利...[阅读全文]

posted @ | Feedback (4) | Filed Under [ WPF/SilverLight ]

摘要:在Google中试图寻找Avalon的解释,可以键入define:Avalon. 只是目前还没有任何关于WinFx下的Avalon的定义。   所以,当我在安装Avalon 11月CTP的时候,我留意到其定义比较全面。如果你没有注意到的话,请参见我的同名longhornblogs. 拷贝如下: "Avalon" is the code name for Microsoft’s unified presentation subsystem for Windows, consisting of a display engine and a managed-code framework. It unifies how Windows creates, displays, and manipulates documents, media, and user interface, and enables developers and designers to create visually-stunning, differentiated user experiences. 简言之,是新一代Windows应用程序表现层的API及服务支持.   我安装CTP的计算机配置很低,双CPU但是只有700M,内存256M。虽然比较慢,运行Avalon也是没有问题的。   贴子以"现状"提供且没有任何担保也没有授予任何权利...[阅读全文]

posted @ | Feedback (2) | Filed Under [ WPF/SilverLight ]

摘要:MSDN订户已经可以下载Avalon November 2004 CTP Build. 这是在2003年PDC之后的又一次公开版本。变化是挺大的,而且Avalon仍然在变化之中。   Avalon是WinFx的一个重要技术,提供了新一代Windows应用程序表现层的API及服务支持。   新闻报导,请看Microsoft gives developers a glimpse of Avalon;技术指导,请看MSDN上的文章Avalon November 2004 Community Technical Preview。当然技术指导会经常提到WinFX SDK.   贴子以"现状"提供且没有任何担保也没有授予任何权利...[阅读全文]

posted @ | Feedback (3) | Filed Under [ WPF/SilverLight ]

摘要:在题为“区分使用InvalidOperationException和NotSupportedException”的Blog里面我首先提到如何区分使用 InvalidOperationException 和NotSupportedException,然后归纳了在FCL 1.x之中InvalidOperationException 和NotSupportedException的使用。   前后是不是有自相矛盾之处呢?请回答并有解释说明,第一个给出合适回答的朋友将得到Alienware Mousepad作为小纪念品。要在12月下旬才可以寄出。可能是我也可能请Grace代为发送。   贴子以"现状"提供且没有任何担保也没有授予任何权利...[阅读全文]

posted @ | Feedback (15) | Filed Under [ Quiz 设计指导 | Design Guideline ]

摘要:从3月1日“早安中国”第一帖开始,承蒙博客堂读者支持和鼓励,本Blog终于达到了两百篇这一数字。稍微总结以下,有意想不到的收获和结果。   比如说,“早安中国”这一帖已经成为众多渴望减肥人士报名和交流信息的重要平台。他们大都是从搜索引擎中找过来的,而搜索引擎更因为他们的回复认定了这种相关性。(我没有删除这些回复。虽然文不对题,但不算是Comment Spam. )   而通过博客堂认识了众多朋友和同行,很让人欣喜。通过互相交流和切磋,希望我们都有超出原先期望的收获。   两百篇,忽然之间就走过, 二字头的开始,我好想说, 珍惜您和我所把握的每个瞬间, 还可以选择一次无悔的梦!   附:为了热烈祝贺200篇,近期的Blog将会通过有奖问答等方式为积极参与的读者提供小奖品,请踊跃参加。时间不固定,前天答对的朋友是learner....[阅读全文]

posted @ | Feedback (17) | Filed Under [ 只言片语 ]

摘要:对于不同的错误情形,库函数需要选择合适的Exception的类别和Exception Message。如何区分使用 InvalidOperationException 和NotSupportedException呢?   NotSupportedException: 如果API总是会失败无论其input(如参数)的值是什么。   InvalidOperationException: 如果API在当前对象所处的状态(不管输入是什么)下会失败,但是当对象的状态改变时能成功。   当然不要忘记ArgumentException及其子类适用于API的当前参数值不合法的情形。   在FCL 1.x之中,NotSupportedException的使用主要用以下3种情形:   基类对一些函数没有实现而期待其子类去实现。但是子类可能只实现部分这样的函数,而对其他不支持的函数抛出NotSupportedException. System.IO的类在试图read, seek,write并不支持此功能的stream时抛出NotSupportedException. TypeConverter类在ConvertTo和ConvertFrom无法执行的时候抛出NotSupportedException.   而InvalidOperationException的使用则要广泛多了。   在FCL 2.0和WinFX1.0中,我希望InvalidOperationException和NotSupportedException的区别能够继续体现出来。如果您在Beta的ASP.NET 2.0, WinFrom2.0, Avalon 1.0, Indigo 1.0发现使用不妥之处,请及时指出,以利于改进。常见的错误是在需要使用InvalidOperationException之处使用了NotSupportedException.   贴子以"现状"提供且没有任何担保也没有授予任何权利...[阅读全文]

posted @ | Feedback (6) | Filed Under [ 设计指导 | Design Guideline ]

摘要: 为了孩子的未来,父母甚至愿意放弃自己的幸福和追求,与之相比多花些钱就不算什么了。对于绝大多数的孩子来说,能够得到较好的教育对于其前途仍然是非常重要的。所以现在的家长在孩子的教育投资上是不惜血本。   所以商家就不会无动于衷。比如说学习英语吧,这显然已经成为一个很大的产业了。如果真的有用,赚钱并无可厚非。但是有些产品,把效果吹得天花乱坠,好像是灵丹妙药,让老师家长孩子一个个兴奋得在广告片里面赞不绝口。   家长说英语我是不懂的。但是不要紧没关系,我买了这样的产品,它懂。 学生说其功效显著,单词是想忘也忘不掉,流利英语更是脱口而出。 产品代言人一次次提醒观众,不买此产品,想必会毁了孩子的未来。   其实理智的读者都知道,一个东西如果听起来太好了感觉不会是真的话,这个东西声称的作用其实就是假的。   教育投资也要讲求投资的回报。只让产品厂家及其代言人获利的投资是失败的。   虽然在这里并没有时间展开讨论学习一门外语之有效的方法。那些经过实践和时间检验的学习方法,需要的持之以恒和不断努力,而不是突如其来横空出世的“学习利器”。   还有一点不得不提:如果用了某个产品,“单词是想忘也忘不掉”,那真的是大脑功能紊乱的表现。这样的“好处”,幸亏是假的。   遗忘是正常运作的大脑的功能。否则,大脑的运作就会如同这个充斥着虚假广告的大千世界一样杂乱。   以上文字,纯属个人观点。...[阅读全文]

posted @ | Feedback (12) | Filed Under [ 只言片语 ]

摘要:已知一个Type的BaseType是System.ValueType,请问这个Type一定是数值类型么?   需要有解释说明,第一个给出合适回答的朋友将得到Alienware Mousepad作为小纪念品。要在12月下旬才可以寄出。可能是我也可能请Grace代为发送。   贴子以"现状"提供且没有任何担保也没有授予任何权利...[阅读全文]

posted @ | Feedback (22) | Filed Under [ FCL | 库函数 Quiz ]

摘要:基于用户反映和与ASP.NET 1.x兼容的考量,自ASP.NET2.0 Beta2开始,那些包含代码,主题(theme),资源等特殊目录将做以下的修改。左栏为Beta1的命名,即Tech Ed 2004上课程使用的名称;右栏为Beta2的命名,而且应该也是RTM时使用的名称。     /Bin 保持不变 /Bin /Code 改变为 /app_code /Resources 改变为 /app_globalresources /LocalResources 改变为 /app_localresources /WebReferences 改变为 /app_webreferences /Data 改变为 /app_data /Browsers 改变为 /app_browsers /Themes 改变为 /app_themes     小结:Bin保持了和V1.x的兼容,而其他目录则有了共同的前缀。   贴子以"现状"提供且没有任何担保也没有授予任何权利...[阅读全文]

posted @ | Feedback (19) | Filed Under [ ASP.NET Tech•Ed ]

摘要: 如果已经定义了一个interface如下:   public interface IExample   {     void ShowExampe(string example);   }   有一个类是这样实现此interface:   public class DetailedExample : IExample   {     public void ShowExampe(string detailedInfo)     {       //implementation detail     }   }   有什么问题么?编译是可以通过的,但是微软的.NET设计指导要求在实现ShowExample的时候不改变参数名,所以detailedInfo应该命名为example.   Guideline: Do be consistent in naming parameters when overloading, overriding and implementing interfaces.  This discipline increases the developer perception of connection and interrelation between the methods.  (在重载,重写和实现接口时需要保持参数名的一致性。这一原则增加了程序员对于方法之间的联系和相互关系的理解。)   贴子以"现状"提供且没有任何担保也没有授予任何权利...[阅读全文]

posted @ | Feedback (7) | Filed Under [ 设计指导 | Design Guideline ]

摘要:在博客堂主页和各其他各页来自Google的文字广告中有一类叫作Google提供的公益广告。广告问道:“西西里的首府在哪里?”,“标准的一副塔罗牌总共有多少张?”“罗马神话中拔掉狮子爪子中的刺的人是谁?”   如果点击链接,我就等于到Google的网站做了一个简单的搜索。所以这应该就是Google对自己的搜索引擎能够回答以上这些问题的广告了。   但是这样的广告如何就是公益性质的呢?很明显西西里的首府政府,使用塔罗牌为人指点迷津的人,和拔掉狮子爪子中的刺的人没有向Google付费,但是这样就可以自己标榜为公益广告的么?   在发布之前又看到了一则google提供的公益广告:“红血球是在哪里产生的?Google知道。点击这里来找到答案。”   所以我知道Google的公益广告就是强化“Google知道”各种问题的答案。而Google所不知道的,就是商业广告和公益广告的分别。   以上文字,纯属个人观点。...[阅读全文]

posted @ | Feedback (13) | Filed Under [ 只言片语 ]

摘要:以下这段代码有编译错误:   public interface IExample   {     void ShowExampe(string example);   }   public class DetailedExample : IExample   {     public void ShowExampe(string example)  //Line 7     {       //implementation detail     }   }   public class BlogDetailedExample : DetailedExample   {     public override void ShowExampe(string example)   //Line 14     {       //My override     }   }   错误代码是CS0506: 'function1' : cannot override inherited member 'function2' because it is not marked "virtual", "abstract", or "override"。从此我们也许可以推断出第七行的ShowExample不是虚函数。实际上,它是虚函数,至少从IL代码可以看到virtual的标记:method public hidebysig newslot virtual final instance void ShowExampe(string example) cil managed   但是我们注意到了final的使用,这使得此虚函数不可以再被override. 现在将第七行改成 public virtual void ShowExampe(string example) 则可以使得代码编译通过。此时其IL就和类自己定义的(而不是通过实现interface得到的)虚函数一样了:.method public hidebysig newslot virtual instance void ShowExampe(string example) cil managed   当然我们也可以将类DetailedExample改成abstract(抽象)类也使得编译成功,这也和类自己定义的其他抽象函数一样。   public abstract class DetailedExample : IExample  ......[阅读全文]

posted @ | Feedback (16) | Filed Under [ C# 初学者园地 | Beginners' Roundtable ]

摘要:昨天从Seattle Times的一篇报道中得知微软在这个小时会发布自己的搜索引擎。果然在整点过一分的时候其新闻稿就发布了。虽然我刷新了浏览器好多遍,看来在beta.search.msn.com上的内容还没有更新。 微软自己的搜索引擎包括以下特性: Direct Answers: 直接问问题得到直接的回答 Direct Actions: 键入歌手,歌名或者唱片名称,得到来自msn music的链接。(这个似乎不难实现) Search Builder, Search Near Me等因为没有机会试用尚不知与其他搜索引擎的类似功能比较如何。 目前能够搜索50亿网页或者文档,与今天google主页上显示的80亿有差距。当然数量只是一个方面。随着MSN搜索的不断完善,会给用户更多选择。 贴子以"现状"提供且没有任何担保也没有授予任何权利...[阅读全文]

posted @ | Feedback (5) | Filed Under [ IT ]

摘要:博客堂的读者和作者们大都已经不再是18岁了。而在16岁的时候就选择外出打工的也一定不是多数。   经过7个多月的跟踪访谈,华尔街日报(Wall Street Jornal)的记者Leslie T. Chang从广东东莞发出了记述一位叫做陆清敏(音译)的女孩子不畏艰苦,不安于现状,不懈努力,追求幸福的报道。将这些普通平凡朴实的事情慢慢道来,相信每个博客堂的读者读后会有自己的感悟,   我从来没有在以前的Blog中提到过华尔街日报,一个原因是其内容不是免费的。不过这个星期例外,您可以看到当天以及过去30天的全部内容。上面提到的文章是看到在周一(11月8号)第一版上。其标题是:At 18, Min Finds A Path to Success In Migration Wave。   启发不是一点点,激励不是两三天。...[阅读全文]

posted @ | Feedback (38) | Filed Under [ 只言片语 ]