Asp.Net inline (single-file) vs code-behind
<p>In the transition from classic ASP to Asp.Net some developers took to putting their server side code in a  block at the top of their HTML ala:</p>

<pre><code>&lt;%@ Import Namespace="MyDll" %&gt;

&lt;script runat="server"&gt;
    void Page_Load()
    {
    }
&lt;/script&gt;
</code></pre>

<p>This single-page model has some advantages as <a href="http://www.codinghorror.com/blog/archives/000174.html" rel="nofollow">Jeff Atwood describes</a>, however, in my experience I have seen nearly all code put in a separate code-behind file in recent times (ie with VS 2008).</p>

<p>Nevertheless, it turns out a colleague strongly prefers the single file (inline) method over the separate code-behind method.</p>

<p>What are the strengths and weaknesses of each approach? (I've noticed that code collapsing and #regions don't seem to be supported.  Also the pages get rather long and there is no longer the visual separation of client and server side code.  Can you tell I have a preference?)</p>

<p>I realize that variations of this question have been asked before, but I haven't seen anyone actually spell out specifically the pros and cons of each method.</p>

<p><strong>EDIT</strong></p>

<p>Thank you everyone for your thought provoking answers.  I'm still hoping for a list of strengths and weaknesses of each method.  What are the actual features that each has (or doesn't have)?</p>
