Design Guidelines Update: "Core" Method pattern

"urn:schemas-microsoft-com:office:office" />

Minor tweaks to this guideline to
line up with what is, I believe, common practice already..

As always questions, comments and
annotations to me, and the full guidelines can be found
here: 

https://www.gotdotnet.com/team/libraries

----------

*
It is recommended that you provide
customization through protected  (family) methods.

The public interface of a base class should provide a
rich set of functionality for the consumer of that class. However,
customizers of that class often want to implement the fewest methods possible to
provide that rich set of functionality to the consumer. To meet this goal,
provide a set of non-virtual or final public methods that call through to a
single (or very small set of) protected (family) method with the “Core” suffix
that provides implementations for such a method.

public Control{

//…
public void SetBounds(int x, int y, int width, int
height){

     

SetBoundsCore (…);

}

   public void SetBounds(int x,
int y, int width, int

   height, BoundsSpecified
specified){

      

SetBoundsCore (…);

}

   protected virtual void
SetBoundsCore(int x, int y, int width, int

      height,
BoundsSpecified specified){

// Do the real work here.

}
}

Annotation (BradA): Notice in a few parts of
the Framework v1.0 we used the suffix “Impl” for this convention. In
retrospect “Core” is more common and is not an abbreviation, so we choice to
standardize on it.