title: CLR classes redundancy
body: <p>is there any document or an article that describes differences between similar classes of .net, or classes that have different meanings but same names, or those that have different names but do almost the same thing?</p>
  
  <p>for example:
  When should we use <code>System.Timers.Timer</code> vs  <code>System.Threading.Timer</code>?</p>
  
  <p>or what's the difference btw <code>System.ServiceProcess.TimeoutException</code> and <code>System.TimeoutException</code>?</p>
  
  <p>Sometimes you don't even know that you've been using something that actually considered "old" and "archaic" and you should use some better class instead, that was introduced in a new version of .net.</p>
  
  <p>Can you please give more examples. It would be great to know all these kind of classes. </p>