title: Should I use tcdl, Tridion tag, or RenderComponentPresentation?
body: <h2>Managing a "Global" Logo with Tridion</h2>
  
  <p>To manage, for example, a website-wide logo and its text elements with SDL Tridion, I'd want it in a component, rendered by a (dynamic) component template, and placed by page templates. My requirements would include:</p>
  
  <ol>
  <li><strong>Logo as a Component</strong>--image as a multimedia (mm) component and link, alt (i.e. "home"), and other text in an optional <em>container component</em></li>
  <li><strong>Dynamic Component Presentation (DCP)</strong>--ability to manage logo's markup presentation and publish changes <em>without requiring publishing every page</em></li>
  <li><strong>Share-able</strong>--ability to localize multimedia and text in components, rather than templates, in lower publications</li>
  </ol>
  
  <p>Authors shouldn't need to place the logo as a component presentation (CP) on every page, although a logo CP just on the homepage could offer dynamic linking.</p>
  
  <h2><code>RenderComponentPresentation()</code>, <code>TCDL</code>, or <code>Tridion</code> tags for "Non CPs"</h2>
  
  <p><strong>For this CP-less approach, I think RenderComponentPresentation() or <a href="http://sdllivecontent.sdl.com/LiveContent/content/en-US/SDL_Tridion_2011_SPONE/concept_B72F4D64713F4682B61C838A013DF8F8" rel="nofollow">TCDL tag</a> would be the right "agnostic" approach. Is one preferred over the other?</strong></p>
  
  <p>For example, my template outputs:</p>
  
  
  
  <pre class="lang-html prettyprint-override"><code>&lt;h3&gt;By tridion: (ASP.NET) tag&lt;/h3&gt;
  &lt;tridion:ComponentPresentation runat="server"
      PageURI="tcm:7-1535-64"
      ComponentURI="tcm:7-1533"
      TemplateURI="tcm:7-1532-32"/&gt;
  
  &lt;h3&gt;By tcdl: tag&lt;/h3&gt;
  &lt;tcdl:ComponentPresentation
      PageURI="@@Page.ID@@"
      type="Dynamic"
      ComponentURI="tcm:7-1533"
      TemplateURI="tcm:7-1532-32"/&gt;
  
  &lt;h3&gt;by render component presentation&lt;/h3&gt;
  @@RenderComponentPresentation('tcm:7-1533','tcm:7-1532-32')@@
  </code></pre>
  
  <p>These get transformed to the following on the file system.</p>
  
  <pre class="lang-html prettyprint-override"><code>&lt;h3&gt;By tridion: (ASP.NET) tag&lt;/h3&gt;
  &lt;tridion:ComponentPresentation runat="server"
      PageURI="tcm:7-1535-64"
      ComponentURI="tcm:7-1533"
      TemplateURI="tcm:7-1532-32"/&gt;
  
  &lt;h3&gt;By tcdl: tag&lt;/h3&gt;
  &lt;tridion:ComponentPresentation runat="server"
      PageURI="tcm:7-1535-64"
      ComponentURI="tcm:7-1533"
      TemplateURI="tcm:7-1532-32"/&gt;
  
  &lt;h3&gt;by render component presentation&lt;/h3&gt;
  &lt;tridion:ComponentPresentation runat="server"
      PageURI="tcm:7-1535-64"
      ComponentURI="tcm:7-1533"
      TemplateURI="tcm:7-1532-32"/&gt;
  </code></pre>
  
  <p>Each <em>renders</em> delivery-side so the user sees the correct CP in the browser.</p>
  
  <h2>Question(s):</h2>
  
  <ol>
  <li><p>Any approach gets us a DCP referenced from a PT with an agnostic format that gets retrieved presentation-side, avoiding full-site publishing. It's not really <em>on</em> the page so we have to be sure to publish the logo with a dynamic CT (it's html fragment in this case). <strong><em>Am I missing anything?</em></strong> </p></li>
  <li><p><strong>Is RenderComponentPresentation() preferred over TCDL or a specific presentation-side syntax?</strong> Any reason I'd actually want <code>&lt;tridion:ComponentPresentation runat="server"&gt;</code> instead?</p></li>
  </ol>
  
  <p>Edit: I was missing the <code>Type="Dynamic"</code> attribute and value, also for a moment thought RenderComponentPresentation didn't create the right CP reference.</p>