FAQ Mixin

Can re-motion mixins do anything that extension methods can't?

With extension methods, you can't mix classes with properties to a target class, because extension classes are static and can't provide state. What's more, extension methods are not dynamic in the sense that you can mix at run-time, based on user input or ad-hoc decisions. With extension methods, all the mixing is decided upon at compile-time. This is okay for some applications, but if there are many vaguely interdependent, overlapping and/or orthogonal features of which only particular combinations are needed at run-time, then re-motion mixins will serve you better. Mix what you need at run-time and leave out the rest. Not coincidentally, it's those cases that can benefit the most from mixin technology in first place.

For completeness, there is one of the re-motion mixins code samples reframed for using an extension method in subversion

A deeper discussion of extension method technology for mixing has been written by Craig Andera, who also brought up this question in an e-mail to the author:
(tip of dah propellor hat, Craig!)