title: ASP.Net WebAPI controller in separate Class Library
body: <p>I am developing a new large Web Application using ASP.NET Web API. In that, I want to separate all controller classes into one <a href="https://stackoverflow.com/questions/17226671/selfhosted-aspnet-webapi-with-controller-classes-in-different-project">different class library</a> from ASP.NET MVC project.. Please consider following options.</p>
  
  <p><strong>Case 1 :</strong> Keeping controllers in same ASP.NET MVC project</p>
  
  <p><strong>Case 2 :</strong> Separating controllers in separate class library </p>
  
  <ol>
  <li><p>Is it right to go with <strong>Case#1</strong> as I think this controller can be reusable by other projects or hosting in windows service instead of IIS Web Application.</p></li>
  <li><p>Also if in future if I want to access Web-API methods from Android,IPhone native apps then does it works for me in both cases  <strong>Case#1</strong> and <strong>Case#2</strong></p></li>
  <li><p>Is there any performance issue with <strong>Case#2</strong>.</p></li>
  <li><p>What would be the best practice to register multiple controllers in both cases using UnityContainer.RegisterType ?</p></li>
  </ol>