Should I always use the AndAlso and OrElse operators?

Solution 1:

From MSDN:

Short-Circuiting Trade-Offs

Short-circuiting can improve performance by not evaluating an expression that cannot alter the result of the logical operation. However, if that expression performs additional actions, short-circuiting skips those actions. For example, if the expression includes a call to a Function procedure, that procedure is not called if the expression is short-circuited, and any additional code contained in the Function does not run. If your program logic depends on any of that additional code, you should probably avoid short-circuiting operators.

Solution 2:

Is there ever a circumstance in which I would not want to use the AndAlso operator rather than the And operator?

Sure: if you want to make sure that both sides of the expression are evaluated. This might be the case if, for example, both sides are method calls that return booleans as a result of some other operation that has a side effect.

But in general, use AndAlso/OrElse whenever you would use &&/|| in C/C++/C#, which of course is the vast majority of the time.