共用方式為


Programming and Peace of Mind

Break where the error HRESULT occurs using WinDbg

When debugging, I found an error HRESULT returned: 0x80020003, but I do not know which function is...

Date: 02/05/2009

An initialization pattern to avoid problems calling virtual method in constructor

You are not supposed to call virtual methods in a constructor. The reason being that at the point...

Date: 10/05/2008

What does it mean for a class to be thread-safe?

We often heard the question about whether a class is thread-safe. The answer can be complicated....

Date: 05/28/2008

Why, in Visual Studio 2008, opening a VSTO Office 2003 AddIn project gets upgrade wizard?

Recently a customer asks an issue about using VSTO (Visual Studio Tools for Office) in Visual Studio...

Date: 05/15/2008

When to catch all exceptions?

One of the general guidelines of exception handling in .Net is to catch the exceptions that you know...

Date: 05/09/2008

Determine share mode of opened file handle

If there is a file already opened and you also want to open it, you need to know the share mode:...

Date: 05/07/2008

To mock or not to mock?

In Wikipedia's definition of Unit test, it says "Ideally, each test case is independent from the...

Date: 04/27/2008

Waste-less Programming

Waste-less programming is my way of thinking about getting better at programming. We, as...

Date: 04/21/2008

Using EventProviderTraceListener

In .Net framework 3.5, there is a new trace listener, EventProviderTraceListener, which you can use...

Date: 04/16/2008

Abstract Class or Interface II

In previous post, I was convinced that abstract class was the right choice for the work I am doing....

Date: 04/07/2008

Abstract Class or Interface I

Recently I'm working on designing a set of .Net APIs for external clients to use. One of the...

Date: 03/31/2008

Programming and Peace of Mind

Robert M. Pirsig quotes in Zen and The Art of Motorcycle Maintenance: 'Assembly of Japanese bicycle...

Date: 03/30/2008