<rss xmlns:a10="http://www.w3.org/2005/Atom" version="2.0"><channel><title>@Techphoria414 Blog</title><link>http://www.techphoria414.com/</link><description>Sitecore, ASP.NET, general technology and CMS blog</description><language>en</language><item><guid isPermaLink="false">{083FFC98-D3AF-4C0A-9860-5C76077DBBBC}</guid><link>http://www.techphoria414.com/Blog/2012/May/Sitecore_Page_Editor_Unleashed</link><title>The Sitecore Page Editor: Unleashed</title><description>&lt;p&gt;Today I had the honor of presenting once again to the Sitecore Users Virtual Group, this time on how to best utilize the Page Editor, as well as some helpful extensions.&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;The Webcast&lt;/strong&gt;&lt;br /&gt;
&lt;object width="560" height="315"&gt;
&lt;param name="movie" value="http://www.youtube.com/v/xsahkjcXWYI?version=3&amp;amp;hl=en_US&amp;amp;rel=0"&gt;
&lt;param name="allowFullScreen" value="true"&gt;
&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/xsahkjcXWYI?version=3&amp;amp;hl=en_US&amp;amp;rel=0" type="application/x-shockwave-flash" width="560" height="315" allowscriptaccess="always" allowfullscreen="true"&gt;&lt;/object&gt;&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;The Example Code&lt;/strong&gt;&lt;br /&gt;
You can download the full Visual Studio Solution used for this demo, including a version of the Dynamic Key Placeholder prototype updated for Sitecore 6.5 Update-4. The solution also includes TDS projects with the items needed to run the site.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&lt;/em&gt;&lt;a href="~/media/techphoria414/Code/SUVGPageEditorUnleashed.ashx"&gt;&lt;em&gt;The Page Editor: Unleashed&lt;/em&gt; Source Code&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Other Helpful Resources&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="/Blog/2012/February/Sitecore-Best-Practices-Part-3-Sublayout-Development-with-Custom-Items-and-Scriptlets"&gt;Sublayout Development with Custom Items and Scriptlets&lt;/a&gt; (as seen in example code)&lt;/p&gt;
&lt;p&gt;&lt;a href="http://stackoverflow.com/questions/7678597/how-to-use-sitecore-query-in-datasource-location-dynamic-datasouce/7681620"&gt;StackOverflow: Create Content Folder&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.sitecore.net/Community/Technical-Blogs/John-West-Sitecore-Blog/Posts/2012/05/Convert-Data-Source-Paths-to-IDs-Using-the-Sitecore-ASPNET-CMS.aspx"&gt;Converting Data Source Paths to IDs&lt;/a&gt; (John West)&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.sitecore.net/Community/Technical-Blogs/John-West-Sitecore-Blog/Posts/2011/07/Add-Presentation-Component-Data-Sources-to-the-Links-Database-in-the-Sitecore-ASPNET-CMS.aspx"&gt;Add Presentation Component Data Sources to the Links Database&lt;/a&gt; (John West)&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.sitecore.net/Community/Technical-Blogs/Getting-to-Know-Sitecore/Posts/2011/01/Handling-Presentation-Component-Settings.aspx"&gt;Handling Presentation Component Settings&lt;/a&gt; (Adam Conn)&lt;/p&gt;
&lt;p&gt;&lt;a href="/Blog/2011/August/Dynamic_Placeholder_Keys_Prototype"&gt;Dynamic Placeholder Keys&lt;/a&gt; (Original Article, including working pre-6.5 version)&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.sitecore.net/community/technical-blogs/getting-to-know-sitecore/posts/2010/10/layout-deltas-what-ifs.aspx"&gt;Layout Deltas What Ifs&lt;/a&gt; (Adam Conn)&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.sitecore.net/Community/Technical-Blogs/John-West-Sitecore-Blog/Posts/2011/09/Programmatically-Update-Layout-Details-with-the-Sitecore-ASPNET-CMS.aspx"&gt;Programmatically Updating Layout Details&lt;/a&gt; (John West)&lt;/p&gt;
&lt;p&gt;&lt;a href="http://trac.sitecore.net/AdvancedDatabaseCrawler/"&gt;Advanced Database Crawler&lt;/a&gt; (Alex Shyba, as referenced with indexing data source content)&lt;/p&gt;
&lt;p&gt;&lt;a href="http://cropper.codeplex.com/"&gt;Cropper&lt;/a&gt; (screen capture tool)&lt;/p&gt;</description><pubDate>Tue, 15 May 2012 17:45:46 -0700</pubDate></item><item><guid isPermaLink="false">{409547D5-6F4B-49E6-84E1-FC8A7F8F1A09}</guid><link>http://www.techphoria414.com/Blog/2012/May/TDS_and_Sitecore_DLLs</link><title>TDS and Sitecore.* DLLs</title><description>&lt;p&gt;One fail-safe feature of &lt;a href="http://www.hhogdev.com/Products/Team-Development-for-Sitecore.aspx"&gt;Team Development for Sitecore&lt;/a&gt; that has bit me a few times is its &lt;a href="http://www.hhogdev.com/Products/Team-Development-for-Sitecore/FAQ.aspx#Configuration_ProjectNamesWithSitecore"&gt;prevention of Sitecore.* DLLs from copying to your web root during a build&lt;/a&gt;. Though I appreciate TDS lookin out, there are times when you have non-module libraries, or modified Shared Source libraries, that you do want deployed on build. To work around this, you can utilize the &lt;em&gt;BeforeFileReplacements &lt;/em&gt;build target. Place the following in your TDS &lt;em&gt;csproj&lt;/em&gt;, just before the closing &lt;em&gt;&amp;lt;/Project&amp;gt;&lt;/em&gt;, and edit &lt;em&gt;DeploySitecoreBinaries &lt;/em&gt;as needed for your assemblies.&lt;/p&gt;
&lt;p&gt;&amp;lt;Target Name="BeforeFileReplacements"&amp;gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;lt;!-- restore certain Sitecore.* DLLs that TDS does not copy --&amp;gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;lt;!-- BeforeFileReplacements will be called after TDS has deleted Sitecore.* from its Output, but before it deploys --&amp;gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;lt;ItemGroup&amp;gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;DeploySitecoreBinaries Include="$(SourceWebPhysicalPath)\Bin\Sitecore.SharedSource.Search.dll;&lt;br /&gt;
$(SourceWebPhysicalPath)\Bin\Sitecore.Sharedsource.dll;&lt;br /&gt;
$(SourceWebPhysicalPath)\Bin\Sitecore.Sharedsource.PartialLanguageFallback.dll;" /&amp;gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;lt;/ItemGroup&amp;gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;lt;Copy SourceFiles="@(DeploySitecoreBinaries)"&lt;br /&gt;
DestinationFiles="@(DeploySitecoreBinaries-&amp;gt;'$(_OutputPath)bin\%(RecursiveDir)%(FileName)%(Extension)')" /&amp;gt;&lt;br /&gt;
&amp;nbsp; &amp;lt;/Target&amp;gt;&lt;/p&gt;</description><pubDate>Tue, 15 May 2012 08:40:09 -0700</pubDate></item><item><guid isPermaLink="false">{940AB581-F837-49B4-AB0C-045107E6926D}</guid><link>http://www.techphoria414.com/Blog/2012/April/Sitecore_Workflow_Emails_with_rss2email</link><title>Sitecore Workflow Emails with rss2email</title><description>&lt;p&gt;One of the coolest features added by Sitecore way back in 6.2 was &lt;a href="http://sdn.sitecore.net/upload/sitecore6/65/content_author's_cookbook-usletter.pdf#page=111"&gt;Workflow RSS Feeds&lt;/a&gt;. My WeBlog cohort Alistair Deneys &lt;a href="http://adeneys.wordpress.com/2009/12/09/sitecore-6-2-rss/"&gt;discussed them a bit&lt;/a&gt; back in 2009. I even recall at Dreamcore 2010, Michael Seifert feigning the approval of a press release onstage, using a workflow RSS feed on his smartphone.&amp;nbsp;You can even&amp;nbsp;&lt;a href="http://office.microsoft.com/en-us/outlook-help/add-an-rss-feed-HA010159539.aspx"&gt;setup RSS feeds in Outlook&lt;/a&gt;, which is a great option for PC users who deal with that wonderful piece of bloatware on a daily basis.&lt;/p&gt;
&lt;p&gt;&lt;img height="198" alt="Workflow RSS in the Workbox" width="595" src="~/media/techphoria414/Images/workflow-rss-workbox.ashx" /&gt;&lt;br /&gt;
&lt;em&gt;Workflow RSS feed links in the Workbox. You can see we're very busy moderating comments here at Techphoria414.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;The content and functionality of the RSS feed is great -- it would take a lot of effort to reproduce it in a custom email action. The example below doesn't even show the field-by-field change comparison that's included when an item is updated.&lt;/p&gt;
&lt;p&gt;&lt;img alt="Sitecore Workflow RSS Content" src="~/media/techphoria414/Images/sitecore-workflow-rss-content.ashx" style="border:1px solid #000000;border-image: initial;" /&gt;&lt;/p&gt;
&lt;p&gt;Despite the possibilities with RSS, I feel this functionality is really underused. RSS after all these years is still a bit foreign to many non-technical users, and the reality is that in a business setting people aren't paying attention to RSS feeds in the same way they do their email. We even encountered a customer recently who couldn't add RSS feeds to their Outlook client because of a network group policy! So we set out to find a simple solution that allowed us to securely turn the content of the RSS feed into emails for our users. We found it in a cool little tool called &lt;a href="http://www.allthingsrss.com/rss2email/"&gt;rss2email&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Rss2email does just what it says -- translates an RSS feed into email. It's a small python script which you configure from the command line, then run on a scheduled basis. It's pretty simple to set it up for Sitecore Workflow RSS:&lt;/p&gt;
&lt;ol&gt;
    &lt;li&gt;&lt;a href="http://www.python.org/download/"&gt;Download and Install Python 2.x&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href="http://www.allthingsrss.com/rss2email/download/"&gt;Download&lt;/a&gt; and unzip rss2email to a location of your choice, e.g. c:\rss2email.&lt;/li&gt;
    &lt;li&gt;Copy config.py.example, rename it to config.py and edit as needed. The settings I changed were:&lt;/li&gt;
    &lt;ol&gt;
        &lt;li&gt;DEFAULT_FROM (something like sitecore-no-reply@mydomain.com)&lt;/li&gt;
        &lt;li&gt;FORCE_FROM=1 (to ensure the default from address is always used)&lt;/li&gt;
        &lt;li&gt;SMTP_SERVER (obviously)&lt;/li&gt;
    &lt;/ol&gt;
    &lt;li&gt;Edit r2e.bat to include an absolute path to python.exe. You could also place python.exe in your PATH.&lt;/li&gt;
    &lt;li&gt;Execute "r2e new &amp;lt;youremail&amp;gt;". This just gives r2e a default email address and creates its data file.&lt;/li&gt;
    &lt;li&gt;Get the URL of the workflow feed you wish to have emailed. &lt;strong&gt;Note:&lt;/strong&gt;&amp;nbsp;The feeds you pull from the Workbox are specific to each Sitecore user! Be sure to get your user to provide their own feed URL.&lt;/li&gt;
    &lt;li&gt;Execute "r2e add &amp;lt;feedurl&amp;gt; &amp;lt;useremail&amp;gt;". You likely will need to put the feed URL in quotes.&lt;/li&gt;
    &lt;li&gt;If you have a lot of existing items in the feed and want to avoid sending the user a slew of emails on first run, execute "r2e run --no-send"&lt;/li&gt;
    &lt;li&gt;Create a windows scheduled task that executes "r2e run" on a regular basis.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Your user will now receive an email for each new item entering the Workflow or Workflow State. I'm not giving the rss2email setup process justice, so be sure to &lt;a href="http://www.allthingsrss.com/rss2email/getting-started-with-rss2email/"&gt;reference the rss2email Getting Started guide&lt;/a&gt;. Once you have it running, the results are pretty great. In fact, the above screenshot was actually taken from my Google Mail account, not an RSS reader.&lt;/p&gt;
&lt;p&gt;We have a small number of users who need these emails, so maintenance of r2e settings is not a huge issue. On a larger install, it would be interesting to find a way to adapt rss2email, or automate the addition/removal of users and their feeds. But quick and easy is what we were looking for, and this certainly delivered. Big thanks to &lt;a href="http://www.gerundinganimal.com/"&gt;Lindsey Smith&lt;/a&gt; for this tool.&lt;/p&gt;</description><pubDate>Thu, 05 Apr 2012 13:30:09 -0700</pubDate></item><item><guid isPermaLink="false">{014207C6-1E0E-4D5C-AE9B-BFE0CE6ED0F3}</guid><link>http://www.techphoria414.com/Blog/2012/March/Glimpse-Debugging-for-Sitecore</link><title>Glimpse Debugging for Sitecore</title><description>
		&lt;p&gt;While I have my gripes about the implementation of Sitecore.Context as essentially a repository for global variables, there is no doubt that the concept provides a great deal of the flexibility of the platform. But this flexibility can also create headaches in debugging. Context item, database, language, device... and further how they're used to construct and apply renderings. There's a lot going on in constructing just a single page. How can we securely expose information about the context to help debug published pages, even in production?&lt;/p&gt;
    &lt;p&gt;
      &lt;a href="http://getglimpse.com/"&gt;Glimpse&lt;/a&gt; is a debugging tool which espouses that "what Firebug is for the client, Glimpse does for the server." It securely and transparently adds a client-side debugging interface to your output pages.&lt;/p&gt;
    &lt;p&gt;
      &lt;object width="560" height="315"&gt;&lt;param name="movie" value="http://www.youtube.com/v/ke8Rw2BGPG0?version=3&amp;amp;hl=en_US&amp;amp;rel=0" /&gt;&lt;param name="allowFullScreen" value="true" /&gt;&lt;param name="allowscriptaccess" value="always" /&gt;&lt;embed src="http://www.youtube.com/v/ke8Rw2BGPG0?version=3&amp;amp;hl=en_US&amp;amp;rel=0" type="application/x-shockwave-flash" width="560" height="315" allowscriptaccess="always" allowfullscreen="true"&gt;&lt;/embed&gt;&lt;/object&gt;       &lt;/p&gt;

    &lt;p&gt;Out of the box, Glimpse provides all kinds of information on what's going on with the server side of your ASP.NET Webforms or MVC application. What if we could extend this UI to include information about the Sitecore Context and other page information? The Glimpse site already provides a lot of great information on &lt;a href="http://getglimpse.com/About"&gt;what Glimpse does&lt;/a&gt; and &lt;a href="http://getglimpse.com/About/QuickStart"&gt;how to install Glimpse&lt;/a&gt;. It also provides a nice tutorial on its &lt;a href="http://getglimpse.com/Help/CreatingPlugins"&gt;dead-simple plugin architecture&lt;/a&gt;. &lt;/p&gt;
    &lt;p&gt;To create a Sitecore plugin for Glimpse:&lt;/p&gt;
    &lt;ul&gt;
      &lt;li&gt;Install Glimpse using NuGet. &lt;/li&gt;
      &lt;li&gt;Create a new class library in your solution. &lt;/li&gt;
      &lt;li&gt;Reference Glimpse.Core, System.ComponentModel.Composition, and System.Web assemblies &lt;/li&gt;
      &lt;li&gt;Create a new class that implements IGlimpsePlugin &lt;/li&gt;
      &lt;li&gt;Mark your class with the attribute [Glimpse.Core.Extensibility.GlimpsePluginAttribute()] &lt;/li&gt;
      &lt;li&gt;Implement the GetData method to return a List of object arrays containing your debugging data &lt;/li&gt;
      &lt;li&gt;Implement the Name property to return the string "Sitecore" &lt;/li&gt;
      &lt;li&gt;Drop your new assembly into your Glimpse-enabled application&lt;/li&gt;
    &lt;/ul&gt;
    &lt;p&gt;The result may look something like this:&lt;/p&gt;
    &lt;p&gt;
      &lt;a href="~/media/techphoria414/Images/sitecore-glimpse.ashx" target="_blank"&gt;
        &lt;img style="WIDTH: 590px; HEIGHT: 232px" alt="Sitecore Debugging with Glimpse" src="~/media/techphoria414/Images/sitecore-glimpse.ashx?h=232&amp;amp;w=590&amp;amp;as=1" /&gt; &lt;/a&gt;
      &lt;br /&gt;
      &lt;em&gt;click to enlarge&lt;/em&gt; &lt;/p&gt;
    &lt;p&gt;
      &lt;a href="~/media/techphoria414/Code/HansonDodgeGlimpse.ashx"&gt;Download an example Glimpse plugin for Sitecore&lt;/a&gt; &lt;/p&gt;
    &lt;p&gt;You can either integrate this project with your solution if you'd like to make modifications, or include the built assembly as-is in your Glimpse-enabled project. It provides some basic information about the page, but I could certainly envision extending this to include more information, akin to the Sitecore Debug view.&lt;/p&gt;</description><pubDate>Wed, 28 Mar 2012 09:44:08 -0700</pubDate></item><item><guid isPermaLink="false">{AB6A5463-14B1-4EA2-9253-055F8526B284}</guid><link>http://www.techphoria414.com/Blog/2012/March/Change-Item-Templates-With-Sitecore-PowerShell</link><title>Changing Item Templates With Sitecore PowerShell</title><description>
		&lt;p&gt;So I'm starting to explore the &lt;a href="http://trac.sitecore.net/SitecorePowershellConsole"&gt;Sitecore PowerShell Console&lt;/a&gt; module from &lt;a href="http://blog.najmanowicz.com/"&gt;Adam Najmanowicz&lt;/a&gt;, and I think the community could benefit from a few more example scripts. I'm working on some enhancements to &lt;a href="http://trac.sitecore.net/WeBlog"&gt;WeBlog&lt;/a&gt; that will allow you to more easily use different templates for each blog, which required me to change the template of a large number of entries. PowerShell made this easy once I figured it out:&lt;/p&gt;
    &lt;p&gt;$master = [Sitecore.Configuration.Factory]::GetDatabase("master");&lt;br /&gt;$entryTemplate = $master.Templates["YouPhoria/Blog/Entry"];&lt;br /&gt;cd master:\Content\Home\Blog\;&lt;br /&gt;Get-ChildItem -recurse | ForEach-Object { if ($_.TemplateName -eq "BlogEntry") { $_.ChangeTemplate($entryTemplate) } };&lt;/p&gt;
    &lt;p&gt;And there you go.&lt;/p&gt;
    &lt;p&gt;Obligatory note: You could also do this using &lt;a href="http://www.codeflood.net/revolver/"&gt;Revolver&lt;/a&gt;, a command prompt module from my WeBlog partner in crime &lt;a href="http://adeneys.wordpress.com/"&gt;Alistair Deneys&lt;/a&gt;.&lt;/p&gt;</description><pubDate>Mon, 19 Mar 2012 22:12:38 -0700</pubDate></item><item><guid isPermaLink="false">{DCE7C1AF-52B0-42E0-ACC1-D4A59C18FED0}</guid><link>http://www.techphoria414.com/Blog/2012/February/Sitecore-Best-Practices-Part-3-Sublayout-Development-with-Custom-Items-and-Scriptlets</link><title>T414 Sitecore Best Practices Part 3: Sublayout Development with Custom Items and Scriptlets</title><description>
		&lt;p&gt;The T414 Sitecore Best Practices Series is a screencast overview of the foundational pieces we use at &lt;a href="http://www.hansondodge.com/"&gt;Hanson Dodge Creative&lt;/a&gt; in our Sitecore development projects. Part 3 demonstrates our approach to creating Sublayouts using custom item classes (generated by the &lt;a href="http://trac.sitecore.net/CustomItemGenerator"&gt;Custom Item Generator&lt;/a&gt; shared source module) and scriptlet-based user controls for efficient, clean Sitecore development that's Page Editor friendly. I've outlined this approach &lt;a href="/Blog/2010/December/Sitecore-Custom-Items-and-Sublayout-Coding-with-Scriptlets"&gt;in a previous post&lt;/a&gt; as well.&lt;/p&gt;
    &lt;p&gt;
      &lt;a href="/Blog/2012/February/Sitecore-Best-Practices-Part-1-Introduction-to-TDS"&gt;Part 1: Introduction to TDS is available here.&lt;/a&gt; &lt;/p&gt;
    &lt;p&gt;
      &lt;a href="/Blog/2012/February/Sitecore-Best-Practices-Part-2-Solution-Structure-and-Working-with-TDS"&gt;Part 2: Solution Structure and Working with TDS is available here.&lt;/a&gt; &lt;/p&gt;
    &lt;embed height="315" type="application/x-shockwave-flash" width="560" src="http://www.youtube.com/v/bTOsc09V-a0?version=3&amp;amp;hl=en_US" allowfullscreen="true" allowscriptaccess="always"&gt;&lt;/embed&gt;</description><pubDate>Wed, 08 Feb 2012 14:55:13 -0800</pubDate></item><item><guid isPermaLink="false">{E7FA6B58-EDB8-4B96-946A-E997436CF1C0}</guid><link>http://www.techphoria414.com/Blog/2012/February/Sitecore-Best-Practices-Part-2-Solution-Structure-and-Working-with-TDS</link><title>T414 Sitecore Best Practices Part 2: Solution Structure and Working with TDS</title><description>&lt;p&gt;The T414 Sitecore Best Practices Series is a screencast&amp;nbsp;overview of the foundational pieces we use at &lt;a href="http://www.hansondodge.com/"&gt;Hanson Dodge Creative&lt;/a&gt; in our Sitecore development projects. Part 2 dives into the specifics of Visual Studio solution structure, TDS project configuration, and using TDS.&lt;/p&gt;
&lt;p&gt;
&lt;a href="/Blog/2012/February/Sitecore-Best-Practices-Part-1-Introduction-to-TDS"&gt;Part 1: Introduction to TDS&amp;nbsp;is available here.&lt;/a&gt; &lt;/p&gt;
&lt;a href="/Blog/2012/February/Sitecore-Best-Practices-Part-3-Sublayout-Development-with-Custom-Items-and-Scriptlets"&gt;
&lt;p&gt;Part 3: Sublayout Development with Custom Items and Scriptlets is available here.&lt;/p&gt;
&lt;p&gt;
&lt;embed height="315" type="application/x-shockwave-flash" width="560" src="http://www.youtube.com/v/7mFK6S-Dm4A?version=3&amp;amp;hl=en_US" allowfullscreen="true" allowscriptaccess="always"&gt;&lt;/embed&gt;
&lt;/p&gt;
&lt;/a&gt;
&lt;p&gt;UPDATE:&lt;br /&gt;
Sean Holmesby of &lt;a href="http://www.igloo.com.au/"&gt;Igloo Digital&lt;/a&gt; has &lt;a href="http://blog.igloo.com.au/?p=4487"&gt;a nice series of posts&lt;/a&gt; that also get into some details of TDS use and configuration, including some known "gotchas" that you may run into.&lt;/p&gt;
&lt;p&gt;UPDATE #2:&lt;br /&gt;
If you're having trouble getting your Sitecore.* DLLs to copy on build, &lt;a href="/Blog/2012/May/TDS_and_Sitecore_DLLs"&gt;check this out&lt;/a&gt;.&lt;/p&gt;</description><pubDate>Tue, 07 Feb 2012 12:35:45 -0800</pubDate></item><item><guid isPermaLink="false">{F5102CE2-5411-4FA1-95EC-3BA1D3B5E32A}</guid><link>http://www.techphoria414.com/Blog/2012/February/Sitecore-Best-Practices-Part-1-Introduction-to-TDS</link><title>T414 Sitecore Best Practices Part 1: Introduction to TDS</title><description>
		&lt;p&gt;Over the next 3 days I'll be posting a series of screencast videos that demonstrate the standards and best practices we've developed for Sitecore projects at &lt;a href="http://www.hansondodge.com/"&gt;Hanson Dodge Creative&lt;/a&gt;. The foundational pieces of our standards include &lt;a href="http://www.hhogdev.com/products/team-development-for-sitecore.aspx"&gt;Team Development for Sitecore&lt;/a&gt; (TDS), the &lt;a href="http://trac.sitecore.net/CustomItemGenerator"&gt;Custom Item Generator&lt;/a&gt; shared source module, and &lt;a href="/Blog/Sitecore-Custom-Items-and-Sublayout-Coding-with-Scriptlets.aspx"&gt;scriptlet-based sublayout development&lt;/a&gt;. Part 1 of the series is a shorter video providing a high-level introduction to TDS and the separation of development and web roots on your filesystem.&lt;/p&gt;
    &lt;p&gt;You can also &lt;a href="http://prezi.com/nxcwzp_fsxoh/team-development-for-sitecore-basics/"&gt;view the Prezi that I created for this screencast&lt;/a&gt;.&lt;/p&gt;

		&lt;p&gt;
      &lt;a href="/Blog/2012/February/Sitecore-Best-Practices-Part-2-Solution-Structure-and-Working-with-TDS"&gt;Part 2: Solution Structure and Working with TDS is available here.&lt;/a&gt;
    &lt;/p&gt;
    &lt;p&gt;
      &lt;a href="/Blog/2012/February/Sitecore-Best-Practices-Part-3-Sublayout-Development-with-Custom-Items-and-Scriptlets"&gt;Part 3: Sublayout Development with Custom Items and Scriptlets is available here.&lt;/a&gt;
    &lt;/p&gt;

&lt;object width="560" height="315"&gt;&lt;param name="movie" value="http://www.youtube.com/v/Tlf6nI32o2k?version=3&amp;amp;hl=en_US" /&gt;&lt;param name="allowFullScreen" value="true" /&gt;&lt;param name="allowscriptaccess" value="always" /&gt;&lt;embed src="http://www.youtube.com/v/Tlf6nI32o2k?version=3&amp;amp;hl=en_US" type="application/x-shockwave-flash" width="560" height="315" allowscriptaccess="always" allowfullscreen="true"&gt;&lt;/embed&gt;&lt;/object&gt;

    &lt;p&gt;
      &lt;br /&gt;Happy Sitecoring,&lt;br /&gt;Nick Wesselman / &lt;a href="https://twitter.com/#!/techphoria414"&gt;techphoria414&lt;/a&gt;&lt;/p&gt;</description><pubDate>Mon, 06 Feb 2012 13:00:18 -0800</pubDate></item><item><guid isPermaLink="false">{22D5C486-FFBE-44AB-B626-5BBCFC99C89F}</guid><link>http://www.techphoria414.com/Blog/2011/October/WeBlog-Summit-Coming-Soon</link><title>It's On: WeBlog Summit at Sitecore HQ</title><description>
		&lt;p&gt;I'm excited to announce that in less than two weeks, I will be representing &lt;a href="http://www.hansondodge.com/"&gt;Hanson Dodge Creative&lt;/a&gt; at the WeBlog Summit in Copenhagen, Denmark at Sitecore HQ. Mark van Aalst, Alistair Deneys and I have been working on WeBlog (formerly EviBlog) for over two years now, each from our own corner of the world. Now, for the entirety of the third week of October, we'll be together in the same place, working toward our goal of creating world-class blogging functionality for Sitecore CMS. We are very grateful to Sitecore for hosting us and providing us access to the great minds they have amassed.&lt;/p&gt;
    &lt;p&gt;If you've ever had a feature idea for WeBlog, now is the time to let us know! Post your ideas to the &lt;a href="http://sdn.sitecore.net/forum//ShowForum.aspx?ForumID=30"&gt;WeBlog Forum on SDN&lt;/a&gt;.&lt;/p&gt;
    &lt;p&gt;
      &lt;img alt="" style="WIDTH: 650px; HEIGHT: 359px" src="~/media/techphoria414/Images/WeBlog-World.ashx?w=650&amp;amp;h=359&amp;amp;as=1" /&gt; &lt;/p&gt;
    &lt;p&gt;- Nick Wesselman&lt;br /&gt;&lt;a href="http://www.twitter.com/techphoria414"&gt;@techphoria414&lt;/a&gt;&lt;/p&gt;</description><pubDate>Thu, 06 Oct 2011 09:16:03 -0700</pubDate></item><item><guid isPermaLink="false">{4ABE633F-763F-4715-9904-DDC0050862F7}</guid><link>http://www.techphoria414.com/Blog/2011/September/Failsafe-for-non-Debug-TDS-Builds</link><title>A Failsafe For non-Debug TDS Builds</title><description>Another advantage of Team Development for Sitecore is that deployment to your various environments can be configured as part of the Solution's Build Configurations, allowing you to easily deploy either right from your desktop or as part of an automated build process. The side effect of this is that if you don't remember switching to say, your QA server's build configuration, you can easily deploy in-progress code to an environment that's not your local machine. (I will not confirm nor disconfirm I've done this.) Though you probably don't want your production environment fully configured in TDS anyway, even a deploy to a QA or UAT server would be enough to get someone knocking on your door asking why "everything is broken."&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;We put together a quick failsafe to prevent this. You'll need to install the &lt;a href="http://msbuildextensionpack.codeplex.com/releases/view/57599"&gt;MSBuild Extension Pack&lt;/a&gt;. The example below assumes v4.0, x86. If the build is running in Visual Studio, and is anything other than a Debug build, a confirmation dialog appears that requires you to type in a super secret password before the build will continue. To add to your build, unload your TDS project, edit the .csproj, and paste in, perhaps near the bottom of the project config.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;    &amp;lt;Import Project="$(MSBuildExtensionsPath)\ExtensionPack\4.0\MSBuild.ExtensionPack.tasks" /&amp;gt;&lt;/div&gt;&lt;div&gt;    &amp;lt;Target Name="BeforeSitecoreBuild"&amp;gt;&lt;/div&gt;&lt;div&gt;        &amp;lt;CallTarget Targets="ConfirmNonDebugBuild" Condition="'$(BuildingInsideVisualStudio)' == 'true' And '$(Configuration)' != 'Debug'"/&amp;gt;&lt;/div&gt;&lt;div&gt;    &amp;lt;/Target&amp;gt;&lt;/div&gt;&lt;div&gt;    &amp;lt;Target Name="ConfirmNonDebugBuild"&amp;gt;&lt;/div&gt;&lt;div&gt;        &amp;lt;MSBuild.ExtensionPack.UI.Dialog TaskAction="Prompt" Title="Confirm Build" Button2Text="Cancel" Text="Type 'whiskey' below to confirm build to $(Configuration)"&amp;gt;&lt;/div&gt;&lt;div&gt;            &amp;lt;Output TaskParameter="ButtonClickedText" PropertyName="Clicked"/&amp;gt;&lt;/div&gt;&lt;div&gt;            &amp;lt;Output TaskParameter="UserText" PropertyName="Typed"/&amp;gt;&lt;/div&gt;&lt;div&gt;        &amp;lt;/MSBuild.ExtensionPack.UI.Dialog&amp;gt;&lt;/div&gt;&lt;div&gt;        &amp;lt;Message Text="Button Text: $(Clicked) / Text: $(Typed)" Importance="high"/&amp;gt;&lt;/div&gt;&lt;div&gt;        &amp;lt;Error Condition="$(Clicked) == 'Cancel' Or $(Typed) != 'whiskey'"/&amp;gt;&lt;/div&gt;&lt;div&gt;    &amp;lt;/Target&amp;gt;&lt;/div&gt;&lt;/div&gt;</description><pubDate>Thu, 15 Sep 2011 16:43:27 -0700</pubDate></item><item><guid isPermaLink="false">{E0D02A95-E2BE-4856-A7B9-2601EDEFB76D}</guid><link>http://www.techphoria414.com/Blog/2011/September/Illegal_Characters_in_Path_Exception_in_Sitecore_Preview</link><title>Illegal Characters in Path Exception in Sitecore Preview</title><description>Just filed a bug report with Sitecore Support. In case you are out there searching Google for the same exception, here's the issue. This is Sitecore 6.4.1 rev. 110720.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;One of my developers accidentally applied Layout Details to a template, instead of its Standard Values. This used to work, even though it is not a best practice. When opening items based on the template, most of the time he would get the error below. This seems to be due to WebEditRibbon.ConvertToJson not finding the Layout Details on the template, then calling the wrong method on XmlDocument (Load instead of LoadXml).&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: monospace; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; "&gt;&lt;pre style="font-family: 'Lucida Console'; font-size: 0.9em; "&gt;[ArgumentException: Illegal characters in path.]
   System.IO.Path.CheckInvalidPathChars(String path) +142
   System.IO.Path.NormalizePath(String path, Boolean fullCheck, Int32 maxPathLength) +100
   System.IO.Path.GetFullPath(String path) +187
   System.Xml.XmlResolver.ResolveUri(Uri baseUri, String relativeUri) +131
   System.Xml.XmlTextReaderImpl..ctor(String url, XmlNameTable nt) +135
   System.Xml.XmlDocument.Load(String filename) +85
   Sitecore.Web.UI.WebControls.WebEditRibbon.ConvertToJson(String layout) +210
   Sitecore.Web.UI.WebControls.WebEditRibbon.Render(HtmlTextWriter output, Item item) +1268
   Sitecore.Web.UI.WebControl.Render(HtmlTextWriter output) +387
   System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children) +246
   System.Web.UI.HtmlControls.HtmlForm.RenderChildren(HtmlTextWriter writer) +315
   System.Web.UI.HtmlControls.HtmlContainerControl.Render(HtmlTextWriter writer) +48
   System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter)
   +11363410
   System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children) +246
   System.Web.UI.Page.Render(HtmlTextWriter writer) +40
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint,
   Boolean includeStagesAfterAsyncPoint) +5290&lt;/pre&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;The solution is simply to apply the layout details to the Standard Values, instead of the Template itself.&lt;/div&gt;</description><pubDate>Wed, 14 Sep 2011 12:43:36 -0700</pubDate></item><item><guid isPermaLink="false">{0D9746D6-A97D-42F3-A141-C41200F576F5}</guid><link>http://www.techphoria414.com/Blog/2011/September/TDS_and_Sitecore_DLLs</link><title>TDS and Sitecore.* DLLs</title><description>
		&lt;p&gt;Quick one for you. If you're using TDS for Sitecore, you've no doubt run into the issue that any DLLs starting with Sitecore.* will not deploy. Though an admirable protection against deployment of core Sitecore DLLs, it can be an issue with Shared Source modules that are not installed through packages, or Sitecore.Support.* DLLs. The quick fix is to unload your TDS project and edit its .csproj, and add a BeforeFileReplacements event handler such as the following.&lt;/p&gt;    &lt;pre&gt;  &amp;lt;Target Name="BeforeFileReplacements"&amp;gt;
    &amp;lt;!-- restore certain Sitecore.* DLLs that TDS refuses to copy --&amp;gt;
    &amp;lt;!-- BeforeFileReplacements will be called after TDS has deleted Sitecore.*
    from its Output, but before it deploys --&amp;gt;
    &amp;lt;ItemGroup&amp;gt;
      &amp;lt;DeploySitecoreBinaries Include="$(SourceWebPhysicalPath)\Bin\Sitecore.SharedSource.Search.dll;" /&amp;gt;
    &amp;lt;/ItemGroup&amp;gt;
    &amp;lt;Copy SourceFiles="@(DeploySitecoreBinaries)"
DestinationFiles="@(DeploySitecoreBinaries-&amp;gt;'$(_OutputPath)bin\%(RecursiveDir)%(FileName)%(Extension)')" /&amp;gt;
  &amp;lt;/Target&amp;gt;&lt;/pre&gt;

&lt;p&gt;UPDATE 9/14/2011: Changed the name of the Item Group. It was deploying everything in the bin\ folder, including Sitecore.Kernel. I assume because the group name SourceWebBinaries was previously used by TDS.&lt;/p&gt;&lt;p&gt;Enjoy, &lt;br /&gt;Nick / @techphoria414&lt;/p&gt;</description><pubDate>Mon, 12 Sep 2011 21:33:14 -0700</pubDate></item><item><guid isPermaLink="false">{563719AD-5616-4BB8-B193-11B4A7218F0C}</guid><link>http://www.techphoria414.com/Blog/2011/August/Dynamic_Placeholder_Keys_Prototype</link><title>Dynamic Placeholder Keys Prototype</title><description>
		&lt;p&gt;Sitecore is undoubtedly putting increased effort and attention on the Page Editor as both an editing and design tool. This is evident in features such as the Unified Page Editor, layout deltas, and parameters templates. Sitecore 6.4 makes it very easy for a content editor to add a rendering to a placeholder, and even select or create a data source item for it.&lt;/p&gt;
    &lt;p&gt;However, &lt;a href="http://sdn.sitecore.net/SDN5/Forum/ShowPost.aspx?PostID=31250"&gt;a recent SDN post&lt;/a&gt; brought to light a limitation of the Sitecore layout engine that can make it difficult to build complex pages using placeholders and renderings. The poster posed a reasonable-sounding request, with a frustrating reality:&lt;/p&gt;
    &lt;p&gt;
      &lt;em&gt;Sublayout A, has placeholder X.&lt;br /&gt;Sublayout B, has placeholder Y.&lt;br /&gt;Sublayout C, has no placeholder.&lt;/em&gt; &lt;/p&gt;
    &lt;p&gt;
      &lt;em&gt;Within X on A, I want to place two instances of sublayout B. They are at the same level as each other, we'll call these B1 and B2. However I now want to put C into B2/Y. This can't be done however as the fully-qualified reference for B1/Y and B2/Y is the same, it will just go into B1/Y.&lt;/em&gt; &lt;/p&gt;
    &lt;p&gt;Just today, I had this very situation come up with one of our Information Architects -- how to construct an Accordion Sublayout, with multiple accordion folds, where each of which could contain their own unique content? This could perhaps be done through content heirarchy, perhaps using &lt;a href="http://www.awareweb.com/AwareBlog/Presentation%20Inversion%20of%20Control%20part%201.aspx"&gt;Presentation Inversion of Control&lt;/a&gt; to give some flexibility to the renderings inside the folds. But this is a Content Editor centric approach. Other folks on the thread above did suggest creating additional sublayouts with different placeholder names, but this is a hack and not intuitive to end users.&lt;/p&gt;
    &lt;p&gt;I don't believe there is a perfect solution currently, and I wouldn't be surprised if Sitecore is working the problem. In the mean time though, I've thrown together a quick prototype of a "wrapper" control for the Placeholder control that gives it a dynamic key. The basic idea:&lt;/p&gt;
    &lt;ol&gt;
      &lt;li&gt;Every rendering reference (a rendering assigned to a placeholder in Presentation Details) has a unique ID, though it's not displayed anywhere outside the layout XML. &lt;/li&gt;
      &lt;li&gt;Append that unique ID to keys of placeholders within the referenced Sublayout. This provides a unique value for the placeholder key that should remain constant. (As you can see in the code, obtaining that ID at the time Sitecore is constructing the page structure is a bit difficult.) &lt;/li&gt;
      &lt;li&gt;Supplement the getPlaceholderRenderings pipeline to treat the placeholder as if it didn't have a GUID appended to it, when looking for placeholder settings. &lt;/li&gt;
      &lt;li&gt;Utilize the Page Editor to construct pages -- you will not be able to easily construct pages using dynamic placeholder keys otherwise.&lt;/li&gt;
    &lt;/ol&gt;
    &lt;p&gt;
      &lt;a href="~/media/techphoria414/Code/dynamic_placeholder_keys.ashx"&gt;Download the prototype code&lt;/a&gt; &lt;/p&gt;
    &lt;p&gt;To try out the supplied code, you'll need to&lt;/p&gt;
    &lt;ol&gt;
      &lt;li&gt;Add and compile to your own assembly &lt;/li&gt;
      &lt;li&gt;Add GetDynamicKeyAllowedRenderings to the getPlaceholderRenderings pipeline &lt;/li&gt;
      &lt;li&gt;Add the namespace of the DynamicKeyPlaceholder class to system.web/pages/controls with a tag prefix of your choice &lt;/li&gt;
      &lt;li&gt;Utilize the DynamicKeyPlaceholder class in place of Placeholder in your sublayout, e.g. &amp;lt;xx:DynamicKeyPlaceholder Key="content" /&amp;gt; &lt;/li&gt;
      &lt;li&gt;Setup your placeholder settings, fire up the Page Editor, and try it out...&lt;/li&gt;
    &lt;/ol&gt;
    &lt;p&gt;A limitation remains that you cannot nest a Sublayout within itself. There is deeper code in Sitecore that prevents this. And sorry kids, can't help you with XSLT renderings here.&lt;/p&gt;
    &lt;p&gt;Let me reiterate that this is indeed prototype code. No guarantees, warantees, support or in-flight movie provided. But I'm very interested in feedback and other ideas. To keep the conversation going, &lt;a href="http://sdn.sitecore.net/SDN5/Forum/ShowPost.aspx?PageIndex=2&amp;amp;PostID=31250"&gt;please comment in the existing SDN thread&lt;/a&gt;.&lt;/p&gt;
    &lt;p&gt;Nick / @techphoria414&lt;/p&gt;</description><pubDate>Thu, 25 Aug 2011 00:09:30 -0700</pubDate></item><item><guid isPermaLink="false">{0A3C7323-C940-414E-B495-4178A6DFE9C2}</guid><link>http://www.techphoria414.com/Blog/2011/May/Sitecore-Users-Group-Meetings</link><title>Sitecore Users Group Meetings</title><description>
		&lt;p&gt;The next fortnight is bringing us two great opportunities to network with other Sitecore users and developers. First up, May 18th is the inaugural meeting of the &lt;a href="http://www.sitecoreug.org/"&gt;Sitecore Users Virtual Group&lt;/a&gt;, sponsored by &lt;a href="http://www.hhogdev.com/"&gt;Hedgehog Development&lt;/a&gt;. The first meeting will be a question and answer session with the Sitecore ninja himself, John West. &lt;a href="http://www.sitecoreug.org/registration.aspx"&gt;Registration can be found here &lt;/a&gt;and &lt;a href="http://www.sitecoreug.org/question.aspx"&gt;questions can be submitted for John here&lt;/a&gt;.&lt;/p&gt;
    &lt;p&gt;The following week, &lt;a href="http://www.hansondodge.com/"&gt;Hanson Dodge Creative&lt;/a&gt; is proud to to be hosting the May 2011 Sitecore Midwest Users Conference here in Milwaukee on May 24th. This user group meeting will have some great content from Sitecore, and an expansion of the WeBlog presentation I did at Dreamcore. If you are within shouting distance of Milwaukee, we hope you can make it. &lt;a href="http://hansondodgecreative.eventbrite.com/"&gt;Registration can be found here&lt;/a&gt;.&lt;/p&gt;
    &lt;p&gt;-Nick&lt;/p&gt;</description><pubDate>Fri, 13 May 2011 10:27:45 -0700</pubDate></item><item><guid isPermaLink="false">{35CBD2F0-9229-4E36-9C54-9CBB3CBEF428}</guid><link>http://www.techphoria414.com/Blog/2011/April/Dreamcore-Day-2-Sessions-and-Wrap-up</link><title>Dreamcore Day 2 Sessions and Wrap up</title><description>
		&lt;p&gt;Well that's about it for Dreamcore. It all went by so fast. I'll do a separate (textual) entry when I get back to Milwaukee wrapping up our Dreamcore experience, but here's my video wrap-up. I had a great time and met a lot of great people. Wish we didn't have to wait a year to all get together again!&lt;/p&gt;
    &lt;p&gt;Also: Please give me some feedback on the video blog format. Would you be interested in ongoing Sitecore vblogs, perhaps with some screencast code samples or demos? Thanks folks.&lt;/p&gt;

&lt;object width="480" height="390"&gt;&lt;param name="movie" value="http://www.youtube.com/v/wmZPxfilQ4A?fs=1&amp;amp;hl=en_US&amp;amp;rel=0" /&gt;&lt;param name="allowFullScreen" value="true" /&gt;&lt;param name="allowscriptaccess" value="always" /&gt;&lt;embed src="http://www.youtube.com/v/wmZPxfilQ4A?fs=1&amp;amp;hl=en_US&amp;amp;rel=0" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="390"&gt;&lt;/embed&gt;&lt;/object&gt;</description><pubDate>Wed, 20 Apr 2011 12:55:24 -0700</pubDate></item><item><guid isPermaLink="false">{F62DB2AD-6AF4-4F49-90A5-EA8FB016CA91}</guid><link>http://www.techphoria414.com/Blog/2011/April/Dreamcore-Day-1-Afternoon-Report</link><title>Dreamcore Day 1 - Afternoon Report</title><description>
		&lt;p&gt;Making some progress on this video blogging thing. Windows Live Movie Maker at least gives me a title screen and a quicker upload. Tonight: What happens in the Neighborhoods of Boston, stays in the Neighborhoods of Boston.&lt;/p&gt;

&lt;object width="480" height="390"&gt;&lt;param name="movie" value="http://www.youtube.com/v/PB1jqNzPhDE?fs=1&amp;amp;hl=en_US&amp;amp;rel=0" /&gt;&lt;param name="allowFullScreen" value="true" /&gt;&lt;param name="allowscriptaccess" value="always" /&gt;&lt;embed src="http://www.youtube.com/v/PB1jqNzPhDE?fs=1&amp;amp;hl=en_US&amp;amp;rel=0" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="390"&gt;&lt;/embed&gt;&lt;/object&gt;</description><pubDate>Tue, 19 Apr 2011 17:37:31 -0700</pubDate></item><item><guid isPermaLink="false">{80933B9A-3367-4CFE-BF1A-32A220392ED3}</guid><link>http://www.techphoria414.com/Blog/2011/April/Dreamcore-Day-1-Morning-Report</link><title>Dreamcore Day 1: Morning Report</title><description>
		&lt;p&gt;For those not lucky enough to be with us in Boston, I'm trying something new at the Techphoria414 Blog, a little video report. The uhhh lighting sucks in my hotel room, and ummm my voice is hoarse from being sick. It's like you're really there!! Enjoy. No autotuning, please.&lt;/p&gt;

&lt;object width="640" height="390"&gt;&lt;param name="movie" value="http://www.youtube.com/v/6nmMjbnQfk8?fs=1&amp;amp;hl=en_US&amp;amp;rel=0" /&gt;&lt;param name="allowFullScreen" value="true" /&gt;&lt;param name="allowscriptaccess" value="always" /&gt;&lt;embed src="http://www.youtube.com/v/6nmMjbnQfk8?fs=1&amp;amp;hl=en_US&amp;amp;rel=0" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="640" height="390"&gt;&lt;/embed&gt;&lt;/object&gt;

    &lt;p&gt;I'm a little surprised at myself for not mentioning ASP.NET MVC. Though they weren't specific, Lars and Kerry did indicate that Sitecore is committed to a deeper integration of MVC into Sitecore. w00t.&lt;/p&gt;</description><pubDate>Tue, 19 Apr 2011 13:01:26 -0700</pubDate></item><item><guid isPermaLink="false">{C1CC3F99-6B2A-4F18-8571-6E54E7CB2227}</guid><link>http://www.techphoria414.com/Blog/2011/April/Dreamcore-Preview</link><title>See you in Boston: Techphoria414 Dreamcore Preview</title><description>
		&lt;p&gt;The second annual Dreamcore conference is upon us. It's a great opportunity for Sitecore geeks to gather, share best practices, and hear about the latest and greatest product developments coming out of Denmark. Last year's conference was very well done -- a great learning experience, and a great time. This year looks to be even better! Here are my highlights from the published agenda.&lt;/p&gt;
</description><pubDate>Sat, 16 Apr 2011 14:34:49 -0700</pubDate></item><item><guid isPermaLink="false">{08A338C7-B0E7-4D8A-9E2D-3415C25D2843}</guid><link>http://www.techphoria414.com/Blog/2011/March/Dewplayer-IE-Not-Loading</link><title>Quick Post: Dewplayer Not Loading in IE</title><description>
		&lt;p&gt;A quick post for all you poor people who may encounter the same issue I do. I found a solution through Google, but it was in French. Hopefully you can find this in English.&lt;/p&gt;
    &lt;p&gt;I was testing out the &lt;a href="http://alsacreations.fr/dewplayer-en.html"&gt;Dewplayer&lt;/a&gt; flash mp3 player on our sister blog, &lt;a href="http://www.you-phoria.com"&gt;you-phoria&lt;/a&gt;, but it wasn't working in IE. Here's the markup that I used, generated from the Dewplayer homepage. Can you see the issue?&lt;/p&gt;
    &lt;p&gt;
      &lt;span class="HTML_TXT"&gt;
        &lt;span class="HTML_TAG"&gt;
          &lt;span style="COLOR: #0000ff"&gt;&amp;lt;&lt;/span&gt;
          &lt;span class="HTML_ELM"&gt;
            &lt;span style="COLOR: #800000"&gt;object&lt;/span&gt;
          &lt;/span&gt;
          &lt;span style="COLOR: #0000ff"&gt; &lt;/span&gt;
          &lt;span class="HTML_ATR"&gt;
            &lt;span style="COLOR: #ff0000"&gt;type&lt;/span&gt;
          &lt;/span&gt;
          &lt;span style="COLOR: #0000ff"&gt;=&lt;span class="HTML_VAL"&gt;"application/x-shockwave-flash"&lt;/span&gt; &lt;/span&gt;
          &lt;span class="HTML_ATR"&gt;
            &lt;span style="COLOR: #ff0000"&gt;data&lt;/span&gt;
          &lt;/span&gt;
          &lt;span style="COLOR: #0000ff"&gt;=&lt;span class="HTML_VAL"&gt;"/mp3/dewplayer-bubble.swf?mp3=/mp3/07-STS9-Mobsters.mp3"&lt;/span&gt; &lt;/span&gt;
          &lt;span class="HTML_ATR"&gt;
            &lt;span style="COLOR: #ff0000"&gt;width&lt;/span&gt;
          &lt;/span&gt;
          &lt;span style="COLOR: #0000ff"&gt;=&lt;span class="HTML_VAL"&gt;"250"&lt;/span&gt; &lt;/span&gt;
          &lt;span class="HTML_ATR"&gt;
            &lt;span style="COLOR: #ff0000"&gt;height&lt;/span&gt;
          &lt;/span&gt;
          &lt;span style="COLOR: #0000ff"&gt;=&lt;span class="HTML_VAL"&gt;"65"&lt;/span&gt; &lt;/span&gt;
          &lt;span class="HTML_ATR"&gt;
            &lt;span style="COLOR: #ff0000"&gt;id&lt;/span&gt;
          &lt;/span&gt;
          &lt;span style="COLOR: #0000ff"&gt;=&lt;span class="HTML_VAL"&gt;"dewplayer"&lt;/span&gt; &lt;/span&gt;
          &lt;span class="HTML_ATR"&gt;
            &lt;span style="COLOR: #ff0000"&gt;name&lt;/span&gt;
          &lt;/span&gt;
          &lt;span style="COLOR: #0000ff"&gt;=&lt;span class="HTML_VAL"&gt;"dewplayer"&lt;/span&gt;&amp;gt;&lt;/span&gt;
        &lt;/span&gt; &lt;span class="HTML_TAG"&gt;&lt;span style="COLOR: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span class="HTML_ELM"&gt;&lt;span style="COLOR: #800000"&gt;param&lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt; &lt;/span&gt;&lt;span class="HTML_ATR"&gt;&lt;span style="COLOR: #ff0000"&gt;name&lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;=&lt;span class="HTML_VAL"&gt;"wmode"&lt;/span&gt; &lt;/span&gt;&lt;span class="HTML_ATR"&gt;&lt;span style="COLOR: #ff0000"&gt;value&lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;=&lt;span class="HTML_VAL"&gt;"transparent"&lt;/span&gt; /&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="HTML_TAG"&gt;&lt;strong&gt;&lt;span style="COLOR: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span class="HTML_ELM"&gt;&lt;span style="COLOR: #800000"&gt;param&lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt; &lt;/span&gt;&lt;span class="HTML_ATR"&gt;&lt;span style="COLOR: #ff0000"&gt;name&lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;=&lt;span class="HTML_VAL"&gt;"movie"&lt;/span&gt; &lt;/span&gt;&lt;span class="HTML_ATR"&gt;&lt;span style="COLOR: #ff0000"&gt;value&lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;=&lt;span class="HTML_VAL"&gt;"dewplayer-bubble.swf"&lt;/span&gt; /&amp;gt;&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt; &lt;span class="HTML_TAG"&gt;&lt;span style="COLOR: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span class="HTML_ELM"&gt;&lt;span style="COLOR: #800000"&gt;param&lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt; &lt;/span&gt;&lt;span class="HTML_ATR"&gt;&lt;span style="COLOR: #ff0000"&gt;name&lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;=&lt;span class="HTML_VAL"&gt;"flashvars"&lt;/span&gt; &lt;/span&gt;&lt;span class="HTML_ATR"&gt;&lt;span style="COLOR: #ff0000"&gt;value&lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;=&lt;span class="HTML_VAL"&gt;"mp3=/mp3/07-STS9-Mobsters.mp3"&lt;/span&gt; /&amp;gt;&lt;/span&gt;&lt;/span&gt; &lt;span class="HTML_TAG"&gt;&lt;span style="COLOR: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="HTML_ELM"&gt;&lt;span style="COLOR: #800000"&gt;object&lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
    &lt;/p&gt;
    &lt;p&gt;Yup. I put Dewplayer in a different folder but only updated one of the paths, the data attribute. It still worked fine in Firefox and Chrome, but in IE it appeared to never finish loading. *facepalm*&lt;/p&gt;</description><pubDate>Tue, 15 Mar 2011 21:03:40 -0700</pubDate></item><item><guid isPermaLink="false">{6A64C79C-880C-4BB9-B75D-3316BA5D03E9}</guid><link>http://www.techphoria414.com/Blog/2011/February/Sitecore-and-ManagedFusion-Rewriter</link><title>Using ManagedFusion URL Rewriter with Sitecore</title><description>Perhaps a rare combination, but we recently encountered a project which required use of the Reverse Proxy functionality of the &lt;a href="http://managedfusion.com/products/url-rewriter/default.aspx"&gt;ManagedFusion Url Rewriter&lt;/a&gt; module. To play nice with Sitecore, you need to add a simple processor to the Sitecore HTTP Request pipeline. Read on for the code.</description><pubDate>Mon, 14 Feb 2011 12:55:10 -0800</pubDate></item><item><guid isPermaLink="false">{AEDF8EB6-A12E-4E5D-AF91-A5E3DD250BD7}</guid><link>http://www.techphoria414.com/Blog/2011/January/Black-Art-of-Sitecore-Data-Providers</link><title>The Black Art of Sitecore Custom Data Providers</title><description>Having coded a few Sitecore data providers, and with the release of &lt;a href="http://www.hansondodge.com/"&gt;Hanson Dodge Creative&lt;/a&gt;’s &lt;a href="http://trac.sitecore.net/BitsOnTheRun"&gt;data provider for the Bits on the Run Video CDN&lt;/a&gt;, I thought I would take the time to gather my thoughts and lessons on implementing custom data providers for Sitecore. There are many ways of integrating external data with Sitecore, but a data provider is one of the most powerful. You can get external data to display and behave as native Sitecore data -- to be browsed, rendered and related to other content within Sitecore. How cool is that? Developing custom data providers is a bit of a black art though – documentation is lacking, and the side effects of such a low-level integration are often unexpected. I’ve tried to capture various tips, HOWTOs, and gotchas here. I’ll also be keeping this entry updated as I come across other useful information.</description><pubDate>Mon, 03 Jan 2011 10:28:00 -0800</pubDate></item><item><guid isPermaLink="false">{69D3E695-28F9-4107-A651-3763D7DC87E8}</guid><link>http://www.techphoria414.com/Blog/2011/January/Bits-on-the-Run-Sitecore-Module</link><title>Bits on the Run Sitecore Module</title><description>Over the holidays, Hanson Dodge Creative released our Sitecore shared source module for &lt;a href="http://www.longtailvideo.com/bits-on-the-run/"&gt;Bits on the Run&lt;/a&gt;, an online video platform. It allows videos hosted on the CDN to appear within the Sitecore Media Library. Check out the &lt;a href="http://trac.sitecore.net/BitsOnTheRun"&gt;module home page&lt;/a&gt; and &lt;a href="http://trac.sitecore.net/BitsOnTheRun/wiki/Documentation"&gt;documentation&lt;/a&gt; for more information.</description><pubDate>Mon, 03 Jan 2011 10:05:03 -0800</pubDate></item><item><guid isPermaLink="false">{28AC5C9A-6B09-4237-96C1-FB01C5DA48D0}</guid><link>http://www.techphoria414.com/Blog/2010/December/Two-Quick-Tips-on-Sitecore-Caching</link><title>Two Quick Tips on Sitecore.Caching</title><description>There are two "gotchas" in using &lt;em&gt;Sitecore.Caching&lt;/em&gt; that have come back to bite me for the last time. I'm going to write about them so that I don't forget -- and hopefully help you out too.</description><pubDate>Mon, 13 Dec 2010 13:19:17 -0800</pubDate></item><item><guid isPermaLink="false">{BF14DB7A-1F15-4118-B33E-7E506E2BE09E}</guid><link>http://www.techphoria414.com/Blog/2010/December/Sitecore-Custom-Items-and-Sublayout-Coding-with-Scriptlets</link><title>Sitecore Custom Items, and Sublayout Coding with Scriptlets</title><description>On a recent Sitecore project, our Sitecore team at &lt;a href="http://www.hansondodge.com/"&gt;Hanson Dodge Creative&lt;/a&gt; attempted a new coding style in our Sitecore Sublayouts, preferring &amp;lt;% scriptlets %&amp;gt; over controls, and making heavy use of &lt;a href="http://blog.velir.com/index.php/2010/10/19/custom-item-generator/"&gt;Velir's Custom Item Generator&lt;/a&gt; as our Domain Model and View Model to avoid tag soup and reduce our dependency on Sitecore webcontrols for field rendering. Read on to find out the why's and the how's.</description><pubDate>Fri, 10 Dec 2010 11:33:27 -0800</pubDate></item><item><guid isPermaLink="false">{49F1BB33-10EA-459F-B8F8-5ED8750477AB}</guid><link>http://www.techphoria414.com/Blog/2010/December/Sitecore-Item-Editors-and-MVC</link><title>Sitecore Item Editor Tricks and ASP.NET MVC</title><description>In a recent Sitecore project we did at &lt;a href="http://www.hansondodge.com/"&gt;Hanson Dodge Creative&lt;/a&gt;, we had a need for custom Item Editors to allow users to search and select items from a legacy CMS database. The basic idea was to select content from the legacy CMS, store content IDs in Sitecore fields, and render the content within Sitecore sublayouts. The approach worked great, but we ran into some challenges (and their solutions) along the way with our Item Editors, which I wanted to share with the Sitecore community. We also made some good use of ASP.NET MVC to build the Item Editors. I'm a &lt;a href="http://www.sitecore.net/Community/Technical-Blogs/John-West-Sitecore-Blog/Posts/2010/10/Sitecore-MVC-Crash-Course.aspx#comments"&gt;big fan of using MVC with Sitecore&lt;/a&gt;, so I thought I'd also take an opportunity here to show one great use of it. &lt;br /&gt;&lt;p&gt;Lots of good info here on creating Item Editors in Sitecore, so read on.&lt;/p&gt;</description><pubDate>Wed, 08 Dec 2010 16:01:39 -0800</pubDate></item><item><guid isPermaLink="false">{EBEA52AD-5790-40CD-9834-5D940B438C39}</guid><link>http://www.techphoria414.com/Blog/2010/November/EviBlog-Youphoria-Branch</link><title>EviBlog Youphoria Branch</title><description>
		&lt;p&gt;Today I'm releasing my updates to &lt;a href="http://www.markvanaalst.com/"&gt;Mark van Aalst&lt;/a&gt;'s &lt;a href="http://trac.sitecore.net/EviBlog"&gt;EviBlog module&lt;/a&gt; for Sitecore. My version of the module is currently branched in the Shared Source repository. Since I developed the updates for a music blog I help run, the branch is named for the &lt;a href="http://j.mp/aEgVFC"&gt;you-phoria blog&lt;/a&gt;.&lt;/p&gt;
    &lt;p&gt;
      &lt;a href="http://svn.sitecore.net/EviBlog/Branches/youphoria/"&gt;http://svn.sitecore.net/EviBlog/Branches/youphoria/&lt;/a&gt; &lt;/p&gt;
    &lt;p&gt;The &lt;a href="http://svn.sitecore.net/EviBlog/Branches/youphoria/Website/data/packages/EviBlog-youphoria-branch.zip"&gt;full installation package&lt;/a&gt; is also available.&lt;/p&gt;
    &lt;p&gt;11/22/2010 Update: Merged with trunk, thanks to &lt;a href="http://twitter.com/adeneys"&gt;@adeneys&lt;/a&gt; for the heads up on his updates for XSS protection and staged configurations.&lt;/p&gt;
    &lt;p&gt;Read on for more information... &lt;/p&gt;</description><pubDate>Sun, 21 Nov 2010 12:32:00 -0800</pubDate></item></channel></rss>
