<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:blogChannel="http://backend.userland.com/blogChannelModule" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:pingback="http://madskills.com/public/xml/rss/module/pingback/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#">
  <channel>
    <title>Sean Kearney</title>
    <description />
    <link>http://seankearney.com/</link>
    <docs>http://www.rssboard.org/rss-specification</docs>
    <generator>BlogEngine.NET 2.8.0.2</generator>
    <language>en-US</language>
    <blogChannel:blogRoll>http://seankearney.com/opml.axd</blogChannel:blogRoll>
    <dc:creator>Sean Kearney</dc:creator>
    <dc:title>Sean Kearney</dc:title>
    <geo:lat>0.000000</geo:lat>
    <geo:long>0.000000</geo:long>
    <item>
      <title>TDS Deployment Properties Report</title>
      <description>&lt;p&gt;In the &lt;a href="http://sitecorechat.slack.com"&gt;Sitecore Slack Team&lt;/a&gt;'s #TDS channel there was a Team Development for Sitecore feature request from &lt;a href="http://www.kayee.nl"&gt;Robbert Hock&lt;/a&gt;. It was:&lt;/p&gt;
&lt;p style="padding-left: 30px;"&gt;&lt;em&gt;On the Deployment Property Manager, being able to export the settings to Excel (so I can send someone a report of all the stuff that gets depoyed [sic] once, which items are deployed always etc..., and maybe also being able to export it as an image (long one) with all the settings&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;img src="http://seankearney.com/image.axd?picture=%2f2016%2f03%2ftds-feature-request.PNG" alt="" width="595" height="74" /&gt;&lt;/p&gt;
&lt;p&gt;I'm happy to share a quick way to get such a report today! The TDS project file (`.scproj`) is just an XML file and the deployment properties are stored in that XML. We can simply run an XSLT transform on the TDS project file to get what we want.&lt;/p&gt;
&lt;p&gt;I've put this &lt;a href="https://gist.github.com/seankearney/bbed9c18564c374f7b6b"&gt;XSLT file in a Gist&lt;/a&gt;. Please help make it better!&lt;/p&gt;

&lt;script src="https://gist.github.com/seankearney/bbed9c18564c374f7b6b.js"&gt;&lt;/script&gt;

&lt;p&gt;Run this XSLT through your favorite XSLT processor (download &lt;a href="https://www.microsoft.com/en-us/download/details.aspx?displaylang=en&amp;amp;id=21714"&gt;msxsl.exe&lt;/a&gt; from MS if you need one)&lt;/p&gt;
&lt;p&gt;Here are the results.&lt;/p&gt;
&lt;p&gt;&lt;img src="/IMAGES%2f2016%2f03%2ftds-deploy-report.PNG.jpgx" alt="" /&gt;&lt;/p&gt;</description>
      <link>http://seankearney.com/post/TDS-Deployment-Properties-Report</link>
      <comments>http://seankearney.com/post/TDS-Deployment-Properties-Report#comment</comments>
      <guid>http://seankearney.com/post.aspx?id=9591949e-1373-4a8f-84ad-73952e207b20</guid>
      <pubDate>Wed, 23 Mar 2016 04:25:00 +0400</pubDate>
      <category>TDS</category>
      <dc:publisher>Sean</dc:publisher>
      <pingback:server>http://seankearney.com/pingback.axd</pingback:server>
      <pingback:target>http://seankearney.com/post.aspx?id=9591949e-1373-4a8f-84ad-73952e207b20</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://seankearney.com/trackback.axd?id=9591949e-1373-4a8f-84ad-73952e207b20</trackback:ping>
      <wfw:comment>http://seankearney.com/post/TDS-Deployment-Properties-Report#comment</wfw:comment>
      <wfw:commentRss>http://seankearney.com/syndication.axd?post=9591949e-1373-4a8f-84ad-73952e207b20</wfw:commentRss>
    </item>
    <item>
      <title>Sitecore needs a NuGet feed for their assemblies</title>
      <description>&lt;p&gt;&lt;img style="float: left; margin-left: 10px; margin-right: 10px;" src="http://seankearney.com/image.axd?picture=%2f2014%2f08%2fCall-to-Action.jpg" alt="" width="250" /&gt;This is a call to action for Sitecore to start hosting a NuGet feed of all common Sitecore assemblies. However, lets take a look at how the Sitecore development process has changed over the years.&lt;/p&gt;
&lt;p&gt;Historically, Sitecore &lt;a href="http://sdn.sitecore.net/Articles/API/Using%20Visual%20Studio%20,-d-,Net.aspx"&gt;told&lt;/a&gt; developers to &lt;a href="http://www.sitecore.net/learn/blogs/technical-blogs/john-west-sitecore-blog/posts/2010/09/create-a-visual-studio-2010-project-for-a-sitecore-solution.aspx"&gt;work in the 'web root'&lt;/a&gt;. This meant that you had direct access to the Sitecore assemblies as they were already in your bin directory. Some developers would even go so far as to check the entire Sitecore application, along with their code, into source control (yuck!). Some more advanced shops had very complex processes in place to 'stand up' up a Sitecore instance (think Sitecore SIM) before deploying custom code. Builds and deployments of Sitecore sites were typically very haphazard consisting of developers building locally, xcopy code deployments, and manual Sitecore package creation and installation. There weren't many developers writing 'shared source modules' back then either. Developers who were doing it were working in a Sitecore provided SVN system. They built their module, created a Sitecore package and checked it in to SVN.&lt;/p&gt;
&lt;p&gt;So what has changed over the last five years?&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href="http://teamdevelopmentforsitecore.com"&gt;Team Development for Sitecore&lt;/a&gt; (TDS) (Sitecore serialization and other ways to source control your Sitecore items)&lt;/li&gt;
&lt;li&gt;While Sitecore hasn't officially changed their stance about '&lt;a href="http://seankearney.com/post/Visual-Studio-Projects-and-Sitecore"&gt;working outside of the web root&lt;/a&gt;', &lt;a href="http://www.sitecore.net/learn/blogs/technical-blogs/john-west-sitecore-blog/posts/2010/09/create-a-visual-studio-2010-project-for-a-sitecore-solution.aspx#content_0_row2_0_communitycontent_2_CommentsList_CommentItem_14"&gt;John West&lt;/a&gt; and a majority of the community has accepted it as best practice.&lt;/li&gt;
&lt;li&gt;There are A LOT more Sitecore developers creating modules these days.&lt;/li&gt;
&lt;li&gt;Git[Hub] has become the De facto standard for open source projects.&lt;/li&gt;
&lt;li&gt;Sitecore has gotten out of the SVN hosting business; they created the Marketplace to aggregate modules.&lt;/li&gt;
&lt;li&gt;Visual Studio changes (extensions such as Sitecore Rocks, Package web, Slow Cheetah, etc...)&lt;/li&gt;
&lt;li&gt;Web Deploy technologies&lt;/li&gt;
&lt;li&gt;Build (and deploy) server availability and adoption&lt;/li&gt;
&lt;li&gt;NuGet&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Let us consider the current process of developing an open source Sitecore Module.&lt;/p&gt;
&lt;p&gt;The general approach, for me, would be to create a VS solution with a Web App project and a TDS project. I'd grab Sitecore DLLs from somewhere else on my system, copy them to my code workspace and put them in a 'lib' folder. I'd make the appropriate references to these libraries and begin coding. When I was all done, and ready to put the code in the public domain I'd have to remember to not commit the Sitecore DLLs and add a ReadMe telling other developers to add them. In fact, GitHub is filled with &lt;a href="https://github.com/search?q=sitecore.kernel.dll&amp;amp;type=Code"&gt;ReadMe files saying &amp;ldquo;grab the sitecore.kernel.dll from your Sitecore installation&amp;rdquo;&lt;/a&gt;. This is sooo 2009.&lt;/p&gt;
&lt;p&gt;Now, once the code is up on GitHub, I would ideally have some automated build process that will build each commit that happens and make the module available to everyone. There are plenty of build server options out there these days (hosted TeamCity, Jenkins, VS Online, AppVeyor, etc...) and there really is no reason to not have this in place &amp;ndash; except for the little problem of the build server not having easy access to the required Sitecore DLLs! Obviously, the thing that is building your code requires the dependencies; however, if we can't put the Sitecore DLLs in the source control repo, what are we to do?&lt;/p&gt;
&lt;p&gt;Sitecore has the ability to fix that problem by 'simply' providing a NuGet feed of their assemblies! NuGet isn't going anywhere. In fact ASP.NET VNext (which is currently in CTP 2) is basically all package based. Rather than having a ReadMe file that tells the developer to go fetch the assemblies manually, the project should simply have a reference to a specific Sitecore NuGet package.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;I understand that Sitecore may not want to make their assemblies publicly available on the main NuGet feed, so why not have a private feed? Hosting a NuGet feed is trivial or there are third party providers (as they know, since Sitecore Rocks is using one).&amp;nbsp;&lt;/p&gt;
&lt;p&gt;I've tweeted in the past asking for this, but a tweet has a short life. It is time to throw this out there to the community. Will, what I am proposing, make developing/building/distributing Sitecore sites and modules easier?&lt;/p&gt;
&lt;p&gt;So what, you may ask, is the reason I bring this up again now? I'm glad you asked! There will be some upcoming blog posts outlining how I am revamping the build process for a Sitecore open source module.&lt;/p&gt;</description>
      <link>http://seankearney.com/post/Sitecore-needs-a-NuGet-feed-for-their-assemblies</link>
      <comments>http://seankearney.com/post/Sitecore-needs-a-NuGet-feed-for-their-assemblies#comment</comments>
      <guid>http://seankearney.com/post.aspx?id=7c28780b-2285-431e-b8e8-645593fb4d3c</guid>
      <pubDate>Mon, 04 Aug 2014 21:14:00 +0400</pubDate>
      <category>Sitecore</category>
      <dc:publisher>Sean</dc:publisher>
      <pingback:server>http://seankearney.com/pingback.axd</pingback:server>
      <pingback:target>http://seankearney.com/post.aspx?id=7c28780b-2285-431e-b8e8-645593fb4d3c</pingback:target>
      <slash:comments>6</slash:comments>
      <trackback:ping>http://seankearney.com/trackback.axd?id=7c28780b-2285-431e-b8e8-645593fb4d3c</trackback:ping>
      <wfw:comment>http://seankearney.com/post/Sitecore-needs-a-NuGet-feed-for-their-assemblies#comment</wfw:comment>
      <wfw:commentRss>http://seankearney.com/syndication.axd?post=7c28780b-2285-431e-b8e8-645593fb4d3c</wfw:commentRss>
    </item>
    <item>
      <title>TDS Code Generation Output Multiple Files</title>
      <description>&lt;p&gt;A very common feature request we get for &lt;a href="http://TeamDevelopmentForSitecore.com"&gt;Team Development for Sitecore&lt;/a&gt; at &lt;a href="http://hhogdev.com"&gt;Hedgehog&lt;/a&gt; is that people want code generation to create a file per Sitecore template in their project. Currently, when TDS code generation runs it will create a single file with all of the code inside of it. Using partial classes it enabled developers to extend the class with their needs, in a separate file, all the while keeping the code generated part in a file that can be overwritten and updated at any time by TDS. This is very much like the way Linq-to-SQL works.&lt;/p&gt;
&lt;p&gt;While I can't say that this feature will ever be fully implemented and supported I've decided to release an example of how you can get this functionality now. Let me stress that &lt;strong&gt;this is not supported by Hedgehog Development and use at your own risk&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;The provided sample below (and&amp;nbsp;&lt;a href="https://gist.github.com/seankearney/5957503"&gt;https://gist.github.com/seankearney/5957503&lt;/a&gt;) can be added to your TDS project. When TDS generates code for the project this template will output the transformation to a file located underneath the&lt;/p&gt;
&lt;pre class="brush: c-sharp;"&gt;[TDS Project]\Code Generation Templates\MultipleOutputs&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;folder.&lt;/p&gt;
&lt;p&gt;There are a few key pieces to this T4 template.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Line 1 - The template definition requires a 'hostSpecific="true"' attribute&lt;/li&gt;
&lt;li&gt;Line 92 - There is a "SaveOutput" method that handles the creation of the directory structure and writing of the files.&lt;/li&gt;
&lt;li&gt;Line 79 - Before the first "&lt;a href="http://msdn.microsoft.com/en-us/library/bb126541.aspx"&gt;class feature block&lt;/a&gt;" we call the SaveOutput() method.&lt;/li&gt;
&lt;li&gt;Line 114 - This prevents the normal TDS code gen process from rendering the transformation in the main file. Uncomment this line to generate the code in the main file and individual files.&lt;/li&gt;
&lt;/ol&gt;
&lt;div&gt;When using this template be aware that you will likely start seeing orphaned files. Code generation will happily create the files for you, but when you delete a template from your TDS project the previously generated file will not be removed. Also remember to not modify the generated files as TDS will re-write those files and your manual changes will be lost!&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;script type="text/javascript" src="https://gist.github.com/seankearney/5957503.js"&gt;&lt;/script&gt;</description>
      <link>http://seankearney.com/post/TDS-Code-Generation-Output-Multiple-Files</link>
      <comments>http://seankearney.com/post/TDS-Code-Generation-Output-Multiple-Files#comment</comments>
      <guid>http://seankearney.com/post.aspx?id=dcc54f56-b969-4a0d-9ff4-1283c27485a6</guid>
      <pubDate>Mon, 08 Jul 2013 20:22:00 +0400</pubDate>
      <category>Sitecore</category>
      <category>TDS</category>
      <dc:publisher>Sean</dc:publisher>
      <pingback:server>http://seankearney.com/pingback.axd</pingback:server>
      <pingback:target>http://seankearney.com/post.aspx?id=dcc54f56-b969-4a0d-9ff4-1283c27485a6</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://seankearney.com/trackback.axd?id=dcc54f56-b969-4a0d-9ff4-1283c27485a6</trackback:ping>
      <wfw:comment>http://seankearney.com/post/TDS-Code-Generation-Output-Multiple-Files#comment</wfw:comment>
      <wfw:commentRss>http://seankearney.com/syndication.axd?post=dcc54f56-b969-4a0d-9ff4-1283c27485a6</wfw:commentRss>
    </item>
    <item>
      <title>TDS And Duplicate Items</title>
      <description>&lt;p&gt;From time to time we get feature requests for &lt;a href="http://teamdevelopmentforsitecore.com"&gt;Team Development for Sitecore&lt;/a&gt; to support multiple sub-items with the same name as shown below.&lt;/p&gt;
&lt;pre class="brush: c#;"&gt;- sitecore
    - content
        - home
            - article-1
            - article-1
            - article-2&lt;/pre&gt;
&lt;p&gt;This topic has been discussed internally at &lt;a href="http://www.hhogdev.com"&gt;Hedgehog&lt;/a&gt; for the last few years and unfortunately it is a feature that we don&amp;rsquo;t plan on supporting. The reality is that we can&amp;rsquo;t find a good reason to ever have items at the same level with the same name. Examples would be:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Fields of a template with the same name: the field wouldn&amp;rsquo;t be accessible by its name since there are multiple&lt;/li&gt;
&lt;li&gt;Templates with the same name: Again, using the Sitecore API you wouldn&amp;rsquo;t know which one you are getting&lt;/li&gt;
&lt;li&gt;Content with the same name: There would be a single URL addressing two pieces of content. You wouldn&amp;rsquo;t know which one is served up.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;There are a couple of cases where we hear requests for duplicate item support.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;The &amp;lsquo;Divider&amp;rsquo; items in the &amp;lsquo;core&amp;rsquo; database&lt;/li&gt;
&lt;li&gt;When there are issues with the actual items. An example of this would be somehow a template has multiple &amp;lsquo;__standard values&amp;rsquo; items and the customer reports the problem. However, the problem in this case is actually in their Sitecore database and the extra item should be removed. Therefore, having lack of support for duplicate item names actually helped find a problem for them!&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;For times when people request support for duplicate item names in order to handle the &amp;lsquo;Divider&amp;rsquo; issue we tell them to rename the dividers in the core database. The name of the &amp;lsquo;Divider&amp;rsquo; item is irrelevant and if you rename them to Divider-1, Divider-2, etc&amp;hellip; it will work as expected and TDS will not complain.&lt;/p&gt;
&lt;p&gt;We have also worked with Sitecore about the &amp;lsquo;Divider&amp;rsquo; issue and they said they will try to make the renames as part of a future release.&lt;/p&gt;
&lt;p&gt;If you, or your colleagues, can come up with a good business reason to have duplicate item names in a Sitecore installation please let us know!&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Update 12/3/2013&lt;/strong&gt;&lt;br /&gt;As of Sitecore 7.1, the dividers in the core database have been renamed so that they have unique names!&amp;nbsp;&lt;a href="http://sdn.sitecore.net/products/sitecore%20v5/sitecore%20cms%207/releasenotes/changelog/release%20history%20sc71.aspx"&gt;http://sdn.sitecore.net/products/sitecore%20v5/sitecore%20cms%207/releasenotes/changelog/release%20history%20sc71.aspx&lt;/a&gt;&amp;nbsp;See 381310&lt;/p&gt;</description>
      <link>http://seankearney.com/post/TDS-And-Duplicate-Items</link>
      <comments>http://seankearney.com/post/TDS-And-Duplicate-Items#comment</comments>
      <guid>http://seankearney.com/post.aspx?id=61ef519c-a40d-4f5d-bc50-86a6d94dfa88</guid>
      <pubDate>Thu, 18 Apr 2013 16:17:00 +0400</pubDate>
      <category>Sitecore</category>
      <category>TDS</category>
      <dc:publisher>Sean</dc:publisher>
      <pingback:server>http://seankearney.com/pingback.axd</pingback:server>
      <pingback:target>http://seankearney.com/post.aspx?id=61ef519c-a40d-4f5d-bc50-86a6d94dfa88</pingback:target>
      <slash:comments>5</slash:comments>
      <trackback:ping>http://seankearney.com/trackback.axd?id=61ef519c-a40d-4f5d-bc50-86a6d94dfa88</trackback:ping>
      <wfw:comment>http://seankearney.com/post/TDS-And-Duplicate-Items#comment</wfw:comment>
      <wfw:commentRss>http://seankearney.com/syndication.axd?post=61ef519c-a40d-4f5d-bc50-86a6d94dfa88</wfw:commentRss>
    </item>
    <item>
      <title>The Twitter Sitecore Scrum</title>
      <description>&lt;p&gt;&lt;img style="float: left;" src="http://seankearney.com/image.axd?picture=%2f2013%2f03%2ftwitter-bird-white-on-blue.png" alt="" /&gt;&lt;a href="https://twitter.com/dgalvez01"&gt;Dan Galvez&lt;/a&gt; and I had come up with an idea for a, sort of, Twitter based Sitecore &lt;a href="https://en.wikipedia.org/wiki/Scrum_(development)#Daily_Scrum"&gt;Scrum&lt;/a&gt;. In essence, people would post on Twitter what they are doing today with the hashtag &lt;a href="https://twitter.com/search?q=%23SitecoreScrum"&gt;#SitecoreScrum&lt;/a&gt;. Interestingly, another Sitecore developer (&lt;a href="https://twitter.com/mike_i_reynolds"&gt;Mike Reynolds&lt;/a&gt;) started this exact same thing the very next day with &lt;a href="https://twitter.com/mike_i_reynolds/status/310036893557473280"&gt;this tweet&lt;/a&gt;. &amp;nbsp;I&amp;rsquo;ve reached out to Mike and we are going to try and keep up with a daily #SitecoreScrum at 10am Eastern time. I don&amp;rsquo;t know what will come of this, but it can&amp;rsquo;t hurt knowing what others in our realm are doing with Sitecore.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;I realize actually committing and sticking to these daily tweets is tough, but I would appreciate any Sitecore developer with a Twitter account to do it; it shouldn&amp;rsquo;t take anyone too long to type 140 characters.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;If you use a multi-column Twitter client then take a moment and setup a column for the #SitecoreScrum search to keep tabs on one another! If the web interface is your thing, then setup a &lt;a href="https://support.twitter.com/articles/96646-how-to-save-searches"&gt;saved search&lt;/a&gt;. Alternatively, we can look to use a tool such as &lt;a href="http://taghuddle.com/sitecorescrum"&gt;http://taghuddle.com/sitecorescrum&lt;/a&gt; to aggregate the hashtag.&lt;/p&gt;
&lt;p&gt;Here is an ICS file you can add to your calendar to remind you!&amp;nbsp;&lt;a href="http://seankearney.com/FILES%2f2013%2f03%2fTwitter-Sitecore-Scrum.ics.axdx"&gt;Twitter-Sitecore-Scrum.ics (3.43 kb)&lt;/a&gt;&lt;/p&gt;</description>
      <link>http://seankearney.com/post/The-Twitter-Sitecore-Scrum</link>
      <comments>http://seankearney.com/post/The-Twitter-Sitecore-Scrum#comment</comments>
      <guid>http://seankearney.com/post.aspx?id=ea53c74c-3370-4d60-934f-3009752f77c0</guid>
      <pubDate>Fri, 08 Mar 2013 15:32:00 +0400</pubDate>
      <category>Sitecore</category>
      <dc:publisher>Sean</dc:publisher>
      <pingback:server>http://seankearney.com/pingback.axd</pingback:server>
      <pingback:target>http://seankearney.com/post.aspx?id=ea53c74c-3370-4d60-934f-3009752f77c0</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://seankearney.com/trackback.axd?id=ea53c74c-3370-4d60-934f-3009752f77c0</trackback:ping>
      <wfw:comment>http://seankearney.com/post/The-Twitter-Sitecore-Scrum#comment</wfw:comment>
      <wfw:commentRss>http://seankearney.com/syndication.axd?post=ea53c74c-3370-4d60-934f-3009752f77c0</wfw:commentRss>
    </item>
  </channel>
</rss>