Partial classes feel like inheritance to me. Sometimes I find myself wondering weather I should derive or partialize or make an extension. All three extend the behavior of a type.
Some things that helps me decide between equivalent mechanisms are:
What element of OO programming does it leverage?
Is it considered a first choice or a fall back?
Am I correct in viewing partial classes like inheritance and should their use be limited to certain special cases?
A bonus would be if someone could give me some historical background - who thought them up? was their a specfic problem that they originally solved, comparable to how extension methods facilitated LINQ?