title: ICommand - Should I call CanExecute in Execute?
body: <p>Given that <em>System.Windows.Input.ICommand</em> as 2 primary methods:</p>
  
  <pre><code>interface ICommand {
    void Execute(object parameters);
    bool CanExecute(object parameters);
    ...
  }
  </code></pre>
  
  <p>I expect <em>CanExecute(...)</em> to be called in the Command-supported frameworks before <em>Execute(...)</em> is called.</p>
  
  <p>Internally to my Command Implementation, however, is there any reason to add the <em>CanExecute(...)</em> call inside my <em>Execute(...) implementation</em>?</p>
  
  <p>e.g.:</p>
  
  <pre><code>public void Execute(object parameters){
    if(!CanExecute(parameters)) throw new ApplicationException("...");
    /** Execute implementation **/
  }
  </code></pre>
  
  <p>This becomes relevant in my testing, as I may mock out some interfaces to support <em>CanExecute</em>, and have to do the same mocks when testing <em>Execute</em>.  </p>
  
  <p>Any design thoughts on this?</p>