<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom"><title type="text">博客园_Colin的技术_分类_基本技术</title><id>http://feed.cnblogs.com/blog/u/11669/category/62127/rss</id><updated>2012-05-26T23:37:29Z</updated><generator>feed.cnblogs.com</generator><link rel="alternate" type="text/html" href="http://www.cnblogs.com/Cajon/category/62127.html"/><link rel="self" type="application/atom+xml" href="http://feed.cnblogs.com/blog/u/11669/category/62127/rss"/><entry><id>http://www.cnblogs.com/Cajon/archive/2011/02/14/1954484.html</id><title type="text">“外部质量”还是“内部质量”</title><summary type="text">这几天看了看《硝烟中的Scrum和XP》，其中作者将产品质量分为两种——“外部质量”和“内部质量”。作者认为，在项目工期紧的时候，外部质量是可以妥协的。而内部质量是不容妥协的。但是，哪些问题属于内部质量呢？</summary><published>2011-02-14T08:45:00Z</published><updated>2011-02-14T08:45:00Z</updated><author><name>Colin Han</name><uri>http://www.cnblogs.com/Cajon/</uri></author><link rel="alternate" href="http://www.cnblogs.com/Cajon/archive/2011/02/14/1954484.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/Cajon/archive/2011/02/14/1954484.html"/><content type="html"/></entry><entry><id>http://www.cnblogs.com/Cajon/archive/2009/08/26/unit-test-experience.html</id><title type="text">[经验总结] 关于单元测试</title><summary type="text">今天看到@jeffz_cn在twitter上问：“私有方法真的不应该单元测试吗？为什么？我觉得有的组件只是逻辑复杂一些，因此会提取私有方法，并且测试这些私有方法的逻辑。如果把这些内容统统从外部“注入”，这样私有的逻辑就变公开了……但是这样难道没有过渡设计的味道吗？”。然后就想起来我在项目中推动单元测试的经过。觉得还是应该总结一...</summary><published>2009-08-26T01:33:00Z</published><updated>2009-08-26T01:33:00Z</updated><author><name>Colin Han</name><uri>http://www.cnblogs.com/Cajon/</uri></author><link rel="alternate" href="http://www.cnblogs.com/Cajon/archive/2009/08/26/unit-test-experience.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/Cajon/archive/2009/08/26/unit-test-experience.html"/><content type="text">今天看到@jeffz_cn在twitter上问：“私有方法真的不应该单元测试吗？为什么？我觉得有的组件只是逻辑复杂一些，因此会提取私有方法，并且测试这些私有方法的逻辑。如果把这些内容统统从外部“注入”，这样私有的逻辑就变公开了……但是这样难道没有过渡设计的味道吗？”。然后就想起来我在项目中推动单元测试的经过。觉得还是应该总结一...</content></entry><entry><id>http://www.cnblogs.com/Cajon/archive/2007/12/29/Avoid_DateTimePicker_Flicker.html</id><title type="text">避免DateTimePicker闪烁的解决方案</title><summary type="text">1. 在WinForm上放置一个TabControl，并设置其Dock属性为Fill。2. 在其中的一个Tab页上放置一个DateTimePicker控件你会发现，当你在XP系统下，ResizeForm时，DateTimePicker会闪烁。研究了很长时间，没有结果。最终放弃C#和Spy++，使用Google研究了一下 :-) 得出结论如下：需要为DateTimePicker控件添加WS_EX_C...</summary><published>2007-12-29T06:46:00Z</published><updated>2007-12-29T06:46:00Z</updated><author><name>Colin Han</name><uri>http://www.cnblogs.com/Cajon/</uri></author><link rel="alternate" href="http://www.cnblogs.com/Cajon/archive/2007/12/29/Avoid_DateTimePicker_Flicker.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/Cajon/archive/2007/12/29/Avoid_DateTimePicker_Flicker.html"/><content type="text">1. 在WinForm上放置一个TabControl，并设置其Dock属性为Fill。2. 在其中的一个Tab页上放置一个DateTimePicker控件你会发现，当你在XP系统下，ResizeForm时，DateTimePicker会闪烁。研究了很长时间，没有结果。最终放弃C#和Spy++，使用Google研究了一下 :-) 得出结论如下：需要为DateTimePicker控件添加WS_EX_C...</content></entry><entry><id>http://www.cnblogs.com/Cajon/archive/2007/08/15/Be_Careful_Of_MDA.html</id><title type="text">.NET 开发中容易被忽略的问题--MDA</title><summary type="text">我们开发中经常看到一些比较奇怪的异常.发生时机不确定，调用堆栈没有。异常信息也很晦涩。最可怕的是，他们往往不可重现。以前，我总以为这些是IDE调试程序的Bug。并且，似乎对程序正确执行没有任何影响。因此也就很少重视。今天在研究StreamWriter的过程中，才发现……</summary><published>2007-08-15T10:56:00Z</published><updated>2007-08-15T10:56:00Z</updated><author><name>Colin Han</name><uri>http://www.cnblogs.com/Cajon/</uri></author><link rel="alternate" href="http://www.cnblogs.com/Cajon/archive/2007/08/15/Be_Careful_Of_MDA.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/Cajon/archive/2007/08/15/Be_Careful_Of_MDA.html"/><content type="text">我们开发中经常看到一些比较奇怪的异常.发生时机不确定，调用堆栈没有。异常信息也很晦涩。最可怕的是，他们往往不可重现。以前，我总以为这些是IDE调试程序的Bug。并且，似乎对程序正确执行没有任何影响。因此也就很少重视。今天在研究StreamWriter的过程中，才发现……</content></entry><entry><id>http://www.cnblogs.com/Cajon/archive/2007/03/21/Multi_Thread_Win_Form.html</id><title type="text">多线程下WinForm开发应该注意哪些问题？</title><summary type="text">昨日，与一同事一起在修一个多线程下使用我们的控件产品的Bug。现将相关的经验发布在这里。1. 标准WinForm控件不支持多线程访问这一点，其实是Windows的机制。.NET 中每一个Control其实都是一个Window，使用这些Window，原则上都应该在创建这个Window的线程中。否则，会产生异常。这一点，似乎Windows也没有强制约束。某些操作可能会扔异常，而有些情况下却不会。比如：...</summary><published>2007-03-21T05:30:00Z</published><updated>2007-03-21T05:30:00Z</updated><author><name>Colin Han</name><uri>http://www.cnblogs.com/Cajon/</uri></author><link rel="alternate" href="http://www.cnblogs.com/Cajon/archive/2007/03/21/Multi_Thread_Win_Form.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/Cajon/archive/2007/03/21/Multi_Thread_Win_Form.html"/><content type="text">昨日，与一同事一起在修一个多线程下使用我们的控件产品的Bug。现将相关的经验发布在这里。1. 标准WinForm控件不支持多线程访问这一点，其实是Windows的机制。.NET 中每一个Control其实都是一个Window，使用这些Window，原则上都应该在创建这个Window的线程中。否则，会产生异常。这一点，似乎Windows也没有强制约束。某些操作可能会扔异常，而有些情况下却不会。比如：...</content></entry><entry><id>http://www.cnblogs.com/Cajon/archive/2007/03/03/662691.html</id><title type="text">配置IIS使用ASP.NET 2.0</title><summary type="text">一般情况下，安装VS 2005时，安装程序会自动配置本地IIS服务使用ASP.NET 2.0。我们可以直接在VS 2005下编写或调试WEB应用程序。 但是，如果我们先安装了VS2005，然后才安装的IIS。这时，IIS会设置为使用ASP.NET 1.0。我们在VS2005中建立WEB程序是会出现下面的提示： The site 'http://localhost/xxxxxx' has not ...</summary><published>2007-03-03T05:41:00Z</published><updated>2007-03-03T05:41:00Z</updated><author><name>Colin Han</name><uri>http://www.cnblogs.com/Cajon/</uri></author><link rel="alternate" href="http://www.cnblogs.com/Cajon/archive/2007/03/03/662691.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/Cajon/archive/2007/03/03/662691.html"/><content type="text">一般情况下，安装VS 2005时，安装程序会自动配置本地IIS服务使用ASP.NET 2.0。我们可以直接在VS 2005下编写或调试WEB应用程序。 但是，如果我们先安装了VS2005，然后才安装的IIS。这时，IIS会设置为使用ASP.NET 1.0。我们在VS2005中建立WEB程序是会出现下面的提示： The site 'http://localhost/xxxxxx' has not ...</content></entry><entry><id>http://www.cnblogs.com/Cajon/archive/2006/08/27/TestPerformanceOfCollection.html</id><title type="text">出乎意料</title><summary type="text">因为工作需要，写了个简单的测试程序测试了一下List&lt;T&gt;, LinkedList&lt;T&gt;, Dictionary&lt;TKey, TValue&gt;, SortedList&lt;TKey, TValue&gt;的性能。测试结果中有两点出乎意料：1. LinkedList的内存占用很大，比List大了将近60%。 我没有细看为什么多出这么多内存占用。但是如果用我自己写的...</summary><published>2006-08-27T07:55:00Z</published><updated>2006-08-27T07:55:00Z</updated><author><name>Colin Han</name><uri>http://www.cnblogs.com/Cajon/</uri></author><link rel="alternate" href="http://www.cnblogs.com/Cajon/archive/2006/08/27/TestPerformanceOfCollection.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/Cajon/archive/2006/08/27/TestPerformanceOfCollection.html"/><content type="text">因为工作需要，写了个简单的测试程序测试了一下List&lt;T&gt;, LinkedList&lt;T&gt;, Dictionary&lt;TKey, TValue&gt;, SortedList&lt;TKey, TValue&gt;的性能。测试结果中有两点出乎意料：1. LinkedList的内存占用很大，比List大了将近60%。 我没有细看为什么多出这么多内存占用。但是如果用我自己写的...</content></entry><entry><id>http://www.cnblogs.com/Cajon/archive/2006/08/07/469981.html</id><title type="text">[转载]高性能托管应用程序设计入门</title><summary type="text">一篇不错的文章，介绍了.NET开发中性能的方方面面。看起来也是翻译过来的，翻译的确实不太好 *_*! 但是值得学习和参考。首页：http://pingce.zhongsou.com/SoftChannel/72342380484755456/20030828/1724489.shtml关于JIT优化的章节，可以直接看其中的第四页。其中介绍了JIT在什么时候会将一个函数内联编译，从而降低方法调用的开...</summary><published>2006-08-07T07:36:00Z</published><updated>2006-08-07T07:36:00Z</updated><author><name>Colin Han</name><uri>http://www.cnblogs.com/Cajon/</uri></author><link rel="alternate" href="http://www.cnblogs.com/Cajon/archive/2006/08/07/469981.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/Cajon/archive/2006/08/07/469981.html"/><content type="text">一篇不错的文章，介绍了.NET开发中性能的方方面面。看起来也是翻译过来的，翻译的确实不太好 *_*! 但是值得学习和参考。首页：http://pingce.zhongsou.com/SoftChannel/72342380484755456/20030828/1724489.shtml关于JIT优化的章节，可以直接看其中的第四页。其中介绍了JIT在什么时候会将一个函数内联编译，从而降低方法调用的开...</content></entry><entry><id>http://www.cnblogs.com/Cajon/archive/2006/06/23/433642.html</id><title type="text">.NET下跨线程访问Control。</title><summary type="text">在.NET中，一个Control是属于一个特定的线程的。如果要在另外一个线程中访问这个Control的Handler（其实，Control的很多属性都会访问到Control的Handler）。.NET 或 操作系统会抛出一个异常。但是，某些时候我们必须这样使用。微软已经在.NET Framework中为我们包装好了方法，供我们使用： public Object Control.Invoke (D...</summary><published>2006-06-23T05:00:00Z</published><updated>2006-06-23T05:00:00Z</updated><author><name>Colin Han</name><uri>http://www.cnblogs.com/Cajon/</uri></author><link rel="alternate" href="http://www.cnblogs.com/Cajon/archive/2006/06/23/433642.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/Cajon/archive/2006/06/23/433642.html"/><content type="text">在.NET中，一个Control是属于一个特定的线程的。如果要在另外一个线程中访问这个Control的Handler（其实，Control的很多属性都会访问到Control的Handler）。.NET 或 操作系统会抛出一个异常。但是，某些时候我们必须这样使用。微软已经在.NET Framework中为我们包装好了方法，供我们使用： public Object Control.Invoke (D...</content></entry></feed>
