title: Can you ever have too many "protected virtual" methods?
body: <p>Here's a question for those of you with experience in larger projects and API/framework design.</p>
  
  <p>I am working on a framework that will be used by many other projects in the future, so I want to make it nice and extensible, but at the same time it needs to be simple and easy to understand.</p>
  
  <p>I know that a lot of people complain that the .NET framework contains too many sealed classes and private members. Should I avoid this criticism and open up all my classes with plenty of protected virtual members?</p>
  
  <p>Is it a good idea to make as many of my methods and properties <strong>protected virtual</strong> as possible? Under what situations would you avoid <strong>protected virtual</strong> and make members private.</p>