<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">
    <title type="text">metaEngine SharePoint Solutions</title>
    <subtitle type="html" />
    <updated>2013-05-03T10:04:00Z</updated>
    <id>tag:www.metaEngine.com,2013-05-03:atom.xml</id>
    <link rel="alternate" type="text/html" hreflang="en" href="http://www.metaEngine.com/" />
    
    
    <rights>Copyright (c) 2013</rights>
    <generator uri="http://www.metaEngine.com/" version="1.0">
        Bloggart 1.0
    </generator>
    
    <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/metaengine" /><feedburner:info uri="metaengine" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><feedburner:emailServiceId>metaengine</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><entry>
        <title>SharePoint 2013 Apps added to store</title>
        <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/metaengine/~3/o6lefzldOOk/SharePoint-2013-Apps-added-to-store" />
        <id>tag:www.metaEngine.com,2013-05-03:post:83001</id>
        <updated>2013-05-03T10:03:40Z</updated>
        <published>2013-05-03T10:03:40Z</published>
        <author>
            <name>Peter Collins</name>
            <uri>http://www.metaEngine.com/</uri>
        </author>
        <content type="html">
          &lt;p&gt;I&amp;apos;ve recently published a couple of SharePoint 2013 Apps to the &lt;a title="Office SharePoint store" href="http://office.microsoft.com/en-us/store/apps-for-sharepoint-FX102804987.aspx" target="_blank"&gt;Office SharePoint store&lt;/a&gt;. Both are SharePoint hosted apps and include a free trial for unlimited users. Any feedback on features, pricing welcome…&lt;/p&gt;

&lt;p&gt;The first is &lt;a title="metaEngine Tag Cloud" href="http://office.microsoft.com/en-us/store/metaengine-tag-cloud-WA104018464.aspx" target="_blank"&gt;metaEngine Tag Cloud&lt;/a&gt; which displays popular keywords and terms used across your SharePoint sites. It&amp;apos;s powered by SharePoint Search and is a kind of refiner on steroids. It&amp;apos;s also easy to scope the search for terms to suite your specific needs. Various display templates are included and inline with the SharePoint 2013 template features, additional ones can be added using JavaScript (JSRender) templates. You can use your own search page/centre as the target of the cloud or use the results included page. The included page adds inline tags to the results enabling you to pivot the results as you go.&lt;/p&gt;

&lt;p&gt;The second app is &lt;a title="metaEngine Easy Search" href="http://office.microsoft.com/en-us/store/metaengine-easy-search-WA104055053.aspx" target="_blank"&gt;metaEngine Easy Search&lt;/a&gt;. This app provides a super easy search app part for creating complex queries easily and the results page includes a search toolbar for filtering results, editing queries and saving searches. The app part is somewhat of a throwback to the familiar Windows XP search panel… and the toolbar shows show similarities to the familiar Google Search tools… Give it go and let me know what you think…&lt;/p&gt;



&lt;p&gt;&lt;img class="scale-with-grid" alt="metaEngine Tag Cloud" src="http://lh4.googleusercontent.com/-DeomL__JgXc/UYOJzc03KII/AAAAAAAAAOs/vEv78_F52zI/w472-h240/apppart_dt7_emphasis2.png"&gt;
&lt;br /&gt;
&lt;a title="metaEngine Tag Cloud" href="http://office.microsoft.com/en-us/store/metaengine-tag-cloud-WA104018464.aspx" target="_blank"&gt;metaEngine Tag Cloud template&lt;/a&gt;
&lt;/p&gt;


&lt;p&gt;&lt;img class="scale-with-grid" alt="metaEngine Easy Search" src="http://lh6.googleusercontent.com/-VjS9q3q05DU/UYOKISQJdNI/AAAAAAAAAO0/N908HJc9th4/w512-h384/easySearch.png"&gt;
&lt;br/&gt;
&lt;a title="metaEngine Easy Search" href="http://office.microsoft.com/en-us/store/metaengine-easy-search-WA104055053.aspx" target="_blank"&gt;metaEngine Easy Search toolbar&lt;/a&gt;
&lt;/p&gt;
          &lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://www.metaEngine.com/sptermcloud?sfd=1" title="SP Term Cloud - Learn more"&gt;&lt;img border="0" src="http://lh6.googleusercontent.com/-I3pgzHFylMs/T2ZIYeQjxdI/AAAAAAAAARU/kXO0HcT1cF8/s468/termcloudad_468x60.png" alt="SP Term Cloud - Learn more" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style="font-size: 11px;padding: 5px;border: 1px solid #EBEBEB;background: #F8F8F8;"&gt;&lt;a href="mailto:?body=http%3A%2F%2Fwww.metaEngine.com%2F2013%2F05%2FSharePoint-2013-Apps-added-to-store&amp;subject=http%3A%2F%2Fwww.metaEngine.com%2F2013%2F05%2FSharePoint-2013-Apps-added-to-store"&gt;Email this&lt;/a&gt;&lt;span&gt; &amp;middot; &lt;/span&gt;&lt;a target="_blank" href="http://twitter.com/share?url=http%3A%2F%2Fwww.metaEngine.com%2F2013%2F05%2FSharePoint-2013-Apps-added-to-store%3Fstw%3D1&amp;text=SharePoint+2013+Apps+added+to+store&amp;ref=twitbtn"&gt;Tweet this&lt;/a&gt;&lt;span&gt; &amp;middot; &lt;/span&gt;&lt;a target="_blank" href="http://plus.google.com/share?url=http%3A%2F%2Fwww.metaEngine.com%2F2013%2F05%2FSharePoint-2013-Apps-added-to-store%3Fsgp%3D1"&gt;Share on Google+&lt;/a&gt;&lt;span&gt; &amp;middot; &lt;/span&gt;&lt;a target="_blank" href="http://www.facebook.com/sharer.php?ref=fbshare&amp;u=http%3A%2F%2Fwww.metaEngine.com%2F2013%2F05%2FSharePoint-2013-Apps-added-to-store%3Fsfb%3D1&amp;t=SharePoint+2013+Apps+added+to+store"&gt;Share on Facebook&lt;/a&gt;&lt;span&gt; &amp;middot; &lt;/span&gt;&lt;a target="_blank" href="http://del.icio.us/post?url=http%3A%2F%2Fwww.metaEngine.com%2F2013%2F05%2FSharePoint-2013-Apps-added-to-store%3Fsdl%3D1&amp;title=SharePoint+2013+Apps+added+to+store"&gt;Post to del.icio.us&lt;/a&gt;&lt;/p&gt;
        &lt;img src="http://feeds.feedburner.com/~r/metaengine/~4/o6lefzldOOk" height="1" width="1"/&gt;</content>
    <feedburner:origLink>http://www.metaEngine.com/2013/05/SharePoint-2013-Apps-added-to-store</feedburner:origLink></entry>
    
    <entry>
        <title>SP Term Cloud (User Solution) update: version 1.0.9</title>
        <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/metaengine/~3/TJ_xNsDyivc/SP-Term-Cloud-User-Solution-update-version-1-0-9" />
        <id>tag:www.metaEngine.com,2013-03-13:post:76001</id>
        <updated>2013-03-13T20:49:18Z</updated>
        <published>2013-03-13T20:49:18Z</published>
        <author>
            <name>Peter Collins</name>
            <uri>http://www.metaEngine.com/</uri>
        </author>
        <content type="html">
          &lt;p&gt;The v1.0.9 release of the &lt;a href="http://www.metaengine.com/sptermcloud"&gt;SP Term Cloud&lt;/a&gt; user solution is now available here... &lt;a onclick="javascript: try{_gaq.push([&amp;#39;_trackPageview&amp;#39;, &amp;#39;/download/metaEngine.SPTermCloud.Site.1.0.9.wsp&amp;#39;]);}catch(e){}" href="/download/metaEngine.SPTermCloud.Site.1.0.9.wsp"&gt;SP Term Cloud User Solution (metaEngine.SPTermCloud.Site.1.0.9.wsp)&lt;/a&gt;. The full change log is at the bottom of the post .&lt;/p&gt;

&lt;p&gt;It includes an important fix for any customers on Office 365. A recent Office 365 SharePoint 2013 update alter the way that sandbox solution resource assemblies are handled. &lt;strong&gt;Customers must upgrade to this release if they are running on the latest SharePoint 2013 platform&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;I've got a large backlog of posts to get out of new topics, but for Office 365/SharePoint 2013 customers I would recommend checking out our new &lt;a href="http://office.microsoft.com/en-us/store/metaengine-tag-cloud-WA104018464.aspx?queryid=2dd1cbc4-e25e-4cfe-9518-70d7d28895b2&amp;amp;css=metaengine&amp;amp;CTT=1" target="_blank"&gt;SharePoint 2013 App - metaEngine Tag Cloud&lt;/a&gt;. The app utilises new SharePoint 2013 search enhancements to significantly improve the overall performance of the solution. &lt;/p&gt;

&lt;p&gt;The full change log:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;Improved handling of terms and term sets that are not in the current term store. &lt;/li&gt;

  &lt;li&gt;Fixes an issue with resource handling in SharePoint 2013 sandbox solutions &lt;/li&gt;
&lt;/ol&gt;
          &lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://www.metaEngine.com/sptermcloud?sfd=1" title="SP Term Cloud - Learn more"&gt;&lt;img border="0" src="http://lh6.googleusercontent.com/-I3pgzHFylMs/T2ZIYeQjxdI/AAAAAAAAARU/kXO0HcT1cF8/s468/termcloudad_468x60.png" alt="SP Term Cloud - Learn more" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style="font-size: 11px;padding: 5px;border: 1px solid #EBEBEB;background: #F8F8F8;"&gt;&lt;a href="mailto:?body=http%3A%2F%2Fwww.metaEngine.com%2F2013%2F03%2FSP-Term-Cloud-User-Solution-update-version-1-0-9&amp;subject=http%3A%2F%2Fwww.metaEngine.com%2F2013%2F03%2FSP-Term-Cloud-User-Solution-update-version-1-0-9"&gt;Email this&lt;/a&gt;&lt;span&gt; &amp;middot; &lt;/span&gt;&lt;a target="_blank" href="http://twitter.com/share?url=http%3A%2F%2Fwww.metaEngine.com%2F2013%2F03%2FSP-Term-Cloud-User-Solution-update-version-1-0-9%3Fstw%3D1&amp;text=SP+Term+Cloud+%28User+Solution%29+update%3A+version+1.0.9&amp;ref=twitbtn"&gt;Tweet this&lt;/a&gt;&lt;span&gt; &amp;middot; &lt;/span&gt;&lt;a target="_blank" href="http://plus.google.com/share?url=http%3A%2F%2Fwww.metaEngine.com%2F2013%2F03%2FSP-Term-Cloud-User-Solution-update-version-1-0-9%3Fsgp%3D1"&gt;Share on Google+&lt;/a&gt;&lt;span&gt; &amp;middot; &lt;/span&gt;&lt;a target="_blank" href="http://www.facebook.com/sharer.php?ref=fbshare&amp;u=http%3A%2F%2Fwww.metaEngine.com%2F2013%2F03%2FSP-Term-Cloud-User-Solution-update-version-1-0-9%3Fsfb%3D1&amp;t=SP+Term+Cloud+%28User+Solution%29+update%3A+version+1.0.9"&gt;Share on Facebook&lt;/a&gt;&lt;span&gt; &amp;middot; &lt;/span&gt;&lt;a target="_blank" href="http://del.icio.us/post?url=http%3A%2F%2Fwww.metaEngine.com%2F2013%2F03%2FSP-Term-Cloud-User-Solution-update-version-1-0-9%3Fsdl%3D1&amp;title=SP+Term+Cloud+%28User+Solution%29+update%3A+version+1.0.9"&gt;Post to del.icio.us&lt;/a&gt;&lt;/p&gt;
        &lt;img src="http://feeds.feedburner.com/~r/metaengine/~4/TJ_xNsDyivc" height="1" width="1"/&gt;</content>
    <feedburner:origLink>http://www.metaEngine.com/2013/03/SP-Term-Cloud-User-Solution-update-version-1-0-9</feedburner:origLink></entry>
    
    <entry>
        <title>Best loved SharePoint posts: Week 24 Dec 2012</title>
        <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/metaengine/~3/P9hEgo0Rd3w/Best-loved-SharePoint-posts-Week-24-Dec-2012" />
        <id>tag:www.metaEngine.com,2013-01-05:post:74001</id>
        <updated>2013-01-05T10:11:10Z</updated>
        <published>2013-01-05T10:11:10Z</published>
        <author>
            <name>Peter Collins</name>
            <uri>http://www.metaEngine.com/</uri>
        </author>
        <content type="html">
          &lt;p&gt;&lt;img class="scale-with-grid" alt="SharePoint Posts - Best Loved" src="http://lh3.googleusercontent.com/-HhMim-YhPaU/ULx0ee7fqdI/AAAAAAAAAaE/cW3tizW_N98/s264/sharepointposts.png" /&gt;&lt;/p&gt;

&lt;p&gt;Starting to catch up on my feed reader - Here’s my best loved posts of the week: 24 December 2012.&lt;/p&gt;

&lt;h5&gt;Everyone&lt;/h5&gt;

&lt;p&gt;&lt;a title="SharePoint best practice: what roles in a SharePoint intranet dream team" href="https://www.nothingbutsharepoint.com/sites/eusp/Pages/SharePoint-best-practice-what-roles-in-a-SharePoint-intranet-dream-team.aspx" target="_blank"&gt;SharePoint best practice: what roles in a SharePoint intranet dream team&lt;/a&gt; 

  &lt;br /&gt;Outlines the roles/skills needed when embarking on a SharePoint intranet project.&lt;/p&gt;

&lt;h5&gt;ADMIN&lt;/h5&gt;

&lt;p&gt;&lt;a title="The great free performance, load and stress testing tools that can be used with SharePoint verdict" href="http://sharepointdragons.com/2012/12/26/the-great-free-performance-load-and-stress-testing-tools-that-can-be-used-with-sharepoint-verdict/" target="_blank"&gt;The great free performance, load and stress testing tools that can be used with SharePoint verdict&lt;/a&gt; 

  &lt;br /&gt;Good listing of performance testing tools.&lt;/p&gt;

&lt;h5&gt;Developer&lt;/h5&gt;

&lt;p&gt;&lt;a title="Metro UI style Live Tiles Web Part with Metro JS and jQuery in SharePoint 2013" href="http://www.ashokraja.me/post/Metro-UI-style-Live-Tiles-Web-Part-with-Metro-JS-and-jQuery-in-SharePoint-2013.aspx" target="_blank"&gt;Metro UI style Live Tiles Web Part with Metro JS and jQuery in SharePoint 2013&lt;/a&gt; 

  &lt;br /&gt;Example of combining open source JavaScript MetroJS with SharePoint data via C#. Could be done with no code using a DataView web part to make it more general purpose.&lt;/p&gt;

&lt;p&gt;&lt;a title="SP 2013: Searching in SharePoint 2013 using the REST new API’s" href="http://zimmergren.net/technical/sp-2013-searching-in-sharepoint-2013-using-the-rest-new-apis" target="_blank"&gt;SP 2013: Searching in SharePoint 2013 using the REST new API’s&lt;/a&gt; 

  &lt;br /&gt;Good example of using search data via the REST API in 2013.&lt;/p&gt;

&lt;p&gt;&lt;a title="SP 2013: Using the JSLink property to change the way your field or views are rendered in SharePoint 2013" href="http://zimmergren.net/technical/sp-2013-using-the-spfield-jslink-property-to-change-the-way-your-field-is-rendered-in-sharepoint-2013" target="_blank"&gt;SP 2013: Using the JSLink property to change the way your field or views are rendered in SharePoint 2013&lt;/a&gt; 

  &lt;br /&gt;Great examples on how to set and use the new JSLink property.&lt;/p&gt;

&lt;p&gt;&lt;a title="Search Query Suggestions for anonymous users in SharePoint 2013 with Mavention Query Suggestions" href="http://blog.mastykarz.nl/search-query-suggestions-anonymous-users-sharepoint-2013-mavention-query-suggestions" target="_blank"&gt;Search Query Suggestions for anonymous users in SharePoint 2013 with Mavention Query Suggestions&lt;/a&gt; 

  &lt;br /&gt;Enabling query suggestions for anonymous users.&lt;/p&gt;

&lt;p&gt;&lt;a title="Using jQuery Deferred object with SharePoint Javascript Object Model" href="http://scenicsharepoint.blogspot.co.uk/2012/12/using-jquery-deferred-object-with.html" target="_blank"&gt;Using jQuery Deferred object with SharePoint Javascript Object Model&lt;/a&gt; 

  &lt;br /&gt;Interesting example of combining jQuery Deferred and the SharePoint client. Shows a nice way to handle the dependencies that arise with multiple asynchronous calls.&lt;/p&gt;
          &lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://www.metaEngine.com/sptermcloud?sfd=1" title="SP Term Cloud - Learn more"&gt;&lt;img border="0" src="http://lh6.googleusercontent.com/-I3pgzHFylMs/T2ZIYeQjxdI/AAAAAAAAARU/kXO0HcT1cF8/s468/termcloudad_468x60.png" alt="SP Term Cloud - Learn more" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style="font-size: 11px;padding: 5px;border: 1px solid #EBEBEB;background: #F8F8F8;"&gt;&lt;a href="mailto:?body=http%3A%2F%2Fwww.metaEngine.com%2F2013%2F01%2FBest-loved-SharePoint-posts-Week-24-Dec-2012&amp;subject=http%3A%2F%2Fwww.metaEngine.com%2F2013%2F01%2FBest-loved-SharePoint-posts-Week-24-Dec-2012"&gt;Email this&lt;/a&gt;&lt;span&gt; &amp;middot; &lt;/span&gt;&lt;a target="_blank" href="http://twitter.com/share?url=http%3A%2F%2Fwww.metaEngine.com%2F2013%2F01%2FBest-loved-SharePoint-posts-Week-24-Dec-2012%3Fstw%3D1&amp;text=Best+loved+SharePoint+posts%3A+Week+24+Dec+2012&amp;ref=twitbtn"&gt;Tweet this&lt;/a&gt;&lt;span&gt; &amp;middot; &lt;/span&gt;&lt;a target="_blank" href="http://plus.google.com/share?url=http%3A%2F%2Fwww.metaEngine.com%2F2013%2F01%2FBest-loved-SharePoint-posts-Week-24-Dec-2012%3Fsgp%3D1"&gt;Share on Google+&lt;/a&gt;&lt;span&gt; &amp;middot; &lt;/span&gt;&lt;a target="_blank" href="http://www.facebook.com/sharer.php?ref=fbshare&amp;u=http%3A%2F%2Fwww.metaEngine.com%2F2013%2F01%2FBest-loved-SharePoint-posts-Week-24-Dec-2012%3Fsfb%3D1&amp;t=Best+loved+SharePoint+posts%3A+Week+24+Dec+2012"&gt;Share on Facebook&lt;/a&gt;&lt;span&gt; &amp;middot; &lt;/span&gt;&lt;a target="_blank" href="http://del.icio.us/post?url=http%3A%2F%2Fwww.metaEngine.com%2F2013%2F01%2FBest-loved-SharePoint-posts-Week-24-Dec-2012%3Fsdl%3D1&amp;title=Best+loved+SharePoint+posts%3A+Week+24+Dec+2012"&gt;Post to del.icio.us&lt;/a&gt;&lt;/p&gt;
        &lt;img src="http://feeds.feedburner.com/~r/metaengine/~4/P9hEgo0Rd3w" height="1" width="1"/&gt;</content>
    <feedburner:origLink>http://www.metaEngine.com/2013/01/Best-loved-SharePoint-posts-Week-24-Dec-2012</feedburner:origLink></entry>
    
    <entry>
        <title>Best loved SharePoint posts: Week 17 Dec 2012</title>
        <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/metaengine/~3/eXjLq6i08c4/Best-loved-SharePoint-posts-Week-17-Dec-2012" />
        <id>tag:www.metaEngine.com,2013-01-02:post:73001</id>
        <updated>2013-01-02T22:54:10Z</updated>
        <published>2013-01-02T22:54:10Z</published>
        <author>
            <name>Peter Collins</name>
            <uri>http://www.metaEngine.com/</uri>
        </author>
        <content type="html">
          &lt;p&gt;&lt;img class="scale-with-grid" alt="SharePoint Posts - Best Loved" src="http://lh3.googleusercontent.com/-HhMim-YhPaU/ULx0ee7fqdI/AAAAAAAAAaE/cW3tizW_N98/s264/sharepointposts.png" /&gt;&lt;/p&gt;

&lt;p&gt;Here’s my best loved posts of the week: 17 December 2012.&lt;/p&gt;

&lt;h5&gt;Everyone&lt;/h5&gt;

&lt;p&gt;&lt;a title="Are You a SharePoint Developer Moving to Apps? You’re a Moron!" href="http://blog.furuknap.net/are-you-a-sharepoint-developer-moving-to-apps-youre-a-moron" target="_blank"&gt;Are You a SharePoint Developer Moving to Apps? You’re a Moron!&lt;/a&gt;

  &lt;br /&gt;Typically provocative post from Bjorn. I normally enjoy his blog, lots of great opinion, and not the typical Microsoft cheerleading of most SharePoint blogs. I’m guessing the post intends to comfort SharePoint developers already struggling to master a massive platform by telling them they needn’t rush to learn Apps and reiterates the practice makes perfect mantra (e.g. stick with what you’re doing, don’t bothering learning new stuff...). Whilst agreeing with practice makes perfect I also love learning new things, isn’t variety the spice of life? Anyway worth checking out for the excellent comment responses (especially from Chris O Brien). &lt;/p&gt;

&lt;h5&gt;ADMIN&lt;/h5&gt;

&lt;p&gt;&lt;a title="Is Your SharePoint Secure – Server Security Part 4" href="http://blog.helloitsliam.com/Lists/Posts/Post.aspx?ID=105"&gt;Is Your SharePoint Secure – Server Security Part 4&lt;/a&gt;

  &lt;br /&gt;Good info on how to lockdown your SharePoint server.&lt;/p&gt;

&lt;p&gt;&lt;a title="Create An Easy PDF Preview for Search Results in SharePoint 2013" href="http://blogs.technet.com/b/speschka/archive/2012/12/20/create-an-easy-pdf-preview-for-search-results-in-sharepoint-2013.aspx" target="_blank"&gt;Create An Easy PDF Preview for Search Results in SharePoint 2013&lt;/a&gt;

  &lt;br /&gt;Good post on configuring search for PDFs in 2013.&lt;/p&gt;

&lt;p&gt;&lt;a title="Shredded Storage and the Evolution of SharePoint’s Storage Architecture" href="http://blogs.technet.com/b/wbaer/archive/2012/12/20/shredded-storage-and-the-evolution-of-sharepoint-s-storage-architecture.aspx" target="_blank"&gt;Shredded Storage and the Evolution of SharePoint’s Storage Architecture&lt;/a&gt; 

  &lt;br /&gt;Overview of Shredded Storage in SharePoint 2013.&lt;/p&gt;

&lt;h5&gt;Developer&lt;/h5&gt;

&lt;p&gt;&lt;a title="Access and Manipulate Data in Your CloudShare SharePoint 2013 Farm from Anywhere with CSOM, REST, and OData" href="http://blog.cloudshare.com/2012/12/16/access-and-manipulate-data-in-your-cloudshare-sharepoint-2013-farm-from-anywhere-with-csom-rest-and-odata/" target="_blank"&gt;Access and Manipulate Data in Your CloudShare SharePoint 2013 Farm from Anywhere with CSOM, REST, and OData&lt;/a&gt;

  &lt;br /&gt;Good overview of the client data access options in 2013.&lt;/p&gt;

&lt;p&gt;&lt;a title="Working with Social Hashtags, Search, and the SharePoint 2013 CSOM" href="http://www.techoui.com/post/2012/12/Working-with-Social-Hashtags2c-Search2c-and-the-SharePoint-2013-CSOM.aspx" target="_blank"&gt;Working with Social Hashtags, Search, and the SharePoint 2013 CSOM&lt;/a&gt;

  &lt;br /&gt;Interesting snippet of C# .Net client model code to get data from the new SharePoint 2013 social feeds using search and hash tags. &lt;/p&gt;

&lt;p&gt;&lt;a title="SharePoint JavaScript Unit Testing with Jasmine" href="http://vrdmn.blogspot.co.uk/2012/05/sharepoint-javascript-unit-testing-with.html" target="_blank"&gt;SharePoint JavaScript Unit Testing with Jasmine&lt;/a&gt;

  &lt;br /&gt;Interesting article about… SharePoint JavaScript testing&lt;/p&gt;

&lt;p&gt;&lt;a title="Creating SPWeb using Client Object Model (CSOM)" href="http://withinsharepoint.com/archives/285" target="_blank"&gt;Creating SPWeb using Client Object Model (CSOM)&lt;/a&gt;

  &lt;br /&gt;Good, clean sample of the JavaScript client side model. Hopefully Microsoft will provide more samples/documentation soon… &lt;/p&gt;

&lt;p&gt;&lt;a title="Seven reasons why I prefer developing SharePoint apps with SharePoint Online" href="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/2012/12/20/seven-reasons-why-i-prefer-developing-sharepoint-apps-with-sharepoint-online.aspx" target="_blank"&gt;Seven reasons why I prefer developing SharePoint apps with SharePoint Online&lt;/a&gt;

  &lt;br /&gt;Why Corey uses SharePoint online to develop, all good points, and he didn’t even mention the massive memory needed for local dev…&lt;/p&gt;

&lt;p&gt;&lt;a title="Publishing Features as Apps in SharePoint 2013" href="http://www.danlarson.com/publishing-features-as-apps-in-sharepoint-2013/" target="_blank"&gt;Publishing Features as Apps in SharePoint 2013&lt;/a&gt; 

  &lt;br /&gt;Turn your feature into an App with one line of XML, still too much wasted learning Bjorn?&lt;/p&gt;

&lt;p&gt;&lt;a title="Remove Sharepoint metadata from MS Office documents" href="http://sadomovalex.blogspot.co.uk/2012/12/remove-sharepoint-metadata-from-ms.html" target="_blank"&gt;Remove Sharepoint metadata from MS Office documents&lt;/a&gt;&amp;#160; &lt;br /&gt;Good explanation of the structure of metadata stored within Office documents with sample C# to remove it.&lt;/p&gt;
          &lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://www.metaEngine.com/sptermcloud?sfd=1" title="SP Term Cloud - Learn more"&gt;&lt;img border="0" src="http://lh6.googleusercontent.com/-I3pgzHFylMs/T2ZIYeQjxdI/AAAAAAAAARU/kXO0HcT1cF8/s468/termcloudad_468x60.png" alt="SP Term Cloud - Learn more" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style="font-size: 11px;padding: 5px;border: 1px solid #EBEBEB;background: #F8F8F8;"&gt;&lt;a href="mailto:?body=http%3A%2F%2Fwww.metaEngine.com%2F2013%2F01%2FBest-loved-SharePoint-posts-Week-17-Dec-2012&amp;subject=http%3A%2F%2Fwww.metaEngine.com%2F2013%2F01%2FBest-loved-SharePoint-posts-Week-17-Dec-2012"&gt;Email this&lt;/a&gt;&lt;span&gt; &amp;middot; &lt;/span&gt;&lt;a target="_blank" href="http://twitter.com/share?url=http%3A%2F%2Fwww.metaEngine.com%2F2013%2F01%2FBest-loved-SharePoint-posts-Week-17-Dec-2012%3Fstw%3D1&amp;text=Best+loved+SharePoint+posts%3A+Week+17+Dec+2012&amp;ref=twitbtn"&gt;Tweet this&lt;/a&gt;&lt;span&gt; &amp;middot; &lt;/span&gt;&lt;a target="_blank" href="http://plus.google.com/share?url=http%3A%2F%2Fwww.metaEngine.com%2F2013%2F01%2FBest-loved-SharePoint-posts-Week-17-Dec-2012%3Fsgp%3D1"&gt;Share on Google+&lt;/a&gt;&lt;span&gt; &amp;middot; &lt;/span&gt;&lt;a target="_blank" href="http://www.facebook.com/sharer.php?ref=fbshare&amp;u=http%3A%2F%2Fwww.metaEngine.com%2F2013%2F01%2FBest-loved-SharePoint-posts-Week-17-Dec-2012%3Fsfb%3D1&amp;t=Best+loved+SharePoint+posts%3A+Week+17+Dec+2012"&gt;Share on Facebook&lt;/a&gt;&lt;span&gt; &amp;middot; &lt;/span&gt;&lt;a target="_blank" href="http://del.icio.us/post?url=http%3A%2F%2Fwww.metaEngine.com%2F2013%2F01%2FBest-loved-SharePoint-posts-Week-17-Dec-2012%3Fsdl%3D1&amp;title=Best+loved+SharePoint+posts%3A+Week+17+Dec+2012"&gt;Post to del.icio.us&lt;/a&gt;&lt;/p&gt;
        &lt;img src="http://feeds.feedburner.com/~r/metaengine/~4/eXjLq6i08c4" height="1" width="1"/&gt;</content>
    <feedburner:origLink>http://www.metaEngine.com/2013/01/Best-loved-SharePoint-posts-Week-17-Dec-2012</feedburner:origLink></entry>
    
    <entry>
        <title>Best loved SharePoint posts: Week 10 Dec 2012</title>
        <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/metaengine/~3/U6sgZe-68jA/Best-loved-SharePoint-posts-Week-10-Dec-2012" />
        <id>tag:www.metaEngine.com,2012-12-17:post:72001</id>
        <updated>2012-12-17T12:45:28Z</updated>
        <published>2012-12-17T12:45:28Z</published>
        <author>
            <name>Peter Collins</name>
            <uri>http://www.metaEngine.com/</uri>
        </author>
        <content type="html">
          &lt;p&gt;&lt;img class="scale-with-grid" alt="SharePoint Posts - Best Loved" src="http://lh3.googleusercontent.com/-HhMim-YhPaU/ULx0ee7fqdI/AAAAAAAAAaE/cW3tizW_N98/s264/sharepointposts.png" /&gt;&lt;/p&gt;

&lt;p&gt;Here’s my best loved posts of the week: 10 December 2012&lt;/p&gt;

&lt;h5&gt;Everyone&lt;/h5&gt;

&lt;p&gt;&lt;a href="http://www.microsoft.com/en-us/download/details.aspx?id=36055&amp;amp;WT.mc_id=rss_alldownloads_all" target="_blank"&gt;SharePoint Composite Handbook&lt;/a&gt; 

  &lt;br /&gt;Good read from the horses mouth (Microsoft) on creating no-code business solutions with Office and SharePoint. Even as someone who has produced reams of C# code and SharePoint add-ons in the past I would always promote exploring no-code/out of the box SharePoint solutions first. This doc is a good starting point to explore some of the options.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://community.office365.com/en-us/blogs/office_365_technical_blog/archive/2012/12/12/preview-of-coming-changes-to-the-external-sharing-features-in-sharepoint-online.aspx" target="_blank"&gt;Preview of coming changes to the external sharing features in SharePoint Online&lt;/a&gt; 

  &lt;br /&gt;Overview of the simple sharing coming in SharePoint Online. Anyone still building extranets on premise?&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.nothingbutsharepoint.com/sites/eusp/Pages/SharePoint-2010-Records-Management-Overview.aspx" target="_blank"&gt;SharePoint 2010 Records Management Overview&lt;/a&gt; 

  &lt;br /&gt;As the title says a good overview of Records Management in 2010…&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.imsharepoint.net/blog/2012/12/12/using-sharepoint-and-hp-trim-to-manage-email.html" target="_blank"&gt;Using SharePoint and HP TRIM to manage email&lt;/a&gt; 

  &lt;br /&gt;Overview of using OnePlaceMail to add emails from Outlook into SharePoint with great metadata support ready for storage into a Records Management store.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.nothingbutsharepoint.com/sites/eusp/Pages/Confessions-of-a-post-SharePoint-Architect-Midwives-versus-doctors.aspx" target="_blank"&gt;Confessions of a (post) SharePoint Architect: Midwives versus doctors&lt;/a&gt; and &lt;a href="https://www.nothingbutsharepoint.com/sites/eusp/Pages/Confessions-of-a-post-SharePoint-Architect-Dont-define-governance.aspx" target="_blank"&gt;Confessions of a (post) SharePoint Architect: Don't define &amp;quot;governance&amp;quot;&lt;/a&gt; 

  &lt;br /&gt;Interesting posts on the role of a SharePoint Architect. Always lots of debate on what the title “SharePoint Architect” actually means but some excellent writing on the topic here. (I agree with anyway..)&lt;/p&gt;

&lt;p&gt;&lt;a href="http://term-management.com/2012/12/11/governing-a-taxonomy-in-an-enterprise-cms/" target="_blank"&gt;Governing a Taxonomy in an Enterprise CMS&lt;/a&gt; 

  &lt;br /&gt;A post to prompt some thinking about how you need to govern your taxonomies (term sets…)&lt;/p&gt;

&lt;h5&gt;ADMIN&lt;/h5&gt;

&lt;p&gt;&lt;a href="http://blog.helloitsliam.com/Lists/Posts/Post.aspx?ID=103" target="_blank"&gt;Is Your SharePoint Secure – Server Security Part 3&lt;/a&gt; 

  &lt;br /&gt;Follow on post from Liam Cleary about SharePoint security showing some steps how you can secure your environment.&lt;/p&gt;

&lt;h5&gt;Developer&lt;/h5&gt;

&lt;p&gt;&lt;a href="http://blogs.msdn.com/b/carloshm/archive/2012/12/16/how-to-use-query-rules-and-display-templates-to-detect-the-intent-of-your-users.aspx" target="_blank"&gt;How to use Query rules and display templates to detect the intent of your users&lt;/a&gt; 

  &lt;br /&gt;Cool example that shows how to configure a SharePoint 2013 search query rule that gives a Google\Bing style math operation answer (e.g. 2 + 2 = 4). The example is based on setting up a configuration rule that uses a regular expression to parse the query and then adds results\html as required. I’m really impressed (finally…) with the advances in SharePoint search.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://blogs.3sharp.com/2012/12/10/sharepoint-2013-content-query-web-part-and-managed-navigation-2/" target="_blank"&gt;SharePoint 2013: Content Query Web Part and Managed Navigation&lt;/a&gt; 

  &lt;br /&gt;Example of using the Content Query web part and managed navigation to show items tagged with a specific term. Nice but easier with &lt;a href="http://www.metaengine.com/sptermcloud" target="_blank"&gt;SPTermCloud&lt;/a&gt; ;)&lt;/p&gt;

&lt;p&gt;&lt;a href="http://blogs.msdn.com/b/billgr/archive/2011/01/31/sandboxed-web-request-handler.aspx" target="_blank"&gt;Sandboxed Web Service&lt;/a&gt; 

  &lt;br /&gt;Bill has beat me to it – a post on using a sandbox web part page as a web service. This is a technique I’ve used in the &lt;a href="http://www.metaengine.com/sptermcloud" target="_blank"&gt;SPTermCloud&lt;/a&gt; sandbox solution for a few calls where the SharePoint 2010 client side object model didn’t provide the coverage. This technique can even provide a SOAP based service if you write the sandbox code to parse the XML request and a library to create your SOAP responses.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.ableblue.com/blog/archive/2012/12/10/sharepoint-1013-jsom-and-social-api/" target="_blank"&gt;SharePoint 1013 JSOM and Social API&lt;/a&gt; 

  &lt;br /&gt;Lovely example of using the JavaScript OM with SharePoint 2013.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://blogs.msdn.com/b/officeapps/archive/2012/12/12/iframing-sharepoint-hosted-pages-in-apps.aspx" target="_blank"&gt;IFraming SharePoint-hosted pages in apps&lt;/a&gt; 

  &lt;br /&gt;Overview of how to allow your SharePoint App pages to be displayed in iFrames on other sites.&lt;/p&gt;
          &lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://www.metaEngine.com/sptermcloud?sfd=1" title="SP Term Cloud - Learn more"&gt;&lt;img border="0" src="http://lh6.googleusercontent.com/-I3pgzHFylMs/T2ZIYeQjxdI/AAAAAAAAARU/kXO0HcT1cF8/s468/termcloudad_468x60.png" alt="SP Term Cloud - Learn more" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style="font-size: 11px;padding: 5px;border: 1px solid #EBEBEB;background: #F8F8F8;"&gt;&lt;a href="mailto:?body=http%3A%2F%2Fwww.metaEngine.com%2F2012%2F12%2FBest-loved-SharePoint-posts-Week-10-Dec-2012&amp;subject=http%3A%2F%2Fwww.metaEngine.com%2F2012%2F12%2FBest-loved-SharePoint-posts-Week-10-Dec-2012"&gt;Email this&lt;/a&gt;&lt;span&gt; &amp;middot; &lt;/span&gt;&lt;a target="_blank" href="http://twitter.com/share?url=http%3A%2F%2Fwww.metaEngine.com%2F2012%2F12%2FBest-loved-SharePoint-posts-Week-10-Dec-2012%3Fstw%3D1&amp;text=Best+loved+SharePoint+posts%3A+Week+10+Dec+2012&amp;ref=twitbtn"&gt;Tweet this&lt;/a&gt;&lt;span&gt; &amp;middot; &lt;/span&gt;&lt;a target="_blank" href="http://plus.google.com/share?url=http%3A%2F%2Fwww.metaEngine.com%2F2012%2F12%2FBest-loved-SharePoint-posts-Week-10-Dec-2012%3Fsgp%3D1"&gt;Share on Google+&lt;/a&gt;&lt;span&gt; &amp;middot; &lt;/span&gt;&lt;a target="_blank" href="http://www.facebook.com/sharer.php?ref=fbshare&amp;u=http%3A%2F%2Fwww.metaEngine.com%2F2012%2F12%2FBest-loved-SharePoint-posts-Week-10-Dec-2012%3Fsfb%3D1&amp;t=Best+loved+SharePoint+posts%3A+Week+10+Dec+2012"&gt;Share on Facebook&lt;/a&gt;&lt;span&gt; &amp;middot; &lt;/span&gt;&lt;a target="_blank" href="http://del.icio.us/post?url=http%3A%2F%2Fwww.metaEngine.com%2F2012%2F12%2FBest-loved-SharePoint-posts-Week-10-Dec-2012%3Fsdl%3D1&amp;title=Best+loved+SharePoint+posts%3A+Week+10+Dec+2012"&gt;Post to del.icio.us&lt;/a&gt;&lt;/p&gt;
        &lt;img src="http://feeds.feedburner.com/~r/metaengine/~4/U6sgZe-68jA" height="1" width="1"/&gt;</content>
    <feedburner:origLink>http://www.metaEngine.com/2012/12/Best-loved-SharePoint-posts-Week-10-Dec-2012</feedburner:origLink></entry>
    
    <entry>
        <title>Best loved SharePoint posts: Week 3 Dec 2012</title>
        <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/metaengine/~3/V-qkSZr7-QY/Best-loved-SharePoint-posts-Week-3-Dec-2012" />
        <id>tag:www.metaEngine.com,2012-12-10:post:71001</id>
        <updated>2012-12-10T11:59:39Z</updated>
        <published>2012-12-10T11:59:39Z</published>
        <author>
            <name>Peter Collins</name>
            <uri>http://www.metaEngine.com/</uri>
        </author>
        <content type="html">
          &lt;p&gt;&lt;img class="scale-with-grid" alt="SharePoint Posts - Best Loved" src="http://lh3.googleusercontent.com/-HhMim-YhPaU/ULx0ee7fqdI/AAAAAAAAAaE/cW3tizW_N98/s264/sharepointposts.png" /&gt;&lt;/p&gt;

&lt;p&gt;Here’s my best loved posts of the week: 3 December 2012&lt;/p&gt;

&lt;h5&gt;Everyone&lt;/h5&gt;

&lt;p&gt;&lt;a href="http://www.aiim.org/community/blogs/expert/Best-Practice-e28093-Metadata-in-SharePoint-and-Beyond" target="_blank"&gt;Best Practice – Metadata in SharePoint and Beyond&lt;/a&gt; 

  &lt;br /&gt;Good starter advice for metadata in SharePoint.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://blogs.sharepoint911.com/blogs/jennifer/Lists/Posts/Post.aspx?List=126e87c2-6987-4652-a0af-425b31d827bd&amp;amp;ID=116&amp;amp;Web=2d9e5740-0f11-4705-b67c-010879b6e2a9" target="_blank"&gt;Sharing Content in SharePoint 2013&lt;/a&gt; 

  &lt;br /&gt;Overview of access request features in 2013.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://charliedigital.com/2012/12/04/microsoft-sharepoint-and-social/" target="_blank"&gt;Microsoft, SharePoint, and Enterprise Social [Charles Chen]&lt;/a&gt;&amp;#160; &lt;br /&gt;Strongly voiced opinion on Enterprise Social, not sure I’m quite this negative but the continuing massive sell of “Social” software as the route to business success does get a bit tedious. (Some teams I worked with struggled to be social when they were sat 1 metre apart in an office…)&lt;/p&gt;

&lt;p&gt;&lt;a href="http://blogs.msdn.com/b/justinvoels/archive/2012/12/05/sharepoint-managed-navigation-part-1.aspx" target="_blank"&gt;SharePoint Managed Navigation, Part 1 [Justin Voels]&lt;/a&gt; 

  &lt;br /&gt;Intro to Managed Navigation using Managed Metadata. Nearly as good as &lt;a href="http://www.metaengine.com/sptermcloud" target="_blank"&gt;SPTermCloud&lt;/a&gt;… ;)&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.sharepointgeoff.com/sharepoint-collaborative-ownership/" target="_blank"&gt;SharePoint Collaborative Ownership [Geoff Evelyn]&lt;/a&gt; 

  &lt;br /&gt;A good example of some typical business rules that could be applied a new SharePoint environment. As Geoff says whether you agree or not with his rules make sure you at least have your own rules and plan accordingly, unless you want SharePoint chaos, anarchy and distress to visit…&lt;/p&gt;

&lt;h5&gt;ADMIN&lt;/h5&gt;

&lt;p&gt;&lt;a href="http://blogs.technet.com/b/tothesharepoint/archive/2012/12/04/sharepoint-server-2013-test-lab-guide-stack-refreshed.aspx" target="_blank"&gt;SharePoint Server 2013 Test Lab Guide stack refreshed&lt;/a&gt; 

  &lt;br /&gt;Overview and links to all of the available SharePoint 2013 labs.&lt;/p&gt;

&lt;h5&gt;Developer&lt;/h5&gt;

&lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-gb/magazine/jj870740.aspx" target="_blank"&gt;TypeScript: Add Productivity and Manageability to your JavaScript Apps&lt;/a&gt; 

  &lt;br /&gt;If you’re writing client object model code in JavaScript, definitely check out TypeScript. It adds some order to your JavaScript and can help reduce errors by encouraging better design and doing type checking at compile time. Anyone got TypeScript definitions ready for the SharePoint client OM yet?&lt;/p&gt;

&lt;p&gt;&lt;a href="http://blogs.msdn.com/b/sharepointdesigner/archive/2012/11/22/example-workflow-with-app-step-usage.aspx" target="_blank"&gt;How to Create a SharePoint Designer 2013 Workflow with App Step (extension from the example workflow used for SPC 2012)&lt;/a&gt; 

  &lt;br /&gt;Good overview of creating a step in a workflow with an external web service call and using an App step&lt;/p&gt;
          &lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://www.metaEngine.com/sptermcloud?sfd=1" title="SP Term Cloud - Learn more"&gt;&lt;img border="0" src="http://lh6.googleusercontent.com/-I3pgzHFylMs/T2ZIYeQjxdI/AAAAAAAAARU/kXO0HcT1cF8/s468/termcloudad_468x60.png" alt="SP Term Cloud - Learn more" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style="font-size: 11px;padding: 5px;border: 1px solid #EBEBEB;background: #F8F8F8;"&gt;&lt;a href="mailto:?body=http%3A%2F%2Fwww.metaEngine.com%2F2012%2F12%2FBest-loved-SharePoint-posts-Week-3-Dec-2012&amp;subject=http%3A%2F%2Fwww.metaEngine.com%2F2012%2F12%2FBest-loved-SharePoint-posts-Week-3-Dec-2012"&gt;Email this&lt;/a&gt;&lt;span&gt; &amp;middot; &lt;/span&gt;&lt;a target="_blank" href="http://twitter.com/share?url=http%3A%2F%2Fwww.metaEngine.com%2F2012%2F12%2FBest-loved-SharePoint-posts-Week-3-Dec-2012%3Fstw%3D1&amp;text=Best+loved+SharePoint+posts%3A+Week+3+Dec+2012&amp;ref=twitbtn"&gt;Tweet this&lt;/a&gt;&lt;span&gt; &amp;middot; &lt;/span&gt;&lt;a target="_blank" href="http://plus.google.com/share?url=http%3A%2F%2Fwww.metaEngine.com%2F2012%2F12%2FBest-loved-SharePoint-posts-Week-3-Dec-2012%3Fsgp%3D1"&gt;Share on Google+&lt;/a&gt;&lt;span&gt; &amp;middot; &lt;/span&gt;&lt;a target="_blank" href="http://www.facebook.com/sharer.php?ref=fbshare&amp;u=http%3A%2F%2Fwww.metaEngine.com%2F2012%2F12%2FBest-loved-SharePoint-posts-Week-3-Dec-2012%3Fsfb%3D1&amp;t=Best+loved+SharePoint+posts%3A+Week+3+Dec+2012"&gt;Share on Facebook&lt;/a&gt;&lt;span&gt; &amp;middot; &lt;/span&gt;&lt;a target="_blank" href="http://del.icio.us/post?url=http%3A%2F%2Fwww.metaEngine.com%2F2012%2F12%2FBest-loved-SharePoint-posts-Week-3-Dec-2012%3Fsdl%3D1&amp;title=Best+loved+SharePoint+posts%3A+Week+3+Dec+2012"&gt;Post to del.icio.us&lt;/a&gt;&lt;/p&gt;
        &lt;img src="http://feeds.feedburner.com/~r/metaengine/~4/V-qkSZr7-QY" height="1" width="1"/&gt;</content>
    <feedburner:origLink>http://www.metaEngine.com/2012/12/Best-loved-SharePoint-posts-Week-3-Dec-2012</feedburner:origLink></entry>
    
    <entry>
        <title>SharePoint Managed Metadata PowerShell script</title>
        <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/metaengine/~3/-YyD30aoD2o/SharePoint-Managed-Metadata-PowerShell-script" />
        <id>tag:www.metaEngine.com,2012-12-07:post:70001</id>
        <updated>2012-12-07T17:02:44Z</updated>
        <published>2012-12-07T17:02:44Z</published>
        <author>
            <name>Peter Collins</name>
            <uri>http://www.metaEngine.com/</uri>
        </author>
        <content type="html">
          &lt;p&gt;&lt;img class="scale-with-grid" alt="Microsoft All-In-One Script Framework" src="http://lh3.googleusercontent.com/-lL6dVLkI6as/UMIdsbCIO6I/AAAAAAAAAcM/3se3RLnS5qc/s720/ms-script.png" /&gt;&lt;/p&gt;

&lt;p&gt;Microsoft's PowerShell script of the week is a script to help admins manage SharePoint managed metadata terms. Check it out &lt;a href="http://gallery.technet.microsoft.com/scriptcenter/Manage-Managed-Metadata-9c42efef" target="_blank"&gt;Manage Managed Metadata Terms in Microsoft SharePoint Server 2010&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;&lt;em&gt;This script can manage managed metadata terms in Microsoft SharePoint Server 2010. You can use this script to get terms, add terms or remove terms. 
    &lt;br /&gt;In a real world, a lot of people ask the possibility of managing managed metadata terms by using Windows PowerShell. Since administrators need to manage lot of terms, they really need to find a script to reduce their workload. 

    &lt;br /&gt;This script contains the following advanced functions: Get-OSCSPTaxonomyTerm Add-OSCSPTaxonomyTerm Remove-OSCSPTaxonomyTerm &lt;/em&gt;&lt;/p&gt;

&lt;p&gt;If you just want to export a term set and you are on Office 365 check out my post: &lt;a  target="_blank" href="http://www.metaengine.com/2012/02/Export-and-Import-a-Term-Set-on-Office-365-with-no-code"&gt;Export and Import a Term Set on Office 365 with no code!&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Inevitable product plug… If you use SharePoint Managed Metadata why not give &lt;a href="http://www.metaengine.com/sptermcloud" target="_blank"&gt;SPTermCloud&lt;/a&gt; a spin…&lt;/p&gt;
          &lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://www.metaEngine.com/sptermcloud?sfd=1" title="SP Term Cloud - Learn more"&gt;&lt;img border="0" src="http://lh6.googleusercontent.com/-I3pgzHFylMs/T2ZIYeQjxdI/AAAAAAAAARU/kXO0HcT1cF8/s468/termcloudad_468x60.png" alt="SP Term Cloud - Learn more" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style="font-size: 11px;padding: 5px;border: 1px solid #EBEBEB;background: #F8F8F8;"&gt;&lt;a href="mailto:?body=http%3A%2F%2Fwww.metaEngine.com%2F2012%2F12%2FSharePoint-Managed-Metadata-PowerShell-script&amp;subject=http%3A%2F%2Fwww.metaEngine.com%2F2012%2F12%2FSharePoint-Managed-Metadata-PowerShell-script"&gt;Email this&lt;/a&gt;&lt;span&gt; &amp;middot; &lt;/span&gt;&lt;a target="_blank" href="http://twitter.com/share?url=http%3A%2F%2Fwww.metaEngine.com%2F2012%2F12%2FSharePoint-Managed-Metadata-PowerShell-script%3Fstw%3D1&amp;text=SharePoint+Managed+Metadata+PowerShell+script&amp;ref=twitbtn"&gt;Tweet this&lt;/a&gt;&lt;span&gt; &amp;middot; &lt;/span&gt;&lt;a target="_blank" href="http://plus.google.com/share?url=http%3A%2F%2Fwww.metaEngine.com%2F2012%2F12%2FSharePoint-Managed-Metadata-PowerShell-script%3Fsgp%3D1"&gt;Share on Google+&lt;/a&gt;&lt;span&gt; &amp;middot; &lt;/span&gt;&lt;a target="_blank" href="http://www.facebook.com/sharer.php?ref=fbshare&amp;u=http%3A%2F%2Fwww.metaEngine.com%2F2012%2F12%2FSharePoint-Managed-Metadata-PowerShell-script%3Fsfb%3D1&amp;t=SharePoint+Managed+Metadata+PowerShell+script"&gt;Share on Facebook&lt;/a&gt;&lt;span&gt; &amp;middot; &lt;/span&gt;&lt;a target="_blank" href="http://del.icio.us/post?url=http%3A%2F%2Fwww.metaEngine.com%2F2012%2F12%2FSharePoint-Managed-Metadata-PowerShell-script%3Fsdl%3D1&amp;title=SharePoint+Managed+Metadata+PowerShell+script"&gt;Post to del.icio.us&lt;/a&gt;&lt;/p&gt;
        &lt;img src="http://feeds.feedburner.com/~r/metaengine/~4/-YyD30aoD2o" height="1" width="1"/&gt;</content>
    <feedburner:origLink>http://www.metaEngine.com/2012/12/SharePoint-Managed-Metadata-PowerShell-script</feedburner:origLink></entry>
    
    <entry>
        <title>Returning JSON from the SharePoint DVWP (aka poor mans GetSiteData)</title>
        <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/metaengine/~3/7QiAUEEXfGY/Returning-JSON-from-the-SharePoint-DVWP-aka-poor-mans-GetSiteData" />
        <id>tag:www.metaEngine.com,2012-12-05:post:69001</id>
        <updated>2012-12-05T12:48:23Z</updated>
        <published>2012-12-05T12:48:23Z</published>
        <author>
            <name>Peter Collins</name>
            <uri>http://www.metaEngine.com/</uri>
        </author>
        <content type="html">
          &lt;p&gt;&lt;img class="scale-with-grid" src="http://lh4.googleusercontent.com/-oMuaxvf8giM/UL8iGqqSCfI/AAAAAAAAAbk/j9XK9acU860/s264/dvwp_to_json.png" /&gt;&lt;/p&gt;

&lt;p&gt;Quick follow on post… for the following to make sense &lt;a href="http://www.metaengine.com/2012/12/Roll-up-to-XML-with-a-SharePoint-DVWP-data-page" target="_blank"&gt;check this out first&lt;/a&gt;!&lt;/p&gt;

&lt;p&gt;In the &lt;a href="http://www.metaengine.com/2012/12/Roll-up-to-XML-with-a-SharePoint-DVWP-data-page" target="_blank"&gt;previous post&lt;/a&gt; I described how to use a page with just a Data View web part to query content across a site collection and return XML ready for processing. The post was prompted by a cross list query technique I’ve used for years when search isn’t available and seems relevant again with the current focus on client side development in SharePoint (anyone for Apps?). &lt;/p&gt;

&lt;p&gt;So if you’re processing the data page results in the browser with JavaScript why not return the data in the &lt;a href="http://www.json.org/" target="_blank"&gt;JSON&lt;/a&gt; format ready to go?&lt;/p&gt;

&lt;h5&gt;XML to JSON…&lt;/h5&gt;

&lt;p&gt;To do this you can use a XSL stylesheet that generates JSON from XML. There isn’t a single “official” translation for XML to JSON, but there are several openly available that map elements and attributes map to JSON objects, arrays and properties in slightly different ways. The one to choose depends largely on two things, the XML that you want to translate and how you will write code to manipulate the JSON. Our raw XML from the data view is fairly simple so that reduces the complexity of any stylesheet.&lt;/p&gt;

&lt;p&gt;I’ve chosen to go with a &lt;a href="http://badgerfish.ning.com/" target="_blank"&gt;BadgerFish&lt;/a&gt; style translation with the following translation rules:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;Element names become object properties [e.g. dsQueryResponse, Rows, Row] &lt;/li&gt;

  &lt;li&gt;Nested elements become nested properties [e.g. dsQueryResponse, Rows, Row] &lt;/li&gt;

  &lt;li&gt;Multiple elements at the same level become array elements. [e.g. our Row elements] &lt;/li&gt;

  &lt;li&gt;Attributes go in properties whose names begin with &lt;code&gt;@&lt;/code&gt;. [all our field/column values] &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;For my stylesheet I’ve used the basis of a XSLT version 1.0 stylesheet from the following article &lt;a href="http://controlfreak.net/xml-to-json-in-xslt-a-toolkit/" target="_blank"&gt;XML to JSON in XSLT – a toolkit&lt;/a&gt; and combined the character escaping templates from the &lt;a href="https://github.com/mckamey/jsonml" target="_blank"&gt;JSONML library&lt;/a&gt;. I’ve also escaped any attribute names with a dot in them like &lt;em&gt;ListProperty.Title&lt;/em&gt; to become &lt;em&gt;ListProperty-Title&lt;/em&gt;. The full stylesheet is at the end of the post.&lt;/p&gt;

&lt;h5&gt;The Results…&lt;/h5&gt;

&lt;p&gt;&lt;img class="scale-with-grid" src="http://lh4.googleusercontent.com/-HFaqTLKRzeE/UL8fpGhdMVI/AAAAAAAAAbI/J1R1AV9ikeI/s618/dvwp_json.png" /&gt;&lt;/p&gt;

&lt;h5&gt;Using the results &lt;/h5&gt;

&lt;p&gt;Using jQuery we can call the Data View JSON page using getJSON and process our results in JavaScript. e.g.&lt;/p&gt;

&lt;pre&gt;$.getJSON(&amp;quot;/announcementsJSON.aspx&amp;quot;,
 function(data) {&amp;#160;&amp;#160;&amp;#160; $.each(data.dsQueryResponse.Rows.Row, function(i,item){&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; alert(item['@Title']);&amp;#160;&amp;#160;&amp;#160; });
});&lt;/pre&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;Using a Data View parameter binding the stylesheet could also be extended to fetch a callback function name from the query string enabling the page to be used across domains using the JSONP style of call. &lt;/p&gt;

&lt;h5&gt;The stylesheet…&lt;/h5&gt;

&lt;pre class="brush: xml;  gutter: false;"&gt;&amp;lt;xsl:stylesheet version=&amp;quot;1.0&amp;quot; exclude-result-prefixes=&amp;quot;xsl ddwrt2 ddwrt&amp;quot; 
xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot; xmlns:ddwrt2=&amp;quot;urn:frontpage:internal&amp;quot; 
xmlns:ddwrt=&amp;quot;http://schemas.microsoft.com/WebParts/v2/DataView/runtime&amp;quot; &amp;gt;

  &amp;lt;xsl:output method=&amp;quot;text&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; indent=&amp;quot;no&amp;quot; omit-xml-declaration=&amp;quot;yes&amp;quot; /&amp;gt;

  &amp;lt;xsl:variable name=&amp;quot;STRING_DELIM&amp;quot; select=&amp;quot;'&amp;amp;quot;'&amp;quot; /&amp;gt;


  &amp;lt;!-- create a key for every element in the document using its name --&amp;gt;
  &amp;lt;xsl:key name=&amp;quot;names&amp;quot; match=&amp;quot;*&amp;quot; use=&amp;quot;concat(generate-id(..),'/',name())&amp;quot;/&amp;gt;

  &amp;lt;!-- start with the root element --&amp;gt;
  &amp;lt;xsl:template match=&amp;quot;/&amp;quot;&amp;gt;
    &amp;lt;!-- first element needs brackets around it as template does not do that --&amp;gt;
    &amp;lt;xsl:text&amp;gt;{ &amp;lt;/xsl:text&amp;gt;
    &amp;lt;!-- call the template for elements using one unique name at a time --&amp;gt;
    &amp;lt;xsl:apply-templates select=&amp;quot;*[generate-id(.) = generate-id(key('names', concat(generate-id(..),'/',name()))[1])]&amp;quot; &amp;gt;
      &amp;lt;xsl:sort select=&amp;quot;name()&amp;quot;/&amp;gt;
    &amp;lt;/xsl:apply-templates&amp;gt;
    &amp;lt;xsl:text&amp;gt; }&amp;lt;/xsl:text&amp;gt;
  &amp;lt;/xsl:template&amp;gt;

  &amp;lt;!-- this template handles elements --&amp;gt;
  &amp;lt;xsl:template match=&amp;quot;*&amp;quot;&amp;gt;
    &amp;lt;!-- count the number of elements with the same name --&amp;gt;
    &amp;lt;xsl:variable name=&amp;quot;kctr&amp;quot; select=&amp;quot;count(key('names', concat(generate-id(..),'/',name())))&amp;quot;/&amp;gt;
    &amp;lt;!-- iterate through by sets of elements with same name --&amp;gt;
    &amp;lt;xsl:for-each select=&amp;quot;key('names', concat(generate-id(..),'/',name()))&amp;quot;&amp;gt;
      &amp;lt;!-- deal with the element name and start of multiple element block --&amp;gt;
      &amp;lt;xsl:choose&amp;gt;
        &amp;lt;xsl:when test=&amp;quot;($kctr &amp;gt; 1) and (position() = 1)&amp;quot;&amp;gt;
          &amp;lt;xsl:text&amp;gt;&amp;quot;&amp;lt;/xsl:text&amp;gt;
          &amp;lt;xsl:value-of select=&amp;quot;name()&amp;quot;/&amp;gt;
          &amp;lt;xsl:text&amp;gt;&amp;quot; : [ &amp;lt;/xsl:text&amp;gt;
        &amp;lt;/xsl:when&amp;gt;
        &amp;lt;xsl:when test=&amp;quot;$kctr = 1&amp;quot;&amp;gt;
          &amp;lt;xsl:text&amp;gt;&amp;quot;&amp;lt;/xsl:text&amp;gt;
          &amp;lt;xsl:value-of select=&amp;quot;name()&amp;quot;/&amp;gt;
          &amp;lt;xsl:text&amp;gt;&amp;quot; : &amp;lt;/xsl:text&amp;gt;
        &amp;lt;/xsl:when&amp;gt;
      &amp;lt;/xsl:choose&amp;gt;
      &amp;lt;!-- count number of elements, text nodes and attribute nodes --&amp;gt;
      &amp;lt;xsl:variable name=&amp;quot;nctr&amp;quot; select=&amp;quot;count(*|text()|@*)&amp;quot;/&amp;gt;
      &amp;lt;xsl:choose&amp;gt;
        &amp;lt;xsl:when test=&amp;quot;$nctr = 0&amp;quot;&amp;gt;
          &amp;lt;!-- no contents at all --&amp;gt;
          &amp;lt;xsl:text&amp;gt;null&amp;lt;/xsl:text&amp;gt;
        &amp;lt;/xsl:when&amp;gt;
        &amp;lt;xsl:otherwise&amp;gt;
          &amp;lt;xsl:variable name=&amp;quot;ctr&amp;quot; select=&amp;quot;count(*)&amp;quot;/&amp;gt;
          &amp;lt;xsl:variable name=&amp;quot;tctr&amp;quot; select=&amp;quot;count(text())&amp;quot;/&amp;gt;
          &amp;lt;xsl:variable name=&amp;quot;actr&amp;quot; select=&amp;quot;count(@*)&amp;quot;/&amp;gt;
          &amp;lt;!-- there will be contents so start an object --&amp;gt;
          &amp;lt;xsl:text&amp;gt;{ &amp;lt;/xsl:text&amp;gt;
          &amp;lt;!-- handle attribute nodes --&amp;gt;
          &amp;lt;xsl:if test=&amp;quot;$actr &amp;gt; 0&amp;quot;&amp;gt;
            &amp;lt;xsl:apply-templates select=&amp;quot;@*&amp;quot;/&amp;gt;
            &amp;lt;xsl:if test=&amp;quot;($tctr &amp;gt; 0) or ($ctr &amp;gt; 0)&amp;quot;&amp;gt;
              &amp;lt;xsl:text&amp;gt;, &amp;lt;/xsl:text&amp;gt;
            &amp;lt;/xsl:if&amp;gt;
          &amp;lt;/xsl:if&amp;gt;
          &amp;lt;!-- call template for child elements one unique name at a time --&amp;gt;
          &amp;lt;xsl:if test=&amp;quot;$ctr &amp;gt; 0&amp;quot;&amp;gt;
            &amp;lt;xsl:apply-templates select=&amp;quot;*[generate-id(.) = generate-id(key('names', concat(generate-id(..),'/',name()))[1])]&amp;quot;&amp;gt;
              &amp;lt;xsl:sort select=&amp;quot;name()&amp;quot;/&amp;gt;
            &amp;lt;/xsl:apply-templates&amp;gt;
            &amp;lt;xsl:if test=&amp;quot;$tctr &amp;gt; 0&amp;quot;&amp;gt;
              &amp;lt;xsl:text&amp;gt;, &amp;lt;/xsl:text&amp;gt;
            &amp;lt;/xsl:if&amp;gt;
          &amp;lt;/xsl:if&amp;gt;
          &amp;lt;!-- handle text nodes --&amp;gt;
          &amp;lt;xsl:choose&amp;gt;
            &amp;lt;xsl:when test=&amp;quot;$tctr = 1&amp;quot;&amp;gt;
              &amp;lt;xsl:text&amp;gt;&amp;quot;$&amp;quot; : &amp;lt;/xsl:text&amp;gt;
              &amp;lt;xsl:apply-templates select=&amp;quot;text()&amp;quot;/&amp;gt;
            &amp;lt;/xsl:when&amp;gt;
            &amp;lt;xsl:when test=&amp;quot;$tctr &amp;gt; 1&amp;quot;&amp;gt;
              &amp;lt;xsl:text&amp;gt;&amp;quot;$&amp;quot; : [ &amp;lt;/xsl:text&amp;gt;
              &amp;lt;xsl:apply-templates select=&amp;quot;text()&amp;quot;/&amp;gt;
              &amp;lt;xsl:text&amp;gt; ]&amp;lt;/xsl:text&amp;gt;
            &amp;lt;/xsl:when&amp;gt;
          &amp;lt;/xsl:choose&amp;gt;
          &amp;lt;xsl:text&amp;gt; }&amp;lt;/xsl:text&amp;gt;
        &amp;lt;/xsl:otherwise&amp;gt;
      &amp;lt;/xsl:choose&amp;gt;
      &amp;lt;!-- special processing if we are in multiple element block --&amp;gt;
      &amp;lt;xsl:if test=&amp;quot;$kctr &amp;gt; 1&amp;quot;&amp;gt;
        &amp;lt;xsl:choose&amp;gt;
          &amp;lt;xsl:when test=&amp;quot;position() = last()&amp;quot;&amp;gt;
            &amp;lt;xsl:text&amp;gt; ]&amp;lt;/xsl:text&amp;gt;
          &amp;lt;/xsl:when&amp;gt;
          &amp;lt;xsl:otherwise&amp;gt;
            &amp;lt;xsl:text&amp;gt;, &amp;lt;/xsl:text&amp;gt;
          &amp;lt;/xsl:otherwise&amp;gt;
        &amp;lt;/xsl:choose&amp;gt;
      &amp;lt;/xsl:if&amp;gt;
    &amp;lt;/xsl:for-each&amp;gt;
    &amp;lt;xsl:if test=&amp;quot;position() != last()&amp;quot;&amp;gt;
      &amp;lt;xsl:text&amp;gt;, &amp;lt;/xsl:text&amp;gt;
    &amp;lt;/xsl:if&amp;gt;
  &amp;lt;/xsl:template&amp;gt;

  &amp;lt;!-- this template handle text nodes --&amp;gt;
  &amp;lt;xsl:template match=&amp;quot;text()&amp;quot;&amp;gt;
    &amp;lt;xsl:variable name=&amp;quot;t&amp;quot; select=&amp;quot;.&amp;quot; /&amp;gt;
    &amp;lt;xsl:choose&amp;gt;
      &amp;lt;!-- test to see if it is a number --&amp;gt;
      &amp;lt;xsl:when test=&amp;quot;string(number($t)) != 'NaN'&amp;quot;&amp;gt;
        &amp;lt;xsl:value-of select=&amp;quot;$t&amp;quot;/&amp;gt;
      &amp;lt;/xsl:when&amp;gt;
      &amp;lt;!-- deal with any case booleans --&amp;gt;
      &amp;lt;xsl:when test=&amp;quot;translate($t, 'TRUE', 'true') = 'true'&amp;quot;&amp;gt;
        &amp;lt;xsl:text&amp;gt;true&amp;lt;/xsl:text&amp;gt;
      &amp;lt;/xsl:when&amp;gt;
      &amp;lt;xsl:when test=&amp;quot;translate($t, 'FALSE', 'false') = 'false'&amp;quot;&amp;gt;
        &amp;lt;xsl:text&amp;gt;false&amp;lt;/xsl:text&amp;gt;
      &amp;lt;/xsl:when&amp;gt;
      &amp;lt;!-- must be text --&amp;gt;
      &amp;lt;xsl:otherwise&amp;gt;
        &amp;lt;xsl:call-template name=&amp;quot;escape-string&amp;quot;&amp;gt;
          &amp;lt;xsl:with-param name=&amp;quot;value&amp;quot;
                  select=&amp;quot;.&amp;quot; /&amp;gt;
        &amp;lt;/xsl:call-template&amp;gt;
      &amp;lt;/xsl:otherwise&amp;gt;
    &amp;lt;/xsl:choose&amp;gt;
    &amp;lt;xsl:if test=&amp;quot;position() != last()&amp;quot;&amp;gt;
      &amp;lt;xsl:text&amp;gt;, &amp;lt;/xsl:text&amp;gt;
    &amp;lt;/xsl:if&amp;gt;
  &amp;lt;/xsl:template&amp;gt;

  &amp;lt;!-- this template handles attribute nodes --&amp;gt;
  &amp;lt;xsl:template match=&amp;quot;@*&amp;quot;&amp;gt;
    &amp;lt;!-- attach prefix to attribute names --&amp;gt;
    &amp;lt;xsl:text&amp;gt;&amp;quot;@&amp;lt;/xsl:text&amp;gt;
    
    &amp;lt;!-- escape . in attribute name --&amp;gt;
    &amp;lt;xsl:call-template name=&amp;quot;string-replace&amp;quot;&amp;gt;
      &amp;lt;xsl:with-param name=&amp;quot;value&amp;quot; select=&amp;quot;name()&amp;quot; /&amp;gt;
      &amp;lt;xsl:with-param name=&amp;quot;find&amp;quot; select=&amp;quot;'.'&amp;quot; /&amp;gt;
      &amp;lt;xsl:with-param name=&amp;quot;replace&amp;quot; select=&amp;quot;'-'&amp;quot; /&amp;gt;
    &amp;lt;/xsl:call-template&amp;gt;
    
    &amp;lt;xsl:text&amp;gt;&amp;quot; : &amp;lt;/xsl:text&amp;gt;
    &amp;lt;xsl:variable name=&amp;quot;t&amp;quot; select=&amp;quot;.&amp;quot; /&amp;gt;
    &amp;lt;xsl:choose&amp;gt;
      &amp;lt;xsl:when test=&amp;quot;string(number($t)) != 'NaN'&amp;quot;&amp;gt;
        &amp;lt;xsl:value-of select=&amp;quot;$t&amp;quot;/&amp;gt;
      &amp;lt;/xsl:when&amp;gt;
      &amp;lt;xsl:when test=&amp;quot;translate($t, 'TRUE', 'true') = 'true'&amp;quot;&amp;gt;
        &amp;lt;xsl:text&amp;gt;true&amp;lt;/xsl:text&amp;gt;
      &amp;lt;/xsl:when&amp;gt;
      &amp;lt;xsl:when test=&amp;quot;translate($t, 'FALSE', 'false') = 'false'&amp;quot;&amp;gt;
        &amp;lt;xsl:text&amp;gt;false&amp;lt;/xsl:text&amp;gt;
      &amp;lt;/xsl:when&amp;gt;
      &amp;lt;xsl:otherwise&amp;gt;
        &amp;lt;xsl:call-template name=&amp;quot;escape-string&amp;quot;&amp;gt;
          &amp;lt;xsl:with-param name=&amp;quot;value&amp;quot; select=&amp;quot;.&amp;quot; /&amp;gt;
        &amp;lt;/xsl:call-template&amp;gt;
      &amp;lt;/xsl:otherwise&amp;gt;
    &amp;lt;/xsl:choose&amp;gt;
    &amp;lt;xsl:if test=&amp;quot;position() != last()&amp;quot;&amp;gt;
      &amp;lt;xsl:text&amp;gt;, &amp;lt;/xsl:text&amp;gt;
    &amp;lt;/xsl:if&amp;gt;
  &amp;lt;/xsl:template&amp;gt;

  &amp;lt;!-- escape-string: quotes and escapes --&amp;gt;
  &amp;lt;xsl:template name=&amp;quot;escape-string&amp;quot;&amp;gt;
    &amp;lt;xsl:param name=&amp;quot;value&amp;quot; /&amp;gt;

    &amp;lt;xsl:value-of select=&amp;quot;$STRING_DELIM&amp;quot; /&amp;gt;

    &amp;lt;xsl:if test=&amp;quot;string-length($value)&amp;gt;0&amp;quot;&amp;gt;
      &amp;lt;xsl:variable name=&amp;quot;escaped-whacks&amp;quot;&amp;gt;
        &amp;lt;!-- escape backslashes --&amp;gt;
        &amp;lt;xsl:call-template name=&amp;quot;string-replace&amp;quot;&amp;gt;
          &amp;lt;xsl:with-param name=&amp;quot;value&amp;quot; select=&amp;quot;$value&amp;quot; /&amp;gt;
          &amp;lt;xsl:with-param name=&amp;quot;find&amp;quot; select=&amp;quot;'\'&amp;quot; /&amp;gt;
          &amp;lt;xsl:with-param name=&amp;quot;replace&amp;quot; select=&amp;quot;'\\'&amp;quot; /&amp;gt;
        &amp;lt;/xsl:call-template&amp;gt;
      &amp;lt;/xsl:variable&amp;gt;

      &amp;lt;xsl:variable name=&amp;quot;escaped-LF&amp;quot;&amp;gt;
        &amp;lt;!-- escape line feeds --&amp;gt;
        &amp;lt;xsl:call-template name=&amp;quot;string-replace&amp;quot;&amp;gt;
          &amp;lt;xsl:with-param name=&amp;quot;value&amp;quot; select=&amp;quot;$escaped-whacks&amp;quot; /&amp;gt;
          &amp;lt;xsl:with-param name=&amp;quot;find&amp;quot; select=&amp;quot;'&amp;amp;#x0A;'&amp;quot; /&amp;gt;
          &amp;lt;xsl:with-param name=&amp;quot;replace&amp;quot; select=&amp;quot;'\n'&amp;quot; /&amp;gt;
        &amp;lt;/xsl:call-template&amp;gt;
      &amp;lt;/xsl:variable&amp;gt;

      &amp;lt;xsl:variable name=&amp;quot;escaped-CR&amp;quot;&amp;gt;
        &amp;lt;!-- escape carriage returns --&amp;gt;
        &amp;lt;xsl:call-template name=&amp;quot;string-replace&amp;quot;&amp;gt;
          &amp;lt;xsl:with-param name=&amp;quot;value&amp;quot; select=&amp;quot;$escaped-LF&amp;quot; /&amp;gt;
          &amp;lt;xsl:with-param name=&amp;quot;find&amp;quot; select=&amp;quot;'&amp;amp;#x0D;'&amp;quot; /&amp;gt;
          &amp;lt;xsl:with-param name=&amp;quot;replace&amp;quot; select=&amp;quot;'\r'&amp;quot; /&amp;gt;
        &amp;lt;/xsl:call-template&amp;gt;
      &amp;lt;/xsl:variable&amp;gt;

      &amp;lt;xsl:variable name=&amp;quot;escaped-tabs&amp;quot;&amp;gt;
        &amp;lt;!-- escape tabs --&amp;gt;
        &amp;lt;xsl:call-template name=&amp;quot;string-replace&amp;quot;&amp;gt;
          &amp;lt;xsl:with-param name=&amp;quot;value&amp;quot; select=&amp;quot;$escaped-CR&amp;quot; /&amp;gt;
          &amp;lt;xsl:with-param name=&amp;quot;find&amp;quot; select=&amp;quot;'&amp;amp;#x09;'&amp;quot; /&amp;gt;
          &amp;lt;xsl:with-param name=&amp;quot;replace&amp;quot; select=&amp;quot;'\t'&amp;quot; /&amp;gt;
        &amp;lt;/xsl:call-template&amp;gt;
      &amp;lt;/xsl:variable&amp;gt;

      &amp;lt;!-- escape quotes --&amp;gt;
      &amp;lt;xsl:call-template name=&amp;quot;string-replace&amp;quot;&amp;gt;
        &amp;lt;xsl:with-param name=&amp;quot;value&amp;quot; select=&amp;quot;$escaped-tabs&amp;quot; /&amp;gt;
        &amp;lt;xsl:with-param name=&amp;quot;find&amp;quot; select=&amp;quot;'&amp;amp;quot;'&amp;quot; /&amp;gt;
        &amp;lt;xsl:with-param name=&amp;quot;replace&amp;quot; select=&amp;quot;'\&amp;amp;quot;'&amp;quot; /&amp;gt;
      &amp;lt;/xsl:call-template&amp;gt;
    &amp;lt;/xsl:if&amp;gt;

    &amp;lt;xsl:value-of select=&amp;quot;$STRING_DELIM&amp;quot; /&amp;gt;
  &amp;lt;/xsl:template&amp;gt;

  &amp;lt;!-- string-replace: replaces occurances of one string with another --&amp;gt;
  &amp;lt;xsl:template name=&amp;quot;string-replace&amp;quot;&amp;gt;
    &amp;lt;xsl:param name=&amp;quot;value&amp;quot; /&amp;gt;
    &amp;lt;xsl:param name=&amp;quot;find&amp;quot; /&amp;gt;
    &amp;lt;xsl:param name=&amp;quot;replace&amp;quot; /&amp;gt;

    &amp;lt;xsl:choose&amp;gt;
      &amp;lt;xsl:when test=&amp;quot;contains($value,$find)&amp;quot;&amp;gt;
        &amp;lt;!-- replace and call recursively on next --&amp;gt;
        &amp;lt;xsl:value-of select=&amp;quot;substring-before($value,$find)&amp;quot; disable-output-escaping=&amp;quot;yes&amp;quot; /&amp;gt;
        &amp;lt;xsl:value-of select=&amp;quot;$replace&amp;quot; disable-output-escaping=&amp;quot;yes&amp;quot; /&amp;gt;
        &amp;lt;xsl:call-template name=&amp;quot;string-replace&amp;quot;&amp;gt;
          &amp;lt;xsl:with-param name=&amp;quot;value&amp;quot; select=&amp;quot;substring-after($value,$find)&amp;quot; /&amp;gt;
          &amp;lt;xsl:with-param name=&amp;quot;find&amp;quot; select=&amp;quot;$find&amp;quot; /&amp;gt;
          &amp;lt;xsl:with-param name=&amp;quot;replace&amp;quot; select=&amp;quot;$replace&amp;quot; /&amp;gt;
        &amp;lt;/xsl:call-template&amp;gt;
      &amp;lt;/xsl:when&amp;gt;
      &amp;lt;xsl:otherwise&amp;gt;
        &amp;lt;!-- no replacement necessary --&amp;gt;
        &amp;lt;xsl:value-of select=&amp;quot;$value&amp;quot; disable-output-escaping=&amp;quot;yes&amp;quot; /&amp;gt;
      &amp;lt;/xsl:otherwise&amp;gt;
    &amp;lt;/xsl:choose&amp;gt;
  &amp;lt;/xsl:template&amp;gt;
&amp;lt;/xsl:stylesheet&amp;gt; &lt;/pre&gt;


          &lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://www.metaEngine.com/sptermcloud?sfd=1" title="SP Term Cloud - Learn more"&gt;&lt;img border="0" src="http://lh6.googleusercontent.com/-I3pgzHFylMs/T2ZIYeQjxdI/AAAAAAAAARU/kXO0HcT1cF8/s468/termcloudad_468x60.png" alt="SP Term Cloud - Learn more" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style="font-size: 11px;padding: 5px;border: 1px solid #EBEBEB;background: #F8F8F8;"&gt;&lt;a href="mailto:?body=http%3A%2F%2Fwww.metaEngine.com%2F2012%2F12%2FReturning-JSON-from-the-SharePoint-DVWP-aka-poor-mans-GetSiteData&amp;subject=http%3A%2F%2Fwww.metaEngine.com%2F2012%2F12%2FReturning-JSON-from-the-SharePoint-DVWP-aka-poor-mans-GetSiteData"&gt;Email this&lt;/a&gt;&lt;span&gt; &amp;middot; &lt;/span&gt;&lt;a target="_blank" href="http://twitter.com/share?url=http%3A%2F%2Fwww.metaEngine.com%2F2012%2F12%2FReturning-JSON-from-the-SharePoint-DVWP-aka-poor-mans-GetSiteData%3Fstw%3D1&amp;text=Returning+JSON+from+the+SharePoint+DVWP+%28aka+poor+mans+GetSiteData%29&amp;ref=twitbtn"&gt;Tweet this&lt;/a&gt;&lt;span&gt; &amp;middot; &lt;/span&gt;&lt;a target="_blank" href="http://plus.google.com/share?url=http%3A%2F%2Fwww.metaEngine.com%2F2012%2F12%2FReturning-JSON-from-the-SharePoint-DVWP-aka-poor-mans-GetSiteData%3Fsgp%3D1"&gt;Share on Google+&lt;/a&gt;&lt;span&gt; &amp;middot; &lt;/span&gt;&lt;a target="_blank" href="http://www.facebook.com/sharer.php?ref=fbshare&amp;u=http%3A%2F%2Fwww.metaEngine.com%2F2012%2F12%2FReturning-JSON-from-the-SharePoint-DVWP-aka-poor-mans-GetSiteData%3Fsfb%3D1&amp;t=Returning+JSON+from+the+SharePoint+DVWP+%28aka+poor+mans+GetSiteData%29"&gt;Share on Facebook&lt;/a&gt;&lt;span&gt; &amp;middot; &lt;/span&gt;&lt;a target="_blank" href="http://del.icio.us/post?url=http%3A%2F%2Fwww.metaEngine.com%2F2012%2F12%2FReturning-JSON-from-the-SharePoint-DVWP-aka-poor-mans-GetSiteData%3Fsdl%3D1&amp;title=Returning+JSON+from+the+SharePoint+DVWP+%28aka+poor+mans+GetSiteData%29"&gt;Post to del.icio.us&lt;/a&gt;&lt;/p&gt;
        &lt;img src="http://feeds.feedburner.com/~r/metaengine/~4/7QiAUEEXfGY" height="1" width="1"/&gt;</content>
    <feedburner:origLink>http://www.metaEngine.com/2012/12/Returning-JSON-from-the-SharePoint-DVWP-aka-poor-mans-GetSiteData</feedburner:origLink></entry>
    
    <entry>
        <title>Roll up to XML with a SharePoint DVWP data page</title>
        <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/metaengine/~3/4flpRtTDpEU/Roll-up-to-XML-with-a-SharePoint-DVWP-data-page" />
        <id>tag:www.metaEngine.com,2012-12-04:post:68001</id>
        <updated>2012-12-04T09:20:42Z</updated>
        <published>2012-12-04T09:20:42Z</published>
        <author>
            <name>Peter Collins</name>
            <uri>http://www.metaEngine.com/</uri>
        </author>
        <content type="html">
          &lt;p&gt;&lt;img class="scale-with-grid" alt="SharePoint rollup" src="http://lh5.googleusercontent.com/-4gZw0bELkU4/ULyVq9PN_kI/AAAAAAAAAao/-R5EfL_J3kM/s264/sumcontent.png" /&gt; &lt;/p&gt;

&lt;h5&gt;Introduction&lt;/h5&gt;

&lt;p&gt;If you want to aggregate content from SharePoint there are many approaches (Search, Content Query web part, Content Search Server OM, Client OM, web services (SOAP/REST) and the best approach usually depends on a few factors:&lt;/p&gt;

&lt;ul class="disc"&gt;
  &lt;li&gt;Your specific rollup content requirements (e.g. type of information)… &lt;/li&gt;

  &lt;li&gt;Freshness of results &lt;/li&gt;

  &lt;li&gt;Scope of content to be aggregated – cross list/site/farm, etc. &lt;/li&gt;

  &lt;li&gt;Performance impact on SharePoint &lt;/li&gt;

  &lt;li&gt;Access to SharePoint functionality – search, server API, client API, etc. &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The generic answer is always “&lt;strong&gt;it depends&lt;/strong&gt;” but I would normally recommend a search-based aggregation solution because it typically has the lowest impact on the production environment and better query performance. However, search-based presentations of content will only be refreshed after each search crawl (typically once a day, or worse in some environments I’ve seen…) so if freshness of results is key you need to consider other approaches. &lt;/p&gt;

&lt;h5&gt;A GETSITEDATA PAGE…&lt;/h5&gt;

&lt;p&gt;With that caveat out of the way, this post is about a cheeky little “old school” approach you can use to rollup content from a site collection when search isn’t the best option. It’s based on a proxy page with a lonely and humble SharePoint Data View web part (DVWP). The page would typically be consumed from JavaScript, perhaps using jQuery... &lt;/p&gt;

&lt;p&gt;The proxy data page approach requires no server side code and can easily be uploaded to an existing site by a team member for example on Office 365. It also works across SharePoint versions (2007, 2010, 2013) and feature variants (Foundation, Server).&lt;/p&gt;

&lt;p&gt;The page (partially) fills a hole in the SharePoint client object model left by the absent without leave &lt;em&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.spweb.getsitedata.aspx" target="_blank"&gt;SPWeb.GetSiteData(SPSiteDataQuery)&lt;/a&gt;&lt;/em&gt;. I’m guessing this cross site/list query method isn’t available because of the potential performance problems it might cause when abused. &lt;/p&gt;

&lt;p&gt;Note: I’m using the Data View web part rather than the Content Query web part so the approach is applicable to all versions and variants of SharePoint but if you have the Content Query web part available then you could use that to take advantage of the extra performance caching infrastructure the CQWP includes.&lt;/p&gt;

&lt;p&gt;If you want to skip the walk through, at the bottom of the post is a finished cross site collection Announcements XML rollup example page that can be uploaded to SharePoint 2007, 2010 or 2013 .&lt;/p&gt;

&lt;h5&gt;Page with SPDataSource and Data View web part&lt;/h5&gt;

&lt;p&gt;Our bare bones web page markup below contains only a SPDataSource control to run our SharePoint site data query, a DataForm web part commonly known as a DVWP and an XML definition. The page content type is set in the Page directive to &lt;strong&gt;text/xml&lt;/strong&gt; and the xml definition is included immediately after the ASP.Net directives to ensure its at the top of the page (some browsers/parsers get upset when its not the first thing in the response). The DVWP settings SuppressWebPartChrome, ChromeType, FrameType ensure the only the core XSL output of the web part is written to the page. The DataSourceID property references our SPDataSource control. I’ve also turned off the XSL caching using the CacheXslTimeOut and CacheXslStorage properties because I’ve had some odd issues with pages using the wrong cached XSL in the past.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; &lt;strong&gt;DO NOT save the page in SharePoint Designer &lt;/strong&gt;– Designer will “help” you by adding in extra header tags that corrupt the XML output. You can edit the page outside Designer and add it to SharePoint using Designer, Windows Explorer or just upload to a document library.&lt;/p&gt;

&lt;pre class="brush: xml;  gutter: false;"&gt;&amp;lt;%@ Page ContentType=&amp;quot;text/xml&amp;quot; EnableViewState=&amp;quot;false&amp;quot; inherits=&amp;quot;Microsoft.SharePoint.WebPartPages.WebPartPage, Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c&amp;quot; %&amp;gt;
&amp;lt;%@ Assembly Name=&amp;quot;Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c&amp;quot;%&amp;gt;
&amp;lt;%@ Register Tagprefix=&amp;quot;SharePoint&amp;quot; Namespace=&amp;quot;Microsoft.SharePoint.WebControls&amp;quot; Assembly=&amp;quot;Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c&amp;quot; %&amp;gt;
&amp;lt;%@ Register TagPrefix=&amp;quot;WebPartPages&amp;quot; Namespace=&amp;quot;Microsoft.SharePoint.WebPartPages&amp;quot; Assembly=&amp;quot;Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c&amp;quot; %&amp;gt;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;
&amp;lt;SharePoint:SPDataSource runat=&amp;quot;server&amp;quot; ID=&amp;quot;dsCrossList1&amp;quot; DataSourceMode=&amp;quot;CrossList&amp;quot; &amp;gt;
...
&amp;lt;/SharePoint:SPDataSource&amp;gt;&amp;lt;WebPartPages:DataFormWebPart runat=&amp;quot;server&amp;quot; 
DataSourceID=&amp;quot;dsCrossList1&amp;quot; 
SuppressWebPartChrome=&amp;quot;True&amp;quot; ChromeType=&amp;quot;None&amp;quot;  
FrameType=&amp;quot;None&amp;quot;  NoDefaultStyle=&amp;quot;TRUE&amp;quot; 
CacheXslTimeOut=&amp;quot;0&amp;quot; CacheXslStorage=&amp;quot;False&amp;quot; &amp;gt;
&amp;lt;Xsl&amp;gt;
&amp;lt;xsl:stylesheet version=&amp;quot;1.0&amp;quot; exclude-result-prefixes=&amp;quot;xsl&amp;quot; 
xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot;&amp;gt;
  &amp;lt;xsl:output method=&amp;quot;xml&amp;quot; omit-xml-declaration=&amp;quot;yes&amp;quot; version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; indent=&amp;quot;yes&amp;quot; /&amp;gt;
  &amp;lt;xsl:template match=&amp;quot;/&amp;quot; &amp;gt;
    &amp;lt;xsl:copy-of select=&amp;quot;*&amp;quot;/&amp;gt;
  &amp;lt;/xsl:template&amp;gt; 	
&amp;lt;/xsl:stylesheet&amp;gt;
&amp;lt;/Xsl&amp;gt;
&amp;lt;/WebPartPages:DataFormWebPart&amp;gt;&lt;/pre&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;The XSL stylesheet property is a very simple hello world style “copy-of” that reproduces the raw data output of the SPDataSource.&lt;/p&gt;

&lt;h5&gt;SPDataSource options&lt;/h5&gt;

&lt;p&gt;The SPDataSource in the page can be configured in a number of ways and numerous articles across the web about the talk possibilities (&lt;a href="http://blogs.msdn.com/b/sharepointdesigner/archive/2007/04/24/spdatasource-and-rollups-with-the-data-view.aspx?PageIndex=7" target="_blank"&gt;SPDataSource and Rollups with the Data View&lt;/a&gt;, &lt;a href="http://web.archive.org/web/20090204192126/http://blog.thekid.me.uk/archive/2007/02/27/spsitedataquery-samples-for-wss-v3.aspx" target="_blank"&gt;SPSiteDataQuery samples by Vincent Rothwell&lt;/a&gt;). Anything you can do in a SPSiteDataQuery can be accomplished. You specify your SPSiteDataQuery inside the SelectCommand parameter of the SPDataSource e.g. the query below selects all the Announcements in the Site Collection:&lt;/p&gt;

&lt;pre&gt;SelectCommand=&amp;quot;&amp;lt;View Scope='RecursiveAll'&amp;gt;
	&amp;lt;Webs Scope='SiteCollection'&amp;gt;&amp;lt;/Webs&amp;gt;
	&amp;lt;QueryOptions&amp;gt;&amp;lt;/QueryOptions&amp;gt;
	&amp;lt;Lists ServerTemplate='104' BaseType='0'&amp;gt;&amp;lt;/Lists&amp;gt;
	&amp;lt;ViewFields&amp;gt;&amp;lt;FieldRef Name='ID' Type='Counter' /&amp;gt;&amp;lt;FieldRef Name='ContentType' Nullable='TRUE' /&amp;gt;&amp;lt;FieldRef Name='ContentTypeId' Type='ContentTypeId' Nullable='TRUE' /&amp;gt;&amp;lt;FieldRef Name='Modified' Type='DateTime' /&amp;gt;&amp;lt;FieldRef Name='Editor' Type='User' /&amp;gt;&amp;lt;FieldRef Name='EncodedAbsUrl' Nullable='TRUE' /&amp;gt;&amp;lt;FieldRef Name='FileDirRef' Nullable='TRUE' Type='Lookup' /&amp;gt;&amp;lt;FieldRef Name='Title' Nullable='TRUE' Type='Text' /&amp;gt;&amp;lt;FieldRef Name='DocIcon' Nullable='TRUE' /&amp;gt;&amp;lt;FieldRef Name='FileLeafRef' Nullable='TRUE' /&amp;gt;&amp;lt;FieldRef Name='URL' Nullable='TRUE' Type='URL' /&amp;gt;&amp;lt;FieldRef Name='LinkFilenameNoMenu' Nullable='TRUE' /&amp;gt;&amp;lt;FieldRef Name='Body' Nullable='TRUE' /&amp;gt;&amp;lt;ListProperty Name='Title' /&amp;gt;&amp;lt;ProjectProperty Name='Title' /&amp;gt;&amp;lt;/ViewFields&amp;gt;
	&amp;lt;Query&amp;gt;&amp;lt;Where&amp;gt;&amp;lt;Geq&amp;gt;&amp;lt;FieldRef Name='Modified' /&amp;gt;&amp;lt;Value IncludeTimeValue='TRUE' StorageTZ='TRUE' Type='DateTime'&amp;gt;{modified}&amp;lt;/Value&amp;gt;&amp;lt;/Geq&amp;gt;&amp;lt;/Where&amp;gt;&amp;lt;/Query&amp;gt;
	&amp;lt;RowLimit&amp;gt;50&amp;lt;/RowLimit&amp;gt;
&amp;lt;/View&amp;gt;&amp;quot;&lt;/pre&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;A few tips/examples that I’ve found useful with the SPDataSource:&lt;/p&gt;

&lt;ul class="disc"&gt;
  &lt;li&gt;You need to specify all your ViewFields on one line. &lt;/li&gt;

  &lt;li&gt;Inside the ViewFields you can add ListProperty and ProjectProperty fields that retrieve list or web level properties such as Title. &lt;/li&gt;

  &lt;li&gt;To retrieve items/documents inside folders specify Scope='RecursiveAll' on the View element. &lt;/li&gt;

  &lt;li&gt;The Webs element Scope attribute can be SiteCollection (all sites), Recursive (this site and subsites) or empty (just this site) &lt;/li&gt;

  &lt;li&gt;To get list items set BaseType=’0’, to get documents set BaseType=’1’, &lt;/li&gt;

  &lt;li&gt;Beware List throttling – if your query includes a list with more than 5000 items/documents then the query will error and an error message will be returned rather than nicely formatted XML. &lt;/li&gt;

  &lt;li&gt;Make the query dynamic by specifying ParameterBindings with default values that can be overriden via the URL query string. e.g. in the query above the modified parameter can be passed in using &lt;em&gt;page.aspx?m=2012-01-01T12:12:12Z&lt;/em&gt; 

    &lt;br /&gt;

    &lt;br /&gt;

    &lt;pre&gt;&amp;lt;SelectParameters&amp;gt;    
   &amp;lt;asp:QueryStringParameter Name=&amp;quot;modified&amp;quot; QueryStringField=&amp;quot;m&amp;quot; DefaultValue=&amp;quot;2000-01-01T12:12:12Z&amp;quot; /&amp;gt;	 
&amp;lt;/SelectParameters&amp;gt;&lt;/pre&gt;
  &lt;/li&gt;

  &lt;li&gt;Base the query on a specific web in the site collection by specifying the webid parameter – make it dynamic by passing a web id on the query string e.g. 
    &lt;br /&gt;

    &lt;br /&gt;

    &lt;pre&gt;&amp;lt;asp:QueryStringParameter Name=&amp;quot;webid&amp;quot; QueryStringField=&amp;quot;w&amp;quot; DefaultValue=&amp;quot;&amp;quot; /&amp;gt; &lt;/pre&gt;
  &lt;/li&gt;

  &lt;li&gt;To combine both list items and documents into a single response use an AggregrateDataSource and add 2 SPDataSource controls. e.g. the data source below selects both lists items and documents 
    &lt;br /&gt;

    &lt;br /&gt;

    &lt;pre class="brush: xml;  gutter: false;"&gt;&amp;lt;SharePoint:AggregateDataSource runat=&amp;quot;server&amp;quot; IsSynchronous=&amp;quot;false&amp;quot; id=&amp;quot;AggSource1&amp;quot;&amp;gt;&amp;lt;sources&amp;gt;
	&amp;lt;SharePoint:SPDataSource runat=&amp;quot;server&amp;quot; ID=&amp;quot;dsCrossList1&amp;quot; DataSourceMode=&amp;quot;CrossList&amp;quot; 
		SelectCommand=&amp;quot;&amp;lt;View Scope='RecursiveAll'&amp;gt;
		      &amp;lt;Webs Scope='SiteCollection'&amp;gt;&amp;lt;/Webs&amp;gt;
		      &amp;lt;QueryOptions&amp;gt;&amp;lt;/QueryOptions&amp;gt;
		      &amp;lt;Lists BaseType='0'&amp;gt;&amp;lt;/Lists&amp;gt;
		      &amp;lt;ViewFields&amp;gt;&amp;lt;FieldRef Name='ID' Type='Counter' /&amp;gt;&amp;lt;FieldRef Name='ContentType' Nullable='TRUE' /&amp;gt;&amp;lt;FieldRef Name='ContentTypeId' Type='ContentTypeId' Nullable='TRUE' /&amp;gt;&amp;lt;FieldRef Name='Modified' Type='DateTime' /&amp;gt;&amp;lt;FieldRef Name='Editor' Type='User' /&amp;gt;&amp;lt;FieldRef Name='EncodedAbsUrl' Nullable='TRUE' /&amp;gt;&amp;lt;FieldRef Name='FileDirRef' Nullable='TRUE' Type='Lookup' /&amp;gt;&amp;lt;FieldRef Name='Title' Nullable='TRUE' Type='Text' /&amp;gt;&amp;lt;FieldRef Name='DocIcon' Nullable='TRUE' /&amp;gt;&amp;lt;FieldRef Name='FileLeafRef' Nullable='TRUE' /&amp;gt;&amp;lt;FieldRef Name='LinkFilenameNoMenu' Nullable='TRUE' /&amp;gt;&amp;lt;ListProperty Name='Title' /&amp;gt;&amp;lt;ProjectProperty Name='Title' /&amp;gt;&amp;lt;/ViewFields&amp;gt;
		      &amp;lt;Query&amp;gt;&amp;lt;Where&amp;gt;&amp;lt;Geq&amp;gt;&amp;lt;FieldRef Name='Modified' /&amp;gt;&amp;lt;Value IncludeTimeValue='TRUE' StorageTZ='TRUE' Type='DateTime'&amp;gt;{modified}&amp;lt;/Value&amp;gt;&amp;lt;/Geq&amp;gt;&amp;lt;/Where&amp;gt;&amp;lt;/Query&amp;gt;
		      &amp;lt;RowLimit&amp;gt;50&amp;lt;/RowLimit&amp;gt;
		    &amp;lt;/View&amp;gt;&amp;quot;
		  UseInternalName=&amp;quot;true&amp;quot;&amp;gt;
	  &amp;lt;SelectParameters&amp;gt;    
		 &amp;lt;asp:QueryStringParameter Name=&amp;quot;webid&amp;quot; QueryStringField=&amp;quot;w&amp;quot; DefaultValue=&amp;quot;&amp;quot; /&amp;gt;
		 &amp;lt;asp:QueryStringParameter Name=&amp;quot;modified&amp;quot; QueryStringField=&amp;quot;m&amp;quot; DefaultValue=&amp;quot;2000-01-01T12:12:12Z&amp;quot; /&amp;gt;	 
	  	&amp;lt;/SelectParameters&amp;gt;
	&amp;lt;/SharePoint:SPDataSource&amp;gt; 
	&amp;lt;SharePoint:SPDataSource runat=&amp;quot;server&amp;quot; ID=&amp;quot;dsCrossList2&amp;quot; DataSourceMode=&amp;quot;CrossList&amp;quot; 
		SelectCommand=&amp;quot;&amp;lt;View Scope='RecursiveAll'&amp;gt;
		      &amp;lt;Webs Scope='SiteCollection'&amp;gt;&amp;lt;/Webs&amp;gt;
		      &amp;lt;QueryOptions&amp;gt;&amp;lt;/QueryOptions&amp;gt;
		      &amp;lt;Lists BaseType='1'&amp;gt;&amp;lt;/Lists&amp;gt;
		      &amp;lt;ViewFields&amp;gt;&amp;lt;FieldRef Name='ID' Type='Counter' /&amp;gt;&amp;lt;FieldRef Name='ContentType' Nullable='TRUE' /&amp;gt;&amp;lt;FieldRef Name='ContentTypeId' Type='ContentTypeId' Nullable='TRUE' /&amp;gt;&amp;lt;FieldRef Name='Modified' Type='DateTime' /&amp;gt;&amp;lt;FieldRef Name='Editor' Type='User' /&amp;gt;&amp;lt;FieldRef Name='EncodedAbsUrl' Nullable='TRUE' /&amp;gt;&amp;lt;FieldRef Name='FileDirRef' Nullable='TRUE' Type='Lookup' /&amp;gt;&amp;lt;FieldRef Name='Title' Nullable='TRUE' Type='Text' /&amp;gt;&amp;lt;FieldRef Name='DocIcon' Nullable='TRUE' /&amp;gt;&amp;lt;FieldRef Name='FileLeafRef' Nullable='TRUE' /&amp;gt;&amp;lt;FieldRef Name='LinkFilenameNoMenu' Nullable='TRUE' /&amp;gt;&amp;lt;ListProperty Name='Title' /&amp;gt;&amp;lt;ProjectProperty Name='Title' /&amp;gt;&amp;lt;/ViewFields&amp;gt;
		      &amp;lt;Query&amp;gt;&amp;lt;Where&amp;gt;&amp;lt;Geq&amp;gt;&amp;lt;FieldRef Name='Modified' /&amp;gt;&amp;lt;Value IncludeTimeValue='TRUE' StorageTZ='TRUE' Type='DateTime'&amp;gt;{modified}&amp;lt;/Value&amp;gt;&amp;lt;/Geq&amp;gt;&amp;lt;/Where&amp;gt;&amp;lt;/Query&amp;gt;
		      &amp;lt;RowLimit&amp;gt;50&amp;lt;/RowLimit&amp;gt;
		    &amp;lt;/View&amp;gt;&amp;quot;
		  UseInternalName=&amp;quot;true&amp;quot;&amp;gt;
	  &amp;lt;SelectParameters&amp;gt;  
		 &amp;lt;asp:QueryStringParameter Name=&amp;quot;webid&amp;quot; QueryStringField=&amp;quot;w&amp;quot; DefaultValue=&amp;quot;&amp;quot; /&amp;gt;
		 &amp;lt;asp:QueryStringParameter Name=&amp;quot;modified&amp;quot; QueryStringField=&amp;quot;m&amp;quot; DefaultValue=&amp;quot;2000-01-01T12:12:12Z&amp;quot; /&amp;gt;	 
	  	&amp;lt;/SelectParameters&amp;gt;
	&amp;lt;/SharePoint:SPDataSource&amp;gt; 
&amp;lt;/sources&amp;gt;&amp;lt;aggregate&amp;gt;
    &amp;lt;concat name=&amp;quot;data source&amp;quot;&amp;gt;
            &amp;lt;datasource name=&amp;quot;Items&amp;quot; id=&amp;quot;0&amp;quot; Type=&amp;quot;SPList&amp;quot;/&amp;gt;
            &amp;lt;datasource name=&amp;quot;Documents&amp;quot; id=&amp;quot;1&amp;quot; Type=&amp;quot;SPDocLib&amp;quot;/&amp;gt;
    &amp;lt;/concat&amp;gt;
    &amp;lt;/aggregate&amp;gt;
&amp;lt;/SharePoint:AggregateDataSource&amp;gt;&lt;/pre&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;h5&gt;Site Announcements example&lt;/h5&gt;

&lt;p&gt;And finally… A sample. A fairly common rollup scenario is that of a news ticker. The page returns the latest announcements from across a site in XML and could be used by JavaScript to power a jQuery plugin. The XML output is shown below:&lt;/p&gt;

&lt;p&gt;&lt;img class="scale-with-grid" src="http://lh6.googleusercontent.com/-z1lIgoqeBTE/ULyo9mp4HJI/AAAAAAAAAa4/M6p8mt7MFZU/s683/dvwp_xml.png" /&gt;&lt;/p&gt;

&lt;p&gt;and the page markup is:&lt;/p&gt;

&lt;pre class="brush: xml;  gutter: false;"&gt;&amp;lt;%@ Page ContentType=&amp;quot;text/xml&amp;quot; EnableViewState=&amp;quot;false&amp;quot; inherits=&amp;quot;Microsoft.SharePoint.WebPartPages.WebPartPage, Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c&amp;quot; %&amp;gt;
&amp;lt;%@ Assembly Name=&amp;quot;Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c&amp;quot;%&amp;gt;
&amp;lt;%@ Register Tagprefix=&amp;quot;SharePoint&amp;quot; Namespace=&amp;quot;Microsoft.SharePoint.WebControls&amp;quot; Assembly=&amp;quot;Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c&amp;quot; %&amp;gt;
&amp;lt;%@ Register TagPrefix=&amp;quot;WebPartPages&amp;quot; Namespace=&amp;quot;Microsoft.SharePoint.WebPartPages&amp;quot; Assembly=&amp;quot;Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c&amp;quot; %&amp;gt;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;
&amp;lt;SharePoint:SPDataSource runat=&amp;quot;server&amp;quot; ID=&amp;quot;dsCrossList1&amp;quot; DataSourceMode=&amp;quot;CrossList&amp;quot; 
		SelectCommand=&amp;quot;&amp;lt;View Scope='RecursiveAll'&amp;gt;
		      &amp;lt;Webs Scope='SiteCollection'&amp;gt;&amp;lt;/Webs&amp;gt;
		      &amp;lt;QueryOptions&amp;gt;&amp;lt;/QueryOptions&amp;gt;
		      &amp;lt;Lists ServerTemplate='104' BaseType='0'&amp;gt;&amp;lt;/Lists&amp;gt;
			  &amp;lt;ViewFields&amp;gt;&amp;lt;FieldRef Name='ID' Type='Counter' /&amp;gt;&amp;lt;FieldRef Name='ContentType' Nullable='TRUE' /&amp;gt;&amp;lt;FieldRef Name='ContentTypeId' Type='ContentTypeId' Nullable='TRUE' /&amp;gt;&amp;lt;FieldRef Name='Modified' Type='DateTime' /&amp;gt;&amp;lt;FieldRef Name='Editor' Type='User' /&amp;gt;&amp;lt;FieldRef Name='EncodedAbsUrl' Nullable='TRUE' /&amp;gt;&amp;lt;FieldRef Name='FileDirRef' Nullable='TRUE' Type='Lookup' /&amp;gt;&amp;lt;FieldRef Name='Title' Nullable='TRUE' Type='Text' /&amp;gt;&amp;lt;FieldRef Name='DocIcon' Nullable='TRUE' /&amp;gt;&amp;lt;FieldRef Name='FileLeafRef' Nullable='TRUE' /&amp;gt;&amp;lt;FieldRef Name='URL' Nullable='TRUE' Type='URL' /&amp;gt;&amp;lt;FieldRef Name='LinkFilenameNoMenu' Nullable='TRUE' /&amp;gt;&amp;lt;FieldRef Name='Body' Nullable='TRUE' /&amp;gt;&amp;lt;ListProperty Name='Title' /&amp;gt;&amp;lt;ProjectProperty Name='Title' /&amp;gt;&amp;lt;/ViewFields&amp;gt;
		      &amp;lt;Query&amp;gt;&amp;lt;Where&amp;gt;&amp;lt;Geq&amp;gt;&amp;lt;FieldRef Name='Modified' /&amp;gt;&amp;lt;Value IncludeTimeValue='TRUE' StorageTZ='TRUE' Type='DateTime'&amp;gt;{modified}&amp;lt;/Value&amp;gt;&amp;lt;/Geq&amp;gt;&amp;lt;/Where&amp;gt;&amp;lt;/Query&amp;gt;
		      &amp;lt;RowLimit&amp;gt;50&amp;lt;/RowLimit&amp;gt;
		    &amp;lt;/View&amp;gt;&amp;quot;
		  UseInternalName=&amp;quot;true&amp;quot;&amp;gt;
	  &amp;lt;SelectParameters&amp;gt;    
		 &amp;lt;asp:QueryStringParameter Name=&amp;quot;modified&amp;quot; QueryStringField=&amp;quot;m&amp;quot; DefaultValue=&amp;quot;2000-01-01T12:12:12Z&amp;quot; /&amp;gt;	 
	  		&amp;lt;/SelectParameters&amp;gt;
	&amp;lt;/SharePoint:SPDataSource&amp;gt;&amp;lt;WebPartPages:DataFormWebPart runat=&amp;quot;server&amp;quot; 
DataSourceID=&amp;quot;dsCrossList1&amp;quot; 
SuppressWebPartChrome=&amp;quot;True&amp;quot; ChromeType=&amp;quot;None&amp;quot;  
FrameType=&amp;quot;None&amp;quot;  NoDefaultStyle=&amp;quot;TRUE&amp;quot; 
CacheXslTimeOut=&amp;quot;0&amp;quot; CacheXslStorage=&amp;quot;False&amp;quot; &amp;gt;
&amp;lt;Xsl&amp;gt;
&amp;lt;xsl:stylesheet version=&amp;quot;1.0&amp;quot; exclude-result-prefixes=&amp;quot;xsl&amp;quot; 
xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot;&amp;gt;
  &amp;lt;xsl:output method=&amp;quot;xml&amp;quot; omit-xml-declaration=&amp;quot;yes&amp;quot; version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; indent=&amp;quot;yes&amp;quot; /&amp;gt;
  &amp;lt;xsl:template match=&amp;quot;/&amp;quot; &amp;gt;
    &amp;lt;xsl:copy-of select=&amp;quot;*&amp;quot;/&amp;gt;
  &amp;lt;/xsl:template&amp;gt; 	
&amp;lt;/xsl:stylesheet&amp;gt;
&amp;lt;/Xsl&amp;gt;
&amp;lt;/WebPartPages:DataFormWebPart&amp;gt;&lt;/pre&gt;
          &lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://www.metaEngine.com/sptermcloud?sfd=1" title="SP Term Cloud - Learn more"&gt;&lt;img border="0" src="http://lh6.googleusercontent.com/-I3pgzHFylMs/T2ZIYeQjxdI/AAAAAAAAARU/kXO0HcT1cF8/s468/termcloudad_468x60.png" alt="SP Term Cloud - Learn more" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style="font-size: 11px;padding: 5px;border: 1px solid #EBEBEB;background: #F8F8F8;"&gt;&lt;a href="mailto:?body=http%3A%2F%2Fwww.metaEngine.com%2F2012%2F12%2FRoll-up-to-XML-with-a-SharePoint-DVWP-data-page&amp;subject=http%3A%2F%2Fwww.metaEngine.com%2F2012%2F12%2FRoll-up-to-XML-with-a-SharePoint-DVWP-data-page"&gt;Email this&lt;/a&gt;&lt;span&gt; &amp;middot; &lt;/span&gt;&lt;a target="_blank" href="http://twitter.com/share?url=http%3A%2F%2Fwww.metaEngine.com%2F2012%2F12%2FRoll-up-to-XML-with-a-SharePoint-DVWP-data-page%3Fstw%3D1&amp;text=Roll+up+to+XML+with+a+SharePoint+DVWP+data+page&amp;ref=twitbtn"&gt;Tweet this&lt;/a&gt;&lt;span&gt; &amp;middot; &lt;/span&gt;&lt;a target="_blank" href="http://plus.google.com/share?url=http%3A%2F%2Fwww.metaEngine.com%2F2012%2F12%2FRoll-up-to-XML-with-a-SharePoint-DVWP-data-page%3Fsgp%3D1"&gt;Share on Google+&lt;/a&gt;&lt;span&gt; &amp;middot; &lt;/span&gt;&lt;a target="_blank" href="http://www.facebook.com/sharer.php?ref=fbshare&amp;u=http%3A%2F%2Fwww.metaEngine.com%2F2012%2F12%2FRoll-up-to-XML-with-a-SharePoint-DVWP-data-page%3Fsfb%3D1&amp;t=Roll+up+to+XML+with+a+SharePoint+DVWP+data+page"&gt;Share on Facebook&lt;/a&gt;&lt;span&gt; &amp;middot; &lt;/span&gt;&lt;a target="_blank" href="http://del.icio.us/post?url=http%3A%2F%2Fwww.metaEngine.com%2F2012%2F12%2FRoll-up-to-XML-with-a-SharePoint-DVWP-data-page%3Fsdl%3D1&amp;title=Roll+up+to+XML+with+a+SharePoint+DVWP+data+page"&gt;Post to del.icio.us&lt;/a&gt;&lt;/p&gt;
        &lt;img src="http://feeds.feedburner.com/~r/metaengine/~4/4flpRtTDpEU" height="1" width="1"/&gt;</content>
    <feedburner:origLink>http://www.metaEngine.com/2012/12/Roll-up-to-XML-with-a-SharePoint-DVWP-data-page</feedburner:origLink></entry>
    
    <entry>
        <title>Best loved SharePoint posts: Week 26 Nov 2012</title>
        <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/metaengine/~3/Ljdxk-d6miI/Best-loved-SharePoint-posts-Week-26-Nov-2012" />
        <id>tag:www.metaEngine.com,2012-12-03:post:66001</id>
        <updated>2012-12-03T09:50:25Z</updated>
        <published>2012-12-03T09:50:25Z</published>
        <author>
            <name>Peter Collins</name>
            <uri>http://www.metaEngine.com/</uri>
        </author>
        <content type="html">
          &lt;p&gt;&lt;img class="scale-with-grid" alt="SharePoint Posts - Best Loved" src="http://lh3.googleusercontent.com/-HhMim-YhPaU/ULx0ee7fqdI/AAAAAAAAAaE/cW3tizW_N98/s264/sharepointposts.png" /&gt;&lt;/p&gt;

&lt;p&gt;Here’s my best loved posts of the week: 26 November 2012&lt;/p&gt;

&lt;h5&gt;Everyone&lt;/h5&gt;

&lt;p&gt;&lt;a href="http://www.sharepointanalysthq.com/2012/12/drag-and-drop-in-sharepoint-2013/" target="_blank"&gt;Drag and drop content within SharePoint 2013 [Michal Pisarek]&lt;/a&gt; 

  &lt;br /&gt;Good, Bad and the ugly on the new drag and drop in SP 2013.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.nothingbutsharepoint.com/sites/eusp/Pages/How-To-Display-Files-in-a-SharePoint-Library-That-Were-Created-Between-a-Specific-Date-Range.aspx" target="_blank"&gt;How To: Display Files in a SharePoint Library That Were Created Between a Specific Date Range [Dean Virag]&lt;/a&gt; Lovely, quick and easy example of out of the box views with added Windows Explorer search twist…&lt;/p&gt;

&lt;p&gt;&lt;a href="http://blog.mastykarz.nl/search-based-rss-sharepoint-2013/" target="_blank"&gt;Search-based RSS in SharePoint 2013 [Waldek Mastykarz]&lt;/a&gt; 

  &lt;br /&gt;Everyone wants aggregation, everyone wants RSS (I do anyway..)&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.sharepointedutech.com/2012/11/26/spc169-building-vibrant-communities-in-sharepoint-2013/" target="_blank"&gt;Building Vibrant Communities in SharePoint 2013 [Sue Hanley]&lt;/a&gt; 

  &lt;br /&gt;Good info on new Community feature in SP2013&lt;/p&gt;

&lt;h5&gt;Power User&lt;/h5&gt;

&lt;p&gt;&lt;a href="http://blog.lekman.com/2012/11/deploying-apps-to-office-365-preview.html" target="_blank"&gt;Deploying Apps to Office 365 Preview and SharePoint 2013 [Tobias Lekman]&lt;/a&gt;&amp;#160;&amp;#160; &lt;br /&gt;Step by step - make your apps available from your own App Catalog&lt;/p&gt;

&lt;p&gt;&lt;a href="http://sympmarc.com/2012/11/29/easily-hide-columns-on-a-sharepoint-form-with-jquery/?utm_source=rss&amp;amp;utm_medium=rss&amp;amp;utm_campaign=easily-hide-columns-on-a-sharepoint-form-with-jquery" target="_blank"&gt;Easily Hide Columns on a SharePoint Form with jQuery [Marc D Anderson]&lt;/a&gt; 

  &lt;br /&gt;Title speaks for itself… always quick and useful.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.myfatblog.co.uk/index.php/2012/12/automagic-managed-properties-in-sharepoint-2013-search/" target="_blank"&gt;Automagic Managed Properties in SharePoint 2013 search [Paul Hunt]&lt;/a&gt; 

  &lt;br /&gt;New to me that you can search properties per site collection in SP 2013. Excellent functionality.&lt;/p&gt;

&lt;h5&gt;Developer&lt;/h5&gt;

&lt;p&gt;&lt;a href="http://blog.helloitsliam.com/Lists/Posts/Post.aspx?List=e10cb685-6b5c-4b6c-aaf4-e1d122d57174&amp;amp;ID=101&amp;amp;utm_source=feedburner&amp;amp;utm_medium=feed&amp;amp;utm_campaign=Feed%3A%20helloitsliam%20%28hello%20its%20liam%20%5BMVP%20SharePoint%5D%29&amp;amp;Web=8fe3252e-9495-44f1-b2e4-dbd7b201440b" target="_blank"&gt;Is Your SharePoint Secure – What can the hackers really get? Part 2 [Liam Cleary]&lt;/a&gt; 

  &lt;br /&gt;Interesting, detailed examples of checking your SharePoint site security&lt;/p&gt;

&lt;p&gt;&lt;a href="http://blogs.msdn.com/b/officeapps/archive/2012/11/29/solving-cross-domain-problems-in-apps-for-sharepoint.aspx" target="_blank"&gt;Solving cross-domain problems in apps for SharePoint [Humberto Lezama]&lt;/a&gt; 

  &lt;br /&gt;Cross domain for Apps – useful (if you’re writing Apps…)&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.sharepointnutsandbolts.com/2012/11/beware-sharepoint-2013-rtm-apps.html" target="_blank"&gt;Beware! SharePoint 2013 RTM apps bug/gotcha with SPHostUrl parameter [Chris O'Brien]&lt;/a&gt; 

  &lt;br /&gt;Nice workaround to bug when developing Apps &lt;/p&gt;
          &lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://www.metaEngine.com/sptermcloud?sfd=1" title="SP Term Cloud - Learn more"&gt;&lt;img border="0" src="http://lh6.googleusercontent.com/-I3pgzHFylMs/T2ZIYeQjxdI/AAAAAAAAARU/kXO0HcT1cF8/s468/termcloudad_468x60.png" alt="SP Term Cloud - Learn more" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style="font-size: 11px;padding: 5px;border: 1px solid #EBEBEB;background: #F8F8F8;"&gt;&lt;a href="mailto:?body=http%3A%2F%2Fwww.metaEngine.com%2F2012%2F12%2FBest-loved-SharePoint-posts-Week-26-Nov-2012&amp;subject=http%3A%2F%2Fwww.metaEngine.com%2F2012%2F12%2FBest-loved-SharePoint-posts-Week-26-Nov-2012"&gt;Email this&lt;/a&gt;&lt;span&gt; &amp;middot; &lt;/span&gt;&lt;a target="_blank" href="http://twitter.com/share?url=http%3A%2F%2Fwww.metaEngine.com%2F2012%2F12%2FBest-loved-SharePoint-posts-Week-26-Nov-2012%3Fstw%3D1&amp;text=Best+loved+SharePoint+posts%3A+Week+26+Nov+2012&amp;ref=twitbtn"&gt;Tweet this&lt;/a&gt;&lt;span&gt; &amp;middot; &lt;/span&gt;&lt;a target="_blank" href="http://plus.google.com/share?url=http%3A%2F%2Fwww.metaEngine.com%2F2012%2F12%2FBest-loved-SharePoint-posts-Week-26-Nov-2012%3Fsgp%3D1"&gt;Share on Google+&lt;/a&gt;&lt;span&gt; &amp;middot; &lt;/span&gt;&lt;a target="_blank" href="http://www.facebook.com/sharer.php?ref=fbshare&amp;u=http%3A%2F%2Fwww.metaEngine.com%2F2012%2F12%2FBest-loved-SharePoint-posts-Week-26-Nov-2012%3Fsfb%3D1&amp;t=Best+loved+SharePoint+posts%3A+Week+26+Nov+2012"&gt;Share on Facebook&lt;/a&gt;&lt;span&gt; &amp;middot; &lt;/span&gt;&lt;a target="_blank" href="http://del.icio.us/post?url=http%3A%2F%2Fwww.metaEngine.com%2F2012%2F12%2FBest-loved-SharePoint-posts-Week-26-Nov-2012%3Fsdl%3D1&amp;title=Best+loved+SharePoint+posts%3A+Week+26+Nov+2012"&gt;Post to del.icio.us&lt;/a&gt;&lt;/p&gt;
        &lt;img src="http://feeds.feedburner.com/~r/metaengine/~4/Ljdxk-d6miI" height="1" width="1"/&gt;</content>
    <feedburner:origLink>http://www.metaEngine.com/2012/12/Best-loved-SharePoint-posts-Week-26-Nov-2012</feedburner:origLink></entry>
    
</feed>
