<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:blogger="http://schemas.google.com/blogger/2008" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0"><channel><atom:id>tag:blogger.com,1999:blog-12969685</atom:id><lastBuildDate>Mon, 29 Apr 2013 02:32:48 +0000</lastBuildDate><title>Carsten Keutmann</title><description>Doing SharePoint stuff</description><link>http://keutmann.blogspot.com/</link><managingEditor>noreply@blogger.com (Carsten Keutmann)</managingEditor><generator>Blogger</generator><openSearch:totalResults>54</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/CarstenKeutmann" /><feedburner:info uri="carstenkeutmann" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item><guid isPermaLink="false">tag:blogger.com,1999:blog-12969685.post-2897203412664391668</guid><pubDate>Tue, 12 Mar 2013 10:20:00 +0000</pubDate><atom:updated>2013-03-12T03:26:11.828-07:00</atom:updated><title>Arctic SharePoint Challenge 2013</title><description>&lt;p&gt;This year was absolutely fantastic. I was a judge again this year and I can only say its has been a very pleasant experience. The &lt;a href="http://www.arcticsharepointchallenge.com/"&gt;ASPC&lt;/a&gt; have really grown since last year and the Hotel was just fabulous. &lt;/p&gt;  &lt;p&gt;A lot of teams did some very cool stuff, many based on the App Model for SharePoint 2013. But it was not just all SharePoint, a lot other platforms was used, Azure, Mobils, Windows 8, Node.js and they integrated very nicely with SharePoint 2013.&lt;/p&gt;  &lt;p&gt;Here is some pictures.&lt;/p&gt;  &lt;div id="scid:66721397-FF69-4ca6-AEC4-17E6B3208830:b3e31160-fc66-4206-b333-98418decbf74" class="wlWriterEditableSmartContent" style="float: none; padding-bottom: 0px; padding-top: 0px; padding-left: 0px; margin: 0px; display: inline; padding-right: 0px"&gt;&lt;table border=0 cellspacing=0 cellpadding=0 style='outline:none;border-style:none;margin:0px;padding:0px;width:840px;border-collapse:collapse;'&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style='margin:0px;padding:0px;outline:none;border-style:none;width:auto'&gt;&lt;a style="outline:none;border-style:none;margin:0px;padding:0px;" target="_blank" href="https://skydrive.live.com/redir.aspx?cid=28827cab4c441b00&amp;amp;page=play&amp;amp;resid=28827CAB4C441B00!106&amp;amp;type=5&amp;amp;authkey=!AI4dshGgCT4-tUw&amp;amp;Bsrc=Photomail&amp;amp;Bpub=SDX.Photos"&gt;&lt;img style="outline:none;border-style:none;padding:0px;margin:0px;border:0px;background:none;background-image:none;vertical-align:bottom;" alt="Vis album" title="Vis album" src="http://lh3.ggpht.com/-0jZNCzo0QuQ/UT8CwR92fKI/AAAAAAAAAMM/y2jJBKxjofc/Arctic%252520SharePoint%252520Challenge%2525202013%25255B1%25255D.jpg?imgmax=800" /&gt;&lt;/a&gt;&lt;div style='width:840px;text-align:center;overflow:visible;padding:0px;margin:0px;'&gt;                                            &lt;div style='width:840px;overflow:visible;'&gt;&lt;a style="text-decoration:none;" href="https://skydrive.live.com/redir.aspx?cid=28827cab4c441b00&amp;amp;page=browse&amp;amp;resid=28827CAB4C441B00!106&amp;amp;type=5&amp;amp;authkey=!AI4dshGgCT4-tUw&amp;amp;Bsrc=Photomail&amp;amp;Bpub=SDX.Photos" target="_blank"&gt;&lt;span  style="line-height:1.26em;padding:0px;width:840px;font-size:26pt;font-family:'Segoe UI', helvetica, arial, sans-serif;"  defaultText="Angiv navn på album her"&gt;Arctic SharePoint Challenge 2013&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;                                            &lt;div style="text-align:center;padding:9px 0px 0px 0px;margin:0px 0px 0px 0px;font-family:'Segoe UI', helvetica, arial, sans-serif;font-size:8pt;"&gt;                                                &lt;table border=0 cellspacing=0 cellpadding=0 style="text-align:center;width:auto;margin-left:auto;margin-right:auto;padding:0px;outline:none;border-style:none;border-collapse:collapse;"&gt;                                     &lt;tr&gt;                                       &lt;td style="vertical-align:top;outline:none;border-style:none;margin:0px;padding:6px 12px 6px 0px;"&gt;&lt;a href="https://skydrive.live.com/redir.aspx?cid=28827cab4c441b00&amp;amp;page=play&amp;amp;resid=28827CAB4C441B00!106&amp;amp;type=5&amp;amp;authkey=!AI4dshGgCT4-tUw&amp;amp;Bsrc=Photomail&amp;amp;Bpub=SDX.Photos" border="0" target="_blank" style="font-family:'Segoe UI', helvetica, arial, sans-serif;font-size:8pt;outline:none;border-style:none;text-decoration: none;padding:0px;margin:0px;"&gt;Vis diasshow&lt;/a&gt;&lt;/td&gt;                                       &lt;td style="vertical-align:top;outline:none;border-style:none;margin:0px;padding:6px 0px 6px 0px;"&gt;&lt;a href="https://skydrive.live.com/redir.aspx?cid=28827cab4c441b00&amp;amp;page=downloadphotos&amp;amp;resid=28827CAB4C441B00!106&amp;amp;type=5&amp;amp;Bsrc=Photomail&amp;amp;Bpub=SDX.Photos&amp;amp;authkey=!AI4dshGgCT4-tUw" border="0" target="_blank" style="font-family:'Segoe UI', helvetica, arial, sans-serif;font-size:8pt;outline:none;border-style:none;text-decoration: none;padding:0px;margin:0px;"&gt;Hent alt&lt;/a&gt;&lt;/td&gt;                                                                            &lt;/tr&gt;                                   &lt;/table&gt;                                                                                                                                &lt;/div&gt;                                                                                       &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;  </description><link>http://feedproxy.google.com/~r/CarstenKeutmann/~3/DqNqiStB6hQ/arctic-sharepoint-challenge-2013.html</link><author>noreply@blogger.com (Carsten Keutmann)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh3.ggpht.com/-0jZNCzo0QuQ/UT8CwR92fKI/AAAAAAAAAMM/y2jJBKxjofc/s72-c/Arctic%252520SharePoint%252520Challenge%2525202013%25255B1%25255D.jpg?imgmax=800" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://keutmann.blogspot.com/2013/03/arctic-sharepoint-challenge-2013.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-12969685.post-845883213644990622</guid><pubDate>Tue, 05 Mar 2013 14:28:00 +0000</pubDate><atom:updated>2013-03-05T07:04:13.379-08:00</atom:updated><title>SharePoint 2013 Hosted App Validation Checklist</title><description>&lt;p&gt;Before submitting an app to the Office SharePoint App Store, you must ensure you have done what you can do, to get it right the first time.&lt;/p&gt;  &lt;p&gt;For starters use this check list &lt;a href="http://msdn.microsoft.com/en-us/library/jj938162.aspx" target="_blank"&gt;“Validation checklist for apps for Office and SharePoint”&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Then here are some from my own experience.&lt;/p&gt;  &lt;p&gt;Validation checklist for submission to the Office Store&lt;/p&gt;  &lt;table cellspacing="0" cellpadding="2" width="592" border="1"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="38"&gt;&lt;a href="http://lh5.ggpht.com/-F5BmX3YEBuU/UTX_ocWmzyI/AAAAAAAAALI/XXQa1v3kZwQ/s1600-h/IC6434633.png"&gt;&lt;img title="IC643463" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="IC643463" src="http://lh3.ggpht.com/-mUSVZe7zFjc/UTYAHB_kYdI/AAAAAAAAALQ/A2rR2MZE8Wc/IC643463_thumb1.png?imgmax=800" width="31" height="33" /&gt;&lt;/a&gt;&lt;/td&gt;        &lt;td valign="top" width="552"&gt;         &lt;p&gt;The app title submitted via the Seller Dashboard, must be similar to that included in your app manifest.            &lt;br /&gt;Basically this means that you have to use the same title everywhere.             &lt;br /&gt;            &lt;br /&gt;&lt;a href="http://lh4.ggpht.com/-VVk6C5yyo3U/UTYAIFVNYeI/AAAAAAAAALU/HQWU1jsn_Nw/s1600-h/ManifestAppTitle4.png"&gt;&lt;img title="ManifestAppTitle" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="ManifestAppTitle" src="http://lh3.ggpht.com/-4S8FHass4HA/UTYAnc9T4UI/AAAAAAAAALg/eKq0m6WZBsQ/ManifestAppTitle_thumb2.png?imgmax=800" width="163" height="129" /&gt;&lt;/a&gt;&amp;#160;&lt;a href="http://lh5.ggpht.com/-aFuum9olttY/UTYAoFrGQPI/AAAAAAAAALo/bEWJ4_yYjIE/s1600-h/SellerAppTitle3.png"&gt;&lt;img title="SellerAppTitle" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="SellerAppTitle" src="http://lh4.ggpht.com/-nFAbcpyQw8A/UTYBHYvQusI/AAAAAAAAALw/Dm_S6yD_7Kw/SellerAppTitle_thumb1.png?imgmax=800" width="157" height="131" /&gt;&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="44"&gt;&lt;a href="http://lh5.ggpht.com/-F5BmX3YEBuU/UTX_ocWmzyI/AAAAAAAAALI/XXQa1v3kZwQ/s1600-h/IC6434633.png"&gt;&lt;img title="IC643463" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="IC643463" src="http://lh3.ggpht.com/-mUSVZe7zFjc/UTYAHB_kYdI/AAAAAAAAALQ/A2rR2MZE8Wc/IC643463_thumb1.png?imgmax=800" width="31" height="33" /&gt;&lt;/a&gt;&lt;/td&gt;        &lt;td valign="top" width="547"&gt;Be sure to implement language. Replace the Language tag in AppManifest.xml.          &lt;br /&gt;Because of a bug in developer tool in Visual Studio, you are not allowed to use the correct Language tag, because it fails with a validation error when you build your app. Therefore you have to change the AppManifest.xml after you have package (Published) your app. Use a zip tool to to open up the app and change the AppManifest.xml directly.           &lt;br /&gt;          &lt;br /&gt;Replace :           &lt;br /&gt;&lt;font color="#0000ff" size="2" face="Consolas"&gt;&lt;font color="#0000ff" size="2" face="Consolas"&gt;&lt;font color="#0000ff" size="2" face="Consolas"&gt;               &lt;br /&gt;&amp;lt;&lt;font color="#a31515" size="2" face="Consolas"&gt;&lt;font color="#a31515" size="2" face="Consolas"&gt;&lt;font color="#a31515" size="2" face="Consolas"&gt;SupportedLanguages&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2" face="Consolas"&gt;&lt;font color="#0000ff" size="2" face="Consolas"&gt;&lt;font color="#0000ff" size="2" face="Consolas"&gt;&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2" face="Consolas"&gt;&lt;font color="#000000" size="2" face="Consolas"&gt;en-US&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2" face="Consolas"&gt;&lt;font color="#0000ff" size="2" face="Consolas"&gt;&lt;font color="#0000ff" size="2" face="Consolas"&gt;&amp;lt;/&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#a31515" size="2" face="Consolas"&gt;&lt;font color="#a31515" size="2" face="Consolas"&gt;&lt;font color="#a31515" size="2" face="Consolas"&gt;SupportedLanguages&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2" face="Consolas"&gt;&lt;font color="#0000ff" size="2" face="Consolas"&gt;&lt;font color="#0000ff" size="2" face="Consolas"&gt;&amp;gt;                      &lt;br /&gt;                      &lt;br /&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#000000"&gt;With:&lt;/font&gt;               &lt;br /&gt;              &lt;br /&gt;&lt;font color="#0000ff" size="2" face="Consolas"&gt;&lt;font color="#0000ff" size="2" face="Consolas"&gt;&lt;font color="#0000ff" size="2" face="Consolas"&gt;&amp;lt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#a31515" size="2" face="Consolas"&gt;&lt;font color="#a31515" size="2" face="Consolas"&gt;&lt;font color="#a31515" size="2" face="Consolas"&gt;SupportedLocales&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2" face="Consolas"&gt;&lt;font color="#0000ff" size="2" face="Consolas"&gt;&lt;font color="#0000ff" size="2" face="Consolas"&gt;&amp;gt;                      &lt;br /&gt;&amp;#160; &amp;lt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#a31515" size="2" face="Consolas"&gt;&lt;font color="#a31515" size="2" face="Consolas"&gt;&lt;font color="#a31515" size="2" face="Consolas"&gt;SupportedLocale&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2" face="Consolas"&gt;&lt;font color="#0000ff" size="2" face="Consolas"&gt;&lt;font color="#0000ff" size="2" face="Consolas"&gt; &lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#ff0000" size="2" face="Consolas"&gt;&lt;font color="#ff0000" size="2" face="Consolas"&gt;&lt;font color="#ff0000" size="2" face="Consolas"&gt;CultureName&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2" face="Consolas"&gt;&lt;font color="#0000ff" size="2" face="Consolas"&gt;&lt;font color="#0000ff" size="2" face="Consolas"&gt;=&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2" face="Consolas"&gt;&lt;font color="#000000" size="2" face="Consolas"&gt;&amp;quot;&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2" face="Consolas"&gt;&lt;font color="#0000ff" size="2" face="Consolas"&gt;&lt;font color="#0000ff" size="2" face="Consolas"&gt;en-US&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2" face="Consolas"&gt;&lt;font color="#000000" size="2" face="Consolas"&gt;&amp;quot;&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2" face="Consolas"&gt;&lt;font color="#0000ff" size="2" face="Consolas"&gt;&lt;font color="#0000ff" size="2" face="Consolas"&gt; /&amp;gt;                      &lt;br /&gt;&amp;lt;/&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#a31515" size="2" face="Consolas"&gt;&lt;font color="#a31515" size="2" face="Consolas"&gt;&lt;font color="#a31515" size="2" face="Consolas"&gt;SupportedLocales&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2" face="Consolas"&gt;&lt;font color="#0000ff" size="2" face="Consolas"&gt;&lt;font color="#0000ff" size="2" face="Consolas"&gt;&amp;gt;                     &lt;br /&gt;                      &lt;br /&gt;&lt;font color="#000000" face="Arial"&gt;Update! The SupportedLanguage problem has been fixed in the lastest version of &lt;/font&gt;&lt;a title="Permanent Link to Office Developer Tools for Visual Studio 2012 ships full RTM" href="http://aka.ms/OfficeDevToolsForVS2012"&gt;&lt;font color="#000000"&gt;Office Developer Tools for Visual Studio 2012 RTM&lt;/font&gt;&lt;/a&gt;&lt;font color="#c0504d" face="Arial"&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="53"&gt;&lt;a href="http://lh5.ggpht.com/-F5BmX3YEBuU/UTX_ocWmzyI/AAAAAAAAALI/XXQa1v3kZwQ/s1600-h/IC6434633.png"&gt;&lt;img title="IC643463" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="IC643463" src="http://lh3.ggpht.com/-mUSVZe7zFjc/UTYAHB_kYdI/AAAAAAAAALQ/A2rR2MZE8Wc/IC643463_thumb1.png?imgmax=800" width="31" height="33" /&gt;&lt;/a&gt;&lt;/td&gt;        &lt;td valign="top" width="540"&gt;Cleanup your JavaScript with JSHint or similar tools. Old browser can fail where new browsers don’t. The Internet Explorer 8 is especially bad here.          &lt;br /&gt;Optional tool: &lt;a href="http://jsfiddle.net/" target="_blank"&gt;JSFiddle&lt;/a&gt; &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="56"&gt;&lt;a href="http://lh5.ggpht.com/-F5BmX3YEBuU/UTX_ocWmzyI/AAAAAAAAALI/XXQa1v3kZwQ/s1600-h/IC6434633.png"&gt;&lt;img title="IC643463" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="IC643463" src="http://lh3.ggpht.com/-mUSVZe7zFjc/UTYAHB_kYdI/AAAAAAAAALQ/A2rR2MZE8Wc/IC643463_thumb1.png?imgmax=800" width="31" height="33" /&gt;&lt;/a&gt;&lt;/td&gt;        &lt;td valign="top" width="537"&gt;Your app must be fully functional with the supported operating systems and browsers for Office 2013 and SharePoint 2013.          &lt;br /&gt;This means that the app has to function in Internet Explorer 8,9,10.           &lt;br /&gt;The F12 Developers Tools, to change the Browser mode will only help see the difference in styling but not in JavaScript.           &lt;br /&gt;You need to run it in Internet Explorer 8. I would recommend downloading a VHD image&amp;#160; to test in “Real” environments. &lt;a href="http://www.microsoft.com/en-us/download/details.aspx?id=11575" target="_blank"&gt;Internet Explorer Application Compatibility VPC Image&lt;/a&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="59"&gt;&lt;a href="http://lh5.ggpht.com/-F5BmX3YEBuU/UTX_ocWmzyI/AAAAAAAAALI/XXQa1v3kZwQ/s1600-h/IC6434633.png"&gt;&lt;img title="IC643463" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="IC643463" src="http://lh3.ggpht.com/-mUSVZe7zFjc/UTYAHB_kYdI/AAAAAAAAALQ/A2rR2MZE8Wc/IC643463_thumb1.png?imgmax=800" width="31" height="33" /&gt;&lt;/a&gt;&lt;/td&gt;        &lt;td valign="top" width="535"&gt;Test the app Online. This is important because Microsoft is apprantly testing the app there themselves. &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="61"&gt;&lt;a href="http://lh5.ggpht.com/-F5BmX3YEBuU/UTX_ocWmzyI/AAAAAAAAALI/XXQa1v3kZwQ/s1600-h/IC6434633.png"&gt;&lt;img title="IC643463" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="IC643463" src="http://lh3.ggpht.com/-mUSVZe7zFjc/UTYAHB_kYdI/AAAAAAAAALQ/A2rR2MZE8Wc/IC643463_thumb1.png?imgmax=800" width="31" height="33" /&gt;&lt;/a&gt;&lt;/td&gt;        &lt;td valign="top" width="533"&gt;Remember to check you app extensively. This involves the root domain, a sub web site and a new site collection under /sites/. Its important to check is you got all relative urls right.&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="63"&gt;&lt;a href="http://lh5.ggpht.com/-F5BmX3YEBuU/UTX_ocWmzyI/AAAAAAAAALI/XXQa1v3kZwQ/s1600-h/IC6434633.png"&gt;&lt;img title="IC643463" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="IC643463" src="http://lh3.ggpht.com/-mUSVZe7zFjc/UTYAHB_kYdI/AAAAAAAAALQ/A2rR2MZE8Wc/IC643463_thumb1.png?imgmax=800" width="31" height="33" /&gt;&lt;/a&gt;&lt;/td&gt;        &lt;td valign="top" width="532"&gt;In a licensed app, implemented code for checking this. For SharePoint hosted apps see &lt;a href="http://keutmann.blogspot.dk/2013/02/sharepoint-2013-hosted-app-license-check.html" target="_blank"&gt;SharePoint 2013 hosted App License check&lt;/a&gt; on how to implement license check.           &lt;br /&gt;Also &lt;a href="http://msdn.microsoft.com/en-us/library/office/apps/jj163257(v=office.15).aspx" target="_blank"&gt;Licensing apps for Office and SharePoint&lt;/a&gt;&lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;In my experience the approval process are mostly done within a week.&lt;/p&gt;  </description><link>http://feedproxy.google.com/~r/CarstenKeutmann/~3/vhSq26qNYGQ/sharepoint-2013-hosted-app-validation.html</link><author>noreply@blogger.com (Carsten Keutmann)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh3.ggpht.com/-mUSVZe7zFjc/UTYAHB_kYdI/AAAAAAAAALQ/A2rR2MZE8Wc/s72-c/IC643463_thumb1.png?imgmax=800" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://keutmann.blogspot.com/2013/03/sharepoint-2013-hosted-app-validation.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-12969685.post-2544438275760506102</guid><pubDate>Sat, 02 Mar 2013 19:54:00 +0000</pubDate><atom:updated>2013-03-04T07:44:05.980-08:00</atom:updated><title>SharePoint Manager 2013 Online on App Store</title><description>&lt;p&gt;Finally I got the SharePoint Manager 2013 Online app on the SharePoint App Store after 5 very long weeks. The app was already ready back in January but due to an internal error in the approval process that resulted in a exceptional long approval time and then it was denied approval a couple of times because it did not meet all the requirements.&lt;/p&gt;  &lt;p&gt;But now its out there go and try it out. &lt;a href="http://office.microsoft.com/en-us/store/sharepoint-manager-2013-online-WA104025157.aspx?queryid=b7cd5a32%2D6e2b%2D405c%2D8ddd%2Db5e80c5b9a59&amp;amp;css=manager&amp;amp;CTT=1" target="_blank"&gt;SharePoint Manager 2013 Online.&lt;/a&gt; This version is build purely on JavaScript and only runs client side, but you are still able to view most of the data hidden behind the scenes. &lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Question&lt;/strong&gt;: Will the Online version cost anything?&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Answer&lt;/strong&gt;: The Online version is a per person license, but it supports a 15 days trail.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Question&lt;/strong&gt;: What are the status of the server side version found on &lt;a href="http://spm.codeplex.com" target="_blank"&gt;Codplex&lt;/a&gt;?&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Answer&lt;/strong&gt;: The server side version of SharePoint Manager 2013 is still under GPL and free, there will be no changes here. The development of this version will continue when needed.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;From the description of the Online version:&lt;em&gt;      &lt;br /&gt;The highly recognize community tool SharePoint Manager, has now come in a version that works in Microsoft Online solutions. SharePoint Manager 2013 Online, provides the user a quick and easy overview of the structure and data hidden behind the scenes. Unlike the server version on codeplex, this app only uses html and javascript leveraging the SharePoint REST api. The well-known navigation tree on the left side and a property panel on the right side deliver an extremely user-friendly interface, which allows the user to burrow into SharePoint Online structure and hidden gems.&lt;/em&gt; &lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/-XxBImq0-VbI/UTJYcxFqXxI/AAAAAAAAAKw/F1UUw5uQHtU/s1600-h/SM%25255B2%25255D.png"&gt;&lt;img title="SM" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="SM" src="http://lh4.ggpht.com/-_PbsUM0EhOY/UTJY8kw7vkI/AAAAAAAAAK4/LCpLdns-QbE/SM_thumb.png?imgmax=800" width="244" height="184" /&gt;&lt;/a&gt;&lt;/p&gt;  </description><link>http://feedproxy.google.com/~r/CarstenKeutmann/~3/qh0z5s5u4qg/sharepoint-manager-2013-online-on-app.html</link><author>noreply@blogger.com (Carsten Keutmann)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh4.ggpht.com/-_PbsUM0EhOY/UTJY8kw7vkI/AAAAAAAAAK4/LCpLdns-QbE/s72-c/SM_thumb.png?imgmax=800" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://keutmann.blogspot.com/2013/03/sharepoint-manager-2013-online-on-app.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-12969685.post-3117287754641954806</guid><pubDate>Thu, 28 Feb 2013 18:11:00 +0000</pubDate><atom:updated>2013-02-28T10:11:05.011-08:00</atom:updated><title>SharePoint 2013 hosted App License check</title><description>&lt;p&gt;How do you manage/enforce licensing on a fully SharePoint hosted app with JavaScript only?&lt;/p&gt;  &lt;p&gt;You need a couple of things:&lt;/p&gt;  &lt;p&gt;1. JavaScript that checks for the license.&lt;/p&gt;  &lt;p&gt;2. Landing pages, telling you that your license has expired or is invalid.&lt;/p&gt;  &lt;p&gt;3. An app that helps you creating test keys for testing your App with licensing.&lt;/p&gt;  &lt;p&gt;   &lt;br /&gt;Is the License code valid for the App store?&lt;/p&gt;  &lt;p&gt;Yes, the code is valid, because it is implemented in &lt;a href="http://office.microsoft.com/en-us/store/site-treeview-WA104023744.aspx?recstype=ProviderApps" target="_blank"&gt;Site Tree View&lt;/a&gt; app that has been approved for the App Store. &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;1. JavaScript &lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;After searching the web for a solution, I found this &lt;a href="http://social.msdn.microsoft.com/Forums/en-US/appsforsharepoint/thread/f022893c-3927-4471-8ae8-7dbcd0b8e5fe"&gt;http://social.msdn.microsoft.com/Forums/en-US/appsforsharepoint/thread/f022893c-3927-4471-8ae8-7dbcd0b8e5fe&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;However I needed a more clean solution and rewrote the script. Please note that the code depends on &lt;a href="https://github.com/carhartl/jquery-cookie" target="_blank"&gt;jQuery.Cookie.js&lt;/a&gt;, &lt;a href="http://www.fyneworks.com/jquery/xml-to-json/" target="_blank"&gt;JQuery.xml2json.js&lt;/a&gt; plugin and the &lt;a href="http://msdn.microsoft.com/en-us/library/jj246996.aspx" target="_blank"&gt;SP client side libraries&lt;/a&gt;.&lt;/p&gt;  &lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt; line-height: normal; text-autospace: ; mso-layout-grid-align: none"&gt;&lt;span lang="EN-US" style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; background: white; color: black; mso-highlight: white; mso-ansi-language: en-us"&gt;window.SF = window.SF || {};      &lt;br /&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; background: white; color: black; mso-highlight: white; mso-ansi-language: en-us"&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; background: white; color: black; mso-highlight: white; mso-ansi-language: en-us"&gt;window.SF.LicenseConstructor = &lt;/span&gt;&lt;span lang="EN-US" style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; background: white; color: blue; mso-highlight: white; mso-ansi-language: en-us"&gt;function&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; background: white; color: black; mso-highlight: white; mso-ansi-language: en-us"&gt;($) { &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt; line-height: normal; text-autospace: ; mso-layout-grid-align: none"&gt;&lt;span lang="EN-US" style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; background: white; color: black; mso-highlight: white; mso-ansi-language: en-us"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; background: white; color: blue; mso-highlight: white; mso-ansi-language: en-us"&gt;var&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; background: white; color: black; mso-highlight: white; mso-ansi-language: en-us"&gt; licenseCollection; &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt; line-height: normal; text-autospace: ; mso-layout-grid-align: none"&gt;&lt;span lang="EN-US" style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; background: white; color: black; mso-highlight: white; mso-ansi-language: en-us"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; background: white; color: blue; mso-highlight: white; mso-ansi-language: en-us"&gt;var&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; background: white; color: black; mso-highlight: white; mso-ansi-language: en-us"&gt; response; &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt; line-height: normal; text-autospace: ; mso-layout-grid-align: none"&gt;&lt;span lang="EN-US" style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; background: white; color: black; mso-highlight: white; mso-ansi-language: en-us"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; background: white; color: blue; mso-highlight: white; mso-ansi-language: en-us"&gt;var&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; background: white; color: black; mso-highlight: white; mso-ansi-language: en-us"&gt; licenseSettings; &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt; line-height: normal; text-autospace: ; mso-layout-grid-align: none"&gt;&lt;span lang="EN-US" style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; background: white; color: black; mso-highlight: white; mso-ansi-language: en-us"&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt; line-height: normal; text-autospace: ; mso-layout-grid-align: none"&gt;&lt;span lang="EN-US" style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; background: white; color: black; mso-highlight: white; mso-ansi-language: en-us"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; background: white; color: blue; mso-highlight: white; mso-ansi-language: en-us"&gt;this&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; background: white; color: black; mso-highlight: white; mso-ansi-language: en-us"&gt;.Check = &lt;/span&gt;&lt;span lang="EN-US" style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; background: white; color: blue; mso-highlight: white; mso-ansi-language: en-us"&gt;function&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; background: white; color: black; mso-highlight: white; mso-ansi-language: en-us"&gt; (s) { &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt; line-height: normal; text-autospace: ; mso-layout-grid-align: none"&gt;&lt;span lang="EN-US" style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; background: white; color: black; mso-highlight: white; mso-ansi-language: en-us"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;licenseSettings = s; &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt; line-height: normal; text-autospace: ; mso-layout-grid-align: none"&gt;&lt;span lang="EN-US" style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; background: white; color: black; mso-highlight: white; mso-ansi-language: en-us"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; background: white; color: blue; mso-highlight: white; mso-ansi-language: en-us"&gt;var&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; background: white; color: black; mso-highlight: white; mso-ansi-language: en-us"&gt; token = $.cookie(licenseSettings.productId); &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt; line-height: normal; text-autospace: ; mso-layout-grid-align: none"&gt;&lt;span lang="EN-US" style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; background: white; color: black; mso-highlight: white; mso-ansi-language: en-us"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; background: white; color: blue; mso-highlight: white; mso-ansi-language: en-us"&gt;if&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; background: white; color: black; mso-highlight: white; mso-ansi-language: en-us"&gt; (token) checkToken(token); &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt; line-height: normal; text-autospace: ; mso-layout-grid-align: none"&gt;&lt;span lang="EN-US" style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; background: white; color: black; mso-highlight: white; mso-ansi-language: en-us"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; background: white; color: blue; mso-highlight: white; mso-ansi-language: en-us"&gt;else&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; background: white; color: black; mso-highlight: white; mso-ansi-language: en-us"&gt; { &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt; line-height: normal; text-autospace: ; mso-layout-grid-align: none"&gt;&lt;span lang="EN-US" style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; background: white; color: black; mso-highlight: white; mso-ansi-language: en-us"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;licenseCollection = SP.Utilities.Utility.getAppLicenseInformation(licenseSettings.context, licenseSettings.productId); &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt; line-height: normal; text-autospace: ; mso-layout-grid-align: none"&gt;&lt;span lang="EN-US" style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; background: white; color: black; mso-highlight: white; mso-ansi-language: en-us"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;licenseSettings.context.executeQueryAsync(onRetrieveLicenseFromSPSuccess, onRetrieveLicenseFromSPFailure); &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt; line-height: normal; text-autospace: ; mso-layout-grid-align: none"&gt;&lt;span lang="EN-US" style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; background: white; color: black; mso-highlight: white; mso-ansi-language: en-us"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;} &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt; line-height: normal; text-autospace: ; mso-layout-grid-align: none"&gt;&lt;span lang="EN-US" style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; background: white; color: black; mso-highlight: white; mso-ansi-language: en-us"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;}; &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt; line-height: normal; text-autospace: ; mso-layout-grid-align: none"&gt;&lt;span lang="EN-US" style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; background: white; color: black; mso-highlight: white; mso-ansi-language: en-us"&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt; line-height: normal; text-autospace: ; mso-layout-grid-align: none"&gt;&lt;span lang="EN-US" style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; background: white; color: black; mso-highlight: white; mso-ansi-language: en-us"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; background: white; color: blue; mso-highlight: white; mso-ansi-language: en-us"&gt;function&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; background: white; color: black; mso-highlight: white; mso-ansi-language: en-us"&gt; onRetrieveLicenseFromSPSuccess() { &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt; line-height: normal; text-autospace: ; mso-layout-grid-align: none"&gt;&lt;span lang="EN-US" style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; background: white; color: black; mso-highlight: white; mso-ansi-language: en-us"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; background: white; color: blue; mso-highlight: white; mso-ansi-language: en-us"&gt;var&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; background: white; color: black; mso-highlight: white; mso-ansi-language: en-us"&gt; topLicense; &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt; line-height: normal; text-autospace: ; mso-layout-grid-align: none"&gt;&lt;span lang="EN-US" style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; background: white; color: black; mso-highlight: white; mso-ansi-language: en-us"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; background: white; color: blue; mso-highlight: white; mso-ansi-language: en-us"&gt;var&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; background: white; color: black; mso-highlight: white; mso-ansi-language: en-us"&gt; encodedTopLicense; &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt; line-height: normal; text-autospace: ; mso-layout-grid-align: none"&gt;&lt;span lang="EN-US" style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; background: white; color: black; mso-highlight: white; mso-ansi-language: en-us"&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt; line-height: normal; text-autospace: ; mso-layout-grid-align: none"&gt;&lt;span lang="EN-US" style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; background: white; color: black; mso-highlight: white; mso-ansi-language: en-us"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; background: white; color: blue; mso-highlight: white; mso-ansi-language: en-us"&gt;if&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; background: white; color: black; mso-highlight: white; mso-ansi-language: en-us"&gt; (licenseCollection.get_count() &amp;gt; 0) { &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt; line-height: normal; text-autospace: ; mso-layout-grid-align: none"&gt;&lt;span lang="EN-US" style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; background: white; color: black; mso-highlight: white; mso-ansi-language: en-us"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;topLicense = licenseCollection.get_item(0).get_rawXMLLicenseToken(); &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt; line-height: normal; text-autospace: ; mso-layout-grid-align: none"&gt;&lt;span lang="EN-US" style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; background: white; color: black; mso-highlight: white; mso-ansi-language: en-us"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;encodedTopLicense = encodeURIComponent(topLicense); &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt; line-height: normal; text-autospace: ; mso-layout-grid-align: none"&gt;&lt;span lang="EN-US" style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; background: white; color: black; mso-highlight: white; mso-ansi-language: en-us"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;} &lt;/span&gt;&lt;span lang="EN-US" style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; background: white; color: blue; mso-highlight: white; mso-ansi-language: en-us"&gt;else&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; background: white; color: black; mso-highlight: white; mso-ansi-language: en-us"&gt; { &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt; line-height: normal; text-autospace: ; mso-layout-grid-align: none"&gt;&lt;span lang="EN-US" style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; background: white; color: black; mso-highlight: white; mso-ansi-language: en-us"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;Redirect(licenseSettings.licenseUrl); &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt; line-height: normal; text-autospace: ; mso-layout-grid-align: none"&gt;&lt;span lang="EN-US" style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; background: white; color: black; mso-highlight: white; mso-ansi-language: en-us"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;} &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt; line-height: normal; text-autospace: ; mso-layout-grid-align: none"&gt;&lt;span lang="EN-US" style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; background: white; color: black; mso-highlight: white; mso-ansi-language: en-us"&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt; line-height: normal; text-autospace: ; mso-layout-grid-align: none"&gt;&lt;span lang="EN-US" style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; background: white; color: black; mso-highlight: white; mso-ansi-language: en-us"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; background: white; color: blue; mso-highlight: white; mso-ansi-language: en-us"&gt;var&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; background: white; color: black; mso-highlight: white; mso-ansi-language: en-us"&gt; request = &lt;/span&gt;&lt;span lang="EN-US" style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; background: white; color: blue; mso-highlight: white; mso-ansi-language: en-us"&gt;new&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; background: white; color: black; mso-highlight: white; mso-ansi-language: en-us"&gt; SP.WebRequestInfo(); &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt; line-height: normal; text-autospace: ; mso-layout-grid-align: none"&gt;&lt;span lang="EN-US" style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; background: white; color: black; mso-highlight: white; mso-ansi-language: en-us"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;request.set_url(&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; background: white; color: #a31515; mso-highlight: white; mso-ansi-language: en-us"&gt;&amp;quot;https://verificationservice.officeapps.live.com/ova/verificationagent.svc/rest/verify?token=&amp;quot;&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; background: white; color: black; mso-highlight: white; mso-ansi-language: en-us"&gt; + encodedTopLicense); &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt; line-height: normal; text-autospace: ; mso-layout-grid-align: none"&gt;&lt;span lang="EN-US" style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; background: white; color: black; mso-highlight: white; mso-ansi-language: en-us"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;request.set_method(&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; background: white; color: #a31515; mso-highlight: white; mso-ansi-language: en-us"&gt;&amp;quot;GET&amp;quot;&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; background: white; color: black; mso-highlight: white; mso-ansi-language: en-us"&gt;); &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt; line-height: normal; text-autospace: ; mso-layout-grid-align: none"&gt;&lt;span lang="EN-US" style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; background: white; color: black; mso-highlight: white; mso-ansi-language: en-us"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;response = SP.WebProxy.invoke(licenseSettings.context, request); &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt; line-height: normal; text-autospace: ; mso-layout-grid-align: none"&gt;&lt;span lang="EN-US" style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; background: white; color: black; mso-highlight: white; mso-ansi-language: en-us"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;licenseSettings.context.executeQueryAsync(onVerificationCallSuccess, onVerificationCallFailure); &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt; line-height: normal; text-autospace: ; mso-layout-grid-align: none"&gt;&lt;span lang="EN-US" style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; background: white; color: black; mso-highlight: white; mso-ansi-language: en-us"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;} &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt; line-height: normal; text-autospace: ; mso-layout-grid-align: none"&gt;&lt;span lang="EN-US" style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; background: white; color: black; mso-highlight: white; mso-ansi-language: en-us"&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt; line-height: normal; text-autospace: ; mso-layout-grid-align: none"&gt;&lt;span lang="EN-US" style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; background: white; color: black; mso-highlight: white; mso-ansi-language: en-us"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; background: white; color: blue; mso-highlight: white; mso-ansi-language: en-us"&gt;function&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; background: white; color: black; mso-highlight: white; mso-ansi-language: en-us"&gt; onRetrieveLicenseFromSPFailure(sender, args) { &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt; line-height: normal; text-autospace: ; mso-layout-grid-align: none"&gt;&lt;span lang="EN-US" style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; background: white; color: black; mso-highlight: white; mso-ansi-language: en-us"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;Redirect(licenseSettings.licenseUrl); &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt; line-height: normal; text-autospace: ; mso-layout-grid-align: none"&gt;&lt;span lang="EN-US" style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; background: white; color: black; mso-highlight: white; mso-ansi-language: en-us"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;} &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt; line-height: normal; text-autospace: ; mso-layout-grid-align: none"&gt;&lt;span lang="EN-US" style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; background: white; color: black; mso-highlight: white; mso-ansi-language: en-us"&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt; line-height: normal; text-autospace: ; mso-layout-grid-align: none"&gt;&lt;span lang="EN-US" style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; background: white; color: black; mso-highlight: white; mso-ansi-language: en-us"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; background: white; color: blue; mso-highlight: white; mso-ansi-language: en-us"&gt;function&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; background: white; color: black; mso-highlight: white; mso-ansi-language: en-us"&gt; onVerificationCallSuccess() { &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt; line-height: normal; text-autospace: ; mso-layout-grid-align: none"&gt;&lt;span lang="EN-US" style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; background: white; color: black; mso-highlight: white; mso-ansi-language: en-us"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; background: white; color: blue; mso-highlight: white; mso-ansi-language: en-us"&gt;var&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; background: white; color: black; mso-highlight: white; mso-ansi-language: en-us"&gt; xmltoken = response.get_body(); &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt; line-height: normal; text-autospace: ; mso-layout-grid-align: none"&gt;&lt;span lang="EN-US" style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; background: white; color: black; mso-highlight: white; mso-ansi-language: en-us"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;$.cookie(licenseSettings.productId, xmltoken, { &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt; line-height: normal; text-autospace: ; mso-layout-grid-align: none"&gt;&lt;span lang="EN-US" style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; background: white; color: black; mso-highlight: white; mso-ansi-language: en-us"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;expires: 180 &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt; line-height: normal; text-autospace: ; mso-layout-grid-align: none"&gt;&lt;span lang="EN-US" style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; background: white; color: black; mso-highlight: white; mso-ansi-language: en-us"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;}); &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt; line-height: normal; text-autospace: ; mso-layout-grid-align: none"&gt;&lt;span lang="EN-US" style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; background: white; color: black; mso-highlight: white; mso-ansi-language: en-us"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;checkToken(xmltoken); &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt; line-height: normal; text-autospace: ; mso-layout-grid-align: none"&gt;&lt;span lang="EN-US" style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; background: white; color: black; mso-highlight: white; mso-ansi-language: en-us"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&lt;/span&gt;} &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt; line-height: normal; text-autospace: ; mso-layout-grid-align: none"&gt;&lt;span lang="EN-US" style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; background: white; color: black; mso-highlight: white; mso-ansi-language: en-us"&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt; line-height: normal; text-autospace: ; mso-layout-grid-align: none"&gt;&lt;span lang="EN-US" style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; background: white; color: black; mso-highlight: white; mso-ansi-language: en-us"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; background: white; color: blue; mso-highlight: white; mso-ansi-language: en-us"&gt;function&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; background: white; color: black; mso-highlight: white; mso-ansi-language: en-us"&gt; checkToken(xmltoken) { &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt; line-height: normal; text-autospace: ; mso-layout-grid-align: none"&gt;&lt;span lang="EN-US" style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; background: white; color: black; mso-highlight: white; mso-ansi-language: en-us"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; background: white; color: blue; mso-highlight: white; mso-ansi-language: en-us"&gt;var&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; background: white; color: black; mso-highlight: white; mso-ansi-language: en-us"&gt; token = $.xml2json(xmltoken); &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt; line-height: normal; text-autospace: ; mso-layout-grid-align: none"&gt;&lt;span lang="EN-US" style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; background: white; color: black; mso-highlight: white; mso-ansi-language: en-us"&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span lang="EN-US" style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; background: white; color: black; mso-highlight: white; mso-ansi-language: en-us"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; background: white; color: blue; mso-highlight: white; mso-ansi-language: en-us"&gt;switch&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; background: white; color: black; mso-highlight: white; mso-ansi-language: en-us"&gt; (token.EntitlementType.toLowerCase()) { &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt; line-height: normal; text-autospace: ; mso-layout-grid-align: none"&gt;&lt;span lang="EN-US" style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; background: white; color: black; mso-highlight: white; mso-ansi-language: en-us"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; background: white; color: blue; mso-highlight: white; mso-ansi-language: en-us"&gt;case&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; background: white; color: black; mso-highlight: white; mso-ansi-language: en-us"&gt; &lt;/span&gt;&lt;span lang="EN-US" style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; background: white; color: #a31515; mso-highlight: white; mso-ansi-language: en-us"&gt;&amp;quot;free&amp;quot;&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; background: white; color: black; mso-highlight: white; mso-ansi-language: en-us"&gt;: &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt; line-height: normal; text-autospace: ; mso-layout-grid-align: none"&gt;&lt;span lang="EN-US" style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; background: white; color: black; mso-highlight: white; mso-ansi-language: en-us"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; background: white; color: blue; mso-highlight: white; mso-ansi-language: en-us"&gt;break&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; background: white; color: black; mso-highlight: white; mso-ansi-language: en-us"&gt;; &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt; line-height: normal; text-autospace: ; mso-layout-grid-align: none"&gt;&lt;span lang="EN-US" style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; background: white; color: black; mso-highlight: white; mso-ansi-language: en-us"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; background: white; color: blue; mso-highlight: white; mso-ansi-language: en-us"&gt;case&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; background: white; color: black; mso-highlight: white; mso-ansi-language: en-us"&gt; &lt;/span&gt;&lt;span lang="EN-US" style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; background: white; color: #a31515; mso-highlight: white; mso-ansi-language: en-us"&gt;&amp;quot;paid&amp;quot;&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; background: white; color: black; mso-highlight: white; mso-ansi-language: en-us"&gt;: &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt; line-height: normal; text-autospace: ; mso-layout-grid-align: none"&gt;&lt;span lang="EN-US" style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; background: white; color: black; mso-highlight: white; mso-ansi-language: en-us"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; background: white; color: blue; mso-highlight: white; mso-ansi-language: en-us"&gt;break&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; background: white; color: black; mso-highlight: white; mso-ansi-language: en-us"&gt;; &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt; line-height: normal; text-autospace: ; mso-layout-grid-align: none"&gt;&lt;span lang="EN-US" style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; background: white; color: black; mso-highlight: white; mso-ansi-language: en-us"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; background: white; color: blue; mso-highlight: white; mso-ansi-language: en-us"&gt;case&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; background: white; color: black; mso-highlight: white; mso-ansi-language: en-us"&gt; &lt;/span&gt;&lt;span lang="EN-US" style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; background: white; color: #a31515; mso-highlight: white; mso-ansi-language: en-us"&gt;&amp;quot;trial&amp;quot;&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; background: white; color: black; mso-highlight: white; mso-ansi-language: en-us"&gt;: &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt; line-height: normal; text-autospace: ; mso-layout-grid-align: none"&gt;&lt;span lang="EN-US" style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; background: white; color: black; mso-highlight: white; mso-ansi-language: en-us"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; background: white; color: blue; mso-highlight: white; mso-ansi-language: en-us"&gt;if&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; background: white; color: black; mso-highlight: white; mso-ansi-language: en-us"&gt; (token.IsEntitlementExpired.toLowerCase() === &lt;/span&gt;&lt;span lang="EN-US" style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; background: white; color: #a31515; mso-highlight: white; mso-ansi-language: en-us"&gt;&amp;quot;true&amp;quot;&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; background: white; color: black; mso-highlight: white; mso-ansi-language: en-us"&gt;) Redirect(licenseSettings.expiredUrl); &lt;/span&gt;&lt;span lang="EN-US" style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; background: white; color: green; mso-highlight: white; mso-ansi-language: en-us"&gt;// Trial app has expired!&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; background: white; color: black; mso-highlight: white; mso-ansi-language: en-us"&gt; &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt; line-height: normal; text-autospace: ; mso-layout-grid-align: none"&gt;&lt;span lang="EN-US" style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; background: white; color: black; mso-highlight: white; mso-ansi-language: en-us"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; background: white; color: blue; mso-highlight: white; mso-ansi-language: en-us"&gt;break&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; background: white; color: black; mso-highlight: white; mso-ansi-language: en-us"&gt;; &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt; line-height: normal; text-autospace: ; mso-layout-grid-align: none"&gt;&lt;span lang="EN-US" style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; background: white; color: black; mso-highlight: white; mso-ansi-language: en-us"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;} &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt; line-height: normal; text-autospace: ; mso-layout-grid-align: none"&gt;&lt;span lang="EN-US" style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; background: white; color: black; mso-highlight: white; mso-ansi-language: en-us"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;} &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt; line-height: normal; text-autospace: ; mso-layout-grid-align: none"&gt;&lt;span lang="EN-US" style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; background: white; color: black; mso-highlight: white; mso-ansi-language: en-us"&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt; line-height: normal; text-autospace: ; mso-layout-grid-align: none"&gt;&lt;span lang="EN-US" style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; background: white; color: black; mso-highlight: white; mso-ansi-language: en-us"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; background: white; color: blue; mso-highlight: white; mso-ansi-language: en-us"&gt;function&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; background: white; color: black; mso-highlight: white; mso-ansi-language: en-us"&gt; onVerificationCallFailure() { &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt; line-height: normal; text-autospace: ; mso-layout-grid-align: none"&gt;&lt;span lang="EN-US" style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; background: white; color: black; mso-highlight: white; mso-ansi-language: en-us"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;Redirect(licenseSettings.licenseUrl); &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt; line-height: normal; text-autospace: ; mso-layout-grid-align: none"&gt;&lt;span lang="EN-US" style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; background: white; color: black; mso-highlight: white; mso-ansi-language: en-us"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;} &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt; line-height: normal; text-autospace: ; mso-layout-grid-align: none"&gt;&lt;span lang="EN-US" style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; background: white; color: black; mso-highlight: white; mso-ansi-language: en-us"&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt; line-height: normal; text-autospace: ; mso-layout-grid-align: none"&gt;&lt;span lang="EN-US" style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; background: white; color: black; mso-highlight: white; mso-ansi-language: en-us"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; background: white; color: blue; mso-highlight: white; mso-ansi-language: en-us"&gt;function&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; background: white; color: black; mso-highlight: white; mso-ansi-language: en-us"&gt; Redirect(url) { &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt; line-height: normal; text-autospace: ; mso-layout-grid-align: none"&gt;&lt;span lang="EN-US" style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; background: white; color: black; mso-highlight: white; mso-ansi-language: en-us"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;window.location.href = url; &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt; line-height: normal; text-autospace: ; mso-layout-grid-align: none"&gt;&lt;span lang="EN-US" style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; background: white; color: black; mso-highlight: white; mso-ansi-language: en-us"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;} &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt; line-height: normal; text-autospace: ; mso-layout-grid-align: none"&gt;&lt;span lang="EN-US" style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; background: white; color: black; mso-highlight: white; mso-ansi-language: en-us"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; background: white; color: blue; mso-highlight: white; mso-ansi-language: en-us"&gt;return&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; background: white; color: black; mso-highlight: white; mso-ansi-language: en-us"&gt; &lt;/span&gt;&lt;span lang="EN-US" style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; background: white; color: blue; mso-highlight: white; mso-ansi-language: en-us"&gt;this&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; background: white; color: black; mso-highlight: white; mso-ansi-language: en-us"&gt;; &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt; line-height: normal; text-autospace: ; mso-layout-grid-align: none"&gt;&lt;span lang="EN-US" style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; background: white; color: black; mso-highlight: white; mso-ansi-language: en-us"&gt;}; &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt; line-height: normal; text-autospace: ; mso-layout-grid-align: none"&gt;&lt;span lang="EN-US" style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; background: white; color: black; mso-highlight: white; mso-ansi-language: en-us"&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin: 0cm 0cm 10pt"&gt;&lt;span lang="EN-US" style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; background: white; color: black; line-height: 115%; mso-highlight: white; mso-ansi-language: en-us"&gt;window.SF.License = &lt;/span&gt;&lt;span lang="EN-US" style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; background: white; color: blue; line-height: 115%; mso-highlight: white; mso-ansi-language: en-us"&gt;new&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; background: white; color: black; line-height: 115%; mso-highlight: white; mso-ansi-language: en-us"&gt; SF.LicenseConstructor(jQuery);&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; line-height: 115%; mso-ansi-language: en-us"&gt; &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin: 0cm 0cm 10pt"&gt;&lt;span lang="EN-US" style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; line-height: 115%; mso-ansi-language: en-us"&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;2. Landing pages&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Include the SF.License.Check(…) in be beginning of you document onload after the SP libraries has loaded.&lt;/p&gt;  &lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt; line-height: normal; text-autospace: ; mso-layout-grid-align: none"&gt;&lt;span lang="EN-US" style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; background: white; color: blue; mso-highlight: white; mso-ansi-language: en-us"&gt;var&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; background: white; color: black; mso-highlight: white; mso-ansi-language: en-us"&gt; settings = { &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt; line-height: normal; text-autospace: ; mso-layout-grid-align: none"&gt;&lt;span lang="EN-US" style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; background: white; color: black; mso-highlight: white; mso-ansi-language: en-us"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;context: SP.ClientContext.get_current(), &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt; line-height: normal; text-autospace: ; mso-layout-grid-align: none"&gt;&lt;span lang="EN-US" style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; background: white; color: black; mso-highlight: white; mso-ansi-language: en-us"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;licenseUrl: &lt;/span&gt;&lt;span lang="EN-US" style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; background: white; color: #a31515; mso-highlight: white; mso-ansi-language: en-us"&gt;&amp;quot;http://domain/nolicense.html&amp;quot;&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; background: white; color: black; mso-highlight: white; mso-ansi-language: en-us"&gt;, &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt; line-height: normal; text-autospace: ; mso-layout-grid-align: none"&gt;&lt;span lang="EN-US" style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; background: white; color: black; mso-highlight: white; mso-ansi-language: en-us"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;expiredUrl: &lt;/span&gt;&lt;span lang="EN-US" style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; background: white; color: #a31515; mso-highlight: white; mso-ansi-language: en-us"&gt;&amp;quot;http://domain/trialexpired.html&amp;quot;&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; background: white; color: black; mso-highlight: white; mso-ansi-language: en-us"&gt;, &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt; line-height: normal; text-autospace: ; mso-layout-grid-align: none"&gt;&lt;span lang="EN-US" style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; background: white; color: black; mso-highlight: white; mso-ansi-language: en-us"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;productId: &lt;/span&gt;&lt;span lang="EN-US" style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; background: white; color: #a31515; mso-highlight: white; mso-ansi-language: en-us"&gt;&amp;quot;{[App ID guid]}&amp;quot;&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; background: white; color: black; mso-highlight: white; mso-ansi-language: en-us"&gt; &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt; line-height: normal; text-autospace: ; mso-layout-grid-align: none"&gt;&lt;span lang="EN-US" style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; background: white; color: black; mso-highlight: white; mso-ansi-language: en-us"&gt;}; &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt; line-height: normal; text-autospace: ; mso-layout-grid-align: none"&gt;&lt;span lang="EN-US" style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; background: white; color: black; mso-highlight: white; mso-ansi-language: en-us"&gt;SF.License.Check(settings); &lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Finally you need to specify the verificationservice endpoint in the AppManifest.xml for your app.&lt;font color="#0000ff" size="2" face="Consolas"&gt;&lt;font color="#0000ff" size="2" face="Consolas"&gt;&lt;font color="#0000ff" size="2" face="Consolas"&gt;&lt;/font&gt; &lt;/font&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="https://verificationservice.officeapps.live.com/ova/verificationagent.svc"&gt;&lt;strong&gt;https://verificationservice.officeapps.live.com/ova/verificationagent.svc&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/-YXIbJjqo9vs/US-dO9840bI/AAAAAAAAAKY/XhFQqG5x6XE/s1600-h/image%25255B2%25255D.png"&gt;&lt;strong&gt;&lt;img title="image" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="image" src="http://lh6.ggpht.com/-hDn1m32kMZQ/US-dtuXErbI/AAAAAAAAAKg/cVXXCHVfnxM/image_thumb.png?imgmax=800" width="244" height="161" /&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;3. Test&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Now you need to test you licensing code. Do this by installing a test License key, so you are able to test your app. Further reading on the subject can be found on &lt;a href="http://blogs.msdn.com/b/officeapps/archive/2012/11/09/licensing-your-apps-for-sharepoint.aspx" target="_blank"&gt;Licensing your apps for SharePoint&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Direct link to the license manager app: &lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-53-99/4760.LicenseSPAppSample.zip" target="_blank"&gt;4760.LicenseSPAppSample.zip&lt;/a&gt;&lt;/p&gt;  </description><link>http://feedproxy.google.com/~r/CarstenKeutmann/~3/ip0-wz7uDQQ/sharepoint-2013-hosted-app-license-check.html</link><author>noreply@blogger.com (Carsten Keutmann)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh6.ggpht.com/-hDn1m32kMZQ/US-dtuXErbI/AAAAAAAAAKg/cVXXCHVfnxM/s72-c/image_thumb.png?imgmax=800" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://keutmann.blogspot.com/2013/02/sharepoint-2013-hosted-app-license-check.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-12969685.post-6151535259527153102</guid><pubDate>Tue, 19 Feb 2013 10:28:00 +0000</pubDate><atom:updated>2013-02-21T15:37:35.346-08:00</atom:updated><title>SharePoint 2013 StandardTokens with IntelliSense</title><description>&lt;span lang="EN-US" style="mso-ansi-language: en-us"&gt;&lt;font size="3"&gt;&lt;font color="#000000"&gt;&lt;font face="Calibri"&gt;         &lt;p class="MsoNormal" style="margin: 0cm 0cm 10pt"&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; mso-ansi-language: en-us"&gt;&lt;font color="#ff0000" size="2"&gt;Update: 21 february 2013. Fixed a problem with the json not being valid in Internet Explorer 8.&lt;/font&gt;&amp;#160;&lt;/span&gt;&lt;/p&gt;          &lt;p class="MsoNormal" style="margin: 0cm 0cm 10pt"&gt;&lt;b style="mso-bidi-font-weight: normal"&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; mso-ansi-language: en-us"&gt;Problem&lt;/span&gt;&lt;/b&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; mso-ansi-language: en-us"&gt;:&lt;span style="mso-spacerun: yes"&gt;&amp;#160; &lt;/span&gt;The standard function getQueryStringParameter used to get the querystring parameters in SharePoint Apps is a bit poor. It does not offer any help on IntelliSense and will spilt the url every time you request a value, making it a bit slow function to use. &lt;/span&gt;&lt;/p&gt;          &lt;p class="MsoNormal" style="margin: 0cm 0cm 10pt"&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; mso-ansi-language: en-us"&gt;I love IntelliSense, especially when working with JavaScript. So I came up with this: &lt;/span&gt;&lt;/p&gt;          &lt;p class="MsoNormal" style="margin: 0cm 0cm 10pt"&gt;&lt;b style="mso-bidi-font-weight: normal"&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; mso-ansi-language: en-us"&gt;Solution: &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;          &lt;p class="MsoNormal" style="margin: 0cm 0cm 10pt"&gt;&lt;span style="font-size: 9.5pt; font-family: consolas; color: black; line-height: 115%"&gt;&lt;/span&gt;&lt;/p&gt;          &lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt; line-height: normal; text-autospace: ; mso-layout-grid-align: none"&gt;&lt;span lang="EN-US" style="font-size: 9.5pt; font-family: consolas; background: white; color: black; mso-ansi-language: en-us; mso-highlight: white"&gt;window.SF = window.SF || {}; &lt;/span&gt;&lt;/p&gt;          &lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt; line-height: normal; text-autospace: ; mso-layout-grid-align: none"&gt;&lt;span lang="EN-US" style="font-size: 9.5pt; font-family: consolas; background: white; color: black; mso-ansi-language: en-us; mso-highlight: white"&gt;&lt;/span&gt;            &lt;p&gt;&amp;#160;&lt;/p&gt;         &lt;/p&gt;                    &lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt; line-height: normal; text-autospace: ; mso-layout-grid-align: none"&gt;&lt;span lang="EN-US" style="font-size: 9.5pt; font-family: consolas; background: white; color: black; mso-ansi-language: en-us; mso-highlight: white"&gt;window.SF.CreateQueryString = &lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9.5pt; font-family: consolas; background: white; color: blue; mso-ansi-language: en-us; mso-highlight: white"&gt;function&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9.5pt; font-family: consolas; background: white; color: black; mso-ansi-language: en-us; mso-highlight: white"&gt; () { &lt;/span&gt;&lt;/p&gt;          &lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt; line-height: normal; text-autospace: ; mso-layout-grid-align: none"&gt;&lt;span lang="EN-US" style="font-size: 9.5pt; font-family: consolas; background: white; color: black; mso-ansi-language: en-us; mso-highlight: white"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9.5pt; font-family: consolas; background: white; color: green; mso-ansi-language: en-us; mso-highlight: white"&gt;// Added defined properties for IntelliSense.&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9.5pt; font-family: consolas; background: white; color: black; mso-ansi-language: en-us; mso-highlight: white"&gt; &lt;/span&gt;&lt;/p&gt;          &lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt; line-height: normal; text-autospace: ; mso-layout-grid-align: none"&gt;&lt;span lang="EN-US" style="font-size: 9.5pt; font-family: consolas; background: white; color: black; mso-ansi-language: en-us; mso-highlight: white"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 9.5pt; font-family: consolas; background: white; color: blue; mso-highlight: white"&gt;var&lt;/span&gt;&lt;span style="font-size: 9.5pt; font-family: consolas; background: white; color: black; mso-highlight: white"&gt; q = { &lt;/span&gt;&lt;/p&gt;          &lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt; line-height: normal; text-autospace: ; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 9.5pt; font-family: consolas; background: white; color: black; mso-highlight: white"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;SPAppWebUrl: &lt;/span&gt;&lt;span style="font-size: 9.5pt; font-family: consolas; background: white; color: #a31515; mso-highlight: white"&gt;''&lt;/span&gt;&lt;span style="font-size: 9.5pt; font-family: consolas; background: white; color: black; mso-highlight: white"&gt;, &lt;/span&gt;&lt;/p&gt;          &lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt; line-height: normal; text-autospace: ; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 9.5pt; font-family: consolas; background: white; color: black; mso-highlight: white"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;SPClientTag: &lt;/span&gt;&lt;span style="font-size: 9.5pt; font-family: consolas; background: white; color: #a31515; mso-highlight: white"&gt;''&lt;/span&gt;&lt;span style="font-size: 9.5pt; font-family: consolas; background: white; color: black; mso-highlight: white"&gt;, &lt;/span&gt;&lt;/p&gt;          &lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt; line-height: normal; text-autospace: ; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 9.5pt; font-family: consolas; background: white; color: black; mso-highlight: white"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9.5pt; font-family: consolas; background: white; color: black; mso-ansi-language: en-us; mso-highlight: white"&gt;SPHostLogoUrl: &lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9.5pt; font-family: consolas; background: white; color: #a31515; mso-ansi-language: en-us; mso-highlight: white"&gt;''&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9.5pt; font-family: consolas; background: white; color: black; mso-ansi-language: en-us; mso-highlight: white"&gt;, &lt;/span&gt;&lt;/p&gt;          &lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt; line-height: normal; text-autospace: ; mso-layout-grid-align: none"&gt;&lt;span lang="EN-US" style="font-size: 9.5pt; font-family: consolas; background: white; color: black; mso-ansi-language: en-us; mso-highlight: white"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;SPHostTitle: &lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9.5pt; font-family: consolas; background: white; color: #a31515; mso-ansi-language: en-us; mso-highlight: white"&gt;''&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9.5pt; font-family: consolas; background: white; color: black; mso-ansi-language: en-us; mso-highlight: white"&gt;, &lt;/span&gt;&lt;/p&gt;          &lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt; line-height: normal; text-autospace: ; mso-layout-grid-align: none"&gt;&lt;span lang="EN-US" style="font-size: 9.5pt; font-family: consolas; background: white; color: black; mso-ansi-language: en-us; mso-highlight: white"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;SPHostUrl: &lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9.5pt; font-family: consolas; background: white; color: #a31515; mso-ansi-language: en-us; mso-highlight: white"&gt;''&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9.5pt; font-family: consolas; background: white; color: black; mso-ansi-language: en-us; mso-highlight: white"&gt;, &lt;/span&gt;&lt;/p&gt;          &lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt; line-height: normal; text-autospace: ; mso-layout-grid-align: none"&gt;&lt;span lang="EN-US" style="font-size: 9.5pt; font-family: consolas; background: white; color: black; mso-ansi-language: en-us; mso-highlight: white"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;SPItemId: &lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9.5pt; font-family: consolas; background: white; color: #a31515; mso-ansi-language: en-us; mso-highlight: white"&gt;''&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9.5pt; font-family: consolas; background: white; color: black; mso-ansi-language: en-us; mso-highlight: white"&gt;, &lt;/span&gt;&lt;/p&gt;          &lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt; line-height: normal; text-autospace: ; mso-layout-grid-align: none"&gt;&lt;span lang="EN-US" style="font-size: 9.5pt; font-family: consolas; background: white; color: black; mso-ansi-language: en-us; mso-highlight: white"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;SPItemUrl: &lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9.5pt; font-family: consolas; background: white; color: #a31515; mso-ansi-language: en-us; mso-highlight: white"&gt;''&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9.5pt; font-family: consolas; background: white; color: black; mso-ansi-language: en-us; mso-highlight: white"&gt;, &lt;/span&gt;&lt;/p&gt;          &lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt; line-height: normal; text-autospace: ; mso-layout-grid-align: none"&gt;&lt;span lang="EN-US" style="font-size: 9.5pt; font-family: consolas; background: white; color: black; mso-ansi-language: en-us; mso-highlight: white"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;SPLanguage: &lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9.5pt; font-family: consolas; background: white; color: #a31515; mso-ansi-language: en-us; mso-highlight: white"&gt;''&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9.5pt; font-family: consolas; background: white; color: black; mso-ansi-language: en-us; mso-highlight: white"&gt;, &lt;/span&gt;&lt;/p&gt;          &lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt; line-height: normal; text-autospace: ; mso-layout-grid-align: none"&gt;&lt;span lang="EN-US" style="font-size: 9.5pt; font-family: consolas; background: white; color: black; mso-ansi-language: en-us; mso-highlight: white"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;SPListId: &lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9.5pt; font-family: consolas; background: white; color: #a31515; mso-ansi-language: en-us; mso-highlight: white"&gt;''&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9.5pt; font-family: consolas; background: white; color: black; mso-ansi-language: en-us; mso-highlight: white"&gt;, &lt;/span&gt;&lt;/p&gt;          &lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt; line-height: normal; text-autospace: ; mso-layout-grid-align: none"&gt;&lt;span lang="EN-US" style="font-size: 9.5pt; font-family: consolas; background: white; color: black; mso-ansi-language: en-us; mso-highlight: white"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;SPProductNumber: &lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9.5pt; font-family: consolas; background: white; color: #a31515; mso-ansi-language: en-us; mso-highlight: white"&gt;''&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9.5pt; font-family: consolas; background: white; color: black; mso-ansi-language: en-us; mso-highlight: white"&gt;, &lt;/span&gt;&lt;/p&gt;          &lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt; line-height: normal; text-autospace: ; mso-layout-grid-align: none"&gt;&lt;span lang="EN-US" style="font-size: 9.5pt; font-family: consolas; background: white; color: black; mso-ansi-language: en-us; mso-highlight: white"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;SPRecurrenceId: &lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9.5pt; font-family: consolas; background: white; color: #a31515; mso-ansi-language: en-us; mso-highlight: white"&gt;''&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9.5pt; font-family: consolas; background: white; color: black; mso-ansi-language: en-us; mso-highlight: white"&gt;, &lt;/span&gt;&lt;/p&gt;          &lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt; line-height: normal; text-autospace: ; mso-layout-grid-align: none"&gt;&lt;span lang="EN-US" style="font-size: 9.5pt; font-family: consolas; background: white; color: black; mso-ansi-language: en-us; mso-highlight: white"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;SPRemoteAppUrl: &lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9.5pt; font-family: consolas; background: white; color: #a31515; mso-ansi-language: en-us; mso-highlight: white"&gt;''&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9.5pt; font-family: consolas; background: white; color: black; mso-ansi-language: en-us; mso-highlight: white"&gt;, &lt;/span&gt;&lt;/p&gt;          &lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt; line-height: normal; text-autospace: ; mso-layout-grid-align: none"&gt;&lt;span lang="EN-US" style="font-size: 9.5pt; font-family: consolas; background: white; color: black; mso-ansi-language: en-us; mso-highlight: white"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;SPSite: &lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9.5pt; font-family: consolas; background: white; color: #a31515; mso-ansi-language: en-us; mso-highlight: white"&gt;''&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9.5pt; font-family: consolas; background: white; color: black; mso-ansi-language: en-us; mso-highlight: white"&gt;, &lt;/span&gt;&lt;/p&gt;          &lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt; line-height: normal; text-autospace: ; mso-layout-grid-align: none"&gt;&lt;span lang="EN-US" style="font-size: 9.5pt; font-family: consolas; background: white; color: black; mso-ansi-language: en-us; mso-highlight: white"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;SPSiteCollection: &lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9.5pt; font-family: consolas; background: white; color: #a31515; mso-ansi-language: en-us; mso-highlight: white"&gt;''&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9.5pt; font-family: consolas; background: white; color: black; mso-ansi-language: en-us; mso-highlight: white"&gt;, &lt;/span&gt;&lt;/p&gt;          &lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt; line-height: normal; text-autospace: ; mso-layout-grid-align: none"&gt;&lt;span lang="EN-US" style="font-size: 9.5pt; font-family: consolas; background: white; color: black; mso-ansi-language: en-us; mso-highlight: white"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 9.5pt; font-family: consolas; background: white; color: black; mso-highlight: white"&gt;SPSiteUrl: &lt;/span&gt;&lt;span style="font-size: 9.5pt; font-family: consolas; background: white; color: #a31515; mso-highlight: white"&gt;''&lt;/span&gt;&lt;span style="font-size: 9.5pt; font-family: consolas; background: white; color: black; mso-highlight: white"&gt;, &lt;/span&gt;&lt;/p&gt;          &lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt; line-height: normal; text-autospace: ; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 9.5pt; font-family: consolas; background: white; color: black; mso-highlight: white"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;SPSource: &lt;/span&gt;&lt;span style="font-size: 9.5pt; font-family: consolas; background: white; color: #a31515; mso-highlight: white"&gt;''&lt;/span&gt;&lt;span style="font-size: 9.5pt; font-family: consolas; background: white; color: black; mso-highlight: white"&gt; &lt;/span&gt;&lt;/p&gt;          &lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt; line-height: normal; text-autospace: ; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 9.5pt; font-family: consolas; background: white; color: black; mso-highlight: white"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;}; &lt;/span&gt;&lt;/p&gt;          &lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt; line-height: normal; text-autospace: ; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 9.5pt; font-family: consolas; background: white; color: black; mso-highlight: white"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 9.5pt; font-family: consolas; background: white; color: blue; mso-highlight: white"&gt;var&lt;/span&gt;&lt;span style="font-size: 9.5pt; font-family: consolas; background: white; color: black; mso-highlight: white"&gt; hash; &lt;/span&gt;&lt;/p&gt;          &lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt; line-height: normal; text-autospace: ; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 9.5pt; font-family: consolas; background: white; color: black; mso-highlight: white"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9.5pt; font-family: consolas; background: white; color: blue; mso-ansi-language: en-us; mso-highlight: white"&gt;var&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9.5pt; font-family: consolas; background: white; color: black; mso-ansi-language: en-us; mso-highlight: white"&gt; hashes = window.location.href.slice(window.location.href.indexOf(&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9.5pt; font-family: consolas; background: white; color: #a31515; mso-ansi-language: en-us; mso-highlight: white"&gt;'?'&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9.5pt; font-family: consolas; background: white; color: black; mso-ansi-language: en-us; mso-highlight: white"&gt;) &lt;/span&gt;&lt;span style="font-size: 9.5pt; font-family: consolas; background: white; color: black; mso-highlight: white"&gt;+ 1).split(&lt;/span&gt;&lt;span style="font-size: 9.5pt; font-family: consolas; background: white; color: #a31515; mso-highlight: white"&gt;'&amp;amp;'&lt;/span&gt;&lt;span style="font-size: 9.5pt; font-family: consolas; background: white; color: black; mso-highlight: white"&gt;); &lt;/span&gt;&lt;/p&gt;          &lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt; line-height: normal; text-autospace: ; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 9.5pt; font-family: consolas; background: white; color: black; mso-highlight: white"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 9.5pt; font-family: consolas; background: white; color: blue; mso-highlight: white"&gt;for&lt;/span&gt;&lt;span style="font-size: 9.5pt; font-family: consolas; background: white; color: black; mso-highlight: white"&gt; (&lt;/span&gt;&lt;span style="font-size: 9.5pt; font-family: consolas; background: white; color: blue; mso-highlight: white"&gt;var&lt;/span&gt;&lt;span style="font-size: 9.5pt; font-family: consolas; background: white; color: black; mso-highlight: white"&gt; i = 0; i &amp;lt; hashes.length; i++) { &lt;/span&gt;&lt;/p&gt;          &lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt; line-height: normal; text-autospace: ; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 9.5pt; font-family: consolas; background: white; color: black; mso-highlight: white"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9.5pt; font-family: consolas; background: white; color: black; mso-ansi-language: en-us; mso-highlight: white"&gt;hash = hashes[i].split(&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9.5pt; font-family: consolas; background: white; color: #a31515; mso-ansi-language: en-us; mso-highlight: white"&gt;'='&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9.5pt; font-family: consolas; background: white; color: black; mso-ansi-language: en-us; mso-highlight: white"&gt;); &lt;/span&gt;&lt;/p&gt;          &lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt; line-height: normal; text-autospace: ; mso-layout-grid-align: none"&gt;&lt;span lang="EN-US" style="font-size: 9.5pt; font-family: consolas; background: white; color: black; mso-ansi-language: en-us; mso-highlight: white"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9.5pt; font-family: consolas; background: white; color: blue; mso-ansi-language: en-us; mso-highlight: white"&gt;var&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9.5pt; font-family: consolas; background: white; color: black; mso-ansi-language: en-us; mso-highlight: white"&gt; val = decodeURIComponent(hash[1].replace(&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9.5pt; font-family: consolas; background: white; color: maroon; mso-ansi-language: en-us; mso-highlight: white"&gt;/\+/g&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9.5pt; font-family: consolas; background: white; color: black; mso-ansi-language: en-us; mso-highlight: white"&gt;, &lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9.5pt; font-family: consolas; background: white; color: #a31515; mso-ansi-language: en-us; mso-highlight: white"&gt;' '&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9.5pt; font-family: consolas; background: white; color: black; mso-ansi-language: en-us; mso-highlight: white"&gt;)); &lt;/span&gt;&lt;/p&gt;          &lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt; line-height: normal; text-autospace: ; mso-layout-grid-align: none"&gt;&lt;span lang="EN-US" style="font-size: 9.5pt; font-family: consolas; background: white; color: black; mso-ansi-language: en-us; mso-highlight: white"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;q[hash[0]] = val; &lt;/span&gt;&lt;/p&gt;          &lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt; line-height: normal; text-autospace: ; mso-layout-grid-align: none"&gt;&lt;span lang="EN-US" style="font-size: 9.5pt; font-family: consolas; background: white; color: black; mso-ansi-language: en-us; mso-highlight: white"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;q[hash[0].toLowerCase()] = val; &lt;/span&gt;&lt;/p&gt;          &lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt; line-height: normal; text-autospace: ; mso-layout-grid-align: none"&gt;&lt;span lang="EN-US" style="font-size: 9.5pt; font-family: consolas; background: white; color: black; mso-ansi-language: en-us; mso-highlight: white"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;} &lt;/span&gt;&lt;/p&gt;          &lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt; line-height: normal; text-autospace: ; mso-layout-grid-align: none"&gt;&lt;span lang="EN-US" style="font-size: 9.5pt; font-family: consolas; background: white; color: black; mso-ansi-language: en-us; mso-highlight: white"&gt;&lt;/span&gt;            &lt;p&gt;&amp;#160;&lt;/p&gt;         &lt;/p&gt;                    &lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt; line-height: normal; text-autospace: ; mso-layout-grid-align: none"&gt;&lt;span lang="EN-US" style="font-size: 9.5pt; font-family: consolas; background: white; color: black; mso-ansi-language: en-us; mso-highlight: white"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9.5pt; font-family: consolas; background: white; color: blue; mso-ansi-language: en-us; mso-highlight: white"&gt;return&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9.5pt; font-family: consolas; background: white; color: black; mso-ansi-language: en-us; mso-highlight: white"&gt; q; &lt;/span&gt;&lt;/p&gt;          &lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt; line-height: normal; text-autospace: ; mso-layout-grid-align: none"&gt;&lt;span lang="EN-US" style="font-size: 9.5pt; font-family: consolas; background: white; color: black; mso-ansi-language: en-us; mso-highlight: white"&gt;}; &lt;/span&gt;&lt;/p&gt;          &lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt; line-height: normal; text-autospace: ; mso-layout-grid-align: none"&gt;&lt;span lang="EN-US" style="font-size: 9.5pt; font-family: consolas; background: white; color: black; mso-ansi-language: en-us; mso-highlight: white"&gt;&lt;/span&gt;            &lt;p&gt;&amp;#160;&lt;/p&gt;         &lt;/p&gt;                    &lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt; line-height: normal; text-autospace: ; mso-layout-grid-align: none"&gt;&lt;span lang="EN-US" style="font-size: 9.5pt; font-family: consolas; background: white; color: black; mso-ansi-language: en-us; mso-highlight: white"&gt;window.SF.Response = { &lt;/span&gt;&lt;/p&gt;          &lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt; line-height: normal; text-autospace: ; mso-layout-grid-align: none"&gt;&lt;span lang="EN-US" style="font-size: 9.5pt; font-family: consolas; background: white; color: black; mso-ansi-language: en-us; mso-highlight: white"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 9.5pt; font-family: consolas; background: white; color: black; mso-highlight: white"&gt;QueryString: SF.CreateQueryString() &lt;/span&gt;&lt;/p&gt;          &lt;p class="MsoNormal" style="margin: 0cm 0cm 10pt"&gt;&lt;span style="font-size: 9.5pt; font-family: consolas; background: white; color: black; line-height: 115%; mso-highlight: white"&gt;};&lt;/span&gt; &lt;/p&gt;                    &lt;p class="MsoNormal" style="margin: 0cm 0cm 10pt"&gt;&lt;b style="mso-bidi-font-weight: normal"&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black; mso-ansi-language: en-us"&gt;Usage:&lt;/span&gt;&lt;/b&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black; mso-ansi-language: en-us"&gt;              &lt;br /&gt;Start with adding the javascript file with the code to the _references.js file, in order to get the IntelliSense going. &lt;/span&gt;&lt;/p&gt;          &lt;p class="MsoNormal" style="margin: 0cm 0cm 10pt"&gt;&lt;span style="mso-fareast-language: da; mso-no-proof: yes"&gt;&lt;a href="http://lh5.ggpht.com/-602d7p4Nu0U/USNTYs735zI/AAAAAAAAAJY/13Qbbuy0MXo/s1600-h/clip_image001%25255B6%25255D.png"&gt;&lt;img title="clip_image001" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="clip_image001" src="http://lh6.ggpht.com/-21XyzuIu80c/USNT3b89bWI/AAAAAAAAAJg/OW18J9zut2w/clip_image001_thumb%25255B2%25255D.png?imgmax=800" width="644" height="110" v:shapes="Picture_x0020_1" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;span lang="EN-US" style="mso-ansi-language: en-us"&gt; &lt;/span&gt;&lt;/p&gt;          &lt;p class="MsoNormal" style="margin: 0cm 0cm 10pt"&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; mso-ansi-language: en-us"&gt;Now accessing the Standardtokens is like an easy game. &lt;/span&gt;&lt;/p&gt;          &lt;p class="MsoNormal" style="margin: 0cm 0cm 10pt"&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; mso-ansi-language: en-us"&gt;If you want to access other parameters in the url, there are sadly no IntelliSense, but the parameters are still available in a case mode and lower case mode. This is very handy when creating custom properties for an App Part and accessing those properties from the App Part iframed page. &lt;/span&gt;&lt;/p&gt;          &lt;p class="MsoNormal" style="margin: 0cm 0cm 10pt"&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; mso-ansi-language: en-us"&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9.5pt; background: white; color: blue; mso-ansi-language: en-us; mso-highlight: white; mso-bidi-font-family: consolas"&gt;&amp;lt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9.5pt; background: white; color: #a31515; mso-ansi-language: en-us; mso-highlight: white; mso-bidi-font-family: consolas"&gt;Content&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9.5pt; background: white; color: blue; mso-ansi-language: en-us; mso-highlight: white; mso-bidi-font-family: consolas"&gt; &lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9.5pt; background: white; color: red; mso-ansi-language: en-us; mso-highlight: white; mso-bidi-font-family: consolas"&gt;Type&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9.5pt; background: white; color: blue; mso-ansi-language: en-us; mso-highlight: white; mso-bidi-font-family: consolas"&gt;=&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9.5pt; background: white; color: black; mso-ansi-language: en-us; mso-highlight: white; mso-bidi-font-family: consolas"&gt;&amp;quot;&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9.5pt; background: white; color: blue; mso-ansi-language: en-us; mso-highlight: white; mso-bidi-font-family: consolas"&gt;html&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9.5pt; background: white; color: black; mso-ansi-language: en-us; mso-highlight: white; mso-bidi-font-family: consolas"&gt;&amp;quot;&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9.5pt; background: white; color: blue; mso-ansi-language: en-us; mso-highlight: white; mso-bidi-font-family: consolas"&gt; &lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9.5pt; background: white; color: red; mso-ansi-language: en-us; mso-highlight: white; mso-bidi-font-family: consolas"&gt;Src&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9.5pt; background: white; color: blue; mso-ansi-language: en-us; mso-highlight: white; mso-bidi-font-family: consolas"&gt;=&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9.5pt; background: white; color: black; mso-ansi-language: en-us; mso-highlight: white; mso-bidi-font-family: consolas"&gt;&amp;quot;&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9.5pt; background: white; color: blue; mso-ansi-language: en-us; mso-highlight: white; mso-bidi-font-family: consolas"&gt;~appWebUrl/Pages/SiteTreeViewPage.aspx?{StandardTokens}&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9.5pt; background: white; color: red; mso-ansi-language: en-us; mso-highlight: white; mso-bidi-font-family: consolas"&gt;&amp;amp;amp;s&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9.5pt; background: white; color: blue; mso-ansi-language: en-us; mso-highlight: white; mso-bidi-font-family: consolas"&gt;howrootweb=_showrootweb_&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9.5pt; background: white; color: black; mso-ansi-language: en-us; mso-highlight: white; mso-bidi-font-family: consolas"&gt;&amp;quot;&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9.5pt; background: white; color: blue; mso-ansi-language: en-us; mso-highlight: white; mso-bidi-font-family: consolas"&gt; /&amp;gt;&lt;/span&gt;&lt;/p&gt;          &lt;p class="MsoNormal" style="margin: 0cm 0cm 10pt"&gt;&lt;span lang="EN-US" style="font-size: 9.5pt; background: white; color: blue; mso-ansi-language: en-us; mso-highlight: white; mso-bidi-font-family: consolas"&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; mso-ansi-language: en-us"&gt;Makes the “showrootweb” parameter available in the QueryString. &lt;/span&gt;&lt;/p&gt;          &lt;p class="MsoNormal" style="margin: 0cm 0cm 10pt"&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; mso-ansi-language: en-us"&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9.5pt; font-family: consolas; background: white; color: blue; line-height: 115%; mso-ansi-language: en-us; mso-highlight: white"&gt;var&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9.5pt; font-family: consolas; background: white; color: black; line-height: 115%; mso-ansi-language: en-us; mso-highlight: white"&gt; showRootWeb = SF.Response.QueryString.showrootweb;&lt;/span&gt;&lt;span lang="EN-US" style="mso-ansi-language: en-us"&gt; &lt;/span&gt;&lt;/p&gt;          &lt;p class="MsoNormal" style="margin: 0cm 0cm 10pt"&gt;&lt;span lang="EN-US" style="mso-ansi-language: en-us"&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; mso-ansi-language: en-us"&gt;It does not matter what case the parameter have in the url, because it will always be available in lowercase and its normal form. &lt;/span&gt;&lt;/p&gt;          &lt;p class="MsoNormal" style="margin: 0cm 0cm 10pt"&gt;&lt;/p&gt;                 &lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;  </description><link>http://feedproxy.google.com/~r/CarstenKeutmann/~3/3P4YnDoBX-Y/sharepoint-2013-standardtokens-with.html</link><author>noreply@blogger.com (Carsten Keutmann)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh6.ggpht.com/-21XyzuIu80c/USNT3b89bWI/AAAAAAAAAJg/OW18J9zut2w/s72-c/clip_image001_thumb%25255B2%25255D.png?imgmax=800" height="72" width="72" /><thr:total>1</thr:total><feedburner:origLink>http://keutmann.blogspot.com/2013/02/sharepoint-2013-standardtokens-with.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-12969685.post-3731379264159497615</guid><pubDate>Mon, 18 Feb 2013 21:19:00 +0000</pubDate><atom:updated>2013-02-18T13:19:21.124-08:00</atom:updated><title>SharePoint 2013 App Part scrollbars</title><description>&lt;p&gt;I had this problem the other day with no scrollbar showing up when the content of my App Part was larger than the iframe.&lt;/p&gt;  &lt;p&gt;It turned out to be the /_layouts/15/1033/styles/themable/corev15.css that was the reason. This file is included on my App Part aspx page, in order to get the same style as the rest of the site. &lt;/p&gt;  &lt;p&gt;The simple solution to the problem was just to add a style tag with overflow to the body tag on the App Part aspx page.&lt;/p&gt;  &lt;p&gt;&lt;font face="Consolas"&gt;&lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#800000" size="2"&gt;&lt;font color="#800000" size="2"&gt;&lt;font color="#800000" size="2"&gt;body&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font color="#000000" size="2"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#ff0000" size="2"&gt;&lt;font color="#ff0000" size="2"&gt;&lt;font color="#ff0000" size="2"&gt;style&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#0000ff" size="2"&gt;=&amp;quot;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#ff0000" size="2"&gt;&lt;font color="#ff0000" size="2"&gt;&lt;font color="#ff0000" size="2"&gt;overflow&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font color="#000000" size="2"&gt;:&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#0000ff" size="2"&gt;auto&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font color="#000000" size="2"&gt;;&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#0000ff" size="2"&gt;&amp;quot;&amp;gt; &lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#0000ff" face="Consolas"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#0000ff" face="Consolas"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;Result:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/-EoE1lUI2jyg/USKaXQ5iTVI/AAAAAAAAAJA/zjmLoLgrxxM/s1600-h/image11.png"&gt;&lt;img title="image" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; margin: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="image" src="http://lh3.ggpht.com/-uzpMpFWyj1Y/USKa1wbllKI/AAAAAAAAAJI/H6bBQbZWiQY/image_thumb7.png?imgmax=800" width="244" height="138" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;If you wanner resize from your iframed page, its possible by use of the postMessage command. &lt;/p&gt;  &lt;p&gt;Found on the &lt;a href="http://social.msdn.microsoft.com/Forums/en-US/appsforsharepoint/thread/f81eede5-700d-4003-8384-4ec9b554f79e/" target="_blank"&gt;forum&lt;/a&gt; posted by &lt;a href="http://social.msdn.microsoft.com/profile/yina%20arenas/?ws=usercard-mini" target="_blank"&gt;Yina Arenas&lt;/a&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt; line-height: normal; text-autospace: ; mso-layout-grid-align: none"&gt;&lt;span lang="EN-US" style="font-size: 9.5pt; font-family: consolas; background: white; color: blue; mso-highlight: white; mso-ansi-language: en-us"&gt;&amp;lt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9.5pt; font-family: consolas; background: white; color: maroon; mso-highlight: white; mso-ansi-language: en-us"&gt;script&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9.5pt; font-family: consolas; background: white; color: black; mso-highlight: white; mso-ansi-language: en-us"&gt; &lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9.5pt; font-family: consolas; background: white; color: red; mso-highlight: white; mso-ansi-language: en-us"&gt;type&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9.5pt; font-family: consolas; background: white; color: blue; mso-highlight: white; mso-ansi-language: en-us"&gt;=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9.5pt; font-family: consolas; background: white; color: black; mso-highlight: white; mso-ansi-language: en-us"&gt; &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt; line-height: normal; text-autospace: ; mso-layout-grid-align: none"&gt;&lt;span lang="EN-US" style="font-size: 9.5pt; font-family: consolas; background: white; color: black; mso-highlight: white; mso-ansi-language: en-us"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;window.onload = &lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9.5pt; font-family: consolas; background: white; color: blue; mso-highlight: white; mso-ansi-language: en-us"&gt;function&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9.5pt; font-family: consolas; background: white; color: black; mso-highlight: white; mso-ansi-language: en-us"&gt; () { &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt; line-height: normal; text-autospace: ; mso-layout-grid-align: none"&gt;&lt;span lang="EN-US" style="font-size: 9.5pt; font-family: consolas; background: white; color: black; mso-highlight: white; mso-ansi-language: en-us"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9.5pt; font-family: consolas; background: white; color: blue; mso-highlight: white; mso-ansi-language: en-us"&gt;var&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9.5pt; font-family: consolas; background: white; color: black; mso-highlight: white; mso-ansi-language: en-us"&gt; target = parent.postMessage ? parent : (parent.document.postMessage ? parent.document : undefined); &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt; line-height: normal; text-autospace: ; mso-layout-grid-align: none"&gt;&lt;span lang="EN-US" style="font-size: 9.5pt; font-family: consolas; background: white; color: black; mso-highlight: white; mso-ansi-language: en-us"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9.5pt; font-family: consolas; background: white; color: blue; mso-highlight: white; mso-ansi-language: en-us"&gt;var&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9.5pt; font-family: consolas; background: white; color: black; mso-highlight: white; mso-ansi-language: en-us"&gt; regex = &lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9.5pt; font-family: consolas; background: white; color: blue; mso-highlight: white; mso-ansi-language: en-us"&gt;new&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9.5pt; font-family: consolas; background: white; color: black; mso-highlight: white; mso-ansi-language: en-us"&gt; RegExp(&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9.5pt; font-family: consolas; background: white; color: maroon; mso-highlight: white; mso-ansi-language: en-us"&gt;/[Ss]ender[Ii]d=([\daAbBcCdDeEfF]+)/&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9.5pt; font-family: consolas; background: white; color: black; mso-highlight: white; mso-ansi-language: en-us"&gt;); &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt; line-height: normal; text-autospace: ; mso-layout-grid-align: none"&gt;&lt;span lang="EN-US" style="font-size: 9.5pt; font-family: consolas; background: white; color: black; mso-highlight: white; mso-ansi-language: en-us"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;results = regex.exec(&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9.5pt; font-family: consolas; background: white; color: blue; mso-highlight: white; mso-ansi-language: en-us"&gt;this&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9.5pt; font-family: consolas; background: white; color: black; mso-highlight: white; mso-ansi-language: en-us"&gt;.location.search); &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt; line-height: normal; text-autospace: ; mso-layout-grid-align: none"&gt;&lt;span lang="EN-US" style="font-size: 9.5pt; font-family: consolas; background: white; color: black; mso-highlight: white; mso-ansi-language: en-us"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9.5pt; font-family: consolas; background: white; color: blue; mso-highlight: white; mso-ansi-language: en-us"&gt;if&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9.5pt; font-family: consolas; background: white; color: black; mso-highlight: white; mso-ansi-language: en-us"&gt; (&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9.5pt; font-family: consolas; background: white; color: blue; mso-highlight: white; mso-ansi-language: en-us"&gt;null&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9.5pt; font-family: consolas; background: white; color: black; mso-highlight: white; mso-ansi-language: en-us"&gt; != results &amp;amp;&amp;amp; &lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9.5pt; font-family: consolas; background: white; color: blue; mso-highlight: white; mso-ansi-language: en-us"&gt;null&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9.5pt; font-family: consolas; background: white; color: black; mso-highlight: white; mso-ansi-language: en-us"&gt; != results[1]) { &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt; line-height: normal; text-autospace: ; mso-layout-grid-align: none"&gt;&lt;span lang="EN-US" style="font-size: 9.5pt; font-family: consolas; background: white; color: black; mso-highlight: white; mso-ansi-language: en-us"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 9.5pt; font-family: consolas; background: white; color: black; mso-highlight: white"&gt;target.postMessage(&lt;/span&gt;&lt;span style="font-size: 9.5pt; font-family: consolas; background: white; color: #a31515; mso-highlight: white"&gt;'&amp;lt;message senderId='&lt;/span&gt;&lt;span style="font-size: 9.5pt; font-family: consolas; background: white; color: black; mso-highlight: white"&gt; + results[1] + &lt;/span&gt;&lt;span style="font-size: 9.5pt; font-family: consolas; background: white; color: #a31515; mso-highlight: white"&gt;'&amp;gt;resize(500,200)&amp;lt;/message&amp;gt;'&lt;/span&gt;&lt;span style="font-size: 9.5pt; font-family: consolas; background: white; color: black; mso-highlight: white"&gt;, &lt;/span&gt;&lt;span style="font-size: 9.5pt; font-family: consolas; background: white; color: #a31515; mso-highlight: white"&gt;'*'&lt;/span&gt;&lt;span style="font-size: 9.5pt; font-family: consolas; background: white; color: black; mso-highlight: white"&gt;); &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt; line-height: normal; text-autospace: ; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 9.5pt; font-family: consolas; background: white; color: black; mso-highlight: white"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;} &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt; line-height: normal; text-autospace: ; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 9.5pt; font-family: consolas; background: white; color: black; mso-highlight: white"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;} &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin: 0cm 0cm 10pt"&gt;&lt;span style="font-size: 9.5pt; font-family: consolas; background: white; color: blue; line-height: 115%; mso-highlight: white"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="font-size: 9.5pt; font-family: consolas; background: white; color: maroon; line-height: 115%; mso-highlight: white"&gt;script&lt;/span&gt;&lt;span style="font-size: 9.5pt; font-family: consolas; background: white; color: blue; line-height: 115%; mso-highlight: white"&gt;&amp;gt;&lt;/span&gt; &lt;/p&gt;    &lt;p&gt;Futher more Richard diZerega has written this very good blog post on &lt;a href="http://blogs.msdn.com/b/richard_dizeregas_blog/archive/2012/08/02/optimizing-user-experience-for-sharepoint-2013-apps.aspx" target="_blank"&gt;Optimizing User Experience of Apps for SharePoint 2013&lt;/a&gt;&lt;/p&gt;  </description><link>http://feedproxy.google.com/~r/CarstenKeutmann/~3/YoVEUiCckYY/sharepoint-2013-app-part-scrollbars.html</link><author>noreply@blogger.com (Carsten Keutmann)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh3.ggpht.com/-uzpMpFWyj1Y/USKa1wbllKI/AAAAAAAAAJI/H6bBQbZWiQY/s72-c/image_thumb7.png?imgmax=800" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://keutmann.blogspot.com/2013/02/sharepoint-2013-app-part-scrollbars.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-12969685.post-670124307126101887</guid><pubDate>Wed, 13 Feb 2013 12:55:00 +0000</pubDate><atom:updated>2013-02-13T05:10:38.360-08:00</atom:updated><title>FullControl is not allowed in apps on the SharePoint 2013 App Store.</title><description>When building an app for SharePoint App Store, the FullControl permission is not allowed. This was not easy to find and is very well “hidden” in the documentation on permissions. However building local deployed apps the FullControl permission is allowed.&lt;br /&gt;
To quote Microsoft: &lt;em&gt;Only Read, Write, and Manage rights are allowed for Office Store apps. If you try to submit an app to the Office Store that requires FullControl rights, your app is blocked from submission&lt;/em&gt;.     &lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/fp142383.aspx#Perm_rightlist"&gt;http://msdn.microsoft.com/en-us/library/fp142383.aspx#Perm_rightlist&lt;/a&gt;</description><link>http://feedproxy.google.com/~r/CarstenKeutmann/~3/rbIkz-Xnyrc/fullcontrol-is-not-allow-in-apps-on.html</link><author>noreply@blogger.com (Carsten Keutmann)</author><thr:total>0</thr:total><feedburner:origLink>http://keutmann.blogspot.com/2013/02/fullcontrol-is-not-allow-in-apps-on.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-12969685.post-422539863554907228</guid><pubDate>Thu, 17 Jan 2013 19:30:00 +0000</pubDate><atom:updated>2013-02-13T04:57:44.672-08:00</atom:updated><title>_api JSON Viewer</title><description>Update: Version 2 is now available on the Office App Atore.&lt;br /&gt;
&lt;br /&gt;
My first SharePoint 2013 app develop togetter with &lt;a href="http://www.blogger.com/profile/03197769560151211482" target="_blank"&gt;Anders Dissing&lt;/a&gt; has just been released on the SharePoint 2013 app store. &lt;br /&gt;
&amp;nbsp;&lt;strong&gt;_api JSON Viewer&lt;/strong&gt;&lt;br /&gt;
&lt;em&gt;One of the first things you wish for when working with SharePoint 2013 REST api, is a way to display the raw data, so you know what you have to work with. The _api JSON Viewer app is the tool that does exactly that, with a very user-friendly display and simple functionality. It even allows you to view JSON data across the site collection and every apps. This is a must have app for anyone working with the SharePoint 2013 REST api.&lt;/em&gt;&lt;br /&gt;
&lt;em&gt;&lt;a href="http://lh4.ggpht.com/-GQuk1EnkxZ4/UPhQ8Ma3uUI/AAAAAAAAAHM/DtFfqWZjOMA/s1600-h/ScreenShot1%25255B3%25255D.png"&gt;&lt;img alt="ScreenShot1" border="0" height="388" src="http://lh5.ggpht.com/-f7MdetSztOY/UPhRbu1ekRI/AAAAAAAAAHU/KQfcynMTxLg/ScreenShot1_thumb%25255B1%25255D.png?imgmax=800" style="background-image: none; border-width: 0px; display: inline; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="ScreenShot1" width="516" /&gt;&lt;/a&gt;&lt;/em&gt;&lt;br /&gt;
It’s a free app, so go and get it. </description><link>http://feedproxy.google.com/~r/CarstenKeutmann/~3/YBNahAvWm_w/api-json-viewer.html</link><author>noreply@blogger.com (Carsten Keutmann)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh5.ggpht.com/-f7MdetSztOY/UPhRbu1ekRI/AAAAAAAAAHU/KQfcynMTxLg/s72-c/ScreenShot1_thumb%25255B1%25255D.png?imgmax=800" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://keutmann.blogspot.com/2013/01/api-json-viewer.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-12969685.post-8350477883836283706</guid><pubDate>Thu, 08 Nov 2012 12:34:00 +0000</pubDate><atom:updated>2012-11-08T04:46:20.584-08:00</atom:updated><title>WebpartToolPart category "Appearance" expanded by default - How to revert this ?</title><description>&lt;p&gt;I had this problem myself the other day and it seems that all the solutions I found where mostly javascript based. But this is not a good solution in my mind, therefore I did some reflection and came up with this solution, all server side.&lt;/p&gt;  &lt;div style="border-bottom: silver 1px solid; text-align: left; border-left: silver 1px solid; padding-bottom: 4px; line-height: 12pt; background-color: #f4f4f4; margin: 20px 0px 10px; padding-left: 4px; width: 97.5%; padding-right: 4px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; max-height: 800px; font-size: 8pt; overflow: auto; border-top: silver 1px solid; cursor: text; border-right: silver 1px solid; padding-top: 4px" id="codeSnippetWrapper"&gt;   &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;&lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;override&lt;/span&gt; ToolPart[] GetToolParts()&lt;br /&gt;{&lt;br /&gt;&lt;br /&gt;    var list = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; List&amp;lt;ToolPart&amp;gt;(&lt;span style="color: #0000ff"&gt;base&lt;/span&gt;.GetToolParts());&lt;br /&gt;&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;foreach&lt;/span&gt; (var wptp &lt;span style="color: #0000ff"&gt;in&lt;/span&gt; list.OfType&amp;lt;WebPartToolPart&amp;gt;())&lt;br /&gt;    {&lt;br /&gt;        HideExpandIndexes(wptp);&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;return&lt;/span&gt; list.ToArray();&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;private&lt;/span&gt; &lt;span style="color: #0000ff"&gt;void&lt;/span&gt; HideExpandIndexes(WebPartToolPart part)&lt;br /&gt;{&lt;br /&gt;&lt;br /&gt;    var field_helper = part.GetType().GetField(&lt;span style="color: #006080"&gt;&amp;quot;_helper&amp;quot;&lt;/span&gt;, BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.FlattenHierarchy);&lt;br /&gt;    var _helper = field_helper.GetValue(part);&lt;br /&gt;&lt;br /&gt;    var field_expandIndexes = _helper.GetType().BaseType.GetField(&lt;span style="color: #006080"&gt;&amp;quot;_expandIndexes&amp;quot;&lt;/span&gt;, BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.FlattenHierarchy);&lt;br /&gt;    var _expandIndexes = field_expandIndexes.GetValue(_helper);&lt;br /&gt;&lt;br /&gt;    var field_items = _expandIndexes.GetType().GetField(&lt;span style="color: #006080"&gt;&amp;quot;_items&amp;quot;&lt;/span&gt;, BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.FlattenHierarchy);&lt;br /&gt;    var _items = (Hashtable)field_items.GetValue(_expandIndexes);&lt;br /&gt;&lt;br /&gt;    _items.Clear();&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;The code can be improved to a finer detail, but it solves the problem for the moment.&lt;/p&gt;  </description><link>http://feedproxy.google.com/~r/CarstenKeutmann/~3/4FRLAqQLiAQ/webparttoolpart-category-expanded-by.html</link><author>noreply@blogger.com (Carsten Keutmann)</author><thr:total>0</thr:total><feedburner:origLink>http://keutmann.blogspot.com/2012/11/webparttoolpart-category-expanded-by.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-12969685.post-6415398875637391518</guid><pubDate>Wed, 07 Nov 2012 00:22:00 +0000</pubDate><atom:updated>2012-11-06T16:22:27.523-08:00</atom:updated><title>SharePoint Manager 2013 (ver: 1.0.12.1106) released</title><description>&lt;p&gt;SharePoint Manager 2013 (ver: 1.0.12.1106) is now out of beta and official released for SharePoint 2013 RTM. &lt;a href="http://spm.codeplex.com/releases/view/97332"&gt;&lt;u&gt;&lt;font color="#0066cc"&gt;http://spm.codeplex.com/releases/view/97332&lt;/font&gt;&lt;/u&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;The new version has an expanded view of the SharePoint object model and has been tested on SharePoint 2013 RTM.&lt;/p&gt;  &lt;p&gt;As a bonus, the new SharePoint Manager 2013 (ver: 1.0.12.1106) is also available for SharePoint 2010 as a separate download.&lt;/p&gt;  </description><link>http://feedproxy.google.com/~r/CarstenKeutmann/~3/lN5fLGLXBnY/sharepoint-manager-2013-ver-10121106.html</link><author>noreply@blogger.com (Carsten Keutmann)</author><thr:total>1</thr:total><feedburner:origLink>http://keutmann.blogspot.com/2012/11/sharepoint-manager-2013-ver-10121106.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-12969685.post-5110973317835630292</guid><pubDate>Sat, 13 Oct 2012 15:18:00 +0000</pubDate><atom:updated>2012-10-13T08:19:43.673-07:00</atom:updated><title>SharePoint Manager 2013 Beta 2</title><description>&lt;p&gt;Finally I have been able to release a new version of SPM2013, its has not been easy because of the new node system for the SharePoint object model viewer.&lt;/p&gt;  &lt;p&gt;Get it here! &lt;a href="http://spm.codeplex.com/releases/view/91388" target="_blank"&gt;SharePoint Manager 2013 beta 2&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Previously I was working on SharePoint Manager 2010 v2 Alpha, but it has stopped. The reasons was that first of all it was based on WPF GUI and not WinForms. That should have been cool, but it ended up taking a lot of my time, and not focusing on the application. Further more I did not like the feel of the SPM2010 v2 Alpha, because the PropertyGrid component had to be imbedded into the WPF app as a native winform control and the performance of this is not very good. So all in all I decided to scrap the v2 Alpha version and use some of the code in the SPM2013 beta 2 project, specially the node object model classes.&lt;/p&gt;  &lt;p&gt;&lt;u&gt;So what's new in the beta 2?&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Splash Screen with validation rules&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/-3733vrICDjI/UHmFW6DvioI/AAAAAAAAAGQ/YKe9mnB2oFQ/s1600-h/SplashScreen%252520SPM2013%252520Preflight%252520check%25255B10%25255D.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="SplashScreen SPM2013 Preflight check" border="0" alt="SplashScreen SPM2013 Preflight check" src="http://lh6.ggpht.com/-qXIlgalVELU/UHmF1k9-phI/AAAAAAAAAGY/8JKPW_jiK78/SplashScreen%252520SPM2013%252520Preflight%252520check_thumb%25255B8%25255D.png?imgmax=800" width="356" height="94" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;The splash screen has now been fitted with some validation rules to ensure that you are able to run the application. It should help people telling them that they do not have SharePoint installed or do not have admin rights and so on.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Full blown object model&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Full blown node model was a legacy from the SharePoint Manager 2010 v2 Alpha project where nearly all SharePoint objects are represented by a new node model. This was however a much large task getting done than first anticipated and took a lot work to get right. To see the full node model in function, select the menu: “View” –&amp;gt; “Object Model” –&amp;gt; “Full”.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/-qSugY2yGp4M/UHmF2uimu6I/AAAAAAAAAGg/Q-ILgeJycOk/s1600-h/ViewFull%252520SPM2013Beta2%25255B3%25255D.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="ViewFull SPM2013Beta2" border="0" alt="ViewFull SPM2013Beta2" src="http://lh6.ggpht.com/-xXXz5eCmLHk/UHmGViL-IiI/AAAAAAAAAGo/Thwri4SFfmQ/ViewFull%252520SPM2013Beta2_thumb%25255B1%25255D.png?imgmax=800" width="734" height="791" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;The Medium model view is as close to the Beta 1 application as possible.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Base on Managed Extensibility Framework (MEF)&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;The application makes full use of the MEF framework from Microsoft. This will make it very easy for others to extended on the application. The node system fully supports the MEF framework and therefore it will be easy to create separate dll that extends the model without having to recompile the SPM application.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Faster and fewer bugs.&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Because of the new node model, some nodes loads faster now and are able to hold correct focus when refreshing the model. The beta 2 will now only open up one site collection in order to save time and memory. Many of the old bugs from beta 1 has now been done in beta 2, some just disappeared because of change of code.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Enjoy!&lt;/p&gt;  &lt;p&gt;Carsten Keutmann&lt;/p&gt;  </description><link>http://feedproxy.google.com/~r/CarstenKeutmann/~3/oKqt4kcXWK0/sharepoint-manager-2013-beta-2.html</link><author>noreply@blogger.com (Carsten Keutmann)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh6.ggpht.com/-qXIlgalVELU/UHmF1k9-phI/AAAAAAAAAGY/8JKPW_jiK78/s72-c/SplashScreen%252520SPM2013%252520Preflight%252520check_thumb%25255B8%25255D.png?imgmax=800" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://keutmann.blogspot.com/2012/10/sharepoint-manager-2013-beta-2.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-12969685.post-6934158766103746076</guid><pubDate>Thu, 01 Mar 2012 18:49:00 +0000</pubDate><atom:updated>2012-03-01T10:49:02.554-08:00</atom:updated><title>Arctic SharePoint Challenge 2012</title><description>&lt;p&gt;I’m very happy to announce that I will be a jury member on the &lt;a href="http://www.arcticsharepointchallenge.com" target="_blank"&gt;Arctic SharePoint Challenge&lt;/a&gt; this year. (Spinning of the March 22-24th) I think its going to be a blast and a lot of fun &lt;img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-openmouthedsmile" alt="Smiley med åben mund" src="http://lh3.ggpht.com/-EA715WqkibA/T0_EnaKue-I/AAAAAAAAAFc/G1Ry6FxOsvc/wlEmoticon-openmouthedsmile%25255B2%25255D.png?imgmax=800" /&gt;&lt;/p&gt;  &lt;p&gt;What is the ASPC2012? … &lt;/p&gt;  &lt;p&gt;“&lt;a href="https://twitter.com/#!/spchallenge"&gt;&lt;em&gt;#ASPC​&lt;/em&gt;&lt;/a&gt;&lt;em&gt; aims to stimulate collaborative learning, networking and idea generation for participants through hands-on time-limited challenges. We are fiercely competitive, but vastly helpful and extremely sharing (also across teams) realizing that the collective learning is more important than personal gain!&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&lt;em&gt;We are working on the optimal formula for 2012, so the rules are still not forged in stone, but expect something similar to last year, only better/more fun/more awesome.&lt;/em&gt; “&lt;/p&gt;  &lt;p&gt;I’ll also be doing some sessions on Advanced SharePoint Caching for developers, SharePoint Patterns and Practices Guidance and MVP pattern for SharePoint Web-parts. &lt;/p&gt;  </description><link>http://feedproxy.google.com/~r/CarstenKeutmann/~3/1zqcqt0FHn4/arctic-sharepoint-challenge-2012.html</link><author>noreply@blogger.com (Carsten Keutmann)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh3.ggpht.com/-EA715WqkibA/T0_EnaKue-I/AAAAAAAAAFc/G1Ry6FxOsvc/s72-c/wlEmoticon-openmouthedsmile%25255B2%25255D.png?imgmax=800" height="72" width="72" /><thr:total>1</thr:total><feedburner:origLink>http://keutmann.blogspot.com/2012/03/arctic-sharepoint-challenge-2012.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-12969685.post-5294053751376027147</guid><pubDate>Wed, 25 Jan 2012 20:46:00 +0000</pubDate><atom:updated>2012-01-25T12:46:59.641-08:00</atom:updated><title>Using the MVP pattern for SharePoint Web Parts Presentation</title><description>&lt;p&gt;I did a webcast presentation for Adelaide SharePoint User Group this Tuesday. However no recording was made, therefore only the PowerPoint and Demo code is available here: &lt;a href="http://www.keutmann.dk/sharepointblog/mvppresentation.zip" target="_blank"&gt;MVPPresentation.zip&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/-rlmkqGK8pT8/TyBqQKO4btI/AAAAAAAAAFI/quQWzqY99sY/s1600-h/MVPDiagram%25255B4%25255D.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="MVPDiagram" border="0" alt="MVPDiagram" src="http://lh6.ggpht.com/-sxHyGVR75Lk/TyBqQjFTBjI/AAAAAAAAAFM/h6Iv_kdZd70/MVPDiagram_thumb%25255B2%25255D.png?imgmax=800" width="577" height="226" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;MVP Pattern rocks for SharePoint!&lt;/p&gt;  </description><link>http://feedproxy.google.com/~r/CarstenKeutmann/~3/85DKfl8qzL0/using-mvp-pattern-for-sharepoint-web.html</link><author>noreply@blogger.com (Carsten Keutmann)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh6.ggpht.com/-sxHyGVR75Lk/TyBqQjFTBjI/AAAAAAAAAFM/h6Iv_kdZd70/s72-c/MVPDiagram_thumb%25255B2%25255D.png?imgmax=800" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://keutmann.blogspot.com/2012/01/using-mvp-pattern-for-sharepoint-web.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-12969685.post-4260104059308066254</guid><pubDate>Thu, 14 Jul 2011 19:38:00 +0000</pubDate><atom:updated>2011-07-14T12:38:36.989-07:00</atom:updated><title>Push changes from the SharePoint Content hub to a SiteCollection</title><description>&lt;p&gt;When working with the Content hub, you may need the content type you just added to the hub, to be pushed out to a specific site collection immediately. This can be done by activating the timer jobs &lt;a href="http://henrikfromsweden.blogspot.com/2009/12/push-changes-from-content-hub.html" target="_blank"&gt;specified here&lt;/a&gt;, or you can just force an activation of the Feature “TaxonomyFieldAdded” on the target SiteCollection.&lt;/p&gt;  &lt;p&gt;The TaxonomyFieldAdded feature is a site scoped and hidden feature, its job is to enable the site as Content hub receiver and sync up with the hub immediately. Therefore a reactivation of the feature will get the latest changes from the Content hub, and do not take a lot of time waiting for the timer jobs to finish.&lt;/p&gt;  &lt;p&gt;PowerShell:&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New"&gt;Enable-SPFeature &amp;quot;TaxonomyFieldAdded&amp;quot; -url &amp;quot;&lt;/font&gt;&lt;a href="http://mydomain/mySiteCollection/"&gt;&lt;font face="Courier New"&gt;http://mydomain/mySiteCollection/&lt;/font&gt;&lt;/a&gt;&lt;font face="Courier New"&gt;&amp;quot; –force&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;Code: C#&lt;/p&gt; &lt;font size="2" face="Consolas"&gt;&lt;font size="2" face="Consolas"&gt;&lt;font face="Courier New"&gt;&lt;font color="#008000" size="2" face="Consolas"&gt;&lt;font color="#008000" size="2" face="Consolas"&gt;&lt;font color="#008000" size="2" face="Consolas"&gt;             &lt;p&gt;//The FeatureDefinition id of “TaxonomyFieldAdded” is &amp;quot;73ef14b1-13a9-416b-a9b5-ececa2b0604c&amp;quot;. The last “true” is for “Force” feature activation.               &lt;br /&gt;&lt;/p&gt;           &lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;site.Features.Add(&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#0000ff" size="2"&gt;new&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font size="2"&gt; Guid(&lt;/font&gt;&lt;/font&gt;&lt;font color="#a31515" size="2"&gt;&lt;font color="#a31515" size="2"&gt;&lt;font color="#a31515" size="2"&gt;&amp;quot;73ef14b1-13a9-416b-a9b5-ececa2b0604c&amp;quot;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font size="2"&gt;), &lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#0000ff" size="2"&gt;true&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2" face="Consolas"&gt;&lt;font size="2" face="Consolas"&gt;);&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;So this enables the scenario where you can create a Site Feature Receiver that will publish a content type on the content hub, then force the sync to the local site collection and create a list that uses the content type. All within the same receiver and only takes a couple of seconds to execute.&lt;/p&gt;  </description><link>http://feedproxy.google.com/~r/CarstenKeutmann/~3/vhM4OAEFIfc/push-changes-from-sharepoint-content.html</link><author>noreply@blogger.com (Carsten Keutmann)</author><thr:total>0</thr:total><feedburner:origLink>http://keutmann.blogspot.com/2011/07/push-changes-from-sharepoint-content.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-12969685.post-9024173962850163361</guid><pubDate>Mon, 02 May 2011 17:44:00 +0000</pubDate><atom:updated>2011-05-02T10:54:54.827-07:00</atom:updated><title>My Presentation at SharePoint Saturday in Copenhagen (April 30 / 2011)</title><description>&lt;p&gt;I did a presentation on SharePoint Enterprise Development with lots of code in it.&lt;/p&gt;  &lt;p&gt;For anyone that wants the presentation, you can download it from here &lt;a href="http://www.keutmann.dk/sharepointblog/code.zip"&gt;code.zip&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;The zip file contains the PowerPoint presentation and demo code.&lt;/p&gt;  &lt;p&gt;Thank you all for a fantastic SharePoint Saturday in Copenhagen. &lt;/p&gt;  </description><link>http://feedproxy.google.com/~r/CarstenKeutmann/~3/zesZ7IHAI_0/my-presentation-at-sharepoint-saturday.html</link><author>noreply@blogger.com (Carsten Keutmann)</author><thr:total>2</thr:total><feedburner:origLink>http://keutmann.blogspot.com/2011/05/my-presentation-at-sharepoint-saturday.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-12969685.post-6889236715526815003</guid><pubDate>Sat, 22 Jan 2011 17:21:00 +0000</pubDate><atom:updated>2011-01-22T09:21:56.571-08:00</atom:updated><title>SharePoint Manager 2010 v2 in development</title><description>&lt;p&gt;I’m currently working on a new &lt;a href="http://spm.codeplex.com/releases/view/51438" target="_blank"&gt;version (Alpha)&lt;/a&gt; of the SharePoint Manager 2010 application. This new version will be a much more complete view of the SharePoint object model with data. It is based the look and feel of the “old” version, but done with WPF instead of the GDI+ windows form of the old version. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_zaFXHkTIcJ0/TTsSLznVsXI/AAAAAAAAACw/8Ss7tJXJC1s/s1600-h/image%5B3%5D.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh5.ggpht.com/_zaFXHkTIcJ0/TTsSMcpgePI/AAAAAAAAAC0/pSCay4eG34M/image_thumb%5B1%5D.png?imgmax=800" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Because the old version of SPM was done in a rater unplanned manner, the code ended up being a mess and making it harder to update and create new functionality. Therefore I decided to create a new version from the bottom up and do things right from the beginning. This means that the new version supports the MEF (&lt;a href="http://mef.codeplex.com/" target="_blank"&gt;Managed Extensibility Framework 3.5&lt;/a&gt;)&amp;#160; technology from Microsoft. Other applications that supports MEF is Visual Studio 2010 and MEF was included into .NET 4.0, so that shows that the technology is here to stay. MEF is implemented into the core of SPM2010 v2 and therefore enables anyone replace or hook into anything in the application, by just providing there own DLL.&amp;#160; The idea is that this application should be the base for a hole range of tools and functions, that seems as natural part of the application, but is actually just “Add-ins” DLL’s located i the application folder. &lt;/p&gt;  &lt;p&gt;Some of the new features of the v2 will be.&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;MEF support for extensibility. &lt;/li&gt;    &lt;li&gt;Hugh increase of SharePoint objects displayed. &lt;/li&gt;    &lt;li&gt;WPF &lt;/li&gt;    &lt;li&gt;Splash screen. &lt;/li&gt;    &lt;li&gt;Check for SharePoint and user rights on start up. &lt;/li&gt;    &lt;li&gt;Improved Xml text editor with color coding. &lt;/li&gt;    &lt;li&gt;A dynamic Settings system. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;strong&gt;Things that should have been so good, turns out to the worse.&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;WPF is the new presentation framework from Microsoft that will replace the old GDI+ forms technology. This also seems very promising when working directly on the machine, everything still feels quick and snappy. But when using the WPF over a Remote Desktop (RD) the app can slow down because of RD’s lack of support for WPF. Basically RD just transfers the raw bit map when working with WPF where GDI+ is lot faster. Also a major component of SPM2 is the PropertyGrid control that is missing from WPF library and forcing me to include the “old” GDI+ PropertyGrid component into the WPF application, this also slows things down, but on the plus side, at least I known that the PropertyGrid works properly.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Join the project team?&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;The idea of the application is just to provide the basic framework and extend it from there on. Therefore the core team will be kept small, however because of the MEF system, it will be possible to include team members that will provide there own contribution in form of their own DLLs thereby not conflicting with anyone else in the development process. &lt;/p&gt;  &lt;p&gt;So if you like to help out please notify me &lt;a href="mailto:carsten@keutmann.dk"&gt;carsten@keutmann.dk&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Documentation for extending the application      &lt;br /&gt;&lt;/strong&gt;This is always the most funny part of a project so I love to save it for the last thing I do. &lt;img style="border-bottom-style: none; border-right-style: none; border-top-style: none; border-left-style: none" class="wlEmoticon wlEmoticon-winkingsmile" alt="Smiley, der blinker" src="http://lh3.ggpht.com/_zaFXHkTIcJ0/TTsSMsiR77I/AAAAAAAAAC4/wwoQH82eNRU/wlEmoticon-winkingsmile%5B2%5D.png?imgmax=800" /&gt;     &lt;br /&gt;Really… there will be some documentation on how to extend the application and some Visual Studio demo projects and so on, more to come.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Download&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;You can find the new version &lt;a href="http://spm.codeplex.com/releases/view/51438" target="_blank"&gt;here!&lt;/a&gt;&lt;/p&gt;  </description><link>http://feedproxy.google.com/~r/CarstenKeutmann/~3/2lKV6JDrm-s/sharepoint-manager-2010-v2-in.html</link><author>noreply@blogger.com (Carsten Keutmann)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh5.ggpht.com/_zaFXHkTIcJ0/TTsSMcpgePI/AAAAAAAAAC0/pSCay4eG34M/s72-c/image_thumb%5B1%5D.png?imgmax=800" height="72" width="72" /><thr:total>3</thr:total><feedburner:origLink>http://keutmann.blogspot.com/2011/01/sharepoint-manager-2010-v2-in.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-12969685.post-3139975522419331279</guid><pubDate>Mon, 19 Apr 2010 19:48:00 +0000</pubDate><atom:updated>2010-04-19T12:50:25.322-07:00</atom:updated><title>WSPBuilder systems compatibility</title><description>&lt;p style="margin: 0cm 0cm 10pt" class="MsoNormal"&gt;The following table show the compatibility with different systems. The WSPBuilder is a normal console application build in c# .NET. The WSPBuilder Extensions is addon made for Visual Studio, but its still the same console application running in the background when building from Visual Studio. &lt;/p&gt;  &lt;table border="1" cellspacing="0" cellpadding="2" width="499"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="157"&gt;&lt;strong&gt;&lt;font color="#000000"&gt;System&lt;/font&gt;&lt;/strong&gt;&lt;/td&gt;        &lt;td valign="top" width="168" align="center"&gt;&lt;strong&gt;&lt;font color="#000000"&gt;WSPBuilder 0.9.9.0728&lt;/font&gt;&lt;/strong&gt;&lt;/td&gt;        &lt;td valign="top" width="172" align="center"&gt;&lt;strong&gt;&lt;font color="#ffffff"&gt;&lt;font color="#000000"&gt;WSPBuilder 2010*&lt;/font&gt;&lt;/font&gt;&lt;/strong&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="158"&gt;.NET 2.0&lt;/td&gt;        &lt;td valign="top" width="168" align="center"&gt;Yes&lt;/td&gt;        &lt;td valign="top" width="172" align="center"&gt;Yes&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="159"&gt;x32 bit&lt;/td&gt;        &lt;td valign="top" width="168" align="center"&gt;Yes&lt;/td&gt;        &lt;td valign="top" width="171" align="center"&gt;Yes&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="159"&gt;x64 bit&lt;/td&gt;        &lt;td valign="top" width="168" align="center"&gt;Yes&lt;/td&gt;        &lt;td valign="top" width="171" align="center"&gt;Yes&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="159"&gt;All versions of Windows with .NET installed&lt;/td&gt;        &lt;td valign="top" width="168" align="center"&gt;Yes&lt;/td&gt;        &lt;td valign="top" width="171" align="center"&gt;Yes&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="159"&gt;Visual Studio 2005&lt;/td&gt;        &lt;td valign="top" width="168" align="center"&gt;Yes&lt;/td&gt;        &lt;td valign="top" width="171" align="center"&gt;Yes&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="159"&gt;Visual Studio 2008&lt;/td&gt;        &lt;td valign="top" width="168" align="center"&gt;Yes&lt;/td&gt;        &lt;td valign="top" width="171" align="center"&gt;Yes&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="159"&gt;Visual Studio 2010&lt;/td&gt;        &lt;td valign="top" width="168" align="center"&gt;&lt;strong&gt;No&lt;/strong&gt;&lt;/td&gt;        &lt;td valign="top" width="171" align="center"&gt;Yes&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="159"&gt;SharePoint 2007&lt;/td&gt;        &lt;td valign="top" width="168" align="center"&gt;Yes&lt;/td&gt;        &lt;td valign="top" width="171" align="center"&gt;Yes&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="159"&gt;SharePoint 2010&lt;/td&gt;        &lt;td valign="top" width="168" align="center"&gt;&lt;strong&gt;No&lt;/strong&gt;&lt;/td&gt;        &lt;td valign="top" width="172" align="center"&gt;Yes&lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;* Note: WSPBuilder 2010 may still be in beta.&lt;/p&gt;  &lt;p&gt;WSPBuilder 2010 supports all the same systems as the previous WSPBuilder versions, so you can use it for building SharePoint 2007 (Wss 3.0) solutions without any problems.&lt;/p&gt;  </description><link>http://feedproxy.google.com/~r/CarstenKeutmann/~3/Ef8WYunVfbU/wspbuilder-systems-compatibility.html</link><author>noreply@blogger.com (Carsten Keutmann)</author><thr:total>11</thr:total><feedburner:origLink>http://keutmann.blogspot.com/2010/04/wspbuilder-systems-compatibility.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-12969685.post-527359940310352888</guid><pubDate>Mon, 19 Apr 2010 19:15:00 +0000</pubDate><atom:updated>2010-04-19T12:19:55.331-07:00</atom:updated><title>Extract WSP packages with WSPBuilder</title><description>&lt;p&gt;It is possible to extract (unpack) the contents of a WSP package into the file system with use of WSPBuilder. This function currently only supports a full extract of everything, so you have to pick what you need afterwards. The command syntax is:&lt;/p&gt;  &lt;p&gt;WSPBuilder.exe -o extractwsp    &lt;br /&gt;-Filename : (Optional) Define the WSP file to extract. Default is the last created WSP file from the current directory.     &lt;br /&gt;-TargetPath : (Optional) Defines the target path to extract the wsp file in. Default is the current directory.     &lt;br /&gt;-Overwrite : (Optional) Overwrite existing files.&lt;/p&gt;  &lt;p&gt;Example:&lt;/p&gt;  &lt;p&gt;WSPBuilder.exe –o extractwsp –filename mypackage.wsp –overwrite true&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Warning!&lt;/strong&gt; I have not fully tested the ExtractWSP functionality in every possible scenario, so please understand.&lt;/p&gt;  &lt;p&gt;The function is supported from WSPBuilder version 0.9.9.0728 and forward, including the WSPBuilder 2010 versions.&lt;/p&gt;  </description><link>http://feedproxy.google.com/~r/CarstenKeutmann/~3/WhMRc95QsmU/extract-wsp-packages-with-wspbuilder.html</link><author>noreply@blogger.com (Carsten Keutmann)</author><thr:total>2</thr:total><feedburner:origLink>http://keutmann.blogspot.com/2010/04/extract-wsp-packages-with-wspbuilder.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-12969685.post-4615717007666415861</guid><pubDate>Sun, 18 Apr 2010 09:49:00 +0000</pubDate><atom:updated>2010-04-18T02:49:17.734-07:00</atom:updated><title>Project structure for SharePoint</title><description>&lt;p&gt;I made a suggestion on how to create a SharePoint project structure in my &amp;quot;SharePoint Development&amp;quot; presentation at Microsoft Copenhagen back in January, but there is no documentation on it in the PowerPoint presentation.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.keutmann.dk/sharepointblog/SharepointDevelopment.zip"&gt;http://www.keutmann.dk/sharepointblog/SharepointDevelopment.zip&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;In my experience, I find that keeping the number of WSP packages down to a minimum is the easiest thing to managed. Therefore I put all my SharePoint artifacts in one project. Some large SharePoint solutions may require more than one WSP package, but generally not many. I also separate the business logic from the SharePoint project, so it will not be GUI dependent. I use this structure as a general template whenever I create a new Visual Studio solution.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;MyCompany.Framework      &lt;br /&gt;&lt;/b&gt;This project is not specific per solution, but can be used as a library across multiple solutions. This project do not contain any business or SharePoint logic, only clean .NET code. I usually create a lot of.NET Extensions in this project.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;MyCompany.SharePoint.Framework      &lt;br /&gt;&lt;/b&gt;This project is for generally SharePoint related extensions and is still generic across multiple solutions. A lot of .NET SharePoint Extensions is added to this project.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;MyCompany.BusinessModel (or ObjectModel)&lt;/b&gt;     &lt;br /&gt;This project will contain all my business logic and data objects. The project will not contain any UI logic.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;MyCompany.MyProjectName&lt;/b&gt;&lt;b&gt; (SharePoint Project)&lt;/b&gt;     &lt;br /&gt;This is the SharePoint artifact project from where I will build my WSP package by use of WSPBuilder. All the SharePoint webparts, features and so on will be created here. It is usually set to deploy to Global Assembly Cache. However if company policy requires the code to be deploy with Code Access Security (CAS), I will create an additional SharePoint project, so I have one project for the GAC and one for the WebApplications bin folder.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;MyCompany.Test&lt;/b&gt;     &lt;br /&gt;The project for Units tests.&lt;/p&gt;  &lt;p&gt;I do not say that this is the best structure, but I find it as a good template to start from, specially that I can reuse the Framework projects from solution to solution. &lt;/p&gt;  </description><link>http://feedproxy.google.com/~r/CarstenKeutmann/~3/9eq_PngwLps/project-structure-for-sharepoint.html</link><author>noreply@blogger.com (Carsten Keutmann)</author><thr:total>4</thr:total><feedburner:origLink>http://keutmann.blogspot.com/2010/04/project-structure-for-sharepoint.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-12969685.post-7622610243343628455</guid><pubDate>Fri, 16 Apr 2010 06:22:00 +0000</pubDate><atom:updated>2010-04-15T23:22:49.409-07:00</atom:updated><title>Podcast on WSPBuilder</title><description>Hilton Giesenow did this podcast on WSPBuilder with me.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Check it out.&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://www.themossshow.com/2010/04/carsten-keutmann-tells-us-about-wspbuilder/"&gt;http://www.themossshow.com/2010/04/carsten-keutmann-tells-us-about-wspbuilder/&lt;/a&gt;</description><link>http://feedproxy.google.com/~r/CarstenKeutmann/~3/1EZNBYULv9k/podcast-on-wspbuilder.html</link><author>noreply@blogger.com (Carsten Keutmann)</author><thr:total>0</thr:total><feedburner:origLink>http://keutmann.blogspot.com/2010/04/podcast-on-wspbuilder.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-12969685.post-8566733108043546348</guid><pubDate>Thu, 07 Jan 2010 22:35:00 +0000</pubDate><atom:updated>2010-01-07T14:35:11.159-08:00</atom:updated><title>TechTalk on SharePoint Development at Microsoft Copenhagen</title><description>Wednesday I held a TechTalk on SharePoint development at Microsoft Copenhagen. A lot of people attended and it was very nice.&lt;br /&gt;
&lt;br /&gt;
The&amp;nbsp;presentation &lt;a href="http://www.keutmann.dk/sharepointblog/SharepointDevelopment.zip"&gt;Sharepoint Development.pptx&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
A good example of a “Company.SharePoint.Framework” project in Visual Studio. &lt;a href="http://spexlib.codeplex.com/"&gt;http://spexlib.codeplex.com/&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
SharePoint User Group in Denmark &lt;a href="http://www.spbg.dk/"&gt;http://www.spbg.dk/&lt;/a&gt;</description><link>http://feedproxy.google.com/~r/CarstenKeutmann/~3/LBAuPoGTW8o/techtalk-on-sharepoint-development-at.html</link><author>noreply@blogger.com (Carsten Keutmann)</author><thr:total>1</thr:total><feedburner:origLink>http://keutmann.blogspot.com/2010/01/techtalk-on-sharepoint-development-at.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-12969685.post-8438251330335678534</guid><pubDate>Mon, 04 Jan 2010 19:27:00 +0000</pubDate><atom:updated>2010-01-04T11:27:50.581-08:00</atom:updated><title>Renewed as a Microsoft SharePoint Server MVP for another year!</title><description>Just got the e-mail from Microsoft (a little late because the first&amp;nbsp;e-mail must have been eaten by a spam filter or something and therefore never arrived). I’ve been renewed as a Microsoft SharePoint Server MVP for another year!</description><link>http://feedproxy.google.com/~r/CarstenKeutmann/~3/y0cDpyVBhEc/renewed-as-microsoft-sharepoint-server.html</link><author>noreply@blogger.com (Carsten Keutmann)</author><thr:total>3</thr:total><feedburner:origLink>http://keutmann.blogspot.com/2010/01/renewed-as-microsoft-sharepoint-server.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-12969685.post-9219221428103196243</guid><pubDate>Tue, 01 Dec 2009 21:14:00 +0000</pubDate><atom:updated>2009-12-02T13:06:12.552-08:00</atom:updated><title>WSPBuilder 2010 Beta</title><description>&lt;span xmlns=""&gt;&lt;/span&gt;&lt;br /&gt;
I have been working hard for some time now getting WSPBuilder ready for SharePoint 2010 and Visual Studio 2010. The current status is that WSPBuilder now supports fully the new functionality of the wsp package introduced in SharePoint 2010. Also the WSPBuilder Extension for Visual Studio has been undergoing a major overhaul. Especially the Visual Studio Project/Item templates are currently totally rewritten and new templates will be added with new functionality. &lt;br /&gt;
&lt;br /&gt;
Visual Designer is now supported in WSPBuilder 2010 projects. This means that you will able edit your pages (aspx) and user controls (ascx) with the visual designer in Visual Studio. The reason for this is because the WSPBuilder 2010 project template in Visual Studio is now based on the C# WebApplication project template. &lt;br /&gt;
However the special folder types for the Web Application template are not supported and are therefore not added to the project on creation and will have no effect if added later. &lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_zaFXHkTIcJ0/SxWGvfaOKQI/AAAAAAAAACE/_nrIX5NvM-U/s1600/VSSelectItemTemplate.JPG" imageanchor="1" style="cssfloat: left; margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_zaFXHkTIcJ0/SxWGvfaOKQI/AAAAAAAAACE/_nrIX5NvM-U/s640/VSSelectItemTemplate.JPG" yr="true" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;span style="color: #4f81bd; font-size: 9pt;"&gt;&lt;strong&gt;Visual Web Part are now available.&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;
&lt;/div&gt;&lt;span style="color: #4f81bd; font-size: 9pt;"&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div align="left" style="text-align: center;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;div style="text-align: left;"&gt;Backward compatibility with "old" software like SharePoint 2007 and the previous versions of Visual Studio are very important in the WSPBuilder project. Therefore WSPBuilder 2010 will still fully support SharePoint 2007 and Visual Studio 2005 and 2008. Furthermore I was able to keep it all in one installation file regardless of what system you have x86, x86 / SP2007, SP2010 / VS2005, VS2008, 2010, without going on compromise on the functionality. This simply means one installation file fits them 'all. &lt;br /&gt;
&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: left;"&gt;One major change that have been done in WSPBuilder 2010, is the change of 12 hive folder name. It will from now on be called "SharePointRoot" according to the official announcement. The old "12" folder&amp;nbsp;is still&amp;nbsp;supported as normal; actually there is no difference between 12 and SharePointRoot regarding functionality in WSPBuilder. But SharePointRoot is less confusing when targeting SharePoint 2010.&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_zaFXHkTIcJ0/SxWHD9aql3I/AAAAAAAAACM/TnFEqq_YkV8/s1600/WSPBuilderProjectDemo.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_zaFXHkTIcJ0/SxWHD9aql3I/AAAAAAAAACM/TnFEqq_YkV8/s640/WSPBuilderProjectDemo.JPG" yr="true" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;span style="color: #4f81bd; font-size: 9pt;"&gt;&lt;strong&gt;SharePointRoot is the new "12" folder.&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: left;"&gt;Now that WSPBuilder 2010 is able to build both SharePoint 2007 and 2010 packages, it will in the build process display a compatibility statement&amp;nbsp;telling the develop&amp;nbsp;if SharePoint 2007 are still supported or not.&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_zaFXHkTIcJ0/SxWHIgMXPuI/AAAAAAAAACU/sET04Ditrz8/s1600/WSPBuilder2010Console.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_zaFXHkTIcJ0/SxWHIgMXPuI/AAAAAAAAACU/sET04Ditrz8/s640/WSPBuilder2010Console.JPG" yr="true" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;span style="color: #4f81bd; font-size: 9pt;"&gt;&lt;strong&gt;Solution compatibility tells you what version of SharePoint this package is compatibel with and the picture show that only SharePoint 2010 is supported.&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span style="color: black;"&gt;&lt;strong&gt;So when will WSPBuilder 2010 be done?&lt;br /&gt;
&lt;/strong&gt;To quote Blizzard "It's done when it's done!" I'll try to make every beta as much a complete version before releasing it. Currently there are no plans for major changes in the project structure for WSPBuilder, only more functionality and addons. &lt;/span&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;strong&gt;&lt;span style="color: black;"&gt;New features of WSPBuilder 2010&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span style="color: black;"&gt;* Fully supports SharePoint 2010 Beta 2.&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: black;"&gt;* Fully supports SharePoint 2007.&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: black;"&gt;* Manifest.config introduced for managing new functionality of the SharePoint 2010 WSP package schema.&lt;/span&gt;&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;div style="text-align: left;"&gt;&lt;strong&gt;&lt;span style="color: black;"&gt;New features of WSPBuilder Extensions 2010&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;
&lt;strong&gt;&lt;span style="color: black;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/strong&gt;&lt;span style="color: black;"&gt;* Support for Visual Studio 2010 Beta 2.&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: black;"&gt;* Backward support for Visual Studio 2005 and 2008.&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: black;"&gt;* Visual Studio Visual designer supported.&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: black;"&gt;* No need to install Extensions to open the project in Visual Studio.&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: black;"&gt;* Pages and user controls designer editing are now supported.&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: black;"&gt;* Item template "Visual Web Part" has been added.&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: black;"&gt;* Web Part will have custom code added if selected, removing the web part on feature deactivate.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style="color: black;"&gt;&lt;strong&gt;Plans for new features in WSPBuilder Extensions 2010&lt;/strong&gt;&lt;br /&gt;
&lt;/span&gt;&lt;em&gt;&lt;span style="color: black;"&gt;(have not been implemented yet!)&lt;/span&gt;&lt;/em&gt;&lt;br /&gt;
&lt;div style="text-align: left;"&gt;&lt;br /&gt;
&lt;span style="color: black;"&gt;* WSP import project template in Visual Studio.&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: black;"&gt;* Delegate Control item template.&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: black;"&gt;* Layout Page item template.&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: black;"&gt;* New Wizard system for Item templates.&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: black;"&gt;* ...&lt;/span&gt;&lt;span style="color: black;"&gt;and other item templates.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div style="text-align: left;"&gt;&lt;span style="color: black;"&gt;&lt;strong&gt;Important!&lt;br /&gt;
&lt;/strong&gt;Only Visual Studio 2010 Beta 2 is supported. There are no plans to support beta 1.&lt;br /&gt;
&lt;br /&gt;
&lt;/span&gt;&lt;strong&gt;&lt;span style="color: black;"&gt;Known bugs in the Beta 1.2&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;
&lt;span style="color: black;"&gt;Workflow templates in Visual Studio do not work properly. &lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Download&lt;/strong&gt;&lt;br /&gt;
Please look on codeplex under Download. It’s the last file of the 4 available.&lt;br /&gt;
&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;
&lt;a href="http://wspbuilder.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=30858"&gt;http://wspbuilder.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=30858&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/CarstenKeutmann/~3/PotdaNY10kU/wspbuilder-2010-beta.html</link><author>noreply@blogger.com (Carsten Keutmann)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/_zaFXHkTIcJ0/SxWGvfaOKQI/AAAAAAAAACE/_nrIX5NvM-U/s72-c/VSSelectItemTemplate.JPG" height="72" width="72" /><thr:total>21</thr:total><feedburner:origLink>http://keutmann.blogspot.com/2009/12/wspbuilder-2010-beta.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-12969685.post-5480983888466933210</guid><pubDate>Sun, 15 Nov 2009 16:51:00 +0000</pubDate><atom:updated>2009-11-15T08:54:36.075-08:00</atom:updated><title>SharePoint Manager 2010 Release</title><description>&lt;span xmlns=""&gt; &lt;p&gt;My good friend and colleague &lt;a href="http://andersdissing.blogspot.com/"&gt;Anders Dissing&lt;/a&gt; that has taken over the SharePoint Manager project has now released a SharePoint Manager 2010 version on &lt;a href="http://www.codeplex.com/spm"&gt;codeplex&lt;/a&gt;! &lt;/p&gt;&lt;p&gt;Anders blog on: &lt;a href="http://andersdissing.blogspot.com/2009/10/sharepoint-manager-2010-release.html"&gt;SharePoint Manager 2010 Release &lt;/a&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Download &lt;a href="http://spm.codeplex.com/"&gt;here!&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;&lt;/span&gt;</description><link>http://feedproxy.google.com/~r/CarstenKeutmann/~3/4pTRFid-RJs/sharepoint-manager-2010-release.html</link><author>noreply@blogger.com (Carsten Keutmann)</author><thr:total>3</thr:total><feedburner:origLink>http://keutmann.blogspot.com/2009/11/sharepoint-manager-2010-release.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-12969685.post-4685518694997676178</guid><pubDate>Sun, 15 Nov 2009 16:41:00 +0000</pubDate><atom:updated>2009-11-15T08:42:09.992-08:00</atom:updated><title>SharePoint 2010 and WSPBuilder</title><description>&lt;span xmlns=''&gt;&lt;p&gt;A lot of people at the SPC2009 conference asked me about the future of WSPBuilder. Facts are that SharePoint 2010 is under way and the new SharePoint tools for Visual Studio 2010 are going to replace VSeWSS. &lt;br /&gt;&lt;/p&gt;&lt;p&gt;Here some conclusions from the SPC2009 conference. &lt;br /&gt;&lt;/p&gt;&lt;ol&gt;&lt;li&gt;SharePoint tools for Visual Studio 2010 will only support SharePoint 2010.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;SharePoint tools will only support Visual Studio 2010.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Currently there will  be NO new tools for SharePoint 2007 and Visual Studio 2008 (except for the version of VSeWSS 1.3)&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;This means that all the current solutions out there for SharePoint 2007 will still need to depend on a 3&lt;sup&gt;rd&lt;/sup&gt; party tool to get the job done. &lt;br /&gt;&lt;/p&gt;&lt;p&gt;Regarding WSPBuilder, a new version will be release to support the new possibilities in the WSP package for SharePoint 2010. The new version will still provide support for SharePoint 2007 packages, so bug fixes and added functionality will also be available for old 2007 projects. I plan for that WSPBuilder Extensions will support 3 versions of Visual Studio 2005 / 2008 / 2010 in one MSI packaged. &lt;br /&gt;&lt;/p&gt;&lt;p&gt;So WSPBuilder will still be around for a couple more years to support SharePoint 2007. Only time will tell if it will be popular for SharePoint 2010.&lt;br /&gt;&lt;/p&gt;&lt;/span&gt;</description><link>http://feedproxy.google.com/~r/CarstenKeutmann/~3/-3dcVUUBcME/sharepoint-2010-and-wspbuilder.html</link><author>noreply@blogger.com (Carsten Keutmann)</author><thr:total>6</thr:total><feedburner:origLink>http://keutmann.blogspot.com/2009/11/sharepoint-2010-and-wspbuilder.html</feedburner:origLink></item></channel></rss>
