﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>博客园-Anytao</title><link>http://www.cnblogs.com/anytao/</link><description> 		Anytao | 		inAspnet | 		CLRTeam | 		Life | 		Reader | 		Doc | 		Contact | 		About | 2009, Legend Creation</description><language>zh-cn</language><lastBuildDate>Wed, 10 Feb 2010 09:00:22 GMT</lastBuildDate><pubDate>Wed, 10 Feb 2010 09:00:22 GMT</pubDate><ttl>60</ttl><item><title>2010，因为不同：挺进2010，记忆2009</title><link>http://www.cnblogs.com/anytao/archive/2010/01/01/anytao-wode-2010-for-different.html</link><dc:creator>Anytao</dc:creator><author>Anytao</author><pubDate>Thu, 31 Dec 2009 17:22:00 GMT</pubDate><guid>http://www.cnblogs.com/anytao/archive/2010/01/01/anytao-wode-2010-for-different.html</guid><description><![CDATA[<p>阅读: 2270 评论: 37 作者: <a href="http://www.cnblogs.com/anytao/" target="_blank">Anytao</a> 发表于 2010-01-01 01:22 <a href="http://www.cnblogs.com/anytao/archive/2010/01/01/anytao-wode-2010-for-different.html" target="_blank">原文链接</a></p><p><strong><a href="http://anytao.net/" target="_blank">anytao.net</a> | <a href="http://book.anytao.com/"><strong><span style="color: #ff0000;">《你必须知道的.NET》网站</span></strong></a></strong> | <strong><span style="color: #0000ff;"><a href="http://www.anytao.com/">Anytao技术博客</a>&nbsp; </span></strong></p>
<p align="right"><span style="font-family: 微软雅黑;">发布日期：2010.01.01 作者：</span><a href="http://about.anytao.com/"><span style="font-family: 微软雅黑;">Anytao</span></a> 
  <br /><span style="font-family: 微软雅黑; color: #ff0000;">&copy; 2009 </span><a href="http://www.anytao.com/"><span style="font-family: 微软雅黑; color: #ff0000;">Anytao.com</span></a><span style="font-family: 微软雅黑; color: #ff0000;"> ，Anytao原创作品，转贴请注明作者和出处。</span></p>
<p>&nbsp;</p>
<h2 align="center">2010，因为不同</h2>
<p align="center">For different, Walkthrough the 2009 and put forward the 2010, anytao</p>
<p>&nbsp;</p>
<p>2010来了。</p>
<p>这一刻，我是和<a href="http://www.jasonyliu.com/">Jason</a>在Skype中度过的，过的意义非凡。因为，冥冥中竟然暗合了我对2010的很多打算和憧憬。我们聊了很多，关于创业、关于选择、关于未来，关于年轻的想法和思路。我想这些都为接下来的这一年承载更多的意义。</p>
<p>&nbsp;</p>
<p>如果有一句口号来为2010定一个基调，我想就沿用今天在地铁上某位兄弟对我的提示一样，这就是：因为不同。</p>
<ul>
<li><em>2010，因为不同。</em> </li>
<li><em>2008/2009，</em><a href="http://www.cnblogs.com/anytao/archive/2008/12/31/anytao_my_2008.html"><em>专注而行</em></a><em>。</em> </li>
<li><em>2007，</em><a href="http://www.cnblogs.com/anytao/archive/2007/12/29/anytao_2007.html"><em>行胜于言</em></a><em>。</em> </li>
</ul>
<p>独一无二，就是不同。作为普通大众，虽然我很拽的在2009大声呐喊了：</p>
<h3 align="center"><a href="http://www.cnblogs.com/anytao/archive/2009/08/17/anytao-think-notcodebutalone.html">哥写的不是代码，是寂寞</a></h3>
<p>
但是，不是天才的我，还继续在以技术为载体的梦想之路上，在迷茫和自信交织的思路上踌躇满志。因为不同，我想继续在2010，挺进未来时光的隧道里。 
</p>
<p>&nbsp;</p>
<p>作为传统剧目，我先记忆自己在2009一步一步</p>
<h2>2009</h2>
<ul>
<li>成家了，娶了美丽的新娘，住在温馨的小屋，把蜗居在北京的日子变成继续蜗居，感谢父亲母亲含辛茹苦的给予。咱不光是有身份证的人了，还是有结婚证的人了。 </li>
<li>第二次当选Microsoft Visual C# MVP，不管别人怎样，我很珍惜这份荣誉，也更努力这份责任。 </li>
<li>在<a href="http://www.ethos.com.cn">Ethos</a>，过着快乐的Coding生活，G4-Ticket、Accomotel、Dubbo还有TheDealersForum，是我给自己的答卷。 </li>
<li>闲来无事，发表了类似于《<a href="http://www.cnblogs.com/anytao/archive/2009/08/17/anytao-think-notcodebutalone.html">哥写的不是代码，是寂寞</a>》这样的抒情BT贴，有时重读，就像对着镜子认识自己。 </li>
<li>搭建了发布牢骚和技术的<a href="http://anytao.net">anytao.net</a>，在休闲的时候，把技术之内，创造之外的东西，分享在独居的小站。 </li>
<li>坚持在blog系列的写作上，林林总总，不可一致。 
    
<ul>
<li><a href="http://www.cnblogs.com/anytao/category/155694.html">01 [你必须知道的.NET](37)</a> </li>
<li><a href="http://www.cnblogs.com/anytao/category/155695.html">02 [从设计到架构](6)</a> </li>
<li><a href="http://www.cnblogs.com/anytao/category/155696.html">03 [一步一步MVC](6)</a> </li>
<li><a href="http://anytao.net/blog/category/07-e5bc80e58f91e69585e4ba8b.aspx">07 开发故事</a> </li>
<li><a href="http://www.cnblogs.com/anytao/category/155700.html">[玩转Silverlight](5)</a> </li>
</ul>
</li>
<li>和同志们组织了数次技术活动，有幸见到偶像Jeffery （<a href="http://www.cnblogs.com/anytao/archive/2009/02/16/anytao_activity_jeffery2009.html">[活动]和Jeffery大师的最近距离</a>） </li>
<li>还有什么呢？感谢上天、父母、爱人、朋友还有博客园。 </li>
</ul>
<p>&nbsp;</p>
<p>而在2009指出，我留下在园子的期望是：</p>
<p><em><strong>2009，脚踏实地，要做的还有更多</strong>：</em></p>
<ul>
<li><em>一本新书 </em></li>
<li><em>一个软件作品 </em></li>
<li><em>有意义的转身 </em></li>
<li><em>打造开源经典 </em></li>
<li><em>深入和专注：WCF、Silverlight、Azure </em></li>
<li><em>完成预定计划的写作 </em>
    
<ul>
<li><em>你必须知道的.NET系列2.0 </em></li>
<li><em>Silverlight随笔 </em></li>
<li><em>从设计到架构系列</em> </li>
</ul>
</li>
<li><em>技术交流和分享 </em></li>
<li><em>还有几个秘密:-)</em> </li>
</ul>
<p><em>注：虽然没有完全实现，但是，人生的变化和转身不是一直都在变化吗？只有坚持才是永恒的，这都是因为不同。</em></p>
<p>&nbsp;</p>
<p>如果说没有检讨，那简直就是脸皮厚，没风度，在2009遗憾和满足迎头扑面，总结起来就是</p>
<ul>
<li>没有按照预期完成《<a href="http://www.cnblogs.com/anytao/archive/2008/04/09/anytao_insidenet_center.html">你必须知道的.NET</a>》2.0，因此这是2010的重任。 </li>
<li>一大段时间的迷茫。 </li>
<li>少时间看书，少时间思考，少时间锻炼。 </li>
</ul>
<p>&nbsp;</p>
<p>作为继续话题，我要挺进2010的点点滴滴</p>
<h2>2010</h2>
<ul>
<li>
<p>选择，这是从2009开始的，会在2010开拔。</p>
</li>
<li>《<a href="http://www.cnblogs.com/anytao/archive/2008/04/09/anytao_insidenet_center.html">你必须知道的.NET</a>》2.0 ，是继续的坚持，可能还有其他，谁知道呢。 </li>
<li>一个在线应用，继续Web之梦。 </li>
<li>完善和继续技术之路上的专注，这就像一个地图，看起来就是这个样子，很多里程碑就像昂首阔步的丰碑，等待我的挖掘和思考。 </li>
</ul>
<p><a href="http://www.cnblogs.com/anytao/admin/$tao2.png"><img style="display: inline; border-width: 0px;" title="tao" border="0" alt="tao" src="http://images.cnblogs.com/cnblogs_com/anytao/162192/o_anytao-2010-01.png" width="600" height="180" /></a> </p>
<ul>
<li>朋友、机会还有你我他，给我一个圈子还有支点，我想去撬动点不同。 </li>
<li>为父母、家庭还有社会承担责任，男人就得有点儿男人的样子。 </li>
<li>好好学习，天天向上，多时间看书，多时间思考，多时间锻炼。 </li>
</ul>
<p>&nbsp;</p>
<p>你好，2010，因为不同。</p>
<p>&nbsp;</p>
<p>参考链接：<a href="http://www.cnblogs.com/anytao/archive/2008/12/31/anytao_my_2008.html">我的2008，专注而行</a>、<a href="http://www.cnblogs.com/anytao/archive/2007/12/29/anytao_2007.html">写在2007，行胜于言</a></p>
<p>&nbsp;</p>
<p>更多闲言碎语，关注<a href="http://anytao.net/blog" target="_blank">anytao.net</a></p>
<p>&nbsp;</p>
<div id="MySignature">
<p class="class"><a href="http://i.anytao.com/">anytao</a> | <a class="copyright" href="http://www.anytao.com/">&copy; 2009 Anytao.com</a></p>
<p class="class">2010/01/01 | <a href="http://anytao.cnblogs.com/">http://anytao.cnblogs.com/</a></p>
<p class="class">本文以&ldquo;现状&rdquo;提供且没有任何担保，同时也没有授予任何权利。 | This posting is provided "AS IS" with no warranties, and confers no rights.</p>
<p>本文版权归作者所有，欢迎转载，但未经作者同意必须保留此段声明，且在文章页面明显位置给出原文连接，否则保留追究法律责任的权利。 </p>
</div><img src="http://www.cnblogs.com/anytao/aggbug/1637268.html?type=1" width="1" height="1" alt=""/><p>评论: 37　<a href="http://www.cnblogs.com/anytao/archive/2010/01/01/anytao-wode-2010-for-different.html#pagedcomment" target="_blank">查看评论</a>　<a href="http://www.cnblogs.com/anytao/archive/2010/01/01/anytao-wode-2010-for-different.html#commentform" target="_blank">发表评论</a></p><hr/><p>最新新闻：<br/>· <a href="http://news.cnblogs.com/n/56857/" target="_blank">Facebook与美国在线合作 整合AIM动态功能</a><span style="color:gray">(2010-02-10 16:41)</span><br/>· <a href="http://news.cnblogs.com/n/56855/" target="_blank">NDepend 3.0已与Visual Studio集成</a><span style="color:gray">(2010-02-10 16:17)</span><br/>· <a href="http://news.cnblogs.com/n/56854/" target="_blank">Ruby in Steel 1.5发布，去除IronRuby支持</a><span style="color:gray">(2010-02-10 16:14)</span><br/>· <a href="http://news.cnblogs.com/n/56852/" target="_blank">淘宝网通过索引模式涉足网络文学</a><span style="color:gray">(2010-02-10 15:59)</span><br/>· <a href="http://news.cnblogs.com/n/56851/" target="_blank">苹果发布 iPhone/iPad SDK 3.2 beta2 开发包</a><span style="color:gray">(2010-02-10 15:37)</span><br/></p><p>编辑推荐：<a href="http://news.cnblogs.com/news/tag/Buzz/" target="_blank">Google Buzz相关新闻</a><br/></p><p>网站导航：<a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/" target="_blank">个人主页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/group/" target="_blank">小组</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://kb.cnblogs.com" target="_blank">知识库</a></p>]]></description></item><item><title>[你必须知道的.NET]第三十五回，判断dll是debug还是release，这是个问题</title><link>http://www.cnblogs.com/anytao/archive/2009/12/29/must_net_35.html</link><dc:creator>Anytao</dc:creator><author>Anytao</author><pubDate>Tue, 29 Dec 2009 10:46:00 GMT</pubDate><guid>http://www.cnblogs.com/anytao/archive/2009/12/29/must_net_35.html</guid><description><![CDATA[<p>阅读: 3322 评论: 27 作者: <a href="http://www.cnblogs.com/anytao/" target="_blank">Anytao</a> 发表于 2009-12-29 18:46 <a href="http://www.cnblogs.com/anytao/archive/2009/12/29/must_net_35.html" target="_blank">原文链接</a></p><p><strong><a target="_blank" href="http://anytao.net/">anytao.net</a> | <a href="http://book.anytao.com/"><strong><span style="color: #ff0000;">《你必须知道的.NET》网站</span></strong></a></strong> | <strong><span style="color: #0000ff;"><a href="http://www.anytao.com/">Anytao技术博客</a>&nbsp; </span></strong></p>
<p align="right"><span style="font-family: 微软雅黑;">发布日期：2009.12.29 作者：</span><a href="http://about.anytao.com/"><span style="font-family: 微软雅黑;">Anytao</span></a> <br /><span style="font-family: 微软雅黑; color: #ff0000;">&copy; 2009 </span><a href="http://www.anytao.com/"><span style="font-family: 微软雅黑; color: #ff0000;">Anytao.com</span></a><span style="font-family: 微软雅黑; color: #ff0000;"> ，Anytao原创作品，转贴请注明作者和出处。</span></p>
<blockquote></blockquote>
<h2><strong>问题的提出</strong>&nbsp;</h2>
<p>晚上翻着群里的聊天，发现一个有趣的问题：如何通过编码方式来判断一个dll或者exe为debug build还是release build？由于没有太多的讨论，所以我只好自己找点儿办法，试图解决这个问题，为夜生活带点刺激。于是，便有了本文的探索和分析。</p>
<p>当然，为了充分的调动起大家的主意，省去不必要的google操作，我觉得有必要对Debug和Release两种模式的异同进行一点提纲挈领式的分析，从而为接下来的解决方案打好基础。</p>
<h2>Debug &amp; Release</h2>
<p>我们应用Visual Studio对代码文件进行F5操作（Build）时，实际是发生了一系列语法检查、词法检查和编译过程，通常情况下我们有两种Build模式，这就是常说的Debug Build和Release Build。望文知意，Debug Build模式通常应用于开发时，便于调试反馈；而Release Build则应用于部署时，这是因为Release模式下，编译器做了很多的优化操作（代码冗余、循环优化等），省去了对调试信息的记录。因此，两种Build模式是各不相同的，我们对其二者进行一点总结如下：</p>
<ul>
<li>Debug用于开发时，Release用于部署时。 </li>
<li>Debug模式下，将产生pdb文件，用于保存状态信息和调试信息；Release模式下，不产生调试信息，也没有pdb文件。 </li>
<li>Debug模式下，System.Diagnostics.Debug.Write（或WriteLine）可以向跟踪窗口（Output）输出跟踪信息；而Release模式下，System.Diagnostics.Debug.WriteLine将被忽略。不过，可以考虑System.Diagnostics.Trace.Write，其人缘较好，对Debug和Release左右通吃，都可输出调试信息。 </li>
<li>Debug模式下，#define DEBUG将作为默认预定义常量，参与编译过程；而在Release模式下，该预编译将被省略。例如如果执行： </li>
</ul>
<div class="wp_codebox">
<pre><span style="color: blue;">#if </span>DEBUG

    <span style="color: #2b91af;">Console</span>.WriteLine(<span style="color: #a31515;">"Hi"</span>);

<span style="color: blue;">#endif</span></pre>
</div>
<p>在Debug模式下，Console.WriteLine(&ldquo;Hi&rdquo;)将参与编译，而Release模式下，会忽略该语句的执行。不过，如果你手动添加</p>
<div class="wp_codebox">
<pre><span style="color: blue;">#define </span>DEBUG</pre>
</div>
<p>在两种模式下，都会执行Console.WriteLine(&ldquo;Hi&rdquo;)的编译。究其原因，是Visual Studio在默认情况下预定义了#define DEBUG，我们可以通过开关来设置：</p>
<p><img src="http://images.cnblogs.com/cnblogs_com/anytao/162192/o_anytao-insidenet-33-01.png" /> </p>
<p>关于预编译指令可详查《<a href="http://book.anytao.com/">你必须知道的.NET</a>》的相关章节。 </p>
<h2>解决方案</h2>
<p>既然对Debug Build和Release Build有个基本的了解，那么也由此可以推断我们解决开篇问题的依据。在.NET中以<strong>DebuggableAttribute</strong>来控制CLR如何处理模块代码规则，而属性<strong>IsJITTrackingEnabled</strong>属性来标识运行库在代码生成过程中是否跟踪调试信息的标识，如果IsJITTrackingEnabled为true，表示运行库跟踪调试信息，可推断为Debug Build模式；如果IsJITTrackingEnabled为false，表示运行库没有跟踪调试信息，可推为Release Build模式。所以，解决的方案，最终着眼于对IsJITTrackingEnabled信息的获取上，可想而知，最简单的办法莫过于神兵利器&mdash;&mdash;反射。</p>
<p>那么，我们开始吧。</p>
<h3>构建</h3>
<p>首先我们创建一个AnyContext来承载通用的上下文服务，在这里主要包含的就是：</p>
<div class="wp_codebox">
<div class="wp_codebox">
<pre><span style="color: gray;">/// &lt;summary&gt;
/// </span><span style="color: green;">A common context
</span><span style="color: gray;">/// &lt;/summary&gt;
/// &lt;remarks&gt;
/// </span><span style="color: green;">Anytao, http://www.anytao.com
</span><span style="color: gray;">/// &lt;/remarks&gt;
</span><span style="color: blue;">public class </span><span style="color: #2b91af;">AnyContext </span>: <span style="color: #2b91af;">IAnyObject
</span>{
    <span style="color: blue;">public static </span><span style="color: #2b91af;">DebugMode </span>GetDebugMode(<span style="color: blue;">string </span>assemblyName)
    {     
    }
}
其中，DebugMode是一个简单的枚举：</pre>
</div>
<div class="wp_codebox">
<pre><span style="color: gray;">/// &lt;summary&gt;
/// </span><span style="color: green;">Debug mode type
</span><span style="color: gray;">/// &lt;/summary&gt;
/// &lt;remarks&gt;
/// </span><span style="color: green;">Anytao, http://www.anytao.com
</span><span style="color: gray;">/// &lt;/remarks&gt;
</span><span style="color: blue;">public enum </span><span style="color: #2b91af;">DebugMode
</span>{
    Debug,
    Release
}</pre>
</div>
</div>
<p>可向而知，我们需要实现一个根据Assembly信息获取DebuggrableAttribute的Helper类，既然是Helper类我们希望能够兼顾各种情况，因此通过泛型方法是做好的选择，具体实现如下：</p>
<div class="wp_codebox">
<pre><span style="color: gray;">/// &lt;summary&gt;
/// </span><span style="color: green;">Common helper
</span><span style="color: gray;">/// &lt;/summary&gt;
/// &lt;remarks&gt;
/// </span><span style="color: green;">Anytao, http://www.anytao.com
</span><span style="color: gray;">/// &lt;/remarks&gt;
</span><span style="color: blue;">public static class </span><span style="color: #2b91af;">Utils
</span>{
    <span style="color: gray;">/// &lt;summary&gt;
    /// </span><span style="color: green;">Get GetCustomAttribute
    </span><span style="color: gray;">/// &lt;/summary&gt;
    /// &lt;typeparam name="T"&gt;</span><span style="color: green;">CustomAttribute Type</span><span style="color: gray;">&lt;/typeparam&gt;
    /// &lt;param name="provider"&gt;&lt;/param&gt;
    /// &lt;returns&gt;&lt;/returns&gt;
    </span><span style="color: blue;">public static </span>T GetCustomAttribute&lt;T&gt;(<span style="color: blue;">this </span><span style="color: #2b91af;">ICustomAttributeProvider </span>provider)
        <span style="color: blue;">where </span>T : <span style="color: #2b91af;">Attribute
    </span>{
        <span style="color: blue;">var </span>attributes = provider.GetCustomAttributes(<span style="color: blue;">typeof</span>(T), <span style="color: blue;">false</span>);

        <span style="color: blue;">return </span>attributes.Length &gt; <span style="color: brown;">0 </span>? attributes[<span style="color: brown;">0</span>] <span style="color: blue;">as </span>T : <span style="color: blue;">default</span>(T);
    }
}</pre>
</div>
<p>此处的GetCustomAttribute被实现为扩展方法，那么任何实现了ICustomAttributeProvider接口的类型，都可以通过其获取CustomAttribute了，例如：Type、Assembly、Module、MethodInfo，都可以实现对GetCustomAttribute的调用。</p>
<p>接下来，GetDebugMode的逻辑就变得很简单，我们传入assembly路径即可获取DebuggrableAttribute，并由此推导IsJITTrackingEnabled的情况：</p>
<div class="wp_codebox">
<pre><span style="color: blue;">public static </span><span style="color: #2b91af;">DebugMode </span>GetDebugMode(<span style="color: blue;">string </span>assemblyName)
{
    <span style="color: blue;">if </span>(<span style="color: blue;">string</span>.IsNullOrEmpty(assemblyName))
    {
        <span style="color: blue;">throw new </span><span style="color: #2b91af;">ArgumentNullException</span>(<span style="color: #a31515;">"assemblyName"</span>);
    }

    <span style="color: #2b91af;">DebugMode </span>ret = <span style="color: #2b91af;">DebugMode</span>.Debug;

    <span style="color: blue;">try
    </span>{
        <span style="color: green;">// Get assebly by name
        </span><span style="color: #2b91af;">Assembly </span>ass = <span style="color: #2b91af;">Assembly</span>.LoadFile(assemblyName);

        <span style="color: green;">// Get DebuggableAttribute info
        </span><span style="color: #2b91af;">DebuggableAttribute </span>att = ass.GetCustomAttribute&lt;<span style="color: #2b91af;">DebuggableAttribute</span>&gt;();

        ret = att.IsJITTrackingEnabled ? <span style="color: #2b91af;">DebugMode</span>.Debug : <span style="color: #2b91af;">DebugMode</span>.Release;
<span style="color: green;">    </span>}
    <span style="color: blue;">catch </span>(<span style="color: #2b91af;">Exception</span>)
    {
        <span style="color: blue;">throw</span>;
    }

    <span style="color: blue;">return </span>ret;
}
好了，这就是一个简单的判断逻辑，在AnyContext中包含了很多诸如此类的上下文定义，而GetDebugMode提供了本文开头的解决方案。</pre>
</div>
<h3>测试</h3>
<ul>
<li>新建两个project，并分别以Debug模式和Release模式编译，生成对应的exe（或dll）： 
<ul>
<li>debugass.exe </li>
<li>releaseass.exe </li>
</ul>
</li>
<li>新建TestProject，并对GetDebugMode进行测试如下： </li>
</ul>
<div class="wp_codebox">
<pre>[<span style="color: #2b91af;">TestClass</span>]
<span style="color: blue;">public class </span><span style="color: #2b91af;">AnyContextTest
</span>{
    [<span style="color: #2b91af;">TestMethod</span>]
    <span style="color: blue;">public void </span>TestIsDebugOrRelease()
    {
        <span style="color: green;">// Arrange
        </span><span style="color: blue;">string </span>ass1 = <span style="color: #a31515;">@"D:\debugass.exe"</span>;
        <span style="color: blue;">string </span>ass2 = <span style="color: #a31515;">@"D:\releaseass.exe"</span>;

        <span style="color: green;">// Act 
        </span><span style="color: blue;">string </span>mode1 = <span style="color: #2b91af;">AnyContext</span>.GetDebugMode(ass1).ToString();
        <span style="color: blue;">string </span>mode2 = <span style="color: #2b91af;">AnyContext</span>.GetDebugMode(ass2).ToString();

        <span style="color: green;">// Asset
        </span><span style="color: #2b91af;">Assert</span>.AreEqual(mode1, <span style="color: #a31515;">"Debug"</span>);
        <span style="color: #2b91af;">Assert</span>.AreEqual(mode2, <span style="color: #a31515;">"Release"</span>);
    }
}</pre>
</div>
<p>一切OK，你不妨试试。 </p>
<p>&nbsp;</p>
<p><span style="color: #ff0000;">注：本测试在.NET 2.0及其以上版本测试通过，如您有更多精力，可对其以下版本进行分析。</span></p>
<p>&nbsp;</p>
<p>参考文献：</p>
<ul>
<li><a href="http://www.cnblogs.com/anytao/admin/ms-help:/MS.MSDNQTR.v90.chs/fxref_mscorlib/html/9f109812-3c14-dcb2-9aff-e18e20dc33ff.htm" title="ms-help://MS.MSDNQTR.v90.chs/fxref_mscorlib/html/9f109812-3c14-dcb2-9aff-e18e20dc33ff.htm">ms-help://MS.MSDNQTR.v90.chs/fxref_mscorlib/html/9f109812-3c14-dcb2-9aff-e18e20dc33ff.htm</a> </li>
<li><a href="http://blogs.msdn.com/jb/archive/2006/06/14/631469.aspx">http://blogs.msdn.com/jb/archive/2006/06/14/631469.aspx</a>&nbsp;&nbsp;</li>
</ul>
<p>&nbsp;</p>
<div class="wp_codebox">
<pre>更多精彩，尽在<a target="_blank" href="http://anytao.net/blog">anytao.net</a></pre>
</div>
<p>&nbsp;</p>
<div id="MySignature">
<p class="class"><a href="http://i.anytao.com/">anytao</a> | <a href="http://www.anytao.com/" class="copyright">&copy; 2009 Anytao.com</a></p>
<p class="class">2009/12/29 | <a href="http://anytao.net">http://anytao.net</a> | <a href="http://anytao.net/blog/post/2009/12/29/anytao-insidenet-35-is-debug-or-release-in-runtime.aspx">http://anytao.net/blog/post/2009/12/29/anytao-insidenet-35-is-debug-or-release-in-runtime.aspx</a></p>
<p class="class">本文以&ldquo;现状&rdquo;提供且没有任何担保，同时也没有授予任何权利。本文版权归作者所有，欢迎转载，但未经作者同意必须保留此段声明，且在文章页面明显位置给出原文连接，否则保留追究法律责任的权利。</p>
</div><img src="http://www.cnblogs.com/anytao/aggbug/1635327.html?type=1" width="1" height="1" alt=""/><p>评论: 27　<a href="http://www.cnblogs.com/anytao/archive/2009/12/29/must_net_35.html#pagedcomment" target="_blank">查看评论</a>　<a href="http://www.cnblogs.com/anytao/archive/2009/12/29/must_net_35.html#commentform" target="_blank">发表评论</a></p><hr/><p>最新新闻：<br/>· <a href="http://news.cnblogs.com/n/56857/" target="_blank">Facebook与美国在线合作 整合AIM动态功能</a><span style="color:gray">(2010-02-10 16:41)</span><br/>· <a href="http://news.cnblogs.com/n/56855/" target="_blank">NDepend 3.0已与Visual Studio集成</a><span style="color:gray">(2010-02-10 16:17)</span><br/>· <a href="http://news.cnblogs.com/n/56854/" target="_blank">Ruby in Steel 1.5发布，去除IronRuby支持</a><span style="color:gray">(2010-02-10 16:14)</span><br/>· <a href="http://news.cnblogs.com/n/56852/" target="_blank">淘宝网通过索引模式涉足网络文学</a><span style="color:gray">(2010-02-10 15:59)</span><br/>· <a href="http://news.cnblogs.com/n/56851/" target="_blank">苹果发布 iPhone/iPad SDK 3.2 beta2 开发包</a><span style="color:gray">(2010-02-10 15:37)</span><br/></p><p>编辑推荐：<a href="http://news.cnblogs.com/news/tag/Buzz/" target="_blank">Google Buzz相关新闻</a><br/></p><p>网站导航：<a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/" target="_blank">个人主页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/group/" target="_blank">小组</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://kb.cnblogs.com" target="_blank">知识库</a></p>]]></description></item><item><title>[关注]日益火爆的Social media</title><link>http://www.cnblogs.com/anytao/archive/2009/12/24/anytao-focus-wave-your-life.html</link><dc:creator>Anytao</dc:creator><author>Anytao</author><pubDate>Thu, 24 Dec 2009 09:19:00 GMT</pubDate><guid>http://www.cnblogs.com/anytao/archive/2009/12/24/anytao-focus-wave-your-life.html</guid><description><![CDATA[<p>阅读: 1743 评论: 12 作者: <a href="http://www.cnblogs.com/anytao/" target="_blank">Anytao</a> 发表于 2009-12-24 17:19 <a href="http://www.cnblogs.com/anytao/archive/2009/12/24/anytao-focus-wave-your-life.html" target="_blank">原文链接</a></p><p>"Social Media" 是近两年来很火的一个概念，被翻译成"社会化媒体"或"社交媒体"。它的出现是与互联网进入Web2.0阶段后的重要应用SNS（Social Network Service，意为社会性网络服务或社会化网络服务）密切相关的。网络社会化媒体能够给与用户极大的参与空间，不仅能够满足网民个人基础资料存放的需求，更重要的是能够满足用户"被人发现"和"受到崇拜"的心理感受需求，能够满足用户"关系建立"和"发挥影响"的需求。从宏观的角度看，具体的形态包括博客及微博客（如国外的Twitter等；国内的饭否网等）、维基（如国外的Wiki等；国内的互动百科、百度百科等）、图片分享（如国外的Flickr等）播客及视频分享（如国外YouTube等、国内的土豆网、优酷网等）、论坛（如国内的天涯、凯迪等）、社交网络（国外的MySpace、Facebook 等；国内的开心网、校内网等），网络社区（如国内的猫扑等），当然还包括时下非常火爆的及众家所长于一身的google wave等等。</p>
<p><br />年轻一代是互联网使用群体中的主力军，他们也是任何网上新应用的弄潮儿，尤其是80后，90后，每天花大把大把的时间用在偷菜，买卖奴隶，在wave上讨论各种话题，浏览视频，在天涯，猫扑上看热闹和在face book，校内网交朋友上。 </p>
<p>随着web 2.0迅速的蔓延趋势，social media从一个空泛的概念变成人们生活中的一部分。Google Wave就是其中的主力队员。 </p>
<p>作为技术人员，由于Ethos在Wave刚兴起时就鼓励大家多多试用，我也跟随潮流加入了Wave的大军。试用了几天以后，Wave就在很大程度上颠覆了我们以往在工作中的沟通方式。</p>
<p><br />在没有Wave时，无论是和客户沟通还是公司内部的沟通，我们大多用MSN，Skype，Email和Confluence。这些工具可以让沟通很便捷。但Wave带来的并不仅仅是便捷，而是变革。 <br />使用Wave以后，不再像往常一样等待对方检查自己的Email了，也不用猜测对方什么时候不在电脑前，什么时候才会回来了。使用Google Wave还可以进行线上有条理的讨论。打开你的Wave，加粗的字体显示的不仅仅是新的邮件或新的Wave，还有已有的讨论中的更新内容。打开Wave，还可以看到一个讨论从起始状态如何演化成现在的状态，每个人贡献的内容，从而能够方便的总结出各种观点，结论。</p>
<p><br />然而，Google Wave的意义并不仅仅是超越Email，它集成了IM、Email、协同文档的功能。人类的交流方式可以分成三类：聊天式，比如打电话、发短信、IM；信件式，包括Email和传统邮件；文档式，比如一份方案、一篇文章、一本专著。Google Wave将这三种沟通方式合三为一，并将它们完全取代。&ldquo;未来世代的用户，可能只知道Wave，而不知何谓IM，何谓Mail。&rdquo; <br />在使用Wave的过程中，人们的行为方式也会发现变化。这不仅限于Wave，更可以延伸至整个Social Media给人们的交流方式带来的改变。 <br />在使用social media进行沟通时，Email的使用已经大大降低。Email的作用通常只是发送一些内部及外部的链接，而不打乱我们的讨论；或是邀请一些同事，合作伙伴加入一个实时的探讨。要更好的使用social media，必须要把工作的重心，把重要的信息都放进来，这样才能让它从空泛的概念变成实实在在的沟通工具。</p>
<p><br />Social media的沟通方式和传统的沟通方式如此不同。我们必须针对各自的网络制定相应的交流规则。每一个公司都有自己的不同的交流传统。所以，在刚开始使用social media工具时，一些练习是必需的。在Ethos，Wave被熟练使用以前，每一个组都进行了相应的练习，并且慢慢摸索适合我们自己的节奏和方法。 <br />由于Wave以及其他social media工具会激发人们的讨论欲望，每个讨论会有进行到无休止的危险,所以为每一个讨论设定一个截止日期是非常必要的。尤其在利用Wave进行讨论时，由于它的便捷，随时有idea可以随时更新。虽然头脑风暴要求有创造力，但是一定要有一个底线，否则会影响整个团队的节奏和效率。</p>
<p><br />&nbsp;&nbsp;&nbsp; Social media也会打乱人们原有的工作节奏。以前我们最习惯的工作方式可能是每天早上来到公司，检查自己的Email，打开MSN和Skype，看有没有重要的留言需要处理。而有了这些实时都有可能有人更新的社交媒体，传统的方式又一次要让路了。从每天早上查一次邮件，到现在的每天几次主动查看讨论更新，又是一次比较大的改变。 </p>
<p>最后，也是最重要的，在新一代沟通方式中，尤其是在外部开放式的网络中，每一个发言的人都要做好心理准备，因为随时都有可能有人发表一条简短的，粗鲁的回复。回复的人可能是很直接的人，想到哪说到哪，就发表了。这种情况在social media上面是很常见的，我觉得它可能被称作实时沟通的副产品。遇到这种情况可能会感觉很不爽。但是冷静下来想想，回复的人绝没有冒犯的意思。对他的回复静想一会 儿，给出一个有条理的回答，试着理解回复背后的真正观点。一个人回复的文字可能比他真正的观点看起来糟糕得多。跃过这些文字才能进行真正的交流。 </p>
<p><span style="color: #ff0000; font-size: xx-small;">备注：此文系公司技术讨论的小结，在征得同意的情况下，我想借此分享关于Wave的一点感受，对于改善Social work而言，Wave值得期待。。</span></p>
<p>&nbsp;</p>
<p><span style="color: #c0c0c0; font-size: xx-small;">本文部分观点参考了Markku Sil&eacute;n的文章。（Markku Sil&eacute;n, 在咨询，技术解决方案和系统集成方面有超过25年的经验。他最强的成就是在全球环境下的商业创新。曾任艾森哲北欧CEO，现拥有自己的公司 Winnovation并任CEO，同时出任宇思信德科技（北京）有限公司独立董事。）</span></p><img src="http://www.cnblogs.com/anytao/aggbug/1631577.html?type=1" width="1" height="1" alt=""/><p>评论: 12　<a href="http://www.cnblogs.com/anytao/archive/2009/12/24/anytao-focus-wave-your-life.html#pagedcomment" target="_blank">查看评论</a>　<a href="http://www.cnblogs.com/anytao/archive/2009/12/24/anytao-focus-wave-your-life.html#commentform" target="_blank">发表评论</a></p><hr/><p>最新新闻：<br/>· <a href="http://news.cnblogs.com/n/56857/" target="_blank">Facebook与美国在线合作 整合AIM动态功能</a><span style="color:gray">(2010-02-10 16:41)</span><br/>· <a href="http://news.cnblogs.com/n/56855/" target="_blank">NDepend 3.0已与Visual Studio集成</a><span style="color:gray">(2010-02-10 16:17)</span><br/>· <a href="http://news.cnblogs.com/n/56854/" target="_blank">Ruby in Steel 1.5发布，去除IronRuby支持</a><span style="color:gray">(2010-02-10 16:14)</span><br/>· <a href="http://news.cnblogs.com/n/56852/" target="_blank">淘宝网通过索引模式涉足网络文学</a><span style="color:gray">(2010-02-10 15:59)</span><br/>· <a href="http://news.cnblogs.com/n/56851/" target="_blank">苹果发布 iPhone/iPad SDK 3.2 beta2 开发包</a><span style="color:gray">(2010-02-10 15:37)</span><br/></p><p>编辑推荐：<a href="http://news.cnblogs.com/news/tag/Buzz/" target="_blank">Google Buzz相关新闻</a><br/></p><p>网站导航：<a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/" target="_blank">个人主页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/group/" target="_blank">小组</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://kb.cnblogs.com" target="_blank">知识库</a></p>]]></description></item><item><title>[开发故事]第五回，用想要的域名运行你的本地Web应用</title><link>http://www.cnblogs.com/anytao/archive/2009/11/27/anytao-devstory-12-running-your-app-with-your-domain.html</link><dc:creator>Anytao</dc:creator><author>Anytao</author><pubDate>Thu, 26 Nov 2009 16:15:00 GMT</pubDate><guid>http://www.cnblogs.com/anytao/archive/2009/11/27/anytao-devstory-12-running-your-app-with-your-domain.html</guid><description><![CDATA[<p>阅读: 1184 评论: 8 作者: <a href="http://www.cnblogs.com/anytao/" target="_blank">Anytao</a> 发表于 2009-11-27 00:15 <a href="http://www.cnblogs.com/anytao/archive/2009/11/27/anytao-devstory-12-running-your-app-with-your-domain.html" target="_blank">原文链接</a></p><p><strong><a target="_blank" href="http://anytao.net/">anytao.net</a> | <a href="http://book.anytao.com/"><strong><span style="color: #ff0000;">《你必须知道的.NET》网站</span></strong></a></strong> | <strong><span style="color: #0000ff;"><a href="http://www.anytao.com/">Anytao技术博客</a>&nbsp; </span></strong></p>
<p align="right"><span style="font-family: 微软雅黑;">发布日期：2009.11.27 作者：</span><a href="http://about.anytao.com/"><span style="font-family: 微软雅黑;">Anytao</span></a> <br /><span style="font-family: 微软雅黑; color: #ff0000;">&copy; 2009 </span><a href="http://www.anytao.com/"><span style="font-family: 微软雅黑; color: #ff0000;">Anytao.com</span></a><span style="font-family: 微软雅黑; color: #ff0000;"> ，Anytao原创作品，转贴请注明作者和出处。</span></p>
<p>&nbsp;</p>
<p>作为Web开发者，在本地部署应用，我们都对localhost有无限的熟悉，也有无限的无奈。不管什么情况下，不同的应用都被冠以localhost:XXXX的地址，好像有性格的Web应该，都只有张三、李四这样的称呼。很多情况下，我们可能想有更个性的url来代表不同的应用，那么没有域名或者不想劳神DNS解析的情况下，让部署于本地的应该，有一个好听的url是不错的想法。那么，我们就不妨来试试。</p>
<p>主要的工作包括两个基本的简单步骤：</p>
<ul>
<li>配置本机Host </li>
<li>在IIS中配置WebSite </li>
</ul>
<h2>配置本机的Host服务</h2>
<p>默认情况下，Host文件位于%systemroot%\system32\drivers\etc\ 目录下， 并且只能以管理员身份进行编辑。以&ldquo;<b>Run as Administrator</b>&ldquo;打开&ldquo;<b>Notepad</b>&ldquo;，并到指定的目录打开Host文件，如下：</p>
<p># Copyright (c) 1993-2009 Microsoft Corp.</p>
<p>#</p>
<p># This is a sample HOSTS file used by Microsoft TCP/IP for Windows.</p>
<p>#</p>
<p># This file contains the mappings of IP addresses to host names. Each</p>
<p># entry should be kept on an individual line. The IP address should</p>
<p># be placed in the first column followed by the corresponding host name.</p>
<p># The IP address and the host name should be separated by at least one</p>
<p># space.</p>
<p>#</p>
<p># Additionally, comments (such as these) may be inserted on individual</p>
<p># lines or following the machine name denoted by a '#' symbol.</p>
<p>#</p>
<p># For example:</p>
<p>#</p>
<p>#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 102.54.94.97&nbsp;&nbsp;&nbsp;&nbsp; rhino.acme.com&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # source server</p>
<p>#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 38.25.63.10&nbsp;&nbsp;&nbsp;&nbsp; x.acme.com&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # x client host</p>
<p># localhost name resolution is handled within DNS itself.</p>
<p>#&nbsp;&nbsp;&nbsp;&nbsp; 127.0.0.1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; localhost</p>
<p>#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ::1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; localhost</p>
<p><span style="color: #ff0000;">特别提醒，在修改Host文件前，最好对原文件进行一下备份。</span></p>
<p>然后我们就可以配置想要的域名，例如：</p>
<p>#&nbsp;&nbsp;&nbsp;&nbsp; 127.0.0.1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; localhost</p>
<p>#&nbsp;&nbsp;&nbsp;&nbsp; ::1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; localhost</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 127.0.0.1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dev.anytao.net</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 127.0.0.2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; prj.anytao.net</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 127.0.0.3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lab.anytao.net</p>
<p>上述配置都是有效的，这就意味着在本机环境下，通过lab.anytao.net就可以访问127.0.0.3的IP地址，通过localhost或者dev.anytao.net均可访问127.0.0.1地址，不过通常情况下，127.0.0.1被默认为localhost，所以，我们应该尽量避免这种配置。</p>
<h2>在IIS中配置你的WebSite</h2>
<p>有了可用的域名，那么剩下的工作就比较熟悉了。我们仅仅简单的回忆一下，通常在本机进行应用部署时，我们在添加应用时通过设置不同的端口来区分不同的应该，例如：</p>
<ul>
<li><a href="http://localhost:1234/">http://localhost:1234/</a> </li>
<li><a href="http://localhost:5678/">http://localhost:5678/</a> </li>
</ul>
<p>现在，一切变得很简单，你只需要在IP绑定时指定你在Host中配置的IP即可。例如如果我想发布关于lab.anytao.net的应用，那么我就可以像这样来进行配置：</p>
<p><img src="http://docs.google.com/File?id=dhb9s74s_122n2mq39c9_b" /></p>
<p>好了，下面在浏览器中键入lab.anytao.net，就可以打开本地部署的应用，以前的127.0.0.1或者localhost消失了，看着anytao.net，感觉是件惬意的事儿。小小的技巧可以带来很多收获，在开发阶段通过配置host，就可以直接应该你的项目域名来访问本地site了，着简直是太好了。</p>
<p>&nbsp;</p>
<p>其实，这一切都很简单，雕虫小技而已，不过，让美丽的代码披上漂亮的外衣，在浏览器的地址上飞舞，不是更好吗？</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>更多闲言碎语，关注<a target="_blank" href="http://anytao.net/blog">anytao.net</a></p>
<p>&nbsp;</p>
<div id="MySignature">
<p class="class"><a href="http://i.anytao.com/">anytao</a> | <a href="http://www.anytao.com/" class="copyright">&copy; 2009 Anytao.com</a></p>
<p class="class">2009/11/27 | <a href="http://anytao.cnblogs.com/">http://anytao.cnblogs.com/</a>&nbsp;| <a href="http://anytao.net/blog/post/2009/11/26/anytao-devstory-12-running-your-app-with-your-domain.aspx">http://anytao.net/blog/post/2009/11/26/anytao-devstory-12-running-your-app-with-your-domain.aspx</a></p>
<p class="class">本文以&ldquo;现状&rdquo;提供且没有任何担保，同时也没有授予任何权利。 | This posting is provided "AS IS" with no warranties, and confers no rights.</p>
<p>本文版权归作者所有，欢迎转载，但未经作者同意必须保留此段声明，且在文章页面明显位置给出原文连接，否则保留追究法律责任的权利。 </p>
</div><img src="http://www.cnblogs.com/anytao/aggbug/1611700.html?type=1" width="1" height="1" alt=""/><p>评论: 8　<a href="http://www.cnblogs.com/anytao/archive/2009/11/27/anytao-devstory-12-running-your-app-with-your-domain.html#pagedcomment" target="_blank">查看评论</a>　<a href="http://www.cnblogs.com/anytao/archive/2009/11/27/anytao-devstory-12-running-your-app-with-your-domain.html#commentform" target="_blank">发表评论</a></p><hr/><p>最新新闻：<br/>· <a href="http://news.cnblogs.com/n/56857/" target="_blank">Facebook与美国在线合作 整合AIM动态功能</a><span style="color:gray">(2010-02-10 16:41)</span><br/>· <a href="http://news.cnblogs.com/n/56855/" target="_blank">NDepend 3.0已与Visual Studio集成</a><span style="color:gray">(2010-02-10 16:17)</span><br/>· <a href="http://news.cnblogs.com/n/56854/" target="_blank">Ruby in Steel 1.5发布，去除IronRuby支持</a><span style="color:gray">(2010-02-10 16:14)</span><br/>· <a href="http://news.cnblogs.com/n/56852/" target="_blank">淘宝网通过索引模式涉足网络文学</a><span style="color:gray">(2010-02-10 15:59)</span><br/>· <a href="http://news.cnblogs.com/n/56851/" target="_blank">苹果发布 iPhone/iPad SDK 3.2 beta2 开发包</a><span style="color:gray">(2010-02-10 15:37)</span><br/></p><p>编辑推荐：<a href="http://news.cnblogs.com/news/tag/Buzz/" target="_blank">Google Buzz相关新闻</a><br/></p><p>网站导航：<a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/" target="_blank">个人主页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/group/" target="_blank">小组</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://kb.cnblogs.com" target="_blank">知识库</a></p>]]></description></item><item><title>[你必须知道的.NET]第三十四回，object成员，不见了！</title><link>http://www.cnblogs.com/anytao/archive/2009/10/30/must_net_34.html</link><dc:creator>Anytao</dc:creator><author>Anytao</author><pubDate>Thu, 29 Oct 2009 16:47:00 GMT</pubDate><guid>http://www.cnblogs.com/anytao/archive/2009/10/30/must_net_34.html</guid><description><![CDATA[<p>阅读: 4256 评论: 65 作者: <a href="http://www.cnblogs.com/anytao/" target="_blank">Anytao</a> 发表于 2009-10-30 00:47 <a href="http://www.cnblogs.com/anytao/archive/2009/10/30/must_net_34.html" target="_blank">原文链接</a></p><p><strong><a target="_blank" href="http://anytao.net/">anytao.net</a> | <a href="http://book.anytao.com/"><strong><span style="color: #ff0000;">《你必须知道的.NET》网站</span></strong></a></strong> | <strong><span style="color: #0000ff;"><a href="http://www.anytao.com/">Anytao技术博客</a>&nbsp; </span></strong></p>
<p align="right"><span style="font-family: 微软雅黑;">发布日期：2009.10.30 作者：</span><a href="http://about.anytao.com/"><span style="font-family: 微软雅黑;">Anytao</span></a> <br /><span style="font-family: 微软雅黑; color: #ff0000;">&copy; 2009 </span><a href="http://www.anytao.com/"><span style="font-family: 微软雅黑; color: #ff0000;">Anytao.com</span></a><span style="font-family: 微软雅黑; color: #ff0000;"> ，Anytao原创作品，转贴请注明作者和出处。</span></p>
<p>&nbsp;</p>
<p>在.NET世界了，object是公认的造物主，其麾下的7大成员，个顶个的横行在任何系统的任何代码角落。</p>
<div class="wp_codebox">
<pre><span style="color: blue">public class </span><span style="color: #2b91af">Object
</span>{
    <span style="color: blue">public </span>Object();
<span style="color: green">    </span><span style="color: blue">public virtual bool </span>Equals(<span style="color: blue">object </span>obj);
<span style="color: green">    </span><span style="color: blue">public static bool </span>Equals(<span style="color: blue">object </span>objA, <span style="color: blue">object </span>objB);
<span style="color: green">    </span><span style="color: blue">public virtual int </span>GetHashCode();
<span style="color: green">    </span><span style="color: blue">public </span><span style="color: #2b91af">Type </span>GetType();
<span style="color: green">    </span><span style="color: blue">protected object </span>MemberwiseClone();
    <span style="color: blue">public static bool </span>ReferenceEquals(<span style="color: blue">object </span>objA, <span style="color: blue">object </span>objB);
<span style="color: green">    </span><span style="color: blue">public virtual string </span>ToString();
}</pre>
</div>
<p>关于object的故事，有很多很多。而今天的故事则着眼于&ldquo;为熟悉的朋友做点儿不熟悉的事儿&rdquo;。相信吗？我的Object成员不见了，不信你可以欣赏一下消失了的object成员。</p>
<p><a href="http://www.cnblogs.com/anytao/admin/$o_anytao-insidenet-34-01[1][3].png"><img height="151" width="429" src="http://images.cnblogs.com/cnblogs_com/anytao/162192/o_anytao-insidenet-34-01.png" alt="o_anytao-insidenet-34-01[1]" border="0" title="o_anytao-insidenet-34-01[1]" style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" /></a> </p>
<p>哈哈！清新多了吧，比起下面常见的编码方式：</p>
<p><a href="http://www.cnblogs.com/anytao/admin/$o_anytao-insidenet-34-02[1][3].png"><img height="211" width="496" src="http://images.cnblogs.com/cnblogs_com/anytao/162192/o_anytao-insidenet-34-02.png" alt="o_anytao-insidenet-34-02[1]" border="0" title="o_anytao-insidenet-34-02[1]" style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" /></a> </p>
<p>是不是让人不知所挫。大概说来，任何时候，在长长的成员方法列表中，你总能看到他们的身影，谁让object是万物的基类呢？不过，有些时候，我可能希望眼根清净，屏蔽掉不会使用的父类成员，使得方法调用变得更加简洁，就像上面的IObject成员一样。</p>
<p>那么这一切是如何做到的呢？虽然我是一个诚实的人，但是其实这是一次赤裸裸的欺骗，而行骗的家伙就是将要闪亮登场的： </p>
<div class="wp_codebox">
<pre><span style="color: blue">namespace </span>System.ComponentModel
{
<span style="color: green">    </span>[<span style="color: #2b91af">AttributeUsage</span>(<span style="color: #2b91af">AttributeTargets</span>.Class | <span style="color: #2b91af">AttributeTargets</span>.Struct | <span style="color: #2b91af">AttributeTargets</span>.Enum | <span style="color: #2b91af">AttributeTargets</span>.Constructor | <span style="color: #2b91af">AttributeTargets</span>.Method | <span style="color: #2b91af">AttributeTargets</span>.Property | <span style="color: #2b91af">AttributeTargets</span>.Field | <span style="color: #2b91af">AttributeTargets</span>.Event | <span style="color: #2b91af">AttributeTargets</span>.Interface | <span style="color: #2b91af">AttributeTargets</span>.Delegate)]
    <span style="color: blue">public sealed class </span><span style="color: #2b91af">EditorBrowsableAttribute </span>: <span style="color: #2b91af">Attribute
    </span>{
    }
}</pre>
</div>
<p>是的，正是System.CompentModel.EditorBrowsableAttriute。以上例而言，我其实为AnyObject类实现了下面的编码：</p>
<div class="wp_codebox">
<pre><span style="color: blue">public interface </span><span style="color: #2b91af">IObject </span>: <span style="color: #2b91af">IAnyObject
</span>{
    <span style="color: blue">void </span>About();
}</pre>
</div>
<p>&nbsp;</p>
<div class="wp_codebox">
<pre><span style="color: blue">public class </span><span style="color: #2b91af">AnyObject </span>: <span style="color: #2b91af">IObject
</span>{
    <span style="color: blue">public void </span>About()
    {
    }
}</pre>
</div>
<p>其中的核心在于IAnyObject的定义：</p>
<div class="wp_codebox">
<div class="wp_codebox">
<pre><span style="color: blue">namespace </span>Anytao.Core.Common
{
    <span style="color: gray">/// &lt;summary&gt;
    /// </span><span style="color: green">A common interface for any object
    </span><span style="color: gray">/// &lt;/summary&gt;
</span><span style="color: gray">    </span>[<span style="color: #2b91af">EditorBrowsable</span>(<span style="color: #2b91af">EditorBrowsableState</span>.Never)]
    <span style="color: blue">public interface </span><span style="color: #2b91af">IAnyObject
    </span>{
        [<span style="color: #2b91af">EditorBrowsable</span>(<span style="color: #2b91af">EditorBrowsableState</span>.Never)]
        <span style="color: blue">bool </span>Equals(<span style="color: blue">object </span>obj);

        [<span style="color: #2b91af">EditorBrowsable</span>(<span style="color: #2b91af">EditorBrowsableState</span>.Never)]
        <span style="color: blue">int </span>GetHashCode();

        [<span style="color: #2b91af">EditorBrowsable</span>(<span style="color: #2b91af">EditorBrowsableState</span>.Never)]
        <span style="color: #2b91af">Type </span>GetType();

        [<span style="color: #2b91af">EditorBrowsable</span>(<span style="color: #2b91af">EditorBrowsableState</span>.Never)]
        <span style="color: blue">string </span>ToString();
    }
}</pre>
</div>
</div>
<p>在通常的情况下，我的Anytao.Core.Common基础组件中都提供一个通用的IAnyObject接口，该接口的作用就是将object成员魔术般的隐藏掉，就如同本文开始的IObject一样。</p>
<div class="wp_codebox">所以，我们回到System.CompentModel.EditorBrowsableAttriute特性，就可以了解到其作用就是：标识一个类或者属性在编辑器中的可见性。</div>
<div class="wp_codebox">那么，难道他们真的消失了吗？继续应用一开始的代码：</div>
<div class="wp_codebox">
<pre><span style="color: blue">class </span><span style="color: #2b91af">Program
</span>{
    <span style="color: blue">static void </span>Main(<span style="color: blue">string</span>[] args)
    {
        <span style="color: #2b91af">IObject </span>obj = <span style="color: blue">new </span><span style="color: #2b91af">AnyObject</span>();

        <span style="color: #2b91af">Console</span>.WriteLine(obj.ToString());
    }
}</pre>
</div>
<p>我们发现虽然ToString对obj是不可见的，但是运行时调用仍然没有问题，所以，总体说来System.ComponentModel.EditorBrowsableAttribute只是一个障眼法，在此实现了对Visual Studio智能感知的控制。其中<span style="color: #2b91af">EditorBrowsableState</span>选项主要包括了： </p>
<ul>
<li>Advanced，针对高级成员的选项设置，同样的方式可以应用Visual Studio的Options-&gt;Text Editor-&gt;C#-&gt;General的Hide advanced members设置。 </li>
<li>Always，总是可见。 </li>
<li>Never，总是不可见。 </li>
</ul>
<p>注意：在Visual C#中，EditorBrowsableAttribute并不对同一程序集的成员有效。</p>
<p>&nbsp;</p>
<p>还等什么？也去试试吧？另外关于编辑器，还有很多好玩的特性值得挖掘，贵在发现的力量。</p>
<p>&nbsp;</p>
<h3>参考文献</h3>
<ul>
<li>Show Advanced Members in Visual Studio，<a href="http://www.blackwasp.co.uk/ShowAdvancedMembers.aspx">http://www.blackwasp.co.uk/ShowAdvancedMembers.aspx</a>&nbsp; </li>
</ul>
<p>&nbsp;</p>
<p>更多闲言碎语，关注<a target="_blank" href="http://anytao.net/blog">anytao.net</a></p>
<p>&nbsp;</p>
<div id="MySignature">
<p class="class"><a href="http://i.anytao.com/">anytao</a> | <a href="http://www.anytao.com/" class="copyright">&copy; 2009 Anytao.com</a></p>
<p class="class">2009/10/30 | <a href="http://anytao.cnblogs.com/">http://anytao.cnblogs.com/</a> | <a href="http://www.anytao.net/blog/post/2009/10/29/anytao-insidenet-34-object-members-hide.aspx">http://www.anytao.net/blog/post/2009/10/29/anytao-insidenet-34-object-members-hide.aspx</a></p>
<p class="class">本文以&ldquo;现状&rdquo;提供且没有任何担保，同时也没有授予任何权利。 | This posting is provided "AS IS" with no warranties, and confers no rights.</p>
<p>本文版权归作者所有，欢迎转载，但未经作者同意必须保留此段声明，且在文章页面明显位置给出原文连接，否则保留追究法律责任的权利。 </p>
</div><img src="http://www.cnblogs.com/anytao/aggbug/1592676.html?type=1" width="1" height="1" alt=""/><p>评论: 65　<a href="http://www.cnblogs.com/anytao/archive/2009/10/30/must_net_34.html#pagedcomment" target="_blank">查看评论</a>　<a href="http://www.cnblogs.com/anytao/archive/2009/10/30/must_net_34.html#commentform" target="_blank">发表评论</a></p><hr/><p>最新新闻：<br/>· <a href="http://news.cnblogs.com/n/56857/" target="_blank">Facebook与美国在线合作 整合AIM动态功能</a><span style="color:gray">(2010-02-10 16:41)</span><br/>· <a href="http://news.cnblogs.com/n/56855/" target="_blank">NDepend 3.0已与Visual Studio集成</a><span style="color:gray">(2010-02-10 16:17)</span><br/>· <a href="http://news.cnblogs.com/n/56854/" target="_blank">Ruby in Steel 1.5发布，去除IronRuby支持</a><span style="color:gray">(2010-02-10 16:14)</span><br/>· <a href="http://news.cnblogs.com/n/56852/" target="_blank">淘宝网通过索引模式涉足网络文学</a><span style="color:gray">(2010-02-10 15:59)</span><br/>· <a href="http://news.cnblogs.com/n/56851/" target="_blank">苹果发布 iPhone/iPad SDK 3.2 beta2 开发包</a><span style="color:gray">(2010-02-10 15:37)</span><br/></p><p>编辑推荐：<a href="http://news.cnblogs.com/news/tag/Buzz/" target="_blank">Google Buzz相关新闻</a><br/></p><p>网站导航：<a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/" target="_blank">个人主页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/group/" target="_blank">小组</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://kb.cnblogs.com" target="_blank">知识库</a></p>]]></description></item><item><title>[你必须知道的.NET]第三十三回，深入.NET 4.0之，Lazy&amp;lt;T&amp;gt;点滴</title><link>http://www.cnblogs.com/anytao/archive/2009/10/29/must_net_33.html</link><dc:creator>Anytao</dc:creator><author>Anytao</author><pubDate>Wed, 28 Oct 2009 16:51:00 GMT</pubDate><guid>http://www.cnblogs.com/anytao/archive/2009/10/29/must_net_33.html</guid><description><![CDATA[<p>阅读: 4396 评论: 42 作者: <a href="http://www.cnblogs.com/anytao/" target="_blank">Anytao</a> 发表于 2009-10-29 00:51 <a href="http://www.cnblogs.com/anytao/archive/2009/10/29/must_net_33.html" target="_blank">原文链接</a></p><p><strong><a href="http://anytao.net/" target="_blank">anytao.net</a> | <a href="http://book.anytao.com/"><strong><span style="color: #ff0000;">《你必须知道的.NET》网站</span></strong></a></strong> | <strong><span style="color: #0000ff;"><a href="http://www.anytao.com/">Anytao技术博客</a>&nbsp; </span></strong></p>
<p align="right"><span style="font-family: 微软雅黑;">发布日期：2009.10.29 作者：</span><a href="http://about.anytao.com/"><span style="font-family: 微软雅黑;">Anytao</span></a> <br /><span style="font-family: 微软雅黑; color: #ff0000;">&copy; 2009 </span><a href="http://www.anytao.com/"><span style="font-family: 微软雅黑; color: #ff0000;">Anytao.com</span></a><span style="font-family: 微软雅黑; color: #ff0000;"> ，Anytao原创作品，转贴请注明作者和出处。</span></p>
<p>&nbsp;</p>
<p>对象的创建方式，始终代表了软件工业的生产力方向，代表了先进软件技术发展的方向，也代表了广大程序开发者的集体智慧。以new的方式创建，通过工厂方法，利用IoC容器，都以不同的方式实现了活生生实例成员的创生。而本文所关注的Lazy&lt;T&gt;也是干这事儿的。不过，简单说来，Lazy&lt;T&gt;要实现的就是按&ldquo;需&rdquo;创建，而不是按时创建。</p>
<p>我们往往有这样的情景，一个关联对象的创建需要较大的开销，为了避免在每次运行时创建这种家伙，有一种聪明的办法叫做实现&ldquo;懒对象&rdquo;，或者延迟加载。.NET 4.0之前，实现懒对象的机制，需要开发者自己来实现与管理，例如，你可以翻开老赵同志的<a href="http://www.cnblogs.com/JeffreyZhao/archive/2009/09/07/standard-lazy-proxy.html">较为理想的延迟代理的编写方式</a>一文来了解其原理和场合。可喜的是，在.NET 4.0中包含的另一个好玩的家伙System.Lazy&lt;T&gt;。它的定义如下：</p>
<div class="wp_codebox">
<pre><span>[</span><span style="color: #2b91af">Serializable</span><span>]
</span><span style="color: blue">public class </span><span style="color: #2b91af">Lazy</span><span>&lt;T&gt;
{
    </span><span style="color: blue">public </span><span>Lazy();
    </span><span style="color: blue">public </span><span>Lazy(</span><span style="color: blue">bool </span><span>isThreadSafe);
    </span><span style="color: blue">public </span><span>Lazy(</span><span style="color: #2b91af">Func</span><span>&lt;T&gt; valueFactory);
    </span><span style="color: blue">public </span><span>Lazy(</span><span style="color: #2b91af">Func</span><span>&lt;T&gt; valueFactory, </span><span style="color: blue">bool </span><span>isThreadSafe);

    </span><span style="color: blue">public bool </span><span>IsValueCreated { </span><span style="color: blue">get</span><span>; }
    </span><span style="color: blue">public </span><span>T Value { </span><span style="color: blue">get</span><span>; }

    </span><span style="color: blue">public override string </span><span>ToString();
}</span></pre>
<pre><span><span style="color: #ff0000;">注：VS2010 Beta2对Lazy&lt;T&gt;和VS2010 Beta1有较大差异，因此本文仅以最新版本为标准，并不保证最终.NET 4.0正式版的实际情况。</span></span></pre>
</div>
<p>假设，我们有一个大块头：</p>
<div class="wp_codebox">
<pre><span style="color: blue">public class </span><span style="color: #2b91af">Big
</span><span>{
    </span><span style="color: blue">public int </span><span>ID { </span><span style="color: blue">get</span><span>; </span><span style="color: blue">set</span><span>; }

    </span><span style="color: green">// Other resources
</span><span>}</span></pre>
</div>
<p>那么，可以使用如下的方式来实现Big的延迟创建：</p>
<div class="wp_codebox">
<pre><span style="color: blue">static void </span><span>Main(</span><span style="color: blue">string</span><span>[] args)
{
    </span><span style="color: #2b91af">Lazy</span><span>&lt;</span><span style="color: #2b91af">Big</span><span>&gt; lazyBig = </span><span style="color: blue">new </span><span style="color: #2b91af">Lazy</span><span>&lt;</span><span style="color: #2b91af">Big</span><span>&gt;();
}</span></pre>
</div>
<p>从Lazy&lt;T&gt;的定义可知，其Value属性就是我们包装在Lazy Wrapper中的真实Big对象，那么当我们第一次访问lazyBig.Value时，就回自动的创建Big实例。</p>
<div class="wp_codebox">
<pre><span style="color: blue">static void </span><span>Main(</span><span style="color: blue">string</span><span>[] args)
{
    </span><span style="color: #2b91af">Lazy</span><span>&lt;</span><span style="color: #2b91af">Big</span><span>&gt; lazyBig = </span><span style="color: blue">new </span><span style="color: #2b91af">Lazy</span><span>&lt;</span><span style="color: #2b91af">Big</span><span>&gt;();

    </span><span style="color: #2b91af">Console</span><span>.WriteLine(lazyBig.Value.ID);
}</span></pre>
</div>
<p>当然，有其定义可知，Lazy远没有这么小儿科，它同时还可以为我们提供以下的服务：</p>
<ul>
<li>通过IsValueCreated，获取是否&ldquo;已经&rdquo;创建了实例对象。 </li>
<li>解决非默认构造函数问题。 </li>
</ul>
<p>显而易见。我们的Big类并没有提供带参数构造函数，那么如下的Big类：</p>
<div class="wp_codebox">
<pre><span style="color: blue">public class </span><span style="color: #2b91af">Big
</span><span>{
    </span><span style="color: blue">public </span><span>Big(</span><span style="color: blue">int </span><span>id)
    {
        </span><span style="color: blue">this</span><span>.ID = id;
    }

    </span><span style="color: blue">public int </span><span>ID { </span><span style="color: blue">get</span><span>; </span><span style="color: blue">set</span><span>; }

    </span><span style="color: green">// Other resources
</span><span>}</span></pre>
</div>
<p>上述创建方式将引发运行时异常，提示包装对象没有无参的构造函数。那么，这种情形下的延迟加载，该如何应对呢？其实Lazy&lt;T&gt;的构造中还包括：</p>
<div class="wp_codebox">
<pre><span style="color: blue">public </span><span>Lazy(</span><span style="color: #2b91af">Func</span><span>&lt;T&gt; valueFactory);</span></pre>
</div>
<p>它正是用来应对这样的挑战：</p>
<div class="wp_codebox">
<pre><span style="color: blue">static void </span><span>Main(</span><span style="color: blue">string</span><span>[] args)
{
    </span><span style="color: green">// Lazy&lt;Big&gt; lazyBig = new Lazy&lt;Big&gt;();
    </span><span style="color: #2b91af">Lazy</span><span>&lt;</span><span style="color: #2b91af">Big</span><span>&gt; lazyBig = </span><span style="color: blue">new </span><span style="color: #2b91af">Lazy</span><span>&lt;</span><span style="color: #2b91af">Big</span><span>&gt;(() =&gt; </span><span style="color: blue">new </span><span style="color: #2b91af">Big</span><span>(100));

    </span><span style="color: #2b91af">Console</span><span>.WriteLine(lazyBig.Value.ID);
}</span></pre>
</div>
<p>其实，从public Lazy(Func&lt;T&gt; valueFactory)的定义可知，valueFactory可以返回任意的T实例，那么任何复杂的构造函数，对象工厂或者IoC容器方式都可以在此以轻松的方式兼容，例如：</p>
<div class="wp_codebox">
<pre><span style="color: blue">public class </span><span style="color: #2b91af">BigFactory
</span><span>{
    </span><span style="color: blue">public static </span><span style="color: #2b91af">Big </span><span>Build()
    {
        </span><span style="color: blue">return new </span><span style="color: #2b91af">Big</span><span>(100);
    }
}</span></pre>
</div>
<p>可以应用Lazy&lt;T&gt;和BigFactory实现Big的延迟加载：</p>
<div class="wp_codebox">
<pre><span style="color: blue">static void </span><span>Main(</span><span style="color: blue">string</span><span>[] args)
{
    </span><span style="color: #2b91af">Lazy</span><span>&lt;</span><span style="color: #2b91af">Big</span><span>&gt; lazyBig = </span><span style="color: blue">new </span><span style="color: #2b91af">Lazy</span><span>&lt;</span><span style="color: #2b91af">Big</span><span>&gt;(() =&gt; </span><span style="color: #2b91af">BigFactory</span><span>.Build());

    </span><span style="color: #2b91af">Console</span><span>.WriteLine(lazyBig.Value.ID);
}</span></pre>
</div>
<ul>
<li>提供多线程环境支持。 </li>
</ul>
<p>另外的构造器：</p>
<div class="wp_codebox">
<pre><span style="color: blue">public </span><span>Lazy(</span><span style="color: blue">bool </span><span>isThreadSafe);
</span><span style="color: blue">public </span><span>Lazy(</span><span style="color: #2b91af">Func</span><span>&lt;T&gt; valueFactory, </span><span style="color: blue">bool </span><span>isThreadSafe);</span></pre>
</div>
<p>中，isThreadSafe则应用于多线程环境下，如果isThreadSafe为false，那么延迟加载对象则一次只能创建于一个线程。</p>
<p>&nbsp;</p>
<p>关于Lazy&lt;T&gt;的应用，其实已经不是一个纯粹的语言问题，还涉及了对设计的考量，例如实现整个对象的延迟加载，或者实现延迟属性，考量线程安全等等。既然是点滴，就不说教太多。因为，.NET 4.0提供的关注度实在不少，我们眼花缭乱了。</p>
<p>&nbsp;</p>
<h3>参考文献</h3>
<ul>
<li>Lazy Initialization, <a href="http://msdn.microsoft.com/en-us/library/dd997286(VS.100).aspx">http://msdn.microsoft.com/en-us/library/dd997286(VS.100).aspx</a>&nbsp;&nbsp;</li>
</ul>
<p>&nbsp;</p>
<p>更多闲言碎语，关注<a href="http://anytao.net/blog" target="_blank">anytao.net</a></p>
<p>&nbsp;</p>
<div id="MySignature">
<p class="class"><a href="http://i.anytao.com/">anytao</a> | <a class="copyright" href="http://www.anytao.com/">&copy; 2009 Anytao.com</a></p>
<p class="class">2009/10/29 | <a href="http://anytao.cnblogs.com/">http://anytao.cnblogs.com/</a> | <a href="http://www.anytao.net/blog/post/2009/10/28/anytao-insidenet-33-about-lazy.aspx">http://www.anytao.net/blog/post/2009/10/28/anytao-insidenet-33-about-lazy.aspx</a></p>
<p class="class">本文以&ldquo;现状&rdquo;提供且没有任何担保，同时也没有授予任何权利。 | This posting is provided "AS IS" with no warranties, and confers no rights.</p>
<p>本文版权归作者所有，欢迎转载，但未经作者同意必须保留此段声明，且在文章页面明显位置给出原文连接，否则保留追究法律责任的权利。 </p>
</div><img src="http://www.cnblogs.com/anytao/aggbug/1591783.html?type=1" width="1" height="1" alt=""/><p>评论: 42　<a href="http://www.cnblogs.com/anytao/archive/2009/10/29/must_net_33.html#pagedcomment" target="_blank">查看评论</a>　<a href="http://www.cnblogs.com/anytao/archive/2009/10/29/must_net_33.html#commentform" target="_blank">发表评论</a></p><hr/><p>最新新闻：<br/>· <a href="http://news.cnblogs.com/n/56857/" target="_blank">Facebook与美国在线合作 整合AIM动态功能</a><span style="color:gray">(2010-02-10 16:41)</span><br/>· <a href="http://news.cnblogs.com/n/56855/" target="_blank">NDepend 3.0已与Visual Studio集成</a><span style="color:gray">(2010-02-10 16:17)</span><br/>· <a href="http://news.cnblogs.com/n/56854/" target="_blank">Ruby in Steel 1.5发布，去除IronRuby支持</a><span style="color:gray">(2010-02-10 16:14)</span><br/>· <a href="http://news.cnblogs.com/n/56852/" target="_blank">淘宝网通过索引模式涉足网络文学</a><span style="color:gray">(2010-02-10 15:59)</span><br/>· <a href="http://news.cnblogs.com/n/56851/" target="_blank">苹果发布 iPhone/iPad SDK 3.2 beta2 开发包</a><span style="color:gray">(2010-02-10 15:37)</span><br/></p><p>编辑推荐：<a href="http://news.cnblogs.com/news/tag/Buzz/" target="_blank">Google Buzz相关新闻</a><br/></p><p>网站导航：<a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/" target="_blank">个人主页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/group/" target="_blank">小组</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://kb.cnblogs.com" target="_blank">知识库</a></p>]]></description></item><item><title>[活动]博文视点Open Party上海站职业生涯分论坛</title><link>http://www.cnblogs.com/anytao/archive/2009/09/15/anytao_activity_shfurum.html</link><dc:creator>Anytao</dc:creator><author>Anytao</author><pubDate>Tue, 15 Sep 2009 01:56:00 GMT</pubDate><guid>http://www.cnblogs.com/anytao/archive/2009/09/15/anytao_activity_shfurum.html</guid><description><![CDATA[<p>阅读: 1277 评论: 2 作者: <a href="http://www.cnblogs.com/anytao/" target="_blank">Anytao</a> 发表于 2009-09-15 09:56 <a href="http://www.cnblogs.com/anytao/archive/2009/09/15/anytao_activity_shfurum.html" target="_blank">原文链接</a></p><p><a target="_blank" href="http://anytao.net/"><span style="color: #669966;">anytao.net</span></a><strong> | </strong><a href="http://book.anytao.com/"><span style="color: #ff0000;"><strong>《你必须知道的.NET》网站</strong></span></a> | <span style="color: #0000ff;"><a href="http://www.anytao.com/"><span style="color: #669966;">Anytao技术博客</span></a><strong>&nbsp; </strong></span></p>
<p align="right"><span style="font-family: 微软雅黑;">发布日期：2009.09.15 作者：</span><a href="http://about.anytao.com/"><span style="font-family: 微软雅黑; color: #669966;">Anytao</span></a> <br /><span style="font-family: 微软雅黑; color: #ff0000;">&copy; 2009 </span><a href="http://www.anytao.com/"><span style="font-family: 微软雅黑; color: #ff0000;">Anytao.com</span></a><span style="font-family: 微软雅黑; color: #ff0000;"> ，Anytao原创作品，转贴请注明作者和出处。</span></p>
<p>开始时间: 9月19日 周六 07:00<br />结束时间: 9月20日 周日 23:00</p>
<p>地点: 上海 徐汇区 大众大厦 <br />发起人: <a href="http://www.douban.com/people/3783165/"><span style="color: #669966;">Idesignidea</span></a><br />组织者: <a href="http://www.douban.com/people/2878337/"><span style="color: #669966;">Blacktear</span></a><br />类型: 讲座/沙龙 </p>
<p>&nbsp;</p>
<h2>活动介绍</h2>
<p>职场生涯设计是人安身立命之根本，唯有改变思路才能改变命运！ <br />博文视点强大的作者团队将从北京移师上海，为您阐述： <br />了解自我、挑战自我、超越自我！与你分享微软华人员工的成功与成长心路 </p>
<ul>
<li>张奭：原微软总部测试专家、职业咨询师。</li>
<li>猎头揭秘 张大志 (Leo) zhaopinpro创始人，从事研发人员考核的培训与咨询，CSDN十大明星博主 </li>
<li>经济危机下的职业规划 张华 精通医学、日语、经济的CTO </li>
<li>性格的修炼对职业生涯的作用 李战 阿里软件高级架构师，《悟透JavaScript》的作者 </li>
<li>心中有爱 刘旭 美女CEO，设计师 </li>
</ul>
<p>微笑生活，微笑工作！相信这样的随意可心party一定能让您满载而归！ </p>
<p><br />活动主办方：博文视点 <br />活动时间：2009年9月20日上午9：00-12：00 <br />活动地点：上海大众大厦 </p>
<p><br />活动费用（场地和茶水费）： <br />标准收费：80元/人； <br />3人或者3人以上同时报名，60元/人；</p>
<p>&nbsp;<br />由于场地所限，仅限200人报名，我们会按照报名的先后顺序答复您是否能参加本次活动。 <br />报名方式：登录 <a href="http://www.broadview.com.cn/open%20party/6/openparty-6.htm"><span style="color: #669966;">http://www.broadview.com.cn/open%20party/6/openparty-6.htm</span></a><br />如有疑问可致电：010-88254367，或发邮件到sxy@phei.com.cn。 <br />报名截止时间：2009年9月18日下午16：00</p>
<p>&nbsp; </p>
<div id="MySignature">
<p class="class"><a href="http://i.anytao.com/"><span style="color: #669966;">anytao</span></a> | <a href="http://www.anytao.com/" class="copyright"><span style="color: #669966;">&copy; 2009 Anytao.com</span></a></p>
<p class="class">2009/09/15 | <a href="http://anytao.net/"><span style="color: #669966;">http://anytao.net</span></a> </p>
<p class="class">本文以&ldquo;现状&rdquo;提供且没有任何担保，同时也没有授予任何权利。本文版权归作者所有，欢迎转载，但未经作者同意必须保留此段声明，且在文章页面明显位置给出原文连接，否则保留追究法律责任的权利。</p>
</div><img src="http://www.cnblogs.com/anytao/aggbug/1566773.html?type=1" width="1" height="1" alt=""/><p>评论: 2　<a href="http://www.cnblogs.com/anytao/archive/2009/09/15/anytao_activity_shfurum.html#pagedcomment" target="_blank">查看评论</a>　<a href="http://www.cnblogs.com/anytao/archive/2009/09/15/anytao_activity_shfurum.html#commentform" target="_blank">发表评论</a></p><hr/><p>最新新闻：<br/>· <a href="http://news.cnblogs.com/n/56857/" target="_blank">Facebook与美国在线合作 整合AIM动态功能</a><span style="color:gray">(2010-02-10 16:41)</span><br/>· <a href="http://news.cnblogs.com/n/56855/" target="_blank">NDepend 3.0已与Visual Studio集成</a><span style="color:gray">(2010-02-10 16:17)</span><br/>· <a href="http://news.cnblogs.com/n/56854/" target="_blank">Ruby in Steel 1.5发布，去除IronRuby支持</a><span style="color:gray">(2010-02-10 16:14)</span><br/>· <a href="http://news.cnblogs.com/n/56852/" target="_blank">淘宝网通过索引模式涉足网络文学</a><span style="color:gray">(2010-02-10 15:59)</span><br/>· <a href="http://news.cnblogs.com/n/56851/" target="_blank">苹果发布 iPhone/iPad SDK 3.2 beta2 开发包</a><span style="color:gray">(2010-02-10 15:37)</span><br/></p><p>编辑推荐：<a href="http://news.cnblogs.com/news/tag/Buzz/" target="_blank">Google Buzz相关新闻</a><br/></p><p>网站导航：<a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/" target="_blank">个人主页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/group/" target="_blank">小组</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://kb.cnblogs.com" target="_blank">知识库</a></p>]]></description></item><item><title>哥写的不是代码，是寂寞</title><link>http://www.cnblogs.com/anytao/archive/2009/08/17/anytao-think-notcodebutalone.html</link><dc:creator>Anytao</dc:creator><author>Anytao</author><pubDate>Sun, 16 Aug 2009 16:10:00 GMT</pubDate><guid>http://www.cnblogs.com/anytao/archive/2009/08/17/anytao-think-notcodebutalone.html</guid><description><![CDATA[<p>阅读: 13309 评论: 375 作者: <a href="http://www.cnblogs.com/anytao/" target="_blank">Anytao</a> 发表于 2009-08-17 00:10 <a href="http://www.cnblogs.com/anytao/archive/2009/08/17/anytao-think-notcodebutalone.html" target="_blank">原文链接</a></p><p><strong><a target="_blank" href="http://anytao.net/">anytao.net</a> | <a href="http://book.anytao.com/"><strong><span style="color: #ff0000;">《你必须知道的.NET》网站</span></strong></a></strong> | <strong><span style="color: #0000ff;"><a href="http://www.anytao.com/">Anytao技术博客</a>&nbsp; </span></strong></p>
<p align="right"><span style="font-family: 微软雅黑;">发布日期：2009.08.17 作者：</span><a href="http://about.anytao.com/"><span style="font-family: 微软雅黑;">Anytao</span></a> <br /><span style="font-family: 微软雅黑; color: #ff0000;">&copy; 2009 </span><a href="http://www.anytao.com/"><span style="font-family: 微软雅黑; color: #ff0000;">Anytao.com</span></a><span style="font-family: 微软雅黑; color: #ff0000;"> ，Anytao原创作品，转贴请注明作者和出处。</span></p>
<p>&nbsp;</p>
<p>为什么我的眼里常含泪水，那不是眼屎没有擦干净，只是因为我的眼神里充满了：寂寞。</p>
<p><br />我是个正宗的80后，虽然在开心的账号常年显示着90后，但那仅仅是个符号，为了艳遇准备的而已。为什么要写我的故事，那是因为我是一个天才（<a href="http://anytao.net/blog/post/2009/07/10/anytao-think-02-imnotgenius.aspx">其实我不是</a>）。</p>
<p>&nbsp;</p>
<p>我是如此的谦虚，以至于不想将自己是天才的秘密告诉任何人，因为我始终信奉：谁终将声震寰宇，必先深自缄默。首先，这个秘密也不是自封的，是金子总会发光。关于我天才的故事，你可以顺道向<a href="http://www.cnblogs.com/dudu">dudu</a>、<a href="http://www.cnblogs.com/terrylee">TerryLee</a>、<a href="http://www.cnblogs.com/dingxue">dingxue</a>这样的先驱打听，不过如果他们不承认知道这个秘密，我也无可奈何，我还不至于冒着潜规则的风险用委托的方式递归，循环太多，是会溢出的。我为什么是天才，这是有事实基础的事实，因为我有求必应。如果你有任何的内存溢出、Unknown exception、死循环、Silverlight翘辫子和MVC不好用等问题不能解决，可以试着朝厕所喊我三声，问题将迎刃而解、立竿见影。但是，如果收效甚微，那肯定是你心诚不灵，可以不断重复以上练习，直到解决为止。我已经靠这种办法，成功解决了很多问题，所以我相信下一次你也能成功。</p>
<p>&nbsp;</p>
<p>话说回来，天才的秘诀其实很简单，这也是很多粉丝都在打听的小道消息，答案并不复杂：</p>
<blockquote>
<p>外事不决问Google，内事不决问Baidu，八卦不决问Mop。 </p>
<p>&nbsp;</p>
</blockquote>
<p>作为天才（<a href="http://anytao.net/blog/post/2009/07/10/anytao-think-02-imnotgenius.aspx">其实我不是</a>），我实在不称职，因为过往的岁月打酱油、叉腰鸡、俯卧撑这些露脸的好事儿我都没赶上。最后，还被贾君鹏同学抢了风头，其实我妈以前经常在女同学家喊我回家吃饭的。不过，作为偶像，我也并非一无是处。一个风和日丽、电闪雷鸣的夜晚，我诞生在秦王一统河山的骊山之旁，渭水之畔，那一年应该是比尔盖茨在玩儿Dos的日子，虽然他已过了穿开裆裤的日子，但是我还在穿。我与生俱来的气质并没有影响到远在美国的盖先生，却引来计划生育队查户口，所幸我是我们家老大，这让俺爹娘常常的舒了一口气，以至于后来我妹出生的时候，他们都庆幸天才先一步落地了。</p>
<p>后来，我一直深信那天的吉兆将是我非凡气质的开始，我所选择的创造必将不同凡响。直到今天，我的理想（仅限于理想），一直被模仿，却从未被超越。</p>
<p><br />为了让您有机会了解我天才的往事，我决定不从1岁尿炕的日子说起，而直接飞跃到青春期懵懂的岁月。那一年，我5岁。班里一个胖脸蛋儿小朋友引起我寂寞眼神的青睐，几年之后我们交换了照片，然后什么也没再发生。虽然这段马拉松式的爱情长跑仅仅维持了几个月，但是在我初恋的记忆永远埋下了阴影，以至于后来的我饱受暗恋的打击，也仍然坚挺的活着。就这样结束了，没有开始，但却有结束，这段爱情故事至今仍在村子里被传颂，不信你可以问问上帝。</p>
<p>我知道看客们就喜欢八卦，所以先说说我的青春往事，但我并不打算继续沿着这个主题走下去，因为正如标题而言：哥，是写代码的。在我传奇的上个世纪，是另一个偶像把我的目光由爱情转到了代码，这个偶像就是前面提到的穿开裆裤的那个人，当然，能作为我的偶像，也是他上辈子修来的福。那个时候，除了金庸和琼瑶，最拉风的还有比尔盖茨先生的光辉事迹，在撬动我激情燃烧的心。</p>
<p><br />这就是我寂寞的开始。</p>
<p><br />我告别了寂寞，却选择了更大的寂寞，后来我听窦文涛说天才本来就是寂寞的，就一阵的窃喜，这也反过来印证了我确实是个天才。而这个更大的寂寞就是代码，所以，如果你也是有幸写代码的，那么首先恭喜你像我一样生来天才，然后再恭喜你继续寂寞着。小时候的光辉很快在生活的无聊下消失殆尽，现在的我被人定义为&ldquo;大器晚成&rdquo;，因为写代码的人很多都是从5岁开始的（记得吗，5岁的时候，我的世界只有女人&mdash;&mdash;胖脸蛋儿小朋友），而我是从20岁才开始的。晚成的具体时间得追溯我的第一台计算机，那是上大学一年级的时候，为了更好的练习看片和游戏的工作需要，借学习之名骗老爸购置了人生的第一台586，所以，我的故事才刚刚开始。</p>
<p><br />如果把那台老朋友的配置列个单子，相信90、00后的新生代肯定知道原来电脑也有上古时代，20G硬盘、128M内存和600M CPU已经迎来宿舍同仁持续一个学期的尖叫。作为史前人类，那个时候我并没有把太多的注意力关注在南桥和北桥的区别，也不去想0和1的世界规则，更没有时间理会算法和链表。因为时间宝贵，我首先选择献身艺术，从《东京爱情故事》到《流星花园》，从《古惑仔》到《那场风花雪月的事》，从港台大佬到日韩情人，我追寻电视艺术的脚步从来舍不得停滞，我一度怀疑这和十几年前的那场柏拉图式的早恋有关。</p>
<p>&nbsp;</p>
<p>而转折就像放屁，总是发生在不经意，永远没有前奏。</p>
<p><br />大学三年级，是开始做项目课题的日子，由于深受众多男叫兽的压迫，我选择在美丽贤惠的S老师手下做事，S老师并没有多少黑社会老大的脾气，总是和蔼可亲，混吃混喝很方便。和S老师的搭档，正应了那句名言：出来混，迟早是要还的。由于压迫计算机很多年，在换了无数个光驱（看片）和键盘（打游戏）之后，老祖先冯.诺依曼先生终究没有放过我，现在开始计算机压迫我的时代了。学机电出身的我，开始跟着S老师搞起了软件项目，那是游戏和图片以外的东西，我从此被逼无奈的开始了写代码的生涯，在0和1的世界义无反顾了。而我，在很多后来的大牛眼里，属于出身不好的那一类，好像一直以来的代码江湖都是以C++为正统，其他门派都是提鞋的，世袭罔替直到今日。所以，提起出身我都不好意思再提过去的天才故事，因为我不是从C++开始的，而且一直不是，我是从拖VB控件开始的，可能你们一阵的窃喜，但是我的心里也并未哇凉哇凉的。这是为什么呢？虽然拖控件看起来级别不高，但是我至今仍然被这句名言所震撼：我脱了，你随意。后来发生的事实也证明，VB、Delphi还有C#，其实并不是拖来拖去那么简单，你也可以很随意，在关注自家GC的同时，去挖COM和C++的墙角。</p>
<p><br />跟着S老师混，是喜剧的开始，也是寂寞的开始。</p>
<p>&nbsp;</p>
<p>我犯了所有男人的通病，为了在女老师面前逞强，我放弃了所有的爱好和虚荣，我放弃了数十年来被评为我最喜爱的赵薇、酒井法子和金泰熙海报，我放弃了学校食堂每天等候欣赏天才的美女和大妈，我头悬梁，我锥刺股，我自大，我心虚，我盲目，我冲动，我迷失，我炼狱，一门心思做起了技术。为了苦练拖控件神功，我试图不拖会怎样，结果发现不脱更刺激。手动控制由代码组织的命名空间、类型对象和事件机制，了解静态成员为什么理直气壮，分析委托对象何以能打回马枪，轻叹多态继承总是多快好省。经意间，我把老师的不经意项目做成了优秀作品，老师拿着我写的长长代码，眼泪哗啦哗啦的，没有流出来。托控件也能拖成这样，真是没想到呀，老师语重心长说道。我说，只要老师满足了，我拖再多也愿意。</p>
<p>&nbsp;</p>
<p>优秀的结果，就是我被保送给老师的老公C教授，C教授赫赫有名，他是计算机与信息学院院长。听这头衔，你就知道我不能逃离代码江湖的深渊了。我还没有从逞能的兴奋中过渡，就结实的掉进了另一个泥潭，说起来吓死你，那天我喝了一整瓶汉斯果啤，在醉梦中仿佛看见了幼时初恋小朋友得意的笑。那种状态是刚刚好的状态，以后烦闷当头，我都选择以半斤二锅头或几瓶燕京来结束良知。但当时，作为男人，在自信不能被打倒的同时我选择了沉默，正如鲁迅先生所说，不在沉默中爆发，就在沉默中咯屁，而我选择了<a href="http://www.anytao.com/">在沉默中寂寞</a>。</p>
<p>&nbsp;</p>
<p>什么是寂寞，寂寞还是写代码，这个江湖还在继续。</p>
<p>&nbsp;</p>
<p>在和C老师的斗争中，我逐渐学会了批评和批评他人，吹牛和自我吹牛，本文就是例证。同时，也完成了从&ldquo;逼良为娼&rdquo;到&ldquo;丫从良了&rdquo;的蜕变，技术对我来说不再是泄欲工具，而变成了立体山水。原因很简单，常在河边走，怎能不湿鞋。每天在Visual Stuido上狂奔，怎能不汗流浃背，汗流的多了，就是不是汗了，是寂寞。不过，说起来，这些蜕变并非偶然，而是我逐渐发现的秘密：代码和女人，代码和人生，其实是一样一样一样的。总结起来，其共同点主要包括：</p>
<ul>
<li>善变。女人的善变就像阴晴圆缺，没有启奏，只有通知；人生的善变就像悲欢离合，没有预期，只有结果。代码，也是同样的，任何Bug的发生，都没有一定可循的轨迹。 </li>
<li>0和1。如果女人是0，那么男人一定就是1了，这个不光是及其的意义深远，也非常的形象兼备呀。人生正是如此，0和1组成的计算机世界之精彩，正如八卦阴阳支配的自然世界一样丰富多姿。 </li>
<li>更新速度快。女人翻脸的速度，一定可以媲美异常弹出的速度；女人购物的频繁，也一定可以等同软件版本的交替。 </li>
<li>自私。女人是自私的，技术也一样。女人心里只能装下一个男人，技术也一样。很多朋友在来函中都困惑未来的前途，是搞.NET还是搞Java，我说技术不是靠搞的，女人才是，博学仅限于天才，专注才是正道。对于我这样的小人，只信奉这样的教条：信<a href="http://www.anytao.com/">.NET</a>，来<a href="http://www.cnblogs.com/">博客园</a>。 </li>
</ul>
<p>从此，我就把代码当成了女人，尤其是深夜时分，（关灯）此处省略500万字，。。。，关灯之后的故事，被我写在了《<a href="http://book.anytao.com/">你必须知道的.NET</a>》一书，由此可见这本书凝聚了多少心血和高潮。如果你想了解.NET的万种风情，可以翻开看看，因为她是天堂；如果你想了解女人的递归循环，可以翻开看看，因为她是地狱。据说，有不少人因此而改善了个人生涯和夫妻关系。如果看了8遍，还是没有任何起色，这只能归结于慧根：仁者见仁，淫者见淫，很多事情经历多了，只能轻佻的说一句，天要下雨，娘要嫁人，随它去吧。</p>
<p>&nbsp;</p>
<p>所以，你可以把标题代码二字换成女人或者人生，全文其实可以基本通顺。然而，要当天才，是需要成功证明的，但是成功的基本要素却不是人人就有，我总结的要素不多，但都很难办：</p>
<ul>
<li>虚伪。 </li>
</ul>
<p>关于虚伪，很多人都信奉：哥不是随便的人，哥随便起来不是人。而天才的信念没有这么多拐弯，我们只承认，哥即使不随便，也绝不是人。写代码的生活，就是一个活在虚伪状态的疯狂之人，才能一直坚守的事情。</p>
<ul>
<li>癖好。 </li>
</ul>
<p>关于癖好，据说成功的人都有癖好，例如X成功绅士喜欢抠脚，而Y成功大婶热衷挖鼻子。作为天才，我也不能免俗。当很多人在传记中自夸奋斗经验的时候，我都为自己的癖好而害羞不已。其实说来简单，我的癖好是在上厕所的时候，如果文思泉涌，花火四溅，会将对.NET的理解和参透记录在手中一半卫生纸上，这不仅增添了方便的乐趣，也让.NET的领悟变得有滋有味。不过有时候一半卫生纸是不够的，于是。。。不好意思，关于嗜好就这么多，奋斗的经验也就这么多，虽然味道一般，但意义其实是不一般的。</p>
<ul>
<li>理想。 </li>
</ul>
<p>现在的我，变得豁达。如果你意图告别喧嚣，那么就不要怠慢理想，你可以选择放弃狗屁，但是不要轻言放弃理想。<a href="http://www.cnblogs.com/jeffreyzhao">老赵</a>说他理想是写代码到60岁，而我也希望能够寂寞这一生。</p>
<ul>
<li>选择。 </li>
</ul>
<p>选择总是难免，而我选择了.NET。说起原因，听来可笑，最初的打算并没有和多少前途和钱途挂上钩。就像姑娘，你总是先挑对眼儿的，不管是豆蔻年华型，还是风韵犹存型，对眼儿总是第一重要的。两情相悦至少，一切前途的担忧与一切钱途的计较，全他妈的扯淡。由此，我为人生选择了对眼儿的姑娘&mdash;&mdash;.NET，与自己在未来的若干个日子里比翼双飞，一直时至今日。俗话说，情人眼里出西施，我眼里的.NET也是很西施的。我喜欢托管世界的自由自在，不必为内存管理而分心；我痴迷IL和SOS底层的无线奥秘，把揭开真相作为一种乐趣；我欣赏Lambda表达式和LINQ造就的优雅；我也沉醉C#行云流水般的简洁代码。</p>
<p>虽然我是个天才，但是被我玩弄的.NET姑娘，更是个天才。我看着它从1.0、1.1、2.0、3.0到4.0，一把屎一把尿的成长起来。虽然年轻，可这孩子却一点儿不让人省心，我始终没有完全搞懂它肚子里的花花肠子到底是怎样的格局，或许这终将是个谜。所以，在它面前，我没有高贵的头颅，也没有骄傲的资本，虚心请教、任人宰割的事情常用发生，以至于我对自己天才的事实感到怀疑。</p>
<p>钟爱的原因有很多，如果你还是想问个问什么，我只能说：我很傻，很天真。没办法，天才，也有软肋。</p>
<p>至于是否有第三者（F#, Elang, Ruby, Python）插足，或者被横刀夺爱（C++, Java），我都无所谓，至少当下我爱的很幸福。老牛人常说，武林是没有门派之分的，搞定一个就可举一反三，并且将最上乘的技术总结为&ldquo;手中无剑而心中有剑，此时无剑胜有剑&rdquo;，而我很早就对这句屁话有所怀疑，每次和人过招鼻青脸肿的都是因为没家伙。不信你拿牛刀和牛人练练空手道，看看是有剑的流氓，还是无剑的冤枉。</p>
<p>&nbsp;</p>
<p>因为爱上寂寞，随后的事情就变得顺理成章，可以说一发不可收拾，我最终和代码干上了！研究生毕业，我一把鼻涕一把泪离开了每天喊我回家吃饭的慈母严父，只身协准媳妇来到北京浪迹江湖。刚下火车，我的第一反应是去买张回程票，<a href="http://www.anytao.com/">老子</a>不干了。首都的楼儿高又高，老子的心里漂又漂，最终留下原因是发现这里的美女也是又高又飘。于是几年前的我，<a href="http://www.cnblogs.com/anytao/archive/2007/04/12/aboutme.html">在当时写下了这样的壮语</a>：</p>
<p><em>数年闻道，一朝醒悟，身于技术，心系天下。内专注于.NET，外切磋于Java，只身江湖于京城，志满筹。心若凭栏，以立业传道为己任；神思四海，为技术中华而躬身。俱五内，为品茶、读书、立业、写代码而悠然；放五洲，以修身、齐家、治国、平天下为己任。</em></p>
<p>（现在想想，还不是一般的傻。3年都过去了，我还是这副德性，发起闷骚，仍然是当仁不让。）</p>
<p>&nbsp;</p>
<p>既来之，则安之，我进入一家国有软件企业，从此接触了更广阔的软件空间。大舞台，当然要有大动作，我的动作很大，基本格局是从早到晚加班，周六周日无休，提成奖金没有。庆幸是，我在灰天黑地的折磨中，看到了小项目之外的大项目是如何组装、包装到安装，看到了VB之外、.NET之外的更多技术是各班摸样，看到了项目管理与市场陷阱，看到了办公室真哲学和KTV潜哲学，看到了知己和过客在社会阶段的角色，我看到的太多了，所以没有记下太多。在还没有看清太多的时候，抱着体验洋企业的心态，我来的现在的公司，继续自己关于代码还有寂寞的人生，这一切都是神奇的过程，哥相信人生本来就应该这样神奇。</p>
<p>&nbsp;</p>
<p>如果你相信，任何故事，远没有结束的时候，现在的人还不是永恒不变的重复历史上曾经发生的某个缩影。为了体验多活几次的别样生活，我喜欢在历史和现实中穿梭，你可以责任的品评历史上所有美女和帅哥，也可以不负责的将自己对号入座，同时发现原来也和程序世界有惊人的复制可能。已经发生的，正在发生的，将要发生的，不管是什么，都印证了时下最流行的哲理：</p>
<blockquote>
<p><strong><em>哥玩的不是代码，是寂寞。</em></strong></p>
</blockquote>
<p>&nbsp;</p>
<p>对<a href="http://i.anytao.com">我</a>而言，经历总在继续而且难免，但是每个阶段怀揣着感恩的心，为每个阶段的寂寞说声：谢谢，辛苦了。否定别人，首先就否定了自己，不以好坏论长短。</p>
<p>&nbsp;</p>
<p>时间过得太快，老盖退休了，云计算来了，.NET都论4.0，Silverlight可以离线了，WCF支持Restful了，MVC将会Areas了，微软以Bing重整旗鼓，而Google埋头苦干Wave，<a href="http://www.cnblogs.com/">博客园</a>也改版了，《<a href="http://book.anytao.com/">你必须知道的.NET</a>》也会2.0的。新鲜每天发生，故事重复传奇，这让天才时常感怀&ldquo;过去的日子&rdquo;，每日游走于技术、八卦和快乐，我不想再对寂寞说抱歉。</p>
<p>&nbsp;</p>
<p>总体说来，作为天才（<a href="http://anytao.net/blog/post/2009/07/10/anytao-think-02-imnotgenius.aspx">其实我不是</a>），我的.NET传奇还在继续，因为绝少有人能够续写，所以我只好耐着头皮装傻充愣。而写本文，其实只是娱乐大家，如有雷同，就当被雷。故事人物，除了我是天才这一基本原则，其他人物和故事全部虚构，没有对号入座。</p>
<p><br />&ldquo;<a href="http://anytao.net/blog">tao</a>，回家吃饭了&rdquo;，你看，我没有骗你吧，是时候，我妈又在喊我了。对了，忘了提醒：不要崇拜哥，哥只是个传说。</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<div class="wp_codebox">
<pre>更多闲言碎语，关注<a target="_blank" href="http://anytao.net/blog">anytao.net</a></pre>
</div>
<p>&nbsp;</p>
<div id="MySignature">
<p class="class"><a href="http://i.anytao.com/">anytao</a> | <a href="http://www.anytao.com/" class="copyright">&copy; 2009 Anytao.com</a></p>
<p class="class">2009/08/17 | <a href="http://anytao.cnblogs.com/">http://anytao.cnblogs.com/</a> | <a href="http://anytao.net/blog/post/2009/08/16/anytao-think-04-notcodebutalone.aspx" title="http://anytao.net/blog/post/2009/08/16/anytao-think-04-notcodebutalone.aspx">http://anytao.net/blog/post/2009/08/16/anytao-think-04-notcodebutalone.aspx</a></p>
<p class="class">本文以&ldquo;现状&rdquo;提供且没有任何担保，同时也没有授予任何权利。 | This posting is provided "AS IS" with no warranties, and confers no rights.</p>
<p>本文版权归作者所有，欢迎转载，但未经作者同意必须保留此段声明，且在文章页面明显位置给出原文连接，否则保留追究法律责任的权利。 </p>
</div><img src="http://www.cnblogs.com/anytao/aggbug/1547783.html?type=1" width="1" height="1" alt=""/><p>评论: 375　<a href="http://www.cnblogs.com/anytao/archive/2009/08/17/anytao-think-notcodebutalone.html#pagedcomment" target="_blank">查看评论</a>　<a href="http://www.cnblogs.com/anytao/archive/2009/08/17/anytao-think-notcodebutalone.html#commentform" target="_blank">发表评论</a></p><hr/><p>最新新闻：<br/>· <a href="http://news.cnblogs.com/n/56857/" target="_blank">Facebook与美国在线合作 整合AIM动态功能</a><span style="color:gray">(2010-02-10 16:41)</span><br/>· <a href="http://news.cnblogs.com/n/56855/" target="_blank">NDepend 3.0已与Visual Studio集成</a><span style="color:gray">(2010-02-10 16:17)</span><br/>· <a href="http://news.cnblogs.com/n/56854/" target="_blank">Ruby in Steel 1.5发布，去除IronRuby支持</a><span style="color:gray">(2010-02-10 16:14)</span><br/>· <a href="http://news.cnblogs.com/n/56852/" target="_blank">淘宝网通过索引模式涉足网络文学</a><span style="color:gray">(2010-02-10 15:59)</span><br/>· <a href="http://news.cnblogs.com/n/56851/" target="_blank">苹果发布 iPhone/iPad SDK 3.2 beta2 开发包</a><span style="color:gray">(2010-02-10 15:37)</span><br/></p><p>编辑推荐：<a href="http://news.cnblogs.com/news/tag/Buzz/" target="_blank">Google Buzz相关新闻</a><br/></p><p>网站导航：<a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/" target="_blank">个人主页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/group/" target="_blank">小组</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://kb.cnblogs.com" target="_blank">知识库</a></p>]]></description></item><item><title>[一些思考]转身，关注更高。</title><link>http://www.cnblogs.com/anytao/archive/2009/08/10/anytao-think-turnmypoint.html</link><dc:creator>Anytao</dc:creator><author>Anytao</author><pubDate>Mon, 10 Aug 2009 06:06:00 GMT</pubDate><guid>http://www.cnblogs.com/anytao/archive/2009/08/10/anytao-think-turnmypoint.html</guid><description><![CDATA[<p>阅读: 1750 评论: 10 作者: <a href="http://www.cnblogs.com/anytao/" target="_blank">Anytao</a> 发表于 2009-08-10 14:06 <a href="http://www.cnblogs.com/anytao/archive/2009/08/10/anytao-think-turnmypoint.html" target="_blank">原文链接</a></p><p>
<p><strong><a target="_blank" href="http://anytao.net/">anytao.net</a> | <a href="http://book.anytao.com/"><strong><span style="color: #ff0000;">《你必须知道的.NET》网站</span></strong></a></strong> | <strong><span style="color: #0000ff;"><a href="http://www.anytao.com/">Anytao技术博客</a>&nbsp; 
</span></strong></p>
<p align="right"><span style="font-family: 微软雅黑;">发布日期：2009.08.10 作者：</span><a href="http://about.anytao.com/"><span style="font-family: 微软雅黑;">Anytao</span></a> <br /><span style="font-family: 微软雅黑; color: #ff0000;">&copy; 2009 </span><a href="http://www.anytao.com/"><span style="font-family: 微软雅黑; color: #ff0000;">Anytao.com</span></a><span style="font-family: 微软雅黑; color: #ff0000;"> 
，Anytao原创作品，转贴请注明作者和出处。</span></p>
<blockquote></blockquote>
<h2>简历是什么？</h2>
<p>简历是历史，记录了你的历程和成长。</p>
<p>简历是借鉴，别人的招聘选项就是你的查漏补缺的目标。</p>
<p>简历是反思，没有反思的活体，最多是个行尸走肉，走不远、飞不高，没意思。</p>
<p>看着自己的简历：</p>
<ul>
<li>System Architecture</li>
<li>.NET Framework, CLR</li>
<li>C# and ASP .NET</li>
<li>Web Design &amp; Implementation</li>
<li>SQL Server 2000, 2005</li>
<li>WCF, LINQ, Silverlight, ADO .NET Entity Framework, ASP .NET MVC</li>
<li>HTML, Javascript, CSS, JQuery</li>
<li>IIS</li>
<li>Entprise Library</li>
<li>Microsoft Dynamics CRM（a little work experience)</li>
<li>OOA/OOD</li>
<li>Project Management</li>
<li>3+ years software development</li>
</ul>
<p>作为Coder，我自己感到骄傲和自信，有些是熟练的，有些是了解的。但是也同时发现了更高起跑线上的距离：</p>
<ul>
<li>Passion for customers, partners and technology</li>
<li>Integrity and honesty</li>
<li>Open and respectful with others and dedicated to making them better</li>
<li>Willingness to take on big challenges and see them through</li>
<li>Committed to personal excellence and self-improvement</li>
<li>Accountable for commitments, results and quality to customers, shareholders, 
partners and employees.</li>
</ul>
<p>所以，简历是什么？在此刻，就是我反思的镜子。转身，就这样根植在我的心底。起跑线和终点必须做点儿调整，反正人生不是本来就在不断调整吗？</p>
<h2>转身，关注更高。</h2>
<p>转身可以不华丽，但必须是实实在在的。设计、架构、管理、交付、质量、性能、沟通、协调、培训，一个都不能少。</p>
<ul>
<li><strong>设计与架构</strong>。如果不懂设计，请重新开始。</li>
<li><strong>技术基础</strong>。从操作系统到网络服务，从前端页面到后端服务，从.NET到COM，从C#到F#，从sql 
server到xml，从jquery到xpath，从性能优化到高级调试，好像应该知道的都得知道，应该了解的都得了解，没有办法这就是软件。所有应该知道和必须知道的，我总结了一个《Web开发者地图》，仅供个人参考之用。</li>
<li><strong>专注非全能</strong>。专注是必须的品格，什么都懂就代表了什么都不懂。前后通吃的人才是罕见的，甚至是稀缺的，所以作为凡人（<a href="http://anytao.net/blog/post/2009/07/10/anytao-think-02-imnotgenius.aspx">必须认识这一点</a>），从专注做起是个前提。在专注的基础上，你可以选择性涉猎，同时选择也是以专注为起点的。</li>
<li><strong>管理</strong>。管理是高阶目标，<strong><em>项目管理</em></strong>、<em><strong>产品管理</strong></em>、<strong><em>质量管理</em></strong>、<em><strong>交付管理</strong></em>，都是开发课题中的重中之中，很多时候管理不是PM一个人的事情，作为开发中的任何角色，都应该给予足够的关注。</li>
<li><strong>远景与远见</strong>。速度与激情，从来都是这个行业的魅力，成功的基础来自早于他人的预测和远见，只知道低头造车是造不出好车的，<a href="http://anytao.net/blog/post/2009/08/05/anytao-recommand-04-guanzhi.aspx">Windows 
NT的故事</a>，就给了我足够的思考和启迪，现在我们还在几乎20年前的内核上工作，没有远见是不可能有NT的成功。同样的道理，成功的Windows也告诉我们，任何软件产品是不缺乏远见为指导的。</li>
<li><strong>交付与进度控制</strong>。还是项目管理的核心，人、时间和资源，在以进度为指导的开发线上相互斗争，核心的管理就是在这三者关系上不断的怒吼、妥协和变相。</li>
<li><strong>性能、安全、可靠</strong>。这始终是合格产品的必须因素。</li>
<li><strong>沟通与协调</strong>。与人斗其乐无穷，简单的说就是这么回事儿，但是其实并不简单。</li>
<li><strong>培训</strong>。在软件领域，培训与被培训是个走不完的课题，任何强人必须分享才能更强，任何强人也必须学习，才能更更强。</li>
<li><strong>写博客</strong>。把写博客作为一项，不是调侃而是经验，不断的写出自己的心声，才有不断的激情与反思，同时写博客也是把热情高涨的工作思维冷却的过程，静心的推进人生是最享受的过程，所以确切的说，我是在享受这个过程。</li>
<li><strong>。。。，确实，其实，还有更多。。。</strong></li>
</ul>
<p>可能，还有很多关注更高的东西，但是现阶段的就这些吧，不然，亲爱的看官也可以建议。</p>
<h3>&nbsp;</h3>
<div class="wp_codebox">
<pre>更多精彩，尽在<a target="_blank" href="http://anytao.net/blog">anytao.net</a></pre>
</div>
<p>&nbsp;</p>
<div id="MySignature">
<p class="class"><a href="http://i.anytao.com/">anytao</a> | <a href="http://www.anytao.com/" class="copyright">&copy; 2009 Anytao.com</a></p>
<p class="class">2009/08/10 | <a href="http://anytao.net/">http://anytao.net</a> | 
<a href="http://anytao.net/blog/post/2009/08/10/anytao-think-03-turnmypoint.aspx">http://anytao.net/blog/post/2009/08/10/anytao-think-03-turnmypoint.aspx</a></p>
<p class="class">本文以&ldquo;现状&rdquo;提供且没有任何担保，同时也没有授予任何权利。本文版权归作者所有，欢迎转载，但未经作者同意必须保留此段声明，且在文章页面明显位置给出原文连接，否则保留追究法律责任的权利。</p>
</div>
</p><img src="http://www.cnblogs.com/anytao/aggbug/1542857.html?type=1" width="1" height="1" alt=""/><p>评论: 10　<a href="http://www.cnblogs.com/anytao/archive/2009/08/10/anytao-think-turnmypoint.html#pagedcomment" target="_blank">查看评论</a>　<a href="http://www.cnblogs.com/anytao/archive/2009/08/10/anytao-think-turnmypoint.html#commentform" target="_blank">发表评论</a></p><hr/><p>最新新闻：<br/>· <a href="http://news.cnblogs.com/n/56857/" target="_blank">Facebook与美国在线合作 整合AIM动态功能</a><span style="color:gray">(2010-02-10 16:41)</span><br/>· <a href="http://news.cnblogs.com/n/56855/" target="_blank">NDepend 3.0已与Visual Studio集成</a><span style="color:gray">(2010-02-10 16:17)</span><br/>· <a href="http://news.cnblogs.com/n/56854/" target="_blank">Ruby in Steel 1.5发布，去除IronRuby支持</a><span style="color:gray">(2010-02-10 16:14)</span><br/>· <a href="http://news.cnblogs.com/n/56852/" target="_blank">淘宝网通过索引模式涉足网络文学</a><span style="color:gray">(2010-02-10 15:59)</span><br/>· <a href="http://news.cnblogs.com/n/56851/" target="_blank">苹果发布 iPhone/iPad SDK 3.2 beta2 开发包</a><span style="color:gray">(2010-02-10 15:37)</span><br/></p><p>编辑推荐：<a href="http://news.cnblogs.com/news/tag/Buzz/" target="_blank">Google Buzz相关新闻</a><br/></p><p>网站导航：<a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/" target="_blank">个人主页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/group/" target="_blank">小组</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://kb.cnblogs.com" target="_blank">知识库</a></p>]]></description></item><item><title>[书评杂谈]观止，观而不止</title><link>http://www.cnblogs.com/anytao/archive/2009/08/05/anytao-recommand-04-guanzhi.html</link><dc:creator>Anytao</dc:creator><author>Anytao</author><pubDate>Wed, 05 Aug 2009 08:22:00 GMT</pubDate><guid>http://www.cnblogs.com/anytao/archive/2009/08/05/anytao-recommand-04-guanzhi.html</guid><description><![CDATA[<p>阅读: 1865 评论: 12 作者: <a href="http://www.cnblogs.com/anytao/" target="_blank">Anytao</a> 发表于 2009-08-05 16:22 <a href="http://www.cnblogs.com/anytao/archive/2009/08/05/anytao-recommand-04-guanzhi.html" target="_blank">原文链接</a></p><p>
<p><strong><a target="_blank" href="http://anytao.net/">anytao.net</a> | <a href="http://book.anytao.com/"><strong><span style="color: #ff0000;">《你必须知道的.NET》网站</span></strong></a></strong> | <strong><span style="color: #0000ff;"><a href="http://www.anytao.com/">Anytao技术博客</a>&nbsp; 
</span></strong></p>
<p align="right"><span style="font-family: 微软雅黑;">发布日期：2009.08.05 作者：</span><a href="http://about.anytao.com/"><span style="font-family: 微软雅黑;">Anytao</span></a> <br /><span style="font-family: 微软雅黑; color: #ff0000;">&copy; 2009 </span><a href="http://www.anytao.com/"><span style="font-family: 微软雅黑; color: #ff0000;">Anytao.com</span></a><span style="font-family: 微软雅黑; color: #ff0000;"> 
，Anytao原创作品，转贴请注明作者和出处。</span></p>
<p>读书，是期待畅快淋漓之感的。正如<a href="http://www.cnblogs.com/terrylee">Terry</a>把这本书给我拿到桌上，并说他昨晚近乎<a href="http://www.cnblogs.com/Terrylee/archive/2009/08/05/1539588.html">彻夜狂读的 
感受</a>，由此引起了我十足的兴趣，可想而知我也和他一样在深夜的孤灯下了解了Windows 
NT背后的一个个跌宕起伏的故事。正如张亚勤在推荐中所说，软件不仅是智慧，也是信仰、尊严和魅力的代名词。
</p>
<p><img src="http://images.cnblogs.com/cnblogs_com/anytao/162192/o_anytao-recommand-04-01.png" /> 
</p>
<p>我的人生是几乎每天和Windows交互的人生，跳动的鼠标在文件系统和各种服务间来回穿梭，但是我从来不知道自己打交道的&ldquo;老朋友&rdquo;身上所发生的一切，看起来是很不够意思。《<a href="http://www.china-pub.com/195452">观止</a>》，就是一本介绍Windows 
NT（Windows内核）的故事书。我们熟悉的Windows 2000、Windows XP、Windows Vista和即将问世的Windows 
7内核皆归于Windows 
NT的强大动力支持。在书中我领略了一帮离经叛道的天才坐在一起为一个改变世界的梦想而狂热逐日的激情往事，在超人大卫.卡特勒近乎疯狂的吼叫声中聆听曲曲折折的重构和延迟，在5年的时间轴上学习关于磨砺、答案和信念的坚持。
</p>
<p>本书的原名叫做Showstopper，用来形容超乎寻常的美丽，同时也在软件世界被赋予最难解决的Bug，对于Windows 
NT而言正是历经千万Showstopper Bug清扫，才迎来如此Showstoppper（美丽）的软件产品。
</p>
<p>编码之余，拿来此书一读，为自己奋斗的心找到一丝引为知己的快感。《<a href="http://www.china-pub.com/195452">观止</a>》，一本可以通宵读完的书。你收获的不光是跌宕起伏的开发故事，而是关于人生、代码和激情的片段。
</p>
<p>&nbsp;</p>
<div class="wp_codebox">
<pre>更多精彩，尽在<a target="_blank" href="http://anytao.net/blog">anytao.net</a></pre>
</div>
<p>&nbsp;</p>
<div id="MySignature">
<p class="class"><a href="http://i.anytao.com/">anytao</a> | <a href="http://www.anytao.com/" class="copyright">&copy; 2009 Anytao.com</a></p>
<p class="class">2009/08/05 | <a href="http://anytao.net/">http://anytao.net</a>&nbsp;| 
<a href="http://anytao.net/blog/post/2009/08/05/anytao-recommand-04-guanzhi.aspx">http://anytao.net/blog/post/2009/08/05/anytao-recommand-04-guanzhi.aspx</a></p>
<p class="class">本文以&ldquo;现状&rdquo;提供且没有任何担保，同时也没有授予任何权利。本文版权归作者所有，欢迎转载，但未经作者同意必须保留此段声明，且在文章页面明显位置给出原文连接，否则保留追究法律责任的权利。</p>
</div>
</p><img src="http://www.cnblogs.com/anytao/aggbug/1539676.html?type=1" width="1" height="1" alt=""/><p>评论: 12　<a href="http://www.cnblogs.com/anytao/archive/2009/08/05/anytao-recommand-04-guanzhi.html#pagedcomment" target="_blank">查看评论</a>　<a href="http://www.cnblogs.com/anytao/archive/2009/08/05/anytao-recommand-04-guanzhi.html#commentform" target="_blank">发表评论</a></p><hr/><p>最新新闻：<br/>· <a href="http://news.cnblogs.com/n/56857/" target="_blank">Facebook与美国在线合作 整合AIM动态功能</a><span style="color:gray">(2010-02-10 16:41)</span><br/>· <a href="http://news.cnblogs.com/n/56855/" target="_blank">NDepend 3.0已与Visual Studio集成</a><span style="color:gray">(2010-02-10 16:17)</span><br/>· <a href="http://news.cnblogs.com/n/56854/" target="_blank">Ruby in Steel 1.5发布，去除IronRuby支持</a><span style="color:gray">(2010-02-10 16:14)</span><br/>· <a href="http://news.cnblogs.com/n/56852/" target="_blank">淘宝网通过索引模式涉足网络文学</a><span style="color:gray">(2010-02-10 15:59)</span><br/>· <a href="http://news.cnblogs.com/n/56851/" target="_blank">苹果发布 iPhone/iPad SDK 3.2 beta2 开发包</a><span style="color:gray">(2010-02-10 15:37)</span><br/></p><p>编辑推荐：<a href="http://news.cnblogs.com/news/tag/Buzz/" target="_blank">Google Buzz相关新闻</a><br/></p><p>网站导航：<a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/" target="_blank">个人主页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/group/" target="_blank">小组</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://kb.cnblogs.com" target="_blank">知识库</a></p>]]></description></item></channel></rss>