title: How can I be more productive building MVC C# applications?
body: <p>I'm a relatively new C# developer, and I'm finding myself roughly 1/5th as productive building C# MVC applications in VS 2010 than I was doing it previous in Zend using php <em>by hand using vim</em>.</p>
  
  <p>I work in an iterative cycle of write tests / write code / run tests / integrate &amp; debug problems.</p>
  
  <p>This last step involves building the code using visual studio, debug > attach to process > w3wp.exe and then visiting <a href="http://localhost/App/" rel="nofollow">http://localhost/App/</a> (localy copy of IIS 7.5) and trigging some event/etc that kicks the VS debugger into running.</p>
  
  <p>Upon finding a bug / issue I then stop the debugger, fix it, recompile and repeat.</p>
  
  <p>This is unbelievably slow. </p>
  
  <p>Compiling the application takes maybe 2 seconds, but the first time loading up in the debugger takes about 60-80 seconds. Turning the debugger off improves the speed of this fractionally, but not significantly.</p>
  
  <p>There is nothing special about my copy of IIS; it's just configured to run locally serving the project directory from the visual studio project.</p>
  
  <p>My machine isn't fantastic, its a 3.0Ghz duel core running windows 7 with 4 GB of ram... but this is just beyond a joke. I'm spending more time staring at my screen waiting IIS to <em>do something</em> than I am writing code.</p>
  
  <p>Subsequent page loads are obviously really quick, you know instant page loads. </p>
  
  <p>The issue, I guess, is that IIS needs to run application startup and load files and do whatever it does with the application pool worker when I recompile, which means the initial startup is slow (IOC, web config files, etc).</p>
  
  <p>...and yet, I can't seem to find many other people on the net complaining about this, so I guess it must be some combination of how the application is configured, how IIS is configured and my workflow which are messed up.</p>
  
  <p>What am I doing wrong?</p>
  
  <p>If there's no way around IIS startup, how should I be doing development to avoid this problem?</p>