﻿<?xml version="1.0" encoding="UTF-8"?>
<!--RSS generated by Microsoft SharePoint Foundation RSS Generator on 6/18/2013 3:36:29 AM -->
<?xml-stylesheet type="text/xsl" href="/Blog/_layouts/RssXslt.aspx?List=6b52d069-ff15-4bf8-a157-faf92c9401b4" version="1.0"?>
<rss version="2.0">
  <channel>
    <title>Blog: Posts</title>
    <link>http://www.synergyonline.com/Blog/Lists/Posts/AllPosts2.aspx</link>
    <description>RSS feed for the Posts list.</description>
    <lastBuildDate>Tue, 18 Jun 2013 07:36:29 GMT</lastBuildDate>
    <generator>Microsoft SharePoint Foundation RSS Generator</generator>
    <ttl>60</ttl>
    <language>en-US</language>
    <image>
      <title>Blog: Posts</title>
      <url>http://www.synergyonline.com/Blog/_layouts/images/siteIcon.png</url>
      <link>http://www.synergyonline.com/Blog/Lists/Posts/AllPosts2.aspx</link>
    </image>
    <item>
      <title>Working with File Upload Size Limitations</title>
      <link>http://www.synergyonline.com/Blog/Lists/Posts/ViewPost.aspx?ID=136</link>
      <description><![CDATA[<div><b>Body:</b> <div class="ExternalClass8109D449C3A4492B92C59A4624F3F7C1"> <p><font size="2">As a document management platform, SharePoint provides a number of useful features such as check-in, check-out and version control. One of SharePoint's basic document management settings is the maximum file size that can be stored. This value is set within SharePoint Central Administration (Application Management Tab <span style="font-family:wingdings">à</span> SharePoint Web Application Management) as shown here: </font></p>
 <p><img src="/Blog-Original/blog-moss/Lists/Photos/062608_2129_Workingwith1.png" alt="" />  </p>
 <p><font size="2">The 50MB size as you see is the default value and applies to the web application you've selected. What you may not realize is increasing this default will not work in all cases. For example, if you set the maximum to 75MB and then try to upload a 60MB file as an attachment to a list, you'll get the not-to-helpful &quot;unexpected error&quot; message: </font></p>
 <p><font size="2"><img src="/Blog-Original/blog-moss/Lists/Photos/062608_2129_Workingwith2.png" alt="" /> </font> </p>
 <p><font size="2">The same file will upload correctly to a document library, however. You might be curious why the max seems to apply to libraries but not lists. At least I was, so I did a little investigation. My first test was to verify that the maximum does actually apply to both list attachments and library files. So I set the maximum upload size to 20MB and tried to upload a 25MB file to both a library and a list. It failed in both cases. Ok, so the max setting seems to work in some cases. </font></p>
 <p><font size="2">It was at this point that I remembered that ASP.NET also enforces a maximum amount when posting to the server. This is controlled inside the web.config file by the maxRequestLength attribute for the &lt;httpRuntime&gt; element. So I opened up the web.config and found this value: </font></p>
 <p><span style="font-family:'courier new'"><font size="2">&lt;httpRuntime maxRequestLength=&quot;51200&quot; /&gt; </font></span></p>
 <p><font size="2">The 51200 value is the max number of KB allowed which equals 50MB. This means that ASP.NET prevents any file posted that is larger than 50MB. Interesting. Now I was really curious and still asked the question, &quot;How come it works for a document library?&quot; I got my answer when I noticed the upload.aspx application page comes from the _layouts virtual directory. This folder (by default, C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\LAYOUTS) has its own web.config file that can override the default web.config settings for the web application. Sure enough, this file had a different value for this page as shown here: </font></p>
 <p><span style="font-family:'courier new'"><font size="2">&lt;location path=&quot;upload.aspx&quot;&gt;<br /></font></span><span style="font-family:'courier new'"><font size="2">  &lt;system.web&gt;<br /></font></span><span style="font-family:'courier new'"><font size="2">    &lt;httpRuntime maxRequestLength=&quot;2097151&quot; /&gt; <br /></font></span><font size="2"><span style="font-family:'courier new'">  &lt;/system.web&gt;<br /></span><span style="font-family:'courier new'">&lt;/location&gt; </span></font></p>
 <p><font size="2">This is how the upload page gets around the maximum imposed by all pages inside the web application. </font></p>
 <p><font size="2">So, the lesson learned is that if you will be using large attachments inside a list item, you must also increase the maxRequestLength inside the web.config for the web application. When I did this, the behavior for both list and library file uploads was the same.</font></p></div></div>
<div><b>Published:</b> 6/26/2008 4:25 PM</div>
<div><b>Author:</b> <a href="http://www.synergyonline.com/company/Profiles/Pages/RandyWilliams.aspx">Randy Williams</a></div>
<div><b>PageKeywords:</b> sharepoint branding, SharePoint Development, sharepoint training</div>
<div><b>PageTitle:</b> SharePoint Synergy Blog - Working with File Upload Size Limitations</div>
<div><b>PageDescription:</b> As a document management platform, SharePoint provides a number of useful features such as check-in, check-out and version control. One of SharePoint&#39;s basic document management settings is the maximum file size that can be stored... </div>
]]></description>
      <author>System Account</author>
      <pubDate>Fri, 05 Aug 2011 20:25:29 GMT</pubDate>
      <guid isPermaLink="true">http://www.synergyonline.com/Blog/Lists/Posts/ViewPost.aspx?ID=136</guid>
    </item>
    <item>
      <title>Reusable Content and Custom Columns</title>
      <link>http://www.synergyonline.com/Blog/Lists/Posts/ViewPost.aspx?ID=137</link>
      <description><![CDATA[<div><b>Body:</b> <div class="ExternalClassDB44583D1E4846779AFB609734AA2AE3"> <p style="text-align:justify">The Reusable Content List is available at the top level of the Collaboration Portal and Publishing Portal template. The idea is create content in one location that can then be used consistently across a site collection. If an update is required, you simply update the content in the Reusable Content list and that update will then be reflected everywhere across the site collection that the content has been inserted. This seems pretty straight-forward at first glance, but can prove to be a little tricky without a clear understanding of how it works. </p>
 <p style="text-align:justify"><img align="right" src="/Blog-Original/blog-moss/Lists/Photos/062608_2126_ReusableCon1.jpg" alt="" />The first thing to understand is that Reusable Content is unique to the Publishing feature in MOSS. It can only be leveraged in Publishing sites and pages because it is available in only in the Page Content Field, one of the out-of-the-box columns available in Article Page and Welcome Page page layout content types. </p>
 <p style="text-align:justify">Many people mistakenly assume that Reusable Content can be leveraged in the Content Editor Web part, but a quick look at the WYSIWYG toolbars shows that this is not the case. </p>
 <p style="text-align:center"> </p>
 <div style="text-align:center"> <table border="0" style="border-collapse:collapse"> <colgroup> <col style="width:204px" /> <col style="width:434px" /></colgroup> <tbody valign="top"> <tr> <td style="border-bottom-color:black;border-bottom-width:0.5pt;border-bottom-style:solid;border-left-color:black;border-left-width:0.5pt;border-left-style:solid;padding-left:7px;padding-right:7px;border-top-color:black;border-top-width:0.5pt;border-top-style:solid;border-right-color:black;border-right-width:0.5pt;border-right-style:solid"> <p style="text-align:center"><em>Rich text editor for the Content Editor Web Part with no Reusable Content icon:</em></p></td>
 <td style="border-bottom-color:black;border-bottom-width:0.5pt;border-bottom-style:solid;border-left-width:medium;border-left-style:none;border-left-color:initial;padding-left:7px;padding-right:7px;border-top-color:black;border-top-width:0.5pt;border-top-style:solid;border-right-color:black;border-right-width:0.5pt;border-right-style:solid"> <p style="text-align:center"><em>Rich text editor for a Page Content Field with Reusable Content icon:</em></p></td></tr>
 <tr> <td style="border-bottom-color:black;border-bottom-width:0.5pt;border-bottom-style:solid;border-left-color:black;border-left-width:0.5pt;border-left-style:solid;padding-left:7px;padding-right:7px;border-top-width:medium;border-top-style:none;border-top-color:initial;border-right-color:black;border-right-width:0.5pt;border-right-style:solid"> <p style="text-align:center"><img src="/Blog-Original/blog-moss/Lists/Photos/062608_2126_ReusableCon2.jpg" alt="" /> </p></td>
 <td style="border-bottom-color:black;border-bottom-width:0.5pt;border-bottom-style:solid;border-left-width:medium;border-left-style:none;border-left-color:initial;padding-left:7px;padding-right:7px;border-top-width:medium;border-top-style:none;border-top-color:initial;border-right-color:black;border-right-width:0.5pt;border-right-style:solid"> <p style="text-align:center"><img src="/Blog-Original/blog-moss/Lists/Photos/062608_2126_ReusableCon3.png" alt="" /> </p></td></tr></tbody></table></div>
 <p style="text-align:center"> </p>
 <p style="text-align:justify"> </p>
 <p style="text-align:justify">So the question most Web Designers ask me is &quot;How can I use Reusable Content in multiple locations on my page layout?&quot; The answer lies in creating custom columns and attaching them to a Page Layout Content Type. You'll need a custom column for each location in which you plan to leverage Reusable Content on your page. So, if you want a copyright notice at the bottom of your page, create a column for the copyright notice. If you want a &quot;Contact Us&quot; field on each page, create a ContactUs field to place on your page. </p>
 <p style="text-align:justify">To create custom columns for your reusable content, navigate to the top level of the site collection and select <strong>Site Actions <span style="font-family:wingdings">à</span> Site Settings <span style="font-family:wingdings">à</span> Modify All Site Settings</strong>. On the Site Settings Page select <strong>Site columns </strong>under Galleries then click <strong>Create</strong>. Give your column an appropriate name such as Copyright or ContactUs. </p>
 <p style="text-align:justify">Now here is the critical part. Under &quot;The type of information in this column is:&quot; select <strong>Full HTML content with formatting and constraints for publishing</strong>. This will give you the Rich text editor options as shown above. </p>
 <p style="text-align:justify"><img align="left" src="/Blog-Original/blog-moss/Lists/Photos/062608_2126_ReusableCon4.jpg" alt="" /> </p>
 <p style="text-align:justify"> </p>
 <p style="text-align:justify">Finally, return to the Site Settings page (<strong>Site Actions <span style="font-family:wingdings">à</span> Site Settings <span style="font-family:wingdings">à</span> Modify All Site Settings</strong>) and select <strong>Site content types</strong>. Click on the content type you are using for your page layouts and under Columns select <strong>Add from existing site columns</strong>. Select your new custom column from the Available columns list, click <strong>Add</strong> then click <strong>OK</strong>. Add any additional columns you created for your page layouts. </p>
 <p style="text-align:justify">Best practice is to create a custom content type for your custom page layouts and add your custom columns to that custom content type …. but that my friends is a subject for another blog. </p></div></div>
<div><b>Category:</b> <a onclick="OpenPopUpPage('http://www.synergyonline.com/Blog/_layouts/listform.aspx?PageType=4&ListId={BEBD6B7C-8EDF-4976-8627-9238AFF8A903}&ID=8&RootFolder=*', RefreshPage); return false;" href="http://www.synergyonline.com/Blog/_layouts/listform.aspx?PageType=4&ListId={BEBD6B7C-8EDF-4976-8627-9238AFF8A903}&ID=8&RootFolder=*">Web Content Management</a>; <a onclick="OpenPopUpPage('http://www.synergyonline.com/Blog/_layouts/listform.aspx?PageType=4&ListId={BEBD6B7C-8EDF-4976-8627-9238AFF8A903}&ID=5&RootFolder=*', RefreshPage); return false;" href="http://www.synergyonline.com/Blog/_layouts/listform.aspx?PageType=4&ListId={BEBD6B7C-8EDF-4976-8627-9238AFF8A903}&ID=5&RootFolder=*">Design</a></div>
<div><b>Published:</b> 6/26/2008 4:25 PM</div>
<div><b>Author:</b> <a href="http://www.synergyonline.com/company/Profiles/Pages/RandyWilliams.aspx">Randy Williams</a></div>
<div><b>PageKeywords:</b> SharePoint Development, SharePoint Expert, Sharepoint Installation</div>
<div><b>PageTitle:</b> Synergy SharePoint Blog - Reusable Content and Custom Columns</div>
<div><b>PageDescription:</b> The Reusable Content List is available at the top level of the Collaboration Portal and Publishing Portal template. The idea is create content in one location that can then be used consistently across a site collection.</div>
]]></description>
      <author>System Account</author>
      <category>Web Content Management; Design</category>
      <pubDate>Fri, 05 Aug 2011 20:26:08 GMT</pubDate>
      <guid isPermaLink="true">http://www.synergyonline.com/Blog/Lists/Posts/ViewPost.aspx?ID=137</guid>
    </item>
    <item>
      <title>Can Interactive Website Design be Implemented in Single Page?</title>
      <link>http://www.synergyonline.com/Blog/Lists/Posts/ViewPost.aspx?ID=267</link>
      <description><![CDATA[<div><b>Body:</b> <div class="ExternalClassD9F43574ACC549A68EC83E432BEA097F"><p style="text-align:justify">It is safe to say not every type of website is appropriate for a single page design. However, for websites such as portfolio displays or with limited content, it’s a simple way to communicate your content.  </p>
<p style="text-align:justify">Knowing whether you need a multiple or single page site can be as simple as asking yourself the purpose of your site. For example, is it to promote an event, or sell a single product or service? You’re probably better off with a single page, with its simple, easy to find content. But if you have multiple products or services, multiple events, and/or lots of content, it would be better to have several pages to separate out your content.  </p>
<h3 style="text-align:justify"><font style="font-weight:bold">Benefits and Drawbacks to Single page design.</font></h3>
<div style="text-align:justify"> </div>
<p style="text-align:justify"><strong>Benefits </strong> </p>
<p style="text-align:justify">A single page site puts everything you need in one place, no wasting time looking for things, which is a major benefit when the consumer is mobile or in a hurry.  </p>
<p style="text-align:justify">Another great benefit to a single page website is a faster, more responsive navigation. Going to another area of the same page loads faster and is more responsive, since the navigation doesn’t have to go to a separate page and load content. </p>
<p style="text-align:justify">Although it won’t necessarily help your search engine ranking to have a single page website, it will help in making optimization easier. One-page sites are typically cheaper to host as they require less bandwidth and space.  </p>
<p style="text-align:justify"><b>Drawbacks</b> </p>
<p style="text-align:justify">If not properly optimized, the page can take as long to load as a multi-page site; the extra load time may discourage users. If your design is not well thought out and creative, the site will appear to be unprofessional.  </p>
<h3 style="text-align:justify"><b>Ways to navigate a single page design.</b></h3>
<div style="text-align:justify"> </div>
<p style="text-align:justify"><b></b> </p>
<p style="text-align:justify">Previously, single page sites were limited to Adobe Flash designs, or had hefty amounts of scrolling. Now, with the introduction of HTML5 and CSS3, designers have a whole new world of options.  </p>
<p style="text-align:justify">Right now, single page designs typically scroll from side to side or up and down. Although they have a navigation bar you can click through unlike typical links where it takes you to a separate page, when you click a link on this bar it will take you to the appropriate scroll length on the same page.  </p>
<p style="text-align:justify">A popular way to create this single page design, but give it the feel of a multiple page design is to create each section with a separate but similar design. This way you click from one piece of content to the next, and you get a slightly different feel even though you’re on the same page.  </p>
<p style="text-align:justify">Here are some examples of single page designs using various interactive design elements: </p>
<p style="text-align:justify"><a href="http://www.telework2014.co/Paginas/default.aspx" target="_blank">Telework site</a> is a great example of what can be achieved when combining interactive design with SharePoint 2010. As a result – a beautifully designed, straight to the point website. </p>
<p><div style="text-align:center"><img src="/Blog/PublishingImages/Telework%20SharePoint.png" alt="Telework SharePoint.png" style="margin:5px;width:600px;height:354px" /> </div> </p>
<p style="text-align:justify"><a href="http://festaitalianafrederick.com/" target="_blank">The Festa Italiana site</a> is a perfect example of the use of the single page design when having a small amount of content. An annual pasta festival, the site uses fun colors and bold fonts to increase conversion rates. The format of the single page designed in the standard navigation bar becomes fixed at the top of the page, directing you vertically down the page to where you need to be. </p>
<p style="text-align:justify"><div style="text-align:center"><img src="/Blog/PublishingImages/Italiana.png" alt="Italiana.png" style="margin:5px;width:600px;height:430px" /> </div> </p>
<p style="text-align:justify">This <a href="http://mypizzaoven.nl/#data-home" target="_blank">pizza restaurant</a> takes the single page design to the next level. It does so by creating links that are pictures which take you in all kinds of directions, while still giving you the left hand minimalistic navigation bar. This design is highly interactive and engaging for the viewer, and still only being one page.  </p>
<p style="text-align:justify"><div style="text-align:center"><img src="/Blog/PublishingImages/Pizza.png" alt="Pizza.png" style="margin:5px;width:600px;height:498px" /> </div> </p>
<p style="text-align:justify">Another option for single page navigation is a carousel or slider. A carousel is a web part, which allows the user to click through images, typically from left to right. Each slide can hold a plethora of information, links and images, without increasing the number of pages needed for the content. A typical slider has 3-5 slides, sometimes more. It’s important not to add too many slides to the carousel so you don’t increase the load time and page size.  </p>
<p style="text-align:center"><div><a href="http://wowslider.com/web-photo-gallery-subway-basic.html" target="_blank" title="Wow slider"><img src="/Blog/PublishingImages/Wow%20Slider.png" alt="Wow Slider.png" style="margin:5px;width:600px;height:442px" /></a> </div> </p>
<p style="text-align:justify">A drop down from the top provides another interactive way to hide content, yet keep the site limited to a single page. <a href="http://www.restaurant-anousdeux.fr/" target="_blank">This website</a> has four drop down web parts which hold all the content. This to me is a very different and cool concept. The downside of this design is it can be confusing to people who aren’t used to newer trends in websites. Without the typical navigation bar to direct a user where to go it, can be confusing.  </p>
<p style="text-align:justify"><div style="text-align:center"><img src="/Blog/PublishingImages/Restaurant%20ND.png" alt="Restaurant ND.png" style="margin:5px;width:600px;height:498px" /> </div> </p>
<p style="text-align:justify"><a href="http://www.buchholzer-catering.de/" target="_blank">Buchholzer catering</a> has a really fun single page design with loads of color and moving images. I think the most interesting part of the site is the contact form that uses a Google maps plug in to show the viewer exactly where they’re located. The map is interactive, so you can move it around and find where you are in relation to them as well. The contact form also has a fun design with bold fonts and is inside of a circle, which is rarely seen. The site has a fixed navigation on the right hand side, which, I feel, at times is hard to see but scrolling through the site is fun with this design.  </p>
<p style="text-align:justify"><div style="text-align:center"><img src="/Blog/PublishingImages/Buchh.png" alt="Buchh.png" style="margin:5px;width:600px;height:427px" /> </div> </p>
<p style="text-align:justify">Although there are many interactive options when adding content to a single page website, it is important to remember that adding multiple hidden areas of content with these options can create a slower loading speed. This can affect the number of views your page will ultimately receive.  </p>
<h3 style="text-align:justify"><font style="font-weight:bold">My Opinion</font></h3>
<div style="text-align:justify"> </div>
<p style="text-align:justify"><b></b> </p>
<p style="text-align:justify">In my opinion, the single page website has far more pros than cons when being used for sites with limited content. The more familiar I become with this style, the more I’m sure I will keep it in mind for future projects. With the tools, which have come out in recent years, with more to come, I believe the single page design will become more and more popular.  </p>
<p style="text-align:justify">Are you a fan of single page website awesomeness? What do you think makes it more interactive? </p></div></div>
<div><b>Category:</b> <a onclick="OpenPopUpPage('http://www.synergyonline.com/Blog/_layouts/listform.aspx?PageType=4&ListId={BEBD6B7C-8EDF-4976-8627-9238AFF8A903}&ID=5&RootFolder=*', RefreshPage); return false;" href="http://www.synergyonline.com/Blog/_layouts/listform.aspx?PageType=4&ListId={BEBD6B7C-8EDF-4976-8627-9238AFF8A903}&ID=5&RootFolder=*">Design</a>; <a onclick="OpenPopUpPage('http://www.synergyonline.com/Blog/_layouts/listform.aspx?PageType=4&ListId={BEBD6B7C-8EDF-4976-8627-9238AFF8A903}&ID=13&RootFolder=*', RefreshPage); return false;" href="http://www.synergyonline.com/Blog/_layouts/listform.aspx?PageType=4&ListId={BEBD6B7C-8EDF-4976-8627-9238AFF8A903}&ID=13&RootFolder=*">SharePoint</a></div>
<div><b>Published:</b> 6/11/2013 3:15 PM</div>
<div><b>Author:</b> <a href="http://www.synergyonline.com/company/Profiles/Pages/BridgetWorkman.aspx">Bridget Workman</a></div>
<div><b>PageKeywords:</b> sharepoint branding, interactive webdesign</div>
<div><b>PageTitle:</b> Can Interactive Website Design be Implemented in Single Page?</div>
<div><b>PageDescription:</b> It is safe to say not every type of website is appropriate for a single page design. However, for websites such as portfolio displays or with limited content, it’s a simple way to communicate your content.</div>
]]></description>
      <author>System Account</author>
      <category>Design; SharePoint</category>
      <pubDate>Tue, 11 Jun 2013 19:03:56 GMT</pubDate>
      <guid isPermaLink="true">http://www.synergyonline.com/Blog/Lists/Posts/ViewPost.aspx?ID=267</guid>
    </item>
    <item>
      <title>Don't Let Errors Slow You Down! An Easy Way to Write Complex SharePoint CALM Queries. (Update)</title>
      <link>http://www.synergyonline.com/Blog/Lists/Posts/ViewPost.aspx?ID=266</link>
      <description><![CDATA[<div><b>Body:</b> <div class="ExternalClassEEEBA246AFE742D0B708847EE7830A84"><div class="ExternalClass0B45A7E02ED843BD89D8A07F3848598E" style="text-align:justify"><p>In my previous article <a href="/Blog/Lists/Posts/Post.aspx?ID=217">An Easy Way to Write Complex CAML Queries</a> we showed you how to create complex CAML queries but we did not address an issue, which is writing CAML “by hand”. Writing CAML without using an API can lead to runtime errors which are tough to debug. It is very easy to skip a “&gt;” symbol or get the data type a field wrong.  </p>
<p>Fortunately CAML.NET is here to help. CAML.NET project is a set of .NET language-based tools for creating dynamic, reusable CAML query components. CAML.NET leverages the power and flexibility of the .NET Common Language Runtime (CLR) to build CAML queries dynamically in code while preserving the syntactic structure of the native CAML language. </p>
<p>You do need to do couple of things to get started </p>
<p>1. Download the project from this location <a href="http://camldotnet.codeplex.com/" target="_blank">http://camldotnet.codeplex.com/</a> </p>
<p>2. Add the assembly to your project reference  </p>
<p>3. Import the namespace JohnHolliday.Caml.Net; at the top of your cs file and now you are ready to use CAML.NET </p>
<p>Here are few of the queries that you can create. </p>
<p>Please view <a href="/Blog/Documents/3Queries.txt"><img class="ms-asset-icon ms-rtePosition-4" src="/Blog/_layouts/images/ictxt.gif" alt="3Queries.txt" />3Queries.txt</a>.  </p>
<p>When you need to pass the CAML query to the SPQuery object you can use the ToString method on your “CamlQuery” object. </p>
<p>To recap the advantages of using CAML.NET over writing CAML are </p>
<ol><div> </div>
<li>Avoids hand-editing of literal XML strings in your code. </li>
<li>Eliminates query failures caused by typos and improper casing of elements and attributes. </li>
<li>Each query component is processed as a separate statement with strongly-typed parameters. </li>
<li>Enables the use of variables instead of literal text to specify query components. </li>
<li>Visual Studio intellisense support while writing queries.</li></ol></div></div></div>
<div><b>Category:</b> <a onclick="OpenPopUpPage('http://www.synergyonline.com/Blog/_layouts/listform.aspx?PageType=4&ListId={BEBD6B7C-8EDF-4976-8627-9238AFF8A903}&ID=4&RootFolder=*', RefreshPage); return false;" href="http://www.synergyonline.com/Blog/_layouts/listform.aspx?PageType=4&ListId={BEBD6B7C-8EDF-4976-8627-9238AFF8A903}&ID=4&RootFolder=*">Development</a>; <a onclick="OpenPopUpPage('http://www.synergyonline.com/Blog/_layouts/listform.aspx?PageType=4&ListId={BEBD6B7C-8EDF-4976-8627-9238AFF8A903}&ID=13&RootFolder=*', RefreshPage); return false;" href="http://www.synergyonline.com/Blog/_layouts/listform.aspx?PageType=4&ListId={BEBD6B7C-8EDF-4976-8627-9238AFF8A903}&ID=13&RootFolder=*">SharePoint</a></div>
<div><b>Published:</b> 6/5/2013 2:32 PM</div>
<div><b>Author:</b> <a href="http://www.synergyonline.com/company/Profiles/Pages/JaiKirdatt.aspx">Jai Kirdatt</a></div>
<div><b>PageKeywords:</b> SharePoint Branding, SharePoint Design, SharePoint Development</div>
<div><b>PageTitle:</b> Don&#39;t Let Errors Slow You Down! An Easy Way to Write Complex SharePoint CALM Queries. (Update)</div>
<div><b>PageDescription:</b> SharePoint: In my previous article An Easy Way to Write Complex CAML Queries we showed you how to create complex CAML queries but we did not address an issue, which is writing CAML “by hand”. Writing CAML without using an API can lead to runtime errors...</div>
]]></description>
      <author>System Account</author>
      <category>Development; SharePoint</category>
      <pubDate>Wed, 05 Jun 2013 18:07:45 GMT</pubDate>
      <guid isPermaLink="true">http://www.synergyonline.com/Blog/Lists/Posts/ViewPost.aspx?ID=266</guid>
    </item>
    <item>
      <title>Tips, Secret Locations, and how I know so much about Microsoft Office (or at least, how I look like I do)</title>
      <link>http://www.synergyonline.com/Blog/Lists/Posts/ViewPost.aspx?ID=265</link>
      <description><![CDATA[<div><b>Body:</b> <div class="ExternalClassB2508577EC86476EAA24038C7045D268"><p align="justify">I seem to be hearing more frequently from my SharePoint consultants, and clients I’ve trained in Microsoft Office, because they remember I showed them how to do something, but now it’s long forgotten. I understand why. Most of us only use a small fraction of the features available in the Office programs, so remembering those shortcuts isn’t always easy. </p>
<p align="justify">When they call me, and I don’t remember how to do what they need, I usually say “Can I call you back in 10 minutes? I need to refresh my memory.” I’m about to tell you where that memory refresh is located.  </p>
<p align="justify">I wish it was just a simple link, or a button you could push to get the information. But my ‘memory refresh’ isn’t just one place. There are several places I go to when I can’t remember the tip/trick/answer off the top of my head.  </p>
<h3 align="justify"><font style="font-weight:bold">Well, of course you would look here.</font></h3>
 <p align="justify"><u>Google/Bing/DuckDuckGo/Your favorite search engine</u></p>
 <p align="justify">The easiest, and sometimes fastest, way to find the answer is looking for it on a search engine. Can’t remember how to set a Style in Word? Type in ‘Set style in Word 2013 (or 2010, or 2003)’ and you’ll get a bunch of answers. Sometimes, they’re good. Sometimes, not so much. But for simple questions, a search engine is usually the best way. </p>
<p align="justify"><u>Microsoft Support</u></p>
 <p align="justify">When you use a search engine, most of the time, the answer linked to a Microsoft site will be in the first five on the list. Every product in the Microsoft Office universe has a support page at the <a href="http://office.microsoft.com/en-us/" target="_blank">Office site</a>. Click Support at the top of the page and, from the drop down, you can pick a specific product (Word, Excel, PowerPoint, Access, Outlook, OneNote, etc.), type in a question and hit search.  </p>
<p align="justify"></p>
<div style="text-align:center"><img src="/Blog/PublishingImages/Microsoft%20Office%20Support.png" alt="Microsoft Office Support.png" style="margin:5px;width:500px;height:326px" /> </div>
<p></p>
<p align="justify">For example, I put in Create a Template in PowerPoint and the answers it returned were for versions from 2003 to 2013. </p>
<p align="justify"></p>
<div style="text-align:center"><img src="/Blog/PublishingImages/Microsoft%20Office%20Support%20Results.png" alt="Microsoft Office Support Results.png" style="margin:5px;width:500px;height:313px" /> </div>
<p></p>
<p align="justify">This may take a little longer to sort through, but it’s just as fast as the search engines with more accurate results most of the time. </p>
<p align="justify">There are also links for free training for various items, including “Making the switch to Word 2013” or “Work with Excel drop-down lists”. <a href="http://office.microsoft.com/en-us/support/training-FX101782702.aspx" target="_blank">A breakout of training by product</a> is listed here as well.  </p>
<h3 align="justify"><font style="font-weight:bold">It makes sense you would look here.</font></h3>
 <p align="justify"><u>Office webinars and Blog</u></p>
 <p align="justify">My second line of defense for my memory lapses is another Microsoft site. There’s a wonderful series of webinars produced by Microsoft, called <a href="http://aka.ms/offweb" target="_blank">The Office 15-Minute Webinars</a>. Every Tuesday at 9:15 a.m. Pacific Time, staff from Microsoft.com conduct a different webinar on some Office product or feature. In the past, these have included “<a href="http://blogs.office.com/b/microsoft-excel/archive/2013/03/11/office-15-minute-webinar-5-things-about-freezing-panes-in-excel.aspx" target="_blank">Freeze and lock Excel panes</a>”, “<a href="http://blogs.office.com/b/microsoft-access/archive/2012/11/05/office-webinar-what-is-access-preview-access-2013.aspx" target="_blank">What is Access?</a>” and “<a href="http://blogs.office.com/b/microsoft-outlook/archive/2013/03/18/office-15-minute-webinar-sharing-calendars-outlook.aspx" target="_blank">Sharing calendars in Outlook</a>”. </p>
<p align="justify">There are many, many more of these webinars. You can find a list of past webinars, with a link to the webinar recording, or see what’s coming up in the next few weeks at the site.  </p>
<p align="justify">While the recordings are great, attending the webinars is even better. There is a Q&amp;A session at the end where I (sometimes) get more information than in the webinar itself. If the upcoming webinar is something you think you know well, join in anyway. Inevitably, I learn something new with each one. (And then I try to pass it on to my clients, and to you on the <a></a><a href="/Blog/Pages/DebbieZotian-Blog.aspx">blog</a>). </p>
<p align="justify"><a href="http://blogs.office.com/" target="_blank">The Office Blogs site</a> has an Application Blogs drop down. From there, you can get to the various articles on Outlook, PowerPoint, Access, Office365, even SharePoint. Once you’re in an application blog, there will be links to articles as well as RSS feeds on specific versions of the product (Outlook 2013, Outlook 2010, etc.). There are even links to the above mentioned webinars in the product specific areas. </p>
<p align="justify"></p>
<div style="text-align:center"><img src="/Blog/PublishingImages/Microsoft%20Office%20Blog.png" alt="Microsoft Office Blog.png" style="margin:5px;width:500px;height:196px" /> </div>
<p></p>
<p align="justify"><u>Microsoft TechNet Knowledge Base </u></p>
 <p align="justify">For a more technical search, use the <a href="http://technet.microsoft.com/en-gb/ms772425.aspx" target="_blank">Microsoft TechNet Knowledge Base</a>. The responses here will be more technical than the ones above, but sometimes that’s what you need, especially if there’s been a fix of some kind for the product. </p>
<p align="justify"></p>
<div style="text-align:center"><img src="/Blog/PublishingImages/Microsoft%20TechNet%20Knowledge%20Base.png" alt="Microsoft TechNet Knowledge Base.png" style="margin:5px;width:500px;height:338px" /> </div>
<p></p>
<p align="justify">You may need to create a login to see some of the information. If your company is a member of the Microsoft Partner Network or has a license agreement with Microsoft for Office, you may have a company login available. Check with your IT department. </p>
<h3 align="justify"><font style="font-weight:bold">Wait, you use what?</font></h3>
 <p align="justify">The last few may raise a few eyebrows. In ‘olden days’, these were the go-to way to find the answers. Now, they seem to be forgotten, but they’re still valid locations to find information. </p>
<p align="justify"><u>F1/?/Help</u></p>
 <p align="justify">Yes, the program’s help system. And why not? Someone took the time to write it, so we should at least try there. Admittedly, sometimes it just confuses you more. I recently typed “template creation” in Word, and it came up with no results. But it’s still worth a try.  </p>
<p align="justify">There is a ‘Getting started’ option once you click either the “?” or press F1. Some of the items are good for reference, especially the Keyboard shortcuts, and What’s New. Each Office product has this as part of the help screen. </p>
<p align="justify"></p>
<div style="text-align:center"><img src="/Blog/PublishingImages/PowerPoint%20Help.png" alt="PowerPoint Help.png" style="margin:5px;width:300px;height:417px" /><span style="font-size:8pt;text-align:left"> </span></div>
<p></p>
<p align="justify">In Office 2010, you can also go to the File tab, and select Help for some additional options. (This was removed in 2013.) </p>
<p align="justify"><u>Reference Books</u></p>
 <p align="justify">I don’t mean e-books. I mean those old fashioned things, usually with heavy covers and paper in between, that some people now use to raise their monitors. I’ve purchased an Office and Windows reference book with every version since Office and Windows 95. No, I don’t read it from cover to cover. I keep it as a reference guide. Sometimes it’s faster to look something up in the book than it is to find it on the web. (Yes, I really mean it.)  </p>
<p align="justify">My books are well worn and full of print outs from some of the websites mentioned above; there are handwritten notes on the pages and Microsoft Knowledge Base article numbers to look back on. There are times when I’ll just thumb through them and find a shortcut that’s new to me. No one will take my books away. I have favorite authors and always order their books once a new software version comes out. I’m open to new authors as well, because you just never know who knows what.  </p>
<h3 align="justify"><font style="font-weight:bold">And don’t forget about this VERY important reference</font></h3>
 <p align="justify">There is one more reference I use all the time – friends and co-workers. Someone always knows a shortcut I didn’t know about, or had forgotten over the years. Check with your co-workers. The admin who works in Word every day will know shortcuts you didn’t know existed. The accounting person will know the keys to hit in Excel to make it dance. They probably don’t think of themselves as resources, but believe me, they’re usually the best ones around.</p></div></div>
<div><b>Category:</b> <a onclick="OpenPopUpPage('http://www.synergyonline.com/Blog/_layouts/listform.aspx?PageType=4&ListId={BEBD6B7C-8EDF-4976-8627-9238AFF8A903}&ID=10&RootFolder=*', RefreshPage); return false;" href="http://www.synergyonline.com/Blog/_layouts/listform.aspx?PageType=4&ListId={BEBD6B7C-8EDF-4976-8627-9238AFF8A903}&ID=10&RootFolder=*">Microsoft Office</a></div>
<div><b>Published:</b> 5/29/2013 11:38 AM</div>
<div><b>Author:</b> <a href="http://www.synergyonline.com/company/Profiles/Pages/Deborah-Zotian.aspx">Deborah Zotian</a></div>
<div><b>PageKeywords:</b> Microsoft Office, SharePoint experts</div>
<div><b>PageTitle:</b> Tips, Secret Locations, and how I know so much about Microsoft Office (or at least, how I look like I do)</div>
<div><b>PageDescription:</b> How to find what you need when you need it – and sometimes it isn’t in the most obvious place. Check out new blog post on finding answers for your Microsoft Office questions.</div>
]]></description>
      <author>System Account</author>
      <category>Microsoft Office</category>
      <pubDate>Wed, 29 May 2013 15:37:18 GMT</pubDate>
      <guid isPermaLink="true">http://www.synergyonline.com/Blog/Lists/Posts/ViewPost.aspx?ID=265</guid>
    </item>
    <item>
      <title>Don’t call it Facebook: Why Professional Social Networks are not the Same Thing</title>
      <link>http://www.synergyonline.com/Blog/Lists/Posts/ViewPost.aspx?ID=264</link>
      <description><![CDATA[<div><b>Body:</b> <div class="ExternalClass5B4CB7379D6D46B09A90E52B4C6C77E2"><p style="text-align:justify">When business managers and top leaders get together to talk about the value of internal professional social networks, it is all too common that someone steps in to compare the tools to Facebook. </p>
<div style="text-align:justify">
</div>
<p style="text-align:justify">“Oh, making a comment and liking posts? Isn’t that just like what you do on Facebook or Twitter?” </p>
<div style="text-align:justify">
</div>
<p style="text-align:justify">While the comparison is a straight forward means for most people to grasp the functional concepts, subscribing to this outlook is a perilous path for those who are committed to leveraging the power of social networking tools in a professional setting. Instead of focusing on the similarities between all social networks, it is far more valuable to focus on the differences when beginning to define your business’s approach to building and launching a <u>professional</u> social network. In this post, I’ll discuss three key areas of difference: Purpose, Adoption and Learning the Toolset, and Motivation for On-going Use. </p>
<div>
</div>
<h3><font style="font-weight:bold">Purpose:</font></h3>
<div>
 </div>
<p style="text-align:justify">Perhaps the most important contrast between Facebook or Twitter and an internal professional social network is the overall purpose of the network. What types of activities is the platform meant to facilitate? </p>
<div style="text-align:justify">
</div>
<p style="text-align:justify">Facebook was originally developed as a platform for college students to network with one another, for the primary purpose of socializing. Twitter, in contrast, was developed as a means to send short text message-style bits of information and not specifically as a social network or means for connecting many individuals for ‘networking’. More information on this history of Facebook and Twitter can be found at the below links: </p>
<div>
</div>
<p><a href="http://socialmediatoday.com/daniel-zeevi/1251026/ultimate-history-facebook-infographic" target="_blank">The Ultimate History of Facebook [INFOGRAPHIC]</a> </p>
<div>
</div>
<p><a href="http://www.socialnomics.net/2013/01/23/the-history-of-twitter/" target="_blank">The History of Twitter</a> </p>
<div>
</div>
<p style="text-align:justify">Even to this day, the overarching purpose of both platforms is recreational use - entertainment and personal communications. While more commercial advertising functions have developed over the years, as a general rule these platforms are not dedicated to any specific organization, nor is there a collective goal or desired outcome that would result from use of the tool. Facebook users as a whole are not an organized group. Each user does not necessarily benefit or gain more value from additional users joining and posting content to the site. Similarly, for Twitter users, for each additional tweet posted, it is unlikely that the content of the tweet will contain relevant and useful information. </p>
<div style="text-align:justify">
</div>
<p style="text-align:justify">In contrast, professional social networks are built for a specific purpose within a specific organization. The groups of users of an internally professional social network are much more likely to be interrelated people in working life, who are more than likely tasked with many different reasons to collaborate. As an example, an update from one of our SharePoint developers about new great features of SharePoint 2013 got everyone talking within minutes, from trainers to designers. The organization, as well as each individual, stands to gain significant benefits from each additional post, assuming the posted content is also geared towards the larger purpose of information sharing.  </p>
<div>
</div>
<h3><font style="font-weight:bold">Adoption and Learning the Toolset:</font></h3>
<div>
 </div>
<p style="text-align:justify">In a professional setting, individual users and the organization as a whole stand to reap significant benefits from each additional post contributed to a professional social network, but only in the event these posts are appropriate and focused towards the purpose of the network. </p>
<div style="text-align:justify">
</div>
<p style="text-align:justify">When a private person joins Facebook or Twitter, they are motivated to adopt use of the technology for personal reasons, whether it be to connect with existing friends, to meet new people or merely to have a platform for personal expression. Users do not tend to need instruction on how to post or what to post about, because the content of posts is only restricted by what the individual person believes is socially appropriate. Many have seen how Facebook and Twitter users regulate one another by indicating that repeated posts about someone’s lunch or emotional trials are not appreciated. </p>
<div style="text-align:justify">
</div>
<p style="text-align:justify">This is a stark contrast to professional social networks. First, adoption of these tools is not for a personal or private reasons. Users will be motivated to adopt use of the technology because they believe there is a professional benefit from engaging further in their organization in this manner. They may have a need to obtain information they believe may be easier to access on the platform or may be personally motivated to share information they believe will be useful to their colleagues. Further, while the tools are often as intuitive to use as their Facebook or Twitter counterparts, users have a more difficult time learning what is a socially appropriate to post, as the risk of posting something inappropriate is much more significant. Most people are generally more comfortable risking embarrassment amongst their close friends as opposed to a range of colleagues they may or may not know personally. </p>
<div style="text-align:justify">
</div>
<p style="text-align:justify">As such, it is important for businesses to recognize this difference and create means for employees to learn about the professional benefits of adoption and to learn a framework for what constitutes an appropriate professional social posts. These guidelines may change from organization to organization. Some businesses may be more inclined to approve of non-business related posts about holidays, weather or personal events. While in other companies, this may all be inappropriate. They key is to recognize there is a need to model the appropriate behavior to end users in order for them to learn what is an acceptable post, and to begin to feel confident enough to create these types of posts independently. </p>
<div>
</div>
<p></p>
<div style="text-align:center"><img src="/Blog/PublishingImages/a-true-social-business-strategist.png" alt="a-true-social-business-strategist.png" style="margin:5px;width:500px;height:280px" /> </div>
<p></p>
<div>
</div>
<h3><font style="font-weight:bold">Motivation for On-going Use:</font></h3>
<div>
 </div>
<p style="text-align:justify">Unfortunately, the cold truth is that many efforts to launch an internal professional social network will not be successful. Why? Because it is a challenge for businesses to develop the right cultural environment for on-going usage to flourish. Business users need to not only see the value they can derive from participating in the network, but must also have a clear understanding of how to create the right types of posts which will be appreciated and respected by their professional peers.  </p>
<div style="text-align:justify">
</div>
<p style="text-align:justify">In contrast, Facebook and Twitter users get a clear personal benefit from on-going usage. They are able to log on every day and obtain personalized content, which is socially relevant or provides entertainment value. It is easy for users to understand the benefit they can derive personally from long term participation. </p>
<div style="text-align:justify">
</div>
<p style="text-align:justify">In order to provide professional social network users with enough long term value that will be easy for them to identify, business leaders need to focus less on the technological piece of the puzzle and much more on the cultural and relationship based changes that must take place in the organization for long term engagement in a professional social network to be realistic. </p>
<div style="text-align:justify">
</div>
<p style="text-align:justify">Gartner, an information technology research company discusses many of the same principles in an <a href="http://www.gartner.com/newsroom/id/2319215" target="_blank">article that can be found here</a>. </p>
<div style="text-align:justify">
</div>
<p style="text-align:justify">In sum, it is important for businesses to stop comparing Facebook and Twitter to professional social networks unless they are focusing specifically on the ways the platforms differ. While each is based on a similar set of technological tools, the purpose, reasons for adoption and ongoing use, and methods for engagement are drastically different. In order to have not only a successful launch, but an active and engaged user based over the long term, leaders in the professional social space need to focus on the specific needs of employees at each organization where these tools are being leveraged. </p>
<div style="text-align:justify">
</div>
<p style="text-align:justify">Stay tuned for more blog posts on the social business phenomenon and what it means for your organization.</p></div></div>
<div><b>Category:</b> <a onclick="OpenPopUpPage('http://www.synergyonline.com/Blog/_layouts/listform.aspx?PageType=4&ListId={BEBD6B7C-8EDF-4976-8627-9238AFF8A903}&ID=13&RootFolder=*', RefreshPage); return false;" href="http://www.synergyonline.com/Blog/_layouts/listform.aspx?PageType=4&ListId={BEBD6B7C-8EDF-4976-8627-9238AFF8A903}&ID=13&RootFolder=*">SharePoint</a></div>
<div><b>Published:</b> 5/22/2013 3:15 PM</div>
<div><b>Author:</b> <a href="http://www.synergyonline.com/company/Profiles/Pages/jennarifkin.aspx">Jenna Rifkin</a></div>
<div><b>PageKeywords:</b> Social Network, sharepoint branding, SharePoint Development, sharepoint training</div>
<div><b>PageTitle:</b> Don’t call it Facebook: Why Professional Social Networks are not the Same Thing </div>
<div><b>PageDescription:</b> When business managers and top leaders get together to talk about the value of internal professional social networks, it is all too common that someone steps in to compare the tools to Facebook.</div>
]]></description>
      <author>System Account</author>
      <category>SharePoint</category>
      <pubDate>Wed, 22 May 2013 19:13:37 GMT</pubDate>
      <guid isPermaLink="true">http://www.synergyonline.com/Blog/Lists/Posts/ViewPost.aspx?ID=264</guid>
    </item>
    <item>
      <title>What is the Analytics Processing Component in SharePoint 2013</title>
      <link>http://www.synergyonline.com/Blog/Lists/Posts/ViewPost.aspx?ID=263</link>
      <description><![CDATA[<div><b>Body:</b> <div class="ExternalClass9080CFF68FA8446CBD16B8DB9D62547C"><p>Among the new improvements and features that came packaged with SharePoint 2013 is what used to be called the Web Analytics Service. Although technically the <a href="http://technet.microsoft.com/en-us/library/ff607742.aspx" target="_blank">Web Analytics Service has been discontinued/deprecated in SharePoint 2013</a>, it has been replaced by what is now called the Analytics Processing Component. The Analytics Processing Component was built from the ground up to better integrate with Search and scale better with large environments. </p>
 <p>There are a couple of reasons why the Web Analytics Service was rebuilt in SharePoint 2013. One of the main reasons is that SharePoint now leverages the analytics data to add and improve on features that can benefit from the data. Search relevance directly benefits from this data by promoting items or documents that are more frequently clicked on than others. Another reason is that the Web Analytics Service didn’t scale well with larger farms. In SharePoint 2010, the Web Analytics Service application would run into some problems as the farm and the user base grew. With a lot of clicking and tracking going on in the farm, there would be heavy strain on disk I/O and SQL storage. The Analytics Processing Component has been designed to address this issue. </p>
 <p>The <a href="http://technet.microsoft.com/en-sg/library/jj219554.aspx#BKMK_TheAnalyticsArchitechture" target="_blank">analytics architecture</a> in SharePoint 2013 is comprised of 3 main parts: the analytics processing component, the analytics reporting database and the link database. The analytics processing component runs the different analytics jobs. Search analytics jobs that analyzes content that is being crawled and added to the search index and Usage analytics jobs that analyzes user actions/events such as clicks or viewed items. The databases in the architecture store the data generated from the two different analyses. The analytics reporting database stores statistical information such as total number of views on specific documents etc. The link database stores information about searches and crawled content.</p>
 <p>Even though under the hood, the Analytics Processing component is completely different from the Web Analytics Service found in SharePoint 2010, the Analytics Processing component encompasses most of what the Web Analytics Service application offered. </p>
 <h3><font style="font-weight:bold">New features found in the Search Analytics component</font></h3>
 <p><b></b> </p>
<p>There are a slew of new things that the SharePoint 2013 Analytics Processing Component can do that the old SharePoint 2010 Web Analytics Service couldn’t. SharePoint 2013 can now track hits on specific list items and documents. This data can be seen through a new button “Most Popular Items” in the SharePoint 2013 ribbon.  </p>
<p>List/Library analytics data </p>
<p></p>
<div style="text-align:center"><img src="/Blog/PublishingImages/Most%20Popular%20Items.jpg" alt="Most Popular Items.jpg" style="margin:5px;width:500px;height:113px" /> </div>
 <p></p>
<p>To enable the “Most Popular Items” button in the ribbon, the “Reporting” feature must be activated at the root site collection. This is found in the site settings page under site collection administration on the option for site collection features. </p>
<p></p>
<div style="text-align:center"><img src="/Blog/PublishingImages/Reporting.png" alt="Reporting.png" style="margin:5px;width:500px;height:47px" /> </div>
 <p></p>
<p>The analytics data presented on the list/library level can provide an end user with a quick glance at what are some of the more important or relevant documents/items in the list or library. There are three default views for the analytics data presented here. “Most Views”, “Most Views by Unique Users” and “Most Recommendation Clicks”.  </p>
<p></p>
<div style="text-align:center"><img src="/Blog/PublishingImages/Analytics%20data.png" alt="Analytics data .png" style="margin:5px;width:500px;height:380px" /> </div>
 <p></p>
<p>Each document in the document library will show to counters, “Recent” and “Ever”. “Recent” shows how many times the particular document has been clicked on or viewed in the past two weeks. “Ever” is the total number of times the document has been viewed since it was uploaded to SharePoint. Additionally, each document has a “Popularity Trends” report which is presented via excel format.  </p>
<p></p>
<div style="text-align:center"><img src="/Blog/PublishingImages/Popularity%20Trends%20report.png" alt="Popularity Trends report .png" style="margin:5px;width:500px;height:350px" /> </div>
<p></p>
<p>The “Popularity Trends” report for individual items shows how many hits or views the document has and presents the data through a “Daily” and “Monthly” graph.  </p>
<p>Site analytics data </p>
<p>Analytics data is also available per “Site” in SharePoint 2013 in much the same way it was available via the “Web Analytics Service” in SharePoint 2010. Under Site Administration for a site, you will now see a “Popularity Trends” option.  </p>
<p></p>
<div style="text-align:center"><img src="/Blog/PublishingImages/Popularity%20Trends%20option.jpg" alt="Popularity Trends option.jpg" style="margin:5px;width:500px;height:129px" /> </div>
<p></p>
<p>Again, the data is now presented via excel as opposed to the static page that SharePoint 2010 used to have. Data is displayed via graphs for daily and monthly hits for the particular site. </p>
<p><div style="text-align:center"><img src="/Blog/PublishingImages/Graphs%20daily%20monthly%20hits.png" alt="Graphs daily monthly hits.png" style="margin:5px;width:500px;height:353px" /> </div> </p>
<p>Site Collection Analytics data </p>
<p>Just as in SharePoint 2010’s Web Analytics Service, analytics data is also available for an entire site collection. This includes hits for all the sub-sites in the site collection. Under Site Collection Administration, there is an option for “Popularity and Search Reports”. The reports found under this section include the number of hits for the entire site collection as well as search analytics data for search queries made within the site collection. </p>
<p><div style="text-align:center"><img src="/Blog/PublishingImages/Popularity%20and%20Search%20Reports.jpg" alt="Popularity and Search Reports.jpg" style="margin:5px;width:500px;height:211px" /> </div> </p>
<p>Central Admin Analytics data </p>
<p>Analytics data can also be found in central admin through the search administration page. The option “Usage Reports” will direct you to a number of search analytics reports such as top queries of the day or month. These reports were intended to help search administrators determine which manual steps they can take to improve the search system. </p>
<p><div style="text-align:center"><img src="/Blog/PublishingImages/Top%20Queries%20by%20Day.png" alt="Top Queries by Day.png" style="margin:5px;width:500px;height:183px" /> </div> </p>
<p>Above is an example excel report of the “top queries by day”. The data is simple and straightforward. SharePoint logs each search query made and displays them in descending order. Other reports available in central admin include “Top Queries by Month”, “Abandoned Queries”, “No Result Queries”, “Query Rule Usage” and the “Number of Queries” report that shows the total number of all search queries made. </p>
<p><div style="text-align:center"><img src="/Blog/PublishingImages/Number%20of%20Queries.jpg" alt="Number of Queries.jpg" style="margin:5px;width:500px;height:362px" /> </div> </p>
<h3><font style="font-weight:bold">SharePoint Analytics Processing component limitations</font></h3>
 <p><b></b> </p>
<p>SharePoint analytics definitely has a lot more useful information in 2013 but there are still a lot of things it can’t do. Even though SharePoint can track hits to individual items, it does so anonymously. SharePoint does not track and store exactly who views each site, page or document. This fact alone limits a lot of the functionality that SharePoint analytics can offer compared to fully featured 3<sup>rd</sup> party web analytics software. SharePoint analytics can tell you that a specific site has for example, 100 hits per day. A fully featured 3<sup>rd</sup> party web analytics software can go further and tell you that 80 of those 100 hits come from a specific department or group of users. There are many more features that are pretty much standard in 3<sup>rd</sup> party web analytics solutions that you simply don’t have in SharePoint Analytics. User centric data such as the IP address or username, clicks to external website links and the total time each user has spent on specific pages are some of the features SharePoint Analytics doesn’t provide just to name a few. Some 3<sup>rd</sup> party web analytics software can even provide real time analytics data. SharePoint on the other hand relies on scheduled jobs and Search crawls to update analytics data.  </p>
<p><div style="text-align:center"><img src="/Blog/PublishingImages/Analytics%20software%20dashboard.jpg" alt="Analytics software dashboard.jpg" style="margin:5px;width:500px;height:280px" /> </div> </p>
<p>Above we can see an example of a 3<sup>rd</sup> party analytics software dashboard. The dashboard is meant to give administrators an at-a-glance view of information they would want to monitor in real time and is a standard feature in most of the 3<sup>rd</sup> party software you will find. SharePoint’s lack of a dashboard for analytics implies that SharePoint 2013 analytics was not really intended or designed to be used for monitoring purposes. </p>
<p><div style="text-align:center"><img src="/Blog/PublishingImages/SharePoint%20analytics%202013%20.jpg" alt="SharePoint analytics 2013 .jpg" style="margin:5px;width:500px;height:131px" /> </div> </p>
<p>Although there are many features that SharePoint analytics 2013 offers compared to SharePoint 2010, there are however a couple of things that are no longer available. The web analytics report that shows the total number of page views, daily unique visitors and total number of search queries per web application as seen above is no longer available. </p>
<p><b></b> </p>
<p>Despite the fact that there are many improvements to Analytics processing in SharePoint 2013 and the usage reports/Popularity Trends have now become much more useful, SharePoint 2013 analytics still lacks a range of features and is not a replacement for full featured web analytics software. It simply wasn’t designed to be. As mentioned earlier, SharePoint analytics was designed from the ground up to better integrate and use the analytics data in the Search service and scale with large environments better than it used to. SharePoint analytics can still be used to get a somewhat rough idea of the activity within sites and site collections. If you need more information than that, then you would need to look at 3<sup>rd</sup> party web analytics.</p></div></div>
<div><b>Category:</b> <a onclick="OpenPopUpPage('http://www.synergyonline.com/Blog/_layouts/listform.aspx?PageType=4&ListId={BEBD6B7C-8EDF-4976-8627-9238AFF8A903}&ID=13&RootFolder=*', RefreshPage); return false;" href="http://www.synergyonline.com/Blog/_layouts/listform.aspx?PageType=4&ListId={BEBD6B7C-8EDF-4976-8627-9238AFF8A903}&ID=13&RootFolder=*">SharePoint</a></div>
<div><b>Published:</b> 5/14/2013 3:42 PM</div>
<div><b>Author:</b> <a href="http://www.synergyonline.com/company/Profiles/Pages/LuisCinco.aspx">Luis Cinco</a></div>
<div><b>PageKeywords:</b> sharepoint 2013, SharePoint Expert</div>
<div><b>PageTitle:</b> What is the Analytics Processing Component in SharePoint 2013</div>
<div><b>PageDescription:</b> Among the new improvements and features that came packaged with SharePoint 2013 is what used to be called the Web Analytics Service. Although technically the Web Analytics Service has been discontinued/deprecated in SharePoint 2013, it has been replaced b</div>
]]></description>
      <author>System Account</author>
      <category>SharePoint</category>
      <pubDate>Tue, 14 May 2013 19:15:14 GMT</pubDate>
      <guid isPermaLink="true">http://www.synergyonline.com/Blog/Lists/Posts/ViewPost.aspx?ID=263</guid>
    </item>
    <item>
      <title>Manage SharePoint List Data with SPServices – Build a Page(s) Rating System</title>
      <link>http://www.synergyonline.com/Blog/Lists/Posts/ViewPost.aspx?ID=262</link>
      <description><![CDATA[<div><b>Body:</b> <div class="ExternalClass9608AA192317443E81D1208DAB8810A4"><h3 style="text-align:justify"><font style="font-weight:bold">Introduction</font></h3>
<div style="text-align:justify"> </div>
<p style="text-align:justify">This blog will cover a couple of SharePoint SPServices operations that assist with managing SharePoint lists/libraries programmatically. The main point here is that this can all be done with client-side code; no need for ASP.NET server-side code to be deployed to the web servers, and no required SharePoint development. We will also provide some steps to implementing a simple rating (aka “like”) system on web pages, using jQuery and SPServices. The tasks covered in this blog can be implemented in SharePoint 2013 (as well as SharePoint 2010, and SharePoint 2007). </p>
<h3 style="text-align:justify"><font style="font-weight:bold">The Foundation; the Basics</font></h3>
<div style="text-align:justify"> </div>
<p style="text-align:justify">First off, download the <a href="http://jquery.com/" target="_blank">jQuery</a> (<i>jquery.min.js</i>) and <a href="http://spservices.codeplex.com/" target="_blank">SPServices</a> (<i>jquery.SPServices.min.js</i>) libraries, and find a place to upload to, and reference these files from. For this blog, these files will be uploaded to the site’s ‘Site Assets’ library. In this blog, jQuery version 1.8.1 and SPServices version 0.7.2. </p>
<p style="text-align:justify"><i>Note: There is an issue with using SPServices pre 0.7.0 and jQuery 1.7+. More information can be found on this </i><a href="http://sympmarc.com/2011/11/08/problem-with-jquery-1-7-and-spservices/" target="_blank">blog</a><i></i><i>.</i> </p>
<p style="text-align:justify"><div style="text-align:center"><img src="/Blog/PublishingImages/SharePoint%20Site%20Assets.png" alt="SharePoint Site Assets.png" style="margin:5px;width:600px;height:218px" /> </div> </p>
<p style="text-align:justify">Secondly, create a list where records will be inserted into, and managed, via SPServices jQuery. For this blog, a custom list called ‘<i>MyList</i>’, with the default columns (i.e. “Title”, etc.), plus a new column (i.e. “<i>MyColumn</i>”), will be created within the site. </p>
<p style="text-align:justify"><div style="text-align:center"><img src="/Blog/PublishingImages/SharePoint%20List.png" alt="SharePoint List .png" style="margin:5px;width:600px;height:287px" /> </div> </p>
<p style="text-align:justify">And now, for the jQuery code to perform the operations. We will use two of the SPServices operations – “<b>UpdateListItems</b>” to insert records into a list, and “<b>GetListItems</b>” to retrieve records from the list. These code snippets (source) can be placed directly into a Content Editor Web Part (CEWP), or a JavaScript file to be referenced by the CEWP. </p>
<p style="text-align:justify"><b><u>Reference jQuery Libraries</u></b> </p>
<p style="text-align:justify">1) Add references to the jQuery (<i>jquery.min.js</i>) and SPServices (<i>jquery.SPServices.min.js</i>) JavaScript libraries.</p>
<div> </div>
<div id="codeSnippetWrapper" style="border:1px solid silver;text-align:left;padding:4px;line-height:12pt;background-color:rgb(244, 244, 244);margin:20px 0px 10px;width:97.5%;font-family:'courier new', courier, monospace;direction:ltr;max-height:200px;font-size:8pt;overflow:auto;cursor:text"> <div id="codeSnippet" style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:rgb(244, 244, 244);width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible"><pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">&lt;script src=<span style="color:rgb(0, 96, 128)">&quot;../SiteAssets/jquery.min.js&quot;</span> type=<span style="color:rgb(0, 96, 128)">&quot;text/javascript&quot;</span>&gt;&lt;/script&gt;</pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible"> </pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">&lt;script src=<span style="color:rgb(0, 96, 128)">&quot;../SiteAssets/jquery.SPServices.min.js&quot;</span> type=<span style="color:rgb(0, 96, 128)">&quot;text/javascript&quot;</span>&gt;</pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">&lt;/script&gt;</pre></div></div>
<div>
</div>
<p style="text-align:justify"><b><u>UpdateListItems</u></b>
</p>
<p style="text-align:justify">2) The following code snippet contains the <i>UpdateListItems</i> operation, which in this case, is used to insert new item(s) into a list. The <i>UpdateListItems</i> operation can also be used to update and delete existing list item(s).</p>
<div>
</div>
<div id="codeSnippetWrapper" style="border:1px solid silver;text-align:left;padding:4px;line-height:12pt;background-color:rgb(244, 244, 244);margin:20px 0px 10px;width:97.5%;font-family:'courier new', courier, monospace;direction:ltr;max-height:200px;font-size:8pt;overflow:auto;cursor:text">
<div id="codeSnippet" style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:rgb(244, 244, 244);width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible"><pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">&lt;script type=<span style="color:rgb(0, 96, 128)">&quot;text/javascript&quot;</span>&gt;</pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible"> </pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">    var pageTitle = $(document).attr(<span style="color:rgb(0, 96, 128)">'title'</span>);</pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">    var myColumnText = <span style="color:rgb(0, 96, 128)">&quot;Testing the SPServices jQuery library.&quot;</span>;</pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible"> </pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">    $().SPServices({</pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">        operation: <span style="color:rgb(0, 96, 128)">&quot;UpdateListItems&quot;</span>,</pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">        webURL: <span style="color:rgb(0, 96, 128)">&quot;&quot;</span>,</pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">        async: <span style="color:rgb(0, 0, 255)">false</span>,</pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">        batchCmd: <span style="color:rgb(0, 96, 128)">&quot;New&quot;</span>,</pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">        listName: <span style="color:rgb(0, 96, 128)">&quot;MyList&quot;</span>,</pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">        valuepairs: [[<span style="color:rgb(0, 96, 128)">&quot;Title&quot;</span>, pageTitle], [<span style="color:rgb(0, 96, 128)">&quot;MyColumn&quot;</span>, myColumnText]],</pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">        completefunc: function(xData, Status){</pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">            var strError = $(xData.responseXML).SPFilterNode(<span style="color:rgb(0, 96, 128)">'ErrorText'</span>).text();</pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">            <span style="color:rgb(0, 0, 255)">if</span>(strError != <span style="color:rgb(0, 96, 128)">&quot;&quot;</span>){</pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">                alert(<span style="color:rgb(0, 96, 128)">&quot;An error occurred while inserting your record:  &quot;</span> + strError);</pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">            }</pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">            <span style="color:rgb(0, 0, 255)">else</span> {</pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">                alert(<span style="color:rgb(0, 96, 128)">&quot;Your record has been submitted.&quot;</span>);</pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">            }</pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">        }</pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">    });</pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible"> </pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">&lt;/script&gt;</pre></div></div>
<div>

</div>
<p style="text-align:justify"><b><u>GetListItems</u></b>
</p>
<p style="text-align:justify">3) The following code snippet contains the <i>GetListItems</i> operation, which is used to retrieve items from a list, returned in an XML-based response. CAML queries can also be passed, as a parameter, to refine the results that are returned.</p>
<div>
</div>
<div id="codeSnippetWrapper" style="border:1px solid silver;text-align:left;padding:4px;line-height:12pt;background-color:rgb(244, 244, 244);margin:20px 0px 10px;width:97.5%;font-family:'courier new', courier, monospace;direction:ltr;max-height:200px;font-size:8pt;overflow:auto;cursor:text">
<div id="codeSnippet" style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:rgb(244, 244, 244);width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible"><pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">&lt;script type=<span style="color:rgb(0, 96, 128)">&quot;text/javascript&quot;</span>&gt;</pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible"> </pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">    $().SPServices({</pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">        operation: <span style="color:rgb(0, 96, 128)">&quot;GetListItems&quot;</span>,</pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">        async: <span style="color:rgb(0, 0, 255)">false</span>,</pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">        listName: <span style="color:rgb(0, 96, 128)">&quot;MyList&quot;</span>,</pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">        CAMLViewFields: <span style="color:rgb(0, 96, 128)">&quot;&lt;ViewFields&gt;&lt;FieldRef Name='Title' /&gt;</span></pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">        &lt;FieldRef Name='MyColumn' /&gt;&lt;/ViewFields&gt;&quot;,</pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">        completefunc: function (xData, Status) {</pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">            $(xData.responseXML).SPFilterNode(<span style="color:rgb(0, 96, 128)">&quot;z:row&quot;</span>).each(function() {</pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">                var title = $(<span style="color:rgb(0, 0, 255)">this</span>).attr(<span style="color:rgb(0, 96, 128)">&quot;ows_Title&quot;</span>);</pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">                var myColumn = $(<span style="color:rgb(0, 0, 255)">this</span>).attr(<span style="color:rgb(0, 96, 128)">&quot;ows_MyColumn&quot;</span>);</pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">                </pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">                <span style="color:rgb(0, 128, 0)">// TODO:  do something with the (row) &quot;title&quot; and </span></pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">                    <span style="color:rgb(0, 96, 128)">&quot;myColumn&quot;</span> values</pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">            });</pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">            <span style="color:rgb(0, 128, 0)">// extract and display the item count in a pop-up box</span></pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">            var itemCount = parseFloat($(xData.responseXML).SPFilterNode(<span style="color:rgb(0, 96, 128)">&quot;rs:data&quot;</span>)</pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">            .attr(<span style="color:rgb(0, 96, 128)">&quot;ItemCount&quot;</span>));</pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">            alert(<span style="color:rgb(0, 96, 128)">&quot;itemCount = &quot;</span> + itemCount);</pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">        }</pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">    });</pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible"> </pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">&lt;/script&gt;</pre></div></div>
<div>
</div>
<h3 style="text-align:justify"><font style="font-weight:bold">Tying It All Together – Build a Page(s) Rating System</font></h3>
<div style="text-align:justify">
</div>
<p style="text-align:justify">While these two jQuery calls can be used for a lot of different tasks, we will demonstrate a quick way for end-users to be able to rate (aka “like”) an article/page, as well as displaying the total number of rates (i.e. thumbs ups, thumbs downs) on the particular article/page; all via client-side code, without the need for server-side code to be deployed to the server.
</p>
<p style="text-align:justify">1) Upload <a href="http://jquery.com/">jQuery</a> (<i>jquery.min.js</i>) and <a href="http://spservices.codeplex.com/">SPServices</a> (<i>jquery.SPServices.min.js</i>) libraries to the ‘Site Assets’ library.
</p>
<p style="text-align:justify">2) Upload two images, which will be used for the “Thumbs Up” (<i>thumbs_up.png</i>) and “Thumbs Down” (<i>thumbs_down.png</i>) image buttons, to the ‘Site Assets’ library.
</p>
<p style="text-align:justify"><div style="text-align:center"><img src="/Blog/PublishingImages/SharePoint%20SiteAssets%20library.png" alt="SharePoint SiteAssets library .png" style="margin:5px;width:600px;height:252px" /> </div> </p>
<p style="text-align:justify">3) Create a custom list to keep track of the ratings. Let’s call this list ‘<i>Ratings</i>’.
</p></div>
<blockquote style="margin:0px 0px 0px 40px;border:none;padding:0px"><div class="ExternalClass9608AA192317443E81D1208DAB8810A4"><p style="text-align:justify">- In addition to the default “Title” column, add two additional columns for “<i>URL</i>” and “<i>ThumbsUp</i>”.
</p></div></blockquote>
<div class="ExternalClass9608AA192317443E81D1208DAB8810A4"><p style="text-align:justify"><div style="text-align:center"><img src="/Blog/PublishingImages/SharePoint%20Custom%20List.png" alt="SharePoint Custom List .png" style="margin:5px;width:600px;height:238px" /> </div> </p>
<p style="text-align:justify">4) Create an HTML file with the common code that is to be inserted into (or referenced by) all of the pages. Optionally (not shown here), this code can be placed directly within a page layout for consistency and minimal management.
</p></div>
<blockquote style="margin:0px 0px 0px 40px;border:none;padding:0px"><div class="ExternalClass9608AA192317443E81D1208DAB8810A4"><p style="text-align:justify">- Copy/Paste the following code into a file, with a filename of “<i>ThumbsUpDown.html</i>”.
</p></div>
<div class="ExternalClass9608AA192317443E81D1208DAB8810A4"><p style="text-align:justify">- Upload this “<i>ThumbsUpDown.html</i>” file to the ‘Site Assets’ library.</p></div></blockquote>
<div class="ExternalClass9608AA192317443E81D1208DAB8810A4"><div>
</div>
<div id="codeSnippetWrapper" style="border:1px solid silver;text-align:left;padding:4px;line-height:12pt;background-color:rgb(244, 244, 244);margin:20px 0px 10px;width:97.5%;font-family:'courier new', courier, monospace;direction:ltr;max-height:200px;font-size:8pt;overflow:auto;cursor:text">
<div id="codeSnippet" style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:rgb(244, 244, 244);width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible"><pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">&lt;!-- References to jQuery and SPServices libraries --&gt;</pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">&lt;script src=<span style="color:rgb(0, 96, 128)">&quot;../SiteAssets/jquery.min.js&quot;</span> type=<span style="color:rgb(0, 96, 128)">&quot;text/javascript&quot;</span>&gt;&lt;/script&gt;</pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">&lt;script src=<span style="color:rgb(0, 96, 128)">&quot;../SiteAssets/jquery.SPServices.min.js&quot;</span> type=<span style="color:rgb(0, 96, 128)">&quot;text/javascript&quot;</span>&gt;&lt;/script&gt;</pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible"> </pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">&lt;!-- CSS Styles <span style="color:rgb(0, 0, 255)">for</span> the Thumbs Up/Down divs and buttons --&gt;</pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">&lt;style&gt;</pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">    .thumbsUp {</pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">        border:1px solid #919191;</pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">        width:115px;</pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">    }</pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">    .thumbsDown {</pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">        border:1px solid #919191;</pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">        width:115px;</pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">    }</pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">    .thumbsUpButton {</pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">        background-color: #dedede;</pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">        border-right:1px solid #919191;</pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">    }</pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">    .thumbsDownButton {</pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">        background-color: #dedede;</pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">        border-right:1px solid #919191;</pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">    }</pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">    .thumbsUpButton:hover {</pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">        background-color: #0d6e04;</pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">    }</pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">    .thumbsDownButton:hover {</pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">        background-color: #6e040b;</pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">    }</pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">&lt;/style&gt;</pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible"> </pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">&lt;script type=<span style="color:rgb(0, 96, 128)">&quot;text/javascript&quot;</span>&gt;</pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible"> </pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">    <span style="color:rgb(0, 128, 0)">// set the page_title variable with the current page's title</span></pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">    <span style="color:rgb(0, 128, 0)">// set the page_url variable with the current page's URL</span></pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">    var page_title = $(document).attr(<span style="color:rgb(0, 96, 128)">'title'</span>);</pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">    var page_url = $(location).attr(<span style="color:rgb(0, 96, 128)">'href'</span>);</pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible"> </pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">    <span style="color:rgb(0, 128, 0)">// ***************************************************</span></pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">    <span style="color:rgb(0, 128, 0)">// * Function:     InsertRating()</span></pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">    <span style="color:rgb(0, 128, 0)">// *</span></pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">    <span style="color:rgb(0, 128, 0)">// * Description:  Inserts records into the 'Ratings' list.</span></pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">    <span style="color:rgb(0, 128, 0)">// *               This function is called when registering the buttons'</span></pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">    <span style="color:rgb(0, 128, 0)">// * click events.</span></pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">    <span style="color:rgb(0, 128, 0)">// *</span></pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">    <span style="color:rgb(0, 128, 0)">// * Parameters:   pageTitle   - title of current page</span></pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">    <span style="color:rgb(0, 128, 0)">// *               pageUrl     - URL of current page</span></pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">    <span style="color:rgb(0, 128, 0)">// *               isThumbsUp  - yes/no of which button (Thumbs Up/Down) </span></pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">    <span style="color:rgb(0, 128, 0)">// * was clicked</span></pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">    <span style="color:rgb(0, 128, 0)">// ***********************************************************</span></pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">    function InsertRating(pageTitle, pageUrl, isThumbsUp)</pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">    {</pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">        $().SPServices({</pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">            operation: <span style="color:rgb(0, 96, 128)">&quot;UpdateListItems&quot;</span>,</pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">            webURL: <span style="color:rgb(0, 96, 128)">&quot;&quot;</span>,</pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">            async: <span style="color:rgb(0, 0, 255)">false</span>,</pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">            batchCmd: <span style="color:rgb(0, 96, 128)">&quot;New&quot;</span>,</pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">            listName: <span style="color:rgb(0, 96, 128)">&quot;Ratings&quot;</span>,</pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">            valuepairs: [[<span style="color:rgb(0, 96, 128)">&quot;Title&quot;</span>, pageTitle], [<span style="color:rgb(0, 96, 128)">&quot;URL&quot;</span>, pageUrl],</pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">                         [<span style="color:rgb(0, 96, 128)">&quot;ThumbsUp&quot;</span>, isThumbsUp]],</pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">            completefunc: function(xData, Status){</pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">                var strError = $(xData.responseXML).SPFilterNode(<span style="color:rgb(0, 96, 128)">'ErrorText'</span>)</pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">                                .text();</pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">                <span style="color:rgb(0, 0, 255)">if</span>(strError != <span style="color:rgb(0, 96, 128)">&quot;&quot;</span>){</pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">                    <span style="color:rgb(0, 128, 0)">// alert(&quot;An error occurred while inserting your record: </span></pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">                                 <span style="color:rgb(0, 96, 128)">&quot; + strError);</span></pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">                }</pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">                else {</pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">                    // alert(&quot;Your record has been submitted.<span style="color:rgb(0, 96, 128)">&quot;);</span></pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">                }</pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">            }</pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">        });</pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">    }</pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible"> </pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">    // ******************************************************************</pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">    // * After all assets of a page has been received, this $(document).ready()</pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">    // * routine will</pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">    // * perform all of the initializations of the page (i.e. registering </pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">    // * click-events on</pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">    // * the buttons, quering the list to tally the item counts, etc.).</pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">    // ********************************************************************</pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">    $(document).ready(function () {</pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">        // Register the 'Thumbs Up' button's click event. </pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">         Pass &quot;<span style="color:rgb(0, 0, 255)">true</span><span style="color:rgb(0, 96, 128)">&quot; as the isThumbsUp value.</span></pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">        $(&quot;.thumbsUpButton<span style="color:rgb(0, 96, 128)">&quot;).click(function () {</span></pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">            InsertRating(page_title, page_url, true);</pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">        });</pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible"> </pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">        // Register the 'Thumbs Down' button's click event.  Pass &quot;<span style="color:rgb(0, 0, 255)">false</span><span style="color:rgb(0, 96, 128)">&quot; as </span></pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">            the isThumbsUp value.</pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">        $(&quot;.thumbsDownButton<span style="color:rgb(0, 96, 128)">&quot;).click(function () {</span></pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">            InsertRating(page_title, page_url, false);</pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">        });</pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible"> </pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">        // Build the query string for the GetListItems operation.</pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">        // This query filters on the current page's URL, and returns only the </pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">        // list items that match</pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">        // with the list's URL field value.</pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">        var query = &quot;&lt;Query&gt;&lt;Where&gt;&lt;Eq&gt;&lt;FieldRef Name=<span style="color:rgb(0, 96, 128)">'URL'</span> /&gt;</pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">                       &lt;Value Type=<span style="color:rgb(0, 96, 128)">'Text'</span>&gt;<span style="color:rgb(0, 96, 128)">&quot; + page_url +</span></pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">                    &quot;&lt;/Value&gt;&lt;/Eq&gt;&lt;/Where&gt;&lt;/Query&gt;<span style="color:rgb(0, 96, 128)">&quot;;</span></pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible"> </pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">        // Queries the 'Ratings' list to retrieve the rates for this page (URL).  </pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">        // Then iterates</pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">        // through the records to total the counts for 'Thumbs Up' and 'Thumbs Down'.</pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">        $().SPServices({</pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">            operation: &quot;GetListItems<span style="color:rgb(0, 96, 128)">&quot;,</span></pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">            async: false,</pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">            listName: &quot;Ratings<span style="color:rgb(0, 96, 128)">&quot;,</span></pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">            CAMLViewFields: &quot;&lt;ViewFields&gt;&lt;FieldRef Name=<span style="color:rgb(0, 96, 128)">'Title'</span> /&gt;</pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">                &lt;FieldRef Name=<span style="color:rgb(0, 96, 128)">'URL'</span> /&gt;&lt;FieldRef Name=<span style="color:rgb(0, 96, 128)">'ThumbsUp'</span> /&gt;&lt;/ViewFields&gt;<span style="color:rgb(0, 96, 128)">&quot;,</span></pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">            CAMLQuery: query,</pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">            completefunc: function (xData, Status) {</pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">                var countThumbsUp = 0;</pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">                var countThumbsDown = 0;</pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">                $(xData.responseXML).SPFilterNode(&quot;z:row<span style="color:rgb(0, 96, 128)">&quot;).each(function() {</span></pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">                    var title = $(this).attr(&quot;ows_Title<span style="color:rgb(0, 96, 128)">&quot;);</span></pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">                    var url = $(this).attr(&quot;ows_URL<span style="color:rgb(0, 96, 128)">&quot;);</span></pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">                    var thumbsUp = $(this).attr(&quot;ows_ThumbsUp<span style="color:rgb(0, 96, 128)">&quot;);</span></pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible"> </pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">                    // Increment the Thumbs Up/Down counters while looking </pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">                    // through each of</pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">                    // the returned list items.</pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">                    if(thumbsUp == true)</pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">                        countThumbsUp++;</pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">                    else</pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">                        countThumbsDown++;</pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">                });</pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible"> </pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">                // Format the text/label with the Thumbs Up/Down counts.</pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">                $('#thumbsUpCount').text(countThumbsUp + ' Likes');</pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">                $('#thumbsDownCount').text(countThumbsDown + ' Dislikes');</pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">            }</pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">        });</pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">        </pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">    });</pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">&lt;/script&gt;</pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible"> </pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">&lt;!-- HTML --&gt;</pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">&lt;table cellpadding=&quot;5px<span style="color:rgb(0, 96, 128)">&quot;&gt;</span></pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">    &lt;tr&gt;</pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">        &lt;td&gt;</pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">            &lt;div class=&quot;thumbsUp<span style="color:rgb(0, 96, 128)">&quot;&gt;</span></pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">                &lt;input type=&quot;image<span style="color:rgb(0, 96, 128)">&quot; src=&quot;</span>../SiteAssets/thumbs_up.png<span style="color:rgb(0, 96, 128)">&quot; </span></pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">                    class=&quot;thumbsUpButton<span style="color:rgb(0, 96, 128)">&quot;</span></pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">                    name=&quot;imageThumbsUp<span style="color:rgb(0, 96, 128)">&quot; width=&quot;</span>40<span style="color:rgb(0, 96, 128)">&quot; height=&quot;</span>40<span style="color:rgb(0, 96, 128)">&quot;&gt;&lt;/input&gt;</span></pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">                &lt;label id=&quot;thumbsUpCount<span style="color:rgb(0, 96, 128)">&quot; name=&quot;</span>thumbsUpCount<span style="color:rgb(0, 96, 128)">&quot;&gt;&lt;/label&gt;</span></pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">            &lt;/div&gt;</pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">        &lt;/td&gt;</pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">        &lt;td&gt;</pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">            &lt;div class=&quot;thumbsDown<span style="color:rgb(0, 96, 128)">&quot;&gt;</span></pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">                &lt;input type=&quot;image<span style="color:rgb(0, 96, 128)">&quot; src=&quot;</span>../SiteAssets/thumbs_down.png<span style="color:rgb(0, 96, 128)">&quot;</span></pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">                 class=&quot;thumbsDownButton<span style="color:rgb(0, 96, 128)">&quot;</span></pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">                    name=&quot;imageThumbsDown<span style="color:rgb(0, 96, 128)">&quot; width=&quot;</span>40<span style="color:rgb(0, 96, 128)">&quot; height=&quot;</span>40<span style="color:rgb(0, 96, 128)">&quot;&gt;&lt;/input&gt;</span></pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">                &lt;label id=&quot;thumbsDownCount<span style="color:rgb(0, 96, 128)">&quot; name=&quot;</span>thumbsDownCount&quot;&gt;&lt;/label&gt;</pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">            &lt;/div&gt;</pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">        &lt;/td&gt;</pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">    &lt;/tr&gt;</pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">&lt;/table&gt;</pre></div></div>
<div>
</div>
<p style="text-align:justify">5) Create site page(s).
</p></div>
<blockquote style="margin:0px 0px 0px 40px;border:none;padding:0px"><div class="ExternalClass9608AA192317443E81D1208DAB8810A4"><p style="text-align:justify">- Add a Content Editor Web Part (CEWP) to the page.
</p></div>
<div class="ExternalClass9608AA192317443E81D1208DAB8810A4"><p style="text-align:justify">- Edit/Configure the Content Editor Web Part.
</p></div></blockquote>
<blockquote style="margin:0px 0px 0px 40px;border:none;padding:0px"><blockquote style="margin:0px 0px 0px 40px;border:none;padding:0px"><div class="ExternalClass9608AA192317443E81D1208DAB8810A4"><p style="text-align:justify">- In the ‘To link to a text file, type a URL” text box, enter the path/filename to the “<i>ThumbsUpDown.html</i>” file (i.e. “<i>..\SiteAssets\ThumbsUpDown.html</i>”).
</p></div></blockquote></blockquote>
<div class="ExternalClass9608AA192317443E81D1208DAB8810A4"><p style="text-align:justify"><div style="text-align:center"><img src="/Blog/PublishingImages/content%20editor.png" alt="content editor.png" style="margin:5px;width:300px;height:163px" /> </div> </p> </div>
<blockquote style="margin:0px 0px 0px 40px;border:none;padding:0px"><blockquote style="margin:0px 0px 0px 40px;border:none;padding:0px"><div class="ExternalClass9608AA192317443E81D1208DAB8810A4"><p style="text-align:justify">- Expand t​he ‘Appearance’ section. For ‘Chrome Type’, enter “None”, to hide the CEWP title.
</p></div></blockquote></blockquote>
<div class="ExternalClass9608AA192317443E81D1208DAB8810A4"><p style="text-align:justify"><div style="text-align:center"><img src="/Blog/PublishingImages/Appearance%20section.png" alt="Appearance section.png" style="margin:5px;width:300px;height:582px" /> </div> </p> </div>
<blockquote style="margin:0px 0px 0px 40px;border:none;padding:0px"><div class="ExternalClass9608AA192317443E81D1208DAB8810A4"><p style="text-align:justify">- Click OK, to accept all CEWP configurations.
</p></div>
<div class="ExternalClass9608AA192317443E81D1208DAB8810A4"><p style="text-align:justify">- Click Save, to save all changes to the page.
</p></div>
<div class="ExternalClass9608AA192317443E81D1208DAB8810A4"><p style="text-align:justify">- Additional content can be added to the page via Web Parts and/or App Parts.
</p></div></blockquote>
<div class="ExternalClass9608AA192317443E81D1208DAB8810A4"><p style="text-align:justify"><i>6) </i><i>(Optional) Repeat step #5 for all subsequent article(s)/page(s).</i>
</p>
<h3 style="text-align:justify"><font style="font-weight:bold">How does it work?</font></h3>
<div style="text-align:justify">
</div>
<p style="text-align:justify">During page load, the “Thumbs Up” and “Thumbs Down” buttons are registered with an “onclick()” event that fires a JavaScript function call, which when clicked, inserts a list item (“Page Title”, “Page URL”, and yes/no for “Thumbs Up”) into the ‘Ratings’ list. The ‘Ratings’ list items are retrieved for the current page’s URL, and the counts of “Thumbs Up/Down” are calculated and displayed on a label next to the Thumbs Up/Down image buttons, respectively. Additional logic can be inserted to prevent multiple rates for a particular page, as well as some additional SharePoint branding/designing, and styling around the page elements.
</p>
<p style="text-align:justify"><div style="text-align:center"><img src="/Blog/PublishingImages/Ratings%20list.png" alt="Ratings list.png" style="margin:5px;width:600px;height:351px" /> </div> </p>
<p style="text-align:justify">‘<i>Ratings</i>’ list – shows 3 “Thumbs Up” records, and 1 “Thumbs Down” record.
</p>
<p style="text-align:justify"><div style="text-align:center"><img src="/Blog/PublishingImages/ShaPoint%20List%20Records.png" alt="ShaPoint List Records.png" style="margin:5px;width:600px;height:406px" /> </div> </p>
<p style="text-align:justify">‘<i>Article 1</i>’ page – reflects the 3 Likes (Thumbs Up) and 1 Dislikes (Thumbs Down), for this particular page/URL.
</p>
<h3 style="text-align:justify"><font style="font-weight:bold">Conclusion</font></h3>
<div style="text-align:justify">
</div>
<p style="text-align:justify">To wrap up, this blog covered a couple of SharePoint SPServices operations that will give site owners, designers, and page editors, the ability to use these jQuery libraries to programmatically insert/retrieve items into/from custom lists. We’ve also demonstrated how these two operations can be used to build a simple page rating (aka “like”) system, without the need for SharePoint development, other than client-side JavaScript/jQuery. Other scenarios to use this logic in could include surveying, voting, polling, etc., as well as any other situation where list items need to be managed.

</p></div></div>
<div><b>Category:</b> <a onclick="OpenPopUpPage('http://www.synergyonline.com/Blog/_layouts/listform.aspx?PageType=4&ListId={BEBD6B7C-8EDF-4976-8627-9238AFF8A903}&ID=13&RootFolder=*', RefreshPage); return false;" href="http://www.synergyonline.com/Blog/_layouts/listform.aspx?PageType=4&ListId={BEBD6B7C-8EDF-4976-8627-9238AFF8A903}&ID=13&RootFolder=*">SharePoint</a></div>
<div><b>Published:</b> 5/2/2013 10:17 AM</div>
<div><b>Author:</b> <a href="http://www.synergyonline.com/company/Profiles/Pages/LennHuga.aspx">Lenn Huga</a></div>
<div><b>PageKeywords:</b> sharepoint branding, SharePoint Development, sharepoint training</div>
<div><b>PageTitle:</b> How to Manage SharePoint List Data with SPServices – Build a Page(s) Rating System</div>
<div><b>PageDescription:</b> This article covers a couple of SharePoint SPServices operations that assist with managing SharePoint lists/libraries programmatically. The main point here is that this can all be done with client-side code; no need for ASP.NET server-side code </div>
]]></description>
      <author>System Account</author>
      <category>SharePoint</category>
      <pubDate>Thu, 02 May 2013 14:17:07 GMT</pubDate>
      <guid isPermaLink="true">http://www.synergyonline.com/Blog/Lists/Posts/ViewPost.aspx?ID=262</guid>
    </item>
    <item>
      <title>SharePoint From a Designer’s Point of View: The Master Page</title>
      <link>http://www.synergyonline.com/Blog/Lists/Posts/ViewPost.aspx?ID=261</link>
      <description><![CDATA[<div><b>Body:</b> <div class="ExternalClass7DB3E9F7765349D19B00402DFBF768BE"><p style="text-align:justify">“SharePoint From a Designer’s Point of View” is a series of blogs being created to help demystify SharePoint for those not accustomed to designing for the product. The blogs will dive into terms, jargon and elements; and will address how they relate to SharePoint. This first offering will introduce Master Pages: explaining what they are, what to consider when designing for them, why they exist and how they will become part of your life. </p>
<div style="text-align:justify">
</div>
<h3 style="text-align:justify"><font style="font-weight:bold">What are Master Pages?</font></h3>
<div style="text-align:justify">
 </div>
<p style="text-align:justify">At first blush, it seems pretty simple, but do a search on the Internet and you’ll find all the different aspects of Master Pages: Starter Master Pages, Custom Master Pages, ASP.Net Master Pages SharePoint, and on and on. Like a lot things SharePoint, most articles are written for programmers/developers One challenge is to break through all of that nonsense and focus on design. Not code design, but visual interactive website design. </p>
<div style="text-align:justify">
</div>
<h3 style="text-align:justify"><font style="font-weight:bold">Master Pages arrived with ASP.NET 2.0.</font></h3>
<div style="text-align:justify">
 </div>
<p style="text-align:justify">ASP.NET is a framework developed by Microsoft for the purpose of creating dynamic webpages.  </p>
<div style="text-align:justify">
</div>
<p style="text-align:justify">A Master Page is a template for the purpose of standardizing certain elements, i.e. nav, ribbon, search, footer, etc. – any element that will live on every page. The unique information on a page comes from a content page, which SharePoint merges with the Master Page to create one page. </p>
<div>
</div>
<p></p>
<div style="text-align:center"><img src="/Blog/PublishingImages/Content%20Merged.png" alt="Content Merged.png" style="margin-top:5px;margin-right:5px;margin-bottom:5px;margin-left:5px;width:400px;height:391px" /> </div>
<p></p>
<div>
</div>
<p style="text-align:center"><em>Figure 1. Content Merged with Master page via ASP.NET</em></p>
<div>
</div>
<p style="text-align:center"><em><br /></em></p>
<div>
</div>
<p style="text-align:justify"><em><span class="Apple-style-span" style="font-style:normal">The simple beauty of the Master Page is that you design one template and that becomes the foundation for many pages, thus helping to keep the page elements consistent. The Master Page can be changed once, and the rest of the site using that Master Page adopts the change. For example, you can hide SharePoint components or turn them on. You can also change fonts, size, colors or images.</span><br /></em></p>
<div>
</div>
<h3 style="text-align:justify"><font style="font-weight:bold">The following are elements which must be reckoned with when designing Master Pages:</font></h3>
<div style="text-align:justify">
 </div>
<p style="text-align:justify">Branding/design projects usually begin with a client’s brand guide - including fonts, logos, colors, sizes and shapes. Unlike a standard branding project, SharePoint has unique elements, which must be acknowledged when laying out a Master Page. </p>
<div>
</div>
<p></p>
<div style="text-align:center"><img src="/Blog/PublishingImages/SharePoint%20Branding.png" alt="SharePoint Branding.png" style="margin-top:5px;margin-right:5px;margin-bottom:5px;margin-left:5px;width:400px;height:250px" /> </div>
<p></p>
<div>
</div>
<p style="text-align:center"><em>Figure 2 . You could do no branding work and get this out of the box</em> </p>
<div>
</div>
<p><em><br /></em></p>
<div>
</div>
<h3><font style="font-weight:bold">The Ribbon<img src="/Blog/PublishingImages/The%20Ribbon.png" alt="The Ribbon.png" style="margin-top:5px;margin-right:5px;margin-bottom:5px;margin-left:5px;width:50px;height:61px" /><br /></font></h3>
<div>
 </div>
<p style="text-align:justify">One of first things to consider when working on a Master Page is the ribbon. Where should it go? There are a few ways it can be treated. </p>
<div>
</div>
<p></p>
<div dir="ltr" style="text-align:center"><img src="/Blog/PublishingImages/SharePoint%20Ribbon.png" alt="SharePoint Ribbon.png" style="margin-top:5px;margin-right:5px;margin-bottom:5px;margin-left:5px;width:400px;height:46px" /> </div>
<p></p>
<div>
 </div>
<p style="text-align:center"><em>Figure 3. The Ribbon</em></p></div>
<div>
</div>
<blockquote class="webkit-indent-blockquote" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:40px;border-top-style:none;border-right-style:none;border-bottom-style:none;border-left-style:none;border-width:initial;border-color:initial;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px"><div class="ExternalClass7DB3E9F7765349D19B00402DFBF768BE" style="text-align:justify"><p>1. Hide the ribbon </p></div>
<div style="text-align:justify">
</div>
<div class="ExternalClass7DB3E9F7765349D19B00402DFBF768BE" style="text-align:justify"><p><i>This usually only happens with public facing sites</i></p></div>
<div style="text-align:justify">
</div>
<div class="ExternalClass7DB3E9F7765349D19B00402DFBF768BE" style="text-align:justify"><p>2. Add the ribbon to the top of the page, above the navigation and header. </p></div>
<div style="text-align:justify">
</div>
<div class="ExternalClass7DB3E9F7765349D19B00402DFBF768BE"><p style="text-align:justify"><i>I like this method because it separates page editing functionality from the design of the website.</i></p></div></blockquote>
<div style="text-align:center"><i><img src="/Blog/PublishingImages/Ribbon%20Top.png" alt="Ribbon Top.png" style="margin-top:5px;margin-right:5px;margin-bottom:5px;margin-left:5px;width:400px;height:70px" /></i> </div>
<div>
</div>
<div class="ExternalClass7DB3E9F7765349D19B00402DFBF768BE"><p style="text-align:center"><em>Figure 4. Ribbon placed at the top of a page</em></p></div>
<div>
</div>
<blockquote class="webkit-indent-blockquote" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:40px;border-top-style:none;border-right-style:none;border-bottom-style:none;border-left-style:none;border-width:initial;border-color:initial;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px"><div class="ExternalClass7DB3E9F7765349D19B00402DFBF768BE"><p>3. Add the ribbon under the banner and nav. </p></div>
<div class="ExternalClass7DB3E9F7765349D19B00402DFBF768BE"><p><i>There are times when this position can come in handy. </i></p>
For example, this placement allows you to scroll the page but leave the header and nav in place much like the way that frames work. </div></blockquote>
<div style="text-align:center"><img src="/Blog/PublishingImages/Ribbon%20Nav.png" alt="Ribbon Nav.png" style="margin-top:5px;margin-right:5px;margin-bottom:5px;margin-left:5px;width:400px;height:88px" /><br /></div>
<div>
</div>
<div class="ExternalClass7DB3E9F7765349D19B00402DFBF768BE"><p style="text-align:center"><em>Figure 5. Ribbon under Nav. and banner</em> </p>
<p style="text-align:center"><em><br /></em></p>
<h3><font style="font-weight:bold">Scrolling and the Master Page</font></h3>
 <p>There are different strategies when it comes to scrolling your Master Page. For example, the whole page can scroll. The issue with this in SharePoint is that if you scroll the whole page you scroll the ribbon as well. I like to scroll the page right under the ribbon, that way the content scrolls and the ribbon is always visible. This makes it easier to edit page content anywhere on the page. </p>
<p></p>
<div style="text-align:center"><img src="/Blog/PublishingImages/Page%20Scrolling.png" alt="Page Scrolling.png" style="margin-top:5px;margin-right:5px;margin-bottom:5px;margin-left:5px;width:400px;height:224px" /> </div>
<p></p>
<p style="text-align:center"><em>Figure 6. Page scrolling</em> </p>
<p style="text-align:center"><em><br /></em></p>
<h3><font style="font-weight:bold">Logo and Banner Area </font></h3>
 <p>This is a great area for branding. Of course, it can go anywhere on the Master Page. The examples shown here have the logo in its traditional spot. </p>
<h3><font style="font-weight:bold">Global Navigation<img src="/Blog/PublishingImages/Global%20Nav.png" alt="Global Nav.png" style="margin-top:5px;margin-right:5px;margin-bottom:5px;margin-left:5px;width:50px;height:61px" /><br /></font></h3>
 <p>Global Navigation is usually added to the Logo and Banner area but, wherever it is placed, make sure it is part of the Master Page and is prominent.</p>
 <h3><font style="font-weight:bold">Breadcrumb <img src="/Blog/PublishingImages/Breadcrumb.png" alt="Breadcrumb.png" style="margin-top:5px;margin-right:5px;margin-bottom:5px;margin-left:5px;width:50px;height:61px" /><br /></font></h3>
 <p>A Master Page can have a Breadcrumb or you can hide it. </p>
<p></p>
<div style="text-align:center"><img src="/Blog/PublishingImages/Breadcrumb%20Nav.png" alt="Breadcrumb Nav.png" style="margin-top:5px;margin-right:5px;margin-bottom:5px;margin-left:5px;width:400px;height:94px" /> </div>
<p></p>
 <p style="text-align:center"><em>Figure 7. Breadcrumb navigation.</em> </p>
<p><em><br /></em></p>
<p>From a UX point of view, Breadcrumb navigation has many positive aspects: </p>
</div>
<blockquote class="webkit-indent-blockquote" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:40px;border-top-style:none;border-right-style:none;border-bottom-style:none;border-left-style:none;border-width:initial;border-color:initial;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px"><div class="ExternalClass7DB3E9F7765349D19B00402DFBF768BE"><p>• Users can easily get around the site </p></div>
<div class="ExternalClass7DB3E9F7765349D19B00402DFBF768BE"><p>• Easy to go back without using browser arrows and one can go back to different levels. </p></div>
<div class="ExternalClass7DB3E9F7765349D19B00402DFBF768BE"><p>• Users always know where they are within a site. </p></div></blockquote>
<div class="ExternalClass7DB3E9F7765349D19B00402DFBF768BE">


<p>If used consistently, Breadcrumbs are a great addition to any site. </p>
<h3><font style="font-weight:bold">SharePoint Search and Scopes <img src="/Blog/PublishingImages/SharePoint%20Scopes.png" alt="SharePoint Scopes.png" style="margin-top:5px;margin-right:5px;margin-bottom:5px;margin-left:5px;width:50px;height:61px" /><br /></font></h3>
 <p>It is advisable to design the SharePoint Search into the Master Page so it appears on every page. Scopes allow a person to use a dropdown menu to select categories to be searched. Scopes do not necessarily need to appear with Search, it is a business decision. Some need Scopes and some do not. </p>
<p>There are a few places where the placement of the Search element can be optimized. The banner is a good spot because it will not be affected by other elements.  </p>
<p></p>
<div style="text-align:center"><img src="/Blog/PublishingImages/SharePoint%20Search%20Banner.png" alt="SharePoint Search Banner.png" style="margin-top:5px;margin-right:5px;margin-bottom:5px;margin-left:5px;width:400px;height:64px" /> </div>
<p></p>
<p style="text-align:center"><em>Figure 8. SharePoint search element in the banner</em> </p>
<p><em><br /></em></p>
<p>Search can also be added as a global nav button that drops down a mega menu panel to display the search element. </p>
<p></p>
<div style="text-align:center"><img src="/Blog/PublishingImages/SharePoint%20Search%20MegaMenu.png" alt="SharePoint Search MegaMenu.png" style="margin-top:5px;margin-right:5px;margin-bottom:5px;margin-left:5px;width:400px;height:105px" /> </div>
<p></p>
<p style="text-align:center"><em>Figure 9. SharePoint search element in the Mega Menu</em> </p>
<p><em><br /></em></p>
<p>I don’t advise adding the Search element to the global nav, as they have a habit of growing over time. Although it might work at launch, it affects the Search placement as pages or sites are added. </p>
<p></p>
<div style="text-align:center"><img src="/Blog/PublishingImages/SharePoint%20Search%20GlobalNav.png" alt="SharePoint Search GlobalNav.png" style="margin-top:5px;margin-right:5px;margin-bottom:5px;margin-left:5px;width:400px;height:93px" /> </div>
<p></p>
<p style="text-align:center"><em>Figure 10. SharePoint search element in the global navigation, <strong>not recommended</strong></em> </p>
<p><em><strong><br /></strong></em></p>
<p>Search should always be in a logical visible location as it is a main navigational element. </p>
<h3 style="text-align:justify"><font style="font-weight:bold">Left Hand Navigation <img src="/Blog/PublishingImages/LeftH%20Navigation.png" alt="LeftH Navigation.png" style="margin-top:5px;margin-right:5px;margin-bottom:5px;margin-left:5px;width:50px;height:62px" /><br /></font></h3>
 <p>Left Hand Navigation is another option to explore. On many occasions, the left hand nav can be hidden on the Home Page and brought back on the subpages where it is more useful. On the Home Page, the UX can become confusing with competing navigational elements.  </p>
<p></p>
<div style="text-align:center"><img src="/Blog/PublishingImages/Left%20Hand%20Navigation.png" alt="Left Hand Navigation.png" style="margin-top:5px;margin-right:5px;margin-bottom:5px;margin-left:5px;width:350px;height:314px" /> </div>
<p></p>
<p style="text-align:center"><em>Figure 11. Left hand nav</em> </p>
<p><em><br /></em></p>
<h3><font style="font-weight:bold">The Footer <img src="/Blog/PublishingImages/Footer.png" alt="Footer.png" style="margin-top:5px;margin-right:5px;margin-bottom:5px;margin-left:5px;width:50px;height:61px" /><br /></font></h3>
 <p>Footers are not always used on Intranets, but if they are, it should be part of the Master Page. </p>
<p><b></b> </p>
<h3><b>Conclusion</b></h3>
 <p>These are the main elements to consider when branding/designing a Master Page. Remember: anything you want consistent throughout the site should be part of the Master Page. </p>
<p></p>
<div style="text-align:center"><img src="/Blog/PublishingImages/Master%20Page.png" alt="Master Page.png" style="margin-top:5px;margin-right:5px;margin-bottom:5px;margin-left:5px;width:350px;height:430px" /> </div>
<p></p>
<p style="text-align:center"><em>Figure 12. Master Page Elements</em></p></div></div>
<div><b>Category:</b> <a onclick="OpenPopUpPage('http://www.synergyonline.com/Blog/_layouts/listform.aspx?PageType=4&ListId={BEBD6B7C-8EDF-4976-8627-9238AFF8A903}&ID=5&RootFolder=*', RefreshPage); return false;" href="http://www.synergyonline.com/Blog/_layouts/listform.aspx?PageType=4&ListId={BEBD6B7C-8EDF-4976-8627-9238AFF8A903}&ID=5&RootFolder=*">Design</a>; <a onclick="OpenPopUpPage('http://www.synergyonline.com/Blog/_layouts/listform.aspx?PageType=4&ListId={BEBD6B7C-8EDF-4976-8627-9238AFF8A903}&ID=13&RootFolder=*', RefreshPage); return false;" href="http://www.synergyonline.com/Blog/_layouts/listform.aspx?PageType=4&ListId={BEBD6B7C-8EDF-4976-8627-9238AFF8A903}&ID=13&RootFolder=*">SharePoint</a></div>
<div><b>Published:</b> 4/16/2013 1:58 PM</div>
<div><b>Author:</b> <a href="http://www.synergyonline.com/company/Profiles/Pages/MichaelBeeler.aspx">Michael Beeler</a></div>
<div><b>PageKeywords:</b> sharepoint design, sharepoint branding, interactive design </div>
<div><b>PageTitle:</b> SharePoint From a Designer’s Point of View: The Master Page</div>
<div><b>PageDescription:</b> “SharePoint From a Designer’s Point of View” is a series of blogs being created to help demystify SharePoint for those not accustomed to designing for the product.</div>
]]></description>
      <author>System Account</author>
      <category>Design; SharePoint</category>
      <pubDate>Tue, 16 Apr 2013 15:35:14 GMT</pubDate>
      <guid isPermaLink="true">http://www.synergyonline.com/Blog/Lists/Posts/ViewPost.aspx?ID=261</guid>
    </item>
    <item>
      <title>I didn’t know you could do that! Doing calculations in Word</title>
      <link>http://www.synergyonline.com/Blog/Lists/Posts/ViewPost.aspx?ID=260</link>
      <description><![CDATA[<div><b>Body:</b> <div class="ExternalClass071912980E85438CABB86CC813BF713D"><p style="text-align:justify">Over the past few weeks, I’ve been talking to friends and coworkers about how I do calculations in Microsoft Word. I sometimes feel that, if I know about it, everyone knows how to do these things. Loud and clear, I find I’m mistaken.  </p>
<p style="text-align:justify">Here are a few of the items that seem to surprise my friends and coworkers – especially the ones who would normally use Excel just to add a row of numbers for their Word document. </p>
<h3 style="text-align:justify"><font style="font-weight:bold">How much is that?</font></h3>
<div style="text-align:justify"> </div>
<p style="text-align:justify">Did you know Word has a built-in Calculator? A calculator which can be added to your Quick Access Toolbar? </p>
<p style="text-align:justify">Select the dropdown from the Quick Tool Bar at the top of the screen, and select either Commands not in the ribbon or All Commands. Click on C and it will bring you to Calculate. When you add it in, it will look like a small circle on the Quick Tool Bar. </p>
<p style="text-align:justify">This is one of the first things I set up when I have a new install of Word. If you have a series of numbers and need the total in your document, you can add them quickly, and without opening Excel or finding that calculator which is buried on your desk. </p>
<p></p>
<div style="text-align:center"><img src="/Blog/PublishingImages/Calculator.png" alt="Calculator.png" style="margin:5px;width:300px;height:44px" /> </div>
 <p></p>
<p style="text-align:justify">Highlight the numbers, and hit the Calculate button. If you need the total, put in a space then hit Ctrl + V and the total will be added to your text. (NOTE: The button will say Formula when you hover over it.) </p>
<p style="text-align:justify"></p>
<div style="text-align:center"><img src="/Blog/PublishingImages/Formula.png" alt="Formula.png" style="margin:5px;width:300px;height:88px" /> </div>
<p></p>
<p style="text-align:justify">15-21-4+375*2-700 = 40 </p>
<p style="text-align:justify">The calculator will addition (+), subtraction (-, or put the number to be subtracted in parentheses), multiplication (*), division (/), percentages (%) and exponentiation and roots (^).  </p>
<p style="text-align:justify">The calculator will also add up numbers in a sentence, such as: There were 15 bars of chocolate, 23 peanut butter cups and 12 cookies on the table.  </p>
<p style="text-align:justify"></p>
<div style="text-align:center"><img src="/Blog/PublishingImages/Result.png" alt="Result.png" style="margin:5px;width:500px;height:54px" /> </div>
<p></p>
<p style="text-align:justify">By highlighting the sentence and clicking on the Calculate button, you’ll see the total in the status bar at the bottom of the screen. If you want to add the total to your text again, just put in a space and hit Ctrl + V. </p>
<p style="text-align:justify">However, if you have a mix of digits and words (four bars of chocolate and 23 peanut butter cups), it won’t be able to do the addition. </p>
<p style="text-align:justify">There’s a terrific article on the Calculator function from OFFICE Watch. You can find it here: <a href="http://news.office-watch.com/t/n.aspx?a=592" target="_blank">Word’s Hidden Calculator</a>. </p>
<h3 style="text-align:justify"><font style="font-weight:bold">OK, everybody line up!</font></h3>
<div style="text-align:justify"> </div>
<p style="text-align:justify">Lining up text in a table can be a pain. Lining up numbers, more so. Did you know instead of embedding an Excel spreadsheet in your document, you can use a decimal tab in Word? This is especially useful when you don’t need all the functionality of an Excel spreadsheet, but need some math functionality. </p>
<p style="text-align:justify">When used in a table, the decimal tab lines up the numbers every time. In the upper left of the screen, you have the tab indicator. If you keep clicking on it, you will come to an icon that looks like an upside down T with a period in it.  </p>
<p style="text-align:justify"></p>
<div style="text-align:center"><img src="/Blog/PublishingImages/Indicator.png" alt="Indicator.png" style="margin:5px;width:150px;height:183px" /> </div>
<p></p>
<p style="text-align:justify">In a table, highlight the column where you will have the numbers, and click in the ruler at the top of the page to format the column with a decimal tab: </p>
<p style="text-align:justify"></p>
<div style="text-align:center"><img src="/Blog/PublishingImages/Table.png" alt="Table.png" style="margin:5px;width:300px;height:115px" /> </div>
<p></p>
<p style="text-align:justify">If you don’t have a decimal in the number, it will line it up at the end of the number, where the decimal would have been if used. </p>
<h3 style="text-align:justify"><font style="font-weight:bold">Calculating in Word Tables</font></h3>
<div style="text-align:justify"> </div>
<p style="text-align:justify">Synergy’s SharePoint Consultants put together Consulting Recommendations with a pricing section at the end of the document. The pricing will change as discussions are held with the clients, so you always have to recalculate the totals. Here’s yet another thing a lot of people don’t know about Word – you can also use the Table Functions to total columns and/or rows of numbers. </p>
<p style="text-align:justify">In the Table Tools tab, select the Layout tab – on the right is the Data group.  </p>
<p style="text-align:justify"></p>
<div style="text-align:center"><img src="/Blog/PublishingImages/Data.png" alt="Data.png" style="margin:5px;width:250px;height:158px" /> </div>
<p></p>
<p style="text-align:justify">Click on Formula and the following dialogue box will appear: </p>
<p style="text-align:justify"></p>
<div style="text-align:center"><img src="/Blog/PublishingImages/FormulaBox.png" alt="FormulaBox.png" style="margin:5px;width:250px;height:179px" /> </div>
<p></p>
<p style="text-align:justify">From the drop down of Number Format, you can pick whole numbers, decimals, percentage, or as shown below, currency. </p>
<p style="text-align:justify"></p>
<div style="text-align:center"><img src="/Blog/PublishingImages/NumberFormat.png" alt="NumberFormat.png" style="margin:5px;width:150px;height:120px" /> </div>
<p></p>
<p style="text-align:justify">If you want to sum the numbers horizontally, change the formula to =SUM(<i>direction</i>), choosing either left or right, above or below, depending on which way the numbers are located. </p>
<p style="text-align:justify">If you change any of the numbers in the table, click in the cell with the total and hit F9 (or right click and select Update Field). Your total will update. This is particularly helpful if you’re using the table to show the price of services or equipment and the pricing changes. I admit to being a bit of a fumble fingers with a calculator; this way, I let Word do the calculating for me. </p>
<p style="text-align:justify">While you can’t add cells from separate tables (as far as I know), you can use the Formula dialogue box to add the numbers up manually. Make sure you’re in the cell where you want the total, click on the Formula button in the Table Tools tab, and manually enter the numbers with plus/minus signs as needed. Once complete, click OK and the total will be entered in the cell. (And if someone knows how to add cells from multiple tables, please let me know. That’s a trick I’d love to learn.)</p></div></div>
<div><b>Category:</b> <a onclick="OpenPopUpPage('http://www.synergyonline.com/Blog/_layouts/listform.aspx?PageType=4&ListId={BEBD6B7C-8EDF-4976-8627-9238AFF8A903}&ID=10&RootFolder=*', RefreshPage); return false;" href="http://www.synergyonline.com/Blog/_layouts/listform.aspx?PageType=4&ListId={BEBD6B7C-8EDF-4976-8627-9238AFF8A903}&ID=10&RootFolder=*">Microsoft Office</a></div>
<div><b>Published:</b> 4/10/2013 10:57 AM</div>
<div><b>Author:</b> <a href="http://www.synergyonline.com/company/Profiles/Pages/Deborah-Zotian.aspx">Deborah Zotian</a></div>
<div><b>PageKeywords:</b> Microsoft Office, SharePoint 2010, Microsoft Word</div>
<div><b>PageTitle:</b> I didn’t know you could do that! Doing calculations in Word</div>
<div><b>PageDescription:</b> Did you know Word has a built-in Calculator? A calculator which can be added to your Quick Access Toolbar?</div>
]]></description>
      <author>System Account</author>
      <category>Microsoft Office</category>
      <pubDate>Fri, 05 Apr 2013 18:51:03 GMT</pubDate>
      <guid isPermaLink="true">http://www.synergyonline.com/Blog/Lists/Posts/ViewPost.aspx?ID=260</guid>
    </item>
    <item>
      <title>Overcoming the Lack of a Design View in SharePoint Designer 2013</title>
      <link>http://www.synergyonline.com/Blog/Lists/Posts/ViewPost.aspx?ID=259</link>
      <description><![CDATA[<div><b>Body:</b> <div class="ExternalClassAD4C81EE40BB485B831313665244FF9B"><div class="ExternalClass4CF0F0528F6D41E38FA4D44B21035DB2" style="text-align:justify"><p><strong>And what it means for our old friend the Data View Web Part.</strong> </p>
<p>For the average power user, the lack of a design view in SharePoint Designer 2013 is at best a nuisance, and at worst a crippling blow that doubles solution development time. Given that I’ve had the good fortune to work on a number of projects on the SharePoint 2013 platform, I’ve had the opportunity to develop various workarounds. </p>
<p>In no particular order, here are the problems one encounters when using SharePoint Designer 2013 without the design view: </p></div>
<blockquote class="webkit-indent-blockquote" style="margin:0px 0px 0px 40px;border:none;padding:0px;text-align:justify"><div class="ExternalClass4CF0F0528F6D41E38FA4D44B21035DB2"><p>1. Data View Web Parts XSL cannot be visually manipulated. </p></div>
<div class="ExternalClass4CF0F0528F6D41E38FA4D44B21035DB2"><p>2. Data View Web Part data source defaults to GUID of list </p></div>
<div class="ExternalClass4CF0F0528F6D41E38FA4D44B21035DB2"><p>3. Insert web parts/web part zones/controls buttons randomly greyed out. </p></div>
<div class="ExternalClass4CF0F0528F6D41E38FA4D44B21035DB2"><p>4. Inserting a list from the ‘Data View’ drop down inserts an XSLT List View web part by default instead of a data view web part. </p></div></blockquote>
<div class="ExternalClass4CF0F0528F6D41E38FA4D44B21035DB2" style="text-align:justify"><p>It would seem that the majority of the problems encountered have to do with the Data View Web Part. This is indeed the case – previously the most common use of the design view was the manipulation of the XSL output in real time. In SharePoint Designer 2013, we no longer have this luxury, and there is no equivalent method to achieve WYSIWYG XSL design. </p>
<p>In this article, I present several possible solutions to this problem. </p>
<h3><font style="font-weight:bold">How things used to be done</font></h3>
<div> </div>
<p>When information was needed to be displayed in a custom format (e.g news articles on the main page), the common practice in previous versions of SharePoint was to use a Data View Web Part. A power user was able to insert a data view web part into the page, open it up in SharePoint Designer and then proceed to drag and drop the various elements on the page. Behind the scenes, SharePoint designer was actually re-writing the XSLT according the user’s wishes. </p>
<p>With SharePoint Designer 2013, owing to a lack of a design view, this is no longer possible. Whilst the community quickly discovered that it was possible to open a SharePoint 2013 site in SharePoint Designer 2010, it is still considered a hack and is unstable. </p>
<p>If you wish to find out how we can open and design data views using SharePoint Designer 2010, refer to this blog post by Laura Rogers:</p>
<p> <a href="http://www.wonderlaura.com/Lists/Posts/Post.aspx?ID=187" target="_blank">Hack: Data View Web Parts in SharePoint 2013</a> </p>
<h3><font style="font-weight:bold">How things are supposed to be done now</font></h3>
<div> </div>
<p>For the display of information in custom formats, SharePoint 2013 provides us with two options: </p></div>
<blockquote class="webkit-indent-blockquote" style="margin:0px 0px 0px 40px;border:none;padding:0px;text-align:justify"><div class="ExternalClass4CF0F0528F6D41E38FA4D44B21035DB2"><p>1) JSOM (JavaScript Object Model) to interact with list and library data and display using conventional javascript calls (e.g jQuery) </p></div>
<div class="ExternalClass4CF0F0528F6D41E38FA4D44B21035DB2"><p>2) Application of custom display templates to the Content Search web part to display the cross site information. </p></div></blockquote>
<div class="ExternalClass4CF0F0528F6D41E38FA4D44B21035DB2" style="text-align:justify"><p>I am of the opinion that these 2 new methods are better in every way then using XSLT and the data view web part. For starters, SharePoint 2013’s new JSOM allows us to interact with list data without inserting a web part – and thus opens up the possibility of using more conventional web technologies in SharePoint (we no longer need to develop custom web parts for everything, and pure jQuery code is enough). </p>
<p>The content search web part is essentially the targeted replacement of the Content Query web part, and is able to display cross site information and style them using conventional HTML in the form of display templates, another new feature. </p>
<p>In both these methods SharePoint 2013 presents us, there are 2 common threads. One, the ability to use standard web technologies to achieve what previously required a web part to do, and two, they render client side (as opposed to XSLT which was calculated server side) </p>
<h3><font style="font-weight:bold">What happens now?</font></h3>
<div> </div>
<p>Given that I’ve briefly discussed the advantages the 2 new methods impart, what then is the problem? Why don’t we simply use the new methods and forget the old methods ever existed? </p>
<p>2 reasons, firstly because we need to take into account the solutions already created, and secondly for load balancing issues. </p>
<p>Given that XSLT was the foundation of data manipulation in SharePoint ever since the 2003 version, there is a wealth of solutions out there which are already in place and work well. Also, the vast majority of clients we see have some sort of custom development already in place courtesy of their power users whom were trained to use WYSIWYG XSL manipulation in SharePoint Designer. </p>
<p>We need a way to incorporate these solutions into SharePoint 2013, as writing them again using new technologies may be unfeasible, or have poor return on investment. </p>
<p>Also, XSLT runs the query server side. Although ‘server side’ might have recently become a dirty word at Microsoft, there are some advantages in this approach. For one, well formed XSLT renders pretty quickly, and is cached before being sent to the client. Essentially, given 10,000 requests, the server calculates the output only once and then the output is sent out 10,000 times. An equivalent client side solution has the code sent to the 10,000 requesters, and then each of the 10,000 client machines makes a separate calculation of the same query. </p>
<p>Depending on the environment, this might be significant. We need to ability to choose how we are rendering our queries for load balancing purposes. </p>
<h3><font style="font-weight:bold">Solutions (3rd Party)</font></h3>
<div> </div>
<p>WYSIWYG XSLT editing is not currently supported, and likely never will. The closest any one solution will come however, is the ‘Magic Data View Builder’ by Dustin Miller: </p>
<p><a href="http://blog.sharepointexperience.com/2012/03/06/introducing-the-magic-data-view-builder/" target="_blank">Introducing the Magic Data View Builder</a> </p>
<p>This is simply an XSL file which applied to a list or data view, allows for writing of XSLT in browser and a synchronous preview of the rendered code and output. It also allows for one-click insertion of XSLT variables for each of the list columns (user-created or otherwise) into the code. </p>
<p>I don’t want to repeat his documentation here, but suffice to say, it’s become an indispensable tool for me when writing XSLT. </p>
<p>There also exists a video tutorial here:  </p>
<p><a href="http://www.youtube.com/watch?v=WD24wvkpGyc&amp;feature=player_embedded" target="_blank">Magic Data View Builder 2.0</a></p>
<div> </div>
<h3><font style="font-weight:bold">Solutions (SharePoint Designer 2013)</font></h3>
<div> </div>
<p>If 3rd party tools are not quite your thing, or if you don’t want to bother with writing XSLT, here’s a handy guide to inserting Data View Web Parts in SharePoint Designer 2013. </p>
<p>Inserting the DVWP in code view can be somewhat tricky. Here are the steps: </p></div>
<blockquote class="webkit-indent-blockquote" style="margin:0px 0px 0px 40px;border:none;padding:0px;text-align:justify"><div class="ExternalClass4CF0F0528F6D41E38FA4D44B21035DB2"><p>1. Open the site in SharePoint Designer 2013 </p></div>
<div class="ExternalClass4CF0F0528F6D41E38FA4D44B21035DB2"><p>2. Add a new web part page </p></div>
<div class="ExternalClass4CF0F0528F6D41E38FA4D44B21035DB2"><p>3. Edit the page. You should see something like this: </p></div></blockquote>
<div class="ExternalClass4CF0F0528F6D41E38FA4D44B21035DB2"><p></p>
<div style="text-align:center"><img src="/Blog/PublishingImages/Steps.png" alt="Steps.png" style="margin:5px;width:500px;height:348px" /> </div>
 <p></p>
<p style="text-align:justify">If you click on the ‘Insert’ Tab, you might notice that the ‘Data View’ option under the ‘Insert’ tab is greyed out. This is because the HTML hasn’t been parsed. SharePoint Designer 2013, requires all HTML to be parsed before any changes can be made. I suppose this is because it used to be a Design based tool. Most people stop at this stage since there is no external indication that this is necessary. </p></div>
<blockquote class="webkit-indent-blockquote" style="margin:0px 0px 0px 40px;border:none;padding:0px"><div class="ExternalClass4CF0F0528F6D41E38FA4D44B21035DB2"><p style="text-align:justify">4. Click on Code View Tools, and then click on ‘Parse HTML’. </p></div></blockquote>
<div class="ExternalClass4CF0F0528F6D41E38FA4D44B21035DB2"><p style="text-align:justify"></p>
<div style="text-align:center"><img src="/Blog/PublishingImages/Parse%20HTML.png" alt="Parse HTML.png" style="margin:5px;width:500px;height:99px" /> </div>
 <p></p>
 </div>
<blockquote class="webkit-indent-blockquote" style="margin:0px 0px 0px 40px;border:none;padding:0px"><div class="ExternalClass4CF0F0528F6D41E38FA4D44B21035DB2"><p style="text-align:justify">5. You should now be able to insert the Data View. Select a web part zone by locating a &lt;ZoneTemplate&gt; tag and place your cursor inside the tag. (You must do this by scanning the code.) </p></div>
<div class="ExternalClass4CF0F0528F6D41E38FA4D44B21035DB2"><p style="text-align:justify">6. Hit the insert tag and then select ‘Data View’. </p></div>
<div class="ExternalClass4CF0F0528F6D41E38FA4D44B21035DB2"><p style="text-align:justify">7. From the drop down, select the appropriate data source. </p></div></blockquote>
<div class="ExternalClass4CF0F0528F6D41E38FA4D44B21035DB2"><p style="text-align:justify"></p>
<div style="text-align:center"><img src="/Blog/PublishingImages/Data%20Source.png" alt="Data Source.png" style="margin:5px;width:300px;height:317px" /> </div>
 <p></p>
 </div></div>
<blockquote class="webkit-indent-blockquote" style="margin:0px 0px 0px 40px;border:none;padding:0px"><div class="ExternalClassAD4C81EE40BB485B831313665244FF9B"><div class="ExternalClass4CF0F0528F6D41E38FA4D44B21035DB2"><p style="text-align:justify">8. Inserting any data source here will cause SharePoint to render an XSLT List View Web Part. For example: </p></div></div></blockquote>
<div class="ExternalClassAD4C81EE40BB485B831313665244FF9B"><div class="ExternalClass4CF0F0528F6D41E38FA4D44B21035DB2">
<p style="text-align:justify"></p>
<div style="text-align:center"><img src="/Blog/PublishingImages/XSLT%20View.png" alt="XSLT View.png" style="margin:5px;width:500px;height:182px" /> </div>
 <p></p>
 </div>
 </div>
<blockquote class="webkit-indent-blockquote" style="margin:0px 0px 0px 40px;border:none;padding:0px"><div class="ExternalClassAD4C81EE40BB485B831313665244FF9B"><div class="ExternalClass4CF0F0528F6D41E38FA4D44B21035DB2"><p style="text-align:justify">9. Note that we still don’t have access to the XSLT inside. For that we need one more step. Click on the Design Tab, under ‘List View Tools’. </p></div></div>
<div class="ExternalClassAD4C81EE40BB485B831313665244FF9B"><div class="ExternalClass4CF0F0528F6D41E38FA4D44B21035DB2"><p style="text-align:justify">10. Click the button ’Customize XSLT’ </p></div></div></blockquote>
<div class="ExternalClassAD4C81EE40BB485B831313665244FF9B"><div class="ExternalClass4CF0F0528F6D41E38FA4D44B21035DB2">

<p style="text-align:justify"></p>
<div style="text-align:center"><img src="/Blog/PublishingImages/Customize%20XSLT.png" alt="Customize XSLT.png" style="margin:5px" /> </div>
 <p></p>
</div></div>
<blockquote class="webkit-indent-blockquote" style="margin:0px 0px 0px 40px;border:none;padding:0px"><div class="ExternalClassAD4C81EE40BB485B831313665244FF9B"><div class="ExternalClass4CF0F0528F6D41E38FA4D44B21035DB2"><p style="text-align:justify">11. N​ote now the code view changing to expose the underlying XSLT. We can now manipulate it. This is where you would paste in previous XSLT solutions that have been developed. </p></div></div></blockquote>
<div class="ExternalClassAD4C81EE40BB485B831313665244FF9B"><div class="ExternalClass4CF0F0528F6D41E38FA4D44B21035DB2">
<h3 style="text-align:justify"><font style="font-weight:bold">Conclusion</font></h3>
<div style="text-align:justify"> </div>
<p style="text-align:justify">Unfortunately for most power users, we still don’t have a way to WYSIWYG the XSLT output – the steps outlined here simply enable you to work with it in a similar way to SharePoint Designer 2010. However I find that combining this with the ‘Magic Data View Builder’ mentioned earlier allows for almost a WYSIWYG experience, provided you know what are doing. </p>
<p style="text-align:justify">Which means, that for the majority of us it is time to get cracking and learn XSL as well as the new JSOM and Display templates.</p></div></div></div>
<div><b>Category:</b> <a onclick="OpenPopUpPage('http://www.synergyonline.com/Blog/_layouts/listform.aspx?PageType=4&ListId={BEBD6B7C-8EDF-4976-8627-9238AFF8A903}&ID=13&RootFolder=*', RefreshPage); return false;" href="http://www.synergyonline.com/Blog/_layouts/listform.aspx?PageType=4&ListId={BEBD6B7C-8EDF-4976-8627-9238AFF8A903}&ID=13&RootFolder=*">SharePoint</a>; <a onclick="OpenPopUpPage('http://www.synergyonline.com/Blog/_layouts/listform.aspx?PageType=4&ListId={BEBD6B7C-8EDF-4976-8627-9238AFF8A903}&ID=4&RootFolder=*', RefreshPage); return false;" href="http://www.synergyonline.com/Blog/_layouts/listform.aspx?PageType=4&ListId={BEBD6B7C-8EDF-4976-8627-9238AFF8A903}&ID=4&RootFolder=*">Development</a></div>
<div><b>Published:</b> 4/3/2013 2:10 PM</div>
<div><b>Author:</b> <a href="http://www.synergyonline.com/company/Profiles/Pages/MatthewLee.aspx">Matthew Lee</a></div>
<div><b>PageKeywords:</b> sharepoint 2013, SharePoint Expert</div>
<div><b>PageTitle:</b> Overcoming the Lack of a Design View in SharePoint Designer 2013</div>
<div><b>PageDescription:</b> For the average power user, the lack of a design view in SharePoint Designer 2013 is at best a nuisance, and at worst a crippling blow that doubles solution development time. </div>
]]></description>
      <author>System Account</author>
      <category>SharePoint; Development</category>
      <pubDate>Wed, 03 Apr 2013 16:10:32 GMT</pubDate>
      <guid isPermaLink="true">http://www.synergyonline.com/Blog/Lists/Posts/ViewPost.aspx?ID=259</guid>
    </item>
    <item>
      <title>Why SharePoint 2010 Rocks (With Nintex of Course)</title>
      <link>http://www.synergyonline.com/Blog/Lists/Posts/ViewPost.aspx?ID=258</link>
      <description><![CDATA[<div><b>Body:</b> <div class="ExternalClassC4EC58DCA03547868B8008615822B44F"><p style="text-align:justify">SharePoint 2010 seems to offer a dizzying array of solutions to the myriad information management problems that face a business. Depending on the nature of the issue at hand, the solution can be something as simple as a tweak to a default SharePoint 2010 setting, or as involved as a full blown SharePoint development project. </p>
<p style="text-align:justify">As a SharePoint consultant for Synergy the art of the craft is to find something that is both straightforward and least cost, not only in terms of initial implementation, but in terms of operations and maintenance. And without sacrificing quality. </p>
<p style="text-align:justify">Anyone who has worked in information technology for any period of time, from computer support to software development, knows the maxim about producing a solution or product: <a href="http://en.wikipedia.org/wiki/Project_management_triangle" target="_blank">it can be done right, inexpensively, or delivered quickly – choose two</a>. Trying to maximize all three of these conditions was akin to changing the laws of physics, or something more immutable perhaps, the <a href="http://www.dilbert.com/" target="_blank">laws of human nature</a>. </p>
<p style="text-align:justify">SharePoint 2010 with Nintex Workflow 2010 has given promise that there might be an end around on this <a href="http://en.wikipedia.org/wiki/Trilemma" target="_blank">trilemma</a>. These two products work together seamlessly and allow for quickly designed solutions to relatively complicated processes. The foundational capabilities of SharePoint 2010, which provide business agility and worker productivity, coupled with Nintex Workflow 2010’s rapid and (relatively) codeless solution design create a win for all concerned – the business owner, the solution architect, and the end user. </p>
<h3 style="text-align:justify"><font style="font-weight:bold">Project Background</font></h3>
<div style="text-align:justify"> </div>
<p style="text-align:justify">Synergy provides support for a client that is engaged in the medical research field. The company currently designs solutions for the automation of the research process using SharePoint 2010. The research design is complex and involves many facets, including multiple organizations, a host of legal requirements, and the management of the research process itself. </p>
<p style="text-align:justify">Human health research comes with a burden of requirements, one of which is the secure management of Protected Health Information (PHI) for human subjects. Human subjects go through a registration process in order to determine their fitness as a research subject. However much of this information is private and not intended for use in research. Human health researchers are only allowed to access a subset of the information gathered during the registration process. This assures that the research is done without bias, and that the identity of a subject is adequately protected. </p>
<p style="text-align:justify">From an operational perspective this means that the PHI data is separated from the data that is actually used by the research project. There-in lies the challenge. </p>
<h3 style="text-align:justify"><font style="font-weight:bold">Ahem – the Requirements Please</font></h3>
<div style="text-align:justify"> </div>
<p style="text-align:justify"><b>General requirement</b> - The client requested a solution that would allow for the registration of human subject information in one SharePoint 2010 site with a subsequent copy of a subset of the information to another SharePoint 2010 site. </p>
<p style="text-align:justify"><b>Specific Requirement </b>– The solution is required to allow for the following: </p>
<p style="text-align:justify">1. The centralized capture and control of human subject Protected Health Information in a secure SharePoint 2010 site.  </p>
<ul style="text-align:justify"><div> </div>
<li>Note the highlighted fields in the graphic below – these fields are required for research, and are the items copied to research sites.</li></ul>
<div style="text-align:justify"> </div>
<p style="text-align:justify"></p>
<div style="text-align:center"><img src="/Blog/PublishingImages/PHI%20Site.png" alt="PHI Site.png" style="margin-top:5px;margin-right:5px;margin-bottom:5px;margin-left:5px;width:500px;height:307px" /> </div>
 <p></p>
<div style="text-align:justify"> </div>
<p style="text-align:justify">2. The ability of the PHI administrator to manually copy the specified information to a SharePoint 2010 research site. </p>
<ul style="text-align:justify"><div> </div>
<li>Again, note the identified fields, which are copied from the PHI site.</li>
<div> </div>
<li>The information must be traceable back to the PHI list via a unique identifier – the Subject ID.</li></ul>
<div style="text-align:justify"> </div>
<p style="text-align:justify"></p>
<div style="text-align:center"><img src="/Blog/PublishingImages/Research%20Site.png" alt="Research Site.png" style="margin-top:5px;margin-right:5px;margin-bottom:5px;margin-left:5px;width:500px;height:195px" /> </div>
 <p></p>
<div style="text-align:justify"> </div>
<p style="text-align:justify">3. The ability to register additional sites where subject data can subsequently be used. </p>
<ul style="text-align:justify"><div> </div>
<li>This requires the use of a Registration list on the PHI site.</li></ul>
<div style="text-align:justify"> </div>
<p style="text-align:justify"></p>
<div style="text-align:center"><img src="/Blog/PublishingImages/Registration.png" alt="Registration.png" style="margin-top:5px;margin-right:5px;margin-bottom:5px;margin-left:5px;width:500px;height:310px" /> </div>
 <p></p>
<div style="text-align:justify"> </div>
<h3 style="text-align:justify"><font style="font-weight:bold">A Brief SharePoint 2010 / Nintex 2010 Analysis</font></h3>
<div style="text-align:justify"> </div>
<p style="text-align:justify">The overall solution architecture for this project is pretty straight forward – as shown in the depictions above. An itemization of the components for this project are then: </p>
<ul style="text-align:justify"><div> </div>
<li><b>Site</b>: A centralized secured site used for patient registration. The site contains the following:</li>
<div> </div>
<ul><li><b>List</b>: Protected Health Information</li></ul>
<div> </div>
<ul><ul><li>Human subject related fields</li></ul></ul>
<div> </div>
<ul><li><b>List</b>: Registered Research Projects</li></ul>
<div> </div>
<ul><ul><li>Research Project Identifier</li></ul></ul>
<div> </div>
<ul><ul><li>Research Project URL</li></ul></ul>
<div> </div>
<li><b>Site(s)</b>: Research Project</li>
<div> </div>
<ul><li><b>List</b>: Human Subject Information (* the name of this is subject to change, and may become part of the information registered in the Registered Research Projects List at a future date – in other words, the solution should include an option to dynamically select this).</li></ul>
<div> </div>
<li><b>Workflow</b>: A workflow that is manually initiated to copy the data from the Protected Health Information list to the Human Subject Information list as required by the PHI administrator. The workflow looks up in the Registered Research Projects list the URL for the targeted research project and then copies the data to the appropriate Human Subject Information list.</li></ul>
<div style="text-align:justify"> </div>
<p style="text-align:justify">Note that this is a schematic of how human subject registration flows in this research project. This is a relatively simplified version of the process, as it also involves: </p>
<ul style="text-align:justify"><div> </div>
<li>Patient registration</li>
<div> </div>
<li>Approval for patient registration</li>
<div> </div>
<li>Identification for participation in an appropriate research study</li>
<div> </div>
<li>Approval process for inclusion in a study</li>
<div> </div>
<li>A contact process for research project personnel to work with patients, while maintaining anonymity</li>
<div> </div>
<li>Various notifications to those involved in the process</li></ul>
<div style="text-align:justify"> </div>
<p style="text-align:justify">This blog illustrates the process for completing a single Proof of Concept as related to a human research study. </p>
<p style="text-align:justify"><b>Nintex Workflow 2010</b> - The Nintex Workflow is really the core of the solution. Without it, the process would require significant manual intervention or perhaps a coded solution. Manual intervention by a PHI Administrator is conceivable in a small study. However, in a study with 1000 human subjects manual copying of content is prohibitive. A coded solution could be entertained, but then the project would require the ongoing support and maintenance of the code. This is the exact scenario that most businesses want to avoid. </p>
<p style="text-align:justify">Enter the SharePoint 2010 / Nintex Workflow 2010 solution set. </p>
<p style="text-align:justify">Nintex Workflow 2010 provides a number of actions that make the movement of data between lists fairly trivial. Even across site boundaries. For instance, the ‘Create item in another site’ action, shown below, almost meets the requirements for the process. However, a quick study of the action interface reveals that there is no means to dynamically provide a list as a target for the copied PHI. There is a requirement that the PHI Administrator be able to select a list (as a future option). </p>
<p style="text-align:justify"></p>
<div style="text-align:center"><img src="/Blog/PublishingImages/Action.png" alt="Action.png" style="margin-top:5px;margin-right:5px;margin-bottom:5px;margin-left:5px;width:500px;height:347px" /> </div>
 <p></p>
<p style="text-align:justify">So what is the preferred method for connecting dynamically to a site and list? SharePoint 2010 web services. </p>
<h3 style="text-align:justify"><font style="font-weight:bold">The SharePoint 2010 \ Nintex Workflow 2010 Solution Set</font></h3>
<div style="text-align:justify"> </div>
<p style="text-align:justify">The selection of the architecture and technology left only the details of implementation. These are outlined below. </p>
<p style="text-align:justify"><b>Variables - </b>A first step in a workflow is to identify the variables used for storage. They are: </p>
<ul style="text-align:justify"><div> </div>
<li>Study ID – vStudy_ID_txt</li>
<div> </div>
<li>Study URL – vStudy_URL_txt</li>
<div> </div>
<li>Web Service URL – vWeb_Service_URL</li>
<div> </div>
<li>Subject ID – vSubject_ID_txt</li>
<div> </div>
<li>Registrar – vRegistrar_txt</li>
<div> </div>
<li>Sex – vSex_txt</li>
<div> </div>
<li>Ethnicity – vEthnicity_txt</li>
<div> </div>
<li>Birthdate – vBirthDate_datetime</li></ul>
<div style="text-align:justify"> </div>
<p style="text-align:justify">The variables are self-explanatory, excepting the first two above. The explanation for these is as follows: </p>
<ul style="text-align:justify"><div> </div>
<li>The Study ID is used as a lookup into the Registration Table in order to obtain the URL for the actual Study. This is selected by the PHI administration during workflow initiation. As such the variable is set to show on the workflow initiation form.</li>
<div> </div>
<li>The Study URL is the URL that is dynamically generated using the information from the Registration Table so that human subject data can be copied to the site Human Subject Information table.</li></ul>
<div style="text-align:justify">The variables as defined in Nintex are shown below. </div>
<h4></h4>
<div style="text-align:justify"> </div>
<h4></h4>
<div style="text-align:justify"> </div>
<h4></h4>
<div style="text-align:justify"> </div>
<h4></h4>
<div style="text-align:justify"> </div>
<h4></h4>
<div style="text-align:justify"> </div>
<h4></h4>
<div style="text-align:justify"> </div>
<h4></h4>
<div style="text-align:justify"> </div>
<h4></h4>
<div style="text-align:justify"> </div>
<h4></h4>
<div style="text-align:justify"> </div>
<h4></h4>
<div style="text-align:justify"> </div>
<p style="text-align:justify"></p>
<div style="text-align:center"><img src="/Blog/PublishingImages/Variables.png" alt="Variables.png" style="margin-top:5px;margin-right:5px;margin-bottom:5px;margin-left:5px;width:500px;height:378px" /> </div>
<p></p>
<div style="text-align:justify"><b>Actions - </b>Actions define the actual working process for the workflow. In this workflow the actions include the following. The actions are listed in the order used in the workflow. </div>
<ul style="text-align:justify"><div> </div>
<li><b>Query List Action</b> – This action is used to obtain the URL from the Registration List. The selection of the URL is based upon the Study ID obtained when the PHI Administrators initiates the workflow. </li></ul>
<div style="text-align:justify">   </div>
<p style="text-align:justify"></p>
<div style="text-align:center"><img src="/Blog/PublishingImages/Query%20List.png" alt="Query List.png" style="margin-top:5px;margin-right:5px;margin-bottom:5px;margin-left:5px;width:500px;height:410px" /> </div>
<p></p>
<div style="text-align:justify"> </div>
<ul style="text-align:justify"><div> </div>
<li><b>Set Variable</b> <b>Action</b> – Used to load the information from the Protected Health Information List into the corresponding variables. The result looks similar to the graphic below – though this image is truncated. The information loaded using the Set Variable action is:</li>
<div> </div>
<ul><li>Subject ID </li></ul>
<div> </div>
<ul><li>Registrar</li></ul>
<div> </div>
<ul><li>Sex</li></ul>
<div> </div>
<ul><li>Ethnicity</li></ul>
<div> </div>
<ul><li>Birthdate</li></ul></ul>
<div style="text-align:justify"> </div>
<p style="text-align:justify"></p>
<div style="text-align:center"><img src="/Blog/PublishingImages/Graphic.png" alt="Graphic.png" style="margin-top:5px;margin-right:5px;margin-bottom:5px;margin-left:5px;width:200px;height:525px" /> </div>
 <p></p>
<div style="text-align:justify"> </div>
<ul style="text-align:justify"><div> </div>
<li><b>String Builder Action</b> - The next task is to build a string referencing the site web service where the data is written. The String Builder Action takes the information loaded into the vStudy_URL_txt variable, concatenates the string ‘_vti_bin/lists.asmx’, and stores the result in the variable vWeb_Service_URL_txt.</li></ul>
<div style="text-align:justify"> </div>
<p style="text-align:justify"></p>
<div style="text-align:center"><img src="/Blog/PublishingImages/Build%20String.png" alt="Build String.png" style="margin-top:5px;margin-right:5px;margin-bottom:5px;margin-left:5px;width:500px;height:449px" /> </div>
<p></p>
<div style="text-align:justify"> </div>
<ul style="text-align:justify"><div> </div>
<li>Call Web Service Action - The final task is to call the SharePoint 2010 lists.asmx web service, and write the contents of the five variables to the appropriate Human Subject Information list. Details and use information is described below.</li>
<div> </div>
<ul><li>Credentials are required to make the web service call – these should be a service account with the appropriate permissions for writing to the respective sites and lists.</li></ul>
<div> </div>
<ul><li>When initially configuring the Call Web Service Action a real URL SharePoint 2010 Web Service is required in order to allow for the selection of the desired web method. Otherwise the web method drop down box is grayed out. After the web method (UpdateListItems) is selected, then the URL can be replaced with a variable, which in this case is the List URL (vWeb_Service_URL_txt).</li></ul>
<div> </div>
<ul><li>Use the Soap editor mode for constructing the web service call.</li></ul></ul>
<div style="text-align:justify"> </div>
<p style="text-align:justify">The Call Web Service Action is shown below: </p>
<p style="text-align:justify"></p>
<div style="text-align:center"><img src="/Blog/PublishingImages/Call.png" alt="Call.png" style="margin-top:5px;margin-right:5px;margin-bottom:5px;margin-left:5px;width:500px;height:580px" /> </div>
<p></p>
<p style="text-align:justify">A quick review of the Web Service Message reveals the details of the actual web service call. Some of the particulars of importance are: </p>
<ul style="text-align:justify"><div> </div>
<li>The list name is hard coded into the web service call, shown below. In the future this may require dynamic resolution - thus requiring lookups and variables. This was noted earlier in the article.</li>
<div> </div>
<li>In order for the UpdateListItems method to insert a new item into a list the ‘Cmd’ type is ‘New’.</li>
<div> </div>
<li>Each field has to be reference by its internal name, not the display name. The internal name can be obtained by a number of methods – depending on your tooling, you can find the internal name using PowerShell, the browser address bar, a Web Service GetList query, or more. An Internet search on the topic will provide information about the process targeted toward you environment.</li>
<div> </div>
<li>The workflow variables are referenced in the web service call for the corresponding field for each column on the target list.</li></ul>
<div style="text-align:justify"> </div>
<p style="text-align:justify"></p>
<div style="text-align:justify">The final workflow looks as follows (wrapped for readability).</div>
<div style="text-align:justify"><div style="text-align:center"><img src="/Blog/PublishingImages/Final%20Workflow.jpg" alt="Final Workflow.jpg" style="margin-top:5px;margin-right:5px;margin-bottom:5px;margin-left:5px;width:500px;height:517px" /> </div> </div>
<p></p>
<div style="text-align:justify"> </div>
<p style="text-align:justify"><b>Run the Workflow</b> - Once all of these items have been configured and the workflow published, then the process is ready to roll. The PHI Administrator can copy human subject information to a target research site by:  </p>
<ul style="text-align:justify"><div> </div>
<li>Selecting the appropriate PHI list item</li>
<div> </div>
<li>Selecting Workflows on the SharePoint 2010 list ribbon</li>
<div> </div>
<li>Starting the workflow</li>
<div> </div>
<li>On the initiation page select a target research project</li>
<div> </div>
<li>Click the Start button </li></ul>
<div style="text-align:justify"> </div>
<p style="text-align:justify">The copy of the information to the target research site is then executed. </p>
<h3 style="text-align:justify"><font style="font-weight:bold">Wrap It Up – Time to Go Home</font></h3>
<div style="text-align:justify"> </div>
<p style="text-align:justify">What is shown above is a proof-of-concept that has the possibility for many real world applications. As a proof of concept there are a number of steps that have been omitted. There is no error checking or validation, for instance. There is no discussion of site settings for security management. And indeed the process could be much more elaborate and complex to accommodate more variation. </p>
<p style="text-align:justify">The main thrust of the article is that, given good requirements, Nintex Workflow 2010 and SharePoint 2010 provide a platform for rapid application design. Although use of this technology is not trivial, it is by far a huge step forward in business process automation. The combination of Nintex Workflow 2010 and SharePoint 2010 puts within reach the real possibility of creating solutions that would otherwise be ‘in code’. </p>
<p style="text-align:justify">This article started by stating that <u>work can be done right, inexpensively, or delivered quickly – choose two</u>. It might be brash to say that SharePoint 2010 and Nintex Workflow 2010 have upended this equation, and indeed have bent the laws of physics. In reality, that is a subjective assessment and is in the eye of the project manager. As I have experienced a significant rise in productivity from using these tools, and have only really started, I can only come to one conclusion – SharePoint 2010, with Nintex Workflow 2010, Rocks!</p></div></div>
<div><b>Category:</b> <a onclick="OpenPopUpPage('http://www.synergyonline.com/Blog/_layouts/listform.aspx?PageType=4&ListId={BEBD6B7C-8EDF-4976-8627-9238AFF8A903}&ID=13&RootFolder=*', RefreshPage); return false;" href="http://www.synergyonline.com/Blog/_layouts/listform.aspx?PageType=4&ListId={BEBD6B7C-8EDF-4976-8627-9238AFF8A903}&ID=13&RootFolder=*">SharePoint</a>; <a onclick="OpenPopUpPage('http://www.synergyonline.com/Blog/_layouts/listform.aspx?PageType=4&ListId={BEBD6B7C-8EDF-4976-8627-9238AFF8A903}&ID=17&RootFolder=*', RefreshPage); return false;" href="http://www.synergyonline.com/Blog/_layouts/listform.aspx?PageType=4&ListId={BEBD6B7C-8EDF-4976-8627-9238AFF8A903}&ID=17&RootFolder=*">Workflow</a></div>
<div><b>Published:</b> 3/26/2013 11:15 AM</div>
<div><b>Author:</b> <a href="http://www.synergyonline.com/company/Profiles/Pages/ChrisWelch.aspx">Chris Welch</a></div>
<div><b>PageKeywords:</b> SharePoint Branding, Nintex Workflow</div>
<div><b>PageTitle:</b> Why SharePoint 2010 Rocks (With Nintex of Course)</div>
<div><b>PageDescription:</b> SharePoint 2010 seems to offer a dizzying array of solutions to the myriad information management problems that face a business. Depending on the nature of the issue at hand, the solution can be something as simple as a tweak to a default SharePoint 2010 </div>
]]></description>
      <author>System Account</author>
      <category>SharePoint; Workflow</category>
      <pubDate>Tue, 26 Mar 2013 14:59:36 GMT</pubDate>
      <guid isPermaLink="true">http://www.synergyonline.com/Blog/Lists/Posts/ViewPost.aspx?ID=258</guid>
    </item>
    <item>
      <title>SharePoint 2013: an End-User Perspective on New Interface Changes</title>
      <link>http://www.synergyonline.com/Blog/Lists/Posts/ViewPost.aspx?ID=257</link>
      <description><![CDATA[<div><b>Body:</b> <div class="ExternalClassE99958FBEA4944D28CCBA5ED36D95651"><p style="text-align:justify">Now that SharePoint 2013 has officially launched and the promotional dust has settled, I would like to follow-up my last blog <a href="/Blog/Lists/Posts/Post.aspx?ID=239">Quickly Discover Great Improvements and Exciting Changes in SharePoint 2013 (Office 15)</a> with a brief overview of the changes and provide a quick illustration of some of the new features of SharePoint 2013 from an End-User’s perspective.  </p>
<p style="text-align:justify">This is different from my usual role as SharePoint Administrator, but as with any new product, it is important to start from the ground-up with new information. It also helps when clients and participants of our SharePoint training courses ask questions about the design and interface of SharePoint 2013, I (and now hopefully you) can suggest and give some answers. As usual please ‘get your hands dirty’ so to speak with a development environment if possible while reading this information as experiential learning is the best way to learn. </p>
<p style="text-align:justify">  </p>
<h4 style="text-align:justify"><font style="font-weight:bold">Interface changes in SharePoint 2013</font></h4>
<div style="text-align:justify"> </div>
<p style="text-align:justify">SharePoint 2013 extends the feature and capability set of SharePoint 2010 quite substantially. While many will view the product as SharePoint 2010 with a new interface, those who work intimately with it every day (Architects, Admins and Designers) will know this is just not the case. </p>
<p style="text-align:justify">From the end-user’s perspective, the new look and feel of SharePoint 2013 server appears with the same ‘Microsoft Design Language’ as its client, Office 2013. It is clean and the Graphic User Interface (GUI) has had a substantial redesign. Pictured here is the Out of the Box (OOTB) Enterprise Wiki Site template.  </p>
<p align="justify"></p>
<div style="text-align:center"><img src="/Blog/PublishingImages/WikiSite.png" alt="WikiSite.png" style="margin-top:5px;margin-right:5px;margin-bottom:5px;margin-left:5px;width:600px;height:257px" /><br /><br /> </div>
<div style="text-align:center">Figure1.0</div>
<p></p>
<p style="text-align:justify">Let’s start with the Top Left hand side (and a reminder… this is OOTB…Out-Of-The-Box). Many customisations can be made to suit your needs and flip this design totally on its head with the newly in-built Design Manager or SharePoint Designer 2013 and some funky web design skills. Please also be aware that you may not have permissions to access or change settings. If pain persists, see your Site Administrator <img class="wlEmoticon wlEmoticon-smile" alt="Smile" src="/blog/Lists/Posts/Attachments/257/wlEmoticon-smile_2_7AB23AA7.png" style="border-bottom-style:none;border-left-style:none;border-top-style:none;border-right-style:none" />. </p>
<p style="text-align:justify">  </p>
<p style="text-align:justify">The GUI has been redesigned to make landing pages and pages in general, more attractive. The typical placement from SharePoint 2010 of elements such as the Site Actions menu (now called the Settings menu) has been moved to the Top Right hand side.<br /></p>
<p style="text-align:justify"></p>
<div style="text-align:center"><img src="/Blog/PublishingImages/Browse.png" alt="Browse.png" style="margin-top:5px;margin-right:5px;margin-bottom:5px;margin-left:5px;width:100px;height:95px" /> </div>
<div>The Placement of the non-interactive text element ‘SharePoint’ is most likely an advertisement as well as a distinguishing graphic so the Portal (either internally or externally facing) can be more easily identified by the end user.</div>
<p></p>
<p style="text-align:justify">The new SharePoint Icon is presented as a clickable graphic back to the current site homepage.  </p>
<p style="text-align:justify"></p>
<div style="text-align:center"><img src="/Blog/PublishingImages/Page.png" alt="Page.png" style="margin-top:5px;margin-right:5px;margin-bottom:5px;margin-left:5px;width:600px;height:87px" /> </div>
 <p></p>
<p style="text-align:justify">The Ribbon drops down nicely when changing from Browse mode to Page tab edit mode. The ribbon can be hidden by changing the Navigation Settings and ticking ‘Make &quot;Show Ribbon&quot; and &quot;Hide Ribbon&quot; commands available’. It can then be shown manually by clicking on the option under Settings. </p>
<p style="text-align:justify">On to the Left hand side of the page we have what is called the Current Navigation (also known as the Quick Launch) due to its changing nature based on the current site you have navigated to. In this graphic it is used to launch content within the sub-site called Engineering.</p>
<p style="text-align:justify"></p>
<div style="text-align:center"><img src="/Blog/PublishingImages/EditLinks.png" alt="EditLinks.png" style="margin-top:5px;margin-right:5px;margin-bottom:5px;margin-left:5px;width:150px;height:176px" /> </div>
<p></p>
<p style="text-align:justify">Microsoft have included in the Team Site template: </p>
<ul style="text-align:justify"><div> </div>
<li>A link back to this Site called ‘Home’</li>
<div> </div>
<li>A default OneNote Notebook for the site</li>
<div> </div>
<li>A default library called ‘Documents’</li>
<div> </div>
<li>A ‘Site Contents’ link which is a page (see figure 1.1 below) where you can add sub-sites or Lists and Libraries which are now called ‘Apps’. </li></ul>
<div style="text-align:justify">There are no major changes here in terms of the Current Navigation. However there is a handy option called ‘EDIT LINKS’ so there is no need to navigate to Site Settings -&gt; Navigation, etc. Here you can edit live within the browser by dragging a link or manually creating one which makes Site Administration tasks that little bit easier. You will also find ‘EDIT LINKS’ scattered in other templates and web parts throughout SharePoint 2013. </div>
<div style="text-align:justify"><div style="text-align:center"><img src="/Blog/PublishingImages/Content.png" alt="Content.png" style="margin-top:5px;margin-right:5px;margin-bottom:5px;margin-left:5px;width:600px;height:344px" /> </div>
<div style="text-align:center"> Figure 1.1</div></div>
<div style="text-align:justify"> </div>
<p style="text-align:justify">A major change is what is included OOTB with the default SharePoint 2013 Team Site Template. The Microsoft SharePoint Product Group felt so strongly about the power of OneNote being placed in its Team Site template (which let’s face it, is the collaborative soul of SharePoint) that they went ahead anyway and did it.</p>
<p style="text-align:justify"></p>
<div style="text-align:center"><img src="/Blog/PublishingImages/OneNote.png" alt="OneNote.png" style="margin-top:5px;margin-right:5px;margin-bottom:5px;margin-left:5px;width:100px;height:100px" /> </div>
<p></p>
<div style="text-align:justify"> </div>
<p style="text-align:justify">I use OneNote for almost any project I work on as its flexibility to hold different content and synchronise changes is very handy. When you place a notebook into SharePoint, it is in the cloud and can be read\edited from the browser or synched to and from your OneNote Office application. But an experienced word of warning to you; </p>
<ul style="text-align:justify"><div> </div>
<li>While your use of OneNote makes sense to you, make sure you establish clear expectations and governance towards the correct use of it for your organisation or department. Otherwise, there could be some interesting issues when it comes to collaborating or publishing insertions from the OneNote file into usable documents in your ‘Documents’ library for the Team Site.</li></ul>
<div style="text-align:justify"> </div>
<p style="text-align:justify">On to the Main Content zone of a SharePoint page. Of course the design and placement of web parts in the Main Content zone for your site page will be up to the Site Administrator or your Designer\Design teams liking.  </p>
<p style="text-align:justify">Pictured here is the OOTB Team Site template with the interactive ‘Get started with your site’ Web Part. This contains large Metro UI friendly icons. </p>
<p style="text-align:justify"></p>
<div style="text-align:center"><img src="/Blog/PublishingImages/Engineering.png" alt="Engineering.png" style="margin-top:5px;margin-right:5px;margin-bottom:5px;margin-left:5px;width:600px;height:380px" /> </div>
<div> </div>
<div style="text-align:center"> Figu​re 1.3</div>
<p></p>
<p style="text-align:justify"><br /></p>
<p style="text-align:justify">Let’s take a look at the Main Content zone when we open the default ‘Documents’ library. </p>
<p style="text-align:justify"></p>
<div style="text-align:center"><img src="/Blog/PublishingImages/Files.png" alt="Files.png" style="margin-top:5px;margin-right:5px;margin-bottom:5px;margin-left:5px;width:600px;height:294px" /> </div>
<div style="text-align:center"> Figure 1.4</div>
<p></p>
<p style="text-align:justify"><br /></p>
<p style="text-align:justify">As shown above, a great new feature of SharePoint 2013 is the ability to have a sneak preview of the document in your document library. This Document Preview is also available in Search if you have an Office Web Apps server as part of your SharePoint 2013 Farm. Preview allows you to ‘see’ your Office documents without actually opening the document. There is no OOTB PDF preview capability, but you can create a PDF Preview as Steve Mann points out <a href="http://stevemannspath.blogspot.com.au/2012/10/sharepoint-2013-pdf-preview-in-search.html">here.</a> Once you click the Ellipses (identified by the three dots ‘…’), the item is ticked and remains in focus. When you click a second time the document displays a sneak preview and other options which include last modified date, modified by, who the document is currently shared to and a URL link box to copy and then paste from. You can also multi select documents and unselect very easily – a very handy function. </p>
<p style="text-align:justify">Underneath these is an ‘EDIT’ option which will automatically open the document, Microsoft Excel in this case, or in the browser if Office Web Apps server has been installed.</p>
<p style="text-align:justify">There is also a ‘SHARE’ option to share out the document to users and groups.  </p>
<p style="text-align:justify"></p>
<div style="text-align:center"><img src="/Blog/PublishingImages/Share.png" alt="Share.png" style="margin-top:5px;margin-right:5px;margin-bottom:5px;margin-left:5px;width:250px;height:191px" /> </div>
 <p></p>
<p style="text-align:justify"><u><em>Note:</em></u> I don’t know if it was a poor default design but notice the ‘SHOW OPTIONS’ in the graphic? </p>
<p style="text-align:justify">Well when you click it, it unhides ‘Send an email invitation’ which is enabled by default! This is sure to be an unliked default due to the hidden nature of the option and the potential flood of emails should a large group be selected to share the document with such as the ‘Domain Users’ group.  </p>
<p style="text-align:justify">After further investigation, this is also the default behavior for assigning permissions to new users and groups as well.</p>
<p style="text-align:justify"></p>
<div style="text-align:center"><img src="/Blog/PublishingImages/HideOptions.png" alt="HideOptions.png" style="margin-top:5px;margin-right:5px;margin-bottom:5px;margin-left:5px;width:250px;height:88px" /> </div>
 <p></p>
<p style="text-align:justify">There may well be a master page edit for this but this was an oversight by the designers. This option should at least be unhidden as it doesn’t take much space in my opinion.</p>
<p style="text-align:justify">In addition to these options there is a secondary Ellipses (…) button which reveals a fly-down of other typical document options to View, Edit, Check-Out the document, etc. </p>
<p style="text-align:justify"></p>
<div style="text-align:center"><img src="/Blog/PublishingImages/Ellipses.png" alt="Ellipses.png" style="margin-top:5px;margin-right:5px;margin-bottom:5px;margin-left:5px" /> </div>
 <p></p>
<p style="text-align:justify">Adding new documents to libraries is as easy as dragging and dropping files over the indicated area. Searching documents in the Library is as easy as utilising the library Search bar. </p>
<p style="text-align:justify"></p>
<div style="text-align:center"><img src="/Blog/PublishingImages/Documents.png" alt="Documents.png" style="margin-top:5px;margin-right:5px;margin-bottom:5px;margin-left:5px;width:350px;height:249px" /> </div>
 <p></p>
<p style="text-align:justify">‘All Documents’ is the name of the current View that is selected and by clicking the ellipses next to this you have options to modify the current view or create a new view. </p>
<p style="text-align:justify"></p>
<div style="text-align:center"><img src="/Blog/PublishingImages/Modify.png" alt="Modify.png" style="margin-top:5px;margin-right:5px;margin-bottom:5px;margin-left:5px;width:150px;height:98px" /> </div>
 <p></p>
<p style="text-align:justify">So if you can adjust to the new ellipses buttons (of which we have already witnessed three) these options really free up screen real estate for the viewer to be consumed by attractive web design, the most common actions and your very important content.</p>
<p style="text-align:justify">On to the Top Right hand side of the page, we have many of the Social elements and SharePoint customization options available to the user. Remember all of these options may not be available to you due to the current Site Template in use and\or your permissions on the site in question is not sufficient. </p>
<p style="text-align:justify"></p>
<div style="text-align:center"><img src="/Blog/PublishingImages/Newsfeed.png" alt="Newsfeed.png" style="margin-top:5px;margin-right:5px;margin-bottom:5px;margin-left:5px;width:350px;height:116px" /> </div>
 <p></p>
<p style="text-align:justify">Newsfeed – firstly may I say that the benefits of the new ability to follow things in SharePoint 2013 are immense. By clicking the FOLLOW button you can follow people, documents, sites and even tags. </p>
<p style="text-align:justify"></p>
<div style="text-align:center"><img src="/Blog/PublishingImages/Follow.png" alt="Follow.png" style="margin-top:5px;margin-right:5px;margin-bottom:5px;margin-left:5px;width:100px;height:40px" /> </div>
 <p></p>
<p style="text-align:justify">Newsfeed is a page on your personal MySite used to collate objects you choose to follow and are nicely grouped into a great unified overview of this content over time. If you are following an item and it changes, you will be notified here. </p>
<p style="text-align:justify"></p>
<div style="text-align:center"><img src="/Blog/PublishingImages/MySite.png" alt="MySite.png" style="margin-top:5px;margin-right:5px;margin-bottom:5px;margin-left:5px;width:350px;height:305px" /> </div>
 <p></p>
<p style="text-align:justify">You even have a web part on the newsfeed page which counts how many objects you are following from each category. Each number is a link that takes you to a view of only those items in the category #cool! FB-style without the clutter. </p>
<p style="text-align:justify"></p>
<div style="text-align:center"><img src="/Blog/PublishingImages/ImFollowing.png" alt="ImFollowing.png" style="margin-top:5px;margin-right:5px;margin-bottom:5px;margin-left:5px;width:100px;height:191px" /> </div>
 <p></p>
<p style="text-align:justify"></p>
<div><u>Everyone</u> - The Everyone feed displays the last 20 posts or replies across all users. </div>
<div><u>Mentions</u> - The Mentions feed displays all posts or replies where you were mentioned. </div>
<p></p>
<p style="text-align:justify">Ellipses - again? Yes if you click the ellipses it reveals two more available tabs: Activities and Likes. </p>
<p style="text-align:justify"></p>
<div><u>Activities</u> - The Activities feed shows <b><u>all</u></b> activities associated with your usage of SharePoint which includes system activities and actions. This feed is also seen when other users browse to your profile or your About Me page.</div>
<div><u>Likes</u> - The Likes feed displays a list of posts or replies that the user has liked. This has no relationship to the ‘I Like It’ feature from SharePoint Server 2010. </div>
<p></p>
<p style="text-align:justify">SkyDrive – this option takes you to your own SkyDrive Pro page within your personal document library on MySite. As you may or may not know, SkyDrive is Microsoft’s cloud storage platform where you can save and synchronise files from your personal device to the internet. Try it <a href="https://login.live.com/login.srf?wa=wsignin1.0&amp;rpsnv=11&amp;ct=1362011141&amp;rver=6.2.6289.0&amp;wp=MBI_SSL_SHARED&amp;wreply=https://skydrive.live.com/&amp;lc=3081&amp;id=250206&amp;mkt=en-AU&amp;cbcxt=sky" target="_blank">here</a> for free!</p>
<p style="text-align:justify"></p>
<div style="text-align:center"><img src="/Blog/PublishingImages/SkyDrive.png" alt="SkyDrive.png" style="margin-top:5px;margin-right:5px;margin-bottom:5px;margin-left:5px;width:350px;height:116px" /> </div>
 <p></p>
<p style="text-align:justify"><u><em>Note:</em></u> Please do not get confused with the personal Internet version of SkyDrive (provided link) and SkyDrive Pro which I am showing you here in SharePoint 2013. SkyDrive Pro is your professional library which allows you to store and sychronise documents from SharePoint to your ‘Documents’ folder on your computer. Think of it as SkyDrive for business. Yes I know,a bit confusing as the SkyDrive name we click here in SharePoint 2013 is actually an abbreviated name and should have ‘Pro’ besides it.  </p>
<p style="text-align:justify">When you store files and folders in this SharePoint Library, only you can view and edit them. However, you also have the option to easily share them with co-workers. You can even access them from your mobile devices.</p>
<p style="text-align:justify">This option is also available in Office 365 but clients need to install the SkyDrive Pro client sync application. This is how it looks on the client. </p>
<p style="text-align:justify"></p>
<div style="text-align:center"><img src="/Blog/PublishingImages/LookOfSD.png" alt="LookOfSD.png" style="margin-top:5px;margin-right:5px;margin-bottom:5px;margin-left:5px;width:100px;height:87px" /> </div>
 <p></p>
<p style="text-align:justify">Sites – this option takes you to your own personal MySite page of followed Sites. Very Handy! I think we will see some more customisation and development on this page in future versions.  </p>
<p style="text-align:justify"></p>
<div style="text-align:center"><img src="/Blog/PublishingImages/Sites.png" alt="Sites.png" style="margin-top:5px;margin-right:5px;margin-bottom:5px;margin-left:5px;width:350px;height:116px" /> </div>
<div style="text-align:center"><div style="text-align:center"><img src="/Blog/PublishingImages/Followed.png" alt="Followed.png" style="margin-top:5px;margin-right:5px;margin-bottom:5px;margin-left:5px;width:600px;height:181px" /> </div>
<div>Figure 1.5 </div></div>
<p></p>
<p style="text-align:justify">The Administrator drop down reveals the About Me link to your About Me page in your MySite and the Sign Out option. </p>
<p style="text-align:justify"></p>
<div style="text-align:center"><img src="/Blog/PublishingImages/Administrator.png" alt="Administrator.png" style="margin-top:5px;margin-right:5px;margin-bottom:5px;margin-left:5px;width:350px;height:118px" /> </div>
 <p></p>
<p style="text-align:justify">The Gear Icon is the Settings button and gives you access to Page and Site Settings for the current Page you are on. It is the new version of the old Site Actions Menu.  </p>
<p style="text-align:justify"></p>
<div style="text-align:center"><img src="/Blog/PublishingImages/Gear.png" alt="Gear.png" style="margin-top:5px;margin-right:5px;margin-bottom:5px;margin-left:5px;width:350px;height:297px" /> </div>
 <p></p>
<p style="text-align:justify"><u><em>Note:</em></u> Please don’t confuse this with the Internet Explorer 10 Internet Tools Cog that may be just above it. </p>
<p style="text-align:justify"></p>
<div style="text-align:center"><img src="/Blog/PublishingImages/ToolCog.png" alt="ToolCog.png" style="margin-top:5px;margin-right:5px;margin-bottom:5px;margin-left:5px;width:150px;height:72px" /> </div>
 <p></p>
<p style="text-align:justify">The question mark will load SharePoint Help. </p>
<p style="text-align:justify"></p>
<div style="text-align:center"><img src="/Blog/PublishingImages/Question.png" alt="Question.png" style="margin-top:5px;margin-right:5px;margin-bottom:5px;margin-left:5px;width:350px;height:116px" /> </div>
 <p></p>
<p style="text-align:justify">As mentioned previously, these options allow you to Share, Follow, Sync and Edit the Current Site. The last icon option is called Focus on Content.</p>
<p style="text-align:justify"></p>
<div style="text-align:center"><img src="/Blog/PublishingImages/Options.png" alt="Options.png" style="margin-top:5px;margin-right:5px;margin-bottom:5px;margin-left:5px;width:350px;height:116px" /> </div>
 <p></p>
<p style="text-align:justify">This will zoom on the content zoned area of the page and hide the Global and Current navigational elements of the page. An excellent inclusion for mobile devices and the sight imparied such as myself! </p>
<p style="text-align:justify">Here is the Engineering Site side-by-side with ‘Focus on Content’ enabled: </p>
<p style="text-align:justify"></p>
<div style="text-align:center"><img src="/Blog/PublishingImages/Focus1.png" alt="Focus1.png" style="margin-top:5px;margin-right:5px;margin-bottom:5px;margin-left:5px;width:250px;height:161px" /><img src="/Blog/PublishingImages/Focus2.png" alt="Focus2.png" style="margin-top:5px;margin-right:5px;margin-bottom:5px;margin-left:5px;width:250px;height:159px" /><br /><br /></div>
<div style="text-align:center">Figure 1.6</div>
<p></p>
<p style="text-align:justify">Well what a revamped interface SharePoint 2013 has proven to be. I hope this summary and blog has given you an understanding of the new Interface changes to expect in the latest incarnation of SharePoint, Microsoft SharePoint 2013. Of course there are many more options and customisations available (see Figure 1.7) but these are the basics just to get started. </p>
<p style="text-align:justify"></p>
<div style="text-align:center"><img src="/Blog/PublishingImages/SynergyAP.png" alt="SynergyAP.png" style="margin-top:5px;margin-right:5px;margin-bottom:5px;margin-left:5px;width:600px;height:320px" /> </div>
<div style="text-align:center">Figure​ 1.7</div>
<p></p>
<p style="text-align:justify">References: </p>
<p style="text-align:justify"><a href="http://office.microsoft.com/en-us/support/whats-new-in-microsoft-sharepoint-server-2013-HA102785546.aspx" target="_blank">What’s new in Microsoft SharePoint Server 2013</a> </p>
<p style="text-align:justify"><a href="http://stevemannspath.blogspot.com.au/2012/10/sharepoint-2013-pdf-preview-in-search.html" target="_blank">SharePoint 2013: PDF Preview in Search Results – Steve Mann</a> </p>
<p style="text-align:justify"><a href="http://sharepoint.microsoft.com/blog/Pages/BlogPost.aspx?pID=1018" target="_blank">Microsoft SharePoint Team Blog – Nathaniel Granor</a> </p>
<p style="text-align:justify"><a href="http://sharepoint.microsoft.com/blog/Pages/BlogPost.aspx?pID=1033" target="_blank">Microsoft SharePoint Team Blog – Tejas Mehta</a></p></div></div>
<div><b>Category:</b> <a onclick="OpenPopUpPage('http://www.synergyonline.com/Blog/_layouts/listform.aspx?PageType=4&ListId={BEBD6B7C-8EDF-4976-8627-9238AFF8A903}&ID=4&RootFolder=*', RefreshPage); return false;" href="http://www.synergyonline.com/Blog/_layouts/listform.aspx?PageType=4&ListId={BEBD6B7C-8EDF-4976-8627-9238AFF8A903}&ID=4&RootFolder=*">Development</a>; <a onclick="OpenPopUpPage('http://www.synergyonline.com/Blog/_layouts/listform.aspx?PageType=4&ListId={BEBD6B7C-8EDF-4976-8627-9238AFF8A903}&ID=13&RootFolder=*', RefreshPage); return false;" href="http://www.synergyonline.com/Blog/_layouts/listform.aspx?PageType=4&ListId={BEBD6B7C-8EDF-4976-8627-9238AFF8A903}&ID=13&RootFolder=*">SharePoint</a></div>
<div><b>Published:</b> 3/20/2013 3:56 PM</div>
<div><b>Author:</b> <a href="http://www.synergyonline.com/company/Profiles/Pages/GregLarkins.aspx">Greg Larkins</a></div>
<div><b>PageTitle:</b> SharePoint 2013: an End-User Perspective on new interface changes</div>
<div><b>PageDescription:</b> Now that SharePoint 2013 has officially launched and the promotional dust has settled, I would like to follow-up my last blog with a brief overview of the changes &amp; provide a quick illustration of some of the new features of SP 2013 from an End-User’s per</div>
<div><b>Attachments:</b> <a href="http://www.synergyonline.com/Blog/Lists/Posts/Attachments/257/wlEmoticon-smile_2_7AB23AA7.png">http://www.synergyonline.com/Blog/Lists/Posts/Attachments/257/wlEmoticon-smile_2_7AB23AA7.png</a><br /><a href=""></a></div>
]]></description>
      <author>System Account</author>
      <category>Development; SharePoint</category>
      <pubDate>Wed, 20 Mar 2013 19:24:55 GMT</pubDate>
      <guid isPermaLink="true">http://www.synergyonline.com/Blog/Lists/Posts/ViewPost.aspx?ID=257</guid>
    </item>
    <item>
      <title>Overview of using REST in SharePoint 2010</title>
      <link>http://www.synergyonline.com/Blog/Lists/Posts/ViewPost.aspx?ID=35</link>
      <description><![CDATA[<div><b>Body:</b> <div class="ExternalClass427217218F6F4425A84276DFD589071F"> <p><font size="2">REST (or </font><a href="http://en.wikipedia.org/wiki/Representational_State_Transfer" target="_blank"><font size="2">Representational State Transfer</font></a><font size="2">) is an easy way to easily get or post items to a server-side web service.  It is used in situations where you would use a web service but do not want the overhead and tightly-coupled nature of SOAP. With REST, it’s just a simple, client-server-like request using HTTP to retrieve or send information.  Technically, REST is not a protocol, but an architectural style.</font></p>
 <p><font size="2">SharePoint 2010, being based on </font><a href="http://msdn.microsoft.com/en-us/netframework/aa663324.aspx" target="_blank"><font size="2">WCF</font></a><font size="2"> in the .NET 3.5 Framework, has built-in RESTful web services which allow us to take advantage of this simplicity in custom applications we write.  It is one of the many data access mechanisms used in SharePoint 2010 development.  REST is intended for remote applications (i.e. not running physically on the SharePoint server) that need basic read/write capabilities to SharePoint’s list and library data.</font></p>
 <p><strong><font size="2">(Technical Note: At the time of writing, this was based on SharePoint 2010 beta 2. For this to work, you need to download and install the </font></strong><a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=a71060eb-454e-4475-81a6-e9552b1034fc&amp;displaylang=en" target="_blank"><strong><font size="2">v1.5 CTP2</font></strong></a><strong><font size="2"> version of ADO.NET data services on your SharePoint web front ends).</font></strong></p>
 <p><font size="2">To help demonstrate some examples, let’s just go into the browser and make some get requests.  First off, here is a simple way to retrieve the lists and libraries in a web site.  (In my examples these will come from a SharePoint teamsite.)</font></p>
 <p><font size="2">http://sp2010a/teamsite/_vti_bin/listdata.svc</font></p>
 <p><font size="2">To retrieve information for a single list</font></p>
 <p><font size="2">http://sp2010a/teamsite/_vti_bin/listdata.svc/Contacts </font> </p>
<p><font size="2">Or perhaps just a single contact (in this case, the one with ID = 1) </font> </p>
<p><font size="2">http://sp2010a/teamsite/_vti_bin/listdata.svc/Contacts(1) </font> </p>
<p><font size="2"></font> </p>
 <p><font size="2">The output result comes back as an XML-based </font><a href="http://en.wikipedia.org/wiki/ATOM" target="_blank"><font size="2">ATOM</font></a><font size="2"> feed which is similar to RSS but having some notable advantages such as supporting binary object types.  By default, your browser may by default render this in a friendly HTML-way.  If you want to see the raw XML output--and for this demostration, we do--you’ll need to tell your browser otherwise.  For IE version 8 go to Tools –&gt; Internet Options –&gt; Content tab –&gt; Feeds and web slices Settings.  In this dialog, clear the <em>Turn on feed reading view</em> checkbox as shown here:</font></p>
 <p><a href="/Blog-Original/blog-moss/Lists/Posts/Attachments/117/image_2_77095443.png"><font size="2"><img title="image_2_77095443" border="0" alt="image_2_77095443" src="/Blog/Lists/Posts/Attachments/35/image_2_77095443_8dd2791a-89ac-4f95-8dfc-78c6bc80ab6d_222710AC.png" width="231" height="244" style="background-image:none;border-bottom-width:0px;border-bottom-style:initial;border-bottom-color:initial;border-left-width:0px;border-left-style:initial;border-left-color:initial;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-top-style:initial;border-top-color:initial;border-right-width:0px;border-right-style:initial;border-right-color:initial;padding-top:0px" /></font></a> </p>
 <p><font size="2">When you do that and issue the request again, here is the output you’ll see below.  This one was for a single contact (click image to enlarge).  You’ll notice you’re getting the actual data contents for this contact plus the metadata (column name, data type, etc).  So, you’re basically getting a strongly typed data set.</font></p>
 <p><a href="/Blog-Original/blog-moss/Lists/Posts/Attachments/117/image_4_77095443.png"><font size="2"><img title="image_4_77095443" border="0" alt="image_4_77095443" src="/Blog/Lists/Posts/Attachments/35/image_4_77095443_b46d4aed-6bd4-42bb-aa74-27576396ff12_222710AC.png" width="241" height="244" style="background-image:none;border-bottom-width:0px;border-bottom-style:initial;border-bottom-color:initial;border-left-width:0px;border-left-style:initial;border-left-color:initial;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-top-style:initial;border-top-color:initial;border-right-width:0px;border-right-style:initial;border-right-color:initial;padding-top:0px" /></font></a><font size="2"> </font></p>
 <p><font size="2">As you might expect, there are plenty of options to filter and sort.  Such as</font></p>
 <p><font size="2">http://sp2010a/teamsite/_vti_bin/listdata.svc/Contacts?$filter=LastName eq 'Smith' </font> </p>
<p><font size="2">and</font></p>
 <p><font size="2">http://sp2010a/teamsite/_vti_bin/listdata.svc/Contacts?$orderby=LastName desc </font> </p>
<p><font size="2">To learn more about the other querystring options, here is a great MSDN article that walks through many of them and other REST details:  </font><a title="http://msdn.microsoft.com/en-us/library/cc907912.aspx" href="http://msdn.microsoft.com/en-us/library/cc907912.aspx"><font size="2">http://msdn.microsoft.com/en-us/library/cc907912.aspx</font></a></p>
 <p><font size="2">Using the browser this way is great for learning and testing, but what if we want to consume this in a real application?<br /></font></p>
 <p><font size="4">Consuming Rest in a Real Application</font></p>
 <p><font size="2">Go into Visual Studio 2010 and create a new project.  For my demo, I’m going to create a new C# Windows Forms application.  To consume a RESTful web service in Visual Studio, you can go to the Data menu and click Add New Data Source.  In the dialog box, choose SharePoint as shown here:</font></p>
 <p><a href="/Blog-Original/blog-moss/Lists/Posts/Attachments/117/image_6_77095443.png"><font size="2"><img title="image_6_77095443" border="0" alt="image_6_77095443" src="/Blog/Lists/Posts/Attachments/35/image_6_77095443_ddb6684e-29bb-434d-8a92-158ab58c33c0_222710AC.png" width="244" height="192" style="background-image:none;border-bottom-width:0px;border-bottom-style:initial;border-bottom-color:initial;border-left-width:0px;border-left-style:initial;border-left-color:initial;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-top-style:initial;border-top-color:initial;border-right-width:0px;border-right-style:initial;border-right-color:initial;padding-top:0px" /></font></a><font size="2"> </font> </p>
 <p><font size="2">In the Add Service Reference dialog, add the Url to a SharePoint 2010 web site.  Since you chose SharePoint data source, you do not need to specify the _vti_bin/listdata.svc.  Visual Studio will do that for you.  In my case, I add http://sp2010a/teamsite.  After I click the Go button, here is what I am shown:</font></p>
 <p><a href="/Blog-Original/blog-moss/Lists/Posts/Attachments/117/image_8_77095443.png"><font size="2"><img title="image_8_77095443" border="0" alt="image_8_77095443" src="/Blog/Lists/Posts/Attachments/35/image_8_77095443_2731f7cf-53d5-49e4-8bed-db3a919b4459_222710AC.png" width="244" height="200" style="background-image:none;border-bottom-width:0px;border-bottom-style:initial;border-bottom-color:initial;border-left-width:0px;border-left-style:initial;border-left-color:initial;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-top-style:initial;border-top-color:initial;border-right-width:0px;border-right-style:initial;border-right-color:initial;padding-top:0px" /></font></a><font size="2"> </font> </p>
 <p><font size="2">For those that have consumed web services (either SOAP .asmx or WCF .svc ones), this should look familiar.  Visual Studio will be creating a proxy class for you that represents the strongly-typed nature of all of these lists.  Click OK to continue and a new proxy class will be created for you.</font></p>
 <p><font size="2">Before I go any further, since I am working on Beta code, I need to replace the older ADO.NET data services client DLL.  To do that, go to the project references for the project and remove the System.Data.Services.Client entry.  Replace it with the DLL found in C:\Program Files (x86)\ADO.NET Data Services V1.5 CTP2\bin.  </font></p>
 <p><font size="2">Next step is to go to the Data menu again and this time, select Show data sources.  From the list choices, I’m going to drag and drop Contacts onto my form.  This will create a GridView control and bind all of the columns based on the contacts type.  Since I only want to display a few columns, I’ll click on the GridView and edit the columns (see the Columns the properties window for the GridView object).  When I’m done, here is what I see:</font></p>
 <p><a href="/Blog-Original/blog-moss/Lists/Posts/Attachments/117/image_10_77095443.png"><font size="2"><img title="image_10_77095443" border="0" alt="image_10_77095443" src="/Blog/Lists/Posts/Attachments/35/image_10_77095443_a1d87762-8efa-4055-b547-d4e031d58492_222710AC.png" width="244" height="161" style="background-image:none;border-bottom-width:0px;border-bottom-style:initial;border-bottom-color:initial;border-left-width:0px;border-left-style:initial;border-left-color:initial;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-top-style:initial;border-top-color:initial;border-right-width:0px;border-right-style:initial;border-right-color:initial;padding-top:0px" /></font></a><font size="2"> </font> </p>
 <p><font size="2">Ok, enough design work.  Let’s write some code.  Go into the code for the form.  Add two using clauses to the top (you might need to rename the first one based on your project name and the name you gave to your service reference).  </font></p>
 <div id="codeSnippetWrapper"><pre class="csharpcode"><span class="kwrd">using</span> RestDemo.ServiceReference1;<br /><span class="kwrd">using</span> System.Net;  </pre></div>
<p> </p>
<p><font size="2">Next, create a new class-level variable to hold the data context.  This is one of the proxy-class objects that was created that represents your interface to all the lists for the web site.  Notice that you also need to initialize it with the desired Url.  (Note: while you can change this to a different SharePoint Url, you must make sure that the list(s) that you intend on working with exist and have the same schema).</font></p>
<div id="codeSnippetWrapper"><pre id="codeSnippet" class="csharpcode">TeamSiteDataContext context = <span class="kwrd">new</span> TeamSiteDataContext(<span class="kwrd">new</span> Uri(<span class="str"><a href="http://sp2010a/teamsite/_vti_bin/listdata.svc">http://sp2010a/teamsite/_vti_bin/listdata.svc</a></span>));</pre>
<br /></div>
<p><font size="2">Next, in the Form_Load event, add the following two lines.</font></p>
<div><pre id="codeSnippet" class="csharpcode">context.Credentials = CredentialCache.DefaultCredentials;<br />contactsBindingSource.DataSource = context.Contacts;<br /></pre></div>
<div><font size="2">The first line will authenticate to SharePoint using your current logged-in account.  Of course, other login methods are available.  The second references the Contacts entity.  The contactsBindingSource is an object automatically created by Visual Studio when you added the Contacts list to your form. The data source for the GridView automatically points to this data source, so we can simply use it to wire everything up.  Simple, right?</font></div>
<div><font size="2"></font> </div>
<div><font size="2">Note: In this example, I have not specified columns or rows.  In other words, give me everything which is not very efficient, sort of like a “select * from table” SQL command.  This is great for a simple demo, but not practical for large lists.  Here’s how it looks.</font></div>
<div><font size="2"><br /></font></div>
<p><a href="/Blog-Original/blog-moss/Lists/Posts/Attachments/117/image_12_77095443.png"><font size="2"><img title="image_12_77095443" border="0" alt="image_12_77095443" src="/Blog/Lists/Posts/Attachments/35/image_12_77095443_9ca11e0a-922a-4290-907b-3855bf95d64b_222710AC.png" width="244" height="160" style="background-image:none;border-bottom-width:0px;border-bottom-style:initial;border-bottom-color:initial;border-left-width:0px;border-left-style:initial;border-left-color:initial;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-top-style:initial;border-top-color:initial;border-right-width:0px;border-right-style:initial;border-right-color:initial;padding-top:0px" /></font></a> </p>
<p><font size="2"></font></p>
<p><font size="2"></font></p>
<p><font size="2"></font></p>
<p><font size="2">We’ve seen above that REST allows you filter and sort.  What if you wanted to be more efficient and filter and sort in our application. You can and one way you can do this is with </font><a href="http://msdn.microsoft.com/en-us/library/bb308959.aspx" target="_blank"><font size="2">LINQ</font></a><font size="2">.  Here is the modified code that I use instead.</font></p>
<div id="codeSnippetWrapper"><pre id="codeSnippet" class="csharpcode">var q = from c <span class="kwrd">in</span> context.Contacts<br />        <span class="kwrd">where</span> c.ID &gt; 100<br />        orderby c.FirstName<br />        select <span class="kwrd">new</span> { c.FirstName, c.LastName, c.EMailAddress, c.BusinessPhone };<br /><br />contactsBindingSource.DataSource = q;<br /></pre>
<br /></div>
<p><font size="2">Notice that I’m just selecting a subset of contacts, sorting by first name and only returning the columns that I’m using in my GridView.  Better, right?  Now I get 100 rows (instead of 200 shown in the first one), properly sorted.</font></p>
<p><a href="/Blog-Original/blog-moss/Lists/Posts/Attachments/117/image_14_77095443.png"><font size="2"><img title="image_14_77095443" border="0" alt="image_14_77095443" src="/Blog/Lists/Posts/Attachments/35/image_14_77095443_5bf77490-aedf-476d-a83f-1a541269d018_222710AC.png" width="244" height="160" style="background-image:none;border-bottom-width:0px;border-bottom-style:initial;border-bottom-color:initial;border-left-width:0px;border-left-style:initial;border-left-color:initial;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-top-style:initial;border-top-color:initial;border-right-width:0px;border-right-style:initial;border-right-color:initial;padding-top:0px" /></font></a><font size="2"> </font> </p>
<p><font size="2">For those curious sorts (like me!), you might be interested in what the REST query looked like.  Here it is (as extracted from </font><a href="http://www.fiddlertool.com/" target="_blank"><font size="2">Fiddler</font></a><font size="2">):  http://sp2010a/teamsite/_vti_bin/listdata.svc/Contacts()?$filter=ID gt 100&amp;$orderby=FirstName&amp;$select=FirstName,LastName,EMailAddress,BusinessPhone</font></p>
<p><font size="2">We’re not quite done yet.  As I started off at the top of the article, I briefly mentioned that REST supports sending information back.  Among others, it supports insert and update operations.  This is also very easy to do.</font></p>
<p><font size="2"></font> </p>
<p><font size="4">Sending updates back to the server</font></p>
<p><font size="2">Let’s first start by enabling our Save icon for the GridView control.  To do this, just click the save icon in the designer and set the Enabled property to True.  Now, double click the icon and add this line of code into the save event.</font></p>
<div><pre id="codeSnippet" class="csharpcode">context.SaveChanges();</pre></div>
<div> </div>
<div><font size="2">Next, create a new method for the CurrentItemChanged event on the contactsBindingSource object.  To do this, go to design view for your form and select the contactsBindingSource object (you’ll find it just underneath the GridView).  In the properties panel, click the events icon (it looks like a lightning bolt).  You’ll get something like this shown here.  </font></div>
<div><font size="2"></font> </div>
<div><a href="/Blog-Original/blog-moss/Lists/Posts/Attachments/117/image_20_77095443.png"><font color="#000000" size="2"><img title="image_20_77095443" border="0" alt="image_20_77095443" src="/Blog/Lists/Posts/Attachments/35/image_20_77095443_1c5f9f4c-786e-4a16-8f93-04eed5cb9893_0D358E39.png" width="244" height="181" style="background-image:none;border-bottom-width:0px;border-bottom-style:initial;border-bottom-color:initial;border-left-width:0px;border-left-style:initial;border-left-color:initial;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-top-style:initial;border-top-color:initial;border-right-width:0px;border-right-style:initial;border-right-color:initial;padding-top:0px" /></font></a><font size="2"> </font> </div>
<div><font size="2"><br /></font></div>
<p><font size="2"></font></p>
<p><font size="2"></font></p>
<p><font size="2"></font></p>
<p><font size="2">Now, double click the entry next to CurrentItemChanged.  This will create a new event handler and take you to the code behind file.  Add this one line into this method.</font></p>
<div><pre id="codeSnippet" class="csharpcode">context.UpdateObject(contactsBindingSource.Current);</pre></div>
<div> </div>
<div><font size="2">We’re nearly done, but have one small problem.  In order to update an item back on the server, it needs all of the columns.  This is so SharePoint can compare if there was a column-level conflict in the editing.  (Note: if a conflict does occur, this will be caught an an exception will be thrown in your client application).  So, we just make a minor change to our LINQ query.  This is a bit less efficient, but necessary for editing this way.</font></div>
<div> </div>
<div id="codeSnippetWrapper"><pre id="codeSnippet" class="csharpcode">var q = from c <span class="kwrd">in</span> context.Contacts<br />        <span class="kwrd">where</span> c.ID &gt; 100<br />        orderby c.FirstName<br />        select c;<br /></pre></div>
<p><font size="2">Notice that I’m selecting the whole record, not just certain columns.  As written, this will update the data context with the most recent item that has changed.  When you click the save button (coded above), this modified item will be send back to the server.  </font><font size="2">For those curious about what exactly does this do, this sends an HTTP merge request back to the server with the payload of the newly modified record.  Here is the XML that was posted. </font> </p>
<div id="codeSnippetWrapper" class="csharpcode-wrapper"><pre id="codeSnippet" class="csharpcode"><span class="kwrd">&lt;?</span><span class="html">xml</span> <span class="attr">version</span><span class="kwrd">=&quot;1.0&quot;</span> <span class="attr">encoding</span><span class="kwrd">=&quot;utf-8&quot;</span> <span class="attr">standalone</span><span class="kwrd">=&quot;yes&quot;</span>?<span class="kwrd">&gt;</span><br /><span class="kwrd">&lt;</span><span class="html">entry</span> <span class="attr">xmlns:d</span><span class="kwrd">=&quot;http://schemas.microsoft.com/ado/2007/08/dataservices&quot;</span> </pre>
<pre id="codeSnippet" class="csharpcode"><span class="attr">xmlns:m</span><span class="kwrd">=&quot;http://schemas.microsoft.com/ado/2007/08/dataservices/metadata&quot;</span> </pre>
<pre id="codeSnippet" class="csharpcode"><span class="attr">xmlns</span><span class="kwrd">=&quot;http://www.w3.org/2005/Atom&quot;</span><span class="kwrd">&gt;</span><br />  <span class="kwrd">&lt;</span><span class="html">category</span> <span class="attr">scheme</span><span class="kwrd">=&quot;http://schemas.microsoft.com/ado/2007/08/dataservices/scheme&quot;</span> </pre>
<pre id="codeSnippet" class="csharpcode"><span class="attr">term</span><span class="kwrd">=&quot;Microsoft.SharePoint.DataService.ContactsItem&quot;</span> <span class="kwrd">/&gt;</span><br />  <span class="kwrd">&lt;</span><span class="html">title</span> <span class="kwrd">/&gt;</span><br />  <span class="kwrd">&lt;</span><span class="html">author</span><span class="kwrd">&gt;</span><br />    <span class="kwrd">&lt;</span><span class="html">name</span> <span class="kwrd">/&gt;</span><br />  <span class="kwrd">&lt;/</span><span class="html">author</span><span class="kwrd">&gt;</span><br />  <span class="kwrd">&lt;</span><span class="html">updated</span><span class="kwrd">&gt;</span>2009-12-18T05:01:07.5478515Z<span class="kwrd">&lt;/</span><span class="html">updated</span><span class="kwrd">&gt;</span><br />  <span class="kwrd">&lt;</span><span class="html">id</span><span class="kwrd">&gt;</span>http://sp2010a/teamsite/_vti_bin/listdata.svc/Contacts(201)<span class="kwrd">&lt;/</span><span class="html">id</span><span class="kwrd">&gt;</span><br />  <span class="kwrd">&lt;</span><span class="html">content</span> <span class="attr">type</span><span class="kwrd">=&quot;application/xml&quot;</span><span class="kwrd">&gt;</span><br />    <span class="kwrd">&lt;</span><span class="html">m:properties</span><span class="kwrd">&gt;</span><br />      <span class="kwrd">&lt;</span><span class="html">d:Address</span> <span class="attr">m:null</span><span class="kwrd">=&quot;true&quot;</span> <span class="kwrd">/&gt;</span><br />      <span class="kwrd">&lt;</span><span class="html">d:BusinessPhone</span> <span class="attr">m:null</span><span class="kwrd">=&quot;true&quot;</span> <span class="kwrd">/&gt;</span><br />      <span class="kwrd">&lt;</span><span class="html">d:City</span> <span class="attr">m:null</span><span class="kwrd">=&quot;true&quot;</span> <span class="kwrd">/&gt;</span><br />      <span class="kwrd">&lt;</span><span class="html">d:Company</span> <span class="attr">m:null</span><span class="kwrd">=&quot;true&quot;</span> <span class="kwrd">/&gt;</span><br />      <span class="kwrd">&lt;</span><span class="html">d:ContentType</span><span class="kwrd">&gt;</span>Contact<span class="kwrd">&lt;/</span><span class="html">d:ContentType</span><span class="kwrd">&gt;</span><br />      <span class="kwrd">&lt;</span><span class="html">d:ContentTypeID</span><span class="kwrd">&gt;</span>0x01060028B781066EBD3A4E93FE3073BAD6D104<span class="kwrd">&lt;/</span><span class="html">d:ContentTypeID</span><span class="kwrd">&gt;</span><br />      <span class="kwrd">&lt;</span><span class="html">d:CountryRegion</span> <span class="attr">m:null</span><span class="kwrd">=&quot;true&quot;</span> <span class="kwrd">/&gt;</span><br />      <span class="kwrd">&lt;</span><span class="html">d:Created</span> <span class="attr">m:type</span><span class="kwrd">=&quot;Edm.DateTime&quot;</span><span class="kwrd">&gt;</span>2009-12-18T12:42:05<span class="kwrd">&lt;/</span><span class="html">d:Created</span><span class="kwrd">&gt;</span><br />      <span class="kwrd">&lt;</span><span class="html">d:CreatedByID</span> <span class="attr">m:type</span><span class="kwrd">=&quot;Edm.Int32&quot;</span><span class="kwrd">&gt;</span>1<span class="kwrd">&lt;/</span><span class="html">d:CreatedByID</span><span class="kwrd">&gt;</span><br />      <span class="kwrd">&lt;</span><span class="html">d:EMailAddress</span> <span class="attr">m:null</span><span class="kwrd">=&quot;true&quot;</span> <span class="kwrd">/&gt;</span><br />      <span class="kwrd">&lt;</span><span class="html">d:FaxNumber</span> <span class="attr">m:null</span><span class="kwrd">=&quot;true&quot;</span> <span class="kwrd">/&gt;</span><br />      <span class="kwrd">&lt;</span><span class="html">d:FirstName</span><span class="kwrd">&gt;</span>Mickey<span class="kwrd">&lt;/</span><span class="html">d:FirstName</span><span class="kwrd">&gt;</span><br />      <span class="kwrd">&lt;</span><span class="html">d:FullName</span><span class="kwrd">&gt;</span>Mickey Mouse<span class="kwrd">&lt;/</span><span class="html">d:FullName</span><span class="kwrd">&gt;</span><br />      <span class="kwrd">&lt;</span><span class="html">d:HomePhone</span> <span class="attr">m:null</span><span class="kwrd">=&quot;true&quot;</span> <span class="kwrd">/&gt;</span><br />      <span class="kwrd">&lt;</span><span class="html">d:ID</span> <span class="attr">m:type</span><span class="kwrd">=&quot;Edm.Int32&quot;</span><span class="kwrd">&gt;</span>201<span class="kwrd">&lt;/</span><span class="html">d:ID</span><span class="kwrd">&gt;</span><br />      <span class="kwrd">&lt;</span><span class="html">d:JobTitle</span> <span class="attr">m:null</span><span class="kwrd">=&quot;true&quot;</span> <span class="kwrd">/&gt;</span><br />      <span class="kwrd">&lt;</span><span class="html">d:LastName</span><span class="kwrd">&gt;</span>Mouse<span class="kwrd">&lt;/</span><span class="html">d:LastName</span><span class="kwrd">&gt;</span><br />      <span class="kwrd">&lt;</span><span class="html">d:MobileNumber</span> <span class="attr">m:null</span><span class="kwrd">=&quot;true&quot;</span> <span class="kwrd">/&gt;</span><br />      <span class="kwrd">&lt;</span><span class="html">d:Modified</span> <span class="attr">m:type</span><span class="kwrd">=&quot;Edm.DateTime&quot;</span><span class="kwrd">&gt;</span>2009-12-18T12:59:25<span class="kwrd">&lt;/</span><span class="html">d:Modified</span><span class="kwrd">&gt;</span><br />      <span class="kwrd">&lt;</span><span class="html">d:ModifiedByID</span> <span class="attr">m:type</span><span class="kwrd">=&quot;Edm.Int32&quot;</span><span class="kwrd">&gt;</span>1<span class="kwrd">&lt;/</span><span class="html">d:ModifiedByID</span><span class="kwrd">&gt;</span><br />      <span class="kwrd">&lt;</span><span class="html">d:Notes</span><span class="kwrd">&gt;</span><span class="attr">&amp;lt;</span>div<span class="attr">&amp;gt;</span><span class="attr">&amp;lt;</span>/div<span class="attr">&amp;gt;</span><span class="kwrd">&lt;/</span><span class="html">d:Notes</span><span class="kwrd">&gt;</span><br />      <span class="kwrd">&lt;</span><span class="html">d:Owshiddenversion</span> <span class="attr">m:type</span><span class="kwrd">=&quot;Edm.Int32&quot;</span><span class="kwrd">&gt;</span>8<span class="kwrd">&lt;/</span><span class="html">d:Owshiddenversion</span><span class="kwrd">&gt;</span><br />      <span class="kwrd">&lt;</span><span class="html">d:Path</span><span class="kwrd">&gt;</span>/teamsite/Lists/Contacts<span class="kwrd">&lt;/</span><span class="html">d:Path</span><span class="kwrd">&gt;</span><br />      <span class="kwrd">&lt;</span><span class="html">d:ProjectID</span> <span class="attr">m:type</span><span class="kwrd">=&quot;Edm.Int32&quot;</span> <span class="attr">m:null</span><span class="kwrd">=&quot;true&quot;</span> <span class="kwrd">/&gt;</span><br />      <span class="kwrd">&lt;</span><span class="html">d:StateProvince</span> <span class="attr">m:null</span><span class="kwrd">=&quot;true&quot;</span> <span class="kwrd">/&gt;</span><br />      <span class="kwrd">&lt;</span><span class="html">d:Version</span><span class="kwrd">&gt;</span>1.0<span class="kwrd">&lt;/</span><span class="html">d:Version</span><span class="kwrd">&gt;</span><br />      <span class="kwrd">&lt;</span><span class="html">d:WebPage</span> <span class="attr">m:null</span><span class="kwrd">=&quot;true&quot;</span> <span class="kwrd">/&gt;</span><br />      <span class="kwrd">&lt;</span><span class="html">d:ZIPPostalCode</span> <span class="attr">m:null</span><span class="kwrd">=&quot;true&quot;</span> <span class="kwrd">/&gt;</span><br />    <span class="kwrd">&lt;/</span><span class="html">m:properties</span><span class="kwrd">&gt;</span><br />  <span class="kwrd">&lt;/</span><span class="html">content</span><span class="kwrd">&gt;</span><br /><span class="kwrd">&lt;/</span><span class="html">entry</span><span class="kwrd">&gt;</span></pre>
<br /></div>
<p> </p>
<p><font size="2">With that, I’ll bring this post to a close.  You now have an introductory knowledge on using REST in your SharePoint 2010 applications.  Have fun with it!</font></p>
<p><font size="2">Don't forget to check out our <a href="/Blog/Lists/Categories/Category.aspx?CategoryId=4&amp;Name=Development" title="Synergy SharePoint Development Blog Library">SharePoint Development Blog Library</a> from Synergy Team for the latest news, tricks and tips in SharePoint Development World. </font></p>
<style>
.ExternalClass427217218F6F4425A84276DFD589071F .externalclass427217218f6f4425a84276dfd589071f .csharpcode-wrapper, .ExternalClass427217218F6F4425A84276DFD589071F .externalclass427217218f6f4425a84276dfd589071f .csharpcode-wrapper pre
{background-color:#f4f4f4;border:solid 1px silver;cursor:text;font-family:'Courier New', courier, monospace;font-size:8pt;line-height:12pt;margin:20px 0px 10px 0px;overflow:auto;padding:4px;width:97.5%;}
.ExternalClass427217218F6F4425A84276DFD589071F .externalclass427217218f6f4425a84276dfd589071f .csharpcode-wrapper pre
{border-style:none;margin:0px 0px 0px 0px;overflow:visible;padding:0px 0px 0px 0px;}
.ExternalClass427217218F6F4425A84276DFD589071F .externalclass427217218f6f4425a84276dfd589071f .csharpcode, .ExternalClass427217218F6F4425A84276DFD589071F .externalclass427217218f6f4425a84276dfd589071f .csharpcode pre, .ExternalClass427217218F6F4425A84276DFD589071F .externalclass427217218f6f4425a84276dfd589071f .csharpcode .alt
{background-color:#f4f4f4;border-style:none;color:black;font-family:'Courier New', courier, monospace;font-size:8pt;line-height:12pt;overflow:visible;padding:0px;width:100%;}
.ExternalClass427217218F6F4425A84276DFD589071F .externalclass427217218f6f4425a84276dfd589071f .csharpcode pre
{margin:0em;}
.ExternalClass427217218F6F4425A84276DFD589071F .externalclass427217218f6f4425a84276dfd589071f .csharpcode .alt
{background-color:white;}
.ExternalClass427217218F6F4425A84276DFD589071F .externalclass427217218f6f4425a84276dfd589071f .csharpcode .asp
{background-color:#ffff00;}
.ExternalClass427217218F6F4425A84276DFD589071F .externalclass427217218f6f4425a84276dfd589071f .csharpcode .attr
{color:#ff0000;}
.ExternalClass427217218F6F4425A84276DFD589071F .externalclass427217218f6f4425a84276dfd589071f .csharpcode .cls
{color:#cc6633;}
.ExternalClass427217218F6F4425A84276DFD589071F .externalclass427217218f6f4425a84276dfd589071f .csharpcode .html
{color:#800000;}
.ExternalClass427217218F6F4425A84276DFD589071F .externalclass427217218f6f4425a84276dfd589071f .csharpcode .kwrd
{color:#0000ff;}
.ExternalClass427217218F6F4425A84276DFD589071F .externalclass427217218f6f4425a84276dfd589071f .csharpcode .lnum
{color:#606060;}
.ExternalClass427217218F6F4425A84276DFD589071F .externalclass427217218f6f4425a84276dfd589071f .csharpcode .op
{color:#0000c0;}
.ExternalClass427217218F6F4425A84276DFD589071F .externalclass427217218f6f4425a84276dfd589071f .csharpcode .preproc
{color:#cc6633;}
.ExternalClass427217218F6F4425A84276DFD589071F .externalclass427217218f6f4425a84276dfd589071f .csharpcode .rem
{color:#008000;}
.ExternalClass427217218F6F4425A84276DFD589071F .externalclass427217218f6f4425a84276dfd589071f .csharpcode .str
{color:#006080;}
</style>
</div></div>
<div><b>Category:</b> <a onclick="OpenPopUpPage('http://www.synergyonline.com/Blog/_layouts/listform.aspx?PageType=4&ListId={BEBD6B7C-8EDF-4976-8627-9238AFF8A903}&ID=4&RootFolder=*', RefreshPage); return false;" href="http://www.synergyonline.com/Blog/_layouts/listform.aspx?PageType=4&ListId={BEBD6B7C-8EDF-4976-8627-9238AFF8A903}&ID=4&RootFolder=*">Development</a></div>
<div><b>Published:</b> 12/18/2009 1:06 PM</div>
<div><b>Author:</b> <a href="http://www.synergyonline.com/company/Profiles/Pages/RandyWilliams.aspx">Randy Williams</a></div>
<div><b>PageKeywords:</b> sharepoint development, SharePoint 2013, SharePoint Workflow</div>
<div><b>PageTitle:</b> SharePoint Expert provides an Overview of using REST in SharePoint 2010</div>
<div><b>PageDescription:</b> REST is an easy way to easily get or post items to a server-side web service.  It is used in situations where you would use a web service but do not want the overhead and tightly-coupled nature of SOAP.</div>
<div><b>Attachments:</b> <a href="http://www.synergyonline.com/Blog/Lists/Posts/Attachments/35/image_10_77095443_a1d87762-8efa-4055-b547-d4e031d58492_222710AC.png">http://www.synergyonline.com/Blog/Lists/Posts/Attachments/35/image_10_77095443_a1d87762-8efa-4055-b547-d4e031d58492_222710AC.png</a><br /><a href="http://www.synergyonline.com/Blog/Lists/Posts/Attachments/35/image_12_77095443_9ca11e0a-922a-4290-907b-3855bf95d64b_222710AC.png">http://www.synergyonline.com/Blog/Lists/Posts/Attachments/35/image_12_77095443_9ca11e0a-922a-4290-907b-3855bf95d64b_222710AC.png</a><br /><a href="http://www.synergyonline.com/Blog/Lists/Posts/Attachments/35/image_14_77095443_5bf77490-aedf-476d-a83f-1a541269d018_222710AC.png">http://www.synergyonline.com/Blog/Lists/Posts/Attachments/35/image_14_77095443_5bf77490-aedf-476d-a83f-1a541269d018_222710AC.png</a><br /><a href="http://www.synergyonline.com/Blog/Lists/Posts/Attachments/35/image_2_77095443_8dd2791a-89ac-4f95-8dfc-78c6bc80ab6d_222710AC.png">http://www.synergyonline.com/Blog/Lists/Posts/Attachments/35/image_2_77095443_8dd2791a-89ac-4f95-8dfc-78c6bc80ab6d_222710AC.png</a><br /><a href="http://www.synergyonline.com/Blog/Lists/Posts/Attachments/35/image_20_77095443_1c5f9f4c-786e-4a16-8f93-04eed5cb9893_0D358E39.png">http://www.synergyonline.com/Blog/Lists/Posts/Attachments/35/image_20_77095443_1c5f9f4c-786e-4a16-8f93-04eed5cb9893_0D358E39.png</a><br /><a href="http://www.synergyonline.com/Blog/Lists/Posts/Attachments/35/image_4_77095443_b46d4aed-6bd4-42bb-aa74-27576396ff12_222710AC.png">http://www.synergyonline.com/Blog/Lists/Posts/Attachments/35/image_4_77095443_b46d4aed-6bd4-42bb-aa74-27576396ff12_222710AC.png</a><br /><a href="http://www.synergyonline.com/Blog/Lists/Posts/Attachments/35/image_6_77095443_ddb6684e-29bb-434d-8a92-158ab58c33c0_222710AC.png">http://www.synergyonline.com/Blog/Lists/Posts/Attachments/35/image_6_77095443_ddb6684e-29bb-434d-8a92-158ab58c33c0_222710AC.png</a><br /><a href="http://www.synergyonline.com/Blog/Lists/Posts/Attachments/35/image_8_77095443_2731f7cf-53d5-49e4-8bed-db3a919b4459_222710AC.png">http://www.synergyonline.com/Blog/Lists/Posts/Attachments/35/image_8_77095443_2731f7cf-53d5-49e4-8bed-db3a919b4459_222710AC.png</a><br /><a href=""></a></div>
]]></description>
      <author>System Account</author>
      <category>Development</category>
      <pubDate>Fri, 05 Aug 2011 18:08:31 GMT</pubDate>
      <guid isPermaLink="true">http://www.synergyonline.com/Blog/Lists/Posts/ViewPost.aspx?ID=35</guid>
    </item>
    <item>
      <title>Working with BeforeProperties and AfterProperties on SPItemEventReceiver</title>
      <link>http://www.synergyonline.com/Blog/Lists/Posts/ViewPost.aspx?ID=122</link>
      <description><![CDATA[<div><b>Body:</b> <div class="ExternalClass2E7C835E059E42B2B8C7ED00ED41892C">  <p><font size="2">As many of you know, event receivers are a great way to hook into various SharePoint events.  These can apply to Feature events such as FeatureActivated, List events such as FieldAdded, and many others.  The most common set of receivers used, however, are part of SPItemEventReceiver which let you wire your code up to a number of events that can occur to items on a list or library.</font></p>
 <p><font size="2">When working with events, you’ll quickly find that before (synchronous) and after (asynchronous) events exist, and the method suffix such as “ing” (e.g. ItemAdding) and “ed” (e.g. ItemAdded) will tell you whether it gets invoked before or after the actual change is made.  Basic stuff.</font></p>
 <p><font size="2">And, as you get deeper, you’ll even find that you can extract the before and after state of the change.  For example, you can hook into the ItemUpdating event for a document library and prevent a user from changing a certain column.  The code might look like this:</font></p>
 <div> <div><pre class="csharpcode"><span class="kwrd">public</span> <span class="kwrd">override</span> <span class="kwrd">void</span>  ItemUpdating(SPItemEventProperties properties)
{
     <span class="kwrd">if</span> (properties.BeforeProperties[<span class="str">&quot;column&quot;</span>] != properties.AfterProperties[<span class="str">&quot;column&quot;</span>])
    {
        properties.Cancel = <span class="kwrd">true</span>;
        properties.ErrorMessage = <span class="str">&quot;This column cannot be changed&quot;</span>;
    }
}
</pre></div></div>
<p><font size="2">For a document library, this works just fine.  However, you should know that the BeforeProperties hash table is not populated for items on a list.  As is worded in the </font><a href="http://msdn.microsoft.com/en-us/library/ms463479.aspx"><font size="2">SDK</font></a><font size="2">: “For documents, <b>Before</b> and <b>After</b> properties are guaranteed for post events, such as ItemUpdated, but <b>Before</b> properties are not available for post events on list items”</font></p>
<p><font size="2">When they say “not available for post events on list items”, do they mean after events (like ItemUpdated, ItemDeleted, etc)?  The wording is curious here, so I thought I’d take some time to test each combination of common events such as Add, Update and Delete.  These were done across a custom list and then a document library.  Each test involved adding a new item, editing the item and then deleting the item.  Here are the results for a list:</font></p>
<table border="1" cellspacing="0" cellpadding="2" width="491">
<tbody>
<tr>
<td valign="top" width="111"><strong><font size="2">List</font></strong></td>
<td valign="top" width="152" align="middle"><strong><font size="2">BeforeProperties</font></strong></td>
<td valign="top" width="119" align="middle"><strong><font size="2">AfterProperties</font></strong></td>
<td valign="top" width="107" align="middle"><strong><font size="2">properties.ListItem</font></strong></td></tr>
<tr>
<td valign="top" width="111"><font size="2">ItemAdding</font></td>
<td valign="top" width="152" align="middle"><font size="2">No value</font></td>
<td valign="top" width="119" align="middle"><font size="2">New value</font></td>
<td valign="top" width="107" align="middle"><font size="2">Null</font></td></tr>
<tr>
<td valign="top" width="111"><font size="2">ItemAdded</font></td>
<td valign="top" width="152" align="middle"><font size="2">No value</font></td>
<td valign="top" width="119" align="middle"><font size="2">New value</font></td>
<td valign="top" width="107" align="middle"><font size="2">New value</font></td></tr>
<tr>
<td valign="top" width="111"><font size="2">ItemUpdating</font></td>
<td valign="top" width="152" align="middle"><font size="2">No value</font></td>
<td valign="top" width="119" align="middle"><font size="2">Changed value</font></td>
<td valign="top" width="107" align="middle"><font size="2">Original value</font></td></tr>
<tr>
<td valign="top" width="111"><font size="2">ItemUpdated</font></td>
<td valign="top" width="152" align="middle"><font size="2">No value</font></td>
<td valign="top" width="119" align="middle"><font size="2">Changed value</font></td>
<td valign="top" width="107" align="middle"><font size="2">Changed value</font></td></tr>
<tr>
<td valign="top" width="111"><font size="2">ItemDeleting</font></td>
<td valign="top" width="152" align="middle"><font size="2">No value</font></td>
<td valign="top" width="119" align="middle"><font size="2">No value</font></td>
<td valign="top" width="107" align="middle"><font size="2">Original value</font></td></tr>
<tr>
<td valign="top" width="111"><font size="2">ItemDeleted</font></td>
<td valign="top" width="152" align="middle"><font size="2">No value</font></td>
<td valign="top" width="119" align="middle"><font size="2">No value</font></td>
<td valign="top" width="107" align="middle"><font size="2">Null</font></td></tr></tbody></table>
<p><font size="2">No value means that column value in the hash table was not available.  <br />New value means that the correct value for the column was available.  <br />Changed value means that the correct updated value was available.<br />Original value means that the correct original value was available.</font></p>
<p><font size="2">Here is the same test against a document library:</font></p>
<table border="1" cellspacing="0" cellpadding="2" width="495">
<tbody>
<tr>
<td valign="top" width="104"><strong><font size="2">Library</font></strong></td>
<td valign="top" width="132" align="middle"><strong><font size="2">BeforeProperties</font></strong></td>
<td valign="top" width="128" align="middle"><strong><font size="2">AfterProperties</font></strong></td>
<td valign="top" width="129" align="middle"><strong><font size="2">properties.ListItem</font></strong></td></tr>
<tr>
<td valign="top" width="104"><font size="2">ItemAdding</font></td>
<td valign="top" width="132" align="middle"><font size="2">No value</font></td>
<td valign="top" width="128" align="middle"><font size="2">No value </font></td>
<td valign="top" width="129" align="middle"><font size="2">Null</font></td></tr>
<tr>
<td valign="top" width="104"><font size="2">ItemAdded</font></td>
<td valign="top" width="132" align="middle"><font size="2">No value</font></td>
<td valign="top" width="128" align="middle"><font size="2">No value</font></td>
<td valign="top" width="129" align="middle"><font size="2">New value</font></td></tr>
<tr>
<td valign="top" width="104"><font size="2">ItemUpdating</font></td>
<td valign="top" width="132" align="middle"><font size="2">Original value</font></td>
<td valign="top" width="128" align="middle"><font size="2">Changed value</font></td>
<td valign="top" width="129" align="middle"><font size="2">Original value</font></td></tr>
<tr>
<td valign="top" width="104"><font size="2">ItemUpdated</font></td>
<td valign="top" width="132" align="middle"><font size="2">Original value</font></td>
<td valign="top" width="128" align="middle"><font size="2">Changed value</font></td>
<td valign="top" width="129" align="middle"><font size="2">Changed value</font></td></tr>
<tr>
<td valign="top" width="104"><font size="2">ItemDeleting</font></td>
<td valign="top" width="132" align="middle"><font size="2">No value</font></td>
<td valign="top" width="128" align="middle"><font size="2">No value</font></td>
<td valign="top" width="129" align="middle"><font size="2">Original value</font></td></tr>
<tr>
<td valign="top" width="104"><font size="2">ItemDeleted</font></td>
<td valign="top" width="132" align="middle"><font size="2">No value</font></td>
<td valign="top" width="128" align="middle"><font size="2">No value</font></td>
<td valign="top" width="129" align="middle"><font size="2">Null</font></td></tr></tbody></table>
<p><br /><font size="2">Properties.ListItem refers the the current value for the list item at that point in the event.  Null means that the item is not available.  My analysis yields the following results:</font></p>
<ul>
<li><font size="2">Not surprisingly, we get null values for for ItemAdding (before item is added) and ItemDeleted (after item is deleted).  This was proven by </font><a href="http://www.sharepoint-tips.com/2006/09/synchronous-add-list-event-itemadding.html"><font size="2">Ishai Sagi</font></a><font size="2"> some time ago.</font></li>
<li><font size="2">As correctly documented in the SDK, item events for lists do not expose BeforeProperties.</font></li>
<li><font size="2">ItemAdding and ItemAdded correctly report the value in the AfterProperties for an list item, but not a library item.  This is curious.</font></li>
<li><font size="2">We have no visibility on the previous states during the ItemDeleted event.  Once it’s deleted, it’s clearly gone.</font></li></ul>
<p><br /><font size="2">So, if we go back to our original problem listed above.  How can we prevent a user from changing a certain column for an item in a list event?  From the list table, you can see if we hook into the ItemUpdating event, we can compare the current item’s value (properties.ListItem) to the AfterProperties value.  The code would look like this:</font></p>
<div><pre class="csharpcode"><span class="kwrd">if</span> (properties.ListItem[<span class="str">&quot;column&quot;</span>] != properties.AfterProperties[<span class="str">&quot;column&quot;</span>])
{
    properties.Cancel = <span class="kwrd">true</span>;
    properties.ErrorMessage = <span class="str">&quot;This column cannot be changed&quot;</span>;
}
</pre></div>
<p><font size="2">I hope this post gives you a better idea of how before and after events work for both lists and libraries.  Your comments and feedback are always welcomed.</font></p>
<p><font size="2">Technorati: </font><font size="2"><a href="http://technorati.com/tag/SharePoint" rel="tag">SharePoint</a></font></p>
<p><font size="2"><a href="http://technorati.com/tag/SharePoint" rel="tag"></a>For the latest news, tips and tricks from Synergy Team in SharePoint Development World, please check out our <a href="/Blog/Lists/Categories/Category.aspx?CategoryId=4&amp;Name=Development" title="SharePoint Development Blog Posts">SharePoint Development Blog Library​</a>.</font></p>

<style>
.ExternalClass2E7C835E059E42B2B8C7ED00ED41892C .externalclass2e7c835e059e42b2b8c7ed00ed41892c .csharpcode-wrapper, .ExternalClass2E7C835E059E42B2B8C7ED00ED41892C .externalclass2e7c835e059e42b2b8c7ed00ed41892c .csharpcode-wrapper pre
{background-color:#f4f4f4;border:solid 1px gray;cursor:text;font-family:consolas, 'Courier New', courier, monospace;font-size:9pt;line-height:12pt;margin:20px 0px 10px 0px;overflow:auto;padding:4px 4px 4px 4px;width:97.5%;}
.ExternalClass2E7C835E059E42B2B8C7ED00ED41892C .externalclass2e7c835e059e42b2b8c7ed00ed41892c .csharpcode-wrapper pre
{border-style:none;margin:0px 0px 0px 0px;overflow:visible;padding:0px 0px 0px 0px;}
.ExternalClass2E7C835E059E42B2B8C7ED00ED41892C .externalclass2e7c835e059e42b2b8c7ed00ed41892c .csharpcode, .ExternalClass2E7C835E059E42B2B8C7ED00ED41892C .externalclass2e7c835e059e42b2b8c7ed00ed41892c .csharpcode pre, .ExternalClass2E7C835E059E42B2B8C7ED00ED41892C .externalclass2e7c835e059e42b2b8c7ed00ed41892c .csharpcode .alt
{background-color:#f4f4f4;border-style:none;color:black;font-family:consolas, 'Courier New', courier, monospace;font-size:9pt;line-height:12pt;overflow:visible;padding:0px 0px 0px 0px;width:100%;}
.ExternalClass2E7C835E059E42B2B8C7ED00ED41892C .externalclass2e7c835e059e42b2b8c7ed00ed41892c .csharpcode pre
{margin:0em;}
.ExternalClass2E7C835E059E42B2B8C7ED00ED41892C .externalclass2e7c835e059e42b2b8c7ed00ed41892c .csharpcode .alt
{background-color:white;}
.ExternalClass2E7C835E059E42B2B8C7ED00ED41892C .externalclass2e7c835e059e42b2b8c7ed00ed41892c .csharpcode .asp
{background-color:#ffff00;}
.ExternalClass2E7C835E059E42B2B8C7ED00ED41892C .externalclass2e7c835e059e42b2b8c7ed00ed41892c .csharpcode .attr
{color:#a31515;}
.ExternalClass2E7C835E059E42B2B8C7ED00ED41892C .externalclass2e7c835e059e42b2b8c7ed00ed41892c .csharpcode .cls
{color:#cc6633;}
.ExternalClass2E7C835E059E42B2B8C7ED00ED41892C .externalclass2e7c835e059e42b2b8c7ed00ed41892c .csharpcode .html
{color:#800000;}
.ExternalClass2E7C835E059E42B2B8C7ED00ED41892C .externalclass2e7c835e059e42b2b8c7ed00ed41892c .csharpcode .kwrd
{color:#0000ff;}
.ExternalClass2E7C835E059E42B2B8C7ED00ED41892C .externalclass2e7c835e059e42b2b8c7ed00ed41892c .csharpcode .lnum
{color:#606060;}
.ExternalClass2E7C835E059E42B2B8C7ED00ED41892C .externalclass2e7c835e059e42b2b8c7ed00ed41892c .csharpcode .op
{color:#0000c0;}
.ExternalClass2E7C835E059E42B2B8C7ED00ED41892C .externalclass2e7c835e059e42b2b8c7ed00ed41892c .csharpcode .preproc
{color:#cc6633;}
.ExternalClass2E7C835E059E42B2B8C7ED00ED41892C .externalclass2e7c835e059e42b2b8c7ed00ed41892c .csharpcode .rem
{color:#008000;}
.ExternalClass2E7C835E059E42B2B8C7ED00ED41892C .externalclass2e7c835e059e42b2b8c7ed00ed41892c .csharpcode .str
{color:#a31515;}
</style>
</div></div>
<div><b>Category:</b> <a onclick="OpenPopUpPage('http://www.synergyonline.com/Blog/_layouts/listform.aspx?PageType=4&ListId={BEBD6B7C-8EDF-4976-8627-9238AFF8A903}&ID=4&RootFolder=*', RefreshPage); return false;" href="http://www.synergyonline.com/Blog/_layouts/listform.aspx?PageType=4&ListId={BEBD6B7C-8EDF-4976-8627-9238AFF8A903}&ID=4&RootFolder=*">Development</a></div>
<div><b>Published:</b> 9/18/2008 4:06 PM</div>
<div><b>Author:</b> <a href="http://www.synergyonline.com/company/Profiles/Pages/RandyWilliams.aspx">Randy Williams</a></div>
<div><b>PageKeywords:</b> Sharepoint Development, Interactive Website Design, SharePoint Workflow</div>
<div><b>PageTitle:</b> SharePoint Expert on Working with BeforeProperties and AfterProperties on SPItemEventReceiver</div>
<div><b>PageDescription:</b> Get a a better idea of how before and after events work for both lists and libraries.</div>
]]></description>
      <author>System Account</author>
      <category>Development</category>
      <pubDate>Fri, 05 Aug 2011 20:07:53 GMT</pubDate>
      <guid isPermaLink="true">http://www.synergyonline.com/Blog/Lists/Posts/ViewPost.aspx?ID=122</guid>
    </item>
    <item>
      <title>Push vs. Pull: Why Social Business Adoption Strategies Using SharePoint Must Do Both</title>
      <link>http://www.synergyonline.com/Blog/Lists/Posts/ViewPost.aspx?ID=256</link>
      <description><![CDATA[<div><b>Body:</b> <div class="ExternalClassCEA6C14DC98E4388B3ACDDFDFDE5637C"><p style="text-align:justify">After spending three days in Denver, Colorado at the <a href="http://www.newsgator.com/" target="_blank">NewsGator 2013 Collective</a>, one thing is clear – Microsoft’s SharePoint has gone social and collaboration leaders across all industries can’t get enough. In the sessions, hallways and in the <a href="/company/News/Pages/Synergy-to-Sponsor-the-Experience-Lounge-at-the-2013-NewsGator-Collective.aspx">Synergy Experience Lounge</a>, conversations seemed to focus on perhaps the most important topic of all: end user adoption. Abundant debate centered on one key question: which is the better social strategy – Push or Pull? </p>
<div style="text-align:justify">
</div>
<p style="text-align:justify">This question is not a new one in the larger world of social media and marketing. Experts in these fields often refer to “Push” and “Pull” approaches. The “Push” school of thought believes traffic and adoption are more likely if project sponsors aggressively market a new solution, creating incentives and management directives for employee participation. </p>
<div style="text-align:justify">
</div>
<p style="text-align:justify">The “Pull” school of thought advocates a slightly different approach, arguing that you have to provide enough relevant content and useful business tools within your new socially enabled SharePoint portal that employees are ‘pulled’ there implicitly. Users should find out rapidly that not participating in social conversations or frequenting the portal will leave them left out of the loop of important announcements and without access to applications and tools which will make it easier for them to do their work. </p>
<div style="text-align:justify">
</div>
<p style="text-align:justify">At Synergy, we believe there is no need for either/or thinking when it comes to planning your <a href="/sharepoint/Pages/Social-Strategy.aspx">social strategy within the SharePoint experience</a>. The best launch strategies for socially enabled employee intranets leverage both approaches. When it comes to end user adoption, don’t skimp in any way on how you build the environment and pitch the tools. This applies when thinking about both your average end users as well as senior leadership. You must approach your social launch and adoption strategy holistically and from all angles, factoring in the need for both marketing methods – Push and Pull. </p>
<div style="text-align:justify">
</div>
<p style="text-align:justify">To make these concepts more real, let’s look towards more practically understandable examples: </p>
<div style="text-align:justify">
</div>
<p style="text-align:justify"><br /></p>
<div style="text-align:justify">
</div>
<h3 style="text-align:justify"><font style="font-weight:bold">Push Strategy: Email / Newsletter / Town Hall or Special Event Marketing</font></h3>
<div style="text-align:justify">
 </div>
<p style="text-align:justify">Upon the release of a new socially enabled SharePoint portal, many of <a href="/company/pages/Our-Clients.aspx">Synergy’s clients</a> begin with a more traditional information and marketing campaign. The new portal is named, branded, and the new portal ‘entity’ is advertised to employees as the next big thing at the organization. This is Social Launch Strategy 101, a must do for all organizations who are preparing to release a new intranet site. It’s also a great idea to plan the initial launch around a key event such as a corporate town hall or even a summer social barbeque. </p>
<div style="text-align:justify">
</div>
<p style="text-align:justify"><br /></p>
<div style="text-align:justify">
</div>
<h3 style="text-align:justify"><font style="font-weight:bold">Pull Strategy: Customized SharePoint Branding to Highlight your Corporate Culture</font></h3>
<div style="text-align:justify">
 </div>
<p style="text-align:justify">While the ‘out-of-the-box’ SharePoint look and feel can work well for simple document sharing, if the goal is to deliver a culturally impactful environment which ‘pulls’ users to visit and participate, custom SharePoint branding is critical. A socially enabled intranet should provide a user experience which conveys the core principles and tenants of your corporate culture, giving employees a platform to interact with what it means to work for your organization, and feel more connected. It is this connection to the culture and company which will continue to foster high attendance, retention, collaboration and productivity; the best possible outcomes of a successful social strategy. </p>
<div style="text-align:justify">
</div>
<p style="text-align:justify"><br /></p>
<div style="text-align:justify">
</div>
<h3 style="text-align:justify"><font style="font-weight:bold">Push Strategy: NewsGator’s Social Outlook Plug In</font></h3>
<div style="text-align:justify">
 </div>
<p style="text-align:justify">Another great feature available to NewsGator clients is the Outlook plug in. For organizations where employees tend to ‘live’ in their inboxes, this is an excellent way to bring social to where they work every day.  </p>
<div>
</div>
<p></p>
<div>
</div>
<div style="text-align:center"><img src="/Blog/PublishingImages/OutlookPlugIn.png" alt="OutlookPlugIn.png" style="margin-top:5px;margin-right:5px;margin-bottom:5px;margin-left:5px;width:250px;height:330px" /> </div>
<div>
</div>
<div style="text-align:justify">The plug in allows employees to create posts, review notifications, update settings and even check their customized Lookout tiles, directly from within Outlook. In additional to NewsGator’s long standing email response features, which allow users to like and comment on posts via email, the overall Outlook integration is an excellent way to encourage reluctant end users to jumpstart their participation in SharePoint and business social.</div>
<div style="text-align:justify">
</div>
<div style="text-align:justify"><br /></div>
<div style="text-align:justify">
</div>
<p></p>
<div style="text-align:justify">
</div>
<h3 style="text-align:justify"><font style="font-weight:bold">Pull Strategy: NewsGator’s Social Business Solutions</font></h3>
<div style="text-align:center"><font style="font-weight:bold"><img src="/Blog/PublishingImages/SocialSitesIntranet.jpg" alt="SocialSitesIntranet" style="margin-top:5px;margin-right:5px;margin-bottom:5px;margin-left:5px;width:300px;height:255px" /><br /></font></div>
<div style="text-align:justify">
 </div>
<p style="text-align:justify">At <a href="http://www.newsgator.com/buzz/collective.aspx" target="_blank">this year’s Collective</a>, NewsGator announced some exciting news about their roadmap strategy. The Corporate Communications, Field Enablement and Innovation Solutions set to be fully released this year, will provide comprehensive and socialized solutions to common business problems and processes. These solutions represent an overall ‘pull’ strategy tenant – provide end users with applications and tools within your socially enabled SharePoint environment which allow them to work easier, faster and more intelligently. While NewsGator’s offerings provide a ready built option, whatever business solution you elect to provide, you must ensure it is fully linked and accessible within your portal and not as simple to access from other platforms.</p>
<p style="text-align:justify"><div style="text-align:center"><a href="http://www.newsgator.com/" target="_blank" title="NewsGator Home Page"><img src="/Blog/PublishingImages/NGlogo.jpeg" alt="NGlogo.jpeg" style="margin-top:5px;margin-right:5px;margin-bottom:5px;margin-left:5px;width:250px;height:53px" /></a> </div></p>
<div style="text-align:justify">
</div>
<p style="text-align:justify">For more information on the concepts of Push and Pull marketing strategies, please check out the following additional blog articles: </p>
<div style="text-align:justify">
</div>
<p style="text-align:justify"><a href="http://www.webimax.com/blog/internet-marketing/chttp:/www.webimax.com/blog/internet-marketing/content-marketing-social-media-and-a-new-push-pull-strategy%20ontent-marketing-social-media-and-a-new-push-pull-strategy" target="_blank">Content Marketing, Social Media, and a New Push-Pull Strategy</a> </p>
<div style="text-align:justify">
</div>
<p style="text-align:justify"><a href="http://www.snapgiant.com/blog/push-vs-pull-marketing-why-mobile-and-social-marketing-make-sense/" target="_blank">Push vs. Pull Marketing: Why Mobile and Social Marketing Make Sense</a> </p>
<div style="text-align:justify">
</div>
<p style="text-align:justify">And stay tuned for my next article – ‘Stop Calling Business Social “Facebook”!!’</p></div></div>
<div><b>Category:</b> <a onclick="OpenPopUpPage('http://www.synergyonline.com/Blog/_layouts/listform.aspx?PageType=4&ListId={BEBD6B7C-8EDF-4976-8627-9238AFF8A903}&ID=18&RootFolder=*', RefreshPage); return false;" href="http://www.synergyonline.com/Blog/_layouts/listform.aspx?PageType=4&ListId={BEBD6B7C-8EDF-4976-8627-9238AFF8A903}&ID=18&RootFolder=*">Branding</a>; <a onclick="OpenPopUpPage('http://www.synergyonline.com/Blog/_layouts/listform.aspx?PageType=4&ListId={BEBD6B7C-8EDF-4976-8627-9238AFF8A903}&ID=13&RootFolder=*', RefreshPage); return false;" href="http://www.synergyonline.com/Blog/_layouts/listform.aspx?PageType=4&ListId={BEBD6B7C-8EDF-4976-8627-9238AFF8A903}&ID=13&RootFolder=*">SharePoint</a></div>
<div><b>Published:</b> 3/12/2013 2:55 PM</div>
<div><b>Author:</b> <a href="http://www.synergyonline.com/company/Profiles/Pages/jennarifkin.aspx">Jenna Rifkin</a></div>
<div><b>PageKeywords:</b> sharepoint branding, SharePoint Development, sharepoint training</div>
<div><b>PageTitle:</b> Push vs. Pull: Why Social Business Adoption Strategies Using SharePoint Must Do Both</div>
<div><b>PageDescription:</b> After spending three days in Denver, Colorado at the NewsGator 2013 Collective, one thing is clear – Microsoft’s SharePoint has gone social and collaboration leaders across all industries can’t get enough.</div>
]]></description>
      <author>System Account</author>
      <category>Branding; SharePoint</category>
      <pubDate>Tue, 12 Mar 2013 18:44:11 GMT</pubDate>
      <guid isPermaLink="true">http://www.synergyonline.com/Blog/Lists/Posts/ViewPost.aspx?ID=256</guid>
    </item>
    <item>
      <title>Authoring a New SharePoint Book</title>
      <link>http://www.synergyonline.com/Blog/Lists/Posts/ViewPost.aspx?ID=14</link>
      <description><![CDATA[<div><b>Body:</b> <div class="ExternalClass2989B18146404E20A4ABF44777C0C1F5"> <p><font size="2">Over the past couple of years, I’ve contributed to two separate books, </font><a href="http://www.amazon.com/Real-World-SharePoint-2010-Indispensable/dp/0470597135/ref=sr_1_1?ie=UTF8&amp;s=books&amp;qid=1289644921&amp;sr=1-1" target="_blank"><font size="2">Real World SharePoint 2010</font></a><font size="2"> and a SharePoint chapter for Jim McBee’s </font><a href="http://www.amazon.com/Mastering-Microsoft-Exchange-Server-2010/dp/0470521716/ref=sr_1_1?ie=UTF8&amp;s=books&amp;qid=1289644975&amp;sr=1-1" target="_blank"><font size="2">Master Exchange Server 2010</font></a><font size="2">.  I’ve had a couple of offers recently to author one, and I finally decided to take one on.  The book will be titled <em>SharePoint 2010 Administration Instant Reference</em>.  Sybex is the publisher, whom I’ve worked with before and they are fantastic.</font></p>
 <p><font size="2">Originally, I was going to take it on solo, but the practical side of my brain kicked in, and I decided to co-author with my colleague and good friend, </font><a href="/about/professionalprofiles/Pages/milangross.aspx" target="_blank"><font size="2">Milan Gross</font></a><font size="2">.  Contracts are signed already and writing has started.  Our schedule has the writing finished by February 2011 and hopefully on the shelves by May 2011.  Here is the chapter line up:</font></p>
 <p><font size="2">Chapter 1: Installing SharePoint 2010<br />Chapter 2: Creating and Managing Web Applications<br />Chapter 3: Creating and Managing Site Collections<br />Chapter 4: Creating Service Applications<br />Chapter 5: Scaling and High Availability<br />Chapter 6: Configuring System Settings<br />Chapter 7: Configuring the User Profiles and My Sites Service<br />Chapter 8: Configuring the Search Service <br />Chapter 9: Configuring Search Scopes and Search Results<br />Chapter 10: Configuring Document Management<br />Chapter 11: Configuring the Managed Metadata Service<br />Chapter 12: Configuring Records Management<br />Chapter 13: Configuring Web Content Management and Publishing<br />Chapter 14: Managing Security<br />Chapter 15: Managing Auditing, Monitoring, and Analytics<br />Chapter 16: Managing Backup and Restore</font></p>
 <p><font size="2">So, if you wonder what I’ll be doing over the next three or so months, now you know.</font>  <a href="/Blog/Lists/Posts/Attachments/14/wlEmoticon-smile_2_5821C973_2_7F9CA475.png"><img title="wlEmoticon-smile_2_5821C973" border="0" alt="wlEmoticon-smile_2_5821C973" src="/Blog/Lists/Posts/Attachments/14/wlEmoticon-smile_2_5821C973_thumb_7F9CA475.png" width="23" height="23" style="background-image:none;border:0px;padding-left:0px;padding-right:0px;display:inline;padding-top:0px" /></a></p></div></div>
<div><b>Published:</b> 11/13/2010 10:24 AM</div>
<div><b>Author:</b> <a href="http://www.synergyonline.com/company/Profiles/Pages/RandyWilliams.aspx">Randy Williams</a></div>
<div><b>PageKeywords:</b> SharePoint implementation, SharePoint experts</div>
<div><b>PageTitle:</b> Synergy SharePoint Expert Authoring a New SharePoint Book</div>
<div><b>PageDescription:</b> SharePoint 2010 Administration Instant Reference - new SharePoint Book from Randy Williams and Milan Gross</div>
<div><b>Attachments:</b> <a href="http://www.synergyonline.com/Blog/Lists/Posts/Attachments/14/wlEmoticon-smile_2_5821C973_2_7F9CA475.png">http://www.synergyonline.com/Blog/Lists/Posts/Attachments/14/wlEmoticon-smile_2_5821C973_2_7F9CA475.png</a><br /><a href="http://www.synergyonline.com/Blog/Lists/Posts/Attachments/14/wlEmoticon-smile_2_5821C973_thumb_7F9CA475.png">http://www.synergyonline.com/Blog/Lists/Posts/Attachments/14/wlEmoticon-smile_2_5821C973_thumb_7F9CA475.png</a><br /><a href=""></a></div>
]]></description>
      <author>System Account</author>
      <pubDate>Fri, 05 Aug 2011 15:24:49 GMT</pubDate>
      <guid isPermaLink="true">http://www.synergyonline.com/Blog/Lists/Posts/ViewPost.aspx?ID=14</guid>
    </item>
    <item>
      <title>Have you registered for the SharePoint Conference yet?</title>
      <link>http://www.synergyonline.com/Blog/Lists/Posts/ViewPost.aspx?ID=16</link>
      <description><![CDATA[<div><b>Body:</b> <div class="ExternalClassF632F99625E245B297D24DD091C1A4C0"> <table class="MsoNormalTable" border="0" cellspacing="0" cellpadding="0" style="border-collapse:collapse"> <tbody> <tr> <td valign="top" width="616" style="border-width:1pt 1pt medium;border-style:solid solid none;border-left-color:windowtext;padding:0cm 5.4pt;width:462.1pt;border-top-color:windowtext;border-right-color:windowtext"> <p class="MsoNormal" align="center" style="text-align:center;line-height:115%"><b><span style="line-height:115%;color:rgb(227, 108, 10);font-size:18pt">Have you registered for the SharePoint Conference yet? </span></b></p>
 <p class="MsoNormal" align="center" style="text-align:center;line-height:115%"><strong><span style="line-height:115%;font-family:arial, sans-serif;font-size:14pt">An opportunity like no other in your region, and you're invited.</span></strong><b><span style="line-height:115%;color:rgb(227, 108, 10);font-size:18pt"></span></b></p>
 <p class="MsoNormal" align="center" style="text-align:center;line-height:115%"><b><span style="line-height:115%;color:rgb(227, 108, 10);font-size:14pt">Two days. Over 40 sessions. All for the Early bird price of SGD$300!</span></b></p>
 <p class="MsoNormal" align="center" style="text-align:center;line-height:115%"><span class="MsoHyperlink"><span style="line-height:115%;font-size:10pt"><span style="text-decoration:none"></span></span></span> </p>
 <div align="center"> <table class="MsoNormalTable" border="0" cellspacing="0" cellpadding="0" style="border-collapse:collapse"> <tbody> <tr> <td valign="top" width="359" style="padding:0cm 5.4pt;width:269.1pt"> <h3 align="center" style="text-align:center;line-height:115%;margin:0cm 0cm 0pt"><span style="font-family:calibri, sans-serif">Southeast Asia SharePoint Conference</span></h3>
 <h3 align="center" style="text-align:center;line-height:115%;margin:0cm 0cm 0pt"><span style="line-height:115%;font-family:calibri, sans-serif;font-size:9pt">Tuesday 26 October 2010 – Wednesday 27 October 2010</span></h3>
 <h3 align="center" style="text-align:center;line-height:115%;margin:0cm 0cm 0pt"><span><a href="http://www.millenniumhotels.com.sg/grandcopthornewaterfront/index.html"><span style="line-height:115%;font-family:calibri, sans-serif;font-size:9pt">Grand Copthorne Waterfront Hotel</span></a></span><span style="line-height:115%;font-family:calibri, sans-serif;font-size:9pt">, Singapore</span></h3>
 <p class="MsoNormal" align="center" style="text-align:center;line-height:115%"><span style="line-height:115%;color:rgb(228, 108, 10);font-size:9pt">**** Early Bird Discount for first 275 Registrations***</span><span style="line-height:115%;color:rgb(228, 108, 10);font-size:9pt"></span></p>
 <p class="MsoNormal" align="center" style="text-align:center;line-height:115%"><b><span style="line-height:115%;font-size:9pt">Only 5 weeks to go!</span></b></p>
 <p class="MsoNormal" align="center" style="text-align:center;line-height:115%"><a href="http://www.sharepointconference.asia/"><span style="line-height:115%;font-size:10pt">www.sharepointconference.asia</span></a><span class="MsoHyperlink"></span></p></td>
 <td width="242" style="padding:0cm 5.4pt;width:181.45pt"> <p class="MsoNormal" align="center" style="text-align:center;line-height:115%"><a href="/Blog/Lists/Posts/Attachments/16/image_4_332E8483_2_756A7195.png"><img title="image_4_332E8483" border="0" alt="image_4_332E8483" src="/Blog/Lists/Posts/Attachments/16/image_4_332E8483_thumb_756A7195.png" width="226" height="47" style="background-image:none;border:0px;padding-left:0px;padding-right:0px;display:inline;padding-top:0px" /></a> </p>
 <p class="MsoNormal" align="center" style="text-align:center;line-height:115%"><b><span style="line-height:115%;color:rgb(228, 108, 10);font-size:14pt">Platinum Sponsor</span></b><a href="http://www.regonline.com/877870"><span style="line-height:115%;color:windowtext;font-size:10pt;text-decoration:none"><img title="clip_image0046_332E8483" border="0" alt="clip_image0046_332E8483" src="/Blog/Lists/Posts/Attachments/16/clip_image0046_332E8483_71205631-e037-45bb-8282-3c1a94b0f494_756A7195.gif" width="178" height="66" style="background-image:none;border:0px;padding-left:0px;padding-right:0px;display:inline;padding-top:0px" /></span></a><span style="line-height:115%;font-size:10pt"></span></p></td></tr></tbody></table></div>
 <p class="MsoNormal" align="center" style="text-align:center;line-height:115%"><span style="line-height:115%;font-size:10pt"></span> </p>
 <table class="MsoNormalTable" border="0" cellspacing="0" cellpadding="0" style="border-collapse:collapse"> <tbody> <tr> <td valign="top" width="85" style="padding:0cm 5.4pt;width:63.55pt"> <h3 align="center" style="text-align:center;line-height:115%"><a href="/Blog/Lists/Posts/Attachments/16/image_8_332E8483_2_756A7195.png"><img title="image_8_332E8483" border="0" alt="image_8_332E8483" src="/Blog/Lists/Posts/Attachments/16/image_8_332E8483_thumb_756A7195.png" width="78" height="78" style="background-image:none;border:0px;padding-left:0px;padding-right:0px;display:inline;padding-top:0px" /></a></h3></td>
 <td valign="top" width="492" style="padding:0cm 5.4pt;width:368.8pt"> <h3 align="center" style="text-align:center;line-height:115%"><span style="line-height:115%;font-family:calibri, sans-serif;font-size:14pt">Join </span><span style="font-family:calibri, sans-serif">Keynote: </span><span><a href="http://www.envisionit.co.nz/SPevents/SEASPC/_layouts/listform.aspx?PageType=4&amp;ListId={4E1EE557-5802-4E7B-AA07-9E13AB10A928}&amp;ID=36&amp;ContentTypeID=0x0100C185954D6A98DD44B0E87585FC4743B3"><span style="line-height:115%;font-family:calibri, sans-serif;font-size:14pt">Mike Fitzmaurice </span></a></span><span style="line-height:115%;font-family:calibri, sans-serif;font-size:14pt">to hear about &quot;The Evolution of SharePoint from Two Pet Projects to a Multi-Company Ecosystem&quot; </span></h3></td></tr></tbody></table>
 <p class="MsoNormal" style="line-height:115%"><span style="line-height:115%;font-size:10pt"></span> </p>
 <p class="MsoNormal" style="line-height:115%"><span style="line-height:115%;font-size:10pt">How did SharePoint start and how did it become the centre of the universe in under a decade?  </span><a href="http://www.envisionit.co.nz/SPevents/SEASPC/_layouts/listform.aspx?PageType=4&amp;ListId={4E1EE557-5802-4E7B-AA07-9E13AB10A928}&amp;ID=36&amp;ContentTypeID=0x0100C185954D6A98DD44B0E87585FC4743B3"><span style="line-height:115%;font-size:10pt">Mike Fitzmaurice</span></a><span style="line-height:115%;font-size:10pt"> was there at the beginning, has worked on every product with the word “SharePoint” in it, and continues to work on SharePoint technology today, in a former position for Microsoft and now for a SharePoint partner ISV.  He will share with you the motivations behind SharePoint’s creation and evolution, the realities behind how the products ship, why SharePoint caught on so completely, and how SharePoint has grown into something far beyond a single product from a single company.</span></p>
 <h3 align="center" style="text-align:center;line-height:115%"><span style="line-height:115%;font-family:calibri, sans-serif;font-size:14pt">Hear Local and International Case Studies</span></h3>
 <h3 style="line-height:115%;text-indent:-18pt;margin-left:36pt"><span style="line-height:115%;font-family:symbol;font-size:10pt;font-weight:normal"><span>·<span style="font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;font-family:'times new roman'">         </span></span></span><span style="line-height:115%;font-family:calibri, sans-serif;font-size:10pt;font-weight:normal">Lessons learnt from the Singapore Sports Council eCollaboration Journey</span></h3>
 <h3 style="line-height:115%;text-indent:-18pt;margin-left:36pt"><span style="line-height:115%;font-family:symbol;font-size:10pt;font-weight:normal"><span>·<span style="font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;font-family:'times new roman'">         </span></span></span><span style="line-height:115%;font-family:calibri, sans-serif;font-size:10pt;font-weight:normal">NTT is the largest telecommunications company in Asia and when one of its subsidiaries wanted to automate some of their processes, they decided to do it on platform that they can scale and manage.</span></h3>
 <h3 style="line-height:115%;text-indent:-18pt;margin-left:36pt"><span style="line-height:115%;font-family:symbol;font-size:10pt;font-weight:normal"><span>·<span style="font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;font-family:'times new roman'">         </span></span></span><span style="line-height:115%;font-family:calibri, sans-serif;font-size:10pt;font-weight:normal">Daikin is a global air conditioning leader that uses SharePoint for their B2B portal that handles everything from logistic, dealer’s management to service support. They are also probably the first company to run SharePoint business apps on the iPhone.</span></h3>
 <h3 style="line-height:115%;text-indent:-18pt;margin-left:36pt"><span style="line-height:115%;font-family:symbol;font-size:10pt;font-weight:normal"><span>·<span style="font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;font-family:'times new roman'">         </span></span></span><span style="line-height:115%;font-family:calibri, sans-serif;font-size:10pt;font-weight:normal">Have a peek on the journey taken by Keppel Land’s IT department to deliver success while managing limited resources in order to successfully launch their SharePoint based portal. </span></h3>
 <h3 style="line-height:115%;text-indent:-18pt;margin-left:36pt"><span style="line-height:115%;font-family:symbol;font-size:10pt;font-weight:normal"><span>·<span style="font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;font-family:'times new roman'">         </span></span></span><span style="line-height:115%;font-family:calibri, sans-serif;font-size:10pt;font-weight:normal">SharePoint implementation targeting multiple countries raises challenges like different management styles and working cultures, multiple languages (&quot;can my SharePoint be in Chinese?&quot;), distributed locations (&quot;can we have a local server here?&quot;), varying connection speeds (&quot;our SharePoint is too slow!&quot;), and others.  </span></h3>
 <h3 align="center" style="text-align:center;line-height:115%"><span style="line-height:115%;font-family:calibri, sans-serif;font-size:14pt">Just a few of our other International Speakers</span></h3>
 <h3 align="center" style="text-align:center;line-height:115%;margin:0cm 0cm 0pt"><span style="line-height:115%;font-family:calibri, sans-serif;color:rgb(247, 150, 70);font-size:10pt;font-weight:normal">□  </span><span style="line-height:115%;font-family:calibri, sans-serif;font-size:10pt;font-weight:normal">Rick Taylor – USA  <span style="color:rgb(247, 150, 70)">□</span>   Michael Noel – USA    <span style="color:rgb(247, 150, 70)">□ </span>Daniel McPherson – India   <span style="color:rgb(247, 150, 70)">□</span>  Joy Rathnayake – Sri Lanka</span></h3>
 <h3 align="center" style="text-align:center;line-height:115%;margin:0cm 0cm 0pt"><span style="line-height:115%;font-family:calibri, sans-serif;color:rgb(247, 150, 70);font-size:10pt;font-weight:normal">□  </span><span style="line-height:115%;font-family:calibri, sans-serif;font-size:10pt;font-weight:normal">Dux Raymond Sy – USA  <span style="color:rgb(247, 150, 70)">□  </span>Ishai Sagi – Australia <span style="color:rgb(247, 150, 70)">□  </span>Wictor Wilen – Sweden</span></h3>
 <h3 align="center" style="text-align:center;line-height:115%;margin:0cm 0cm 0pt"><span style="line-height:115%;font-family:calibri, sans-serif;color:rgb(247, 150, 70);font-size:10pt;font-weight:normal">□  </span><span style="line-height:115%;font-family:calibri, sans-serif;font-size:10pt;font-weight:normal">Veronique Palmer – South Africa</span></h3>
 <p style="text-align:justify;line-height:115%"><span style="line-height:115%;font-family:calibri, sans-serif;font-size:10pt">With sessions to cover both business and technical content, there is something for everyone, from end users, administrators and developers to managers and CIOs. </span><span style="line-height:115%;font-size:10pt"></span></p>
 <p style="text-align:justify;line-height:115%"><b><span style="line-height:115%;font-family:calibri, sans-serif;color:rgb(228, 108, 10);font-size:11pt">Pre and Post Conference Workshops </span></b></p>
 <h3 style="text-align:justify;line-height:115%"><span style="line-height:115%;font-family:calibri, sans-serif;font-size:10pt;font-weight:normal">Take advantage of the additional training opportunities on Monday October 25<sup>th</sup> and Thursday October 28<sup>th</sup>, with intensive half day workshops with hands on labs. </span><span style="line-height:115%;font-family:calibri, sans-serif;font-size:10pt">Full details at </span><span><a href="http://www.envisionit.co.nz/SPevents/SEASPC/SitePages/GTTP.aspx" target="_blank"><span style="line-height:115%;font-family:calibri, sans-serif;color:rgb(228, 108, 10);font-size:10pt">Get to the Point Workshops</span></a>. </span><span style="line-height:115%;font-family:calibri, sans-serif;font-size:10pt">These workshops are HIGHLY recommended. Note that workshop costs are additional to conference registration and places are limited.</span></h3>
 <h3 style="text-align:justify;line-height:115%"><span style="line-height:115%;font-family:calibri, sans-serif;color:rgb(228, 108, 10);font-size:12pt">Registrations Available Now</span></h3>
 <div align="center"> <table class="MsoNormalTable" border="0" cellspacing="0" cellpadding="0" style="border-collapse:collapse"> <tbody> <tr> <td valign="top" width="415" style="padding:0cm 5.4pt;width:311.6pt"> <h3 style="line-height:115%"><u><span style="line-height:115%;font-family:calibri, sans-serif;color:rgb(228, 108, 10);font-size:9pt;font-weight:normal">Group Registrations</span></u><span style="line-height:115%;font-family:calibri, sans-serif;color:rgb(228, 108, 10);font-size:9pt;font-weight:normal"> </span><span style="line-height:115%;font-family:calibri, sans-serif;font-size:9pt;font-weight:normal">for 5 or more participants are available and will receive a 20% discount<br /><u><span style="color:rgb(228, 108, 10)">Early Bird Registrations</span></u><span style="color:rgb(228, 108, 10)"> </span>of $SGD300.00 will apply to the first 275 delegates who register. <br /><u><span style="color:rgb(228, 108, 10)">Regular Registration</span></u><span style="color:rgb(228, 108, 10)"> </span>fee is $SGD400.00</span><span style="font-family:calibri, sans-serif;font-weight:normal"></span></h3></td>
 <td width="185" style="padding:0cm 5.4pt;width:138.95pt"> <h3 align="center" style="text-align:center;line-height:115%"><a href="http://www.regonline.com/877870"><span style="color:windowtext;text-decoration:none"><img title="clip_image0046_332E8483" border="0" alt="clip_image0046_332E8483" src="/Blog/Lists/Posts/Attachments/16/clip_image0046_332E8483_5b22629f-faf3-4fd0-95a4-cf74775c5a24_756A7195.gif" width="178" height="66" style="background-image:none;border:0px;padding-left:0px;padding-right:0px;display:inline;padding-top:0px" /></span></a><span style="font-family:calibri, sans-serif"></span></h3></td></tr></tbody></table></div>
 <p align="center" style="text-align:center;line-height:115%"><span style="line-height:115%;font-family:calibri, sans-serif;font-size:9pt">These rates include GST, attendance for the two day event Oct 26/27 and also include attendance at the Networking Event 5:30-7:30 Tuesday 26 October.</span></p>
 <p align="center" style="text-align:center;line-height:115%"><b><span style="line-height:115%;font-family:calibri, sans-serif;font-size:10pt">Thank you to our Gold Sponsors</span></b></p>
 <table class="MsoNormalTable" border="0" cellspacing="0" cellpadding="0" style="border-collapse:collapse"> <tbody> <tr style="height:59.15pt"> <td width="120" style="padding:0cm 5.4pt;width:90.1pt;height:59.15pt"> <p align="center" style="text-align:center;line-height:115%"><a href="http://www.avepoint.com/"><span style="line-height:115%;font-family:calibri, sans-serif;color:rgb(228, 108, 10);font-size:9pt;text-decoration:none"><img title="clip_image0096_332E8483" border="0" alt="clip_image0096_332E8483" src="/Blog/Lists/Posts/Attachments/16/clip_image0096_332E8483_b66e9f5e-fbaa-4693-8735-a940cadcb38b_756A7195.gif" width="179" height="59" style="background-image:none;border:0px;padding-left:0px;padding-right:0px;display:inline;padding-top:0px" /></span></a><span style="line-height:115%;font-family:calibri, sans-serif;color:rgb(228, 108, 10);font-size:9pt"></span> </p></td>
 <td width="120" style="padding:0cm 5.4pt;width:90.1pt;height:59.15pt"> <p align="center" style="text-align:center;line-height:115%"><a href="/"><span style="line-height:115%;font-family:calibri, sans-serif;color:rgb(228, 108, 10);font-size:9pt;text-decoration:none"><img title="clip_image0116_332E8483" border="0" alt="clip_image0116_332E8483" src="/Blog/Lists/Posts/Attachments/16/clip_image0116_332E8483_81565165-d91d-441e-bee7-853a0af19387_756A7195.gif" width="65" height="60" style="background-image:none;border:0px;padding-left:0px;padding-right:0px;display:inline;padding-top:0px" /></span></a><span style="line-height:115%;font-family:calibri, sans-serif;color:rgb(228, 108, 10);font-size:9pt"></span> </p></td>
 <td width="120" style="padding:0cm 5.4pt;width:90.1pt;height:59.15pt"> <p align="center" style="text-align:center;line-height:115%"><a href="/Blog/Lists/Posts/Attachments/16/image_6_332E8483_2_2357C44E.png"><img title="image_6_332E8483" border="0" alt="image_6_332E8483" src="/Blog/Lists/Posts/Attachments/16/image_6_332E8483_thumb_2357C44E.png" width="140" height="38" style="background-image:none;border:0px;padding-left:0px;padding-right:0px;display:inline;padding-top:0px" /></a> </p></td>
 <td width="120" style="padding:0cm 5.4pt;width:90.1pt;height:59.15pt"> <p align="center" style="text-align:center;line-height:115%"><a href="http://www.quest.com/"><span style="line-height:115%;font-family:calibri, sans-serif;color:rgb(228, 108, 10);font-size:9pt;text-decoration:none"><img title="clip_image0156_332E8483" border="0" alt="clip_image0156_332E8483" src="/Blog/Lists/Posts/Attachments/16/clip_image0156_332E8483_14e68860-42ec-4952-a6c0-a1316fb41484_2357C44E.gif" width="207" height="41" style="background-image:none;border:0px;padding-left:0px;padding-right:0px;display:inline;padding-top:0px" /></span></a><span style="line-height:115%;font-family:calibri, sans-serif;color:rgb(228, 108, 10);font-size:9pt"></span> </p></td>
 <td width="120" style="padding:0cm 5.4pt;width:90.15pt;height:59.15pt"> <p align="center" style="text-align:center;line-height:115%"><a href="http://www.mindtree.com/"><span style="line-height:115%;font-family:calibri, sans-serif;color:rgb(228, 108, 10);font-size:9pt;text-decoration:none"><img title="clip_image0176_1E3D0210" border="0" alt="clip_image0176_1E3D0210" src="/Blog/Lists/Posts/Attachments/16/clip_image0176_1E3D0210_1eb7db3b-9964-48a1-ada5-b7e27578cc68_2357C44E.gif" width="60" height="90" style="background-image:none;border:0px;padding-left:0px;padding-right:0px;display:inline;padding-top:0px" /></span></a><span style="line-height:115%;font-family:calibri, sans-serif;color:rgb(228, 108, 10);font-size:9pt"></span> </p></td></tr></tbody></table>
 <p class="MsoNormal" style="line-height:115%"></p></td></tr>
 <tr> <td valign="top" width="616" style="border-width:medium 1pt;border-style:none solid;border-left-color:windowtext;padding:0cm 5.4pt;width:462.1pt;border-right-color:windowtext"> <p class="MsoNormal" align="center" style="text-align:center;line-height:115%"><a href="/Blog/Lists/Posts/Attachments/16/image_2_1E3D0210_2_2357C44E.png"><img title="image_2_1E3D0210" border="0" alt="image_2_1E3D0210" src="/Blog/Lists/Posts/Attachments/16/image_2_1E3D0210_thumb_2357C44E.png" width="556" height="133" style="background-image:none;border:0px;padding-left:0px;padding-right:0px;display:inline;padding-top:0px" /></a> </p></td></tr>
 <tr> <td valign="top" width="616" style="border-bottom-color:windowtext;border-width:medium 1pt 1pt;border-style:none solid solid;border-left-color:windowtext;padding:0cm 5.4pt;width:462.1pt;border-right-color:windowtext"> </td></tr></tbody></table></div></div>
<div><b>Published:</b> 10/20/2010 11:34 AM</div>
<div><b>Author:</b> <a href="http://www.synergyonline.com/company/Profiles/Pages/RandyWilliams.aspx">Randy Williams</a></div>
<div><b>PageKeywords:</b> SharePoint implementation, SharePoint experts</div>
<div><b>PageTitle:</b> &quot;The Evolution of SharePoint from Two Pet Projects to a Multi-Company Ecosystem&quot;</div>
<div><b>PageDescription:</b> How did SharePoint start and how did it become the centre of the universe in under a decade?</div>
<div><b>Attachments:</b> <a href="http://www.synergyonline.com/Blog/Lists/Posts/Attachments/16/clip_image0046_332E8483_5b22629f-faf3-4fd0-95a4-cf74775c5a24_756A7195.gif">http://www.synergyonline.com/Blog/Lists/Posts/Attachments/16/clip_image0046_332E8483_5b22629f-faf3-4fd0-95a4-cf74775c5a24_756A7195.gif</a><br /><a href="http://www.synergyonline.com/Blog/Lists/Posts/Attachments/16/clip_image0046_332E8483_71205631-e037-45bb-8282-3c1a94b0f494_756A7195.gif">http://www.synergyonline.com/Blog/Lists/Posts/Attachments/16/clip_image0046_332E8483_71205631-e037-45bb-8282-3c1a94b0f494_756A7195.gif</a><br /><a href="http://www.synergyonline.com/Blog/Lists/Posts/Attachments/16/clip_image0096_332E8483_b66e9f5e-fbaa-4693-8735-a940cadcb38b_756A7195.gif">http://www.synergyonline.com/Blog/Lists/Posts/Attachments/16/clip_image0096_332E8483_b66e9f5e-fbaa-4693-8735-a940cadcb38b_756A7195.gif</a><br /><a href="http://www.synergyonline.com/Blog/Lists/Posts/Attachments/16/clip_image0116_332E8483_81565165-d91d-441e-bee7-853a0af19387_756A7195.gif">http://www.synergyonline.com/Blog/Lists/Posts/Attachments/16/clip_image0116_332E8483_81565165-d91d-441e-bee7-853a0af19387_756A7195.gif</a><br /><a href="http://www.synergyonline.com/Blog/Lists/Posts/Attachments/16/clip_image0156_332E8483_14e68860-42ec-4952-a6c0-a1316fb41484_2357C44E.gif">http://www.synergyonline.com/Blog/Lists/Posts/Attachments/16/clip_image0156_332E8483_14e68860-42ec-4952-a6c0-a1316fb41484_2357C44E.gif</a><br /><a href="http://www.synergyonline.com/Blog/Lists/Posts/Attachments/16/clip_image0176_1E3D0210_1eb7db3b-9964-48a1-ada5-b7e27578cc68_2357C44E.gif">http://www.synergyonline.com/Blog/Lists/Posts/Attachments/16/clip_image0176_1E3D0210_1eb7db3b-9964-48a1-ada5-b7e27578cc68_2357C44E.gif</a><br /><a href="http://www.synergyonline.com/Blog/Lists/Posts/Attachments/16/image_2_1E3D0210_2_2357C44E.png">http://www.synergyonline.com/Blog/Lists/Posts/Attachments/16/image_2_1E3D0210_2_2357C44E.png</a><br /><a href="http://www.synergyonline.com/Blog/Lists/Posts/Attachments/16/image_2_1E3D0210_thumb_2357C44E.png">http://www.synergyonline.com/Blog/Lists/Posts/Attachments/16/image_2_1E3D0210_thumb_2357C44E.png</a><br /><a href="http://www.synergyonline.com/Blog/Lists/Posts/Attachments/16/image_4_332E8483_2_756A7195.png">http://www.synergyonline.com/Blog/Lists/Posts/Attachments/16/image_4_332E8483_2_756A7195.png</a><br /><a href="http://www.synergyonline.com/Blog/Lists/Posts/Attachments/16/image_4_332E8483_thumb_756A7195.png">http://www.synergyonline.com/Blog/Lists/Posts/Attachments/16/image_4_332E8483_thumb_756A7195.png</a><br /><a href="http://www.synergyonline.com/Blog/Lists/Posts/Attachments/16/image_6_332E8483_2_2357C44E.png">http://www.synergyonline.com/Blog/Lists/Posts/Attachments/16/image_6_332E8483_2_2357C44E.png</a><br /><a href="http://www.synergyonline.com/Blog/Lists/Posts/Attachments/16/image_6_332E8483_thumb_2357C44E.png">http://www.synergyonline.com/Blog/Lists/Posts/Attachments/16/image_6_332E8483_thumb_2357C44E.png</a><br /><a href="http://www.synergyonline.com/Blog/Lists/Posts/Attachments/16/image_8_332E8483_2_756A7195.png">http://www.synergyonline.com/Blog/Lists/Posts/Attachments/16/image_8_332E8483_2_756A7195.png</a><br /><a href="http://www.synergyonline.com/Blog/Lists/Posts/Attachments/16/image_8_332E8483_thumb_756A7195.png">http://www.synergyonline.com/Blog/Lists/Posts/Attachments/16/image_8_332E8483_thumb_756A7195.png</a><br /><a href=""></a></div>
]]></description>
      <author>System Account</author>
      <pubDate>Fri, 05 Aug 2011 15:40:10 GMT</pubDate>
      <guid isPermaLink="true">http://www.synergyonline.com/Blog/Lists/Posts/ViewPost.aspx?ID=16</guid>
    </item>
    <item>
      <title>Slides from Hawaii SharePoint / .NET User Group – September 2010</title>
      <link>http://www.synergyonline.com/Blog/Lists/Posts/ViewPost.aspx?ID=17</link>
      <description><![CDATA[<div><b>Body:</b> <div class="ExternalClass525B2DA82CD24327A99964AA18E79919"> <p><font size="2">What a great turnout last night!  Many thanks for those of you who showed up to welcome me back to the islands.  I hope you enjoyed the presentation and the demonstrations on SharePoint 2010.</font></p>
 <p><font size="2">Here is the presentation I gave:  </font></p>
 <p><strong><em><font size="2">The SharePoint 2010 Developer Platform.  </font></em></strong></p>
 <p><font size="2">SharePoint is both a powerful product delivering out-of-the-box capabilities and a development platform, an evolved form of .NET. In this session, we look at SharePoint architecture and examine the tools that are available for building powerful applications on top of SharePoint 2010. Expect it to see a whirlwind of technology spanning necessary theory, practical guidance, and quite a few demonstrations. </font></p>
 <p><font size="2">I had previously written a couple blog articles on two of my demonstrations.  Feel free to check these out to get more details on how it was put together.</font></p>
 <p><a title="Developing a Silverlight 3.0 Web part for SharePoint 2010" href="/blog/blog-moss/Lists/Posts/Post.aspx?ID=118"><font size="2">Developing a Silverlight 3.0 Web part for SharePoint 2010 - MOSS Blog</font></a></p>
 <p><a title="Overview of using REST in SharePoint 2010" href="/blog/blog-moss/Lists/Posts/Post.aspx?ID=117"><font size="2">Overview of using REST in SharePoint 2010</font></a></p>
 <p><font size="2"></font> </p>
 <p><font size="2">Those looking for the slide deck can <a href="/blog/blog-moss/Files/SharePoint%202010%20Developer%20Platform.pdf">click here to download</a>.</font></p>
 <p><font size="2">Until my next trip to the islands...aloha and mahalo nui loa!</font></p>
 <p> </p>
 </div></div>
<div><b>Category:</b> <a onclick="OpenPopUpPage('http://www.synergyonline.com/Blog/_layouts/listform.aspx?PageType=4&ListId={BEBD6B7C-8EDF-4976-8627-9238AFF8A903}&ID=4&RootFolder=*', RefreshPage); return false;" href="http://www.synergyonline.com/Blog/_layouts/listform.aspx?PageType=4&ListId={BEBD6B7C-8EDF-4976-8627-9238AFF8A903}&ID=4&RootFolder=*">Development</a></div>
<div><b>Published:</b> 9/16/2010 11:41 AM</div>
<div><b>Author:</b> <a href="http://www.synergyonline.com/company/Profiles/Pages/RandyWilliams.aspx">Randy Williams</a></div>
<div><b>PageKeywords:</b> SharePoint training, sharepoint installation, sharepoint training courses</div>
<div><b>PageTitle:</b> Slides from Hawaii SharePoint / .NET User Group – September 2010</div>
<div><b>PageDescription:</b> The SharePoint 2010 Developer Platform - Presentation from Synergy SharePoint Expert</div>
]]></description>
      <author>System Account</author>
      <category>Development</category>
      <pubDate>Fri, 05 Aug 2011 15:41:33 GMT</pubDate>
      <guid isPermaLink="true">http://www.synergyonline.com/Blog/Lists/Posts/ViewPost.aspx?ID=17</guid>
    </item>
    <item>
      <title>Open PDF Files in a New Window</title>
      <link>http://www.synergyonline.com/Blog/Lists/Posts/ViewPost.aspx?ID=18</link>
      <description><![CDATA[<div><b>Body:</b> <div class="ExternalClass926C5A47783441B1A381AAF08AF1F42B"> <p><font size="2">A request that I get occasionally is how to force SharePoint to open up PDF files up in a new window.  Assuming you have Adobe Reader installed, the default behavior is to prompt the user to open the PDF file.  For some customers, they want it to automatically open up in the same browser window.  This is easy to do by following the answer shown </font><a href="http://www.sharepointoverflow.com/questions/1754/eliminating-the-some-files-can-harm-your-computer-warning-prompt" target="_blank"><font size="2">here</font></a><font size="2">. (Note: this does assume that the browser plug-in is installed and enabled).</font></p>
 <p><font size="2">For me, I like this solution and simply use the back button when I’m done and want to return to SharePoint.  If I want it in a new window, I either hold down Ctrl and click the link or just right-click the link and select Open in New Window.  Basic browser stuff, right?  In most cases, I convince the customer that this is a training issue on how to use the browser. However, that doesn’t always fly with every customer, does it?</font></p>
 <p><font size="2">If you to force the PDF file to load into a new browser window, keep reading...</font></p>
 <p><font size="2">There are a number of posts on workarounds to the problem.  </font><a href="http://www.sharepointdev.net/sharepoint--setup-upgrade-administration-operation/how-to-open-pdf--in-new-window-16050.shtml" target="_blank"><font size="2">One</font></a><font size="2"> says that you should write a httphandler.  Not a bad solution, very thorough, but a complex one unless your a seasoned SharePoint and ASP.NET developer.  </font><a href="http://www.sharepointkings.com/2008/07/open-documents-in-new-window.html" target="_blank"><font size="2">Another</font></a><font size="2"> talks about editing the global onet.xml file (gasp!) which is not supported by Microsoft and this targets much more than just PDF files.  </font><a href="http://social.technet.microsoft.com/Forums/en-US/sharepointadmin/thread/9db08c4a-b53c-419a-84f8-001c194d1311" target="_blank"><font size="2">Others</font></a><font size="2"> suggest a somewhat elegant JavaScript solution.  This searches through the &lt;A&gt; tags on the page and inserts a target attribute and sets it to _blank which opens it in a new window.  The problem with this is that the target attribute is </font><a href="http://www.w3.org/MarkUp/2004/xhtml-faq#target" target="_blank"><font size="2">deprecated when using the strict XHTML doctype</font></a><font size="2"> which will present problem with SharePoint 2010 sites. </font></p>
 <p><font size="2">I think I have a pretty-good workaround that addresses the problem.  This is a page-specific fix, so it is not global to all libraries or links in your farm. I like it this way as you have granular control where you want to use it, meaning you may only want to use it on certain pages within team sites.</font></p>
 <p><font size="2">The solution is to add this code to a Content Editor Web Part (CEWP) on the page:</font></p>
 <div id="codeSnippetWrapper"><pre id="codeSnippet" class="csharpcode">&lt;script language=<span class="str">&quot;javascript&quot;</span> type=<span class="str">&quot;text/javascript&quot;</span>&gt;<br />    _spBodyOnLoadFunctionNames.push(<span class="str">&quot;OpenPDFInNewWindow()&quot;</span>); <br /><br />    <span class="kwrd">function</span> OpenPDFInNewWindow()<br />    {<br />      <span class="rem">// Get the collection of &lt;a&gt; tags</span><br />      <span class="kwrd">var</span> aAllLinks = document.getElementsByTagName(<span class="str">'a'</span>); <br /><br />      <span class="rem">// For each &lt;a&gt; tag</span><br />      <span class="kwrd">for</span>(<span class="kwrd">var</span> i=0;i&lt;aAllLinks.length;i++)<br />      {<br />         <span class="kwrd">var</span> oA = aAllLinks[i];<br />         <span class="kwrd">var</span> sHREF = oA.attributes[<span class="str">&quot;href&quot;</span>].value.toLowerCase();<br />         <span class="rem">// Is this a pdf link?</span><br />         <span class="kwrd">if</span>(sHREF.indexOf(<span class="str">&quot;.pdf&quot;</span>) &gt; 0)<br />            oA.href=<span class="str">&quot;javascript:window.open('&quot;</span> + sHREF + <span class="str">&quot;').focus();&quot;</span>;<br />      }<br />    }<br />&lt;/script&gt;<br /></pre></div>
<p><font size="2">Credit goes to </font><a href="http://social.technet.microsoft.com/Forums/en-US/sharepointadmin/thread/9db08c4a-b53c-419a-84f8-001c194d1311" target="_blank">Daniel</a><font size="2"></font><font size="2"> whose code I modified to have this functionality.  To simplify this for all of you, I am also making this available using a .DWP web part.  You can simply upload this into the web part gallery of your site collection which allows you to more easily add it to any page. To download, click </font><a href="/blog/blog-moss/Files/OpenPdfInNewWindow.dwp">here</a><font size="2"></font><font size="2">. 
<style>
.ExternalClass926C5A47783441B1A381AAF08AF1F42B .externalclass926c5a47783441b1a381aaf08af1f42b .csharpcode-wrapper, .ExternalClass926C5A47783441B1A381AAF08AF1F42B .externalclass926c5a47783441b1a381aaf08af1f42b .csharpcode-wrapper pre
{background-color:#f4f4f4;border:solid 1px silver;cursor:text;font-family:'Courier New', courier, monospace;font-size:8pt;line-height:12pt;margin:20px 0px 10px 0px;overflow:auto;padding:4px;width:97.5%;}
.ExternalClass926C5A47783441B1A381AAF08AF1F42B .externalclass926c5a47783441b1a381aaf08af1f42b .csharpcode-wrapper pre
{border-style:none;margin:0px 0px 0px 0px;overflow:visible;padding:0px 0px 0px 0px;}
.ExternalClass926C5A47783441B1A381AAF08AF1F42B .externalclass926c5a47783441b1a381aaf08af1f42b .csharpcode, .ExternalClass926C5A47783441B1A381AAF08AF1F42B .externalclass926c5a47783441b1a381aaf08af1f42b .csharpcode pre, .ExternalClass926C5A47783441B1A381AAF08AF1F42B .externalclass926c5a47783441b1a381aaf08af1f42b .csharpcode .alt
{background-color:#f4f4f4;border-style:none;color:black;font-family:'Courier New', courier, monospace;font-size:8pt;line-height:12pt;overflow:visible;padding:0px;width:100%;}
.ExternalClass926C5A47783441B1A381AAF08AF1F42B .externalclass926c5a47783441b1a381aaf08af1f42b .csharpcode pre
{margin:0em;}
.ExternalClass926C5A47783441B1A381AAF08AF1F42B .externalclass926c5a47783441b1a381aaf08af1f42b .csharpcode .alt
{background-color:white;}
.ExternalClass926C5A47783441B1A381AAF08AF1F42B .externalclass926c5a47783441b1a381aaf08af1f42b .csharpcode .asp
{background-color:#ffff00;}
.ExternalClass926C5A47783441B1A381AAF08AF1F42B .externalclass926c5a47783441b1a381aaf08af1f42b .csharpcode .attr
{color:#ff0000;}
.ExternalClass926C5A47783441B1A381AAF08AF1F42B .externalclass926c5a47783441b1a381aaf08af1f42b .csharpcode .cls
{color:#cc6633;}
.ExternalClass926C5A47783441B1A381AAF08AF1F42B .externalclass926c5a47783441b1a381aaf08af1f42b .csharpcode .html
{color:#800000;}
.ExternalClass926C5A47783441B1A381AAF08AF1F42B .externalclass926c5a47783441b1a381aaf08af1f42b .csharpcode .kwrd
{color:#0000ff;}
.ExternalClass926C5A47783441B1A381AAF08AF1F42B .externalclass926c5a47783441b1a381aaf08af1f42b .csharpcode .lnum
{color:#606060;}
.ExternalClass926C5A47783441B1A381AAF08AF1F42B .externalclass926c5a47783441b1a381aaf08af1f42b .csharpcode .op
{color:#0000c0;}
.ExternalClass926C5A47783441B1A381AAF08AF1F42B .externalclass926c5a47783441b1a381aaf08af1f42b .csharpcode .preproc
{color:#cc6633;}
.ExternalClass926C5A47783441B1A381AAF08AF1F42B .externalclass926c5a47783441b1a381aaf08af1f42b .csharpcode .rem
{color:#008000;}
.ExternalClass926C5A47783441B1A381AAF08AF1F42B .externalclass926c5a47783441b1a381aaf08af1f42b .csharpcode .str
{color:#006080;}
</style>
</font></p></div></div>
<div><b>Category:</b> <a onclick="OpenPopUpPage('http://www.synergyonline.com/Blog/_layouts/listform.aspx?PageType=4&ListId={BEBD6B7C-8EDF-4976-8627-9238AFF8A903}&ID=5&RootFolder=*', RefreshPage); return false;" href="http://www.synergyonline.com/Blog/_layouts/listform.aspx?PageType=4&ListId={BEBD6B7C-8EDF-4976-8627-9238AFF8A903}&ID=5&RootFolder=*">Design</a>; <a onclick="OpenPopUpPage('http://www.synergyonline.com/Blog/_layouts/listform.aspx?PageType=4&ListId={BEBD6B7C-8EDF-4976-8627-9238AFF8A903}&ID=4&RootFolder=*', RefreshPage); return false;" href="http://www.synergyonline.com/Blog/_layouts/listform.aspx?PageType=4&ListId={BEBD6B7C-8EDF-4976-8627-9238AFF8A903}&ID=4&RootFolder=*">Development</a></div>
<div><b>Published:</b> 8/27/2010 11:42 AM</div>
<div><b>Author:</b> <a href="http://www.synergyonline.com/company/Profiles/Pages/RandyWilliams.aspx">Randy Williams</a></div>
<div><b>PageKeywords:</b> SharePoint training, sharepoint installation, sharepoint training courses</div>
<div><b>PageTitle:</b> Synergy SharePoint Expert on How to Open PDF Files in a New Window</div>
<div><b>PageDescription:</b> See how to force SharePoint to open up PDF files up in a new window.</div>
]]></description>
      <author>System Account</author>
      <category>Design; Development</category>
      <pubDate>Fri, 05 Aug 2011 15:42:27 GMT</pubDate>
      <guid isPermaLink="true">http://www.synergyonline.com/Blog/Lists/Posts/ViewPost.aspx?ID=18</guid>
    </item>
    <item>
      <title>Adding Global Navigation to the Master Page in the Search Center</title>
      <link>http://www.synergyonline.com/Blog/Lists/Posts/ViewPost.aspx?ID=171</link>
      <description><![CDATA[<div><b>Body:</b> <div class="ExternalClass25C8C61D005F4F4692C686EB8A6DAB85"><p class="ExternalClass87EC45BA72C644DCA362E67AB1A7279D" style="text-align:justify">Have you noticed that when you search for something in SharePoint, landing you in the Search Center to view your results, the global navigation menu disappears and you are no longer easily able to navigate out of the Search Center? While not a huge problem, this is definitely an annoyance for users who are accustomed to having consistent global navigation, which as we all know is a Web Design best practice.</p>
<p class="ExternalClass87EC45BA72C644DCA362E67AB1A7279D" style="text-align:justify">Here’s a little background as to why this happens. While v4.master is the default master page for the Enterprise Wiki Portal and nightandday.master is the default master page for the Publishing Portal, the Search Center uses minimal.master with custom page layouts. If you apply one of the other out-of-the-box master pages to the search center, the search box “disappears.” (If you look behind the global breadcrumb, you’ll notice it peeking through completely unusable.) </p>
<p class="ExternalClass87EC45BA72C644DCA362E67AB1A7279D" style="text-align:justify">A simple solution is to create a modified version of minimal.master adding the global navigation menu. I don’t typically add left hand (current) navigation since the Search Center has list-driven solutions for internal navigation that utilizes search and results tabs. </p>
<p class="ExternalClass87EC45BA72C644DCA362E67AB1A7279D" style="text-align:justify">The approach for customizing minimal.master is very straightforward. Here is the step-by-step: </p>
<p class="ExternalClass87EC45BA72C644DCA362E67AB1A7279D" style="text-align:justify">1. Open the root site and in the Site Objects menu select <b>Master Pages</b>.  </p>
<p class="ExternalClass87EC45BA72C644DCA362E67AB1A7279D" style="text-align:justify"><a href="/blog/Lists/Posts/Attachments/171/image1_2_082D856A.png"><img width="132" height="244" border="0" src="/blog/Lists/Posts/Attachments/171/image1_thumb_082D856A.png" alt="image1" title="image1" style="border-width:0px;padding-top:0px;padding-right:0px;padding-left:0px;display:inline;background-image:none" /></a>  </p>
<p class="ExternalClass87EC45BA72C644DCA362E67AB1A7279D" style="text-align:justify">2. Copy minimal.master and Save As <b>search.master</b>. Be sure you save it into the Master Page and Page Layouts Gallery.</p>
<p class="ExternalClass87EC45BA72C644DCA362E67AB1A7279D" style="text-align:justify">3. Right Click search.master and select Edit File in Advanced Mode </p>
<div class="ExternalClass87EC45BA72C644DCA362E67AB1A7279D" style="text-align:justify">
<a href="/blog/Lists/Posts/Attachments/171/image2_2_082D856A.png"><img width="231" height="244" border="0" src="/blog/Lists/Posts/Attachments/171/image2_thumb_361AD822.png" alt="image2" title="image2" style="border-width:0px;padding-top:0px;padding-right:0px;padding-left:0px;display:inline;background-image:none" /></a>  </div>
<div class="ExternalClass87EC45BA72C644DCA362E67AB1A7279D" style="text-align:justify">4. Open (but don’t check out) v4.master and be sure you are in Split View so that you can see both Design and Code Views at the same time.</div>
<div class="ExternalClass87EC45BA72C644DCA362E67AB1A7279D" style="text-align:justify">5. Select the Global Navigation Menu in the Design pane in order to select the related code in the Code pane. </div>
<div class="ExternalClass87EC45BA72C644DCA362E67AB1A7279D" style="text-align:justify"> </div>
<p class="ExternalClass87EC45BA72C644DCA362E67AB1A7279D" style="text-align:justify"><a href="/blog/Lists/Posts/Attachments/171/image4_2_361AD822.png"><img width="480" height="383" border="0" src="/blog/Lists/Posts/Attachments/171/image4_thumb_361AD822.png" alt="image4" title="image4" style="border-width:0px;padding-top:0px;padding-right:0px;padding-left:0px;display:inline;background-image:none" /></a>  </p>
<p class="ExternalClass87EC45BA72C644DCA362E67AB1A7279D" style="text-align:justify">6. In Code View select and copy the code beginning with</p>
<p class="ExternalClass87EC45BA72C644DCA362E67AB1A7279D" style="text-align:justify">&lt;div id=&quot;s4-topheader2&quot; class=&quot;s4-pr s4-notdlg&quot;&gt; <br />and ending with<br />&lt;/div&gt; &lt;/div&gt; </p>
<p class="ExternalClass87EC45BA72C644DCA362E67AB1A7279D" style="text-align:justify">7. Add the copied code search.master between the page subtitle and the Title Breadcrumb: </p>
<div class="ExternalClass87EC45BA72C644DCA362E67AB1A7279D" style="text-align:justify">  </div>
<p class="ExternalClass87EC45BA72C644DCA362E67AB1A7279D" style="text-align:justify"><a href="/blog/Lists/Posts/Attachments/171/image3_2_361AD822.png"><img width="564" height="181" border="0" src="/blog/Lists/Posts/Attachments/171/image3_thumb_361AD822.png" alt="image3" title="image3" style="border-width:0px;padding-top:0px;padding-right:0px;padding-left:0px;display:inline;background-image:none" /></a>  </p>
<p class="ExternalClass87EC45BA72C644DCA362E67AB1A7279D" style="text-align:justify">8. Save and check in search.master as a published version and approve it. </p>
<p class="ExternalClass87EC45BA72C644DCA362E67AB1A7279D" style="text-align:justify">9. Apply it only as the <b>Site Master</b> page only to the Search Center (Site Actions &gt; Site Settings &gt; Master Page) </p>
<blockquote>
<div>
 </div>
<p>Here is a <a href="/blog/documents/SearchMaster.zip">link</a> to the code described in this post</p>
<p> </p></blockquote>
<div>
 </div></div></div>
<div><b>Category:</b> <a onclick="OpenPopUpPage('http://www.synergyonline.com/Blog/_layouts/listform.aspx?PageType=4&ListId={BEBD6B7C-8EDF-4976-8627-9238AFF8A903}&ID=13&RootFolder=*', RefreshPage); return false;" href="http://www.synergyonline.com/Blog/_layouts/listform.aspx?PageType=4&ListId={BEBD6B7C-8EDF-4976-8627-9238AFF8A903}&ID=13&RootFolder=*">SharePoint</a>; <a onclick="OpenPopUpPage('http://www.synergyonline.com/Blog/_layouts/listform.aspx?PageType=4&ListId={BEBD6B7C-8EDF-4976-8627-9238AFF8A903}&ID=4&RootFolder=*', RefreshPage); return false;" href="http://www.synergyonline.com/Blog/_layouts/listform.aspx?PageType=4&ListId={BEBD6B7C-8EDF-4976-8627-9238AFF8A903}&ID=4&RootFolder=*">Development</a></div>
<div><b>Published:</b> 12/21/2011 10:08 AM</div>
<div><b>Author:</b> <a href="http://www.synergyonline.com/company/Profiles/Pages/ChrisBayot.aspx">Chris Bayot</a></div>
<div><b>PageKeywords:</b> SharePoint training, sharepoint installation, sharepoint training courses</div>
<div><b>PageTitle:</b> SharePoint Expert on How to Add Global Navigation to the Master Page in the Search Center</div>
<div><b>PageDescription:</b> Have you noticed that when you search for something in SharePoint, landing you in the Search Center to view your results, the global navigation menu disappears and you are no longer easily able to navigate out of the Search Center?</div>
<div><b>Attachments:</b> <a href="http://www.synergyonline.com/Blog/Lists/Posts/Attachments/171/image1_2_082D856A.png">http://www.synergyonline.com/Blog/Lists/Posts/Attachments/171/image1_2_082D856A.png</a><br /><a href="http://www.synergyonline.com/Blog/Lists/Posts/Attachments/171/image1_thumb_082D856A.png">http://www.synergyonline.com/Blog/Lists/Posts/Attachments/171/image1_thumb_082D856A.png</a><br /><a href="http://www.synergyonline.com/Blog/Lists/Posts/Attachments/171/image2_2_082D856A.png">http://www.synergyonline.com/Blog/Lists/Posts/Attachments/171/image2_2_082D856A.png</a><br /><a href="http://www.synergyonline.com/Blog/Lists/Posts/Attachments/171/image2_thumb_361AD822.png">http://www.synergyonline.com/Blog/Lists/Posts/Attachments/171/image2_thumb_361AD822.png</a><br /><a href="http://www.synergyonline.com/Blog/Lists/Posts/Attachments/171/image3_2_361AD822.png">http://www.synergyonline.com/Blog/Lists/Posts/Attachments/171/image3_2_361AD822.png</a><br /><a href="http://www.synergyonline.com/Blog/Lists/Posts/Attachments/171/image3_thumb_361AD822.png">http://www.synergyonline.com/Blog/Lists/Posts/Attachments/171/image3_thumb_361AD822.png</a><br /><a href="http://www.synergyonline.com/Blog/Lists/Posts/Attachments/171/image4_2_361AD822.png">http://www.synergyonline.com/Blog/Lists/Posts/Attachments/171/image4_2_361AD822.png</a><br /><a href="http://www.synergyonline.com/Blog/Lists/Posts/Attachments/171/image4_thumb_361AD822.png">http://www.synergyonline.com/Blog/Lists/Posts/Attachments/171/image4_thumb_361AD822.png</a><br /><a href=""></a></div>
]]></description>
      <author>System Account</author>
      <category>SharePoint; Development</category>
      <pubDate>Wed, 21 Dec 2011 15:08:43 GMT</pubDate>
      <guid isPermaLink="true">http://www.synergyonline.com/Blog/Lists/Posts/ViewPost.aspx?ID=171</guid>
    </item>
    <item>
      <title>Why is there a backwards P in my document and how can I fix it? Formatting marks in Microsoft Word</title>
      <link>http://www.synergyonline.com/Blog/Lists/Posts/ViewPost.aspx?ID=255</link>
      <description><![CDATA[<div><b>Body:</b> <div class="ExternalClassCE47C80363C94EF89DF8E3D94D22E2E2"><p>I got a call from one of my Synergy SharePoint trainers the other day. I had been asked to review one of their documents for formatting, grammar, etc. When I sent it back to them, they were seeing dots, and backwards P’s and black marks in the margins. I got a call asking what the heck was all that ‘stuff’ and when they tried to delete the marks, things just go kaflooey. (Yes, that is one of my favorite technical terms.) </p>
<p>There are two reasons those marks will come up. Either it’s because they’ve turned on the Show Formatting Marks for the document, or I forgot to turn it off before I sent it back to them.  </p>
<p>If you’re not used to having them there all the time, I admit, it can be distracting. However, because I check documents for formatting, etc., I find it’s easier keep the formatting symbols and margin info turned on at all times. It’s gotten to the point where I can’t look at a document any other way. I even turn it on when I’m using someone else’s machine to do some editing. Then, I have to remember to turn it off before I leave or I get the same question all over again. </p>
<p>What does it look like?  </p>
<p></p>
<div style="text-align:center"><img src="/Blog/PublishingImages/Formatting.png" alt="Formatting.png" style="margin:5px;width:600px;height:58px" /> </div>
<p>I’ve done a screen grab of the second paragraph of this post. See those backward “P” marks and all the dots? Those are the formatting marks. There are many more of them, but these are the ones you’ll see the most.</p>
<p></p>
<p>To turn on the formatting marks in Office 2010: </p></div>
<blockquote style="margin:0px 0px 0px 40px;border-style:none;padding:0px"><div class="ExternalClassCE47C80363C94EF89DF8E3D94D22E2E2"><p>· Go to File – Options </p></div>
<div class="ExternalClassCE47C80363C94EF89DF8E3D94D22E2E2"><p>· Select Display </p></div>
<div class="ExternalClassCE47C80363C94EF89DF8E3D94D22E2E2"><p>· Under <b>Always show these formatting marks on the screen</b>, select Show <u>a</u>ll formatting marks </p></div></blockquote>
<div class="ExternalClassCE47C80363C94EF89DF8E3D94D22E2E2"><p>OR – you can select the backwards P in the Paragraph section of the Home ribbon tab.  </p>
<p></p>
<div style="text-align:center"><img src="/Blog/PublishingImages/Paragraph.png" alt="Paragraph.png" style="margin:5px;width:300px;height:135px" /> </div>
<p>For the Text boundaries in Office 2010:</p>
<p></p></div>
<blockquote style="margin:0px 0px 0px 40px;border-style:none;padding:0px"><div class="ExternalClassCE47C80363C94EF89DF8E3D94D22E2E2"><p>· Go to File – Options </p></div>
<div class="ExternalClassCE47C80363C94EF89DF8E3D94D22E2E2"><p>· Select Advanced </p></div>
<div class="ExternalClassCE47C80363C94EF89DF8E3D94D22E2E2"><p>· About half way down, in the Show document content area, select the items that will help you the most. I always have the following checked: </p></div></blockquote>
<div class="ExternalClassCE47C80363C94EF89DF8E3D94D22E2E2"><ul> <ul><li><span style="font-size:8pt">Sho</span><span style="font-size:8pt">w drawings and text boxes on screen</span><br /></li>
<li><span style="font-size:8pt">Show text animation</span><br /></li>
<li><span style="font-size:8pt">Show text boundaries</span><br /></li>
<li><span style="font-size:8pt">Show</span><span style="font-size:8pt"> crop marks (especially helpful if you’re preparing a brochure, etc. for professional printing)</span><br /></li></ul>
   </ul>
 <p>This is shown in the screen grab below. (Those arrows are tabs.) </p>
<p></p>
<div style="text-align:center"><img src="/Blog/PublishingImages/Arrows.png" alt="Arrows.png" style="margin:5px;width:600px;height:105px" /> </div>
<p>What good are those marks good for? Well, say you’re looking at a document that just has too many spaces, but delete just isn’t working. It could be there’s a non-breaking space lurking in the sentence. If you can see it, you can get rid of it.</p>
<p></p>
<p>A non-breaking space mark looks like a degree mark (°) and is created by using the Shift-Ctrl-Spacebar combination. However, it can also be ‘created’ when you copy-paste text from another document or from a website. If you don’t have the formatting marks showing, hitting the Delete key just makes the letters/spaces behind it go away. To get rid of it, you have to get ‘behind’ it and use the backspace key or highlight the mark itself and then use delete.</p>







<p></p>
<p>Another issue has been in the Table of Contents. We use the Styles to create heading levels for the TOCs in our documents. However sometimes someone will accidently set a paragraph to a style which should be in the TOC. Then, when creating the TOC, suddenly there is an entire paragraph showing up instead of the title you were expecting. You can check it by clicking on that backward P and seeing if there’s a mark. </p>
<p></p>
<div style="text-align:center"><img src="/Blog/PublishingImages/Marks.png" alt="Marks.png" style="margin:5px;width:500px;height:130px" /> </div>
 <p></p>
<p>When you set a title, etc. as a particular style, it puts another of those mystery marks in the document. You’ll see a small square in the margins of the document next to the style. When you find that paragraph in the TOC, turn on the formatting marks, and you’re sure to see it there in the margin. Just reset the style of the paragraph to Normal from the Styles group on the Home tab in the ribbon, or whatever you need it to be that isn’t in your TOC, and that should take care of it.  </p>
<p></p>
<div style="text-align:center"><img src="/Blog/PublishingImages/Headings.png" alt="Headings.png" style="margin:5px;width:400px;height:154px" /> </div>
<p>To see what the text may be set to, make sure you’re on the Home tab, and click within the text. You’ll see the Style highlighted. Seeing the line is set to Heading 2, you can then select from the Style drop down the proper style for the text.</p>
<p></p>
<p></p>
<div style="text-align:center"><img src="/Blog/PublishingImages/StyleDrop.png" alt="StyleDrop.png" style="margin:5px;width:500px;height:162px" /> </div>
 <p></p>
<p>The bullet will also appear when you set some of the paragraph formatting such as Keep with next, Keep lines together; etc. These can be found in the dialog box that opens up when you click on the arrow in the Paragraph group on the Home tab in the ribbon.  </p>
<p>There is a very good article on <a href="http://word.mvps.org/FAQs/Formatting/NonPrintChars.htm" target="_blank">the mystery marks by Suzanne S. Barnhill and Dave Rado on the Microsoft Word MVP FAQ site</a>. They actually call them the ‘funny marks’, though to someone who doesn’t know what they are and how to get rid of them, it’s probably not too funny. </p>
<p>While the article was written prior to Word 2010, the information is still current. The examples they provide are excellent and explain a lot of those strange marks you may find in your document when you view the formatting. </p>
<p>I have just started the journey into the wonderful world of Office 2013. In fact, the screen grabs in this post are from Word 2013. Once I get my head around some of the new features, I’ll post an article (or three) on what’s new, what’s changed and what’s driving me crazy. I’d love to hear if anyone is using 2013 yet and your thoughts on how to make it work better for everyone.</p></div>
​​</div>
<div><b>Category:</b> <a onclick="OpenPopUpPage('http://www.synergyonline.com/Blog/_layouts/listform.aspx?PageType=4&ListId={BEBD6B7C-8EDF-4976-8627-9238AFF8A903}&ID=10&RootFolder=*', RefreshPage); return false;" href="http://www.synergyonline.com/Blog/_layouts/listform.aspx?PageType=4&ListId={BEBD6B7C-8EDF-4976-8627-9238AFF8A903}&ID=10&RootFolder=*">Microsoft Office</a></div>
<div><b>Published:</b> 2/19/2013 2:54 PM</div>
<div><b>Author:</b> <a href="http://www.synergyonline.com/company/Profiles/Pages/Deborah-Zotian.aspx">Deborah Zotian</a></div>
<div><b>PageKeywords:</b> SharePoint 2010, SharePoint Development, Microsoft, Office 2013</div>
<div><b>PageTitle:</b> Why is there a backwards P in my document and how can I fix it? Formatting marks in Microsoft Word</div>
<div><b>PageDescription:</b> Have you ever been frustrated by strange marks in your Word document? Check out our latest blog post for a possible answer.</div>
]]></description>
      <author>System Account</author>
      <category>Microsoft Office</category>
      <pubDate>Tue, 19 Feb 2013 19:36:05 GMT</pubDate>
      <guid isPermaLink="true">http://www.synergyonline.com/Blog/Lists/Posts/ViewPost.aspx?ID=255</guid>
    </item>
    <item>
      <title>SharePoint Best Practice Series – Page Performance VS Page Design</title>
      <link>http://www.synergyonline.com/Blog/Lists/Posts/ViewPost.aspx?ID=254</link>
      <description><![CDATA[<div><b>Body:</b> <div class="ExternalClass8BF86FB9AB28443BAA29D8D11D697C75"><p>A common issue for designers and developers is the ongoing struggle to create web sites that are state of the art and visually stunning whilst delivering good page performance and a strong user experience. </p>
<p>This juggling act is nothing new and has been a key factor in creating successful sites since the advent of the web. </p>
<p>Balancing visual design against page size is as important today as it has ever been and in reality it’s as difficult as it ever was. With the exponential increase in the use of mobile computing, alongside a drive towards media rich websites it looks like it will continue to be the case into the foreseeable future. </p>
<p><br /></p>
<h4><font style="font-weight:bold">The Issue:</font></h4>
 <p>Synergy’s home page and our <a href="/web/Pages/WebPortfolio.aspx" title="Synergy Portfolio Page">portfolio page</a> are good examples of the juggle struggle. They are visually engaging with a lot of graphic detail and both utilise JavaScript accordions, sliders and Mega-menu’s.  </p>
<p>All of these additions drive page size up and up and are the expected norm on a good web site today. However the Synergy site still manages to load in an acceptable time.  </p>
<p>This isn’t by accident or luck and it works because it was factored in from the beginning – It did however drive our design and development teams to become expert jugglers! </p>
<p>Synergy Home Page: </p>
<p><img src="/Blog/PublishingImages/Synergy%20Home%20Page.png" alt="Synergy Home Page.png" style="margin:5px;width:600px;height:416px" /><br /><span style="font-weight:bold;font-size:8pt">A Real World Example</span><br /></p>
 <p>Every Internet Design engagement I have undertaken that involves a rich user experience requires the design to be rationalised against page size and download speed.</p>
<p>On one of our recent SharePoint design engagements we came up against pretty much all of the challenges a web team will face in juggling creativity against page performance. </p>
<p><br /></p>
<h4><font style="font-weight:bold">The Project Issues Faced</font></h4>
 <p>The initial project scope was to design a visually striking internal Intranet for a government organisation. Little or no page performance configuration was required as the network topology more than sufficient running on a Gb LAN. Below is a shot of one of the Design Mock–ups, by design its page content heavy. </p>
<p>Home page design mock-up: </p>
<p><img src="/Blog/PublishingImages/Home%20page%20design%20mock-up.png" alt="Home page design mock-up.png" style="margin:5px;width:600px;height:644px" /><br /><span style="font-size:8pt"><br /></span></p>
<p><span style="font-size:8pt">As the project progressed and was near design and development completion, testing uncovered a number of key employees that worked overseas and accessed the site using IPAD’s over 3G. All complained of similar issues. The sites home page would either not load at all or took too long for it to be worth their while.</span><br /></p>
<p><span style="font-size:8pt"><br /></span></p>
<h4><font style="font-weight:bold">The sites short comings when used remotely</font></h4>
 <p>As the projects initial scope was for a design that could sit on a high speed WAN, page size considerations where excluded from User Acceptance Testing. When the issues surfaced and a thorough series of performance testing was completed the results immediately showed that the page design was to media rich for an IPAD over 3G. </p>
<p>However part of the brief was for the design to leverage of capabilities that are traditionally size heavy. On the surface it seemed Synergy was at an impasse with a site design and page functionality that had been approved but was effectively useless on an IPAD. </p>
<p>IIS 7.0’s flexibility to the rescue. </p>
<p><br /></p>
<h4><font style="font-weight:bold">Become an Expert Juggler and How to Pull It Back From the Brink</font></h4>
 <p>SharePoint and its architecture no matter how complex it can seem is still just about hosting web sites. All of the tools you need to take a Media Rich site and still allow it to be viewed across any network are there to take advantage of.  </p>
<p>Below is a list of all the main capabilities at your fingertips when trying to reduce page load size, there are others that can be used but their impact is small compared to the below list. They are in a relative order of top to bottom, biggest impact to smallest.  </p></div>
<blockquote style="margin:0px 0px 0px 40px;border:none;padding:0px"><div class="ExternalClass8BF86FB9AB28443BAA29D8D11D697C75"><p>1. Blob Caching </p></div>
<div class="ExternalClass8BF86FB9AB28443BAA29D8D11D697C75"><p>2. GZIP and compression </p></div>
<div class="ExternalClass8BF86FB9AB28443BAA29D8D11D697C75"><p>3. Defer parsing of JavaScript </p></div>
<div class="ExternalClass8BF86FB9AB28443BAA29D8D11D697C75"><p>4. Minimising CSS (In-lining) </p></div>
<div class="ExternalClass8BF86FB9AB28443BAA29D8D11D697C75"><p>5. Image optimisation – Sprites and proper use of thumbnails </p></div>
<div class="ExternalClass8BF86FB9AB28443BAA29D8D11D697C75"><p>6. Minimising JavaScript (In-lining) </p></div>
<div class="ExternalClass8BF86FB9AB28443BAA29D8D11D697C75"><p>7. Optimising HTML </p></div></blockquote>
<div class="ExternalClass8BF86FB9AB28443BAA29D8D11D697C75"><p>The end result of all of the above configurations and optimisations was to reduce the homepage load time down from 23 seconds to 3 seconds on a PC and a marked improvement on IPAD’s. </p>
<p>The main contributor to this decrease was the configuration of GZIP and Blob caching on eh Web Front ends. The rest of this blog article will focus on these to concepts, the other capabilities we will cover in the next Best Practice Article. </p>
<p><br /></p>
<h4><font style="font-weight:bold">Blob Caching</font></h4>
 <p>If you have any page performance issues and your site is graphic heavy then Blob Cache is the first place you need to go to. Once a page has loaded for the first time the improvements in page load speed thereafter are massive. </p>
<p>Unfortunately therein lies the problem, the page needs to load once and if it’s just too large then you may have already lost a prospective visitor. So Blob Caching is key but you still need to employ other methods of reducing the total page download size where possible. </p>
<p>BLOB caching is common and well understood however it can get overseen as an option on Intranet facing sites. Blob caching is configured through the web applications web.config however it’s not set to true by default. </p>
<p>&lt;BlobCache location=&quot;C:\BlobCache\14&quot; path=&quot;\.(gif|jpg|jpeg|jpe|jfif|bmp|dib|tif|tiff|ico|png|wdp|hdp|css|js|asf|avi|flv|m4v|mov|mp3|mp4|mpeg|</p>
<p>mpg|rm|rmvb|wma|wmv|woff|eot|ttf|svg)$&quot; maxSize=&quot;10&quot; enabled=&quot;true&quot; max-age=&quot;604800&quot;/&gt; </p>
<p>Once Blob Cache had been configured over 240Mb of images were cached across the site. Below is a screen shot of the cache directory properties. </p>
<p>Blob Cache Directory Properties: </p>
<p><img src="/Blog/PublishingImages/Blob%20Cache%20Directory%20Properties.png" alt="Blob Cache Directory Properties.png" style="margin:5px;width:600px;height:324px" /><br /><span style="font-weight:bold;font-size:8pt"><br /></span></p>
<p><span style="font-weight:bold;font-size:8pt">Image Tips</span><br /></p>
 </div>
<blockquote style="margin:0px 0px 0px 40px;border:none;padding:0px"><div class="ExternalClass8BF86FB9AB28443BAA29D8D11D697C75"><p>1. If the images rarely change consider placing them in the _layouts directory and map the background path to that directory. Any file that sits in the _Layouts directory as opposed to SQL will load from memory and on first download will be quicker. </p></div>
<div class="ExternalClass8BF86FB9AB28443BAA29D8D11D697C75"><p>2. Make sure you’re not using an image bigger than the max screen resolution or the pixel space for it on the web page. This can greatly reduce the file size. Use exact measurements where possible and don’t rely on name:value pairs width:% and height:% to size the images. </p>
<p><br /></p></div></blockquote>
<div class="ExternalClass8BF86FB9AB28443BAA29D8D11D697C75"><h4><font style="font-weight:bold">GZIP</font></h4>
 <p>Virtually all the latest browser versions support compression of HMTL, CSS and JavaScript. IIS 7.0 has the ability to use the GZIP compression standard that most browsers can unzip at Download. These 2 standard capabilities provides a way to send big chunks of the site over a network zipped up and can result in large efficiencies in download time. </p>
<p>GZIP will compress both Static and Dynamic Content. Dynamic such as Server Side content such as ASPX pages, some scripts and ISAPI extensions. Static for everything else such as messages, text, html, JavaScript and CSS. </p>
<p>However GZIP is only good for large resources so setting a threshold is a good idea. Anything compressed around 150 to 1000 bytes may make the files larger when zipped. </p>
<p>Zipping up Images even though possible with GZIP is not overly reliable and with the ability to Blob Cache not really something you would want to do. Most Image formats use compression already. </p>
<p>There are some useful tools for removing image header content if you really are watching byte by byte sizes. PNGCrush is a good example. </p>
<p><br /></p>
<h4><font style="font-weight:bold">Compression Tips</font></h4>
 <p>Just zipping up the content without it being rationalised can increase the zipped files size. Some tips on how to format your web page content to get the size as small as possible are outlined below. </p></div>
<blockquote style="margin:0px 0px 0px 40px;border:none;padding:0px"><div class="ExternalClass8BF86FB9AB28443BAA29D8D11D697C75"><p>1. Specify CSS key-value pairs in the same order where possible, i.e. alphabetize them.</p></div>
<div class="ExternalClass8BF86FB9AB28443BAA29D8D11D697C75"><p>2. Use consistent casing, i.e. use lowercase wherever possible. </p></div></blockquote>
<div class="ExternalClass8BF86FB9AB28443BAA29D8D11D697C75">  <p>Alphabetized CSS:</p>
<p><img src="/Blog/PublishingImages/Alphabetized%20CSS.jpg" alt="Alphabetized CSS.jpg" style="margin:5px;width:600px;height:171px" /><br /></p></div>
<blockquote style="margin:0px 0px 0px 40px;border:none;padding:0px"><div class="ExternalClass8BF86FB9AB28443BAA29D8D11D697C75"><p><span style="font-size:8pt">3. Specify HTML attributes in the same order, i.e. alphabetize them. Put HREF first for links (since it is most common), then alphabetize the rest. For example, on Google's search results page, when HTML attributes were alphabetized, a 1.5% reduction in the size of the gzipped output resulted. More information on </span><a href="https://developers.google.com/" target="_blank" style="font-size:8pt">Google’s insights can be found at their developers site</a><span style="font-size:8pt">.</span></p>
<p><span style="font-size:8pt"><br /></span></p></div></blockquote>
<div class="ExternalClass8BF86FB9AB28443BAA29D8D11D697C75"> <h4><font style="font-weight:bold">How to Configure GZIP on IIS 7.0 the Techy Bit.</font></h4>
 <p>Configuring GZIP is surprisingly simple. All it requires is the addition of a new section to the Web.Config of the Web Application. Below is a simple GZIP entry that can replace the entire &lt;staticContent&gt;&lt;/staticContent&gt; section in the Web.Config.</p>
 <div id="codeSnippetWrapper" style="border:1px solid silver;text-align:left;padding:4px;line-height:12pt;background-color:rgb(244, 244, 244);margin:20px 0px 10px;width:97.5%;font-family:'courier new', courier, monospace;direction:ltr;max-height:200px;font-size:8pt;overflow:auto;cursor:text"> <div id="codeSnippet" style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:rgb(244, 244, 244);width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible"><pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">&lt;staticContent&gt;</pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">    &lt;remove fileExtension=<span style="color:rgb(0, 96, 128)">&quot;.svg&quot;</span> /&gt;</pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">              &lt;mimeMap fileExtension=<span style="color:rgb(0, 96, 128)">&quot;.svg&quot;</span> mimeType=<span style="color:rgb(0, 96, 128)">&quot;image/svg+xml&quot;</span> /&gt;</pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">              &lt;mimeMap fileExtension=<span style="color:rgb(0, 96, 128)">&quot;.atomsvc&quot;</span> mimeType=<span style="color:rgb(0, 96, 128)">&quot;application/atomsvc+xml&quot;</span> /&gt;</pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">    &lt;remove fileExtension=<span style="color:rgb(0, 96, 128)">&quot;.js&quot;</span> /&gt;  </pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">        &lt;mimeMap fileExtension=<span style="color:rgb(0, 96, 128)">&quot;.js&quot;</span> mimeType=<span style="color:rgb(0, 96, 128)">&quot;application/x-javascript&quot;</span> /&gt;</pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">    &lt;/staticContent&gt;</pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible"> </pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">&lt;httpCompression directory=<span style="color:rgb(0, 96, 128)">&quot;C:\inetpub\temp\IIS Temporary Compressed Files\portal&quot;</span> doStaticCompression=<span style="color:rgb(0, 96, 128)">&quot;true&quot;</span> </pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">doDynamicCompression=<span style="color:rgb(0, 96, 128)">&quot;true&quot;</span> minFileSizeForComp=<span style="color:rgb(0, 96, 128)">&quot;1000&quot;</span> noCompressionForRange=<span style="color:rgb(0, 96, 128)">&quot;true&quot;</span> sendCacheHeaders=<span style="color:rgb(0, 96, 128)">&quot;true&quot;</span>&gt;</pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">   &lt;scheme name=<span style="color:rgb(0, 96, 128)">&quot;gzip&quot;</span> dll=<span style="color:rgb(0, 96, 128)">&quot;c:\windows\system32\inetsrv\gzip.dll&quot;</span> dynamicCompressionLevel=<span style="color:rgb(0, 96, 128)">&quot;9&quot;</span> </pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">staticCompressionLevel=<span style="color:rgb(0, 96, 128)">&quot;9&quot;</span> /&gt;</pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">       &lt;staticTypes&gt;</pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">        &lt;add mimeType=<span style="color:rgb(0, 96, 128)">&quot;text/*&quot;</span> enabled=<span style="color:rgb(0, 96, 128)">&quot;true&quot;</span> /&gt;</pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">        &lt;add mimeType=<span style="color:rgb(0, 96, 128)">&quot;message/*&quot;</span> enabled=<span style="color:rgb(0, 96, 128)">&quot;true&quot;</span> /&gt;</pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">        &lt;add mimeType=<span style="color:rgb(0, 96, 128)">&quot;text/html&quot;</span> enabled=<span style="color:rgb(0, 96, 128)">&quot;true&quot;</span> /&gt;</pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">        &lt;add mimeType=<span style="color:rgb(0, 96, 128)">&quot;text/css&quot;</span> enabled=<span style="color:rgb(0, 96, 128)">&quot;true&quot;</span> /&gt;</pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">        &lt;add mimeType=<span style="color:rgb(0, 96, 128)">&quot;image/jpeg&quot;</span> enabled=<span style="color:rgb(0, 96, 128)">&quot;true&quot;</span> /&gt;</pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">        &lt;add mimeType=<span style="color:rgb(0, 96, 128)">&quot;image/gif&quot;</span> enabled=<span style="color:rgb(0, 96, 128)">&quot;true&quot;</span> /&gt;</pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">        &lt;add mimeType=<span style="color:rgb(0, 96, 128)">&quot;text/xml&quot;</span> enabled=<span style="color:rgb(0, 96, 128)">&quot;true&quot;</span> /&gt;</pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">        &lt;add mimeType=<span style="color:rgb(0, 96, 128)">&quot;image/svg+xml&quot;</span> enabled=<span style="color:rgb(0, 96, 128)">&quot;true&quot;</span> /&gt;</pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">         &lt;add mimeType=<span style="color:rgb(0, 96, 128)">&quot;text/javascript&quot;</span> enabled=<span style="color:rgb(0, 96, 128)">&quot;true&quot;</span>/&gt;</pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">        &lt;add mimeType=<span style="color:rgb(0, 96, 128)">&quot;application/javascript; charset=utf-8&quot;</span> enabled=<span style="color:rgb(0, 96, 128)">&quot;true&quot;</span> /&gt;</pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">        &lt;add mimeType=<span style="color:rgb(0, 96, 128)">&quot;application/x-javascript&quot;</span> enabled=<span style="color:rgb(0, 96, 128)">&quot;true&quot;</span> /&gt;</pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">        &lt;add mimeType=<span style="color:rgb(0, 96, 128)">&quot;application/json&quot;</span> enabled=<span style="color:rgb(0, 96, 128)">&quot;true&quot;</span> /&gt;</pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">        &lt;add mimeType=<span style="color:rgb(0, 96, 128)">&quot;application/atom+xml&quot;</span> enabled=<span style="color:rgb(0, 96, 128)">&quot;true&quot;</span> /&gt;</pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">        &lt;add mimeType=<span style="color:rgb(0, 96, 128)">&quot;application/rss+xml&quot;</span> enabled=<span style="color:rgb(0, 96, 128)">&quot;true&quot;</span> /&gt;</pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">        &lt;add mimeType=<span style="color:rgb(0, 96, 128)">&quot;application/xaml+xml&quot;</span> enabled=<span style="color:rgb(0, 96, 128)">&quot;true&quot;</span> /&gt;</pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">        &lt;add mimeType=<span style="color:rgb(0, 96, 128)">&quot;application/xml&quot;</span> enabled=<span style="color:rgb(0, 96, 128)">&quot;true&quot;</span> /&gt;</pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">        &lt;add mimeType=<span style="color:rgb(0, 96, 128)">&quot;video/x-ms-wmv&quot;</span> enabled=<span style="color:rgb(0, 96, 128)">&quot;true&quot;</span> /&gt;</pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">        &lt;add mimeType=<span style="color:rgb(0, 96, 128)">&quot;*/*&quot;</span> enabled=<span style="color:rgb(0, 96, 128)">&quot;false&quot;</span> /&gt;</pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">       &lt;/staticTypes&gt;</pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">    &lt;dynamicTypes&gt;</pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">        &lt;add mimeType=<span style="color:rgb(0, 96, 128)">&quot;text/*&quot;</span> enabled=<span style="color:rgb(0, 96, 128)">&quot;true&quot;</span> /&gt;</pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">        &lt;add mimeType=<span style="color:rgb(0, 96, 128)">&quot;message/*&quot;</span> enabled=<span style="color:rgb(0, 96, 128)">&quot;true&quot;</span> /&gt;</pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">        &lt;add mimeType=<span style="color:rgb(0, 96, 128)">&quot;text/html&quot;</span> enabled=<span style="color:rgb(0, 96, 128)">&quot;true&quot;</span> /&gt;</pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">        &lt;add mimeType=<span style="color:rgb(0, 96, 128)">&quot;image/jpeg&quot;</span> enabled=<span style="color:rgb(0, 96, 128)">&quot;true&quot;</span> /&gt;</pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">        &lt;add mimeType=<span style="color:rgb(0, 96, 128)">&quot;image/gif&quot;</span> enabled=<span style="color:rgb(0, 96, 128)">&quot;true&quot;</span> /&gt;</pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">        &lt;add mimeType=<span style="color:rgb(0, 96, 128)">&quot;text/css&quot;</span> enabled=<span style="color:rgb(0, 96, 128)">&quot;true&quot;</span> /&gt;</pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">        &lt;add mimeType=<span style="color:rgb(0, 96, 128)">&quot;text/xml&quot;</span> enabled=<span style="color:rgb(0, 96, 128)">&quot;true&quot;</span> /&gt;</pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">        &lt;add mimeType=<span style="color:rgb(0, 96, 128)">&quot;application/json&quot;</span> enabled=<span style="color:rgb(0, 96, 128)">&quot;true&quot;</span> /&gt;</pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">        &lt;add mimeType=<span style="color:rgb(0, 96, 128)">&quot;text/javascript&quot;</span> enabled=<span style="color:rgb(0, 96, 128)">&quot;true&quot;</span>/&gt;</pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">        &lt;add mimeType=<span style="color:rgb(0, 96, 128)">&quot;application/javascript; charset=utf-8&quot;</span> enabled=<span style="color:rgb(0, 96, 128)">&quot;true&quot;</span> /&gt;</pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">        &lt;add mimeType=<span style="color:rgb(0, 96, 128)">&quot;application/x-javascript&quot;</span> enabled=<span style="color:rgb(0, 96, 128)">&quot;true&quot;</span> /&gt;</pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">        &lt;add mimeType=<span style="color:rgb(0, 96, 128)">&quot;video/x-ms-wmv&quot;</span> enabled=<span style="color:rgb(0, 96, 128)">&quot;true&quot;</span> /&gt;</pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">        &lt;add mimeType=<span style="color:rgb(0, 96, 128)">&quot;*/*&quot;</span> enabled=<span style="color:rgb(0, 96, 128)">&quot;false&quot;</span> /&gt;</pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">       &lt;/dynamicTypes&gt;</pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">&lt;/httpCompression&gt;</pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">&lt;urlCompression doStaticCompression=<span style="color:rgb(0, 96, 128)">&quot;true&quot;</span> doDynamicCompression=<span style="color:rgb(0, 96, 128)">&quot;true&quot;</span> /&gt;</pre></div></div>
<p>The compression scheme in IIS7 is enabled by default, but it maps only a single JavaScript mime type to be compressed, application/x-javascript. Adding the lines shown below tells IIS to give all your .js files that mime time, which in turn makes the compression work.</p>
<div id="codeSnippetWrapper" style="border:1px solid silver;text-align:left;padding:4px;line-height:12pt;background-color:rgb(244, 244, 244);margin:20px 0px 10px;width:97.5%;font-family:'courier new', courier, monospace;direction:ltr;max-height:200px;font-size:8pt;overflow:auto;cursor:text">
<div id="codeSnippet" style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:rgb(244, 244, 244);width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible"><pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">&lt;remove fileExtension=<span style="color:rgb(0, 96, 128)">&quot;.js&quot;</span> /&gt;  </pre>
<pre style="border-style:none;text-align:left;padding:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin:0em;width:100%;font-family:'courier new', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible">&lt;mimeMap fileExtension=<span style="color:rgb(0, 96, 128)">&quot;.js&quot;</span> mimeType=<span style="color:rgb(0, 96, 128)">&quot;application/x-javascript&quot;</span> /&gt;</pre></div></div>
<h4><font style="font-weight:bold">GZIP File Considerations.</font></h4>
</div>
<blockquote style="margin:0px 0px 0px 40px;border:none;padding:0px"><div class="ExternalClass8BF86FB9AB28443BAA29D8D11D697C75"><p>1. Make sure the <b>“directory=”</b> section points to a drive that has enough free space and will not impact the servers day to day running. The Directory will only show static content, dynamic content is zipped when the page is requested and is not stored on the server.
</p></div>
<div class="ExternalClass8BF86FB9AB28443BAA29D8D11D697C75"><p>2. Make sure the <b>dynamicCompressionLevel</b> and <b>staticCompressionLevel</b> attributes match your server environments capabilities. Ensure you test the load compression will have on the servers CPU. Lower compression levels produce slightly larger compressed files, but with lower overall impact on CPU and memory resources. Higher compression levels generally result in smaller compressed files, but with higher CPU and memory usage. The range is 1 through 9.
</p></div>
<div class="ExternalClass8BF86FB9AB28443BAA29D8D11D697C75"><p>3. If you’re concerned it may impact server performance you can add in a new section <b>dynamicCompressionDisableCpuUsage=”90”</b> where 90 is CPU % utilisation.
</p></div>
<div class="ExternalClass8BF86FB9AB28443BAA29D8D11D697C75"><p>4. Set the min file size for compression attribute, anything above 1000b should not cause a problem with compression sizes.
</p></div></blockquote>
<div class="ExternalClass8BF86FB9AB28443BAA29D8D11D697C75"><p>Once GZIP had been configured over 230Kb of static files were zipped across the site. Below is a screen shot of the GZIP directory properties on the Web Front End.
</p>
<p>GZIP Directory Properties:
</p>
<p><img src="/Blog/PublishingImages/GZIP%20Directory%20Properties.png" alt="GZIP Directory Properties.png" style="margin:5px;width:600px;height:320px" /><br /><span style="font-size:8pt;font-weight:bold">Testing Tools.</span><br /></p>
Fiddler is a great way of seeing how your site performs over distance and with or without Blob Caching and Compression turned on. It was used extensively when testing the site design post issues. Below are he before and after captures of the site.
<p>Site stats before compression:
</p>
<p><img src="/Blog/PublishingImages/Site%20stats%20before%20compression.png" alt="Site stats before compression.png" style="margin:5px;width:600px;height:864px" /><br /><span style="font-size:8pt;font-weight:bold">Statistics Break Down – No GZIP Configuration:</span><br /></p>
<p>Note that the total bytes sent is over 101000 and received is over 120000. IIS has compression turned on by default and these are the default compression stats before the web.config had been configured. The round trip from Australia where the site is located to US West coast is nearly 10 seconds.</p>
<p>Site stats after compression:
</p>
<p><img src="/Blog/PublishingImages/Site%20stats%20after%20compression.png" alt="Site stats after compression.png" style="margin:5px;width:600px;height:861px" /><br /><span style="font-size:8pt;font-weight:bold">Statistics Break Down – GZIP Configured:</span><br /></p>
<p>Note that the total bytes sent is around 60000 and received is only slightly more at 65000. The round trip from Australia to the US West coast is nearly half the time.
</p>
<p>This is a huge reduction in traffic sent across distances of large latencies and a great increase in page download performance.
</p>
<p>In conclusion great Blob Caching and Compression offer real increase in page performance and should be considered on your sites as a matter of course.
</p>
<p><br /></p>
<h4><font style="font-weight:bold">Conclusion</font></h4>
<p>In the rare cases that Blob Caching is not an option and compression alone is not reducing the page size down to an acceptable level, there are other options that can be used to tweak that last byte of size down on your sites. 
</p>
<p>In the next article we will look at some of these more fiddly options in more detail.
</p>
<p><br /></p>
<h4><font style="font-weight:bold">Further Reading</font></h4>
<p>For more information on Page Performance best practices, Blob Caching, GZIP and IIS 7.0 Microsoft and Google have a number of great articles, see below for the best sites.</p>
<p><a href="http://www.iis.net/configreference/system.webserver/httpcompression" target="_blank">HTTP Compression &lt;httpCompression&gt;</a></p>
<p><a href="http://www.iis.net/configreference/system.webserver/urlcompression" target="_blank">URL Compression &lt;urlCompression&gt;</a></p>
<p><a href="http://www.iis.net/configreference/system.webserver/httpcompression/scheme" target="_blank">Scheme &lt;scheme&gt;</a></p>
<p><a href="http://www.iis.net/learn/get-started/planning-your-iis-architecture/introduction-to-applicationhostconfig" target="_blank">Introduction to ApplicationHost.config</a></p>
<p><a href="https://developers.google.com/speed/docs/best-practices/rules_intro" target="_blank">Web Performance Best Practices</a></p></div></div>
<div><b>Category:</b> <a onclick="OpenPopUpPage('http://www.synergyonline.com/Blog/_layouts/listform.aspx?PageType=4&ListId={BEBD6B7C-8EDF-4976-8627-9238AFF8A903}&ID=4&RootFolder=*', RefreshPage); return false;" href="http://www.synergyonline.com/Blog/_layouts/listform.aspx?PageType=4&ListId={BEBD6B7C-8EDF-4976-8627-9238AFF8A903}&ID=4&RootFolder=*">Development</a>; <a onclick="OpenPopUpPage('http://www.synergyonline.com/Blog/_layouts/listform.aspx?PageType=4&ListId={BEBD6B7C-8EDF-4976-8627-9238AFF8A903}&ID=13&RootFolder=*', RefreshPage); return false;" href="http://www.synergyonline.com/Blog/_layouts/listform.aspx?PageType=4&ListId={BEBD6B7C-8EDF-4976-8627-9238AFF8A903}&ID=13&RootFolder=*">SharePoint</a></div>
<div><b>Published:</b> 2/12/2013 3:22 PM</div>
<div><b>Author:</b> <a href="http://www.synergyonline.com/company/Profiles/Pages/TimDonnelly.aspx">Tim Donnelly</a></div>
<div><b>PageKeywords:</b> SharePoint development, sharepoint expert</div>
<div><b>PageTitle:</b> SharePoint Best Practice Series – Page Performance VS Page Design</div>
<div><b>PageDescription:</b> Balancing visual design against page size is as important today as it has ever been and in reality it’s as difficult as it ever was. With the exponential increase in the use of mobile computing, alongside a drive towards media rich websites it looks like </div>
]]></description>
      <author>System Account</author>
      <category>Development; SharePoint</category>
      <pubDate>Tue, 12 Feb 2013 19:50:17 GMT</pubDate>
      <guid isPermaLink="true">http://www.synergyonline.com/Blog/Lists/Posts/ViewPost.aspx?ID=254</guid>
    </item>
    <item>
      <title>Understanding SharePoint 2013 Search Component Architecture</title>
      <link>http://www.synergyonline.com/Blog/Lists/Posts/ViewPost.aspx?ID=253</link>
      <description><![CDATA[<div><b>Body:</b> <div class="ExternalClassF2276B8ABD6E495C9407C7D718C51C6A"><p>This article gives an overview of the search components that make up the service application in SharePoint 2013 together with considerations in planning your topology to assist you in your SharePoint implementation. Within the new SharePoint 2013 search, there are six main components to the service application. These are as follows: </p>
<ul> <li>Crawl component </li>
<li>Content processing component </li>
<li>Analytics processing component </li>
<li>Query processing component </li>
<li>Index component </li>
<li>Search administration component</li></ul>
 <p>Two of these are essentially new, the analytics processing and content processing components. It is worth noting at this point that there has been an essential change in administering these components. Previously you could change the topology of search via a web based method, however in 2013 this is now <b>only</b> managed through PowerShell. Use this link to see the commands: <a href="http://technet.microsoft.com/en-us/library/jj862354.aspx" target="_blank">Manage search components in SharePoint Server 2013</a>.</p>
<p><br /></p>
 <h4><font style="font-weight:bold">The Components of Search</font></h4>
 <p><a href="http://technet.microsoft.com/en-us/library/cc263199.aspx" target="_blank" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;text-decoration:none">Technical diagrams for SharePoint 2013</a><img src="/Blog/PublishingImages/img1.png" alt="img1.png" style="margin-top:5px;margin-right:5px;margin-bottom:5px;margin-left:5px;width:600px;height:310px" /> </p>
 <p><i>Crawl component</i>: This component uses the content sources as its guide as to which content it needs to crawl. The crawler will then crawl the web front end servers or itself if it is a dedicated front end web for crawling. It will build the index of items and look elsewhere if it is a file share, for example. After retrieving the content, the crawl component passes crawled items to the content processing component. The crawl database stores the crawled item history, like the last time the item was crawled and the last crawl ID.</p>
 <p><i>Content processing component</i>: This is a new feature in Search 2013. It processes crawled items and sends them to the crawl component. It performs document parsing, property mapping, linguistics processing such as language detection and entity extraction. The items that are crawled are turned into what’s called ‘Artefacts’ and included in the search Index. It then writes URL information to the Links database for usage by the analytics component. The analytics component then writes information about the relevance of these links back to the index through this component.  </p>
<p><i></i> </p>
<p><i>Analytics processing component</i>: This is the other new feature in Search 2013, it analyses the crawled items (metadata, links, anchor texts) and stores the information in the link database. In addition it analyses a user’s interaction with Search, for example, how many times an item is viewed. It terms this interaction as Usage Analytics and this information is stored within the analytics reporting database. </p>
<p><i></i> </p>
<p><i>Index component</i>: This component performs two roles. Firstly, it writes items received from content component to the index file. Secondly, it receives requests from the query processing component and returns results. The search index can be divided into partitions with the index being the combination of all partitions. The partitions can be split amongst different index servers giving you high availability and fault tolerance.  </p>
<p><i>Query processing component</i>: This component is responsible for analysing the queries. This helps to optimize precision, recall and relevance. The queries are then handed to the index component, which returns the results for that query back to the query processing component. It in turn processes that result set, then returning it to the front end. </p>
<p>It analyses the query to determine which index partition to send the query to and which rules to apply. The search system processes a query by doing the following: </p>
<ol> <li>Applying any Web Part transforms. </li>
<li>Applying any query rules. A query rule action can either transform the original query or it can trigger a parallel query that is transformed for a result block. </li>
<li>Applying any query transforms on result sources. </li>
<li>Parsing the query and creating a query syntax tree for internal use. </li>
<li>Processing the query linguistically by performing word breaking, stemming, spelling correction, and synonym expansion. </li>
<li>Appending user-access information to the query. This specifies the user who is performing the query and the permissions that the user has. </li>
<li>Sending the query to the search index or another search provider. </li>
<li>Collecting and merging search results from all search providers and sending them back to the query processing component. </li>
<li>Evaluating the search results against result types. If a result matches a particular result type, the result is displayed by using the display template that you have specified for the result type. </li>
<li>Applying additional security trimming, if appropriate.</li></ol>
 <p>Search administration component: This component is responsible for search provisioning and topology changes. It is linked to the search admin database which acts like a configuration database - storing crawl/query rules, the topology, and the crawled/managed properties</p>
 <p>TechNet July 16, 2012 - <a href="http://technet.microsoft.com/en-us/library/jj219620.aspx" target="_blank">Plan to transform queries and order results in SharePoint 2013</a>.</p>
 <p> </p>
 <h4><font style="font-weight:bold">Monitoring These Components:</font></h4>
 <p><b></b> </p>
<p>Within central administration there are some new reports which will help in determining the health of two of the components in your search topology. Situated under diagnostics is ‘Query Health reports’ and ‘Crawl Health Reports’. They will produce for you graphs to measure the performance of the query and crawl components and the best place to start in troubleshooting or assessing the performance of search. The crawl logs are still valuable and now are the place to remove items from the index if particular items need to be removed quickly. </p>
<p>There are two services which run search on the server, listed below with their descriptions. </p>
<p><img src="/Blog/PublishingImages/img2.png" alt="img2.png" style="margin-top:5px;margin-right:5px;margin-bottom:5px;margin-left:5px;width:600px;height:32px" /><br /></p>
<p>SharePoint Search Host Controller maps to SPSearchHostController windows service. SharePoint Server Search 15 maps to windows service OSearch15. </p>
<p>When running a crawl you will see this activity from the crawler in task manager on the server and the associated service: </p>
<p><img src="/Blog/PublishingImages/img3.png" alt="img3.png" style="margin-top:5px;margin-right:5px;margin-bottom:5px;margin-left:5px;width:600px;height:43px" /><br />Further activity can be seen in the task manager under this category:<br /></p>
<p><img src="/Blog/PublishingImages/img4.png" alt="img4.png" style="margin-top:5px;margin-right:5px;margin-bottom:5px;margin-left:5px;width:600px;height:21px" />The noderunner.exe shown under the process name column above is the process which search runs under and you will notice this uses large amounts memory and sometime no amount of CPU, this is normal. You can also see the PID number in the task manager which is the ID associated to this process. If you right click on this process in the Task Manager and select ‘Go to details’, as shown below:<br /></p>
<p><img src="/Blog/PublishingImages/img5.png" alt="img5.png" style="margin-top:5px;margin-right:5px;margin-bottom:5px;margin-left:5px;width:600px;height:188px" /><br /></p>
<p>You’ll be able to see all the noderunner.exe process that are running on your server. </p>
<p><img src="/Blog/PublishingImages/img6.png" alt="img6.png" style="margin-top:5px;margin-right:5px;margin-bottom:5px;margin-left:5px;width:600px;height:94px" /><br /></p>
<p>The diagnostic logs are the definitive place to investigate search issues and you should consider turning the logging level to ‘verbose’ to ensure you capture all the detail in the logs. You need to look for Search under the ‘area’ column. The components are listed as well, either in the category column or in the message field column, providing easier troubleshooting in the event of a problem.  </p>
<p>  </p>
<h4><font style="font-weight:bold">Topology Changes From 2010:</font></h4>
 <p>When designing your topology, it is important to understand what has changed since SharePoint 2010 Search and the performance of the components. Due to the technical changes some of them need to be ideally separated onto separate servers when scaling up or if you have a large search user base. </p>
<p>In a small to medium farm of 2 to 4 SharePoint servers in SharePoint 2010, the recommendation was to place the query component on the web front end servers. In a medium sized search orientated farm it was recommended to have three physical tiers consisting of separate web front end servers, query servers and crawl servers.  </p>
<p>In SharePoint 2013, even with a small farm of two SharePoint servers it is recommended to place the query services on a separate server from the web front end server. The query and crawl services can run together on a separate server. This is applicable for up to four SharePoint servers but once you increase the number of servers, it is recommended to split out the query and crawl components onto their own servers and leave the remaining service applications together, as illustrated in the diagram below. How you structure your architecture depends on what you intend to use it for, be it enterprise or for the internet. There are a number of considerations to take into account such as high availability, fault tolerance, the amount of content and the number of queries you will receive.  </p>
<p>The query processing component takes most of the load off the SQL server including disk space load and CPU, it therefore requires more local resources than in SharePoint 2010. The query processing component ideally, therefore, should be on its own dedicated server. The index component is equally resource hungry, because it performs two roles in communicating to the query processing component and the content processing component. The index is the main store of information from the crawled content and can be split into multiple partitions to scale up and provide fault tolerance. Another thing to consider, if you are crawling a large amount of data, it is advisable to have a dedicated web server for crawling. The diagram below is an extract from a TechNet article on topologies, which shows the optimum environment for search orientated environment.  </p>
<p><br /></p>
<p><a href="http://technet.microsoft.com/en-us/library/cc263199.aspx" target="_blank" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;text-decoration:underline">Technical Diagrams for SharePoint 2013</a><br /></p>
<p><img src="/Blog/PublishingImages/img7.png" alt="img7.png" style="margin-top:5px;margin-right:5px;margin-bottom:5px;margin-left:5px" /> </p>
<p>  </p>
<h4><font style="font-weight:bold">Summary:</font></h4>
 <p>In summary, Search in SharePoint 2013 has been improved and new components added to increase the performance and relevance to the user. One of the new components monitors users’ interaction which improves the relevance to the user. The query processing component now offloads much of the performance from SQL and therefore needs further consideration. To maximise the experience for the user then all the factors mention above need to be taken into account. </p>
<h4><font style="font-weight:bold">Useful articles:</font></h4>
 <p><i><a href="http://technet.microsoft.com/en-us/library/cc263400.aspx" target="_blank">Plan Search in SharePoint 2013</a></i> </p>
<p><i><a href="http://technet.microsoft.com/en-us/library/ee792877.aspx" target="_blank">Administer search in SharePoint Server 2013</a></i></p></div></div>
<div><b>Category:</b> <a onclick="OpenPopUpPage('http://www.synergyonline.com/Blog/_layouts/listform.aspx?PageType=4&ListId={BEBD6B7C-8EDF-4976-8627-9238AFF8A903}&ID=4&RootFolder=*', RefreshPage); return false;" href="http://www.synergyonline.com/Blog/_layouts/listform.aspx?PageType=4&ListId={BEBD6B7C-8EDF-4976-8627-9238AFF8A903}&ID=4&RootFolder=*">Development</a>; <a onclick="OpenPopUpPage('http://www.synergyonline.com/Blog/_layouts/listform.aspx?PageType=4&ListId={BEBD6B7C-8EDF-4976-8627-9238AFF8A903}&ID=13&RootFolder=*', RefreshPage); return false;" href="http://www.synergyonline.com/Blog/_layouts/listform.aspx?PageType=4&ListId={BEBD6B7C-8EDF-4976-8627-9238AFF8A903}&ID=13&RootFolder=*">SharePoint</a></div>
<div><b>Published:</b> 2/6/2013 3:58 PM</div>
<div><b>Author:</b> <a href="http://www.synergyonline.com/company/Profiles/Pages/RobertNeilson.aspx">Robert Neilson</a></div>
<div><b>PageKeywords:</b> SharePoint 2013, SharePoint Expert</div>
<div><b>PageTitle:</b> Understanding SharePoint 2013 Search Component Architecture</div>
<div><b>PageDescription:</b> This article gives an overview of the search components that make up the service application in SharePoint 2013 together with considerations in planning your topology to assist you in your SharePoint implementation. </div>
]]></description>
      <author>System Account</author>
      <category>Development; SharePoint</category>
      <pubDate>Wed, 06 Feb 2013 19:34:07 GMT</pubDate>
      <guid isPermaLink="true">http://www.synergyonline.com/Blog/Lists/Posts/ViewPost.aspx?ID=253</guid>
    </item>
    <item>
      <title>Restoring Sites and Site Collections with PowerShell</title>
      <link>http://www.synergyonline.com/Blog/Lists/Posts/ViewPost.aspx?ID=252</link>
      <description><![CDATA[<div><b>Body:</b> <div class="ExternalClass419C17447BFD485383264E015D766F81"><p>Check out these two different PowerShell commands to quickly restore your Site\SiteCollection backups. </p>
<p>Very handy if you need to quickly restore from within one Site Collection or from one Web App to another. I used the second restore cmdlet for a client for security purposes. We needed to backup and restore a Sit Collection from one Web App to another for security purposes. I selected to backup the content as well which made the restore to the new web app that much easier.  </p>
<h3><font style="font-weight:bold">Restore Site to a Site Collection</font></h3>
 <p>After committing a Granular backup of a Site using Central Administration to the local D:\ I opened Powershell and ran: </p>
<p><b>import-spweb -identity </b><b>http://portal.lnd.synergy.com</b><b> -path D:\teama.cmp -force</b> </p>
<p>-force forces the export of the Site(web) to overwrite the Homesite of the SiteCollection, effectively replacing it. </p>
<p>Cool! </p>
<p><br /></p>
<p><em>Note<strong>:</strong> A site collection must already exist and <b>you must </b>type the full path, not navigate to the path and then run the command.</em> </p>
<p><em><br /></em></p>
<p>After committing a Granular backup of a Site Collection using Central Administration to the local D:\ I opened Powershell and ran: </p>
<p><b>Restore-spsite -identity </b><b>http://portal.lnd.synergy.com</b><b> -path D:\teama.cmp -force</b> </p>
<p>-force forces the export of the Site(web) to overwrite the Homesite of the SiteCollection, effectively replacing it. </p>
<p>Cool! </p>
<p><br /></p>
<p><em>Note: A site collection must already exist and <b>you must </b>type the full path, not navigate to the path and then run the command.</em></p></div></div>
<div><b>Category:</b> <a onclick="OpenPopUpPage('http://www.synergyonline.com/Blog/_layouts/listform.aspx?PageType=4&ListId={BEBD6B7C-8EDF-4976-8627-9238AFF8A903}&ID=13&RootFolder=*', RefreshPage); return false;" href="http://www.synergyonline.com/Blog/_layouts/listform.aspx?PageType=4&ListId={BEBD6B7C-8EDF-4976-8627-9238AFF8A903}&ID=13&RootFolder=*">SharePoint</a></div>
<div><b>Published:</b> 1/23/2013 2:25 PM</div>
<div><b>Author:</b> <a href="http://www.synergyonline.com/company/Profiles/Pages/GregLarkins.aspx">Greg Larkins</a></div>
<div><b>PageKeywords:</b> SharePoint development, sharepoint expert</div>
<div><b>PageTitle:</b> Restoring Sites and Site Collections with PowerShell</div>
<div><b>PageDescription:</b> Check out these two different PowerShell commands to quickly restore your Site\SiteCollection backups</div>
]]></description>
      <author>System Account</author>
      <category>SharePoint</category>
      <pubDate>Wed, 23 Jan 2013 19:24:07 GMT</pubDate>
      <guid isPermaLink="true">http://www.synergyonline.com/Blog/Lists/Posts/ViewPost.aspx?ID=252</guid>
    </item>
    <item>
      <title>How to use Lync 2013 Client on OCS 2007 R2 Server</title>
      <link>http://www.synergyonline.com/Blog/Lists/Posts/ViewPost.aspx?ID=251</link>
      <description><![CDATA[<div><b>Body:</b> <div class="ExternalClassEA7B2C89D4814CD2855616775CFC5004"><p>We know there is a work around for Lync 2010 Client to work in OCS 2007 R2 Server, but unfortunately the same fix can’t be applied to Lync 2013 Client. The reason is quite simple, the path to install the fix for Lync 2013 has been changed in registry. </p>
<p>To apply this work around you can simply use <b>regedit</b> and add following entry: </p>
<p>· Key: <b>HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Office\15.0\lync</b> </p>
<p><strong>· </strong>Name:  <strong>DisableServerCheck</strong> </p>
<p><strong>· </strong>Type:<strong> DWORD</strong> </p>
<p>· Value: <strong>1 (00000001)</strong> </p>
<p>Or just use the attached <b><a href="/Blog/Documents/Lync2013ClientHack.reg.rename"><img class="ms-asset-icon ms-rtePosition-4" alt="Lync2013ClientHack.reg.rename" src="/Blog/_layouts/images/icgen.gif" />Lync2013ClientHack.reg.rename</a> </b>file. To apply the registry change, download the file and remove the “.rename” from the end of the filename. Then right-click on it and select Merge to merge it into the local registry.</p></div></div>
<div><b>Category:</b> <a onclick="OpenPopUpPage('http://www.synergyonline.com/Blog/_layouts/listform.aspx?PageType=4&ListId={BEBD6B7C-8EDF-4976-8627-9238AFF8A903}&ID=13&RootFolder=*', RefreshPage); return false;" href="http://www.synergyonline.com/Blog/_layouts/listform.aspx?PageType=4&ListId={BEBD6B7C-8EDF-4976-8627-9238AFF8A903}&ID=13&RootFolder=*">SharePoint</a></div>
<div><b>Published:</b> 1/15/2013 7:47 PM</div>
<div><b>Author:</b> <a href="http://www.synergyonline.com/company/Profiles/Pages/Albert-Ajiwibisono.aspx">Albert Ajiwibisono</a></div>
<div><b>PageKeywords:</b> Lync 2013 , SharePoint Consultant, SharePoint Developer</div>
<div><b>PageTitle:</b> How to use Lync 2013 Client on OCS 2007 R2 Server</div>
<div><b>PageDescription:</b> Synergy SharePoint Consultant on How to use Lync 2013 Client on OCS 2007 R2 Server</div>
]]></description>
      <author>System Account</author>
      <category>SharePoint</category>
      <pubDate>Thu, 10 Jan 2013 19:08:34 GMT</pubDate>
      <guid isPermaLink="true">http://www.synergyonline.com/Blog/Lists/Posts/ViewPost.aspx?ID=251</guid>
    </item>
    <item>
      <title>The “Oops” Method, or how I became the office Office Expert</title>
      <link>http://www.synergyonline.com/Blog/Lists/Posts/ViewPost.aspx?ID=250</link>
      <description><![CDATA[<div><b>Body:</b> <div class="ExternalClass2B6C01B787B74D2FB5550BCC84DEF039"><p>In our office, I’m the Office Expert – mainly for Word, but also for Outlook, PowerPoint and Excel. I’ve been using Microsoft Office since Office 95 and have learned the product in one very important way. I call it the “Oops” method. </p>
<p>What’s the Oops method? Most people would take classes to learn from experts on the subject. I rarely had the opportunity to take the time to attend, or the money as some of the classes are rather costly. Instead, during my free time, I would experiment and learn by my mistakes.  </p>
<p>In the case of Word, I would go through a document and try to make corrections, fix formatting, etc. I would do something and everything would go ‘kaflooey’ (a technical term I use when working with software, as I try not to swear in the office). Because I learned to save often, I was able to backtrack through my mistake and get back to the original issue. (Undo is the learner’s best friend in this method.) After a few tries (OK, sometimes more than a few), I would hit on the right solution. Thus the “Oops” method was born. Basically, it was “Oops, don’t do that again, it doesn’t work.” </p>
<p>I highly recommend the Oops method to learn a new program, if you have the time. I found I learned more through the mistakes I made, and the correction of them, than I did in any class or reading any book. I know not everyone learns this way, but it is helpful none the less. </p>
<p>What have I learned specifically through the Oops method? Here are some of the main items in Word (where I’ve learned the most): </p></div>
<blockquote class="webkit-indent-blockquote" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:40px;border-top-style:none;border-right-style:none;border-bottom-style:none;border-left-style:none;border-width:initial;border-color:initial;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px"><div class="ExternalClass2B6C01B787B74D2FB5550BCC84DEF039"><p><ul><li>Wh​​​en the page number in your footer isn’t what you think it should be, check the following:<br /></li>
<ul><li>Is Di​fferent First Page checked? This will affect the numbering even in the middle of a document if you have multiple sections (section breaks).</li>
<li>Is th​​​​​e document a copy of a copy of a copy? The page number field may be corrupt. Just delete and reinsert, and it will usually work.</li>
<li>​​Do you have multiple sections in your document? Check that the footer numbering is set to “Continue from previous section”. (Right click on the page number, select Format Page Number – the button for the option is towards the bottom of the pop up box.)</li></ul>
<li>The Table of Contents (TOC) isn’t working right:<br /></li>
<ul><li>Ar​​e your headers set in the proper style? (Heading 1, Heading 2, Heading 3 will be level 1, 2 and 3 respectively in the TOC)</li>
<li>Do you find a paragraph in with the title? Make sure you haven’t accidently set the text as a Heading style, but as Normal (or a non-TOC style).</li>
<li>The page numbers are not what they should be after you’ve made changes to the document. Just click in the TOC, and press F9. When the box comes up, select either “Update page numbers only”, if you’ve only changed locations or “Update entire table” if you’ve moved things around.</li></ul>
<li>The top and bottom margins seem to have disappeared!<br /></li>
<ul><li>You ma​​y have accidently double clicked in the space that takes the header/footer space away. Simply put your mouse at the top (or bottom of the page) and double click again when you see the double arrow; the margins will come back.</li></ul></ul></p></div></blockquote>
<div class="ExternalClass2B6C01B787B74D2FB5550BCC84DEF039"><p><img src="/Blog/PublishingImages/Office1.png" alt="Office1.png" style="margin-top:5px;margin-right:5px;margin-bottom:5px;margin-left:5px;width:400px;height:162px" /><br /></p>
<p>Now, a few Outlook items: </p>
<p><ul><li>That little arrow at the bottom of your email will help you find other emails (and attachments and appointments) from the person who sent you the email. If you’re like me, you clicked on that arrow by mistake and suddenly found you could see all the emails from the sender, right down to the folder you saved it in. (So THAT’s where that email is!)<br /></li>
<ul><li>This o​​pens up the People Pane, something new in Outlook 2010. Part of the Outlook Social Connector, it’s visible at the bottom of any email you send or receive. It then allows you to put a face to the name, check for other emails the person has sent you, and even look for attachments they’ve sent you.</li></ul></ul></p></div>
<div class="ExternalClass2B6C01B787B74D2FB5550BCC84DEF039"><p><img src="/Blog/PublishingImages/Outlook2.png" alt="Outlook2.png" style="margin-top:5px;margin-right:5px;margin-bottom:5px;margin-left:5px" /><br /></p></div>
<blockquote class="webkit-indent-blockquote" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:40px;border-top-style:none;border-right-style:none;border-bottom-style:none;border-left-style:none;border-width:initial;border-color:initial;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px"><div class="ExternalClass2B6C01B787B74D2FB5550BCC84DEF039"><p><ul><ul><li>When you ex​​pand it, it looks like this:</li></ul></ul></p></div></blockquote>
<div class="ExternalClass2B6C01B787B74D2FB5550BCC84DEF039"><p><img src="/Blog/PublishingImages/Outlook3.png" alt="Outlook3.png" style="margin-top:5px;margin-right:5px;margin-bottom:5px;margin-left:5px" /><br /></p>
<p><ul><li>You can clean up your inbox with one click!<br /></li>
<ul><li>O​​K, it won’t clean everything up, but it will clean up a conversation string. The Clean Up Folder button on the Home tab in Outlook. It deletes the redundant messages in a conversation string in a select folder. Just remember, it won’t clean up something if it was replied to out of order.</li></ul></ul></p></div>
<div class="ExternalClass2B6C01B787B74D2FB5550BCC84DEF039"><p><img src="/Blog/PublishingImages/Outlook4.png" alt="Outlook4.png" style="margin-top:5px;margin-right:5px;margin-bottom:5px;margin-left:5px" /><br /></p>
<p><ul><li>The Reply &amp; Delete Quick Step will become your best friend.<br /></li>
<ul><li>C​​​lick on this and it replies to the email and deletes the message from your inbox. In a state of panic, I thought, but what if I need something in there. Not to worry – it’s still in the Sent items folder! Why will it become your best friend? It cleans up your Inbox by getting rid of emails you don’t really need to keep in your Inbox.</li></ul></ul></p></div>
<div class="ExternalClass2B6C01B787B74D2FB5550BCC84DEF039"><p><img src="/Blog/PublishingImages/Outlook5.png" alt="Outlook5.png" style="margin-top:5px;margin-right:5px;margin-bottom:5px;margin-left:5px" /><br /></p>
<p>When you become totally frustrated with the Oops method, there’s always the Help button in any Office product (F1) or a <a href="http://office.microsoft.com/en-us/help/training-FX101782702.aspx" target="_blank">search on Microsoft’s site in the product area</a> or in the <a href="http://answers.microsoft.com/en-us" target="_blank">Microsoft Community – Microsoft Answers</a>. You’ll need a Live ID to log into either one, but it’s worth it.  </p></div></div>
<div><b>Category:</b> <a onclick="OpenPopUpPage('http://www.synergyonline.com/Blog/_layouts/listform.aspx?PageType=4&ListId={BEBD6B7C-8EDF-4976-8627-9238AFF8A903}&ID=10&RootFolder=*', RefreshPage); return false;" href="http://www.synergyonline.com/Blog/_layouts/listform.aspx?PageType=4&ListId={BEBD6B7C-8EDF-4976-8627-9238AFF8A903}&ID=10&RootFolder=*">Microsoft Office</a></div>
<div><b>Published:</b> 1/8/2013 12:08 PM</div>
<div><b>Author:</b> <a href="http://www.synergyonline.com/company/Profiles/Pages/Deborah-Zotian.aspx">Deborah Zotian</a></div>
<div><b>PageKeywords:</b> SharePoint, Microsoft, Sharepoint 2010</div>
<div><b>PageTitle:</b> The “Oops” Method, or how I became the office Office Expert</div>
<div><b>PageDescription:</b> In our office, I’m the Office Expert – mainly for Word, but also for Outlook, PowerPoint and Excel. I’ve been using Microsoft Office since Office 95 and have learned the product in one very important way. I call it the “Oops” method.</div>
]]></description>
      <author>System Account</author>
      <category>Microsoft Office</category>
      <pubDate>Tue, 08 Jan 2013 16:04:06 GMT</pubDate>
      <guid isPermaLink="true">http://www.synergyonline.com/Blog/Lists/Posts/ViewPost.aspx?ID=250</guid>
    </item>
    <item>
      <title>Speaking at SharePoint Saturday, San Diego</title>
      <link>http://www.synergyonline.com/Blog/Lists/Posts/ViewPost.aspx?ID=9</link>
      <description><![CDATA[<div><b>Body:</b> <div class="ExternalClass5A0262631A1643DABA8DB4F55F38AF85"> <p><font size="2">The last couple of months have been quite busy for me, and I know I have been very much behind in my blogging.  My apologies.  During this time, I have moved back to the US and am now based in San Diego, California.  I have also been working on my next book, </font><a href="http://www.amazon.com/SharePoint-2010-Administration-Instant-Reference/dp/1118022343/ref=sr_1_2?ie=UTF8&amp;s=books&amp;qid=1297631928&amp;sr=8-2" target="_blank"><font size="2">SharePoint 2010 Administration Instant Reference</font></a><font size="2">.  Expect that on the shelves in June.</font></p>
 <p><font size="2">Anyhow, back to this post’s title, I will be speaking at SharePoint Saturday on February 26, 2011 at the San Diego Convention Center.  This will be my first talk in San Diego, and I’m very excited to get back involved in the community now that things are starting to settle down.  A big thanks to Chris Givens, President of the San Diego SharePoint User Group (<a href="http://www.sanspug.org/" target="_blank">SanSPUG</a>) for arranging what is going to be a pretty big event.  We’re expecting 500 people and it has been sold out twice after adding another 75 tickets!</font></p>
 <p><font size="2">Here are my two sessions:</font></p>
 <h4><font size="2"><font style="font-weight:bold">Developer: Using Visual Studio 2010 to Build SharePoint 2010 Solutions</font></font></h4>
 <p><font size="2">At long last, Microsoft has built in, first-class support for developing SharePoint projects in Visual Studio 2010.  This session will cover packaging your code into WSP solutions, managing your features, and debugging.  We'll also look at some add-ins that will improve your productivity and demonstrates the extensibility that Visual Studio 2010 has.  This session is geared for both seasoned 2007 developers and new ones.</font>  </p>
<h4><font size="2"><font style="font-weight:bold">Developer: SharePoint 2010: Developing with Data Technologies </font></font></h4>
 <p><font size="2">Consuming data in SharePoint 2010 improves dramatically. This session will focus on the three new ways to read and write data from SharePoint.  We'll first cover Linq to SharePoint, then move onto WCF Data Services (aka REST).  Last, but not least, we'll cover the client object model.</font>  </p>
<p><font size="2">For more information on the event, see </font><a title="http://www.sharepointsaturday.org/sd/default.aspx" href="http://www.sharepointsaturday.org/sd/default.aspx" target="_blank"><font size="2">http://www.sharepointsaturday.org/sd/default.aspx</font></a><font size="2">.</font>  </p>
<p><a href="http://www.sharepointsaturday.org/sd/default.aspx"><img src="http://www.sharepointsaturday.org/sd/SiteImages/SharePointSaturday.png" width="276" height="99" alt="" /></a> </p></div></div>
<div><b>Published:</b> 2/13/2011 10:17 AM</div>
<div><b>Author:</b> <a href="http://www.synergyonline.com/company/Profiles/Pages/RandyWilliams.aspx">Randy Williams</a></div>
<div><b>PageKeywords:</b> SharePoint Branding, SharePoint Design, SharePoint Development</div>
<div><b>PageTitle:</b> Synergy SharePoint Expert Speaking at SharePoint Saturday, San Diego</div>
<div><b>PageDescription:</b> Latest News from Synergy - Speaking at SharePoint Saturday, San Diego</div>
]]></description>
      <author>System Account</author>
      <pubDate>Fri, 05 Aug 2011 15:17:52 GMT</pubDate>
      <guid isPermaLink="true">http://www.synergyonline.com/Blog/Lists/Posts/ViewPost.aspx?ID=9</guid>
    </item>
    <item>
      <title>Using SharePoint 2010 with Client Certificates</title>
      <link>http://www.synergyonline.com/Blog/Lists/Posts/ViewPost.aspx?ID=10</link>
      <description><![CDATA[<div><b>Body:</b> <div class="ExternalClass5109DB9E89D84FA6A45795784CB51BAC"> <div class="ExternalClass52E8E1895E4E4A66A3CE90A69950AABE"> <p><font size="2">I had my first Department of Defense (DoD) project in a while this past week.  In the midst of troubleshooting several related problems, I we came across a surprising article</font></p>
<p><strong><a href="http://technet.microsoft.com/en-us/library/cc262350.aspx" target="_blank" title="SharePoint 2013 User Authentication">Plan for user authentication methods in SharePoint 2013</a></strong></p>
<p><font size="2">that somewhat casually mentions that &quot;Windows certificate authentication is not supported&quot; in SharePoint 2010.  This means that logging into a SharePoint 2010 site with a client certificates (usually a smart card or a common access card (CAC) as it’s called in the DoD) is not supported.  It really caught me off guard as this is something that worked in SharePoint 2007, and the DoD and many larger commercial companies rely on smart cards as their single-sign on solution.  How could SharePoint not support it?!?</font></p>
 <p><font size="2">Well, most things actually work, but there are a number of areas that do not.  The problems we had involved the client object model, specifically when posting to the /_vti_bin/client.svc page.  While the client object model is largely for custom developed solutions on top of SharePoint, it is used in a number of built-in ways.  Here is a quick list of the areas that we noticed that did not work.  There are others, I’m sure, but these are the ones we noticed:</font></p>
 <p><font size="2">-  Using SharePoint Designer 2010 to open up a web site</font></p>
 <p><font size="2">-  Performing an operation, such as check out, on multiple files</font></p>
 <p><font size="2">-  Send to – email a link</font></p>
 <p><font size="2">After getting input from several including </font><a target="_blank"><font size="2">Spence Harbar</font></a><font size="2">, </font><a href="http://blah.winsmarts.com/" target="_blank"><font size="2">Sahil Malik</font></a><font size="2"> and a few Microsoft security and PFEs (most notably Daniel Taylor and Alfred Gattenby—thanks guys!) for the DoD, the universal solution to the problem is to use a gateway that intercepts client requests and handles the client cert authentication, taking the responsibility away from the SharePoint’s web front end servers.   All SharePoint sees is the Windows token, assuming Windows auth is used.  Most advise to use Microsoft’s Forefront UAG (Unified Access Gateway) as the solution, but others do work such as Forefront TMG (Threat Management Gateway), formerly ISA server.</font></p>
 <p><font size="2">So, for now, this is what we have.  Let’s hope in a forthcoming service pack this will be addressed so that native certificate authentication is possible.</font></p>
 <p><font size="2">For more information, see</font></p>
 <p><strong><font size="2"><a href="http://technet.microsoft.com/en-us/library/dd861393.aspx" target="_blank" title="SharePoint extranet access">Why enable SharePoint extranet access with Forefront UAG?</a></font></strong><font class="Apple-style-span" size="2"><br /></font></p>
<p><strong><font size="2"><a href="http://technet.microsoft.com/en-us/library/dd861429.aspx" target="_blank" title="SharePoint publishing">Overview of SharePoint publishing</a></font></strong><font class="Apple-style-span" size="2"><br /></font></p>
<p><strong><font size="2"><a href="http://www.sharepointsecurity.com/sharepoint/sharepoint-security/sharepoint-and-smartcards-cac-cards/" target="_blank" title="SharePoint and CAC cards">SharePoint and SmartCards (CAC cards)​</a></font></strong><font class="Apple-style-span" size="2"><br /></font></p></div></div></div>
<div><b>Published:</b> 2/13/2011 10:18 AM</div>
<div><b>Author:</b> <a href="http://www.synergyonline.com/company/Profiles/Pages/RandyWilliams.aspx">Randy Williams</a></div>
<div><b>PageKeywords:</b> sharepoint 2010, SharePoint Development, SharePoint Expert</div>
<div><b>PageTitle:</b> Using SharePoint 2010 with Client Certificates</div>
<div><b>PageDescription:</b> SharePoint Expert on Using SharePoint 2010 with Client Certificates</div>
]]></description>
      <author>System Account</author>
      <pubDate>Fri, 05 Aug 2011 15:18:35 GMT</pubDate>
      <guid isPermaLink="true">http://www.synergyonline.com/Blog/Lists/Posts/ViewPost.aspx?ID=10</guid>
    </item>
    <item>
      <title>Customizing Markup Styles Available through the Ribbon in SharePoint 2010</title>
      <link>http://www.synergyonline.com/Blog/Lists/Posts/ViewPost.aspx?ID=4</link>
      <description><![CDATA[<div><b>Body:</b> <div class="ExternalClass067E504172E8439FA5A412062FB084E4"> <h1 class="ExternalClassC80F2484643240B59A7CC6418300FE5F"></h1>
 <p align="justify" class="ExternalClassC80F2484643240B59A7CC6418300FE5F">I was asked in one of my Design courses recently how to update the Markup Styles available in the Rich Text Editor in the ribbon to comply with corporate branding.  It’s really pretty easy as long as you know where to look.  Anyone who has worked with <a href="/sharepoint/pages/branding.aspx" title="SharePoint Branding">custom branding in SharePoint​</a> knows that style sheets are stored in the Style Library of root site of the style collection.  In SharePoint 2010, the style sheet that controls the Markup Styles is now stored in the Style Library is well. </p>
 <h2 class="ExternalClassC80F2484643240B59A7CC6418300FE5F">Locate the right CSS file</h2>
 <p class="ExternalClassC80F2484643240B59A7CC6418300FE5F"><a href="/Blog/Lists/Posts/Attachments/4/image_21_0A774808_2_2B02E131.png"><img width="79" height="244" title="image_21_0A774808" alt="image_21_0A774808" src="/Blog/Lists/Posts/Attachments/4/image_21_0A774808_thumb_2B02E131.png" border="0" style="border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;padding-right:0px;padding-left:0px;display:inline;background-image:none" /></a> </p>
 <p class="ExternalClassC80F2484643240B59A7CC6418300FE5F">The CSS file to be updated is htmleditorstyles.css.  It can be found and opened using the following steps:</p>
 <p class="ExternalClassC80F2484643240B59A7CC6418300FE5F">1. Open <strong>SharePoint Designer 2010</strong></p>
 <p class="ExternalClassC80F2484643240B59A7CC6418300FE5F">2. Open the top level site in the site collection</p>
 <p class="ExternalClassC80F2484643240B59A7CC6418300FE5F">2. On the left side of the page, in the Site Objects pane select <strong>All Files</strong></p>
 <p class="ExternalClassC80F2484643240B59A7CC6418300FE5F">3. In the All Files tab select <strong>Style Library</strong></p>
 <p class="ExternalClassC80F2484643240B59A7CC6418300FE5F">4. In the Style Library select <strong>en-us &gt; Themable &gt; Core Styles</strong> </p>
 <p class="ExternalClassC80F2484643240B59A7CC6418300FE5F">5. Right click <strong>htmleditorstyles.css</strong> and select  <strong>Edit File in Advanced Mode</strong> then select<strong> Yes</strong> to check the file out.</p>
 <p class="ExternalClassC80F2484643240B59A7CC6418300FE5F"> </p>
 <p class="ExternalClassC80F2484643240B59A7CC6418300FE5F"> </p>
 <h2 class="ExternalClassC80F2484643240B59A7CC6418300FE5F">Customize the CSS</h2>
 <p class="ExternalClassC80F2484643240B59A7CC6418300FE5F">With the file open in SharePoint Designer  you can now make any edits you desire to customize your styles.</p>
 <p class="ExternalClassC80F2484643240B59A7CC6418300FE5F">Here is the CSS for the first four out of the box Markup Styles and how they render:</p>
 <p class="ExternalClassC80F2484643240B59A7CC6418300FE5F"><a href="/Blog/Lists/Posts/Attachments/4/image_13_0A774808_6_2B02E131.png"><img width="155" height="244" title="image_13_0A774808" alt="image_13_0A774808" src="/Blog/Lists/Posts/Attachments/4/image_13_0A774808_thumb_2_2B02E131.png" border="0" style="border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;padding-right:0px;padding-left:0px;display:inline;background-image:none" /></a> </p>
 <p class="ExternalClassC80F2484643240B59A7CC6418300FE5F"> </p>
 <p class="ExternalClassC80F2484643240B59A7CC6418300FE5F">Now a few changes:</p>
 <p class="ExternalClassC80F2484643240B59A7CC6418300FE5F"><a href="/Blog/Lists/Posts/Attachments/4/image_15_0A774808_2_2B02E131.png"><img width="244" height="201" title="image_15_0A774808" alt="image_15_0A774808" src="/Blog/Lists/Posts/Attachments/4/image_15_0A774808_thumb_2B02E131.png" border="0" style="border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;padding-right:0px;padding-left:0px;display:inline;background-image:none" /></a> </p>
 <h2 class="ExternalClassC80F2484643240B59A7CC6418300FE5F"></h2>
 <h2 class="ExternalClassC80F2484643240B59A7CC6418300FE5F">Save the revised style sheet </h2>
 <p align="justify" class="ExternalClassC80F2484643240B59A7CC6418300FE5F">It is best practice not to modify out of the box files in SharePoint.  Further, the modified file must be applied through the browser in order to effect changes.  The following steps are what need to be done in order to see your results in the browser:</p>
 <p align="justify">1. After making customizations in the style sheet, select the<strong> File</strong> tab then <strong>Save As</strong></p>
 <p align="justify">2. Navigate to the root of the Style Library or an appropriate folder within the Style Library.  (I like to create a folder with the company name such as “Synergy_Styles” to store custom CSS files.)</p>
 <p align="justify">3. Save the file with a unique name.</p>
 <p align="justify">4. Navigate back to the <strong>Style Library</strong> tab using the breadcrumb<br /><a href="/Blog/Lists/Posts/Attachments/4/image_25_0A774808_2_2B02E131.png"><img width="244" height="32" title="image_25_0A774808" alt="image_25_0A774808" src="/Blog/Lists/Posts/Attachments/4/image_25_0A774808_thumb_2B02E131.png" border="0" style="border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;padding-right:0px;padding-left:0px;display:inline;background-image:none" /></a><br /><br /></p>
 <p align="justify">5. Right click your new CSS file and select <strong>Check In</strong><br /><a href="/Blog/Lists/Posts/Attachments/4/image_27_0A774808_2_2B02E131.png"><img width="244" height="134" title="image_27_0A774808" alt="image_27_0A774808" src="/Blog/Lists/Posts/Attachments/4/image_27_0A774808_thumb_16115EBE.png" border="0" style="border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;padding-right:0px;padding-left:0px;display:inline;background-image:none" /></a><br /><br /></p>
 <p align="justify">6. Select <strong>Publish a major version</strong>, add some comments and click <strong>OK</strong>.</p>
 <h2 class="ExternalClassC80F2484643240B59A7CC6418300FE5F">Apply the new style sheet through the browser</h2>
 <p class="ExternalClassC80F2484643240B59A7CC6418300FE5F">You’re almost there!  Now that your style sheet has been customized and published, all you need to do is apply the style sheet through the browser.</p>
 <p class="ExternalClassC80F2484643240B59A7CC6418300FE5F">1. Navigate to the root  of the site collection </p>
 <p class="ExternalClassC80F2484643240B59A7CC6418300FE5F">2. Select <strong>Site Actions &gt; Site Settings</strong> </p>
 <p class="ExternalClassC80F2484643240B59A7CC6418300FE5F">3. Under Look and Feel select <strong>Master page</strong> </p>
 <p class="ExternalClassC80F2484643240B59A7CC6418300FE5F">4. Scroll to the bottom of the page and in the Alternate CSS URL section select <strong>Specify a CSS file to be used by this publishing site and all sites that inherit from it</strong>: </p>
 <p class="ExternalClassC80F2484643240B59A7CC6418300FE5F">5. Browse to your file in the Style Library, select it and click<strong> OK</strong> </p>
 <p class="ExternalClassC80F2484643240B59A7CC6418300FE5F">6. Select the checkbox next to <strong>Reset all subsites to inherit this alternate CSS URL</strong> in order to apply the style sheet throughout the entire site collection</p>
 <p>Now test your fully branded styles!</p></div></div>
<div><b>Category:</b> <a onclick="OpenPopUpPage('http://www.synergyonline.com/Blog/_layouts/listform.aspx?PageType=4&ListId={BEBD6B7C-8EDF-4976-8627-9238AFF8A903}&ID=5&RootFolder=*', RefreshPage); return false;" href="http://www.synergyonline.com/Blog/_layouts/listform.aspx?PageType=4&ListId={BEBD6B7C-8EDF-4976-8627-9238AFF8A903}&ID=5&RootFolder=*">Design</a>; <a onclick="OpenPopUpPage('http://www.synergyonline.com/Blog/_layouts/listform.aspx?PageType=4&ListId={BEBD6B7C-8EDF-4976-8627-9238AFF8A903}&ID=8&RootFolder=*', RefreshPage); return false;" href="http://www.synergyonline.com/Blog/_layouts/listform.aspx?PageType=4&ListId={BEBD6B7C-8EDF-4976-8627-9238AFF8A903}&ID=8&RootFolder=*">Web Content Management</a></div>
<div><b>Published:</b> 8/3/2011 11:08 AM</div>
<div><b>Author:</b> <a href="http://www.synergyonline.com/company/Profiles/Pages/ChrisBayot.aspx">Chris Bayot</a></div>
<div><b>PageKeywords:</b> SharePoint Design, sharepoint branding</div>
<div><b>PageTitle:</b> Customizing Markup Styles Available through the Ribbon in SharePoint 2010</div>
<div><b>PageDescription:</b> Shareoint Expert shows how to update the Markup Styles available in the Rich Text Editor in the ribbon to comply with corporate branding.</div>
<div><b>Attachments:</b> <a href="http://www.synergyonline.com/Blog/Lists/Posts/Attachments/4/image_13_0A774808_6_2B02E131.png">http://www.synergyonline.com/Blog/Lists/Posts/Attachments/4/image_13_0A774808_6_2B02E131.png</a><br /><a href="http://www.synergyonline.com/Blog/Lists/Posts/Attachments/4/image_13_0A774808_thumb_2_2B02E131.png">http://www.synergyonline.com/Blog/Lists/Posts/Attachments/4/image_13_0A774808_thumb_2_2B02E131.png</a><br /><a href="http://www.synergyonline.com/Blog/Lists/Posts/Attachments/4/image_15_0A774808_2_2B02E131.png">http://www.synergyonline.com/Blog/Lists/Posts/Attachments/4/image_15_0A774808_2_2B02E131.png</a><br /><a href="http://www.synergyonline.com/Blog/Lists/Posts/Attachments/4/image_15_0A774808_thumb_2B02E131.png">http://www.synergyonline.com/Blog/Lists/Posts/Attachments/4/image_15_0A774808_thumb_2B02E131.png</a><br /><a href="http://www.synergyonline.com/Blog/Lists/Posts/Attachments/4/image_21_0A774808_2_2B02E131.png">http://www.synergyonline.com/Blog/Lists/Posts/Attachments/4/image_21_0A774808_2_2B02E131.png</a><br /><a href="http://www.synergyonline.com/Blog/Lists/Posts/Attachments/4/image_21_0A774808_thumb_2B02E131.png">http://www.synergyonline.com/Blog/Lists/Posts/Attachments/4/image_21_0A774808_thumb_2B02E131.png</a><br /><a href="http://www.synergyonline.com/Blog/Lists/Posts/Attachments/4/image_25_0A774808_2_2B02E131.png">http://www.synergyonline.com/Blog/Lists/Posts/Attachments/4/image_25_0A774808_2_2B02E131.png</a><br /><a href="http://www.synergyonline.com/Blog/Lists/Posts/Attachments/4/image_25_0A774808_thumb_2B02E131.png">http://www.synergyonline.com/Blog/Lists/Posts/Attachments/4/image_25_0A774808_thumb_2B02E131.png</a><br /><a href="http://www.synergyonline.com/Blog/Lists/Posts/Attachments/4/image_27_0A774808_2_2B02E131.png">http://www.synergyonline.com/Blog/Lists/Posts/Attachments/4/image_27_0A774808_2_2B02E131.png</a><br /><a href="http://www.synergyonline.com/Blog/Lists/Posts/Attachments/4/image_27_0A774808_thumb_16115EBE.png">http://www.synergyonline.com/Blog/Lists/Posts/Attachments/4/image_27_0A774808_thumb_16115EBE.png</a><br /><a href=""></a></div>
]]></description>
      <author>System Account</author>
      <category>Design; Web Content Management</category>
      <pubDate>Fri, 05 Aug 2011 15:09:07 GMT</pubDate>
      <guid isPermaLink="true">http://www.synergyonline.com/Blog/Lists/Posts/ViewPost.aspx?ID=4</guid>
    </item>
    <item>
      <title>Windows Snap for Dual Screen</title>
      <link>http://www.synergyonline.com/Blog/Lists/Posts/ViewPost.aspx?ID=150</link>
      <description><![CDATA[<div><b>Body:</b> <div class="ExternalClassEEEA475167D34C8CA0ACD0D0F239D1FC"><p>​Many of you know Windows Snap. This is one of the features of Windows 7 where you drag a window to the left or right of the screen and SNAP!, it automatically formats to fill half the screen.</p>
<p>Not familiar with this feature? Here’s how it works - you drag an active document by the title bar at the top of the document to the side of your screen until you see a transparent outline of the document. Once you let go, it expands to fill half of the desktop. You then do the same thing with another document to the opposite side of the screen. When you’re done with feature, just double click on the title bar and the document reverts back to its original location on your screen.</p>
<p>If you use a dual screen set up, as many people do, this feature just doesn’t work right. Windows sees this as an ‘extended desktop, and you end up snapping one file to the left side of the left screen and the other file to right side of the right screen. That’s just not conducive to comparing documents, spreadsheets, etc. side by side. It would be easier just to make them full size on each screen.</p>
<p>But wait. As with most things Microsoft, there is a way around this. By using the Windows key on your keyboard, you are able to ‘snap’ a file to the right and left of the left screen, the right screen, or even have four items open on both screens.</p>
<p>Here’s how:</p>
<p>Make sure your document is the active document by clicking on it anywhere in the document. Then hold down the Windows key and use the left or right arrow to snap your document to the side of the current screen. It will then expand to fill half of that screen much like the normal “Snap” fills half the desktop. Continue doing this with the other document or documents and you can have four items side by side by side by side.</p>
<p>Don’t believe me? Take a look at this:</p>
<p><img alt="Four Screen Snap Update 2.png" src="/Blog/PublishingImages/Four%20Screen%20Snap%20Update%202.png" style="margin-top:5px;margin-right:5px;margin-bottom:5px;margin-left:5px;width:700px;height:248px" /><br />This is a picture of my two screens – with two ‘snapped’ files on each. I can now compare the two documents on the left and still have my browser and phone screen visible on the right. </p>
<p>By simply double clicking the document, it will revert back to an ‘unsnapped’ size.</p></div></div>
<div><b>Category:</b> <a onclick="OpenPopUpPage('http://www.synergyonline.com/Blog/_layouts/listform.aspx?PageType=4&ListId={BEBD6B7C-8EDF-4976-8627-9238AFF8A903}&ID=11&RootFolder=*', RefreshPage); return false;" href="http://www.synergyonline.com/Blog/_layouts/listform.aspx?PageType=4&ListId={BEBD6B7C-8EDF-4976-8627-9238AFF8A903}&ID=11&RootFolder=*">Windows</a></div>
<div><b>Published:</b> 10/14/2011 2:29 PM</div>
<div><b>Author:</b> <a href="http://www.synergyonline.com/company/Profiles/Pages/Deborah-Zotian.aspx">Deborah Zotian</a></div>
<div><b>PageKeywords:</b> SharePoint Implementation, SharePoint Development, SharePoint Training, it support companies</div>
<div><b>PageTitle:</b> Windows Snap for Dual Screen</div>
<div><b>PageDescription:</b> Many of you know Windows Snap. This is one of the features of Windows 7 where you drag a window to the left or right of the screen and SNAP!, it automatically formats to fill half the screen. Not familiar with this feature?</div>
]]></description>
      <author>System Account</author>
      <category>Windows</category>
      <pubDate>Fri, 14 Oct 2011 18:38:49 GMT</pubDate>
      <guid isPermaLink="true">http://www.synergyonline.com/Blog/Lists/Posts/ViewPost.aspx?ID=150</guid>
    </item>
    <item>
      <title>Building an Accordion with jQuery and SharePoint 2010</title>
      <link>http://www.synergyonline.com/Blog/Lists/Posts/ViewPost.aspx?ID=158</link>
      <description><![CDATA[<div><b>Body:</b> <div class="ExternalClass3DB1B2549CB94565A7F959C078ED004C"><div style="width:800px"><p>This is the 2nd post in a series that talks about various areas of our redesigned corporate website using technologies like jQuery.  These technologies helped us extend the out of box look of SharePoint 2010 for a public facing SharePoint driven website.</p>
<p>User experience (UX) is a big buzzword these days when building websites.  How many clicks the user has to perform and how much scrolling will be done should always factor in the design process.  In many cases content can be so large that your user could have finger cramps when scrolling (or kill a tree when printing the page!).  Have you ever given thought to using a jQuery Accordion?  This method works well, because it makes use of the horizontal space to store massive amounts of content in “panels” that are hidden until the user wants to see it.  It also adds a nice interact experience that people normally get only when viewing Flash content.</p>
<p>Here is one example of a page on our corporate website  <a title="http://www.synergyonline.com/sharepoint" href="/sharepoint" target="_blank">http://www.synergyonline.com/sharepoint</a>:</p>
<p><a href="/Blog/Lists/Posts/Attachments/158/AccordionClosed_2_68167AA8.png"><img width="386" height="276" title="AccordionClosed" alt="AccordionClosed" src="/Blog/Lists/Posts/Attachments/158/AccordionClosed_thumb_68167AA8.png" border="0" 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" /></a> <a href="/Blog/Lists/Posts/Attachments/158/AccordionOpen_2_68167AA8.png"><img width="386" height="276" title="AccordionOpen" alt="AccordionOpen" src="/Blog/Lists/Posts/Attachments/158/AccordionOpen_thumb_68167AA8.png" border="0" 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" /></a> </p>
<p>What you are presented with here is a series of 7 panels, each representing a list item in a SharePoint List.  The first panel is shown by default.  Arrows on each panel offer the user a way to expand content in each panel while collapsing the panel currently being viewed.</p>
<p>To build such a webpart, I initially defined a SharePoint List that contained all the elements used by the visual webpart:</p>
<p><a href="/Blog/Lists/Posts/Attachments/158/ListSchema_2_68167AA8.png"><img width="485" height="269" title="ListSchema" alt="ListSchema" src="/Blog/Lists/Posts/Attachments/158/ListSchema_thumb_68167AA8.png" border="0" 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" /></a> </p>
<table width="503" border="0" cellspacing="0" cellpadding="2"><tbody><tr><td width="200" valign="top">Title</td>
<td width="301" valign="top">Name of panel section</td></tr>
<tr><td width="200" valign="top">SlideOrder</td>
<td width="301" valign="top">Display Order of the panels</td></tr>
<tr><td width="200" valign="top">SlideHtml</td>
<td width="301" valign="top">Raw HTML for the panel content</td></tr>
<tr><td width="200" valign="top">HeaderUrl</td>
<td width="301" valign="top">Image for the vertical text on the panel</td></tr>
<tr><td width="200" valign="top">PanelBackgroundImage</td>
<td width="301" valign="top">Background image for the panel (optional)</td></tr>
<tr><td width="200" valign="top">PanelBackgroundHex</td>
<td width="301" valign="top">General background color for the panel</td></tr></tbody></table>
<p> </p>
<p>Now that the list is defined, the next step was to build the visual webpart.  The basic shell of the panels is as follows:</p>
<div id="codeSnippetWrapper" style="border-bottom-color:silver;border-bottom-width:1px;border-bottom-style:solid;text-align:left;border-left-color:silver;border-left-width:1px;border-left-style:solid;padding-bottom:4px;line-height:12pt;background-color:rgb(244, 244, 244);margin-top:20px;margin-right:0px;margin-bottom:10px;margin-left:0px;padding-left:4px;width:90%;padding-right:4px;font-family:'courier new', courier, monospace;direction:ltr;max-height:200px;font-size:8pt;overflow-x:auto;overflow-y:auto;border-top-color:silver;border-top-width:1px;border-top-style:solid;cursor:text;border-right-color:silver;border-right-width:1px;border-right-style:solid;padding-top:4px"><div id="codeSnippet" style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:rgb(244, 244, 244);padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow-x:visible;overflow-y:visible;padding-top:0px"><pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow-x:visible;overflow-y:visible;padding-top:0px"><span style="color:rgb(0, 0, 255)">&lt;</span><span style="color:rgb(128, 0, 0)">div</span><span style="color:rgb(0, 0, 255)">&gt;</span> <span style="color:rgb(0, 128, 0)">&lt;!-- container --&gt;</span></pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow-x:visible;overflow-y:visible;padding-top:0px">    <span style="color:rgb(0, 0, 255)">&lt;</span><span style="color:rgb(128, 0, 0)">ul</span><span style="color:rgb(0, 0, 255)">&gt;</span></pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow-x:visible;overflow-y:visible;padding-top:0px">        <span style="color:rgb(0, 0, 255)">&lt;</span><span style="color:rgb(128, 0, 0)">li</span><span style="color:rgb(0, 0, 255)">&gt;</span> <span style="color:rgb(0, 128, 0)">&lt;!-- list item for each panel --&gt;</span></pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow-x:visible;overflow-y:visible;padding-top:0px">            <span style="color:rgb(0, 0, 255)">&lt;</span><span style="color:rgb(128, 0, 0)">div</span><span style="color:rgb(0, 0, 255)">&gt;</span>panel left shadow image<span style="color:rgb(0, 0, 255)">&lt;/</span><span style="color:rgb(128, 0, 0)">div</span><span style="color:rgb(0, 0, 255)">&gt;</span></pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow-x:visible;overflow-y:visible;padding-top:0px">            <span style="color:rgb(0, 0, 255)">&lt;</span><span style="color:rgb(128, 0, 0)">div</span><span style="color:rgb(0, 0, 255)">&gt;</span>panel container<span style="color:rgb(0, 0, 255)">&lt;/</span><span style="color:rgb(128, 0, 0)">div</span><span style="color:rgb(0, 0, 255)">&gt;</span></pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow-x:visible;overflow-y:visible;padding-top:0px">                <span style="color:rgb(0, 0, 255)">&lt;</span><span style="color:rgb(128, 0, 0)">div</span><span style="color:rgb(0, 0, 255)">&gt;</span>left vertical banner<span style="color:rgb(0, 0, 255)">&lt;/</span><span style="color:rgb(128, 0, 0)">div</span><span style="color:rgb(0, 0, 255)">&gt;</span></pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow-x:visible;overflow-y:visible;padding-top:0px">                    <span style="color:rgb(0, 0, 255)">&lt;</span><span style="color:rgb(128, 0, 0)">div</span><span style="color:rgb(0, 0, 255)">&gt;</span>vertical text image<span style="color:rgb(0, 0, 255)">&lt;/</span><span style="color:rgb(128, 0, 0)">div</span><span style="color:rgb(0, 0, 255)">&gt;</span></pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow-x:visible;overflow-y:visible;padding-top:0px">                    <span style="color:rgb(0, 0, 255)">&lt;</span><span style="color:rgb(128, 0, 0)">div</span><span style="color:rgb(0, 0, 255)">&gt;</span>navigation arrow<span style="color:rgb(0, 0, 255)">&lt;/</span><span style="color:rgb(128, 0, 0)">div</span><span style="color:rgb(0, 0, 255)">&gt;</span></pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow-x:visible;overflow-y:visible;padding-top:0px">                    <span style="color:rgb(0, 0, 255)">&lt;</span><span style="color:rgb(128, 0, 0)">div</span><span style="color:rgb(0, 0, 255)">&gt;</span>left vertical shadow<span style="color:rgb(0, 0, 255)">&lt;/</span><span style="color:rgb(128, 0, 0)">div</span><span style="color:rgb(0, 0, 255)">&gt;</span></pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow-x:visible;overflow-y:visible;padding-top:0px">                <span style="color:rgb(0, 0, 255)">&lt;/</span><span style="color:rgb(128, 0, 0)">div</span><span style="color:rgb(0, 0, 255)">&gt;</span></pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow-x:visible;overflow-y:visible;padding-top:0px">                <span style="color:rgb(0, 0, 255)">&lt;</span><span style="color:rgb(128, 0, 0)">div</span><span style="color:rgb(0, 0, 255)">&gt;</span>panel content<span style="color:rgb(0, 0, 255)">&lt;/</span><span style="color:rgb(128, 0, 0)">div</span><span style="color:rgb(0, 0, 255)">&gt;</span></pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow-x:visible;overflow-y:visible;padding-top:0px">            <span style="color:rgb(0, 0, 255)">&lt;/</span><span style="color:rgb(128, 0, 0)">div</span><span style="color:rgb(0, 0, 255)">&gt;</span></pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow-x:visible;overflow-y:visible;padding-top:0px">        <span style="color:rgb(0, 0, 255)">&lt;/</span><span style="color:rgb(128, 0, 0)">li</span><span style="color:rgb(0, 0, 255)">&gt;</span></pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow-x:visible;overflow-y:visible;padding-top:0px">    <span style="color:rgb(0, 0, 255)">&lt;/</span><span style="color:rgb(128, 0, 0)">ul</span><span style="color:rgb(0, 0, 255)">&gt;</span></pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow-x:visible;overflow-y:visible;padding-top:0px"><span style="color:rgb(0, 0, 255)">&lt;/</span><span style="color:rgb(128, 0, 0)">div</span><span style="color:rgb(0, 0, 255)">&gt;</span></pre></div></div>
<p>Here is the corresponding html used in the visual webpart:</p>
<div id="codeSnippetWrapper" style="border-bottom-color:silver;border-bottom-width:1px;border-bottom-style:solid;text-align:left;border-left-color:silver;border-left-width:1px;border-left-style:solid;padding-bottom:4px;line-height:12pt;background-color:rgb(244, 244, 244);margin-top:20px;margin-right:0px;margin-bottom:10px;margin-left:0px;padding-left:4px;width:90%;padding-right:4px;font-family:'courier new', courier, monospace;direction:ltr;height:232px;max-height:200px;font-size:8pt;overflow-x:auto;overflow-y:auto;border-top-color:silver;border-top-width:1px;border-top-style:solid;cursor:text;border-right-color:silver;border-right-width:1px;border-right-style:solid;padding-top:4px"><div id="codeSnippet" style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:rgb(244, 244, 244);padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow-x:visible;overflow-y:visible;padding-top:0px"><pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow-x:visible;overflow-y:visible;padding-top:0px"><span style="color:rgb(0, 0, 255)">&lt;</span><span style="color:rgb(128, 0, 0)">asp:Repeater</span> <span style="color:rgb(255, 0, 0)">ID</span><span style="color:rgb(0, 0, 255)">=&quot;rptSlider&quot;</span> <span style="color:rgb(255, 0, 0)">runat</span><span style="color:rgb(0, 0, 255)">=&quot;server&quot;</span> <span style="color:rgb(255, 0, 0)">Visible</span><span style="color:rgb(0, 0, 255)">=&quot;true&quot;</span> <span style="color:rgb(255, 0, 0)">onitemdatabound</span><span style="color:rgb(0, 0, 255)">=&quot;rptSlider_ItemDataBound&quot;</span><span style="color:rgb(0, 0, 255)">&gt;</span></pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow-x:visible;overflow-y:visible;padding-top:0px">    <span style="color:rgb(0, 0, 255)">&lt;</span><span style="color:rgb(128, 0, 0)">HeaderTemplate</span><span style="color:rgb(0, 0, 255)">&gt;</span></pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow-x:visible;overflow-y:visible;padding-top:0px">        <span style="color:rgb(0, 0, 255)">&lt;</span><span style="color:rgb(128, 0, 0)">asp:Literal</span> <span style="color:rgb(255, 0, 0)">ID</span><span style="color:rgb(0, 0, 255)">=&quot;ltContainerBegin&quot;</span> <span style="color:rgb(255, 0, 0)">runat</span><span style="color:rgb(0, 0, 255)">=&quot;server&quot;</span><span style="color:rgb(0, 0, 255)">&gt;&lt;/</span><span style="color:rgb(128, 0, 0)">asp:Literal</span><span style="color:rgb(0, 0, 255)">&gt;</span></pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow-x:visible;overflow-y:visible;padding-top:0px">        <span style="color:rgb(0, 0, 255)">&lt;</span><span style="color:rgb(128, 0, 0)">ul</span> <span style="color:rgb(255, 0, 0)">class</span><span style="color:rgb(0, 0, 255)">=&quot;accordion&quot;</span><span style="color:rgb(0, 0, 255)">&gt;</span></pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow-x:visible;overflow-y:visible;padding-top:0px">    <span style="color:rgb(0, 0, 255)">&lt;/</span><span style="color:rgb(128, 0, 0)">HeaderTemplate</span><span style="color:rgb(0, 0, 255)">&gt;</span></pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow-x:visible;overflow-y:visible;padding-top:0px">    <span style="color:rgb(0, 0, 255)">&lt;</span><span style="color:rgb(128, 0, 0)">ItemTemplate</span><span style="color:rgb(0, 0, 255)">&gt;</span></pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow-x:visible;overflow-y:visible;padding-top:0px">            <span style="color:rgb(0, 0, 255)">&lt;</span><span style="color:rgb(128, 0, 0)">li</span> <span style="color:rgb(255, 0, 0)">id</span><span style="color:rgb(0, 0, 255)">=&quot;liItem&quot;</span> <span style="color:rgb(255, 0, 0)">runat</span><span style="color:rgb(0, 0, 255)">=&quot;server&quot;</span> <span style="color:rgb(255, 0, 0)">class</span><span style="color:rgb(0, 0, 255)">=&quot;accordion-top-li&quot;</span><span style="color:rgb(0, 0, 255)">&gt;</span></pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow-x:visible;overflow-y:visible;padding-top:0px">                <span style="color:rgb(0, 0, 255)">&lt;</span><span style="color:rgb(128, 0, 0)">div</span> <span style="color:rgb(255, 0, 0)">class</span><span style="color:rgb(0, 0, 255)">=&quot;li-content-vert-shadow&quot;</span><span style="color:rgb(0, 0, 255)">&gt;&lt;</span><span style="color:rgb(128, 0, 0)">img</span> <span style="color:rgb(255, 0, 0)">src</span><span style="color:rgb(0, 0, 255)">=&quot;/SiteCollectionImages/img_vert_shadow.png&quot;</span> <span style="color:rgb(255, 0, 0)">alt</span><span style="color:rgb(0, 0, 255)">=&quot;vertical shadow&quot;</span> <span style="color:rgb(0, 0, 255)">/&gt;&lt;/</span><span style="color:rgb(128, 0, 0)">div</span><span style="color:rgb(0, 0, 255)">&gt;</span></pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow-x:visible;overflow-y:visible;padding-top:0px">                <span style="color:rgb(0, 0, 255)">&lt;</span><span style="color:rgb(128, 0, 0)">div</span> <span style="color:rgb(255, 0, 0)">id</span><span style="color:rgb(0, 0, 255)">=&quot;liContent&quot;</span> <span style="color:rgb(255, 0, 0)">class</span><span style="color:rgb(0, 0, 255)">=&quot;li-content&quot;</span> <span style="color:rgb(255, 0, 0)">runat</span><span style="color:rgb(0, 0, 255)">=&quot;server&quot;</span><span style="color:rgb(0, 0, 255)">&gt;</span></pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow-x:visible;overflow-y:visible;padding-top:0px">                    <span style="color:rgb(0, 0, 255)">&lt;</span><span style="color:rgb(128, 0, 0)">div</span> <span style="color:rgb(255, 0, 0)">class</span><span style="color:rgb(0, 0, 255)">=&quot;accordion-vert-header&quot;</span><span style="color:rgb(0, 0, 255)">&gt;</span></pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow-x:visible;overflow-y:visible;padding-top:0px">                        <span style="color:rgb(0, 0, 255)">&lt;</span><span style="color:rgb(128, 0, 0)">div</span> <span style="color:rgb(255, 0, 0)">class</span><span style="color:rgb(0, 0, 255)">=&quot;vert-header-text&quot;</span><span style="color:rgb(0, 0, 255)">&gt;&lt;</span><span style="color:rgb(128, 0, 0)">asp:Literal</span> <span style="color:rgb(255, 0, 0)">ID</span><span style="color:rgb(0, 0, 255)">=&quot;ltVerticalHeaderImg&quot;</span> <span style="color:rgb(255, 0, 0)">runat</span><span style="color:rgb(0, 0, 255)">=&quot;server&quot;</span><span style="color:rgb(0, 0, 255)">&gt;&lt;/</span><span style="color:rgb(128, 0, 0)">asp:Literal</span><span style="color:rgb(0, 0, 255)">&gt;&lt;/</span><span style="color:rgb(128, 0, 0)">div</span><span style="color:rgb(0, 0, 255)">&gt;</span></pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow-x:visible;overflow-y:visible;padding-top:0px">                        <span style="color:rgb(0, 0, 255)">&lt;</span><span style="color:rgb(128, 0, 0)">div</span> <span style="color:rgb(255, 0, 0)">class</span><span style="color:rgb(0, 0, 255)">=&quot;vert-header-arrow&quot;</span><span style="color:rgb(0, 0, 255)">&gt;&lt;</span><span style="color:rgb(128, 0, 0)">asp:Literal</span> <span style="color:rgb(255, 0, 0)">ID</span><span style="color:rgb(0, 0, 255)">=&quot;ltArrow&quot;</span> <span style="color:rgb(255, 0, 0)">runat</span><span style="color:rgb(0, 0, 255)">=&quot;server&quot;</span><span style="color:rgb(0, 0, 255)">&gt;&lt;/</span><span style="color:rgb(128, 0, 0)">asp:Literal</span><span style="color:rgb(0, 0, 255)">&gt;&lt;/</span><span style="color:rgb(128, 0, 0)">div</span><span style="color:rgb(0, 0, 255)">&gt;</span></pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow-x:visible;overflow-y:visible;padding-top:0px">                        <span style="color:rgb(0, 0, 255)">&lt;</span><span style="color:rgb(128, 0, 0)">div</span> <span style="color:rgb(255, 0, 0)">class</span><span style="color:rgb(0, 0, 255)">=&quot;vert-header-shadow&quot;</span><span style="color:rgb(0, 0, 255)">&gt;&lt;</span><span style="color:rgb(128, 0, 0)">asp:Literal</span> <span style="color:rgb(255, 0, 0)">ID</span><span style="color:rgb(0, 0, 255)">=&quot;ltVerticalShadowImg&quot;</span> <span style="color:rgb(255, 0, 0)">runat</span><span style="color:rgb(0, 0, 255)">=&quot;server&quot;</span><span style="color:rgb(0, 0, 255)">&gt;&lt;/</span><span style="color:rgb(128, 0, 0)">asp:Literal</span><span style="color:rgb(0, 0, 255)">&gt;&lt;/</span><span style="color:rgb(128, 0, 0)">div</span><span style="color:rgb(0, 0, 255)">&gt;</span></pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow-x:visible;overflow-y:visible;padding-top:0px">                    <span style="color:rgb(0, 0, 255)">&lt;/</span><span style="color:rgb(128, 0, 0)">div</span><span style="color:rgb(0, 0, 255)">&gt;</span></pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow-x:visible;overflow-y:visible;padding-top:0px">                    <span style="color:rgb(0, 0, 255)">&lt;</span><span style="color:rgb(128, 0, 0)">div</span> <span style="color:rgb(255, 0, 0)">class</span><span style="color:rgb(0, 0, 255)">=&quot;accordion-html-content&quot;</span><span style="color:rgb(0, 0, 255)">&gt;</span></pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow-x:visible;overflow-y:visible;padding-top:0px">                        <span style="color:rgb(0, 0, 255)">&lt;</span><span style="color:rgb(128, 0, 0)">asp:Literal</span> <span style="color:rgb(255, 0, 0)">ID</span><span style="color:rgb(0, 0, 255)">=&quot;ltSlideHtml&quot;</span> <span style="color:rgb(255, 0, 0)">runat</span><span style="color:rgb(0, 0, 255)">=&quot;server&quot;</span><span style="color:rgb(0, 0, 255)">&gt;&lt;/</span><span style="color:rgb(128, 0, 0)">asp:Literal</span><span style="color:rgb(0, 0, 255)">&gt;</span></pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow-x:visible;overflow-y:visible;padding-top:0px">                    <span style="color:rgb(0, 0, 255)">&lt;/</span><span style="color:rgb(128, 0, 0)">div</span><span style="color:rgb(0, 0, 255)">&gt;</span></pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow-x:visible;overflow-y:visible;padding-top:0px">                <span style="color:rgb(0, 0, 255)">&lt;/</span><span style="color:rgb(128, 0, 0)">div</span><span style="color:rgb(0, 0, 255)">&gt;</span></pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow-x:visible;overflow-y:visible;padding-top:0px">            <span style="color:rgb(0, 0, 255)">&lt;/</span><span style="color:rgb(128, 0, 0)">li</span><span style="color:rgb(0, 0, 255)">&gt;</span></pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow-x:visible;overflow-y:visible;padding-top:0px">    <span style="color:rgb(0, 0, 255)">&lt;/</span><span style="color:rgb(128, 0, 0)">ItemTemplate</span><span style="color:rgb(0, 0, 255)">&gt;</span></pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow-x:visible;overflow-y:visible;padding-top:0px">    <span style="color:rgb(0, 0, 255)">&lt;</span><span style="color:rgb(128, 0, 0)">FooterTemplate</span><span style="color:rgb(0, 0, 255)">&gt;</span></pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow-x:visible;overflow-y:visible;padding-top:0px">        <span style="color:rgb(0, 0, 255)">&lt;/</span><span style="color:rgb(128, 0, 0)">ul</span><span style="color:rgb(0, 0, 255)">&gt;</span></pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow-x:visible;overflow-y:visible;padding-top:0px">        <span style="color:rgb(0, 0, 255)">&lt;/</span><span style="color:rgb(128, 0, 0)">div</span><span style="color:rgb(0, 0, 255)">&gt;</span></pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow-x:visible;overflow-y:visible;padding-top:0px">    <span style="color:rgb(0, 0, 255)">&lt;/</span><span style="color:rgb(128, 0, 0)">FooterTemplate</span><span style="color:rgb(0, 0, 255)">&gt;</span></pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow-x:visible;overflow-y:visible;padding-top:0px"><span style="color:rgb(0, 0, 255)">&lt;/</span><span style="color:rgb(128, 0, 0)">asp:Repeater</span><span style="color:rgb(0, 0, 255)">&gt;</span></pre></div></div>
<p>Since the panels are all the same structure, I used an ASP:Repeater control to build the unordered list items dynamically.  After setting up the structure in html, I began to tie the data to the controls, through the ItemDataBound event of my Repeater:</p>
<div id="codeSnippetWrapper" style="border-bottom-color:silver;border-bottom-width:1px;border-bottom-style:solid;text-align:left;border-left-color:silver;border-left-width:1px;border-left-style:solid;padding-bottom:4px;line-height:12pt;background-color:rgb(244, 244, 244);margin-top:20px;margin-right:0px;margin-bottom:10px;margin-left:0px;padding-left:4px;width:90%;padding-right:4px;font-family:'courier new', courier, monospace;direction:ltr;max-height:200px;font-size:8pt;overflow-x:auto;overflow-y:auto;border-top-color:silver;border-top-width:1px;border-top-style:solid;cursor:text;border-right-color:silver;border-right-width:1px;border-right-style:solid;padding-top:4px"><div id="codeSnippet" style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:rgb(244, 244, 244);padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow-x:visible;overflow-y:visible;padding-top:0px"><pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow-x:visible;overflow-y:visible;padding-top:0px"><span style="color:rgb(0, 0, 255)">protected</span> <span style="color:rgb(0, 0, 255)">void</span> rptSlider_ItemDataBound(<span style="color:rgb(0, 0, 255)">object</span> sender, RepeaterItemEventArgs e)</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow-x:visible;overflow-y:visible;padding-top:0px">{</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow-x:visible;overflow-y:visible;padding-top:0px">    <span style="color:rgb(0, 0, 255)">if</span> (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow-x:visible;overflow-y:visible;padding-top:0px">    {</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow-x:visible;overflow-y:visible;padding-top:0px">        DataRowView drv = (DataRowView)e.Item.DataItem;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow-x:visible;overflow-y:visible;padding-top:0px"> </pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow-x:visible;overflow-y:visible;padding-top:0px">        Literal ltContainerBegin = (Literal)rptSlider.Controls[0].FindControl(<span style="color:rgb(0, 96, 128)">&quot;ltContainerBegin&quot;</span>);</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow-x:visible;overflow-y:visible;padding-top:0px">        ltContainerBegin.Text = <span style="color:rgb(0, 0, 255)">string</span>.Format(<span style="color:rgb(0, 96, 128)">&quot;&lt;div id='accordionBKG' style='background-color: {0};'&gt;&quot;</span>, drv[<span style="color:rgb(0, 96, 128)">&quot;PanelBackgroundHex&quot;</span>]);</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow-x:visible;overflow-y:visible;padding-top:0px"> </pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow-x:visible;overflow-y:visible;padding-top:0px">        HtmlGenericControl liItem = (HtmlGenericControl)e.Item.FindControl(<span style="color:rgb(0, 96, 128)">&quot;liItem&quot;</span>);</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow-x:visible;overflow-y:visible;padding-top:0px"> </pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow-x:visible;overflow-y:visible;padding-top:0px">        <span style="color:rgb(0, 0, 255)">if</span> (nthSlide == 0)</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow-x:visible;overflow-y:visible;padding-top:0px">        {</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow-x:visible;overflow-y:visible;padding-top:0px">            liItem.Attributes.Add(<span style="color:rgb(0, 96, 128)">&quot;class&quot;</span>, <span style="color:rgb(0, 96, 128)">&quot;accordion-top-li-first&quot;</span>);</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow-x:visible;overflow-y:visible;padding-top:0px">        }</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow-x:visible;overflow-y:visible;padding-top:0px">        <span style="color:rgb(0, 0, 255)">else</span></pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow-x:visible;overflow-y:visible;padding-top:0px">        {</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow-x:visible;overflow-y:visible;padding-top:0px">            liItem.Attributes.Add(<span style="color:rgb(0, 96, 128)">&quot;style&quot;</span>, <span style="color:rgb(0, 96, 128)">&quot;width: &quot;</span> + slideClosedWidth + <span style="color:rgb(0, 96, 128)">&quot;px&quot;</span>);</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow-x:visible;overflow-y:visible;padding-top:0px"> </pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow-x:visible;overflow-y:visible;padding-top:0px">            Literal ltArrow = (Literal)e.Item.FindControl(<span style="color:rgb(0, 96, 128)">&quot;ltArrow&quot;</span>);</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow-x:visible;overflow-y:visible;padding-top:0px">            ltArrow.Text = <span style="color:rgb(0, 96, 128)">&quot;&lt;img src='/SiteCollectionImages/but_arrow_lft_off.png' width='40px' height='40px' alt='accordion arrow' class='accordion_arrow' /&gt;&quot;</span>;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow-x:visible;overflow-y:visible;padding-top:0px"> </pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow-x:visible;overflow-y:visible;padding-top:0px">            Literal ltVerticalShadowImg = (Literal)e.Item.FindControl(<span style="color:rgb(0, 96, 128)">&quot;ltVerticalShadowImg&quot;</span>);</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow-x:visible;overflow-y:visible;padding-top:0px">            ltVerticalShadowImg.Text = <span style="color:rgb(0, 96, 128)">&quot;&lt;img src='/SiteCollectionImages/img_vert_shadow.png' alt='vertical shadow' class='accordion_vertical_shadow' /&gt;&quot;</span>;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow-x:visible;overflow-y:visible;padding-top:0px">        }</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow-x:visible;overflow-y:visible;padding-top:0px">                </pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow-x:visible;overflow-y:visible;padding-top:0px">        HtmlGenericControl liContent = (HtmlGenericControl)e.Item.FindControl(<span style="color:rgb(0, 96, 128)">&quot;liContent&quot;</span>);</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow-x:visible;overflow-y:visible;padding-top:0px">                </pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow-x:visible;overflow-y:visible;padding-top:0px">        <span style="color:rgb(0, 128, 0)">// Set background image.  If it doesn't exist, set it to the background hex value in the column</span></pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow-x:visible;overflow-y:visible;padding-top:0px">        <span style="color:rgb(0, 0, 255)">if</span> (drv[<span style="color:rgb(0, 96, 128)">&quot;PanelBackgroundImage&quot;</span>].ToString() != <span style="color:rgb(0, 0, 255)">string</span>.Empty)</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow-x:visible;overflow-y:visible;padding-top:0px">            liItem.Attributes.Add(<span style="color:rgb(0, 96, 128)">&quot;style&quot;</span>, <span style="color:rgb(0, 96, 128)">&quot;background-image: url( &quot;</span> + drv[<span style="color:rgb(0, 96, 128)">&quot;PanelBackgroundImage&quot;</span>] + <span style="color:rgb(0, 96, 128)">&quot;); background-position: bottom left; background-repeat: no-repeat;&quot;</span>);</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow-x:visible;overflow-y:visible;padding-top:0px"> </pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow-x:visible;overflow-y:visible;padding-top:0px">        <span style="color:rgb(0, 0, 255)">if</span> (drv[<span style="color:rgb(0, 96, 128)">&quot;HeaderUrl&quot;</span>].ToString() != <span style="color:rgb(0, 96, 128)">&quot;&quot;</span>)</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow-x:visible;overflow-y:visible;padding-top:0px">        {</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow-x:visible;overflow-y:visible;padding-top:0px">            Literal ltVerticalHeaderImg = (Literal)e.Item.FindControl(<span style="color:rgb(0, 96, 128)">&quot;ltVerticalHeaderImg&quot;</span>);</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow-x:visible;overflow-y:visible;padding-top:0px">            ltVerticalHeaderImg.Text = <span style="color:rgb(0, 0, 255)">string</span>.Format(<span style="color:rgb(0, 96, 128)">&quot;&lt;img src='{0}' alt='{1}' /&gt;&lt;br /&gt;&lt;br /&gt;&quot;</span>, drv[<span style="color:rgb(0, 96, 128)">&quot;HeaderUrl&quot;</span>].ToString(), drv[<span style="color:rgb(0, 96, 128)">&quot;Title&quot;</span>].ToString());</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow-x:visible;overflow-y:visible;padding-top:0px">        }</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow-x:visible;overflow-y:visible;padding-top:0px"> </pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow-x:visible;overflow-y:visible;padding-top:0px">        Literal ltSlideHtml = (Literal)e.Item.FindControl(<span style="color:rgb(0, 96, 128)">&quot;ltSlideHtml&quot;</span>);</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow-x:visible;overflow-y:visible;padding-top:0px">        ltSlideHtml.Text = drv[<span style="color:rgb(0, 96, 128)">&quot;SlideHtml&quot;</span>].ToString();</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow-x:visible;overflow-y:visible;padding-top:0px"> </pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow-x:visible;overflow-y:visible;padding-top:0px">        nthSlide++;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow-x:visible;overflow-y:visible;padding-top:0px">    }</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow-x:visible;overflow-y:visible;padding-top:0px"> </pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow-x:visible;overflow-y:visible;padding-top:0px">}</pre></div></div>
<p>There are a few things here to notice.  I used ASP:Literal controls in this webpart instead of ASP:Image controls.  This is purely a matter of preference.  You can use either.  The important thing I am doing here is dynamically building my panels and then let the CSS and jQuery handle the “magic”.  </p>
<p>I built this accordion with future addition/subtractions in mind.  In my Page_Load method, I made a determination of what the closed panel widths should be and stored that value in a global variable called “dblSlideClosedWidth”:</p>
<div id="codeSnippetWrapper" style="border-bottom-color:silver;border-bottom-width:1px;border-bottom-style:solid;text-align:left;border-left-color:silver;border-left-width:1px;border-left-style:solid;padding-bottom:4px;line-height:12pt;background-color:rgb(244, 244, 244);margin-top:20px;margin-right:0px;margin-bottom:10px;margin-left:0px;padding-left:4px;width:90%;padding-right:4px;font-family:'courier new', courier, monospace;direction:ltr;max-height:200px;font-size:8pt;overflow-x:auto;overflow-y:auto;border-top-color:silver;border-top-width:1px;border-top-style:solid;cursor:text;border-right-color:silver;border-right-width:1px;border-right-style:solid;padding-top:4px"><div id="codeSnippet" style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:rgb(244, 244, 244);padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow-x:visible;overflow-y:visible;padding-top:0px"><pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow-x:visible;overflow-y:visible;padding-top:0px">ListItems = dt;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow-x:visible;overflow-y:visible;padding-top:0px"><span style="color:rgb(0, 0, 255)">if</span> (ListItems.Rows.Count &gt; 0)</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow-x:visible;overflow-y:visible;padding-top:0px">{</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow-x:visible;overflow-y:visible;padding-top:0px">    <span style="color:rgb(0, 128, 0)">// Set widths dynamically based on how many rows are currently in the list</span></pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow-x:visible;overflow-y:visible;padding-top:0px">    <span style="color:rgb(0, 0, 255)">double</span> rows = (<span style="color:rgb(0, 0, 255)">double</span>)ListItems.Rows.Count;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow-x:visible;overflow-y:visible;padding-top:0px">    dblSlideClosedWidth = Math.Floor(dblSlideClosedContainerWidth / (rows - 1));</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow-x:visible;overflow-y:visible;padding-top:0px">    <span style="color:rgb(0, 128, 0)">// Determine Slide Width, but add 9px onto it because there is a -9px margin assigned through css</span></pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow-x:visible;overflow-y:visible;padding-top:0px">    slideClosedWidth = (<span style="color:rgb(0, 0, 255)">int</span>)dblSlideClosedWidth + 9;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow-x:visible;overflow-y:visible;padding-top:0px"> </pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow-x:visible;overflow-y:visible;padding-top:0px">    rptSlider.DataSource = ListItems;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow-x:visible;overflow-y:visible;padding-top:0px">    rptSlider.DataBind();</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow-x:visible;overflow-y:visible;padding-top:0px"> </pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow-x:visible;overflow-y:visible;padding-top:0px">}</pre></div></div>
<p>Then in the repeater event you’ll notice I set the width of each panel dynamically.  If this is not the first time through the loop (designated by the global variable “nthSlide”), I set the width panel equal to “dblSlideClosedWidth”.  The first panel is ignored, as it needs to be displayed in full width specified in the css:</p>
<div id="codeSnippetWrapper" style="border-bottom-color:silver;border-bottom-width:1px;border-bottom-style:solid;text-align:left;border-left-color:silver;border-left-width:1px;border-left-style:solid;padding-bottom:4px;line-height:12pt;background-color:rgb(244, 244, 244);margin-top:20px;margin-right:0px;margin-bottom:10px;margin-left:0px;padding-left:4px;width:90%;padding-right:4px;font-family:'courier new', courier, monospace;direction:ltr;max-height:200px;font-size:8pt;overflow-x:auto;overflow-y:auto;border-top-color:silver;border-top-width:1px;border-top-style:solid;cursor:text;border-right-color:silver;border-right-width:1px;border-right-style:solid;padding-top:4px"><div id="codeSnippet" style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:rgb(244, 244, 244);padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow-x:visible;overflow-y:visible;padding-top:0px"><pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow-x:visible;overflow-y:visible;padding-top:0px"><span style="color:rgb(0, 0, 255)">if</span> (nthSlide == 0)</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow-x:visible;overflow-y:visible;padding-top:0px">{</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow-x:visible;overflow-y:visible;padding-top:0px">    liItem.Attributes.Add(<span style="color:rgb(0, 96, 128)">&quot;class&quot;</span>, <span style="color:rgb(0, 96, 128)">&quot;accordion-top-li-first&quot;</span>);</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow-x:visible;overflow-y:visible;padding-top:0px">}</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow-x:visible;overflow-y:visible;padding-top:0px"><span style="color:rgb(0, 0, 255)">else</span></pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow-x:visible;overflow-y:visible;padding-top:0px">{</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow-x:visible;overflow-y:visible;padding-top:0px">    liItem.Attributes.Add(<span style="color:rgb(0, 96, 128)">&quot;style&quot;</span>, <span style="color:rgb(0, 96, 128)">&quot;width: &quot;</span> + slideClosedWidth + <span style="color:rgb(0, 96, 128)">&quot;px&quot;</span>);</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow-x:visible;overflow-y:visible;padding-top:0px"> </pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow-x:visible;overflow-y:visible;padding-top:0px">    Literal ltArrow = (Literal)e.Item.FindControl(<span style="color:rgb(0, 96, 128)">&quot;ltArrow&quot;</span>);</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow-x:visible;overflow-y:visible;padding-top:0px">    ltArrow.Text = <span style="color:rgb(0, 96, 128)">&quot;&lt;img src='/SiteCollectionImages/but_arrow_lft_off.png' width='40px' height='40px' alt='accordion arrow' class='accordion_arrow' /&gt;&quot;</span>;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow-x:visible;overflow-y:visible;padding-top:0px"> </pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow-x:visible;overflow-y:visible;padding-top:0px">    Literal ltVerticalShadowImg = (Literal)e.Item.FindControl(<span style="color:rgb(0, 96, 128)">&quot;ltVerticalShadowImg&quot;</span>);</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow-x:visible;overflow-y:visible;padding-top:0px">    ltVerticalShadowImg.Text = <span style="color:rgb(0, 96, 128)">&quot;&lt;img src='/SiteCollectionImages/img_vert_shadow.png' alt='vertical shadow' class='accordion_vertical_shadow' /&gt;&quot;</span>;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow-x:visible;overflow-y:visible;padding-top:0px">}</pre></div></div>
<p>Now that I got the webpart built, it’s time to talk about the css and jQuery.  To describe the css in a nutshell, I basically have a container of unordered list items (the panels) that are displayed inline.  There is a left vertical shadow to the left of each panel, so I had to also position each panel relative to each other and then set a negative margin on each panel equal to the width of the shadow image.  This creates an effect of each panel overlapping each other.</p>
<p>The jQuery portion is really where the “magic” happens.  From a usability standpoint, a user may click on the entire closed panel itself or only on the arrow on the closed panel.  So I made a determination to add the “click” event to the entire close panel.  This way, it doesn’t matter if the user clicks on the panel or the arrow…the event will still fire.  The main idea when animating the opening and closing of panels is to do 2 events in parallel:  open up the panel that was clicked on, and close the panel that is currently open.  I needed to perform these actions with the same animation duration.  If they aren’t occurring at the same time, the panels will float outside of the container, as the total widths of all panels in the container during the process will be greater than the overall container width.</p>
<p>To create the sliding effect, I made use of the jQuery animate() method.  The two key attributes is the “width” and “duration”.  Setting the “width” attribute specifies what width it needs to become.  In my case I needed to close the currently opened panel, so I set the “width” equal to a predetermined variable called “minWidth”:</p>
<div id="codeSnippetWrapper" style="border-bottom-color:silver;border-bottom-width:1px;border-bottom-style:solid;text-align:left;border-left-color:silver;border-left-width:1px;border-left-style:solid;padding-bottom:4px;line-height:12pt;background-color:rgb(244, 244, 244);margin-top:20px;margin-right:0px;margin-bottom:10px;margin-left:0px;padding-left:4px;width:90%;padding-right:4px;font-family:'courier new', courier, monospace;direction:ltr;max-height:200px;font-size:8pt;overflow-x:auto;overflow-y:auto;border-top-color:silver;border-top-width:1px;border-top-style:solid;cursor:text;border-right-color:silver;border-right-width:1px;border-right-style:solid;padding-top:4px"><div id="codeSnippet" style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:rgb(244, 244, 244);padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow-x:visible;overflow-y:visible;padding-top:0px"><pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow-x:visible;overflow-y:visible;padding-top:0px"><span style="color:rgb(0, 128, 0)">// Close Previously Clicked Panel before Opening the current clicked panel</span></pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow-x:visible;overflow-y:visible;padding-top:0px"><span style="color:rgb(0, 0, 255)">if</span> (lastOpenedBlock.index() &gt; 0)</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow-x:visible;overflow-y:visible;padding-top:0px">{</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow-x:visible;overflow-y:visible;padding-top:0px">    <span style="color:rgb(0, 128, 0)">// Hide last clicked element</span></pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow-x:visible;overflow-y:visible;padding-top:0px">    $(lastOpenedBlock).animate(</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow-x:visible;overflow-y:visible;padding-top:0px">        {width: minWidth}, </pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow-x:visible;overflow-y:visible;padding-top:0px">        {queue:<span style="color:rgb(0, 0, 255)">true</span>, duration:1000, </pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow-x:visible;overflow-y:visible;padding-top:0px">            complete: <span style="color:rgb(0, 0, 255)">function</span>()</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow-x:visible;overflow-y:visible;padding-top:0px">            {</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow-x:visible;overflow-y:visible;padding-top:0px">                closeAnimationIsRunning = <span style="color:rgb(0, 0, 255)">false</span>;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow-x:visible;overflow-y:visible;padding-top:0px">            },</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow-x:visible;overflow-y:visible;padding-top:0px">            step: <span style="color:rgb(0, 0, 255)">function</span>()</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow-x:visible;overflow-y:visible;padding-top:0px">            {</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow-x:visible;overflow-y:visible;padding-top:0px">            }</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow-x:visible;overflow-y:visible;padding-top:0px">        }</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow-x:visible;overflow-y:visible;padding-top:0px">    );</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow-x:visible;overflow-y:visible;padding-top:0px">}</pre></div></div>
<p>Then I opened the selected panel using the same animate() method, but this is using a predetermined value called “maxWidth”:</p>
<div id="codeSnippetWrapper" style="border-bottom-color:silver;border-bottom-width:1px;border-bottom-style:solid;text-align:left;border-left-color:silver;border-left-width:1px;border-left-style:solid;padding-bottom:4px;line-height:12pt;background-color:rgb(244, 244, 244);margin-top:20px;margin-right:0px;margin-bottom:10px;margin-left:0px;padding-left:4px;width:90%;padding-right:4px;font-family:'courier new', courier, monospace;direction:ltr;max-height:200px;font-size:8pt;overflow-x:auto;overflow-y:auto;border-top-color:silver;border-top-width:1px;border-top-style:solid;cursor:text;border-right-color:silver;border-right-width:1px;border-right-style:solid;padding-top:4px"><div id="codeSnippet" style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:rgb(244, 244, 244);padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow-x:visible;overflow-y:visible;padding-top:0px"><pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow-x:visible;overflow-y:visible;padding-top:0px">$(currentBlock).animate(</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow-x:visible;overflow-y:visible;padding-top:0px">    {width: minWidth}, </pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow-x:visible;overflow-y:visible;padding-top:0px">    {queue:<span style="color:rgb(0, 0, 255)">true</span>, duration:1000, </pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow-x:visible;overflow-y:visible;padding-top:0px">        complete: <span style="color:rgb(0, 0, 255)">function</span>()</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow-x:visible;overflow-y:visible;padding-top:0px">        {</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow-x:visible;overflow-y:visible;padding-top:0px">            closeAnimationIsRunning = <span style="color:rgb(0, 0, 255)">false</span>;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow-x:visible;overflow-y:visible;padding-top:0px">        },</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow-x:visible;overflow-y:visible;padding-top:0px">        step: <span style="color:rgb(0, 0, 255)">function</span>()</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow-x:visible;overflow-y:visible;padding-top:0px">        {</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow-x:visible;overflow-y:visible;padding-top:0px">        }</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow-x:visible;overflow-y:visible;padding-top:0px">    }</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow-x:visible;overflow-y:visible;padding-top:0px">);</pre></div></div>
<p>The “minWidth” and “maxWidth” variables are determined dynamically based on the first panel as this is the space we need to fill.  It is necessary to close a panel before opening another because these are sequential events.  If you begin to open a panel first, the combined total of panel widths will exceed the container widths and you will see an undesirable effect of the panels floating outside of the container.</p>
<p>One thing I had to consider was the possibility that the user may click on multiple panels during transition.  I found that during this scenario, there was a period of time when the page seemed to play “catch up”…the panels appeared to have a life of their own (opening and closing multiple times after the initial click).  To overcome this, I set two variables called “openAnimationIsRunning” and “closeAnimationIsRunning” that get set when the user clicks on a panel.  Within my “click” event, I first check these variables.  If either are true, then I stop the “click” event.  This prevents the user from clicking multiple panels while the animation is in motion:</p>
<div id="codeSnippetWrapper" style="border-bottom-color:silver;border-bottom-width:1px;border-bottom-style:solid;text-align:left;border-left-color:silver;border-left-width:1px;border-left-style:solid;padding-bottom:4px;line-height:12pt;background-color:rgb(244, 244, 244);margin-top:20px;margin-right:0px;margin-bottom:10px;margin-left:0px;padding-left:4px;width:90%;padding-right:4px;font-family:'courier new', courier, monospace;direction:ltr;max-height:200px;font-size:8pt;overflow-x:auto;overflow-y:auto;border-top-color:silver;border-top-width:1px;border-top-style:solid;cursor:text;border-right-color:silver;border-right-width:1px;border-right-style:solid;padding-top:4px"><div id="codeSnippet" style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:rgb(244, 244, 244);padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow-x:visible;overflow-y:visible;padding-top:0px"><pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow-x:visible;overflow-y:visible;padding-top:0px">$(<span style="color:rgb(0, 96, 128)">&quot;.accordion-vert-header&quot;</span>).click(</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow-x:visible;overflow-y:visible;padding-top:0px">    <span style="color:rgb(0, 0, 255)">function</span>()</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow-x:visible;overflow-y:visible;padding-top:0px">    {    </pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow-x:visible;overflow-y:visible;padding-top:0px">        <span style="color:rgb(0, 128, 0)">// This allows one animation to run at a time.</span></pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow-x:visible;overflow-y:visible;padding-top:0px">        <span style="color:rgb(0, 0, 255)">if</span> (openAnimationIsRunning || closeAnimationIsRunning)</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow-x:visible;overflow-y:visible;padding-top:0px">        {</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow-x:visible;overflow-y:visible;padding-top:0px">            <span style="color:rgb(0, 0, 255)">return</span>;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow-x:visible;overflow-y:visible;padding-top:0px">        }</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow-x:visible;overflow-y:visible;padding-top:0px">        </pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow-x:visible;overflow-y:visible;padding-top:0px">        openAnimationIsRunning = <span style="color:rgb(0, 0, 255)">true</span>;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow-x:visible;overflow-y:visible;padding-top:0px">        closeAnimationIsRunning = <span style="color:rgb(0, 0, 255)">true</span>;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow-x:visible;overflow-y:visible;padding-top:0px">}</pre></div></div>
<p>The last consideration was what happens to the content within the panels during the transition.  I found that when I animated the panel opened/closed, the content within the panel needed to also animate open/close.  To solve this, I found that a nice fade worked well:</p>
<div id="codeSnippetWrapper" style="border-bottom-color:silver;border-bottom-width:1px;border-bottom-style:solid;text-align:left;border-left-color:silver;border-left-width:1px;border-left-style:solid;padding-bottom:4px;line-height:12pt;background-color:rgb(244, 244, 244);margin-top:20px;margin-right:0px;margin-bottom:10px;margin-left:0px;padding-left:4px;width:90%;padding-right:4px;font-family:'courier new', courier, monospace;direction:ltr;max-height:200px;font-size:8pt;overflow-x:auto;overflow-y:auto;border-top-color:silver;border-top-width:1px;border-top-style:solid;cursor:text;border-right-color:silver;border-right-width:1px;border-right-style:solid;padding-top:4px"><div id="codeSnippet" style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:rgb(244, 244, 244);padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow-x:visible;overflow-y:visible;padding-top:0px"><pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow-x:visible;overflow-y:visible;padding-top:0px"><span style="color:rgb(0, 128, 0)">// Open current block content</span></pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow-x:visible;overflow-y:visible;padding-top:0px">$(currentBlock).children(<span style="color:rgb(0, 96, 128)">'.li-content'</span>).children(<span style="color:rgb(0, 96, 128)">'.accordion-html-content'</span>).fadeIn();</pre></div></div>
<p>Accordions are a great way to consolidate content using minimal space, while creating an interactive experience for your users.  I provided a complex use of an accordion in my example, but I hope it allowed you to understand the elements and the process involved when building your own!</p>
<p>If you’d like to <a href="/Blog/Documents/jQueryAccordionWithSharePoint2010List.zip" target="_blank">download the code</a>, I am providing the webpart, jQuery, css, and list template I used in my example.</p></div></div></div>
<div><b>Category:</b> <a onclick="OpenPopUpPage('http://www.synergyonline.com/Blog/_layouts/listform.aspx?PageType=4&ListId={BEBD6B7C-8EDF-4976-8627-9238AFF8A903}&ID=4&RootFolder=*', RefreshPage); return false;" href="http://www.synergyonline.com/Blog/_layouts/listform.aspx?PageType=4&ListId={BEBD6B7C-8EDF-4976-8627-9238AFF8A903}&ID=4&RootFolder=*">Development</a>; <a onclick="OpenPopUpPage('http://www.synergyonline.com/Blog/_layouts/listform.aspx?PageType=4&ListId={BEBD6B7C-8EDF-4976-8627-9238AFF8A903}&ID=18&RootFolder=*', RefreshPage); return false;" href="http://www.synergyonline.com/Blog/_layouts/listform.aspx?PageType=4&ListId={BEBD6B7C-8EDF-4976-8627-9238AFF8A903}&ID=18&RootFolder=*">Branding</a>; <a onclick="OpenPopUpPage('http://www.synergyonline.com/Blog/_layouts/listform.aspx?PageType=4&ListId={BEBD6B7C-8EDF-4976-8627-9238AFF8A903}&ID=13&RootFolder=*', RefreshPage); return false;" href="http://www.synergyonline.com/Blog/_layouts/listform.aspx?PageType=4&ListId={BEBD6B7C-8EDF-4976-8627-9238AFF8A903}&ID=13&RootFolder=*">SharePoint</a></div>
<div><b>Published:</b> 11/4/2011 3:18 PM</div>
<div><b>Author:</b> <a href="http://www.synergyonline.com/company/Profiles/Pages/TylerBockler.aspx">Tyler Bockler</a></div>
<div><b>PageKeywords:</b> SharePoint Development, SharePoint Implementation, interactive web design</div>
<div><b>PageTitle:</b> Building an Accordion with jQuery and SharePoint 2010</div>
<div><b>PageDescription:</b> Accordions are a great way to consolidate content using minimal space, while creating an interactive experience for your users. I provided a complex use of an accordion in my example, but I hope it allowed you to understand the elements and the process.</div>
<div><b>Attachments:</b> <a href="http://www.synergyonline.com/Blog/Lists/Posts/Attachments/158/AccordionClosed_2_68167AA8.png">http://www.synergyonline.com/Blog/Lists/Posts/Attachments/158/AccordionClosed_2_68167AA8.png</a><br /><a href="http://www.synergyonline.com/Blog/Lists/Posts/Attachments/158/AccordionClosed_thumb_68167AA8.png">http://www.synergyonline.com/Blog/Lists/Posts/Attachments/158/AccordionClosed_thumb_68167AA8.png</a><br /><a href="http://www.synergyonline.com/Blog/Lists/Posts/Attachments/158/AccordionOpen_2_68167AA8.png">http://www.synergyonline.com/Blog/Lists/Posts/Attachments/158/AccordionOpen_2_68167AA8.png</a><br /><a href="http://www.synergyonline.com/Blog/Lists/Posts/Attachments/158/AccordionOpen_thumb_68167AA8.png">http://www.synergyonline.com/Blog/Lists/Posts/Attachments/158/AccordionOpen_thumb_68167AA8.png</a><br /><a href="http://www.synergyonline.com/Blog/Lists/Posts/Attachments/158/ListSchema_2_68167AA8.png">http://www.synergyonline.com/Blog/Lists/Posts/Attachments/158/ListSchema_2_68167AA8.png</a><br /><a href="http://www.synergyonline.com/Blog/Lists/Posts/Attachments/158/ListSchema_thumb_68167AA8.png">http://www.synergyonline.com/Blog/Lists/Posts/Attachments/158/ListSchema_thumb_68167AA8.png</a><br /><a href=""></a></div>
]]></description>
      <author>System Account</author>
      <category>Development; Branding; SharePoint</category>
      <pubDate>Fri, 04 Nov 2011 19:18:05 GMT</pubDate>
      <guid isPermaLink="true">http://www.synergyonline.com/Blog/Lists/Posts/ViewPost.aspx?ID=158</guid>
    </item>
    <item>
      <title>SharePoint Permission Levels: A PowerShell Exploration</title>
      <link>http://www.synergyonline.com/Blog/Lists/Posts/ViewPost.aspx?ID=162</link>
      <description><![CDATA[<div><b>Body:</b> <div class="ExternalClass88E4A4C4A29A4FFE86979941BD9F8B44"> <p>This article shows how SharePoint permission levels can be modified using PowerShell.  The article focuses mainly on <a href="/sharepoint/Pages/default.aspx" title="Synergy SharePoint Solutions">SharePoint 2010​</a>, but the concepts, and some of the actual code, are applicable to SharePoint 2007.  </p>
 <p>Most needs for permission level management can be met through the use of the web browser interface.  The web browser provides a console for creating, copying, and deleting permission levels, and for adjusting the permissions that are associated.  However, the ability to control the selection of the actual granular permissions is limited.  This is where the use of PowerShell becomes a necessity, allowing administrators to adjust the permissions associated with a permission level in an unencumbered fashion.  </p>
 <p>One caveat.  The discussion on permissions and permissions levels is an involved one.  The further inclusion of groups, securable objects, inheritance, and other facets of the SharePoint security infrastructure, from a PowerShell perspective, is not detailed here.  A brief overview of how permission levels interact with groups and securable object is given below, but is not elaborated upon further.  This blog is meant for perusal over a cup of coffee…</p>
 <h2>Permission Level Primer</h2>
 <p>A significant challenge in managing permissions in Information Technology environments is the ability for a technology to both provide a fine grained level of control when necessary, and at the same time provide a mechanism for manageability and usability.  SharePoint meets this challenge through the employment of <a href="http://technet.microsoft.com/en-us/library/cc288074.aspx" target="_blank">permissions and permission levels.</a>  Permissions are the fine grained constructs that define exactly what a user can do on a list or site.  For instance there is a permissions that allows for adding a list item, another permission for editing a list item, and another permission for viewing a list item, and on.   </p>
 <p>Permission levels are an aggregation of permissions into a understandable and usable representations of desired functionality.  In other words, a permission level allows for the grouping of permissions into something that can be easily applied in SharePoint.  In fact, <em>only permission levels can be used to provide access in SharePoint</em>.  Permissions cannot be directly used for the granting of permission to a securable object.  </p>
 <p>Below is shown the permissions associated with the three main permission levels typically used in SharePoint collaborations environments</p>
 <h3>Permissions for the Read Permission Level</h3>
 <p><a href="/Blog/Lists/Posts/Attachments/162/One_thumb_6D125EF1_2_266406E3.png"><img width="543" height="121" title="One_thumb_6D125EF1" alt="One_thumb_6D125EF1" src="/Blog/Lists/Posts/Attachments/162/One_thumb_6D125EF1_thumb_266406E3.png" border="0" style="border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;padding-right:0px;padding-left:0px;display:inline;background-image:none" /></a> </p>
 <h3>Permissions for the Contribute Permission Level</h3>
 <p><a href="/Blog/Lists/Posts/Attachments/162/Two_thumb_6D125EF1_2_266406E3.png"><img width="555" height="153" title="Two_thumb_6D125EF1" alt="Two_thumb_6D125EF1" src="/Blog/Lists/Posts/Attachments/162/Two_thumb_6D125EF1_thumb_266406E3.png" border="0" style="border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;padding-right:0px;padding-left:0px;display:inline;background-image:none" /></a> </p>
 <h3>Permissions for the Full Control Permission Level</h3>
 <p><a href="/Blog/Lists/Posts/Attachments/162/Three_thumb_6D125EF1_2_266406E3.png"><img width="566" height="301" title="Three_thumb_6D125EF1" alt="Three_thumb_6D125EF1" src="/Blog/Lists/Posts/Attachments/162/Three_thumb_6D125EF1_thumb_266406E3.png" border="0" style="border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;padding-right:0px;padding-left:0px;display:inline;background-image:none" /></a> </p>
 <p> </p>
 <p>A permission level serve as the linkage between a security principal (such as a user or group) and a securable object (such as a site, list, or item) in SharePoint.  It mediates the access a security principle has to an object.  The following graphic depicts this relationship.</p>
 <p><a href="/Blog/Lists/Posts/Attachments/162/Four_thumb_6D125EF1_2_266406E3.png"><img width="329" height="215" title="Four_thumb_6D125EF1" alt="Four_thumb_6D125EF1" src="/Blog/Lists/Posts/Attachments/162/Four_thumb_6D125EF1_thumb_266406E3.png" border="0" style="border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;padding-right:0px;padding-left:0px;display:inline;background-image:none" /></a> </p>
 <p> </p>
 <p>A final note on permission levels and permissions from an architectural point of view.  Permissions are hard coded into the SharePoint system and cannot be extended.  They are defined in an enumeration of the type Microsoft.SharePoint.SPBasePermissions.  </p>
 <p>Permission levels are initially created and defined at the top-level site in a site collection.  They are inherited from this site in all other sites in the site hierarchy.  This permission level inheritance cannot be broken via the web interface, but it can be broken using PowerShell.  Note that permission level inheritance is different from the security permission inheritance, which also originates with the top-level site in the site collection.  Security permission inheritance can be broken via the web interface.</p>
 <p>Permission levels can be copied, created, and deleted by default at the top-level site.  <em>Never</em> delete any of the system generated permission levels.  Bad things can happen.</p>
 <h2>PowerShell, Permission Levels, and Granular Permissions</h2>
 <hr />
  <p>A prerequisite to using PowerShell with SharePoint is to have both the permissions for executing commands and the SharePoint snap in loaded.  This exploration is left to the reader.</p>
 <hr />
 So what is it, as related to permission levels, that PowerShell gives you and the web interface does not:  <ol> <li>The ability to break permission level inheritance.  </li>
<li>The ability to craft a permission level that bypasses the permission dependencies enforced by the web interface.</li></ol>
 <p>Prior to exploring these two pieces of functionality, let’s create a use case that can illustrate these two scenarios.  First, we will define a subsite named HR in a site collection where we require specialized security on a library.  We want HR to have a specialized permission level, but do not want other sites, such as legal and accounting, to have use of this permission level.  Note that <em>subsite to HR</em> will have access to this permission level.  Second, we want a library (Resume Library) in HR where users can add content (resumes) via upload , but cannot view other resumes.  These are the two conditions we need to meet.</p>
 <hr />
  <p><strong>Note</strong> that creating a similar scenario, where each user has exclusive access to his or her content, is relatively easy to do with a list.   This entails changing a couple of items under Advanced Settings on the list settings page.  This control is not available with a library, and can only marginally be duplicated with PowerShell.   </p>
 <hr />
  <h3>Changing Site Permission Level Inheritance</h3>
 <p>In order to create a permission level at the HR site we will first need to break the permission level inheritance.  This is done as follows:</p>
 <ul> <li> <h4>Get a reference to the HR web site in PowerShell</h4></li></ul>
 <blockquote> <p>$HR = get-spweb http://www.fictionalcompany.com/hr</p></blockquote>
 <ul> <li> <h4>Explore the methods and properties of the site</h4>
 <p>$HR | Get-Member</p></li></ul>
 <blockquote> <h4><a href="/Blog/Lists/Posts/Attachments/162/Five_thumb_6D125EF1_2_266406E3.png"><img width="372" height="71" title="Five_thumb_6D125EF1" alt="Five_thumb_6D125EF1" src="/Blog/Lists/Posts/Attachments/162/Five_thumb_6D125EF1_thumb_266406E3.png" border="0" style="border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;padding-right:0px;padding-left:0px;display:inline;background-image:none" /></a></h4></blockquote>
 <ul> <li> <h4>Review some of the role definitions</h4></li></ul>
 <blockquote> <p>$HR.RoleDefinitions</p>
 <p><a href="/Blog/Lists/Posts/Attachments/162/Six_thumb_5820DC7E_2_266406E3.png"><img width="460" height="122" title="Six_thumb_5820DC7E" alt="Six_thumb_5820DC7E" src="/Blog/Lists/Posts/Attachments/162/Six_thumb_5820DC7E_thumb_266406E3.png" border="0" style="border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;padding-right:0px;padding-left:0px;display:inline;background-image:none" /></a> </p></blockquote>
 <ul> <li> <h4>Break role inheritance</h4>
 <p>$HR.RoleDefinitions.BreakInheritance($true, $true)</p>
 <p>$HR.Update()</p></li></ul>
 <p>At this point the HR site is now able to have unique permission levels assigned to it.  Really, the first command and the last two commands are all it took to remove the permission level inheritance.</p>
 <h3>Creating a Permission Level For Adding But Not Viewing Library Items</h3>
 <p>The permission level that we create will allow for a user to add an item to the Resume Library but not view other resumes.  This cannot be done via the web interface.  When using the web interface for managing permissions for a permission level, the <strong>Add Item</strong> permission is dependent on the <strong>View Item</strong> permission.  This means that the selection of the <strong>Add Item</strong> permission automatically enables the <strong>View Item</strong> permission.  This dependency exists for other relate permissions as well, such as <strong>Edit Items</strong>, <strong>Delete Items</strong>, and <strong>Approve Items.</strong></p>
 <p> </p>
 <blockquote> <p><a href="/Blog/Lists/Posts/Attachments/162/Seven_thumb_5820DC7E_2_266406E3.png"><img width="293" height="243" title="Seven_thumb_5820DC7E" alt="Seven_thumb_5820DC7E" src="/Blog/Lists/Posts/Attachments/162/Seven_thumb_5820DC7E_thumb_266406E3.png" border="0" style="border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;padding-right:0px;padding-left:0px;display:inline;background-image:none" /></a> </p>
 <p> </p></blockquote>
 <p>So to solve this issue, we will use PowerShell to craft a permission that is exactly what we need.</p>
 <ul> <li> <h4>Create a new “permission level” object – which is a role definition</h4></li></ul>
 <blockquote> <p>$Role = new-object Microsoft.SharePoint.SPRoleDefinition</p></blockquote>
 <ul> <li> <h4>View the elements of the role definition</h4>
 <p>$Role | Format-List</p></li></ul>
 <blockquote> <p><a href="/Blog/Lists/Posts/Attachments/162/Eight_thumb_5820DC7E_2_266406E3.png"><img width="492" height="126" title="Eight_thumb_5820DC7E" alt="Eight_thumb_5820DC7E" src="/Blog/Lists/Posts/Attachments/162/Eight_thumb_5820DC7E_thumb_266406E3.png" border="0" style="border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;padding-right:0px;padding-left:0px;display:inline;background-image:none" /></a> </p></blockquote>
 <ul> <li> <h4>Add a role name and description to the permission level</h4></li></ul>
 <blockquote> <p>$Role.Name = “Add Resume”</p></blockquote>
 <blockquote> <p>$Role.Description = “For allowing the addition of content to a library, but not the viewing of content”</p></blockquote>
 <ul> <li> <h4>Add permissions to the permission level</h4></li></ul>
 <blockquote> <p>$Role.BasePermissions=”AddListItems, ViewFormPages, Open”</p>
 <p>$HR.RoleDefinitions.Add($Role)</p>
 <p>$HR.Update()</p></blockquote>
 <p>At this point the HR site now has a new role named “Add Resume”.  The explanation for the three permissions that were added are:</p>
 <ul> <li>AddListItems – allows for a user to add items to a list or library  </li>
<li>ViewFormPages – allows for a user to view pages associated with a list of library  </li>
<li>Open – allows a user to view the contents of a SharePoint site </li></ul>
 <p> </p>
 <p>The next step is to add the new permission level to the library in question.</p>
 <h3>Provisioning the Human Resource Library with the “Add Resume” permission</h3>
 <p>This involves the rather straight forward application of SharePoint permissions.  This involves the following:</p>
 <ul> <li>Navigate to the HR site and open the Resumes library  </li>
<li>Select the permissions icon on the ribbon  </li>
<li>Remove permission inheritance  </li>
<li>Add the users that will have the “Add Resume” permission level</li></ul>
 <p> </p>
 <blockquote> <p><a href="/Blog/Lists/Posts/Attachments/162/Nine_thumb_5820DC7E_2_266406E3.png"><img width="513" height="163" title="Nine_thumb_5820DC7E" alt="Nine_thumb_5820DC7E" src="/Blog/Lists/Posts/Attachments/162/Nine_thumb_5820DC7E_thumb_266406E3.png" border="0" style="border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;padding-right:0px;padding-left:0px;display:inline;background-image:none" /></a> </p></blockquote>
 <h3> </h3>
 <h3>Test the Permission Level</h3>
 <p>So what is the final outcome.  Below is a depiction of a user uploading a document to the Resumes Library.  The following graphics show the resulting view of the library.</p>
 <ul> <li><strong>Upload of resume by Laura Callahan, who has the “Add Resume” permission level</strong></li></ul>
 <p><strong> </strong></p>
 <blockquote> <p><a href="/Blog/Lists/Posts/Attachments/162/Ten_thumb_5820DC7E_2_266406E3.png"><img width="486" height="193" title="Ten_thumb_5820DC7E" alt="Ten_thumb_5820DC7E" src="/Blog/Lists/Posts/Attachments/162/Ten_thumb_5820DC7E_thumb_266406E3.png" border="0" style="border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;padding-right:0px;padding-left:0px;display:inline;background-image:none" /></a> </p></blockquote>
 <p><strong> </strong></p>
 <ul> <li><strong>The view by Laura after she uploads her resume</strong></li></ul>
 <p><strong> </strong></p>
 <blockquote> <p><a href="/Blog/Lists/Posts/Attachments/162/11_thumb_5820DC7E_2_266406E3.png"><img width="477" height="177" title="11_thumb_5820DC7E" alt="11_thumb_5820DC7E" src="/Blog/Lists/Posts/Attachments/162/11_thumb_5820DC7E_thumb_266406E3.png" border="0" style="border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;padding-right:0px;padding-left:0px;display:inline;background-image:none" /></a> </p></blockquote>
 <p> </p>
 <ul> <li><strong>The view by the Site Administrator after the upload, looking at the same library</strong></li></ul>
 <p><strong> </strong></p>
 <blockquote> <p><a href="/Blog/Lists/Posts/Attachments/162/12_thumb_5820DC7E_2_266406E3.png"><img width="492" height="138" title="12_thumb_5820DC7E" alt="12_thumb_5820DC7E" src="/Blog/Lists/Posts/Attachments/162/12_thumb_5820DC7E_thumb_266406E3.png" border="0" style="border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;padding-right:0px;padding-left:0px;display:inline;background-image:none" /></a> </p></blockquote>
 <p> </p>
 <h2>Final Comment</h2>
 <p>This article was meant to show the way by which a very specific set of permissions could be applied to a library for meeting a specific business need.  PowerShell is the enabling technology for such a scenario.</p>
 <p>The caveat to this type of adventure is: permissions are very fickle, and the application (or misapplication) of permissions can result in unwanted side effects.  For instance, in the present scenario there is not an affective means to allow for multiple uploads of the same document without modifying the context of the scenario.  If a user uploads the same document twice, an error is thrown, stating that insufficient  permissions are being used.  Of course there are workarounds for such an issue, by using workflow technologies or content routing to name two options.  Perhaps those are subjects for another blog.</p></div></div>
<div><b>Category:</b> <a onclick="OpenPopUpPage('http://www.synergyonline.com/Blog/_layouts/listform.aspx?PageType=4&ListId={BEBD6B7C-8EDF-4976-8627-9238AFF8A903}&ID=13&RootFolder=*', RefreshPage); return false;" href="http://www.synergyonline.com/Blog/_layouts/listform.aspx?PageType=4&ListId={BEBD6B7C-8EDF-4976-8627-9238AFF8A903}&ID=13&RootFolder=*">SharePoint</a></div>
<div><b>Published:</b> 11/17/2011 12:53 PM</div>
<div><b>Author:</b> <a href="http://www.synergyonline.com/company/Profiles/Pages/ChrisWelch.aspx">Chris Welch</a></div>
<div><b>PageKeywords:</b> SharePoint Expert, SharePoint Development, SharePoint Consultant</div>
<div><b>PageTitle:</b> SharePoint Permission Levels: A PowerShell Exploration</div>
<div><b>PageDescription:</b> SharePoint Expert shows the way by which a very specific set of permissions could be applied to a library for meeting a specific business need</div>
<div><b>Attachments:</b> <a href="http://www.synergyonline.com/Blog/Lists/Posts/Attachments/162/11_thumb_5820DC7E_2_266406E3.png">http://www.synergyonline.com/Blog/Lists/Posts/Attachments/162/11_thumb_5820DC7E_2_266406E3.png</a><br /><a href="http://www.synergyonline.com/Blog/Lists/Posts/Attachments/162/11_thumb_5820DC7E_thumb_266406E3.png">http://www.synergyonline.com/Blog/Lists/Posts/Attachments/162/11_thumb_5820DC7E_thumb_266406E3.png</a><br /><a href="http://www.synergyonline.com/Blog/Lists/Posts/Attachments/162/12_thumb_5820DC7E_2_266406E3.png">http://www.synergyonline.com/Blog/Lists/Posts/Attachments/162/12_thumb_5820DC7E_2_266406E3.png</a><br /><a href="http://www.synergyonline.com/Blog/Lists/Posts/Attachments/162/12_thumb_5820DC7E_thumb_266406E3.png">http://www.synergyonline.com/Blog/Lists/Posts/Attachments/162/12_thumb_5820DC7E_thumb_266406E3.png</a><br /><a href="http://www.synergyonline.com/Blog/Lists/Posts/Attachments/162/Eight_thumb_5820DC7E_2_266406E3.png">http://www.synergyonline.com/Blog/Lists/Posts/Attachments/162/Eight_thumb_5820DC7E_2_266406E3.png</a><br /><a href="http://www.synergyonline.com/Blog/Lists/Posts/Attachments/162/Eight_thumb_5820DC7E_thumb_266406E3.png">http://www.synergyonline.com/Blog/Lists/Posts/Attachments/162/Eight_thumb_5820DC7E_thumb_266406E3.png</a><br /><a href="http://www.synergyonline.com/Blog/Lists/Posts/Attachments/162/Five_thumb_6D125EF1_2_266406E3.png">http://www.synergyonline.com/Blog/Lists/Posts/Attachments/162/Five_thumb_6D125EF1_2_266406E3.png</a><br /><a href="http://www.synergyonline.com/Blog/Lists/Posts/Attachments/162/Five_thumb_6D125EF1_thumb_266406E3.png">http://www.synergyonline.com/Blog/Lists/Posts/Attachments/162/Five_thumb_6D125EF1_thumb_266406E3.png</a><br /><a href="http://www.synergyonline.com/Blog/Lists/Posts/Attachments/162/Four_thumb_6D125EF1_2_266406E3.png">http://www.synergyonline.com/Blog/Lists/Posts/Attachments/162/Four_thumb_6D125EF1_2_266406E3.png</a><br /><a href="http://www.synergyonline.com/Blog/Lists/Posts/Attachments/162/Four_thumb_6D125EF1_thumb_266406E3.png">http://www.synergyonline.com/Blog/Lists/Posts/Attachments/162/Four_thumb_6D125EF1_thumb_266406E3.png</a><br /><a href="http://www.synergyonline.com/Blog/Lists/Posts/Attachments/162/Nine_thumb_5820DC7E_2_266406E3.png">http://www.synergyonline.com/Blog/Lists/Posts/Attachments/162/Nine_thumb_5820DC7E_2_266406E3.png</a><br /><a href="http://www.synergyonline.com/Blog/Lists/Posts/Attachments/162/Nine_thumb_5820DC7E_thumb_266406E3.png">http://www.synergyonline.com/Blog/Lists/Posts/Attachments/162/Nine_thumb_5820DC7E_thumb_266406E3.png</a><br /><a href="http://www.synergyonline.com/Blog/Lists/Posts/Attachments/162/One_thumb_6D125EF1_2_266406E3.png">http://www.synergyonline.com/Blog/Lists/Posts/Attachments/162/One_thumb_6D125EF1_2_266406E3.png</a><br /><a href="http://www.synergyonline.com/Blog/Lists/Posts/Attachments/162/One_thumb_6D125EF1_thumb_266406E3.png">http://www.synergyonline.com/Blog/Lists/Posts/Attachments/162/One_thumb_6D125EF1_thumb_266406E3.png</a><br /><a href="http://www.synergyonline.com/Blog/Lists/Posts/Attachments/162/Seven_thumb_5820DC7E_2_266406E3.png">http://www.synergyonline.com/Blog/Lists/Posts/Attachments/162/Seven_thumb_5820DC7E_2_266406E3.png</a><br /><a href="http://www.synergyonline.com/Blog/Lists/Posts/Attachments/162/Seven_thumb_5820DC7E_thumb_266406E3.png">http://www.synergyonline.com/Blog/Lists/Posts/Attachments/162/Seven_thumb_5820DC7E_thumb_266406E3.png</a><br /><a href="http://www.synergyonline.com/Blog/Lists/Posts/Attachments/162/Six_thumb_5820DC7E_2_266406E3.png">http://www.synergyonline.com/Blog/Lists/Posts/Attachments/162/Six_thumb_5820DC7E_2_266406E3.png</a><br /><a href="http://www.synergyonline.com/Blog/Lists/Posts/Attachments/162/Six_thumb_5820DC7E_thumb_266406E3.png">http://www.synergyonline.com/Blog/Lists/Posts/Attachments/162/Six_thumb_5820DC7E_thumb_266406E3.png</a><br /><a href="http://www.synergyonline.com/Blog/Lists/Posts/Attachments/162/Ten_thumb_5820DC7E_2_266406E3.png">http://www.synergyonline.com/Blog/Lists/Posts/Attachments/162/Ten_thumb_5820DC7E_2_266406E3.png</a><br /><a href="http://www.synergyonline.com/Blog/Lists/Posts/Attachments/162/Ten_thumb_5820DC7E_thumb_266406E3.png">http://www.synergyonline.com/Blog/Lists/Posts/Attachments/162/Ten_thumb_5820DC7E_thumb_266406E3.png</a><br /><a href="http://www.synergyonline.com/Blog/Lists/Posts/Attachments/162/Three_thumb_6D125EF1_2_266406E3.png">http://www.synergyonline.com/Blog/Lists/Posts/Attachments/162/Three_thumb_6D125EF1_2_266406E3.png</a><br /><a href="http://www.synergyonline.com/Blog/Lists/Posts/Attachments/162/Three_thumb_6D125EF1_thumb_266406E3.png">http://www.synergyonline.com/Blog/Lists/Posts/Attachments/162/Three_thumb_6D125EF1_thumb_266406E3.png</a><br /><a href="http://www.synergyonline.com/Blog/Lists/Posts/Attachments/162/Two_thumb_6D125EF1_2_266406E3.png">http://www.synergyonline.com/Blog/Lists/Posts/Attachments/162/Two_thumb_6D125EF1_2_266406E3.png</a><br /><a href="http://www.synergyonline.com/Blog/Lists/Posts/Attachments/162/Two_thumb_6D125EF1_thumb_266406E3.png">http://www.synergyonline.com/Blog/Lists/Posts/Attachments/162/Two_thumb_6D125EF1_thumb_266406E3.png</a><br /><a href=""></a></div>
]]></description>
      <author>System Account</author>
      <category>SharePoint</category>
      <pubDate>Fri, 18 Nov 2011 17:53:54 GMT</pubDate>
      <guid isPermaLink="true">http://www.synergyonline.com/Blog/Lists/Posts/ViewPost.aspx?ID=162</guid>
    </item>
    <item>
      <title>SharePoint Search results not visible for users</title>
      <link>http://www.synergyonline.com/Blog/Lists/Posts/ViewPost.aspx?ID=163</link>
      <description><![CDATA[<div><b>Body:</b> <div class="ExternalClass76C29486988140A797029093731F127B"><div style="width:750px"> <p>I recently encountered this problem for one of my clients. As an Administrator search results would be returned however for standard users there would be no search results.  </p>
<p>The first step to diagnose the problem is to observe the trace logs while doing a search as a standard user. If you have not done this before I highly recommend the <a target="_blank" href="http://archive.msdn.microsoft.com/ULSViewer">ulsviewer.exe</a> application. This will allow you to observe the tracelogs in real time and also filter down to the SharePoint server search product to look for the error. Also ensure that your diagnostic level is set to an appropriate level of verbosity. For this we would need HIGH as a minimum logging level.  </p>
<p>The error generated in the SharePoint trace logs when running as a normal user is:</p>
<pre style="width:750px"><p>AuthzInitializeContextFromSid failed with ERROR_ACCESS_DENIED. This error indicates </p>
<p>that the account under which this process is executing may not have read access to the </p>
<p>tokenGroupsGlobalAndUniversal attribute on the querying user's Active Directory object. </p>
<p>Query results which require non-Claims Windows authorization will not be returned to </p>
<p>this querying user.</p></pre>
<p>So what does this error mean? When a search query is executed the search service needs to determine what permissions the user who ran query has and thus security trim the search results. To determine this the active directory attribute tokenGroupsGlobalAndUniversal is queried. This attribute is dynamically generated when it is read. 
</p>
<p>In a common <a href="/sharepoint/Pages/default.aspx" title="SharePoint Implementation">SharePoint implementation​</a> using a least privilege security model there is usually a dedicated search service account. I commonly use the account name of sp.searchservice. 
</p>
<p>To resolve the issue the search service account needs to be added to the following groups in the BUILTIN container within Active Directory:- 
</p>
<p>· Pre-Windows 2000 Compatible Access 
</p>
<p>· Windows Authorization Access Group 
</p>
<p>There is a variation as to which group solves the issue based on the active directory version and settings. Full details can be found in this KB article <a target="_blank" href="http://support.microsoft.com/kb/331951">http://support.microsoft.com/kb/331951</a>. My recommendation is to add the search service account to both of the groups as there is no harm in this. 
</p>
<p>This change will take affect are the search service is restarted. After this run a query as the normal user and it should now display search results.</p></div></div></div>
<div><b>Category:</b> <a onclick="OpenPopUpPage('http://www.synergyonline.com/Blog/_layouts/listform.aspx?PageType=4&ListId={BEBD6B7C-8EDF-4976-8627-9238AFF8A903}&ID=15&RootFolder=*', RefreshPage); return false;" href="http://www.synergyonline.com/Blog/_layouts/listform.aspx?PageType=4&ListId={BEBD6B7C-8EDF-4976-8627-9238AFF8A903}&ID=15&RootFolder=*">Active Directory</a>; <a onclick="OpenPopUpPage('http://www.synergyonline.com/Blog/_layouts/listform.aspx?PageType=4&ListId={BEBD6B7C-8EDF-4976-8627-9238AFF8A903}&ID=14&RootFolder=*', RefreshPage); return false;" href="http://www.synergyonline.com/Blog/_layouts/listform.aspx?PageType=4&ListId={BEBD6B7C-8EDF-4976-8627-9238AFF8A903}&ID=14&RootFolder=*">Search</a>; <a onclick="OpenPopUpPage('http://www.synergyonline.com/Blog/_layouts/listform.aspx?PageType=4&ListId={BEBD6B7C-8EDF-4976-8627-9238AFF8A903}&ID=16&RootFolder=*', RefreshPage); return false;" href="http://www.synergyonline.com/Blog/_layouts/listform.aspx?PageType=4&ListId={BEBD6B7C-8EDF-4976-8627-9238AFF8A903}&ID=16&RootFolder=*">Permissions</a>; <a onclick="OpenPopUpPage('http://www.synergyonline.com/Blog/_layouts/listform.aspx?PageType=4&ListId={BEBD6B7C-8EDF-4976-8627-9238AFF8A903}&ID=13&RootFolder=*', RefreshPage); return false;" href="http://www.synergyonline.com/Blog/_layouts/listform.aspx?PageType=4&ListId={BEBD6B7C-8EDF-4976-8627-9238AFF8A903}&ID=13&RootFolder=*">SharePoint</a></div>
<div><b>Published:</b> 11/23/2011 10:08 AM</div>
<div><b>Author:</b> <a href="http://www.synergyonline.com/company/Profiles/Pages/GavinAdams.aspx">Gavin Adams</a></div>
<div><b>PageKeywords:</b> SharePoint Implementation, SharePoint Development, SharePoint Training</div>
<div><b>PageTitle:</b> SharePoint Search results not visible for users</div>
<div><b>PageDescription:</b> SharePoint Expert on SharePoint Search results not visible for users</div>
]]></description>
      <author>System Account</author>
      <category>Active Directory; Search; Permissions; SharePoint</category>
      <pubDate>Wed, 23 Nov 2011 15:08:43 GMT</pubDate>
      <guid isPermaLink="true">http://www.synergyonline.com/Blog/Lists/Posts/ViewPost.aspx?ID=163</guid>
    </item>
    <item>
      <title>Loop through a list with Nintex Workflow 2010</title>
      <link>http://www.synergyonline.com/Blog/Lists/Posts/ViewPost.aspx?ID=164</link>
      <description><![CDATA[<div><b>Body:</b> <div class="ExternalClassEB5CA16A6F2F4A1882C04F6399533A8C"><div style="width:750px"><div class="ExternalClass93F30B8489BD4A33984CBCD9DEEB362C"><p>This post shows you step by step how to configure a <a href="http://www.nintex.com/EN-US/Pages/default.aspx" title="Nintex Website" target="_blank">Nintex​</a> site workflow to loop through a list at regularly scheduled intervals. - (If you ever wished that you could create a 'task tickler' workflow that would send out little reminders to people about any tasks that have been sitting at the Not Started status, this post is for you).</p>
<p>This post shows you step by step how to configure a Nintex site workflow to loop through a list at regularly scheduled intervals. </p>
<p>Let's say you've got a task list on your site but no one is really updating the status of their tasks. If you ever wished that you could create a task tickler workflow that would send out little reminders to people about any tasks that are been sitting at the <em>Not Started</em> status, this post is for you. </p>
<p>Here's an overview of what we're going to do: </p>
<ul><li>Create a site workflow </li>
<li>Test the workflow </li>
<li>Schedule the workflow </li></ul>
<h2>Creating a Looping Site Workflow </h2>
<ol><li><div>From the <strong>Site Actions</strong> menu, point to <strong>Nintex Workflow 2010</strong>, then click <strong>Create Site Workflow</strong>. </div>
<p><a href="/blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough1_2_0C5BA8C6.png"><img border="0" width="538" height="581" src="/blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough1_thumb_0C5BA8C6.png" alt="111911_0245_Loopthrough1" title="111911_0245_Loopthrough1" style="background-image:none;padding-left:0px;width:417px;padding-right:0px;display:inline;height:506px;padding-top:0px" /></a>  </p>
<p> </p></li>
<li><div>Click the <strong>first drop zone</strong>, point to <strong>Insert Action</strong>, then <strong>Libraries and lists</strong>, then click <strong>Query list</strong>. </div>
<p><a href="/blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough2_2_0C5BA8C6.png"><img border="0" width="557" height="377" src="/blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough2_thumb_0C5BA8C6.png" alt="111911_0245_Loopthrough2" title="111911_0245_Loopthrough2" style="background-image:none;padding-left:0px;width:494px;padding-right:0px;display:inline;height:350px;padding-top:0px" /></a>  </p></li>
<li><div>On the <strong>Query list </strong>action click the <strong>drop down arrow</strong> and then click <strong>Configure</strong>. </div>
<p><a href="/blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough3_2_0C5BA8C6.png"><img border="0" width="177" height="244" src="/blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough3_thumb_3A48FB7E.png" alt="111911_0245_Loopthrough3" title="111911_0245_Loopthrough3" style="background-image:none;padding-left:0px;padding-right:0px;display:inline;padding-top:0px" /></a>  </p></li>
<li><div>On the <strong>ribbon</strong> of the <strong>Configure Action – Query</strong> <strong>list</strong> window click <strong>Variables</strong>. </div>
<p><a href="/blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough4_2_3A48FB7E.png"><img border="0" width="449" height="173" src="/blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough4_thumb_3A48FB7E.png" alt="111911_0245_Loopthrough4" title="111911_0245_Loopthrough4" style="background-image:none;padding-left:0px;padding-right:0px;display:inline;padding-top:0px" /></a>  </p></li>
<li><div>On the <strong>ribbon</strong> of the <strong>Workflow Variables</strong> window click <strong>New</strong>. </div>
<p><a href="/blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough5_2_3A48FB7E.png"><img border="0" width="453" height="204" src="/blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough5_thumb_3A48FB7E.png" alt="111911_0245_Loopthrough5" title="111911_0245_Loopthrough5" style="background-image:none;padding-left:0px;padding-right:0px;display:inline;padding-top:0px" /></a> </p></li>
<li><div>On the <strong>Create Workflow Variable</strong> window set the following: </div>
<ul><li>Name: <strong>tmpTasks</strong> </li>
<li>Type: <strong>Collection</strong> </li></ul>
<p><a href="/blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough6_4_3A48FB7E.png"><img border="0" width="452" height="351" src="/blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough6_thumb_1_3A48FB7E.png" alt="111911_0245_Loopthrough6" title="111911_0245_Loopthrough6" style="background-image:none;padding-left:0px;padding-right:0px;display:inline;padding-top:0px" /></a> </p></li>
<li>On the <strong>ribbon</strong> click <strong>Save</strong>. </li>
<li><div>On the <strong>ribbon</strong> of the <strong>Workflow Variables</strong> window click <strong>New</strong>. </div>
<p><a href="/blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough7_4_3A48FB7E.png"><img border="0" width="453" height="204" src="/blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough7_thumb_1_3A48FB7E.png" alt="111911_0245_Loopthrough7" title="111911_0245_Loopthrough7" style="background-image:none;padding-left:0px;padding-right:0px;display:inline;padding-top:0px" /></a> </p></li>
<li><div>On the <strong>Create Workflow Variable</strong> window set the following: </div>
<ul><li>Name: <strong>tmpTaskID</strong> </li>
<li>Type: <strong>List Item ID</strong> </li></ul>
<p><a href="/blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough8_4_3A48FB7E.png"><img border="0" width="442" height="343" src="/blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough8_thumb_1_3A48FB7E.png" alt="111911_0245_Loopthrough8" title="111911_0245_Loopthrough8" style="background-image:none;padding-left:0px;padding-right:0px;display:inline;padding-top:0px" /></a> </p></li>
<li>On the <strong>ribbon</strong> click <strong>Save</strong>. </li>
<li>On the <strong>ribbon</strong> of the <strong>Workflow Variables</strong> window click <strong>Close</strong>. </li>
<li><div>On the <strong>Configure Action – Query list</strong> window set the following: </div>
<ul><li>List: <strong>Tasks</strong> </li>
<li>Field: <strong>ID</strong> </li>
<li>Store results in: <strong>tmpTasks</strong> </li></ul>
<p><a href="/blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough9_4_3A48FB7E.png"><img border="0" width="442" height="332" src="/blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough9_thumb_1_3A48FB7E.png" alt="111911_0245_Loopthrough9" title="111911_0245_Loopthrough9" style="background-image:none;padding-left:0px;padding-right:0px;display:inline;padding-top:0px" /></a> </p></li>
<li><div>Expand the <strong>Filter</strong> area, click <strong>Select items only when the following is true</strong>, then set the following: </div>
<ul><li>First box: <strong>Status</strong> </li>
<li>Second box: <strong>is equal to</strong> </li>
<li>Third box: <strong>Not Started</strong> </li></ul>
<p><a href="/blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough10_6_3A48FB7E.png"><img border="0" width="464" height="165" src="/blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough10_thumb_2_3A48FB7E.png" alt="111911_0245_Loopthrough10" title="111911_0245_Loopthrough10" style="background-image:none;padding-left:0px;padding-right:0px;display:inline;padding-top:0px" /></a> </p></li>
<li>On the <strong>ribbon</strong> click <strong>Save</strong>. </li>
<li><div>Click the <strong>drop zone</strong> below the <strong>Query list</strong> action, point to <strong>Insert Action</strong>, then <strong>Logic and flows</strong>, then click <strong>For each</strong>. </div>
<p><a href="/blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough11_4_3A48FB7E.png"><img border="0" width="472" height="324" src="/blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough11_thumb_1_3A48FB7E.png" alt="111911_0245_Loopthrough11" title="111911_0245_Loopthrough11" style="background-image:none;padding-left:0px;padding-right:0px;display:inline;padding-top:0px" /></a>  </p></li>
<li><div>On the <strong>For each</strong> action click the <strong>drop down arrow</strong> and then click <strong>Configure</strong>. </div>
<p><a href="/blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough12_2_3A48FB7E.png"><img border="0" width="195" height="363" src="/blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough12_thumb_3A48FB7E.png" alt="111911_0245_Loopthrough12" title="111911_0245_Loopthrough12" style="background-image:none;padding-left:0px;padding-right:0px;display:inline;padding-top:0px" /></a>  </p></li>
<li><div>On the <strong>Configure Action – For each</strong> window set the following: </div>
<ul><li>Target collection: <strong>tmpTasks</strong> </li>
<li>Store result in: <strong>tmpTaskID</strong> </li></ul>
<p><a href="/blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough13_2_3A48FB7E.png"><img border="0" width="460" height="280" src="/blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough13_thumb_3A48FB7E.png" alt="111911_0245_Loopthrough13" title="111911_0245_Loopthrough13" style="background-image:none;padding-left:0px;padding-right:0px;display:inline;padding-top:0px" /></a> </p></li>
<li>On the <strong>ribbon</strong> click <strong>Save</strong>. </li>
<li><div>Click the <strong>drop zone</strong> directly below the <strong>For each</strong> action, point to <strong>Insert Action</strong>, then <strong>Operations</strong>, then click <strong>Set variable</strong>. </div>
<p><a href="/blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough14_2_3A48FB7E.png"><img border="0" width="467" height="226" src="/blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough14_thumb_3A48FB7E.png" alt="111911_0245_Loopthrough14" title="111911_0245_Loopthrough14" style="background-image:none;padding-left:0px;padding-right:0px;display:inline;padding-top:0px" /></a>  </p></li>
<li><div>On the <strong>Set variable</strong> action click the <strong>drop down arrow</strong> and then click <strong>Configure</strong>. </div>
<p><a href="/blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough15_2_3A48FB7E.png"><img border="0" width="188" height="235" src="/blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough15_thumb_3A48FB7E.png" alt="111911_0245_Loopthrough15" title="111911_0245_Loopthrough15" style="background-image:none;padding-left:0px;padding-right:0px;display:inline;padding-top:0px" /></a>  </p></li>
<li><div>On the <strong>ribbon</strong> of the <strong>Configure Action – Set variable</strong> window click <strong>Variables</strong>. </div>
<p><a href="/blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough16_2_3A48FB7E.png"><img border="0" width="463" height="235" src="/blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough16_thumb_3A48FB7E.png" alt="111911_0245_Loopthrough16" title="111911_0245_Loopthrough16" style="background-image:none;padding-left:0px;padding-right:0px;display:inline;padding-top:0px" /></a>  </p></li>
<li><div>On the <strong>ribbon</strong> of the <strong>Workflow Variables</strong> window click <strong>New</strong>. </div>
<p><a href="/blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough17_2_3A48FB7E.png"><img border="0" width="462" height="208" src="/blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough17_thumb_3A48FB7E.png" alt="111911_0245_Loopthrough17" title="111911_0245_Loopthrough17" style="background-image:none;padding-left:0px;padding-right:0px;display:inline;padding-top:0px" /></a>  </p></li>
<li><div>On the <strong>Create Workflow Variable</strong> window set the following: </div>
<ul><li>Name: <strong>tmpAssignedTo</strong> </li>
<li>Type: <strong>Person or Group</strong> </li></ul>
<p><a href="/blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough18_2_3A48FB7E.png"><img border="0" width="405" height="319" src="/blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough18_thumb_3A48FB7E.png" alt="111911_0245_Loopthrough18" title="111911_0245_Loopthrough18" style="background-image:none;padding-left:0px;padding-right:0px;display:inline;padding-top:0px" /></a>  </p></li>
<li>On the <strong>ribbon</strong> click <strong>Save</strong>. </li>
<li>On the <strong>ribbon</strong> of the <strong>Workflow Variables</strong> window click <strong>Close</strong>. </li>
<li><div>On the <strong>Configure Action – Set variable</strong> window set the following: </div>
<ul><li>Set : <strong>tmpAssigned To</strong> </li>
<li>Equals: <strong>List Lookup </strong></li>
<li>Source: <strong>Tasks</strong> </li>
<li>Field: <strong>Assigned To</strong> </li>
<li>When: <strong>ID</strong> </li>
<li>Equals first box: <strong>Workflow Data</strong> </li>
<li>Equals second box: <strong>tmpTaskID</strong> </li></ul>
<p style="margin-left:18pt"><a href="/blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough19_2_3A48FB7E.png"><img border="0" width="457" height="302" src="/blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough19_thumb_3A48FB7E.png" alt="111911_0245_Loopthrough19" title="111911_0245_Loopthrough19" style="background-image:none;padding-left:0px;padding-right:0px;display:inline;padding-top:0px" /></a>  </p></li>
<li>On the <strong>ribbon</strong> click <strong>Save</strong>. </li>
<li><div>Click the <strong>drop zone</strong> directly below the <strong>Set variable</strong> action, point to <strong>Insert Action</strong>, then <strong>Commonly used</strong>, then click <strong>Send notification</strong>. </div>
<p><a href="/blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough20_2_3A48FB7E.png"><img border="0" width="435" height="309" src="/blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough20_thumb_3A48FB7E.png" alt="111911_0245_Loopthrough20" title="111911_0245_Loopthrough20" style="background-image:none;padding-left:0px;padding-right:0px;display:inline;padding-top:0px" /></a>  </p></li>
<li><div>On the <strong>Send notification</strong> action click the <strong>drop down arrow</strong> and then click <strong>Configure</strong>. </div>
<p><a href="/blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough21_2_3A48FB7E.png"><img border="0" width="187" height="235" src="/blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough21_thumb_3A48FB7E.png" alt="111911_0245_Loopthrough21" title="111911_0245_Loopthrough21" style="background-image:none;padding-left:0px;padding-right:0px;display:inline;padding-top:0px" /></a>  </p></li>
<li><div>On the <strong>Configure Action – Set variable</strong> window at the end of the <strong>To</strong> row click the <strong>browse</strong> button. </div>
<p><a href="/blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough22_2_3A48FB7E.png"><img border="0" width="505" height="225" src="/blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough22_thumb_2557790B.png" alt="111911_0245_Loopthrough22" title="111911_0245_Loopthrough22" style="background-image:none;padding-left:0px;padding-right:0px;display:inline;padding-top:0px" /></a>  </p></li>
<li><div>On the <strong>Select People and Groups – Webpage Dialog</strong> window expand the <strong>Lookup</strong> section, under <strong>Workflow Variables</strong> select <strong>tmpAssignedTo</strong>, then click <strong>Add</strong>. </div>
<p><a href="/blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough23_2_2557790B.png"><img border="0" width="507" height="402" src="/blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough23_thumb_2557790B.png" alt="111911_0245_Loopthrough23" title="111911_0245_Loopthrough23" style="background-image:none;padding-left:0px;padding-right:0px;display:inline;padding-top:0px" /></a>  </p></li>
<li>Click <strong>OK</strong>. </li>
<li><div>On the <strong>Configure Action – Set notification</strong> window set the following: </div>
<ul><li>Subject: <strong>Task review</strong> </li>
<li>Body (the big empty box at the bottom of the window): <strong>The status of your task is Not Started. Please review your </strong></li></ul>
<p><a href="/blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough24_2_2557790B.png"><img border="0" width="531" height="355" src="/blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough24_thumb_2557790B.png" alt="111911_0245_Loopthrough24" title="111911_0245_Loopthrough24" style="background-image:none;padding-left:0px;padding-right:0px;display:inline;padding-top:0px" /></a><strong> </strong> </p></li>
<li>With your cursor still in the body box, on the <strong>ribbon</strong> under <strong>Editing Tools</strong> click the <strong>Insert </strong>tab. </li>
<li><div>On the <strong>Insert</strong> tab click <strong>Link.</strong> </div>
<p><a href="/blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough25_2_2557790B.png"><img border="0" width="343" height="185" src="/blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough25_thumb_2557790B.png" alt="111911_0245_Loopthrough25" title="111911_0245_Loopthrough25" style="background-image:none;padding-left:0px;padding-right:0px;display:inline;padding-top:0px" /></a>  </p></li>
<li><div>On the Insert Reference window click window set the following: </div>
<ul><li><div>Address: <strong>http://&lt;site path&gt;/Lists/Tasks/DispForm.aspx?ID=</strong> </div>
<p>Important: you need to replace &lt;site path&gt; with the path to where your task list resides. </p></li>
<li>Hyperlink text to display: <strong>task</strong> </li></ul>
<p><a href="/blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough26_2_2557790B.png"><img border="0" width="434" height="412" src="/blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough26_thumb_2557790B.png" alt="111911_0245_Loopthrough26" title="111911_0245_Loopthrough26" style="background-image:none;padding-left:0px;padding-right:0px;display:inline;padding-top:0px" /></a>  </p></li>
<li>Place your cursor at the end of the address line directly after the equals symbol. </li>
<li><div>Click the <strong>Workflow Variables</strong> tab, then double click <strong>tmpTaskID</strong>. </div>
<p><a href="/blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough27_2_2557790B.png"><img border="0" width="447" height="425" src="/blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough27_thumb_2557790B.png" alt="111911_0245_Loopthrough27" title="111911_0245_Loopthrough27" style="background-image:none;padding-left:0px;padding-right:0px;display:inline;padding-top:0px" /></a>  </p></li>
<li>Click <strong>OK</strong>. </li>
<li>On the <strong>Configure Action – Set notification</strong> window, on the <strong>ribbon </strong>click the <strong>General</strong> tab. </li>
<li>On the <strong>ribbon</strong> click <strong>Save.</strong> </li>
<li>On the <strong>Nintex Workflow designer page</strong> click <strong>Publish</strong>. </li>
<li><div>On the <strong>Set title &amp; Description</strong> window set the following: </div>
<ul><li>Title: <strong>Not Started Task Tickler</strong> </li>
<li>Description: <strong>This workflow sends an email to the person in the Assigned To field if a task has a status of Not Started.</strong> </li></ul>
<p><a href="/blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough28_2_2557790B.png"><img border="0" width="470" height="313" src="/blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough28_thumb_2557790B.png" alt="111911_0245_Loopthrough28" title="111911_0245_Loopthrough28" style="background-image:none;padding-left:0px;padding-right:0px;display:inline;padding-top:0px" /></a>  </p></li>
<li>On the <strong>ribbon</strong> click <strong>Submit</strong>. </li>
<li>On <strong>The workflow has been published</strong> message click <strong>OK</strong>. </li></ol>
<h2>Testing the Workflow </h2>
<ol><li>Navigate to the site where your task list resides. </li>
<li><div>On the <strong>Quick Launch</strong> click <strong>All Site Content</strong>. </div>
<p><a href="/blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough29_2_2557790B.png"><img border="0" width="475" height="318" src="/blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough29_thumb_2557790B.png" alt="111911_0245_Loopthrough29" title="111911_0245_Loopthrough29" style="background-image:none;padding-left:0px;padding-right:0px;display:inline;padding-top:0px" /></a>  </p></li>
<li><div>Toward the top of the page click <strong>Site Workflows</strong>. </div>
<p><a href="/blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough30_2_2557790B.png"><img border="0" width="475" height="243" src="/blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough30_thumb_2557790B.png" alt="111911_0245_Loopthrough30" title="111911_0245_Loopthrough30" style="background-image:none;padding-left:0px;padding-right:0px;display:inline;padding-top:0px" /></a>  </p></li>
<li><div>In the <strong>Start a New Workflow</strong> area, click <strong>Not Started Task Tickler</strong>. </div>
<p><a href="/blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough31_4_2557790B.png"><img border="0" width="480" height="200" src="/blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough31_thumb_1_2557790B.png" alt="111911_0245_Loopthrough31" title="111911_0245_Loopthrough31" style="background-image:none;padding-left:0px;padding-right:0px;display:inline;padding-top:0px" /></a> </p></li>
<li><div>Click <strong>Start</strong> to manually start the workflow. </div>
<p><a href="/blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough32_2_2557790B.png"><img border="0" width="482" height="309" src="/blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough32_thumb_2557790B.png" alt="111911_0245_Loopthrough32" title="111911_0245_Loopthrough32" style="background-image:none;padding-left:0px;padding-right:0px;display:inline;padding-top:0px" /></a> </p></li>
<li><div>Check to see if the workflow completed successfully and if notifications were sent. </div>
<p> </p></li></ol>
<h2>Scheduling the Workflow </h2>
<ol><li>Navigate to the site where your task list resides. </li>
<li><div>From the <strong>Site Actions</strong> menu click, point to <strong>Nintex Workflow 2010</strong>, then click <strong>Schedule Site Workflows</strong>. </div>
<p><a href="/blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough33_2_2557790B.png"><img border="0" width="437" height="474" src="/blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough33_thumb_2557790B.png" alt="111911_0245_Loopthrough33" title="111911_0245_Loopthrough33" style="background-image:none;padding-left:0px;padding-right:0px;display:inline;padding-top:0px" /></a>  </p></li>
<li><div>On the <strong>Workflow Schedules</strong> page click <strong>Add Schedule</strong> </div>
<p><a href="/blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough34_2_2557790B.png"><img border="0" width="451" height="144" src="/blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough34_thumb_2557790B.png" alt="111911_0245_Loopthrough34" title="111911_0245_Loopthrough34" style="background-image:none;padding-left:0px;padding-right:0px;display:inline;padding-top:0px" /></a>  </p></li>
<li><div>On the New Workflow Schedule page set the following: </div>
<ul><li>Workflow: <strong>Not Started Task Tickler</strong> </li>
<li>Scheduled start: <strong>&lt;use a date in the future&gt;</strong> </li>
<li>Repeat settings: <strong>1 Days</strong> </li>
<li>Schedule End: <strong>Indefinite</strong> </li></ul>
<p><a href="/blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough35_2_2557790B.png"><img border="0" width="458" height="259" src="/blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough35_thumb_2557790B.png" alt="111911_0245_Loopthrough35" title="111911_0245_Loopthrough35" style="background-image:none;padding-left:0px;padding-right:0px;display:inline;padding-top:0px" /></a>  </p></li>
<li><div>Click <strong>Save</strong>. </div>
<p> </p></li></ol>
<p>That's it you're done. </p>
<p> </p>
<p> </p></div></div></div></div>
<div><b>Category:</b> <a onclick="OpenPopUpPage('http://www.synergyonline.com/Blog/_layouts/listform.aspx?PageType=4&ListId={BEBD6B7C-8EDF-4976-8627-9238AFF8A903}&ID=4&RootFolder=*', RefreshPage); return false;" href="http://www.synergyonline.com/Blog/_layouts/listform.aspx?PageType=4&ListId={BEBD6B7C-8EDF-4976-8627-9238AFF8A903}&ID=4&RootFolder=*">Development</a>; <a onclick="OpenPopUpPage('http://www.synergyonline.com/Blog/_layouts/listform.aspx?PageType=4&ListId={BEBD6B7C-8EDF-4976-8627-9238AFF8A903}&ID=17&RootFolder=*', RefreshPage); return false;" href="http://www.synergyonline.com/Blog/_layouts/listform.aspx?PageType=4&ListId={BEBD6B7C-8EDF-4976-8627-9238AFF8A903}&ID=17&RootFolder=*">Workflow</a></div>
<div><b>Published:</b> 11/28/2011 10:19 AM</div>
<div><b>Author:</b> <a href="http://www.synergyonline.com/company/Profiles/Pages/VanceMorimoto.aspx">Vance Morimoto</a></div>
<div><b>PageKeywords:</b> SharePoint consultant, SharePoint Workflow, SharePoint Consulting</div>
<div><b>PageTitle:</b> Loop through a list with Nintex Workflow 2010</div>
<div><b>PageDescription:</b> From SharePoint Expert - step by step how to configure a Nintex site workflow to loop through a list at regularly scheduled intervals.</div>
<div><b>Attachments:</b> <a href="http://www.synergyonline.com/Blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough1_2_0C5BA8C6.png">http://www.synergyonline.com/Blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough1_2_0C5BA8C6.png</a><br /><a href="http://www.synergyonline.com/Blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough1_thumb_0C5BA8C6.png">http://www.synergyonline.com/Blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough1_thumb_0C5BA8C6.png</a><br /><a href="http://www.synergyonline.com/Blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough10_6_3A48FB7E.png">http://www.synergyonline.com/Blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough10_6_3A48FB7E.png</a><br /><a href="http://www.synergyonline.com/Blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough10_thumb_2_3A48FB7E.png">http://www.synergyonline.com/Blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough10_thumb_2_3A48FB7E.png</a><br /><a href="http://www.synergyonline.com/Blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough11_4_3A48FB7E.png">http://www.synergyonline.com/Blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough11_4_3A48FB7E.png</a><br /><a href="http://www.synergyonline.com/Blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough11_thumb_1_3A48FB7E.png">http://www.synergyonline.com/Blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough11_thumb_1_3A48FB7E.png</a><br /><a href="http://www.synergyonline.com/Blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough12_2_3A48FB7E.png">http://www.synergyonline.com/Blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough12_2_3A48FB7E.png</a><br /><a href="http://www.synergyonline.com/Blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough12_thumb_3A48FB7E.png">http://www.synergyonline.com/Blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough12_thumb_3A48FB7E.png</a><br /><a href="http://www.synergyonline.com/Blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough13_2_3A48FB7E.png">http://www.synergyonline.com/Blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough13_2_3A48FB7E.png</a><br /><a href="http://www.synergyonline.com/Blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough13_thumb_3A48FB7E.png">http://www.synergyonline.com/Blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough13_thumb_3A48FB7E.png</a><br /><a href="http://www.synergyonline.com/Blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough14_2_3A48FB7E.png">http://www.synergyonline.com/Blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough14_2_3A48FB7E.png</a><br /><a href="http://www.synergyonline.com/Blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough14_thumb_3A48FB7E.png">http://www.synergyonline.com/Blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough14_thumb_3A48FB7E.png</a><br /><a href="http://www.synergyonline.com/Blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough15_2_3A48FB7E.png">http://www.synergyonline.com/Blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough15_2_3A48FB7E.png</a><br /><a href="http://www.synergyonline.com/Blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough15_thumb_3A48FB7E.png">http://www.synergyonline.com/Blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough15_thumb_3A48FB7E.png</a><br /><a href="http://www.synergyonline.com/Blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough16_2_3A48FB7E.png">http://www.synergyonline.com/Blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough16_2_3A48FB7E.png</a><br /><a href="http://www.synergyonline.com/Blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough16_thumb_3A48FB7E.png">http://www.synergyonline.com/Blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough16_thumb_3A48FB7E.png</a><br /><a href="http://www.synergyonline.com/Blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough17_2_3A48FB7E.png">http://www.synergyonline.com/Blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough17_2_3A48FB7E.png</a><br /><a href="http://www.synergyonline.com/Blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough17_thumb_3A48FB7E.png">http://www.synergyonline.com/Blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough17_thumb_3A48FB7E.png</a><br /><a href="http://www.synergyonline.com/Blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough18_2_3A48FB7E.png">http://www.synergyonline.com/Blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough18_2_3A48FB7E.png</a><br /><a href="http://www.synergyonline.com/Blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough18_thumb_3A48FB7E.png">http://www.synergyonline.com/Blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough18_thumb_3A48FB7E.png</a><br /><a href="http://www.synergyonline.com/Blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough19_2_3A48FB7E.png">http://www.synergyonline.com/Blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough19_2_3A48FB7E.png</a><br /><a href="http://www.synergyonline.com/Blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough19_thumb_3A48FB7E.png">http://www.synergyonline.com/Blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough19_thumb_3A48FB7E.png</a><br /><a href="http://www.synergyonline.com/Blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough2_2_0C5BA8C6.png">http://www.synergyonline.com/Blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough2_2_0C5BA8C6.png</a><br /><a href="http://www.synergyonline.com/Blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough2_thumb_0C5BA8C6.png">http://www.synergyonline.com/Blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough2_thumb_0C5BA8C6.png</a><br /><a href="http://www.synergyonline.com/Blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough20_2_3A48FB7E.png">http://www.synergyonline.com/Blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough20_2_3A48FB7E.png</a><br /><a href="http://www.synergyonline.com/Blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough20_thumb_3A48FB7E.png">http://www.synergyonline.com/Blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough20_thumb_3A48FB7E.png</a><br /><a href="http://www.synergyonline.com/Blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough21_2_3A48FB7E.png">http://www.synergyonline.com/Blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough21_2_3A48FB7E.png</a><br /><a href="http://www.synergyonline.com/Blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough21_thumb_3A48FB7E.png">http://www.synergyonline.com/Blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough21_thumb_3A48FB7E.png</a><br /><a href="http://www.synergyonline.com/Blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough22_2_3A48FB7E.png">http://www.synergyonline.com/Blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough22_2_3A48FB7E.png</a><br /><a href="http://www.synergyonline.com/Blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough22_thumb_2557790B.png">http://www.synergyonline.com/Blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough22_thumb_2557790B.png</a><br /><a href="http://www.synergyonline.com/Blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough23_2_2557790B.png">http://www.synergyonline.com/Blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough23_2_2557790B.png</a><br /><a href="http://www.synergyonline.com/Blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough23_thumb_2557790B.png">http://www.synergyonline.com/Blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough23_thumb_2557790B.png</a><br /><a href="http://www.synergyonline.com/Blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough24_2_2557790B.png">http://www.synergyonline.com/Blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough24_2_2557790B.png</a><br /><a href="http://www.synergyonline.com/Blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough24_thumb_2557790B.png">http://www.synergyonline.com/Blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough24_thumb_2557790B.png</a><br /><a href="http://www.synergyonline.com/Blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough25_2_2557790B.png">http://www.synergyonline.com/Blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough25_2_2557790B.png</a><br /><a href="http://www.synergyonline.com/Blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough25_thumb_2557790B.png">http://www.synergyonline.com/Blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough25_thumb_2557790B.png</a><br /><a href="http://www.synergyonline.com/Blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough26_2_2557790B.png">http://www.synergyonline.com/Blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough26_2_2557790B.png</a><br /><a href="http://www.synergyonline.com/Blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough26_thumb_2557790B.png">http://www.synergyonline.com/Blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough26_thumb_2557790B.png</a><br /><a href="http://www.synergyonline.com/Blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough27_2_2557790B.png">http://www.synergyonline.com/Blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough27_2_2557790B.png</a><br /><a href="http://www.synergyonline.com/Blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough27_thumb_2557790B.png">http://www.synergyonline.com/Blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough27_thumb_2557790B.png</a><br /><a href="http://www.synergyonline.com/Blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough28_2_2557790B.png">http://www.synergyonline.com/Blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough28_2_2557790B.png</a><br /><a href="http://www.synergyonline.com/Blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough28_thumb_2557790B.png">http://www.synergyonline.com/Blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough28_thumb_2557790B.png</a><br /><a href="http://www.synergyonline.com/Blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough29_2_2557790B.png">http://www.synergyonline.com/Blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough29_2_2557790B.png</a><br /><a href="http://www.synergyonline.com/Blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough29_thumb_2557790B.png">http://www.synergyonline.com/Blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough29_thumb_2557790B.png</a><br /><a href="http://www.synergyonline.com/Blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough3_2_0C5BA8C6.png">http://www.synergyonline.com/Blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough3_2_0C5BA8C6.png</a><br /><a href="http://www.synergyonline.com/Blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough3_thumb_3A48FB7E.png">http://www.synergyonline.com/Blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough3_thumb_3A48FB7E.png</a><br /><a href="http://www.synergyonline.com/Blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough30_2_2557790B.png">http://www.synergyonline.com/Blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough30_2_2557790B.png</a><br /><a href="http://www.synergyonline.com/Blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough30_thumb_2557790B.png">http://www.synergyonline.com/Blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough30_thumb_2557790B.png</a><br /><a href="http://www.synergyonline.com/Blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough31_4_2557790B.png">http://www.synergyonline.com/Blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough31_4_2557790B.png</a><br /><a href="http://www.synergyonline.com/Blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough31_thumb_1_2557790B.png">http://www.synergyonline.com/Blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough31_thumb_1_2557790B.png</a><br /><a href="http://www.synergyonline.com/Blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough32_2_2557790B.png">http://www.synergyonline.com/Blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough32_2_2557790B.png</a><br /><a href="http://www.synergyonline.com/Blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough32_thumb_2557790B.png">http://www.synergyonline.com/Blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough32_thumb_2557790B.png</a><br /><a href="http://www.synergyonline.com/Blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough33_2_2557790B.png">http://www.synergyonline.com/Blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough33_2_2557790B.png</a><br /><a href="http://www.synergyonline.com/Blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough33_thumb_2557790B.png">http://www.synergyonline.com/Blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough33_thumb_2557790B.png</a><br /><a href="http://www.synergyonline.com/Blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough34_2_2557790B.png">http://www.synergyonline.com/Blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough34_2_2557790B.png</a><br /><a href="http://www.synergyonline.com/Blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough34_thumb_2557790B.png">http://www.synergyonline.com/Blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough34_thumb_2557790B.png</a><br /><a href="http://www.synergyonline.com/Blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough35_2_2557790B.png">http://www.synergyonline.com/Blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough35_2_2557790B.png</a><br /><a href="http://www.synergyonline.com/Blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough35_thumb_2557790B.png">http://www.synergyonline.com/Blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough35_thumb_2557790B.png</a><br /><a href="http://www.synergyonline.com/Blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough4_2_3A48FB7E.png">http://www.synergyonline.com/Blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough4_2_3A48FB7E.png</a><br /><a href="http://www.synergyonline.com/Blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough4_thumb_3A48FB7E.png">http://www.synergyonline.com/Blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough4_thumb_3A48FB7E.png</a><br /><a href="http://www.synergyonline.com/Blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough5_2_3A48FB7E.png">http://www.synergyonline.com/Blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough5_2_3A48FB7E.png</a><br /><a href="http://www.synergyonline.com/Blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough5_thumb_3A48FB7E.png">http://www.synergyonline.com/Blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough5_thumb_3A48FB7E.png</a><br /><a href="http://www.synergyonline.com/Blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough6_4_3A48FB7E.png">http://www.synergyonline.com/Blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough6_4_3A48FB7E.png</a><br /><a href="http://www.synergyonline.com/Blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough6_thumb_1_3A48FB7E.png">http://www.synergyonline.com/Blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough6_thumb_1_3A48FB7E.png</a><br /><a href="http://www.synergyonline.com/Blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough7_4_3A48FB7E.png">http://www.synergyonline.com/Blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough7_4_3A48FB7E.png</a><br /><a href="http://www.synergyonline.com/Blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough7_thumb_1_3A48FB7E.png">http://www.synergyonline.com/Blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough7_thumb_1_3A48FB7E.png</a><br /><a href="http://www.synergyonline.com/Blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough8_4_3A48FB7E.png">http://www.synergyonline.com/Blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough8_4_3A48FB7E.png</a><br /><a href="http://www.synergyonline.com/Blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough8_thumb_1_3A48FB7E.png">http://www.synergyonline.com/Blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough8_thumb_1_3A48FB7E.png</a><br /><a href="http://www.synergyonline.com/Blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough9_4_3A48FB7E.png">http://www.synergyonline.com/Blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough9_4_3A48FB7E.png</a><br /><a href="http://www.synergyonline.com/Blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough9_thumb_1_3A48FB7E.png">http://www.synergyonline.com/Blog/Lists/Posts/Attachments/164/111911_0245_Loopthrough9_thumb_1_3A48FB7E.png</a><br /><a href=""></a></div>
]]></description>
      <author>System Account</author>
      <category>Development; Workflow</category>
      <pubDate>Mon, 28 Nov 2011 15:19:30 GMT</pubDate>
      <guid isPermaLink="true">http://www.synergyonline.com/Blog/Lists/Posts/ViewPost.aspx?ID=164</guid>
    </item>
    <item>
      <title>Super Storm Sandy - A technologist’s point of view</title>
      <link>http://www.synergyonline.com/Blog/Lists/Posts/ViewPost.aspx?ID=249</link>
      <description><![CDATA[<div><b>Body:</b> <div class="ExternalClassECFD29F0C9764F82938543438C51E8D3"><p>This year was full of exciting SharePoint news, Nintex and NewsGator developments, and our blog has grown with the developments in the industry on these exciting and evolving technologies. In addition to SharePoint, Enterprise Social, Workflow, and our technology posts, it is fair to say another topic made headlines as well - Super Storm Sandy.  </p>
<p><a href="/Company/Pages/Locations.aspx?mapref=map-us-ct">Synergy’s headquarters is in Westport, CT</a>, not far from Long Island Sound. Based on the location of our headquarters, we support many clients in Connecticut, New York, and New Jersey, and in our <a href="/sharepoint/Pages/default.aspx">SharePoint and development offerings</a> and <a href="/company/Pages/Locations.aspx">our global offices</a>, we enjoy relationships with clients around the globe. Thus our slogan: <a href="/Blog/Lists/Posts/Post.aspx?ID=223">“Global Reach. Local Service.”</a> The Synergy family consists of technology specialists across the spectrum, and it is fair to say we are all very passionate about technology, and bringing that enthusiasm for technology to our project engagements is one of the things that make us great to work with.  </p>
<h3><font style="font-weight:bold">Preparing for the Storm</font></h3>
 <p>Like many in IT, many of us telecommute and as such can be found working from home offices well equipped to serve our clients efficiently and effectively. Our homes can be as close as a few minutes from the office, to several hours away in places like Vermont, northern Connecticut, or the Jersey shore. When news of Sandy started hitting the news, we did what all companies with powerful infrastructures do: We checked and double checked our disaster preparedness plans, topped up the tanks on the generators, reviewed and tested our primary, secondary, and tertiary links and our failover process. We prepared emails and calls in the event of unforeseen outages, and braced for what everyone suggested was going to be a bad storm.  </p>
<p>Synergy has a fun tradition - Halloween is quite an event at Synergy, with most (and sometimes all) of our employees dressing up in lavish costumes. We eat lunch, share candy, and vote on the best costume, with prizes to the winner. This Halloween was to be no different. We had done our planning, and all of the remote workers planned their trips to the office on October 31<sup>st</sup> for what was sure to be another stellar team event.  </p>
<p><img src="/Blog/PublishingImages/SynergyHalloween.png" alt="SynergyHalloween.png" style="margin-top:5px;margin-right:5px;margin-bottom:5px;margin-left:5px;width:700px;height:438px" /><br /></p>
<p>October 28<sup>th</sup>, 2012. After work, employees made all of the sensible last minute preparations. We stood in line at grocery stores, gas stations, and hardware stores to get supplies and be prepared. We had Irene the year before to give us a hint of what Sandy might be like, so preparations were often based on past experience. We pulled our outdoor furniture and barbeque grills inside, took down our flags and ensured our battens were in the downward position. Most of us posted on social media sites, indicating our preparedness and updating friends and colleagues alike with our well-being. And why not? Technology is there to help us share and tells our story, to keep in touch, and let everyone know you are OK. The stories and posts were light hearted, joking, and full of bravado and hope as the winds of Sandy started to increase.  </p>
<p><b></b> </p>
<h3><font style="font-weight:bold">In the Path of Sandy</font></h3>
 <p><img src="/Blog/PublishingImages/Sandy2012.png" alt="Sandy2012.png" style="margin-top:5px;margin-right:5px;margin-bottom:5px;margin-left:5px;width:700px;height:467px" /><br /></p>
 <p>We take for granted what “normal” is. A connected world with computers, internet enabled televisions and entertainment systems, smart phones and broadband. Houses that know the time-that heat and cool without input, which shut the lights when you are not at home. Technology is ever present and a huge part of our lives. It is an integral part of normal everyday life, and it is assumed that it is and will always be there when we need it. We maintain relationships with friends around the globe without thought to how difficult that was just 20 years ago. Innovation, technology, and connectivity revolutionizing the way we do business, the way we communicate and maintain relationships, and it’s just ‘normal’.  </p>
<p>The morning of Monday, October 29<sup>th</sup> came around, and the first serious effects of Sandy could be felt on the Jersey shore, southern Connecticut, and coastal New York communities. Wind and bands of rain, gusts of increasing intensity as the hours wore on. We stayed connected to the news and weather through TV, the internet and apps on our mobile devices. We looked at the updated forecast for when and where the storm would make landfall, watching the crazy storm chasers set up cameras on the beach and boardwalks near our homes. As day became afternoon, and as afternoon became evening this monster storm drew closer and closer to home and work, and the first signs that this was no Irene started. Social media posts started taking a more serious tone - reporting on the violence of the wind, rain, and reporting the damage which was starting to take place.  </p>
<h3><font style="font-weight:bold">Sandy’s Wrath</font></h3>
 <p><img src="/Blog/PublishingImages/Sandy.png" alt="Sandy.png" style="margin-top:5px;margin-right:5px;margin-bottom:5px;margin-left:5px;width:700px;height:467px" /><br /></p>
 <p>First, cable went out. No internet, no phone, no broadband. That’s OK! We’ve got smart phones, and 4G so we have broadband after all. Signs of the wind damage started becoming clearer-branches, wires, roof shingles started passing us by. The steady roar of the wind became howling gales, shaking houses and trees, and sending larger and larger debris flying in its path. Power was the next to go, a few flickers at first, and finally, no more. UPS’s, laptop batteries are charged, so productivity stayed good for a while. Charging stations for the smart phones kept our phones topped up, but as the evening became night, the charge on the phone became less critical than the ability to use it. No internet, no cell service for calls, reduced to apps that don’t need internet and text messaging. One by one, service by service we lost our ability to reach the outside world. Our ability to power our technology enabled lives.  </p>
<p>The comfort that a constant stream of data provides is gone. The ability to look up anything-everything-was gone. No news, no weather, no Google. We woke to a world on October 30<sup>th</sup> that saw Sandy in all her awesome might slowly unleashing her awful fury on all in her path. Lives, homes, businesses all felt the power of nature as she moved north and over the next days weakened and finally passed. The world was changed for all of us. We cleared debris, trees, wires, and developed new, local relationships. Neighbors helped neighbors, strangers became friends as we struggled together to find the basic needs of survival.  </p>
<p>We were all shocked at the devastation wrought by Sandy. In every local community that Synergy staff lived in, there were varying degrees of damage from complete and utter destruction to limbs, power lines, and minor wind damage. But no one was untouched, or remained the same after the storm. There was life before Sandy, and life after. The northeast suffered a devastating blow. In the wake of the storm, as technologies resumed and data began flowing into our lives, we got the first glimpses of the destruction beyond our local communities.  </p>
<h3><font style="font-weight:bold">Aftermath</font></h3>
 <p><img src="/Blog/PublishingImages/SandyAftermath.png" alt="SandyAftermath.png" style="margin-top:5px;margin-right:5px;margin-bottom:5px;margin-left:5px;width:600px;height:451px" /><br /></p>
<p>The technologies we relied on had failed. There is a saying in the military: No plan survives first contact with the enemy. We saw that axiom put to the test as emergency plans failed, and backup emergency plans had to be adapted to the new and changing realities of the post Sandy northeastern United States. The silence in the absence of technology was deafening. Without it, we had to rely on ingenuity. We had to rely on our ability to develop and maintain relationships and to communicate effectively with our fellow man. Trying to clean up and restore services took everyone pulling together, and the struggles to recover and rebuild from the decimation will take many more months. The lessons learned from this storm may take weeks or months to digest and implement.  </p>
<h3><font style="font-weight:bold">Lessons Learned</font></h3>
 <p>Redundancy is key to resisting the effects of a storm like Sandy. Having generators, sufficient fuel to run any power backups, different types of internet links, duplication of critical hardware with a fail-over plan is critical for any emergency. However, an event the scope of Super-Storm Sandy is hardly something many businesses or communities planned for. Most people base preparedness on experience-and history failed to provide a precedent for a storm the magnitude of Sandy in living memory. Our preparations were tested and tried beyond expectation.  </p>
<p>Synergy was fortunate in that our preparations were largely successful in weathering Sandy’s effects. We had power through our generator, heat and cooling for the server rooms, our redundant internet links and fail-overs largely kept critical systems online for the duration of the extended power outages.  </p>
<p>However, generators are not meant to run for two weeks without interruption, two of three links are not meant to fail, and no matter how hardened our systems were, we still suffered some downtime and caused interruptions to clients unaffected by the storm. Fortunately, those unaffected had a better idea of the scope of the tragedy, as media kept people informed of the damage and impact of the storm. People were patient, understanding, and offered no grievances at what most knew was beyond expectation.  </p>
<p>As we digest the failures and implement changes to our fail-overs, hardening the system further against the new realities of post Sandy life, we take time to offer thanks to our neighbors, clients, and friends around the globe for their support and concern. We learned that the absence of technology does not completely undo our lives. While inconvenient, we can survive without “normal” technologies. We can still interact without Social Media, still communicate without email, cell phones, or internet. We witnessed neighbors helping neighbors, communities pulling together and coming out of the storm stronger than ever before-something technology had no part in.  </p>
<p>We at Synergy hope you and yours are well and recovered after Sandy. Help out with donations to the Red Cross, and remember that months after the storm there are families still struggling to survive. Volunteer, donate, and help those still rebuilding their lives.  </p>
<h3><font style="font-weight:bold">Onward</font></h3>
As we continue to keep up with the developments in SharePoint 2013, Nintex and NewsGator, we look forward to another exciting year of sharing our knowledge and experience with our customers and partners in the industry. The Synergy family wish you a happy, healthy 2013! </div></div>
<div><b>Category:</b> <a onclick="OpenPopUpPage('http://www.synergyonline.com/Blog/_layouts/listform.aspx?PageType=4&ListId={BEBD6B7C-8EDF-4976-8627-9238AFF8A903}&ID=13&RootFolder=*', RefreshPage); return false;" href="http://www.synergyonline.com/Blog/_layouts/listform.aspx?PageType=4&ListId={BEBD6B7C-8EDF-4976-8627-9238AFF8A903}&ID=13&RootFolder=*">SharePoint</a></div>
<div><b>Published:</b> 1/2/2013 1:52 PM</div>
<div><b>Author:</b> <a href="http://www.synergyonline.com/company/Profiles/Pages/JasonBlair.aspx">Jason Blair</a></div>
<div><b>PageKeywords:</b> SharePoint consultant, SharePoint Workflow, SharePoint Consulting</div>
<div><b>PageTitle:</b> Super Storm Sandy - A technologist’s point of view</div>
<div><b>PageDescription:</b> In addition to SharePoint, Enterprise Social, Workflow, and our technology posts, it is fair to say another topic made headlines as well - Super Storm Sandy</div>
]]></description>
      <author>System Account</author>
      <category>SharePoint</category>
      <pubDate>Wed, 02 Jan 2013 18:50:26 GMT</pubDate>
      <guid isPermaLink="true">http://www.synergyonline.com/Blog/Lists/Posts/ViewPost.aspx?ID=249</guid>
    </item>
    <item>
      <title>Limiting the SharePoint People Picker</title>
      <link>http://www.synergyonline.com/Blog/Lists/Posts/ViewPost.aspx?ID=138</link>
      <description><![CDATA[<div><b>Body:</b> <div class="ExternalClass3E1B37EFEDF8436996CDDEA5373F2227"> <p>In <a href="/sharepoint/Pages/default.aspx" title="SharePoint">SharePoint​</a> there will be times where you will want to control what results the people picker returns. The most common scenarios are in an extranet or hosting environment. </p>
 <p>There are four strategies which can be used to limit the people picker. All of these are managed using STSADM commands. The four strategies are:- </p>
 <ol> <li>Applying a custom active directory filter </li>
 <li>Limiting the people picker search to within a site collection </li>
 <li>Limiting the people picker search to within an Active Directory(AD) Organisational Unit(OU) </li>
 <li>Disable returning windows accounts when the authentication method for the web application is via forms based authentication </li></ol>
 <p>Some of these commands are not very well known and some are new in MOSS SP1. </p>
 <h2>Custom Active Directory Filter </h2>
 <p>To limit the search to a custom AD filter use the STSADM property <a href="http://technet.microsoft.com/en-au/library/cc263452(TechNet.10).aspx">peoplepicker-searchadcustomfilter</a> </p>
 <p>This property is new in SP1 and when a people search is executed it will return results that only match the combination of the built in query and the custom filter that is defined for the site collection. </p>
 <p>To create a custom filter which will only return users with a title of Vice President run the following command for their site collection. </p>
 <p><span style="font-family:verdana;font-size:8pt"><strong>stsadm -o setproperty -url http://server/sites/vp-site -pn peoplepicker-searchadcustomfilter -pv (|(Title=Vice President))</strong></span> </p>
 <p>There is also a similar property with slightly different functionality called <a href="http://technet.microsoft.com/en-au/library/cc262988(TechNet.10).aspx">peoplepicker-searchadcustomquery</a>. This command is also available pre-SP1 however you should ensure that the Active Directory attribute that is being queried is indexed; otherwise there may be performance problems. </p>
 <h2>Search only within a site collection </h2>
 <p>This option is suitable to a classic extranet environment where the internal and external user accounts are in the active directory however you do not want the extranet users to be able to search and browse the directory listing. Note that this is not 100% secure, users can still search Active Directory using a fully qualified logon name, regardless of this property setting. To only list users who have been added to a site collection use the property - <a href="http://technet.microsoft.com/en-au/library/cc261988(TechNet.10).aspx">peoplepicker-onlysearchwithinsitecollection</a>. As an example: </p>
 <p><span style="font-family:verdana;font-size:8pt"><strong>stsadm -o setproperty –url http://extranet.company.com/sites/project1 –pn peoplepicker-onlysearchwithinsitecollection –pv yes</strong></span> </p>
 <p>Consider for this site collection there is an AD user account: 'Gavin Adams (COMPANY\gadams)' who is not a member of the site collection and the user 'John Doe (COMPANY\jdoe)' is already a member of the site collection. The behaviour that the users will see when they add a user to the site is as follows. </p>
 <div> <table border="0" style="border-collapse:collapse"> <colgroup> <col style="width:319px" /> <col style="width:143px" /></colgroup> <tbody valign="top"> <tr style="background-image:initial;background-attachment:initial;background-color:black"> <td style="border-top-width:1pt;border-right-width:0.5pt;border-bottom-width:1pt;border-left-width:1pt;border-top-style:solid;border-right-style:solid;border-bottom-style:solid;border-left-style:solid;border-top-color:rgb(64, 64, 64);border-right-color:currentcolor;border-bottom-color:rgb(64, 64, 64);border-left-color:rgb(64, 64, 64);padding-right:7px;padding-left:7px"> <p><span style="color:white"><strong>Method</strong></span></p></td>
 <td style="border-top-width:1pt;border-right-width:1pt;border-bottom-width:1pt;border-left-width:medium;border-top-style:solid;border-right-style:solid;border-bottom-style:solid;border-left-style:none;border-top-color:rgb(64, 64, 64);border-right-color:rgb(64, 64, 64);border-bottom-color:rgb(64, 64, 64);border-left-color:currentcolor;padding-right:7px;padding-left:7px"> <p style="text-align:center"><span style="color:white"><strong>Result</strong></span></p></td></tr>
 <tr style="background-image:initial;background-attachment:initial;background-color:silver"> <td style="border-top-width:medium;border-right-width:0.5pt;border-bottom-width:1pt;border-left-width:1pt;border-top-style:none;border-right-style:solid;border-bottom-style:solid;border-left-style:solid;padding-right:7px;padding-left:7px"> <p><strong>Search for Gavin in the select users popup</strong></p></td>
 <td style="border-top-width:medium;border-right-width:1pt;border-bottom-width:1pt;border-left-width:medium;border-top-style:none;border-right-style:solid;border-bottom-style:solid;border-left-style:none;padding-right:7px;padding-left:7px"> <p style="text-align:center">Fail</p></td></tr>
 <tr> <td style="border-top-width:medium;border-right-width:0.5pt;border-bottom-width:1pt;border-left-width:1pt;border-top-style:none;border-right-style:solid;border-bottom-style:solid;border-left-style:solid;padding-right:7px;padding-left:7px"> <p><strong>Search for John in the select users popup</strong></p></td>
 <td style="border-top-width:medium;border-right-width:1pt;border-bottom-width:1pt;border-left-width:medium;border-top-style:none;border-right-style:solid;border-bottom-style:solid;border-left-style:none;padding-right:7px;padding-left:7px"> <p style="text-align:center">Success</p></td></tr>
 <tr style="background-image:initial;background-attachment:initial;background-color:silver"> <td style="border-top-width:medium;border-right-width:0.5pt;border-bottom-width:1pt;border-left-width:1pt;border-top-style:none;border-right-style:solid;border-bottom-style:solid;border-left-style:solid;padding-right:7px;padding-left:7px"> <p><strong>Search for gadams in the select users popup</strong></p></td>
 <td style="border-top-width:medium;border-right-width:1pt;border-bottom-width:1pt;border-left-width:medium;border-top-style:none;border-right-style:solid;border-bottom-style:solid;border-left-style:none;padding-right:7px;padding-left:7px"> <p style="text-align:center">Fail</p></td></tr>
 <tr> <td style="border-top-width:medium;border-right-width:0.5pt;border-bottom-width:1pt;border-left-width:1pt;border-top-style:none;border-right-style:solid;border-bottom-style:solid;border-left-style:solid;padding-right:7px;padding-left:7px"> <p><strong>Search for COMPANY\gadams in the select users popup</strong></p></td>
 <td style="border-top-width:medium;border-right-width:1pt;border-bottom-width:1pt;border-left-width:medium;border-top-style:none;border-right-style:solid;border-bottom-style:solid;border-left-style:none;padding-right:7px;padding-left:7px"> <p style="text-align:center">Fail</p></td></tr>
 <tr style="background-image:initial;background-attachment:initial;background-color:silver"> <td style="border-top-width:medium;border-right-width:0.5pt;border-bottom-width:1pt;border-left-width:1pt;border-top-style:none;border-right-style:solid;border-bottom-style:solid;border-left-style:solid;padding-right:7px;padding-left:7px"> <p><strong>Enter Gavin in the users text box and click Check Names</strong></p></td>
 <td style="border-top-width:medium;border-right-width:1pt;border-bottom-width:1pt;border-left-width:medium;border-top-style:none;border-right-style:solid;border-bottom-style:solid;border-left-style:none;padding-right:7px;padding-left:7px"> <p style="text-align:center">Fail</p></td></tr>
 <tr> <td style="border-top-width:medium;border-right-width:0.5pt;border-bottom-width:1pt;border-left-width:1pt;border-top-style:none;border-right-style:solid;border-bottom-style:solid;border-left-style:solid;padding-right:7px;padding-left:7px"> <p><strong>Enter gadams in the users text box and click Check Names</strong></p></td>
 <td style="border-top-width:medium;border-right-width:1pt;border-bottom-width:1pt;border-left-width:medium;border-top-style:none;border-right-style:solid;border-bottom-style:solid;border-left-style:none;padding-right:7px;padding-left:7px"> <p style="text-align:center">Success</p></td></tr>
 <tr style="background-image:initial;background-attachment:initial;background-color:silver"> <td style="border-top-width:medium;border-right-width:0.5pt;border-bottom-width:1pt;border-left-width:1pt;border-top-style:none;border-right-style:solid;border-bottom-style:solid;border-left-style:solid;padding-right:7px;padding-left:7px"> <p><strong>Enter COMPANY\gadams in the users text box and click Check Names</strong></p></td>
 <td style="border-top-width:medium;border-right-width:1pt;border-bottom-width:1pt;border-left-width:medium;border-top-style:none;border-right-style:solid;border-bottom-style:solid;border-left-style:none;padding-right:7px;padding-left:7px"> <p style="text-align:center">Success</p></td></tr></tbody></table></div>
 <p> </p>
 <h2>Search only within an AD OU </h2>
 <p>To limit the search to a path with AD (ie an OU) use the operation <a href="http://technet.microsoft.com/en-au/library/cc263328(TechNet.10).aspx">setsiteuseraccountdirectorypath</a> </p>
 <p>This operation is new in SP1. Once this is set for a site collection no other users can be added to the site collection that are not within that OU. Note that only one OU path can be specified per site collection. An example of this command is:- </p>
 <p><span style="font-family:verdana;font-size:8pt"><strong>stsadm -o setsiteuseraccountdirectorypath -path &quot;OU=Employees,DC=Company,DC=com&quot; –url http://server/sites/teamsite</strong> </span></p>
 <p>Often administrative user accounts are in a different OU from the users for a site collection, therefore after the above operation has been applied to a site collection, the property <a href="http://technet.microsoft.com/en-au/library/cc263012(TechNet.10).aspx">peoplepicker-serviceaccountdirectorypaths</a> is used to define the location of the administrator accounts. For example:- </p>
 <p><span style="font-family:verdana;font-size:8pt"><strong>stsadm -o setproperty -url http://server/sites/teamsite -pn peoplepicker-serviceaccountdirectorypaths -pv &quot; OU=MOSS-Gods,DC=Company,DC=com</strong></span> </p>
 <p> </p>
 <h2>Non Windows Accounts only via FBA </h2>
 <p>If you have a web application that is configured to use forms based authentication and the account and membership provider is not Active Directory (eg a SQL database), then the property <a href="http://technet.microsoft.com/en-au/library/cc263264(TechNet.10).aspx">peoplepicker-nowindowsaccountsfornonwindowsauthenticationmode</a> can be set against the web application or zone so that the people search will not return any active directory user accounts. </p>
 <p>An example of the command with a web application https://extranet.company.com would be: </p>
 <p><span style="font-family:verdana;font-size:8pt"><strong>stsadm -o setproperty -url https://extranet.company.com -pn peoplepicker-nowindowsaccountsfornonwindowsauthenticationmode -pv yes</strong></span> </p>
 <p> </p></div></div>
<div><b>Published:</b> 6/26/2008 4:26 PM</div>
<div><b>Author:</b> <a href="http://www.synergyonline.com/company/Profiles/Pages/GavinAdams.aspx">Gavin Adams</a></div>
<div><b>PageKeywords:</b> Sharepoint Development, Interactive Website Design, SharePoint Workflow</div>
<div><b>PageTitle:</b> Limiting the SharePoint People Picker - SharePoint Tips from SharePoint Expert</div>
<div><b>PageDescription:</b> Limiting the SharePoint People Picker: Custom Active Directory Filter, Search only within a site collection, Search only within an AD OU, Non Windows Accounts only via FBA</div>
]]></description>
      <author>System Account</author>
      <pubDate>Fri, 05 Aug 2011 20:26:41 GMT</pubDate>
      <guid isPermaLink="true">http://www.synergyonline.com/Blog/Lists/Posts/ViewPost.aspx?ID=138</guid>
    </item>
    <item>
      <title>How do I do that again? Great tricks to make Microsoft Office work for you</title>
      <link>http://www.synergyonline.com/Blog/Lists/Posts/ViewPost.aspx?ID=248</link>
      <description><![CDATA[<div><b>Body:</b> <div class="ExternalClassA6921D7EF2F24AD9A0F468720B26C1DD"><p>In the post-holiday rush, you need to get several things done, but can’t remember just how to do something. After spending 10 minutes on a Google search, you have a Homer Simpson revelation (D’oh!). It happens to all of us. So here’s a list of some of the simple things in Microsoft Office we all seem to forget just as we need them. </p>
<h3><font style="font-weight:bold">Pin</font></h3>
 <p>One of my clients called the other day because she just couldn’t remember how to pin a file in Microsoft Word 2010. I suppose I should have been annoyed, as I’m the one who taught her about pinning, but I understood. Sometimes, you just can’t remember the easy things. </p>
<p>Pinning a file or location will keep it on the list of Recent Documents or Recent Places until it is unpinned. This is especially useful if you use a file constantly, or are using a particular network location for a project. No matter how many other files you open or locations you visit, the pinned items will stay put, as the unpinned ones fall off the list. </p>
<p>In a Microsoft program, to pin a file: </p>
<ul> <li>Click on the colored File tab</li>
 <li>Click on Recent</li>
 <li>Under Recent Documents*, hover over the greyed out push pin next to the file you want to pin</li>
 <li>Click on it</li></ul>
 <p>It will then move to the top of the list, and the pin will be ‘pushed in’ to hold it in place </p>
<p><img src="/Blog/PublishingImages/Recent.png" alt="Recent.png" style="margin-top:5px;margin-right:5px;margin-bottom:5px;margin-left:5px;width:500px;height:197px" /><br /></p>
<p>*In Excel, it would be Recent Workbooks; in PowerPoint, Recent Presentations, etc. </p>
<p>To pin a location: </p>
<ul> <li>Follow the same steps as above, but choose an item from the right side of the screen under Recent Places</li></ul>
 <p>To unpin a file or location, simply click on the push pin again. It will move to the recent list and will fall off as you open other files. You can also delete it by right clicking on the file and selecting “Remove from list”.  </p>
<p>In Windows 7, you can pin files from the Task bar as well. Right click on the program in the Taskbar and you’ll see a list of the 10 most recently used files for that program. When you hover over the file name, you’ll see that ‘shadow’ of a push pin to the right of the file name. Click on that and you pin the file. As with the programs, no matter how many files you open, pinned files will stay at the top of the list unless/until you unpin them.  </p>
<h3><font style="font-weight:bold">I need to use that file as a…</font></h3>
 <p>You just worked on a huge document/spreadsheet/presentation. It’s safely saved and you’ve closed out of it. Now, you realize you need it again as you want to use it as the foundation for a different document/spreadsheet/presentation. Because we all save everything we’re working on while we’re working on it (ahem…), you don’t want to open the file and take the chance of overwriting all that hard work. </p>
<p>Want to open a copy of a file, without disturbing the original?  </p>
<ul> <li>On the File Tab, go to Recent</li>
 <li>Highlight the file you want to copy from the Recent list</li></ul>
 <p>Right click on the file and select Open a <u>c</u>opy </p>
<p><img src="/Blog/PublishingImages/RecentList.png" alt="RecentList.png" style="margin-top:5px;margin-right:5px;margin-bottom:5px;margin-left:5px" /><br /></p>
<p>The file opens with Document/Workbook/Presentation1 in the title bar. Work on it as needed and do a Save As to put it where you need it with the appropriate title. </p>
<h3><font style="font-weight:bold">What the ‘x’?</font></h3>
 <p>If you’re using Office 2007 or 2010, you’ll notice the normal file extension ends with an ‘x’, such as .docx in Word or .xlsx in Excel. If the person you’re sending the file to is using Office 2003 or (gasp) earlier, they won’t be able to open these files. Or, if you receive files from someone using Office 2003 or earlier, you’ll notice it opens in something called “Compatibility Mode”. This just means it is from an earlier version of the program.  </p>
<p>As you’ll have to send this person files in Compatibility Mode, you have to do a Save As… and save as a (Program) 97-2003 (type of file). This will convert it to a .doc, .xls, etc. extension and your colleague will be able to open/edit the file.  </p>
<p><img src="/Blog/PublishingImages/SaveAs.png" alt="SaveAs.png" style="margin-top:5px;margin-right:5px;margin-bottom:5px;margin-left:5px;width:400px;height:261px" /><br /></p>
<h3><font style="font-weight:bold">Aero Shake </font></h3>
 <p>I had another client ask why his open files kept disappearing. One would stay open, but the rest would just vanish! They weren’t closed, just not visible. After a few conversations, I figured it out. He was using Aero Shake without realizing what was happening. </p>
<p>As mentioned in my blog article ‘<a href="/Blog/Lists/Posts/Post.aspx?ID=209">Discover some of the features of Windows 7 (before Windows 8 is released!)</a>, we all have too many Windows open. Then the desktop gets cluttered and you can’t find what you want. Windows 7 lets you clear everything but the one file you want to keep visible with Aero Shake.  </p>
<p>Ensure the file you want is active by clicking on the title bar. Then with the pointer in the title bar, keep the left mouse button depressed, and shake the file. (Move your mouse back and forth quickly.) This minimizes all the other open files and keeps that one file open. Want to bring everything back? Shake the open file again. Everything comes back in the same place and size they were before. </p>
<h3><font style="font-weight:bold">Have any more questions?</font></h3>
 <p>If you have any other questions, go to <a href="http://answers.microsoft.com/en-us" target="_blank">the Microsoft Community site.</a> You can usually find the answer there. If you can’t, ask me. I’ll see what I can do for you.</p></div></div>
<div><b>Category:</b> <a onclick="OpenPopUpPage('http://www.synergyonline.com/Blog/_layouts/listform.aspx?PageType=4&ListId={BEBD6B7C-8EDF-4976-8627-9238AFF8A903}&ID=10&RootFolder=*', RefreshPage); return false;" href="http://www.synergyonline.com/Blog/_layouts/listform.aspx?PageType=4&ListId={BEBD6B7C-8EDF-4976-8627-9238AFF8A903}&ID=10&RootFolder=*">Microsoft Office</a></div>
<div><b>Published:</b> 12/26/2012 3:36 PM</div>
<div><b>Author:</b> <a href="http://www.synergyonline.com/company/Profiles/Pages/Deborah-Zotian.aspx">Deborah Zotian</a></div>
<div><b>PageKeywords:</b> SharePoint, Microsoft, Sharepoint 2010</div>
<div><b>PageTitle:</b> How do I do that again? Great tricks to make Microsoft Office work for you</div>
<div><b>PageDescription:</b> A list of some of the simple things in Microsoft Office we all seem to forget just as we need them.</div>
]]></description>
      <author>System Account</author>
      <category>Microsoft Office</category>
      <pubDate>Wed, 26 Dec 2012 20:34:06 GMT</pubDate>
      <guid isPermaLink="true">http://www.synergyonline.com/Blog/Lists/Posts/ViewPost.aspx?ID=248</guid>
    </item>
    <item>
      <title>{Community} Technology Update 2010</title>
      <link>http://www.synergyonline.com/Blog/Lists/Posts/ViewPost.aspx?ID=11</link>
      <description><![CDATA[<div><b>Body:</b> <div class="ExternalClass0BE5D39584D9471D98D4B5D255A3E663"><table border="0" cellspacing="0" cellpadding="0"><tbody><tr><td width="593" valign="top"><p><font size="2">My last speaking engagement in Singapore will be at the upcoming CTU (Community Technology Update) event on 18 December 2010.  Here is my topic. </font></p>
<p><font size="2"><b>Enhancing SharePoint 2010 with Custom Features</b> </font></p>
<p><font size="2">A SharePoint Feature is an component that plugs into SharePoint offering some enhancement.  Not only are Features built in, they're also a fantastic way to flexibly customise SharePoint.  In this level 200 session, we'll introduce the basics of features, how they work, and see many examples of how you can enhance SharePoint using them.  Demos include changing SharePoint's ribbon, deploying web parts, and inserting new web controls into your web pages. </font></p>
<p><font size="2">Hope to see you there! </font></p>
<p><font size="2">To learn more about the event and what’s in store, keep reading.  <img class="wlEmoticon wlEmoticon-smile" alt="Smile" src="/Blog/PublishingImages/wlEmoticon-smile_2_32887535.png" style="border-bottom-style:none;border-right-style:none;border-top-style:none;border-left-style:none" /> </font></p>
<p><font size="2">  </font></p>
<p><font size="2"><i>Technical Updates for the community, by the community</i> </font></p>
<p><font size="2">The 7<sup>th</sup> iteration of CTU is back – Once again, the Singapore User Groups have come together to bring a full day of technical sharing ranging from topics for developers, IT professionals and database administrators. We’ve packed a full day of contents which is meant to get you up to date with the latest technologies in the Microsoft stack. If you’re one person who learns better only with practice, come on and sign up for our Hands-on Lab! </font></p>
<p><font size="2">As an exclusive member of SharePointPROs.SG, Singapore’s SharePoint User Group, you are invited to this event!</font></p>
<p><font size="2"></font> </p>
<table border="0" cellspacing="0" cellpadding="0"><tbody><tr><td width="106" valign="top"><p><font size="2">Date</font></p></td>
<td width="290" valign="top"><p><b><font size="2">18<sup>th</sup> December 2010</font></b></p></td></tr>
<tr><td width="106" valign="top"><p><font size="2">Time</font></p></td>
<td width="290" valign="top"><p><b><font size="2">0900 – 1730 hrs</font></b></p></td></tr>
<tr><td width="106" valign="top"><p><font size="2">Venue</font></p></td>
<td width="290" valign="top"><p><b><font size="2">Microsoft Singapore, </font></b></p>
<p><b><font size="2">One Marina Boulevard</font></b></p></td></tr>
<tr><td width="106" valign="top"><p><font size="2">Registration Fees</font></p></td>
<td width="290" valign="top"><p><font size="2"><b>$10 (Early-birds)</b> </font></p>
<p><b><font size="2">$15 (Walk-ins)</font></b></p></td></tr></tbody></table>
<p><font size="2"><b>Why you should attend this event:</b> </font></p>
<p><font size="2">- To learn about the latest changes in .NET, Microsoft virtualization technologies, Microsoft Lync, Microsoft Exchange </font></p>
<p><font size="2">- To participate in Hands-on-Lab: 1 covering Hyper-V and another to introduce Microsoft Azure </font></p>
<p><font size="2"><b>Who should attend this event:</b> </font></p>
<p><font size="2">- IT Professionals<b></b> </font></p>
<p><font size="2">- Developers<b></b> </font></p>
<p><font size="2">- Database Administrators<b></b> </font></p>
<p><font size="2">- Essentially you, as you’re one of our user group members!<b></b> </font></p>
<p><b><font size="2"></font></b> </p>
<p><font color="#ff0000" size="2">PS. If you’re tired from all the listening and would like to chill out during CTU, we’ve prepared 2 sets of Kinect to help you to loosen up! </font></p>
<p><b><font size="2"></font></b> </p>
<p align="left"><b><font size="2">To register to this event, go to </font></b><a title="Register Now" href="http://www.sgdotnet.org/events/CTU2010v2/SitePages/Register Now.aspx" target="_blank"><font size="2">http://www.sgdotnet.org/events/CTU2010v2/SitePages/Register%20Now.aspx</font></a><b></b><font size="2"><b>.</b> </font></p>
<p align="left"><b><font size="2">To find out more about the event, go to </font></b><a title="SG DOT NET Group Events" href="http://www.sgdotnet.org/events/CTU2010v2" target="_blank"><b><font size="2">http://www.sgdotnet.org/events/CTU2010v2</font></b></a><b><font size="2"> </font></b></p>
<p align="left"><b><font size="2">To find out why we’re charging for the event and other questions, go to </font></b><a title="SGDOTNET Group" href="http://www.sgdotnet.org/events/CTU2010v2/SitePages/FAQ.aspx" target="_blank"><b><font size="2">http://www.sgdotnet.org/events/CTU2010v2/SitePages/FAQ.aspx</font></b></a><b><font size="2"> </font></b></p>
<p align="left"><b><font size="2"></font></b> </p>
<p align="left"><b><font size="2">If you have any questions, please feel free to email to Alvin Lau (</font></b><a title="Email Alvin Lau" href="mailto:microlau@sgdotnet.org"><b><font size="2">microlau@sgdotnet.org</font></b></a><b><font size="2">)</font></b></p></td>
<td width="341" valign="top"><p align="center"><font size="2"><strong>Sponsored by </strong></font></p>
<p align="center"> </p>
<table border="0" cellspacing="0" cellpadding="0"><tbody><tr><td valign="top"><p><a title="Microsoft Most Valuable Professional" href="http://mvp.support.microsoft.com/" target="_blank"><b><font size="2"><img width="104" height="155" title="clip_image001_459c6ed4-7044-4956-a04b-f82a4e01ec9e_32887535" alt="Microsoft Most Valuable Professional" src="/Blog/Lists/Posts/Attachments/11/clip_image001_459c6ed4-7044-4956-a04b-f82a4e01ec9e_32887535_49ecaaae-5b6a-4af3-8489-e0744596b46b_574B35CE.jpg" border="0" style="background-image:none;border-bottom-width:0px;border-bottom-style:initial;border-bottom-color:initial;border-left-width:0px;border-left-style:initial;border-left-color:initial;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-top-style:initial;border-top-color:initial;border-right-width:0px;border-right-style:initial;border-right-color:initial;padding-top:0px" /></font></b></a><font size="2"><b>​</b><b></b></font></p></td></tr>
<tr><td valign="top"><p><a title="Microsoft" href="http://www.microsoft.com/singapore" target="_blank"><b><font size="2"><img width="183" height="63" title="clip_image002_06d20a19-1820-4b3e-80d4-94d02b5bf96c_32887535" alt="Microsoft" src="/Blog/Lists/Posts/Attachments/11/clip_image002_06d20a19-1820-4b3e-80d4-94d02b5bf96c_32887535_05a825fa-4e64-4a53-992b-3961dfb2c081_05388887.jpg" border="0" style="background-image:none;border-bottom-width:0px;border-bottom-style:initial;border-bottom-color:initial;border-left-width:0px;border-left-style:initial;border-left-color:initial;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-top-style:initial;border-top-color:initial;border-right-width:0px;border-right-style:initial;border-right-color:initial;padding-top:0px" /></font></b></a><font size="2"><b>​</b><b></b></font></p></td></tr></tbody></table>
<p align="center"><font size="2"><strong>Organised by </strong></font></p>
<p align="center"> </p>
<table border="0" cellspacing="0" cellpadding="0"><tbody><tr><td valign="top"><p><font size="2"></font> </p>
<p><a title="SGDotNet for Cool Developers" href="http://www.sgdotnet.org/events/CTU2010v2/" target="_blank"><font size="2"><img width="84" height="94" title="clip_image003_f5667e8b-7e14-4c2f-968e-406bc20bfcb1_32887535" alt="SGDotNet for Cool Developers" src="/Blog/Lists/Posts/Attachments/11/clip_image003_f5667e8b-7e14-4c2f-968e-406bc20bfcb1_32887535_9715534c-02d3-419e-80e6-faeeac7f03c0_05388887.jpg" border="0" style="background-image:none;border-bottom-width:0px;border-bottom-style:initial;border-bottom-color:initial;border-left-width:0px;border-left-style:initial;border-left-color:initial;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-top-style:initial;border-top-color:initial;border-right-width:0px;border-right-style:initial;border-right-color:initial;padding-top:0px" /> </font></a><font size="2"><b>​</b><b></b></font></p></td></tr>
<tr><td valign="top"><p><a title="Singapore Windows Group" href="http://sgwindowsgroup.org/" target="_blank"><font size="2"><img width="109" height="94" title="clip_image004_ed2ec8de-e754-408d-bdb8-2558e914a7d4_32887535" alt="Singapore Windows Group" src="/Blog/Lists/Posts/Attachments/11/clip_image004_ed2ec8de-e754-408d-bdb8-2558e914a7d4_32887535_ad9c95d6-0d41-4d52-9fd1-226d39243b84_05388887.jpg" border="0" style="background-image:none;border-bottom-width:0px;border-bottom-style:initial;border-bottom-color:initial;border-left-width:0px;border-left-style:initial;border-left-color:initial;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-top-style:initial;border-top-color:initial;border-right-width:0px;border-right-style:initial;border-right-color:initial;padding-top:0px" /></font></a><font size="2"><b>​</b><b></b></font></p></td></tr></tbody></table></td></tr></tbody></table></div></div>
<div><b>Published:</b> 12/2/2010 10:21 AM</div>
<div><b>Author:</b> <a href="http://www.synergyonline.com/company/Profiles/Pages/RandyWilliams.aspx">Randy Williams</a></div>
<div><b>PageKeywords:</b> sharepoint 2010, SharePoint Development, SharePoint Expert</div>
<div><b>PageTitle:</b> Enhancing SharePoint 2010 with Custom Features: Community Technology Update 2010</div>
<div><b>PageDescription:</b> Community Technology Update event: Enhancing SharePoint 2010 with Custom Features</div>
<div><b>Attachments:</b> <a href="http://www.synergyonline.com/Blog/Lists/Posts/Attachments/11/clip_image001_459c6ed4-7044-4956-a04b-f82a4e01ec9e_32887535_49ecaaae-5b6a-4af3-8489-e0744596b46b_574B35CE.jpg">http://www.synergyonline.com/Blog/Lists/Posts/Attachments/11/clip_image001_459c6ed4-7044-4956-a04b-f82a4e01ec9e_32887535_49ecaaae-5b6a-4af3-8489-e0744596b46b_574B35CE.jpg</a><br /><a href="http://www.synergyonline.com/Blog/Lists/Posts/Attachments/11/clip_image002_06d20a19-1820-4b3e-80d4-94d02b5bf96c_32887535_05a825fa-4e64-4a53-992b-3961dfb2c081_05388887.jpg">http://www.synergyonline.com/Blog/Lists/Posts/Attachments/11/clip_image002_06d20a19-1820-4b3e-80d4-94d02b5bf96c_32887535_05a825fa-4e64-4a53-992b-3961dfb2c081_05388887.jpg</a><br /><a href="http://www.synergyonline.com/Blog/Lists/Posts/Attachments/11/clip_image003_f5667e8b-7e14-4c2f-968e-406bc20bfcb1_32887535_9715534c-02d3-419e-80e6-faeeac7f03c0_05388887.jpg">http://www.synergyonline.com/Blog/Lists/Posts/Attachments/11/clip_image003_f5667e8b-7e14-4c2f-968e-406bc20bfcb1_32887535_9715534c-02d3-419e-80e6-faeeac7f03c0_05388887.jpg</a><br /><a href="http://www.synergyonline.com/Blog/Lists/Posts/Attachments/11/clip_image004_ed2ec8de-e754-408d-bdb8-2558e914a7d4_32887535_ad9c95d6-0d41-4d52-9fd1-226d39243b84_05388887.jpg">http://www.synergyonline.com/Blog/Lists/Posts/Attachments/11/clip_image004_ed2ec8de-e754-408d-bdb8-2558e914a7d4_32887535_ad9c95d6-0d41-4d52-9fd1-226d39243b84_05388887.jpg</a><br /><a href=""></a></div>
]]></description>
      <author>System Account</author>
      <pubDate>Fri, 05 Aug 2011 15:21:47 GMT</pubDate>
      <guid isPermaLink="true">http://www.synergyonline.com/Blog/Lists/Posts/ViewPost.aspx?ID=11</guid>
    </item>
    <item>
      <title>Speaking at Best Practices Conference, San Diego 2011</title>
      <link>http://www.synergyonline.com/Blog/Lists/Posts/ViewPost.aspx?ID=7</link>
      <description><![CDATA[<div><b>Body:</b> <div class="ExternalClassA2080738EEE74BB8AB6B63BE2D737492"> <p><font size="2">The Best Practices Conference (BPC) runs twice a year in the states, and I was lucky to have been squeezed in as a last-minute speaker for their March event.  With BPC, the focus is a little different than traditional conferences.  You might say it’s more of a real-world focused event.  Their tag line is “Clarity. Direction. Confidence.”  As a speaker, here is my focus (as quoted):</font></p>
 <blockquote> <p><font size="2">In short, we want to offer Clarity in areas where there is confusion.  Your presentation should take an area of confusion and bring clarity to that confusion.  We want to offer Direction in scenarios where there are multiple, seemingly equal choices.  The reason I say “seemingly” is because once Clarity is brought to the situation, the choices usually become more clear in terms of good, better and best. It’s up to you to provide the differential diagnosis between good, better and best choices in your presentations.  And finally, we want them to return to the office with Confidence that they can and will succeed with their SharePoint deployment.  If they receive the first two elements – Clarity and Direction – the Confidence will naturally follow.</font></p></blockquote>
 <p><font size="2">I really like this concept, because there *is* a lot of confusion in SharePoint, and those that know me my focus is to bring clarity and practical guidance to my talks.  This year the event on March 7-9 at the Torrey Pines Hilton in La Jolla.  For this presentation, I will be creating two brand new sessions and reworking one of my most popular sessions.  Here are the three sessions I’ll be presenting:</font></p>
 <p><b><font size="2">(Best Practices for) Optimizing SQL Server for Blazing Fast SharePoint Sites</font></b></p>
 <p><font size="2">Bottlenecks in SQL Server are one of the top reasons for badly performing SharePoint sites. And without any clear prescriptive guidance, most SharePoint admins just point SharePoint to a database server.  This session covers specific improvements that can quickly boost performance.  Among others, we'll look at managing filegroups, tempdb, database statistics and types of storage.  We'll also see a number of real demos to prove that these improvements make a measureable difference.  </font> </p>
<p><b><font size="2">Plugging Holes in your SharePoint 2010 Disaster Recovery Strategy</font></b>  </p>
<p><font size="2">SharePoint 2010 has some great features for backup and restore, but will out-of-the-box recovery provide the level of protection you need?  This session is structured around four different recovery scenarios from item to farm-level.  We'll demonstrate and discuss the specific recovery steps and see if any holes exist.  Recommendations are then provided to ensure your strategy will hold when you need it most.</font>  </p>
<p><b><font size="2">Using Visual Studio 2010 to Build SharePoint 2010 Solutions</font></b>  </p>
<p><font size="2">At long last, Microsoft has built in, first-class support for developing SharePoint projects in Visual Studio 2010.  This session will cover packaging your code into WSP solutions, managing your features, and debugging.  We'll also look at some add-ins that will improve your productivity and demonstrates the extensibility that Visual Studio 2010 has.  This session is geared for both seasoned 2007 developers and new ones.</font>  </p>
<p><font size="2">In total, there are 9 different tracks and 100 different sessions, so there is sure to be something for everyone.  There are a few seats still left.  For more information or to register, see the conference website at </font><a title="https://www.bestpracticesconference.com" href="https://www.bestpracticesconference.com/"><font size="2">https://www.bestpracticesconference.com</font></a><font size="2">.</font>  </p>
<p> </p>
<p><a href="/Blog/Lists/Posts/Attachments/7/bpcWideBanner_3_719D8A8E_2_630EBAD8.jpg"><img title="bpcWideBanner_3_719D8A8E" border="0" alt="bpcWideBanner_3_719D8A8E" src="/Blog/Lists/Posts/Attachments/7/bpcWideBanner_3_719D8A8E_thumb_630EBAD8.jpg" width="244" height="29" style="background-image:none;border-bottom-width:0px;border-bottom-style:initial;border-bottom-color:initial;border-left-width:0px;border-left-style:initial;border-left-color:initial;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-top-style:initial;border-top-color:initial;border-right-width:0px;border-right-style:initial;border-right-color:initial;padding-top:0px" /></a> </p></div></div>
<div><b>Published:</b> 2/13/2011 10:15 AM</div>
<div><b>Author:</b> <a href="http://www.synergyonline.com/company/Profiles/Pages/RandyWilliams.aspx">Randy Williams</a></div>
<div><b>PageKeywords:</b> SharePoint consultant, SharePoint Workflow, SharePoint Consulting</div>
<div><b>PageTitle:</b> Speaking at Best Practices Conference, San Diego 2011</div>
<div><b>PageDescription:</b> Best Practices Conference, San Diego 2011: (Best Practices for) Optimizing SQL Server for Blazing Fast SharePoint Sites, Plugging Holes in your SharePoint 2010 Disaster Recovery Strategy, Using Visual Studio 2010 to Build SharePoint 2010 Solutions</div>
<div><b>Attachments:</b> <a href="http://www.synergyonline.com/Blog/Lists/Posts/Attachments/7/bpcWideBanner_3_719D8A8E_2_630EBAD8.jpg">http://www.synergyonline.com/Blog/Lists/Posts/Attachments/7/bpcWideBanner_3_719D8A8E_2_630EBAD8.jpg</a><br /><a href="http://www.synergyonline.com/Blog/Lists/Posts/Attachments/7/bpcWideBanner_3_719D8A8E_thumb_630EBAD8.jpg">http://www.synergyonline.com/Blog/Lists/Posts/Attachments/7/bpcWideBanner_3_719D8A8E_thumb_630EBAD8.jpg</a><br /><a href=""></a></div>
]]></description>
      <author>System Account</author>
      <pubDate>Fri, 05 Aug 2011 15:15:45 GMT</pubDate>
      <guid isPermaLink="true">http://www.synergyonline.com/Blog/Lists/Posts/ViewPost.aspx?ID=7</guid>
    </item>
    <item>
      <title>Speaking at SharePoint Conference New Zealand 2011</title>
      <link>http://www.synergyonline.com/Blog/Lists/Posts/ViewPost.aspx?ID=8</link>
      <description><![CDATA[<div><b>Body:</b> <div class="ExternalClass451BE3F068CE42B18692F06A9BE2F353"> <p><font size="2">I’m very excited to be making my first trip to New Zealand in March 2011 to speak at the SharePoint Conference New Zealand.  This event is run by Debbie Ireland and her amazing team at EnvisionIT, the same company I worked with to bring this event to Singapore last October.  The conference date is March 16 and 17 in Wellington.</font></p>
 <p><font size="2">In addition to these two, jam-packed days of content, there will also be half-day, hands-on workshops running the day before and after the conference.  Some of these still have seats, but don’t wait--I know these are going fast.  One of my workshop sessions is a SharePoint 2010 session for developers scheduled on March 15.</font></p>
 <p><font size="2">For the two-day conference, I have one speaking session here:</font></p>
 <p><font size="2"><strong>Using Visual Studio 2010 to Build SharePoint 2010 Solutions </strong></font></p>
 <p><font size="2">At long last, Microsoft has built in, first-class support for developing SharePoint projects in Visual Studio 2010. This session will cover packaging your code into WSP solutions, managing your features, and debugging. We'll also look at some add-ins that will improve your productivity and demonstrates the extensibility that Visual Studio 2010 has. This session is geared for both seasoned 2007 developers and new ones.</font></p>
 <p><font size="2">Also, I’m also going to be working on a community challenge developer challenge at the event.  This is going to be a lot of fun as we will be building a real solution for various community organizations in New Zealand.  You can learn more about this on Debbie’s blog at </font><a title="http://www.envisionit.co.nz/DebbiesBlog/default.aspx" href="http://www.envisionit.co.nz/DebbiesBlog/default.aspx" target="_blank"><font size="2">http://www.envisionit.co.nz/DebbiesBlog/default.aspx</font></a><font size="2">.  </font></p>
 <p><font size="2">You can also find me at a few of the ask the expert sessions.  Please come by and bring your questions.</font></p>
 <p><font size="2">Oh, and did I mention that Joel Oleson and Mark Miller are doing keynote sessions?  You don’t want to miss these guys!</font></p>
 <p><font size="2">For more information on the event, see </font><a title="http://www.sharepointconference.co.nz" href="http://www.sharepointconference.co.nz/"><font size="2">http://www.sharepointconference.co.nz</font></a><font size="2">.  Hope to see you there.</font></p>
 <p><a href="http://www.sharepointconference.co.nz/" target="_blank"><font size="2"><img title="test_3_690E5D8B" border="0" alt="test_3_690E5D8B" src="/Blog/Lists/Posts/Attachments/8/test_3_690E5D8B_5e6d2872-fae6-4591-ae32-d3f3abc02410_7130D1FE.png" width="244" height="46" style="background-image:none;border-bottom-width:0px;border-bottom-style:initial;border-bottom-color:initial;border-left-width:0px;border-left-style:initial;border-left-color:initial;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-top-style:initial;border-top-color:initial;border-right-width:0px;border-right-style:initial;border-right-color:initial;padding-top:0px" /></font></a> </p></div></div>
<div><b>Published:</b> 2/13/2011 10:16 AM</div>
<div><b>Author:</b> <a href="http://www.synergyonline.com/company/Profiles/Pages/RandyWilliams.aspx">Randy Williams</a></div>
<div><b>PageKeywords:</b> Sharepoint 2010, SharePoint Development, SharePoint Expert</div>
<div><b>PageTitle:</b> Speaking at SharePoint Conference New Zealand 2011</div>
<div><b>PageDescription:</b> Using Visual Studio 2010 to Build SharePoint 2010 Solutions - Speaking at SharePoint Conference New Zealand 2011</div>
<div><b>Attachments:</b> <a href="http://www.synergyonline.com/Blog/Lists/Posts/Attachments/8/test_3_690E5D8B_5e6d2872-fae6-4591-ae32-d3f3abc02410_7130D1FE.png">http://www.synergyonline.com/Blog/Lists/Posts/Attachments/8/test_3_690E5D8B_5e6d2872-fae6-4591-ae32-d3f3abc02410_7130D1FE.png</a><br /><a href=""></a></div>
]]></description>
      <author>System Account</author>
      <pubDate>Fri, 05 Aug 2011 15:17:01 GMT</pubDate>
      <guid isPermaLink="true">http://www.synergyonline.com/Blog/Lists/Posts/ViewPost.aspx?ID=8</guid>
    </item>
    <item>
      <title>SharePoint Saturday San Diego Presentations</title>
      <link>http://www.synergyonline.com/Blog/Lists/Posts/ViewPost.aspx?ID=6</link>
      <description><![CDATA[<div><b>Body:</b> <div class="ExternalClassBE4604EDF8184C0DB285AD110A54E0C0"> <p><font size="2">For those that came to the SharePoint Saturday event on Feb 26, 2011, I am making my slides available online for download.</font></p>
 <p><font size="2"><a href="/blog/blog-moss/Files/Randy%20Williams-Data%20Access%20Technologies.pdf" title="Randy Williams-Data Access Technologies">Data Access Technologies</a></font></p>
 <p><font size="2"><a href="/blog/blog-moss/Files/Randy%20Williams-Using%20Visual%20Studio%20to%20Build%20SharePoint%202010%20Solutions.pdf" title="Randy Williams-Using Visual Studio to Build SharePoint 2010 Solutions">Using Visual Studio to Build SharePoint 2010 Solutions</a></font></p>
 <p><font size="2">Also, here are some of my previous blog articles that were part of some of my demonstrations.  I do have to admit, these were written for the beta version of SharePoint 2010, but 99% of still applies.</font></p>
 <p><a href="/blog/blog-moss/Lists/Posts/Post.aspx?ID=117" title="Overview of using REST in SharePoint 2010 - MOSS Blog"><font size="2">Overview of using REST in SharePoint 2010 - MOSS Blog</font></a></p>
 <p><a href="http://www.google.com/url?sa=t&amp;source=web&amp;cd=2&amp;sqi=2&amp;ved=0CB8QFjAB&amp;url=http://www.synergyonline.com/blog/blog-moss/Lists/Posts/Post.aspx?ID%3D118&amp;ei=rMdpTZrtLJGksQPVt7WmBA&amp;usg=AFQjCNFXeAD2nld7g73hX43shFr6y9F7_w" title="Developing a Silverlight 3.0 Web part for SharePoint 2010 - MOSS Blog"><font size="2">Developing a Silverlight 3.0 Web part for SharePoint 2010 - MOSS Blog</font></a></p>
 <p><a href="http://www.google.com/url?sa=t&amp;source=web&amp;cd=1&amp;ved=0CBcQFjAA&amp;url=http://www.synergyonline.com/blog/blog-moss/Lists/Posts/Post.aspx?ID%3D116&amp;ei=1MdpTbXTK4iisQP7282mBA&amp;usg=AFQjCNHD5UgN0gtFCF5MtqW2GHNKydq4Tw" title="Creating a Simple Visual Web Part in VS2010 - MOSS Blog"><font size="2">Creating a Simple Visual Web Part in VS2010 - MOSS Blog</font></a></p>
 <p><font size="2">Sorry that I couldn’t make the SharePint social at Hard Rock Cafe.  I’ve got to board an early flight for Redmond for annual MVP summit.  Till next time,</font></p>
 <p><font size="2"></font></p></div></div>
<div><b>Published:</b> 2/26/2011 10:14 AM</div>
<div><b>Author:</b> <a href="http://www.synergyonline.com/company/Profiles/Pages/RandyWilliams.aspx">Randy Williams</a></div>
<div><b>PageKeywords:</b> Shareoint Development, SharePoint 2010, SharePoint Workflow</div>
<div><b>PageTitle:</b> SharePoint Saturday San Diego Presentations</div>
<div><b>PageDescription:</b> Data Access Technologies, Using Visual Studio to Build SharePoint 2010 Solutions - From SharePoint Saturday San Diego Presentations</div>
]]></description>
      <author>System Account</author>
      <pubDate>Fri, 05 Aug 2011 15:14:33 GMT</pubDate>
      <guid isPermaLink="true">http://www.synergyonline.com/Blog/Lists/Posts/ViewPost.aspx?ID=6</guid>
    </item>
    <item>
      <title>Presentation for SharePoint Saturday Los Angeles–April 2011</title>
      <link>http://www.synergyonline.com/Blog/Lists/Posts/ViewPost.aspx?ID=5</link>
      <description><![CDATA[<div><b>Body:</b> <div class="ExternalClassF6211873AAA14BD59CEEB256BE43A629"> <p>We had a great turnout for SharePoint Saturday LA on April 2. About 300 people were there and other than the chilly wind that blew through the Santa Monica campus every now and then, it was a great venue.  Thanks to speakers, sponsors and attendees who turned out. I was pleasantly surprised that I had at least 60 attendees for my session. I hope it was a good session for all of you.</p>
 <p>As requested, here is my presentation from the event and a few pictures.  </p>
 <p><strong>Using Visual Studio to Build SharePoint 2010 Solutions</strong></p>
 <p>At long last, Microsoft has built in, first-class support for developing SharePoint projects in Visual Studio 2010.  This session will cover packaging your code into WSP solutions, managing your features, and debugging.  We'll also look at some add-ins that will improve your productivity and demonstrates the extensibility that Visual Studio 2010 has.  This session is geared for both seasoned 2007 developers and new ones.</p>
 <p><a title="http://slidesha.re/eXweXN" href="http://slidesha.re/eXweXN" target="_blank">http://slidesha.re/eXweXN</a></p>
 <p><a href="/Blog/Lists/Posts/Attachments/5/untitled_2_765315C9_2_3706E389.png"><img height="183" width="244" border="0" title="untitled_2_765315C9" alt="untitled_2_765315C9" src="/Blog/Lists/Posts/Attachments/5/untitled_2_765315C9_thumb_3706E389.png" style="background-image:none;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-top-style:none;border-right-style:none;border-bottom-style:none;border-left-style:none;padding-left:0px;padding-right:0px;display:inline;padding-top:0px" /></a> </p>
 <p><a href="/Blog/Lists/Posts/Attachments/5/198567_10150209830697642_612892641_8756793_3286210_n_4_61619356_2_3706E389.jpg"><img height="184" width="244" border="0" title="198567_10150209830697642_612892641_8756793_3286210_n_4_61619356" alt="198567_10150209830697642_612892641_8756793_3286210_n_4_61619356" src="/Blog/Lists/Posts/Attachments/5/198567_10150209830697642_612892641_8756793_3286210_n_4_61619356_thumb_3706E389.jpg" style="background-image:none;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-top-style:none;border-right-style:none;border-bottom-style:none;border-left-style:none;padding-left:0px;padding-right:0px;display:inline;padding-top:0px" /></a> </p>
 <p><a href="/Blog/Lists/Posts/Attachments/5/195840_10150209830582642_612892641_8756790_1412654_n_2_61619356_2_3706E389.jpg"><img height="184" width="244" border="0" title="195840_10150209830582642_612892641_8756790_1412654_n_2_61619356" alt="195840_10150209830582642_612892641_8756790_1412654_n_2_61619356" src="/Blog/Lists/Posts/Attachments/5/195840_10150209830582642_612892641_8756790_1412654_n_2_61619356_thumb_3706E389.jpg" style="background-image:none;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-top-style:none;border-right-style:none;border-bottom-style:none;border-left-style:none;padding-left:0px;padding-right:0px;display:inline;padding-top:0px" /></a> </p></div></div>
<div><b>Category:</b> <a onclick="OpenPopUpPage('http://www.synergyonline.com/Blog/_layouts/listform.aspx?PageType=4&ListId={BEBD6B7C-8EDF-4976-8627-9238AFF8A903}&ID=4&RootFolder=*', RefreshPage); return false;" href="http://www.synergyonline.com/Blog/_layouts/listform.aspx?PageType=4&ListId={BEBD6B7C-8EDF-4976-8627-9238AFF8A903}&ID=4&RootFolder=*">Development</a></div>
<div><b>Published:</b> 4/7/2011 11:13 AM</div>
<div><b>Author:</b> <a href="http://www.synergyonline.com/company/Profiles/Pages/RandyWilliams.aspx">Randy Williams</a></div>
<div><b>PageKeywords:</b> Sharepoint 2010, SharePoint Development, SharePoint Expert</div>
<div><b>PageTitle:</b> Presentation for SharePoint Saturday Los Angeles</div>
<div><b>PageDescription:</b> Using Visual Studio to Build SharePoint 2010 Solutions - Presentation for SharePoint Saturday Los Angeles</div>
<div><b>Attachments:</b> <a href="http://www.synergyonline.com/Blog/Lists/Posts/Attachments/5/195840_10150209830582642_612892641_8756790_1412654_n_2_61619356_2_3706E389.jpg">http://www.synergyonline.com/Blog/Lists/Posts/Attachments/5/195840_10150209830582642_612892641_8756790_1412654_n_2_61619356_2_3706E389.jpg</a><br /><a href="http://www.synergyonline.com/Blog/Lists/Posts/Attachments/5/195840_10150209830582642_612892641_8756790_1412654_n_2_61619356_thumb_3706E389.jpg">http://www.synergyonline.com/Blog/Lists/Posts/Attachments/5/195840_10150209830582642_612892641_8756790_1412654_n_2_61619356_thumb_3706E389.jpg</a><br /><a href="http://www.synergyonline.com/Blog/Lists/Posts/Attachments/5/198567_10150209830697642_612892641_8756793_3286210_n_4_61619356_2_3706E389.jpg">http://www.synergyonline.com/Blog/Lists/Posts/Attachments/5/198567_10150209830697642_612892641_8756793_3286210_n_4_61619356_2_3706E389.jpg</a><br /><a href="http://www.synergyonline.com/Blog/Lists/Posts/Attachments/5/198567_10150209830697642_612892641_8756793_3286210_n_4_61619356_thumb_3706E389.jpg">http://www.synergyonline.com/Blog/Lists/Posts/Attachments/5/198567_10150209830697642_612892641_8756793_3286210_n_4_61619356_thumb_3706E389.jpg</a><br /><a href="http://www.synergyonline.com/Blog/Lists/Posts/Attachments/5/untitled_2_765315C9_2_3706E389.png">http://www.synergyonline.com/Blog/Lists/Posts/Attachments/5/untitled_2_765315C9_2_3706E389.png</a><br /><a href="http://www.synergyonline.com/Blog/Lists/Posts/Attachments/5/untitled_2_765315C9_thumb_3706E389.png">http://www.synergyonline.com/Blog/Lists/Posts/Attachments/5/untitled_2_765315C9_thumb_3706E389.png</a><br /><a href=""></a></div>
]]></description>
      <author>System Account</author>
      <category>Development</category>
      <pubDate>Fri, 05 Aug 2011 15:13:35 GMT</pubDate>
      <guid isPermaLink="true">http://www.synergyonline.com/Blog/Lists/Posts/ViewPost.aspx?ID=5</guid>
    </item>
    <item>
      <title>SharePoint 2010 UPS :: Problem when working with connections</title>
      <link>http://www.synergyonline.com/Blog/Lists/Posts/ViewPost.aspx?ID=144</link>
      <description><![CDATA[<div><b>Body:</b> <div class="ExternalClass863D7FF124754C4681691F988B21DF41"><p>Those working regularly with SharePoint Server 2010 know the frustration with working with the User Profile Service (UPS).  There are tons of blog articles are out there discussing the challenges.  Let me add this one to the pile that frustrated me this week. </p>
<p>One of the common problems when working with UPS is when you try to view, add or edit synchronization connections.  A error reported is the dreaded “The query returns nothing”.  Before this week, I’ve seen two main reasons for this:  1) the FIM service is not running.  2) the synchronization service was changed to an account other than the farm account.  This week I had a third reason, and it was the toughest yet. </p>
<p>The farm was a basic two-server farm.  One WFE/app server, and one SQL server.  Prior to my getting involved in the project, the UPS service was provisioned and a connection to AD was successfully added and a few thousand profiles were imported.  Several days later, it stopped working and “The query returns nothing” was showing when trying to view the connections.  Having confirmed that it wasn’t any of the usual reasons listed above, I started doing some deeper troubleshooting.  I noticed that when trying to view the connections, the Windows application log would show an HTTP 407 error (proxy authentication required).  I would also see this same 407 error in Central Admin if I tried to add a new connection to UPS.  This caused me to do some serious head scratching.  Why on earth am I getting a proxy server error?  I could get to Central Admin, so I knew my logon’s proxy settings were working, but I double checked in IE anyway.  They were correct.  All communication should be on this one WFE/app server anyway—when viewing connections, nothing should be trying to connect to a proxy server.  What gives? </p>
<p>We then used remote desktop to log onto the server using the same logon account.  (Note: the account we were using was a regular user account that was a SharePoint farm administrator—we did not use the farm account to logon).  We started Central Admin, tested it, and got the same problem.  For the next hour or so, we started double checking everything, ULS logs, MIISClient.exe, you name it.  I couldn’t find any good reason for this.  I really wanted to run Fiddler, but that was not an option.  Frustrating.  So, I took a step back and reflected on what I knew about the architecture, and here are two of the key things that helped: </p>
<blockquote> <p>As described in the most authoritative resources on the UPS</p>
<p> <a href="http://www.harbar.net/articles/sp2010ups2.aspx" target="_blank" title="Issues with SharePoint Server">&quot;Stuck on Starting&quot;: Common Issues with SharePoint Server 2010 User Profile Synchronization</a></p>
<p><a href="http://www.harbar.net/articles/sp2010ups.aspx" target="_blank" title="Implementing SharePoint Server 2010">Rational Guide to Implementing SharePoint Server 2010 User Profile Synchronization</a></p>
<p><a href="http://technet.microsoft.com/en-us/library/ee721049.aspx" target="_blank" title="SharePoint Server 2013">Synchronize user and group profiles is SharePoint Server 2013</a></p>
<p>you must grant the farm account the “allow log on locally” user right on the server that is configured to run the UPS synchronization service.  (The UPS synch service runs under the context of the farm account).  This is done to ensure the that it can provision the Forefront Identity Management components when the service is started.  And, in fact, when starting the UPS synch service, the farm account does log on locally.  This is evidenced by a local Windows profile that is created.  (BTW, do not confuse this Windows Profile with a SharePoint User Profile – totally different concepts but the same term.  You can see the Windows profiles here:  Control Panel –&gt; System –&gt; Advanced System Settings –&gt; User Profile, Settings button.) </p>
<p>When you are working with with UPS synchronization connections (displaying, creating, etc.), communication between the UPS service app and Forefront Identity Manager (FIM) occurs.  Specifically, the UPS service app calls into an HTTP service provided by the FIM Service on port 5725.  (Note: this service is not run within IIS but the Microsoft.ResourceManagement.Service.exe, the process name for the FIM Service).</p></blockquote>
 <p>It was about this time I tried to put these two important bullets together in light of the problem:  When viewing the list of connections, the farm account calls into the FIM service to retrieve connection details.  This was not working and throwing a 407 error.  These next two questions came to mind: </p>
<p>1. Is it possible that the farm account is using the proxy settings in its local Windows profile when calling into the FIM service?  </p>
<p>2. If yes, what are the proxy settings for the farm account in this Windows profile?  </p>
<p>To test, we log into the server using the farm account.  Not advised, but sometimes you do what you gotta do.  The proxy server settings were configured correctly as per the domain policy, but we decided to turn off the proxy server off and try again from the remote browser.  It worked!  The connection was now displaying correctly.  We flip the proxy server back on and sure enough, we get the “The query returns nothing” problem from the remote browser.  We decided to keep the proxy server off, since the farm account will not be connecting to any external resources that require a proxy server.  Problem solved. </p>
<p>Lesson learned:  When the UPS service app calls into the FIM, it is using the settings of its local Windows profile on the server which is running the UPS synch service.  And if these settings are not configured correctly (e.g. because of a GPO), it will cause the communication to fail.  In our case, since it had been working, our only guess is that a policy change occurred at the domain level that affected the Windows profile.</p></div></div>
<div><b>Published:</b> 2/13/2011 10:23 AM</div>
<div><b>Author:</b> <a href="http://www.synergyonline.com/company/Profiles/Pages/RandyWilliams.aspx">Randy Williams</a></div>
<div><b>PageKeywords:</b> SharePoint Branding, SharePoint Design, SharePoint Development</div>
<div><b>PageTitle:</b> SharePoint 2010 UPS :: Problem when working with connections</div>
<div><b>PageDescription:</b> Problem when working with connections - SharePoint 2010 UPS</div>
]]></description>
      <author>System Account</author>
      <pubDate>Mon, 08 Aug 2011 15:23:43 GMT</pubDate>
      <guid isPermaLink="true">http://www.synergyonline.com/Blog/Lists/Posts/ViewPost.aspx?ID=144</guid>
    </item>
    <item>
      <title>Expanding and collapsing the left navigation in SharePoint 2010</title>
      <link>http://www.synergyonline.com/Blog/Lists/Posts/ViewPost.aspx?ID=157</link>
      <description><![CDATA[<div><b>Body:</b> <div class="ExternalClassAC8A378EC710487EA6419B18ADC70CF0"><p>In your left navigation you may want to hide pages/sub-sites because the navigation is long and expands the height of the page. Sure, you can tweak the left navigation under navigation settings but this may not be an option based on your portal rules. </p>
 <p>Out of the box SharePoint navigation looks like figure 1.0. </p>
 <p><a href="/Blog/Lists/Posts/Attachments/157/Figure10_2_7E2EF328.png"><img width="203" height="244" title="Figure10" alt="Figure10" src="/Blog/Lists/Posts/Attachments/157/Figure10_thumb_7E2EF328.png" border="0" style="border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;padding-right:0px;padding-left:0px;margin-right:auto;margin-left:auto;float:none;display:block;background-image:none" /></a> </p>
 <p align="center"><em>Figure 1.0</em></p>
 <p>We want the left navigation to look like figure 2.0 when the page loads. The items in the section “Marketing” are collapsed when the page loads and clicking “Marketing” will expand the section like figure 1.0</p>
 <p><a href="/Blog/Lists/Posts/Attachments/157/Figure20_2_7E2EF328.png"><img width="214" height="129" title="Figure20" alt="Figure20" src="/Blog/Lists/Posts/Attachments/157/Figure20_thumb_7E2EF328.png" border="0" style="border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;padding-right:0px;padding-left:0px;margin-right:auto;margin-left:auto;float:none;display:block;background-image:none" /></a> </p>
 <p align="center"><em>Figure 2.0</em></p>
 <p align="left">To implement the above feature we have the following requirements</p>
 <ol> <li> <div align="left">Collapse the items under a section when the page loads</div>
 </li>
<li> <div align="left">Expand a section when its header is clicked</div></li></ol>
 <p align="left">We can use jQuery and custom data attributes in HTML 5 to expand and collapse the left navigation. It is important to understand the source HTML before we collapse a section on page load. Take a look at the figure 3.0 which shows the html source code for the Marketing section</p>
 <p align="left"><a href="/Blog/Lists/Posts/Attachments/157/Figure30_2_7E2EF328.png"><img width="585" height="310" title="Figure30" alt="Figure30" src="/Blog/Lists/Posts/Attachments/157/Figure30_thumb_7E2EF328.png" border="0" style="border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;padding-right:0px;padding-left:0px;margin-right:auto;margin-left:auto;float:none;display:block;background-image:none" /></a> </p>
 <p align="center"><em>Figure 3.0</em></p>
 <p>The children are contained in a list item (li) element. Our JS code should hide all the children in a list item (li element) and it should also mark the section as hidden. We do that by writing the following JS code.</p>
<pre>//Mark as hidden 
$('.s4-ql ul.root &gt; li &gt; a.menu-item').attr('data-hide', '1'); 
$('.s4-ql ul.root &gt; li &gt; span.menu-item').attr('data-hide', '1');

//Hide the children 
$('.s4-ql ul.root ul').hide();</pre>
<p>The next step is to show the hidden items when a section is clicked. This can be achieved by the following JS code.</p>
<pre>//Show/Hide when the heading is clicked. 
    $('.s4-ql ul.root &gt; li &gt; span.menu-item').bind('click', function (e) {

        var $this = $(this);

        toggleChildrenElems($this);

        e.preventDefault();
    });

    function toggleChildrenElems($this) {
        if ($this.attr('data-hide') == '1') {
            $this.next().show(&quot;slow&quot;);
            $this.attr('data-hide', '0');
            $this.attr('style', &quot;background-image: url('/Style%20Library/Barclays/MENA/images/img_arrow_open.png');&quot;);
        }
        else {
            $this.next().hide(&quot;slow&quot;);
            $this.attr('data-hide', '1');
            $this.attr('style', &quot;background-image: url('/Style%20Library/Barclays/MENA/images/img_arrow_closed.png');&quot;);
        }
    }</pre>
<p>The above code also switches the closed and open arrow indicating whether a section is closed or open.</p>
<p>If you would like to expand the current section on page load then we have to match the URL of the current section with the URL in the address bar. This can be achieved by writing the following JS code</p>
<pre>var url = window.location.toString().toLowerCase();

    $('.s4-ql ul.root &gt; li &gt; a.menu-item, .s4-ql ul.root &gt; li &gt; span.menu-item').each(function (index) {

        var $this = $(this);
        var thisURL = $this.attr('href');

        if(thisURL)
         thisURL = thisURL.toLowerCase();
        
        var menuExpanded = 0;

        if (url.indexOf(thisURL) != -1) {
            showChildren($this);
            menuExpanded = 1;
        }

        if (menuExpanded == 0) {
            $this.next().find('li &gt; a').each(function (j) {

                var childURL = $(this).attr('href');
                
                if(childURL)
                 childURL = childURL.toLowerCase();
                
                if (url.indexOf(childURL) != -1) {
                    showChildren($this);
                    menuExpanded = 1;
                }

            });
        }

    });</pre>
<p>Click <a href="/Blog/Documents/application.js" target="_blank">here</a> to download the entire JS file. </p></div></div>
<div><b>Category:</b> <a onclick="OpenPopUpPage('http://www.synergyonline.com/Blog/_layouts/listform.aspx?PageType=4&ListId={BEBD6B7C-8EDF-4976-8627-9238AFF8A903}&ID=4&RootFolder=*', RefreshPage); return false;" href="http://www.synergyonline.com/Blog/_layouts/listform.aspx?PageType=4&ListId={BEBD6B7C-8EDF-4976-8627-9238AFF8A903}&ID=4&RootFolder=*">Development</a>; <a onclick="OpenPopUpPage('http://www.synergyonline.com/Blog/_layouts/listform.aspx?PageType=4&ListId={BEBD6B7C-8EDF-4976-8627-9238AFF8A903}&ID=13&RootFolder=*', RefreshPage); return false;" href="http://www.synergyonline.com/Blog/_layouts/listform.aspx?PageType=4&ListId={BEBD6B7C-8EDF-4976-8627-9238AFF8A903}&ID=13&RootFolder=*">SharePoint</a></div>
<div><b>Published:</b> 11/2/2011 6:11 PM</div>
<div><b>Author:</b> <a href="http://www.synergyonline.com/company/Profiles/Pages/JaiKirdatt.aspx">Jai Kirdatt</a></div>
<div><b>PageKeywords:</b> SharePoint 2010, SharePoint, SharePoint Development, SharePoint Expert</div>
<div><b>PageTitle:</b> Synergy SharePoint Blog - Expanding and collapsing the left navigation in SharePoint 2010</div>
<div><b>PageDescription:</b> Synergy SharePoint Expert shows you how to expand and collaps the left navigation in SharePoint 2010</div>
<div><b>Attachments:</b> <a href="http://www.synergyonline.com/Blog/Lists/Posts/Attachments/157/Figure10_2_7E2EF328.png">http://www.synergyonline.com/Blog/Lists/Posts/Attachments/157/Figure10_2_7E2EF328.png</a><br /><a href="http://www.synergyonline.com/Blog/Lists/Posts/Attachments/157/Figure10_thumb_7E2EF328.png">http://www.synergyonline.com/Blog/Lists/Posts/Attachments/157/Figure10_thumb_7E2EF328.png</a><br /><a href="http://www.synergyonline.com/Blog/Lists/Posts/Attachments/157/Figure20_2_7E2EF328.png">http://www.synergyonline.com/Blog/Lists/Posts/Attachments/157/Figure20_2_7E2EF328.png</a><br /><a href="http://www.synergyonline.com/Blog/Lists/Posts/Attachments/157/Figure20_thumb_7E2EF328.png">http://www.synergyonline.com/Blog/Lists/Posts/Attachments/157/Figure20_thumb_7E2EF328.png</a><br /><a href="http://www.synergyonline.com/Blog/Lists/Posts/Attachments/157/Figure30_2_7E2EF328.png">http://www.synergyonline.com/Blog/Lists/Posts/Attachments/157/Figure30_2_7E2EF328.png</a><br /><a href="http://www.synergyonline.com/Blog/Lists/Posts/Attachments/157/Figure30_thumb_7E2EF328.png">http://www.synergyonline.com/Blog/Lists/Posts/Attachments/157/Figure30_thumb_7E2EF328.png</a><br /><a href=""></a></div>
]]></description>
      <author>System Account</author>
      <category>Development; SharePoint</category>
      <pubDate>Wed, 02 Nov 2011 22:11:54 GMT</pubDate>
      <guid isPermaLink="true">http://www.synergyonline.com/Blog/Lists/Posts/ViewPost.aspx?ID=157</guid>
    </item>
    <item>
      <title>Creating a Custom SharePoint List Driven Navigation in SharePoint 2010</title>
      <link>http://www.synergyonline.com/Blog/Lists/Posts/ViewPost.aspx?ID=156</link>
      <description><![CDATA[<div><b>Body:</b> <div class="ExternalClass141B3CBA4C034E43870B6D7243CDB330"><p><a href="/blog/Lists/Posts/Attachments/156/TopNavigation_2_6F51356D.png"><img width="660" height="130" title="TopNavigation" alt="TopNavigation" src="/blog/Lists/Posts/Attachments/156/TopNavigation_thumb_6F51356D.png" border="0" style="border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;padding-right:0px;padding-left:0px;display:inline;background-image:none" /></a> </p>
 <p>When redesigning the Synergy site, there was the requirement to create a navigation based on a SharePoint list.  Since the look of this navigation was completely custom, it would’ve been far too difficult to bend SharePoint into the look we were going for. The screenshot above shows the top navigation with a transparent sub navigation that is displayed when rolling over each of the top elements.  This is a completely CSS driven unordered list style navigation.</p>
 <p>The first step was to create a list structure containing all the elements of the navigation:</p>
 <p><a href="/blog/Lists/Posts/Attachments/156/TopNavListColumns_2_6F51356D.png"><img width="384" height="284" title="TopNavListColumns" alt="TopNavListColumns" src="/blog/Lists/Posts/Attachments/156/TopNavListColumns_thumb_6F51356D.png" border="0" style="border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;padding-right:0px;padding-left:0px;display:inline;background-image:none" /></a> </p>
 <p>The description of each is as follows:</p>
 <table width="654" border="0" cellspacing="0" cellpadding="2"> <tbody> <tr> <td width="200" valign="top">ChildLinkUrl</td>
 <td width="452" valign="top">Where the user is redirected when the subnavigation item is clicked</td></tr>
 <tr> <td width="200" valign="top">Level2Description</td>
 <td width="452" valign="top">The display text of the subnavigation item</td></tr>
 <tr> <td width="200" valign="top">Level2Icon</td>
 <td width="452" valign="top">The display icon of the subnavigation item</td></tr>
 <tr> <td width="200" valign="top">NavBackgroundHexColor</td>
 <td width="452" valign="top">The background color of the top navigation element</td></tr>
 <tr> <td width="200" valign="top">NavOrder</td>
 <td width="452" valign="top">The order of the top navigation element</td></tr>
 <tr> <td width="200" valign="top">ParentLinkUrl</td>
 <td width="452" valign="top">Where the user is redirected when the top navigation item is clicked</td></tr>
 <tr> <td width="200" valign="top">SubNavOrder</td>
 <td width="452" valign="top">The order of the subnavigation element</td></tr>
 <tr> <td width="200" valign="top">Title</td>
 <td width="452" valign="top">The display text of the top navigation item</td></tr>
 <tr> <td width="200" valign="top">TitleLevel2</td>
 <td width="452" valign="top">The display title text of the subnavigation item</td></tr></tbody></table>
 <p> </p>
 <p>The end result after populating the list with content is shown here:</p>
 <p><a href="/blog/Lists/Posts/Attachments/156/TopNavigationList_2_6F51356D.png"><img width="739" height="307" title="TopNavigationList" alt="TopNavigationList" src="/blog/Lists/Posts/Attachments/156/TopNavigationList_thumb_6F51356D.png" border="0" style="border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;padding-right:0px;padding-left:0px;display:inline;background-image:none" /></a> </p>
 <p> </p>
 <p>When you look at the screenshot of the list, you’ll see many repeated values in the NavOrder, Title, NavBackgroundHexColor, and ParentLinkUrl columns for a given item in the top navigation.  I did this from a usability standpoint.  I didn’t want to confuse the user more by having them manage multiple lists that I join together on the backend for the sake of refactoring.  So even though there are repeated column values, it is easy to maintain after a little training.</p>
 <p>Now that the structure of the list is complete, the next step is to create a visual webpart.  Within your Visual Studio project, create a visual webpart.  Because this is an unordered list, I began with the basic structure:</p>
 <p>&lt;ul&gt; <br clear="all" />&lt;li&gt; <br clear="all" />     Top Navigation Item <br clear="all" />     &lt;div&gt;Sub Navigation Block&lt;/div&gt; <br clear="all" />&lt;/li&gt; <br clear="all" />&lt;/ul&gt;</p>
 <p>With this I created the following code structure:</p>
 <p><a href="/blog/Lists/Posts/Attachments/156/Webpart-ASCX_code_sample_2_6F51356D.png"><img width="784" height="459" title="Webpart-ASCX_code_sample" alt="Webpart-ASCX_code_sample" src="/blog/Lists/Posts/Attachments/156/Webpart-ASCX_code_sample_thumb_6F51356D.png" border="0" style="border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;padding-right:0px;padding-left:0px;display:inline;background-image:none" /></a> </p>
 <p>Two ASP.Net Repeaters are needed to make this work:  one for the top level navigation, and a nested repeater for the subnavigation.  One problem I encountered during development was that if there was such a case where there was a top navigation element with no subnavigation items under it, the page would still render the list item tags (with nothing in them).  I chose to use ASP.Net Panels wrapping the list tags, so that I could hide them on the server side, if there was such a scenario.</p>
 <p>In the codebehind, I did a standard population of the SPListItemCollection using a CAML query to get the items I need based on the order defined in the list.  I then populated a DataTable using the SPList.GetItems method and bound that to my repeater.</p>
 <p>Codebehind for the top navigation repeater:</p>
 <p><a href="/blog/Lists/Posts/Attachments/156/Webpart-CS_code_sample_2_6F51356D.png"><img width="777" height="546" title="Webpart-CS_code_sample" alt="Webpart-CS_code_sample" src="/blog/Lists/Posts/Attachments/156/Webpart-CS_code_sample_thumb_6F51356D.png" border="0" style="border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;padding-right:0px;padding-left:0px;display:inline;background-image:none" /></a> </p>
 <p>During the ItemDataBound of my top navigation repeater, I didn’t need to look at the duplicate entries in the list that represented the top level items, so I only bound the nested repeater when the Title field was different than the previously stored Title (essentially using the first list item).  In the first loop of the repeater, I used a 2nd DataTable for the subnavigation.  I cloned the original DataTable, filtered it where the Title was equal to the current/first list item Title, loaded the 2nd DataTable with the relevant items, and then bound it to the subnavigation repeater.</p>
 <p>In conjunction with using CSS to control the style of the navigation elements, I used jQuery to activate the subnavigation show/hide upon rollover: </p>
<pre class="csharpcode">$(document).ready(<span class="kwrd">function</span> () {
    $(<span class="str">&quot;ul#topnav li&quot;</span>).hover(<span class="kwrd">function</span> () 
    { 
        <span class="rem">//Hover over event on list item</span>
        <span class="kwrd">var</span> idx = $(<span class="kwrd">this</span>).parent().index();
        $(<span class="kwrd">this</span>).addClass(<span class="str">'navColor'</span> + idx);
        $(<span class="kwrd">this</span>).find(<span class="str">&quot;div&quot;</span>).show(); <span class="rem">//Show the subnav</span>
    }, 
    <span class="kwrd">function</span> () 
    { 
        <span class="rem">//on hover out...</span>
        <span class="kwrd">var</span> idx = $(<span class="kwrd">this</span>).parent().index();
        $(<span class="kwrd">this</span>).removeClass(<span class="str">'navColor'</span> + idx);
        $(<span class="kwrd">this</span>).find(<span class="str">&quot;div&quot;</span>).hide(); <span class="rem">//Hide the subnav</span>
    });
    
    <span class="kwrd">var</span> href = window.location.href.toLowerCase();

    <span class="rem">// Add a 'Selected' state to top nav items for current page</span>
    $(<span class="str">'.lnkTopNav'</span>).each(<span class="kwrd">function</span>(){
        <span class="kwrd">var</span> lnkHref = $(<span class="kwrd">this</span>).attr(<span class="str">'href'</span>).trim().toLowerCase();
        <span class="kwrd">if</span> ((href.trim() == lnkHref || href.indexOf(lnkHref)) &gt; 0)
        {
            <span class="rem">//alert('got here');</span>
            $(<span class="kwrd">this</span>).addClass(<span class="str">'topNavSelected'</span>);
        }

    });
    
    
    <span class="rem">// Search image hover event</span>
    $(<span class="str">'.search-button'</span>).hover(
        <span class="kwrd">function</span>()
        {
            $(<span class="kwrd">this</span>).addClass(<span class="str">'search-button-on'</span>)
        }, 
        <span class="kwrd">function</span>()
        {
            $(<span class="kwrd">this</span>).removeClass(<span class="str">'search-button-on'</span>)
        }
    );
});</pre>
<style>
.ExternalClass141B3CBA4C034E43870B6D7243CDB330 .csharpcode, .ExternalClass141B3CBA4C034E43870B6D7243CDB330 .csharpcode pre
{font-size:small;color:black;font-family:consolas, &quot;Courier New&quot;, courier, monospace;background-color:#ffffff;}
.ExternalClass141B3CBA4C034E43870B6D7243CDB330 .csharpcode pre
{margin:0em;}
.ExternalClass141B3CBA4C034E43870B6D7243CDB330 .csharpcode .rem
{color:#008000;}
.ExternalClass141B3CBA4C034E43870B6D7243CDB330 .csharpcode .kwrd
{color:#0000ff;}
.ExternalClass141B3CBA4C034E43870B6D7243CDB330 .csharpcode .str
{color:#006080;}
.ExternalClass141B3CBA4C034E43870B6D7243CDB330 .csharpcode .op
{color:#0000c0;}
.ExternalClass141B3CBA4C034E43870B6D7243CDB330 .csharpcode .preproc
{color:#cc6633;}
.ExternalClass141B3CBA4C034E43870B6D7243CDB330 .csharpcode .asp
{background-color:#ffff00;}
.ExternalClass141B3CBA4C034E43870B6D7243CDB330 .csharpcode .html
{color:#800000;}
.ExternalClass141B3CBA4C034E43870B6D7243CDB330 .csharpcode .attr
{color:#ff0000;}
.ExternalClass141B3CBA4C034E43870B6D7243CDB330 .csharpcode .alt
{background-color:#f4f4f4;width:100%;margin:0em;}
.ExternalClass141B3CBA4C034E43870B6D7243CDB330 .csharpcode .lnum
{color:#606060;}
</style>

<p>You’ll notice I added a section of code that looks at the current url and adds a css class to it called ‘topNavSelected’.  This allows the user to click on a top level item and it remain in a ‘selected’ state on that page.  I compare the current url of the page to the href attribute of the top navigation link.  If the navigation link changes in the future, it’ll be covered.</p>
<p>If you’d like the complete solution to create your own custom global navigation, <a href="/Blog/Documents/CreatingACustomSharePointListDrivenNavigation.zip" target="_blank">download the code</a> here. </p></div></div>
<div><b>Category:</b> <a onclick="OpenPopUpPage('http://www.synergyonline.com/Blog/_layouts/listform.aspx?PageType=4&ListId={BEBD6B7C-8EDF-4976-8627-9238AFF8A903}&ID=4&RootFolder=*', RefreshPage); return false;" href="http://www.synergyonline.com/Blog/_layouts/listform.aspx?PageType=4&ListId={BEBD6B7C-8EDF-4976-8627-9238AFF8A903}&ID=4&RootFolder=*">Development</a></div>
<div><b>Published:</b> 10/27/2011 4:48 PM</div>
<div><b>Author:</b> <a href="http://www.synergyonline.com/company/Profiles/Pages/TylerBockler.aspx">Tyler Bockler</a></div>
<div><b>PageKeywords:</b> SharePoint Branding, SharePoint Design, SharePoint Development</div>
<div><b>PageTitle:</b> Creating a Custom SharePoint List Driven Navigation in SharePoint 2010</div>
<div><b>PageDescription:</b> SharePoint Expert shows to create a navigation based on a SharePoint list</div>
<div><b>Attachments:</b> <a href="http://www.synergyonline.com/Blog/Lists/Posts/Attachments/156/TopNavigation_2_6F51356D.png">http://www.synergyonline.com/Blog/Lists/Posts/Attachments/156/TopNavigation_2_6F51356D.png</a><br /><a href="http://www.synergyonline.com/Blog/Lists/Posts/Attachments/156/TopNavigation_thumb_6F51356D.png">http://www.synergyonline.com/Blog/Lists/Posts/Attachments/156/TopNavigation_thumb_6F51356D.png</a><br /><a href="http://www.synergyonline.com/Blog/Lists/Posts/Attachments/156/TopNavigationList_2_6F51356D.png">http://www.synergyonline.com/Blog/Lists/Posts/Attachments/156/TopNavigationList_2_6F51356D.png</a><br /><a href="http://www.synergyonline.com/Blog/Lists/Posts/Attachments/156/TopNavigationList_thumb_6F51356D.png">http://www.synergyonline.com/Blog/Lists/Posts/Attachments/156/TopNavigationList_thumb_6F51356D.png</a><br /><a href="http://www.synergyonline.com/Blog/Lists/Posts/Attachments/156/TopNavListColumns_2_6F51356D.png">http://www.synergyonline.com/Blog/Lists/Posts/Attachments/156/TopNavListColumns_2_6F51356D.png</a><br /><a href="http://www.synergyonline.com/Blog/Lists/Posts/Attachments/156/TopNavListColumns_thumb_6F51356D.png">http://www.synergyonline.com/Blog/Lists/Posts/Attachments/156/TopNavListColumns_thumb_6F51356D.png</a><br /><a href="http://www.synergyonline.com/Blog/Lists/Posts/Attachments/156/Webpart-ASCX_code_sample_2_6F51356D.png">http://www.synergyonline.com/Blog/Lists/Posts/Attachments/156/Webpart-ASCX_code_sample_2_6F51356D.png</a><br /><a href="http://www.synergyonline.com/Blog/Lists/Posts/Attachments/156/Webpart-ASCX_code_sample_thumb_6F51356D.png">http://www.synergyonline.com/Blog/Lists/Posts/Attachments/156/Webpart-ASCX_code_sample_thumb_6F51356D.png</a><br /><a href="http://www.synergyonline.com/Blog/Lists/Posts/Attachments/156/Webpart-CS_code_sample_2_6F51356D.png">http://www.synergyonline.com/Blog/Lists/Posts/Attachments/156/Webpart-CS_code_sample_2_6F51356D.png</a><br /><a href="http://www.synergyonline.com/Blog/Lists/Posts/Attachments/156/Webpart-CS_code_sample_thumb_6F51356D.png">http://www.synergyonline.com/Blog/Lists/Posts/Attachments/156/Webpart-CS_code_sample_thumb_6F51356D.png</a><br /><a href=""></a></div>
]]></description>
      <author>System Account</author>
      <category>Development</category>
      <pubDate>Wed, 02 Nov 2011 22:10:25 GMT</pubDate>
      <guid isPermaLink="true">http://www.synergyonline.com/Blog/Lists/Posts/ViewPost.aspx?ID=156</guid>
    </item>
    <item>
      <title>Developing a Web Part to Automatically Login using Single Sign On</title>
      <link>http://www.synergyonline.com/Blog/Lists/Posts/ViewPost.aspx?ID=101</link>
      <description><![CDATA[<div><b>Body:</b> <div class="ExternalClass4C98A00DD7814F6EAFCD12101EA448ED"> <p><font size="2">During SharePoint deployments, one of the requests I get from time to time is how to leverage Single Sign On (SSO) capabilities to automatically sign in to external web applications.  For example, perhaps you have an web-based time keeping system that your company uses.  Every time you log into the system, you must supply the obligatory username and password in the login like this sample form here:</font></p>
<font size="2"> </font>  <p><a href="/Blog-Original/blog-moss/Lists/Posts/Attachments/49/image_12_bJIoOA.png"><font color="#000000" size="2"><img title="image_12_bJIoOA" border="0" alt="image_12_bJIoOA" src="/Blog/Lists/Posts/Attachments/101/image_12_bJIoOA_7bbd3926-1bf2-419c-b5f0-67432d4ff1b3_37F9137E.png" width="244" height="192" style="background-image:none;border-bottom-width:0px;border-bottom-style:initial;border-bottom-color:initial;border-left-width:0px;border-left-style:initial;border-left-color:initial;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-top-style:initial;border-top-color:initial;border-right-width:0px;border-right-style:initial;border-right-color:initial;padding-top:0px" /></font></a><br /><font size="2"><strong>Figure 1: Typical forms authentication web page</strong></font></p>
 <p><font size="2">Most organizations have many of these internal or external applications where this is an inconvenience.  The annoying part is that you might be in an out of the system several times a day, and each time you must log in.  Wouldn’t it be great if you could host a page within SharePoint that automatically signs you in to these systems?  Well, that’s exactly what we’ll do in this article.  </font></p>
 <p><font size="2">Let’s first see how it looks.  </font></p>
 <p><font size="2">Taking our Time Reporting System system, here is how our Time Reporting System looks like within a custom developed Web Part.  This is the initial view as credentials are pulled from the SSO database and passed to the time reporting application.</font></p>
 <p><a href="/Blog-Original/blog-moss/Lists/Posts/Attachments/49/image_20_jF3GZA.png"><font color="#000000" size="2"><img title="image_20_jF3GZA" border="0" alt="image_20_jF3GZA" src="/Blog/Lists/Posts/Attachments/101/image_20_jF3GZA_ece2e8f9-8d7e-441f-85a3-ab4558cd69b9_37F9137E.png" width="244" height="195" style="background-image:none;border-bottom-width:0px;border-bottom-style:initial;border-bottom-color:initial;border-left-width:0px;border-left-style:initial;border-left-color:initial;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-top-style:initial;border-top-color:initial;border-right-width:0px;border-right-style:initial;border-right-color:initial;padding-top:0px" /></font></a><br /><font size="2"><strong>Figure 2: Custom Web Part – automated sign in</strong></font></p>
 <p><font size="2">Once authentication is complete, you are presented with the default page for the application:</font></p>
 <p><a href="/Blog-Original/blog-moss/Lists/Posts/Attachments/49/image_18_GbqwIw.png"><font color="#000000" size="2"><img title="image_18_GbqwIw" border="0" alt="image_18_GbqwIw" src="/Blog/Lists/Posts/Attachments/101/image_18_GbqwIw_0083b9a3-c887-4fea-8e0f-e2c85df4ac08_37F9137E.png" width="244" height="195" style="background-image:none;border-bottom-width:0px;border-bottom-style:initial;border-bottom-color:initial;border-left-width:0px;border-left-style:initial;border-left-color:initial;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-top-style:initial;border-top-color:initial;border-right-width:0px;border-right-style:initial;border-right-color:initial;padding-top:0px" /></font></a><br /><font size="2"><strong>Figure 3: Custom Web Part – login complete</strong></font></p>
 <p><font size="2">The concept here is not much different than the Page Viewer Web Part.  The one big difference, however, is the automatic login.  Here are two other examples using ebay and Amazon (click images to enlarge):</font></p>
 <p><a href="/Blog-Original/blog-moss/Lists/Posts/Attachments/49/image_14_nDDRPQ.png"><font color="#000000" size="2"><img title="image_14_nDDRPQ" border="0" alt="image_14_nDDRPQ" src="/Blog/Lists/Posts/Attachments/101/image_14_nDDRPQ_2d1724cf-176a-4cad-b7dd-ef5c5e93a055_37F9137E.png" width="244" height="184" style="background-image:none;border-bottom-width:0px;border-bottom-style:initial;border-bottom-color:initial;border-left-width:0px;border-left-style:initial;border-left-color:initial;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-top-style:initial;border-top-color:initial;border-right-width:0px;border-right-style:initial;border-right-color:initial;padding-top:0px" /></font></a><br /><font size="2"><strong>Figure 4: Automatic login to ebay</strong></font></p>
 <p><a href="/Blog/Lists/Posts/Attachments/101/image_2_p8hXQ_2_37F9137E.png"><img title="image_2_p8hXQ" border="0" alt="image_2_p8hXQ" src="/Blog/Lists/Posts/Attachments/101/image_2_p8hXQ_thumb_37F9137E.png" width="244" height="208" style="background-image:none;border-bottom-width:0px;border-bottom-style:initial;border-bottom-color:initial;border-left-width:0px;border-left-style:initial;border-left-color:initial;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-top-style:initial;border-top-color:initial;border-right-width:0px;border-right-style:initial;border-right-color:initial;padding-top:0px" /></a> <br /><strong><font size="2">Figure 5: Automatic login to Amazon</font></strong></p>
 <h4>Solution Architecture</h4>
 <p><font size="2">The basic idea is that the custom code generates an HTML form that is then programmatically posted using JavaScript to the application’s login page.  The user’s credentials, which are pulled from the Single Sign On database, are embedded into the form.  Here is a sample HTML form that is generated:</font></p>
 <div><pre class="csharpcode"><span class="kwrd">&lt;</span><span class="html">HTML</span><span class="kwrd">&gt;</span>
<span class="kwrd">&lt;</span><span class="html">body</span> <span class="attr">onload</span><span class="kwrd">='document.login.submit();'</span><span class="kwrd">&gt;</span>
<span class="kwrd">&lt;</span><span class="html">form</span> <span class="attr">name</span><span class="kwrd">='login'</span> <span class="attr">id</span><span class="kwrd">='login'</span> <span class="attr">method</span><span class="kwrd">='post'</span> <span class="attr">action</span><span class="kwrd">='http://localhost/login.aspx'</span><span class="kwrd">&gt;</span>
<span class="kwrd">&lt;</span><span class="html">input</span> <span class="attr">type</span><span class="kwrd">='hidden'</span> <span class="attr">name</span><span class="kwrd">='txtUsername'</span> <span class="attr">id</span><span class="kwrd">='txtUsername'</span> <span class="attr">value</span><span class="kwrd">='testuser'</span> <span class="kwrd">/&gt;</span>
<span class="kwrd">&lt;</span><span class="html">input</span> <span class="attr">type</span><span class="kwrd">='hidden'</span> <span class="attr">name</span><span class="kwrd">='txtPassword'</span> <span class="attr">id</span><span class="kwrd">='txtPassword'</span> <span class="attr">value</span><span class="kwrd">='password'</span> <span class="kwrd">/&gt;</span>
<span class="kwrd">&lt;/</span><span class="html">form</span><span class="kwrd">&gt;</span>
<span class="kwrd">&lt;/</span><span class="html">body</span><span class="kwrd">&gt;</span>
<span class="kwrd">&lt;/</span><span class="html">HTML</span><span class="kwrd">&gt;</span></pre></div>
<p><font size="2">As you can see, this form contains the username called testuser that is automatically passed to the login.aspx page.  Depending on the web application, there may be additional hidden variables that may be needed.  I’ll address this in just a bit.</font></p>
<p><font size="2">The custom code for this solution consists of a Web Part and a SharePoint application (.aspx) page.  The Web Part is basically a shell that generates an IFRAME (just like the Page Viewer Web Part) and sets the source (i.e. src attribute) to the application page.  The application page (stored within the _layouts virtual directory) is what calls into the SSO database, pulls the current user’s credentials and generates the HTML form.  The Web Part also contains a few shared personalization settings as shown here:</font></p>
<p><a href="/Blog/Lists/Posts/Attachments/101/image_4_pXzDrg_2_2307910B.png"><img title="image_4_pXzDrg" border="0" alt="image_4_pXzDrg" src="/Blog/Lists/Posts/Attachments/101/image_4_pXzDrg_thumb_2307910B.png" width="140" height="244" style="background-image:none;border-bottom-width:0px;border-bottom-style:initial;border-bottom-color:initial;border-left-width:0px;border-left-style:initial;border-left-color:initial;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-top-style:initial;border-top-color:initial;border-right-width:0px;border-right-style:initial;border-right-color:initial;padding-top:0px" /></a> <br /><font size="2"><strong>Figure 6: Web Part settings</strong></font></p>
<p><font size="2">These settings are delivered from the Web Part to the application page via the querystring.  As you can see, they make the Web Part more generic so that is can be used across a number of systems.</font></p>
<h4>Solution Code</h4>
<style>
.ExternalClass4C98A00DD7814F6EAFCD12101EA448ED .externalclass4c98a00dd7814f6eafcd12101ea448ed .csharpcode-wrapper, .ExternalClass4C98A00DD7814F6EAFCD12101EA448ED .externalclass4c98a00dd7814f6eafcd12101ea448ed .csharpcode-wrapper pre
{background-color:#f4f4f4;border:solid 1px gray;cursor:text;font-family:consolas, 'Courier New', courier, monospace;font-size:9pt;line-height:12pt;margin:20px 0px 10px 0px;overflow:auto;padding:4px 4px 4px 4px;width:97.5%;}
.ExternalClass4C98A00DD7814F6EAFCD12101EA448ED .externalclass4c98a00dd7814f6eafcd12101ea448ed .csharpcode-wrapper pre
{border-style:none;margin:0px 0px 0px 0px;overflow:visible;padding:0px 0px 0px 0px;}
.ExternalClass4C98A00DD7814F6EAFCD12101EA448ED .externalclass4c98a00dd7814f6eafcd12101ea448ed .csharpcode, .ExternalClass4C98A00DD7814F6EAFCD12101EA448ED .externalclass4c98a00dd7814f6eafcd12101ea448ed .csharpcode pre, .ExternalClass4C98A00DD7814F6EAFCD12101EA448ED .externalclass4c98a00dd7814f6eafcd12101ea448ed .csharpcode .alt
{background-color:#f4f4f4;border-style:none;color:black;font-family:consolas, 'Courier New', courier, monospace;font-size:9pt;line-height:12pt;overflow:visible;padding:0px 0px 0px 0px;width:100%;}
.ExternalClass4C98A00DD7814F6EAFCD12101EA448ED .externalclass4c98a00dd7814f6eafcd12101ea448ed .csharpcode pre
{margin:0em;}
.ExternalClass4C98A00DD7814F6EAFCD12101EA448ED .externalclass4c98a00dd7814f6eafcd12101ea448ed .csharpcode .alt
{background-color:white;}
.ExternalClass4C98A00DD7814F6EAFCD12101EA448ED .externalclass4c98a00dd7814f6eafcd12101ea448ed .csharpcode .asp
{background-color:#ffff00;}
.ExternalClass4C98A00DD7814F6EAFCD12101EA448ED .externalclass4c98a00dd7814f6eafcd12101ea448ed .csharpcode .attr
{color:#a31515;}
.ExternalClass4C98A00DD7814F6EAFCD12101EA448ED .externalclass4c98a00dd7814f6eafcd12101ea448ed .csharpcode .cls
{color:#cc6633;}
.ExternalClass4C98A00DD7814F6EAFCD12101EA448ED .externalclass4c98a00dd7814f6eafcd12101ea448ed .csharpcode .html
{color:#800000;}
.ExternalClass4C98A00DD7814F6EAFCD12101EA448ED .externalclass4c98a00dd7814f6eafcd12101ea448ed .csharpcode .kwrd
{color:#0000ff;}
.ExternalClass4C98A00DD7814F6EAFCD12101EA448ED .externalclass4c98a00dd7814f6eafcd12101ea448ed .csharpcode .lnum
{color:#606060;}
.ExternalClass4C98A00DD7814F6EAFCD12101EA448ED .externalclass4c98a00dd7814f6eafcd12101ea448ed .csharpcode .op
{color:#0000c0;}
.ExternalClass4C98A00DD7814F6EAFCD12101EA448ED .externalclass4c98a00dd7814f6eafcd12101ea448ed .csharpcode .preproc
{color:#cc6633;}
.ExternalClass4C98A00DD7814F6EAFCD12101EA448ED .externalclass4c98a00dd7814f6eafcd12101ea448ed .csharpcode .rem
{color:#008000;}
.ExternalClass4C98A00DD7814F6EAFCD12101EA448ED .externalclass4c98a00dd7814f6eafcd12101ea448ed .csharpcode .str
{color:#a31515;}
</style>







<p><font size="2">Now that you have an idea of how the solution works, let’s take a look at some code.  We’ll start with the Web Part, but there is not much to look at here.  Let’s start by introducing one of the six personalization settings.  This one shown here is for the login URL:</font></p>
<div><pre class="csharpcode">[Personalizable(PersonalizationScope.Shared),
 WebBrowsable(<span class="kwrd">true</span>),
 WebDisplayName(<span class="str">&quot;Enter URL for the Login page&quot;</span>),
 WebDescription(<span class="str">&quot;Enter URL for the Login page&quot;</span>)]
<span class="kwrd">public</span> <span class="kwrd">string</span> Url
{
    get { <span class="kwrd">return</span> _url; }
    set { _url = <span class="kwrd">value</span>; }
}
</pre></div>






<p><font size="2">Here is the code within CreateChildControls.  </font></p>
<div><pre class="csharpcode"><span class="rem">//Generate querystring to pass data to application page</span>
StringBuilder querystring = <span class="kwrd">new</span> StringBuilder();
querystring.Append(<span class="str">&quot;?url=&quot;</span> + HttpContext.Current.Server.UrlEncode(_url));
querystring.Append(<span class="str">&quot;&amp;uc=&quot;</span> + HttpContext.Current.Server.UrlEncode(_userIdControlName));
querystring.Append(<span class="str">&quot;&amp;pc=&quot;</span> + HttpContext.Current.Server.UrlEncode(_passwordControlName));
querystring.Append(<span class="str">&quot;&amp;msg=&quot;</span> + HttpContext.Current.Server.UrlEncode(_errorMessage));
querystring.Append(<span class="str">&quot;&amp;app=&quot;</span> + HttpContext.Current.Server.UrlEncode(_ssoApp));
<span class="kwrd">if</span> (_ssoHiddenVars.Length &gt; 0)
    querystring.Append(<span class="str">&quot;&amp;hid=&quot;</span> + HttpContext.Current.Server.UrlEncode(_ssoHiddenVars));

<span class="rem">//Generate iframe src for pointing to SSO.aspx application page</span>
StringBuilder html = <span class="kwrd">new</span> StringBuilder();
html.Append(<span class="str">@&quot;&lt;iframe src='/_layouts/SSODemo/SSO.aspx&quot;</span> + querystring.ToString() + <span class="str">@&quot;' id='frame1'
width='100%' height='100%'&gt;Your browser does not support iframes&lt;/iframe&gt;&quot;</span>);
<span class="kwrd">this</span>.Controls.Add(<span class="kwrd">new</span> LiteralControl(html.ToString()));
</pre></div>
<div><font size="2">As you can see, the six personalization settings are delivered to the SSO.aspx application page via the querystring.  The first five are pretty self-explanatory, but let me introduce the last one since that one is not so obvious.  </font></div>
<div><font size="2"></font> </div>
<p><font size="2">Many systems (like Amazon and ebay) require additional form variables to be present when authenticating the user.  These control things like whether you should automatically remain logged in or which page should you be redirected to after login.  Of course, each system is different.  Without providing this necessary input, the login process may fail.  To address this, the sixth setting allows you to enter in any custom form variables that are needed.  These will be converted into hidden html controls.  </font></p>
<p><font size="2">The only way to know which of these variables you need is to take a look at the HTML source page for a login screen.  From here you can determine which variables you need.  You just need to enter them in one at a time separated by a pipe (|) character.  For example, to correctly log into to Amazon, I must pass these additional values: <font face="Courier New">useRedirectOnSuccess=1|path=/gp/css/homepage.html|action=sign-in|protocol=https</font>.  This line is then translated into this html which is included in the form that is automatically submitted:</font></p>
<div><pre class="csharpcode"><span class="kwrd">&lt;</span><span class="html">input</span> <span class="attr">type</span><span class="kwrd">='hidden'</span> <span class="attr">name</span><span class="kwrd">='useRedirectOnSuccess'</span> <span class="attr">id</span><span class="kwrd">='useRedirectOnSuccess'</span> <span class="attr">value</span><span class="kwrd">='1'</span> <span class="kwrd">/&gt;</span>
<span class="kwrd">&lt;</span><span class="html">input</span> <span class="attr">type</span><span class="kwrd">='hidden'</span> <span class="attr">name</span><span class="kwrd">='path'</span> <span class="attr">id</span><span class="kwrd">='path'</span> <span class="attr">value</span><span class="kwrd">='/gp/css/homepage.html'</span> <span class="kwrd">/&gt;</span>
<span class="kwrd">&lt;</span><span class="html">input</span> <span class="attr">type</span><span class="kwrd">='hidden'</span> <span class="attr">name</span><span class="kwrd">='action'</span> <span class="attr">id</span><span class="kwrd">='action'</span> <span class="attr">value</span><span class="kwrd">='sign-in'</span> <span class="kwrd">/&gt;</span>
<span class="kwrd">&lt;</span><span class="html">input</span> <span class="attr">type</span><span class="kwrd">='hidden'</span> <span class="attr">name</span><span class="kwrd">='protocol'</span> <span class="attr">id</span><span class="kwrd">='protocol'</span> <span class="attr">value</span><span class="kwrd">='https'</span> <span class="kwrd">/&gt;</span></pre></div>
<font size="2">
<div>Let’s now take a look at the SSO.aspx application page.  It’s more interesting than the Web Part.  This page is what generates the HTML form that is posted to the web application.  When the page initializes, it loads the six settings as shown here in the Page_Load event:</div></font>
<div><pre class="csharpcode"><span class="rem">//load querystring values passed over from web part</span>
<span class="kwrd">string</span> url = Request.QueryString[<span class="str">&quot;url&quot;</span>];
<span class="kwrd">string</span> userCtrl = Request.QueryString[<span class="str">&quot;uc&quot;</span>];
<span class="kwrd">string</span> passCtrl = Request.QueryString[<span class="str">&quot;pc&quot;</span>];
<span class="kwrd">string</span> errorMsg = Request.QueryString[<span class="str">&quot;msg&quot;</span>];
<span class="kwrd">string</span> ssoApp = Request.QueryString[<span class="str">&quot;app&quot;</span>];
<span class="kwrd">string</span> hiddenVars = Request.QueryString[<span class="str">&quot;hid&quot;</span>];</pre></div>
<div><font size="2">From here, I have the code to pull the user’s credentials and generate the first part of our HTML form:</font></div>
<div><pre class="csharpcode"><span class="rem">//Pull credentials for this user from SSO database</span>
GetCredentials(ssoApp, <span class="kwrd">out</span> username, <span class="kwrd">out</span> password);

<span class="rem">//Generate HTML form</span>
StringBuilder html = <span class="kwrd">new</span> StringBuilder();
html.Append(<span class="str">@&quot;
    &lt;HTML&gt;
    &lt;body onload='document.login.submit();'&gt;
    &lt;form name='login' id='login' method='post' action='&quot;</span> + url + <span class="str">@&quot;'&gt;
    &lt;p/&gt;&lt;p/&gt;&lt;p/&gt;
    &lt;center&gt;
    Logging in...
    &lt;br/&gt;
    &lt;br/&gt;
    &lt;img src='/_layouts/images/GEARS_AN.GIF' /&gt;
    &lt;input type='hidden' name='__VIEWSTATE' id='__VIEWSTATE' value='' /&gt;
    &lt;input type='hidden' name='&quot;</span> + userCtrl + <span class="str">&quot;' id='&quot;</span> + userCtrl + <span class="str">&quot;' value='&quot;</span> + username + <span class="str">@&quot;' /&gt;
    &lt;input type='hidden' name='&quot;</span> + passCtrl + <span class="str">&quot;' id='&quot;</span> + passCtrl + <span class="str">&quot;' value='&quot;</span> + password + <span class="str">@&quot;' /&gt;&quot;</span>);</pre></div>
<div><font size="2">The second part is where the extra hidden HTML controls are created along with the closing part of the form.</font></div>
<font size="2">
<div><pre class="csharpcode"><span class="rem">//generate out additional hidden form variables</span>
<span class="kwrd">if</span> (hiddenVars != <span class="kwrd">null</span>)
{
    <span class="kwrd">foreach</span> (<span class="kwrd">string</span> str <span class="kwrd">in</span> hiddenVars.Split(<span class="str">'|'</span>))
    {
        <span class="rem">//split out key and value pair within variable</span>
        <span class="kwrd">string</span>[] var = str.Split(<span class="kwrd">new</span> <span class="kwrd">char</span> [] {<span class="str">'='</span>},2);
        html.Append(<span class="str">&quot;&lt;input type='hidden' name='&quot;</span> + var[0] + <span class="str">&quot;' id='&quot;</span> + var[0] + <span class="str">&quot;' &quot;</span>);
        html.Append(<span class="str">&quot; value='&quot;</span> + var[1] + <span class="str">&quot;' /&gt;&quot;</span>);
    }
}
html.Append(<span class="str">@&quot;&lt;/center&gt;
    &lt;/form&gt;
    &lt;/body&gt;
    &lt;/HTML&gt;&quot;</span>);

<span class="kwrd">this</span>.Controls.Add(<span class="kwrd">new</span> LiteralControl(html.ToString()));
</pre></div>
</font><div><font size="2"></font><font size="2">In the first part above, you’ll notice that that I have a helper method called GetCredentials.  This is where the user’s actual username and password are pulled from the SSO database.  Here is the code:</font></div>
<div><pre class="csharpcode"><span class="kwrd">public</span> <span class="kwrd">void</span> GetCredentials(<span class="kwrd">string</span> ssoApp, <span class="kwrd">out</span> <span class="kwrd">string</span> username, <span class="kwrd">out</span> <span class="kwrd">string</span> password)
{

    <span class="rem">//connect to default SSO provider</span>
    ISsoProvider provider = SsoProviderFactory.GetSsoProvider();

    SsoCredentials creds;
    <span class="kwrd">try</span>
    {
        <span class="rem">//get credentials for currently logged in user</span>
        creds = provider.GetCredentials(ssoApp);
    }
    <span class="kwrd">catch</span> (SingleSignonCredsNotFoundException ex)
    {
        <span class="kwrd">string</span> msg = <span class="str">&quot;User &quot;</span> + HttpContext.Current.User.Identity.Name;
        msg += <span class="str">&quot; does not have credentials stored in the Single Sign On database&quot;</span>;
        <span class="kwrd">throw</span> <span class="kwrd">new</span> Exception(msg, ex);
    }

    <span class="rem">//convert credentials into a string</span>
    IntPtr pUserName = IntPtr.Zero;
    IntPtr pPassword = IntPtr.Zero;
    <span class="kwrd">try</span>
    {

        <span class="rem">//NOTE: After this has been converted to a String object, it remains in </span>
        <span class="rem">//memory until the garbage collector collects it.</span>
        pUserName = System.Runtime.InteropServices.Marshal.SecureStringToBSTR(creds.UserName);
        username = System.Runtime.InteropServices.Marshal.PtrToStringBSTR(pUserName);

        pPassword = System.Runtime.InteropServices.Marshal.SecureStringToBSTR(creds.Password);
        password = System.Runtime.InteropServices.Marshal.PtrToStringBSTR(pPassword);
    }
    <span class="kwrd">finally</span>
    {
        <span class="rem">// Free zero out and free the BSTR pointers.</span>
        <span class="kwrd">if</span> (pUserName != IntPtr.Zero)
        {
            System.Runtime.InteropServices.Marshal.ZeroFreeBSTR(pUserName);
        }

        <span class="rem">// Free zero out and free the BSTR pointers.</span>
        <span class="kwrd">if</span> (pPassword != IntPtr.Zero)
        {
            System.Runtime.InteropServices.Marshal.ZeroFreeBSTR(pUserName);
        }
    }
}
</pre></div>
<font size="2">
</font><div><font size="2">This code was only slightly modified from the sample code found on MSDN: <a href="http://msdn.microsoft.com/en-us/library/ms566925.aspx" target="_blank" title="MSDN Article">Walkthrough: Implementing a Pluggable SSO Provider​</a></font><font size="2">. </font><font size="2">There is additional code in other sections to handle errors, but I’ll leave that to your study if you download the code.</font></div>
<div> </div>
<h4>Configuring Single Sign On</h4>
<p><font size="2">Of course, all of this code requires that you have the SSO service installed with an application configured.  I’ll not go into detail on how to do this and instead direct you to this </font><a href="http://technet.microsoft.com/en-us/library/cc262932.aspx" target="_blank"><font size="2">TechNet article</font></a><font size="2"> and a nicely summarized list of steps from Dave Wollerman’s </font><a href="http://www.sharepointblogs.com/llowevad/archive/2007/06/25/sharepoint-2007-single-sign-on-setup.aspx" target="_blank"><font size="2">blog</font></a><font size="2">.  Once the SSO service is configured and a SSO database has been created, you need to create an application definition.  This is done through the third link in the Manage Single Sign-On Settings as shown here highlighted in red:</font></p>
<p><a href="/Blog-Original/blog-moss/Lists/Posts/Attachments/49/image_34_DZuoMA.png"><font size="2"><img title="image_34_DZuoMA" border="0" alt="image_34_DZuoMA" src="/Blog/Lists/Posts/Attachments/101/image_34_DZuoMA_b8416fb7-243c-4460-a94c-d5b4950f12e0_2307910B.png" width="244" height="145" style="background-image:none;border-bottom-width:0px;border-bottom-style:initial;border-bottom-color:initial;border-left-width:0px;border-left-style:initial;border-left-color:initial;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-top-style:initial;border-top-color:initial;border-right-width:0px;border-right-style:initial;border-right-color:initial;padding-top:0px" /></font></a><br /><font size="2"><strong>Figure 7: Setting up an application definition in SSO</strong></font></p>
<p><font size="2">This takes you to this screen where you set up each of your application definitions.  Each definition will contain username and password combinations for a specific system.  In this screen shot, I have three set up for Amazon, ebay and Time Reporting.  </font></p>
<p><a href="/Blog/Lists/Posts/Attachments/101/image_10_B6inDw_2_2307910B.png"><img title="image_10_B6inDw" border="0" alt="image_10_B6inDw" src="/Blog/Lists/Posts/Attachments/101/image_10_B6inDw_thumb_2307910B.png" width="244" height="100" style="background-image:none;border-bottom-width:0px;border-bottom-style:initial;border-bottom-color:initial;border-left-width:0px;border-left-style:initial;border-left-color:initial;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-top-style:initial;border-top-color:initial;border-right-width:0px;border-right-style:initial;border-right-color:initial;padding-top:0px" /></a> <br /><font size="2"><strong>Figure 8: List of Application Definitions</strong></font></p>
<p><font size="2">Once the Application Definition is configured, you need to populate the SSO database with credentials for each user.  SSO works by using a mapping system where the user’s SharePoint credentials map to a username and password stored in the SSO database.  You have two basic ways to populate the SSO database with these credentials.  One way is to manually add username and passwords using these Manage SSO screens.  This is done with this link shown highlighted in red:</font></p>
<p><a href="/Blog-Original/blog-moss/Lists/Posts/Attachments/49/image_36_CPbaHw.png"><font size="2"><img title="image_36_CPbaHw" border="0" alt="image_36_CPbaHw" src="/Blog/Lists/Posts/Attachments/101/image_36_CPbaHw_ea4365c2-363f-4391-9da4-0a2541d34fe1_2307910B.png" width="244" height="147" style="background-image:none;border-bottom-width:0px;border-bottom-style:initial;border-bottom-color:initial;border-left-width:0px;border-left-style:initial;border-left-color:initial;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-top-style:initial;border-top-color:initial;border-right-width:0px;border-right-style:initial;border-right-color:initial;padding-top:0px" /></font></a><br /><font size="2"><strong>Figure 9: Storing credentials in SSO for a user</strong></font></p>
<p><font size="2">You then choose the Application Definition and enter in the SharePoint user account name and click the Update account information radio button as shown here:</font></p>
<p><a href="/Blog-Original/blog-moss/Lists/Posts/Attachments/49/image_42_bs5wdg.png"><font size="2"><img title="image_42_bs5wdg" border="0" alt="image_42_bs5wdg" src="/Blog/Lists/Posts/Attachments/101/image_42_bs5wdg_a06b8b98-f58b-46ce-84d4-7e7d4f4f7d60_2307910B.png" width="244" height="195" style="background-image:none;border-bottom-width:0px;border-bottom-style:initial;border-bottom-color:initial;border-left-width:0px;border-left-style:initial;border-left-color:initial;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-top-style:initial;border-top-color:initial;border-right-width:0px;border-right-style:initial;border-right-color:initial;padding-top:0px" /></font></a><br /><font size="2"><strong>Figure 10: Choosing the Application Definition and SharePoint user</strong></font></p>
<p><font size="2">Finally, this will then take you to this screen where you can store the username and password for this user:</font></p>
<p><a href="/Blog-Original/blog-moss/Lists/Posts/Attachments/49/image_44_6oOubw.png"><font size="2"><img title="image_44_6oOubw" border="0" alt="image_44_6oOubw" src="/Blog/Lists/Posts/Attachments/101/image_44_6oOubw_68694c6c-a394-47e9-b252-2d0907140143_2307910B.png" width="244" height="138" style="background-image:none;border-bottom-width:0px;border-bottom-style:initial;border-bottom-color:initial;border-left-width:0px;border-left-style:initial;border-left-color:initial;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-top-style:initial;border-top-color:initial;border-right-width:0px;border-right-style:initial;border-right-color:initial;padding-top:0px" /></font></a><br /><font size="2"><strong>Figure 11: Storing the new username and password within SSO</strong></font></p>
<p><font size="2">This option works well for just a few users; however, it gets tedious if you’ll be adding lots of them.  Also, you must also edit them if the external system’s credentials ever change.  </font></p>
<p><font size="2">For the second way of storing credentials in the SSO database, I won’t cover that in detail this article.  If there is enough interest, I’ll cover this in a follow up blog.  The basic idea, though, is that if credentials for the external system do not exist, you prompt the user to provide the username and password.  These are then securely stored in the SSO database.  This could all be done within the custom application page.  A similar design would be used when the credentials have changed and you need to store the current ones.</font></p>
<h4>Caveats</h4>
<p><font size="2">One drawback to this design is that it requires the web application that you are signing into to allow a form to be directly posted without validation. This can be a problem with some applications, especially newer ASP.NET systems.  If you have control over the web application, you may be able to disable this by using the &lt;pages enableEventValidation=”false”&gt; setting in Web.Config.  I cannot promise that this solution will work in all situations, however.</font></p>
<p><font size="2">For ASP.NET web applications, you may still need a __VIEWSTATE form variable present.  You can add this to the additional form variables section when configuring the Web Part.  </font></p>
<p><font size="2">Some systems log you in using the credentials passed in the querystring to the web application.  This is not currently supported in this code, but you could download the source and easily modify it to support this feature.</font></p>
<p><font size="2">There are issues if the browser’s security zone for the SharePoint site and for the web application mismatch.  For example, if the SharePoint site is in the trusted zone, but the web application is in the internet zone.  This solution works best if both sites are in the same zone.</font></p>
<h4>Downloading the Code</h4>
<p><font size="2">I have developed this solution using VS 2008 </font><a href="http://www.microsoft.com/downloads/details.aspx?familyid=7BF65B28-06E2-4E87-9BAD-086E32185E68" target="_blank"><font size="2">with Visual Studio Extensions for WSS (VSeWSS) v1.2</font></a><font size="2">.  The Web Part and application page are stored in one project and is deployable through a single WSP solution.</font></p>
<p><font size="2">Click </font><a href="/blog/blog-moss/Files/SSODemo.zip" target="_blank"><font size="2">here</font></a><font size="2"> for those interested in downloading the source code.</font></p>
<p><font size="2">Click </font><a href="/blog/blog-moss/Files/SSODemo.wsp" target="_blank"><font size="2">here</font></a><font size="2"> for those only interested in the WSP solution.  You will need to deploy this using STSADM commands.</font></p>
<h4>Conclusion</h4>
<p><font size="2">In this article, you have seen how to develop a custom Web Part and application page that can automatically log users in to their commonly used web applications.  The advantage to this design is that you can use one Web Part for multiple applications.  In this article, I have the one Web Part used to auto-authenticate into the Time Reporting System, ebay, and Amazon.</font></p>
<p><font size="2">Hopefully this will simplify some of your web application access and also encourage staff to use SharePoint as a single portal for all application needs.  Enjoy.</font></p></div></div>
<div><b>Published:</b> 12/10/2008 2:29 PM</div>
<div><b>Author:</b> <a href="http://www.synergyonline.com/company/Profiles/Pages/RandyWilliams.aspx">Randy Williams</a></div>
<div><b>PageKeywords:</b> SharePoint Web Part, SharePoint Development</div>
<div><b>PageTitle:</b> Developing a Web Part to Automatically Login using Single Sign On</div>
<div><b>PageDescription:</b> How to develop a custom Web Part and application page that can automatically log users in to their commonly used web applications.</div>
<div><b>Attachments:</b> <a href="http://www.synergyonline.com/Blog/Lists/Posts/Attachments/101/image_10_B6inDw_2_2307910B.png">http://www.synergyonline.com/Blog/Lists/Posts/Attachments/101/image_10_B6inDw_2_2307910B.png</a><br /><a href="http://www.synergyonline.com/Blog/Lists/Posts/Attachments/101/image_10_B6inDw_thumb_2307910B.png">http://www.synergyonline.com/Blog/Lists/Posts/Attachments/101/image_10_B6inDw_thumb_2307910B.png</a><br /><a href="http://www.synergyonline.com/Blog/Lists/Posts/Attachments/101/image_12_bJIoOA_7bbd3926-1bf2-419c-b5f0-67432d4ff1b3_37F9137E.png">http://www.synergyonline.com/Blog/Lists/Posts/Attachments/101/image_12_bJIoOA_7bbd3926-1bf2-419c-b5f0-67432d4ff1b3_37F9137E.png</a><br /><a href="http://www.synergyonline.com/Blog/Lists/Posts/Attachments/101/image_14_nDDRPQ_2d1724cf-176a-4cad-b7dd-ef5c5e93a055_37F9137E.png">http://www.synergyonline.com/Blog/Lists/Posts/Attachments/101/image_14_nDDRPQ_2d1724cf-176a-4cad-b7dd-ef5c5e93a055_37F9137E.png</a><br /><a href="http://www.synergyonline.com/Blog/Lists/Posts/Attachments/101/image_18_GbqwIw_0083b9a3-c887-4fea-8e0f-e2c85df4ac08_37F9137E.png">http://www.synergyonline.com/Blog/Lists/Posts/Attachments/101/image_18_GbqwIw_0083b9a3-c887-4fea-8e0f-e2c85df4ac08_37F9137E.png</a><br /><a href="http://www.synergyonline.com/Blog/Lists/Posts/Attachments/101/image_2_p8hXQ_2_37F9137E.png">http://www.synergyonline.com/Blog/Lists/Posts/Attachments/101/image_2_p8hXQ_2_37F9137E.png</a><br /><a href="http://www.synergyonline.com/Blog/Lists/Posts/Attachments/101/image_2_p8hXQ_thumb_37F9137E.png">http://www.synergyonline.com/Blog/Lists/Posts/Attachments/101/image_2_p8hXQ_thumb_37F9137E.png</a><br /><a href="http://www.synergyonline.com/Blog/Lists/Posts/Attachments/101/image_20_jF3GZA_ece2e8f9-8d7e-441f-85a3-ab4558cd69b9_37F9137E.png">http://www.synergyonline.com/Blog/Lists/Posts/Attachments/101/image_20_jF3GZA_ece2e8f9-8d7e-441f-85a3-ab4558cd69b9_37F9137E.png</a><br /><a href="http://www.synergyonline.com/Blog/Lists/Posts/Attachments/101/image_34_DZuoMA_b8416fb7-243c-4460-a94c-d5b4950f12e0_2307910B.png">http://www.synergyonline.com/Blog/Lists/Posts/Attachments/101/image_34_DZuoMA_b8416fb7-243c-4460-a94c-d5b4950f12e0_2307910B.png</a><br /><a href="http://www.synergyonline.com/Blog/Lists/Posts/Attachments/101/image_36_CPbaHw_ea4365c2-363f-4391-9da4-0a2541d34fe1_2307910B.png">http://www.synergyonline.com/Blog/Lists/Posts/Attachments/101/image_36_CPbaHw_ea4365c2-363f-4391-9da4-0a2541d34fe1_2307910B.png</a><br /><a href="http://www.synergyonline.com/Blog/Lists/Posts/Attachments/101/image_4_pXzDrg_2_2307910B.png">http://www.synergyonline.com/Blog/Lists/Posts/Attachments/101/image_4_pXzDrg_2_2307910B.png</a><br /><a href="http://www.synergyonline.com/Blog/Lists/Posts/Attachments/101/image_4_pXzDrg_thumb_2307910B.png">http://www.synergyonline.com/Blog/Lists/Posts/Attachments/101/image_4_pXzDrg_thumb_2307910B.png</a><br /><a href="http://www.synergyonline.com/Blog/Lists/Posts/Attachments/101/image_42_bs5wdg_a06b8b98-f58b-46ce-84d4-7e7d4f4f7d60_2307910B.png">http://www.synergyonline.com/Blog/Lists/Posts/Attachments/101/image_42_bs5wdg_a06b8b98-f58b-46ce-84d4-7e7d4f4f7d60_2307910B.png</a><br /><a href="http://www.synergyonline.com/Blog/Lists/Posts/Attachments/101/image_44_6oOubw_68694c6c-a394-47e9-b252-2d0907140143_2307910B.png">http://www.synergyonline.com/Blog/Lists/Posts/Attachments/101/image_44_6oOubw_68694c6c-a394-47e9-b252-2d0907140143_2307910B.png</a><br /><a href=""></a></div>
]]></description>
      <author>System Account</author>
      <pubDate>Fri, 05 Aug 2011 19:34:23 GMT</pubDate>
      <guid isPermaLink="true">http://www.synergyonline.com/Blog/Lists/Posts/ViewPost.aspx?ID=101</guid>
    </item>
    <item>
      <title>SharePoint from a Designer’s point of view – Out of the box versus Custom</title>
      <link>http://www.synergyonline.com/Blog/Lists/Posts/ViewPost.aspx?ID=247</link>
      <description><![CDATA[<div><b>Body:</b> <div class="ExternalClassB64446B7FCD249BEB53E39B97FF632EF"><h3><font style="font-weight:bold">What is SharePoint from a designer’s point of view?</font></h3>
 <p>SharePoint is an application platform created by Microsoft that makes it easier for businesses to collaborate, share information, and manage content and documents.</p>
<p><img src="/Blog/PublishingImages/Microsoft%20Word1.jpg" alt="Microsoft Word1.jpg" style="margin-top:5px;margin-right:5px;margin-bottom:5px;margin-left:5px;width:700px;height:75px" /><br /></p>
 <p>Programmers created SharePoint for programmers to use; usability and design seem to have been secondary concerns. This oversight creates a welcome challenge for the designer. Design is all about understanding and embracing limitations, and like all design mediums, SharePoint has its limitations. Most of these limitations are technical in nature; therefore, while designing, I always find it invaluable to have a programmer on speed dial. I have met the rare person that is right brain as well as left-brain sensitive - a developer and a designer - but there have been very few and I am not one. Therefore, I like to run everything by a developer, even seemingly simple elements. A seasoned programmer can quickly tell if a simple change to a webpart will take minutes to complete or hours of custom coding and testing. </p>
 <h3><font style="font-weight:bold">Why use it?</font></h3>
 <p><b></b> </p>
<p>SharePoint has always been great at managing information and collaboration. People all over the world can upload files and work on the same files in real time. A hierarchy can be created so only people with the proper permission can access certain information. </p>
<h3><font style="font-weight:bold">Drawbacks</font></h3>
 <p>The problem is that out of the box, SharePoint is not pleasing to the eye. Still, to this day, clients ask up front, “Is there anyway we can make this not look like SharePoint?” The answer is undoubtedly yes. </p>
<h3><font style="font-weight:bold">Branding and Design of intranets and extranets</font></h3>
 <p><b></b> </p>
<p>One thing I emphasize to clients is the importance of branding, even, and especially when it comes to internal sites, intranets and extranets. Many believe that internal branding is not necessary, and is a waste of time and resources. On the contrary, my experience has been that employees immersed in their brand become evangelists to the outside world, which will reinforce any brand.  </p>
<p>Many companies spend a great deal of time, money and effort gaining valuable insights for external branding initiatives. The heavy lifting is done. Take the insights and immerse the employees in them through the branding of the intranet and extranets as well as other touch points. This will help employees preform better as a company and also better understand the customer.  </p>
<h3><font style="font-weight:bold">Some Terminology</font></h3>
 <p>Like every technology SharePoint has its jargon. As a seasoned Art Director, new to SharePoint, these terms were a bit foreign to me but quickly they became clear. Below are a few SharePoint terms that can be helpful. </p>
</div>
<blockquote class="webkit-indent-blockquote" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:40px;border-top-style:none;border-right-style:none;border-bottom-style:none;border-left-style:none;border-width:initial;border-color:initial;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px"><div class="ExternalClassB64446B7FCD249BEB53E39B97FF632EF"><p>• <b>SharePoint Designer </b>- is not what you think it is. SharePoint Designer is part of the Microsoft SharePoint family of products; it is an html editor used for creating or changing SharePoint sites </p></div>
<div class="ExternalClassB64446B7FCD249BEB53E39B97FF632EF"><p>• <b>Web Part</b> - the workhorse of SharePoint. They are elements that display content on a page. The content is usually supplied by a list and editable by users. </p></div>
<div class="ExternalClassB64446B7FCD249BEB53E39B97FF632EF"><p>• <b>Lists</b> - are the containers where SharePoint puts and stores data. Most content is stored in a list. </p></div>
<div class="ExternalClassB64446B7FCD249BEB53E39B97FF632EF"><p>• <b>Page</b> - container for Web Parts and Web Part Zones </p></div>
<div class="ExternalClassB64446B7FCD249BEB53E39B97FF632EF"><p>• <b>Site</b> - a collection of child sites, pages, lists and libraries. </p></div>
<div class="ExternalClassB64446B7FCD249BEB53E39B97FF632EF"><p><b>• Site Collection - </b>a grouping of SharePoint sites</p></div>
<div class="ExternalClassB64446B7FCD249BEB53E39B97FF632EF"><p><b>• The Ribbon - </b>is a bunch of tools placed on a tab bar which allows the user to update or affect a page. As a matter of UI, the ribbon must be dealt with and can be hidden if desired.</p></div></blockquote>
<div class="ExternalClassB64446B7FCD249BEB53E39B97FF632EF">





<p><b></b> </p>

<h3><font style="font-weight:bold">Out-of-the-box Branding</font></h3>
 <p><img src="/Blog/PublishingImages/Branding2.png" alt="Branding2.png" style="margin-top:5px;margin-right:5px;margin-bottom:5px;margin-left:5px;width:400px;height:149px" /><br /></p>
 <p>It is true, a developer can create a SharePoint application right out of the box. It will function but that is not enough. Just as a designer needs a developer to make sure something can technically be done, a developer needs a designer to add structure and let them know when something is ugly. As designers, we are creating tools people will use every day. If they dread it, we have failed. Even an out of the box project can be improved and branded, without adding custom elements. Structure can be added, color, imagery, logos and icons.  </p>
<p>If it were up to Microsoft, all SharePoint applications would all be out of the box. In fact, I found it interesting that in the <a href="http://sharepoint.microsoft.com/blog/Pages/BlogPost.aspx?pID=1012" target="_blank">SharePoint 2013 announcement</a> they offered the following advice: </p>
<p><em>“Use SharePoint as an out-of-box application whenever possible </em>- We designed the new SharePoint UI to be clean, simple and fast and work great out-of-box. We encourage you not to modify it which could add complexity, performance and upgradeability and to focus your energy on working with users and groups to understand how to use SharePoint to improve productivity and collaboration and identifying and promoting best practices in your organization.” </p>
<p>The rub with this is that companies, our clients, spend millions of dollars on branding. From colors to fonts, images, treatments, design patterns, etc. What they have created is a valuable asset. To treat it as anything less would be a disservice to the client. The thought of going to the brand managers and Stakeholders with the message that Microsoft thinks it best to apply their “clean, simple and fast” UI is a little unsettling. In most design meetings, this would probably be received less than enthusiastically. </p>
<p>There are clients who are fine with the out-of-the-box SharePoint look. But for higher end, design-rich, consumer focused clients, custom SharePoint experiences or hybrid experiences, which dovetail seamlessly with their overall brand, are the norm.  </p>
<h3><font style="font-weight:bold">Custom Branding</font></h3>
 <p>A custom SharePoint application takes longer to design and longer to develop, hence it is more expensive and it’s more challenging to create. But in the end, the client gets exactly what they want.  </p>
<p>SharePoint has progressed quite a bit since the early days. “No we can’t do that, it’s SharePoint” is being said less and less. Besides the upgrades to SharePoint, there are a couple other reasons for this: </p>
<p><b></b> </p>
</div>
<blockquote class="webkit-indent-blockquote" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:40px;border-top-style:none;border-right-style:none;border-bottom-style:none;border-left-style:none;border-width:initial;border-color:initial;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px"><div class="ExternalClassB64446B7FCD249BEB53E39B97FF632EF"><p><b>First</b>: the retirement of old outdated browsers. If only we could get the hours back which were spent trying to make something work on an obsolete browser.</p></div>
<div class="ExternalClassB64446B7FCD249BEB53E39B97FF632EF"><p><b>Second</b>: HTML 5, jQuery, CSS and JavaScript. Since the demise of Flash, these are the heavyweights. When used properly, they can add flexibility and motion to a design, which can be viewed across all supported browsers and devices.</p></div></blockquote>
<div class="ExternalClassB64446B7FCD249BEB53E39B97FF632EF">

<p>I always like to begin a SharePoint design project by focusing on what can be done out of the box. Sometimes that’s a lot, other times not so much. Most of the time it falls somewhere in the middle, with most projects being a hybrid of out of the box and custom elements. </p>
<p><img src="/Blog/PublishingImages/Synergy3.png" alt="Synergy3.png" style="margin-top:5px;margin-right:5px;margin-bottom:5px;margin-left:5px;width:700px;height:281px" /><br /></p>
<p>This accordion (above) is an example of how a custom element not only looks great but is also a great way to manage a lot of information in a limited space. </p>
<p>It is a great time to be a SharePoint designer; SharePoint 2010 was a major step forward. SharePoint 2013 promises to be another push into the future. Every upgrade has unbound a designer’s hand a little more. At this point a designer can begin to focus more on creating solutions, rather than “skinning” a technology.</p></div></div>
<div><b>Category:</b> <a onclick="OpenPopUpPage('http://www.synergyonline.com/Blog/_layouts/listform.aspx?PageType=4&ListId={BEBD6B7C-8EDF-4976-8627-9238AFF8A903}&ID=18&RootFolder=*', RefreshPage); return false;" href="http://www.synergyonline.com/Blog/_layouts/listform.aspx?PageType=4&ListId={BEBD6B7C-8EDF-4976-8627-9238AFF8A903}&ID=18&RootFolder=*">Branding</a>; <a onclick="OpenPopUpPage('http://www.synergyonline.com/Blog/_layouts/listform.aspx?PageType=4&ListId={BEBD6B7C-8EDF-4976-8627-9238AFF8A903}&ID=5&RootFolder=*', RefreshPage); return false;" href="http://www.synergyonline.com/Blog/_layouts/listform.aspx?PageType=4&ListId={BEBD6B7C-8EDF-4976-8627-9238AFF8A903}&ID=5&RootFolder=*">Design</a>; <a onclick="OpenPopUpPage('http://www.synergyonline.com/Blog/_layouts/listform.aspx?PageType=4&ListId={BEBD6B7C-8EDF-4976-8627-9238AFF8A903}&ID=13&RootFolder=*', RefreshPage); return false;" href="http://www.synergyonline.com/Blog/_layouts/listform.aspx?PageType=4&ListId={BEBD6B7C-8EDF-4976-8627-9238AFF8A903}&ID=13&RootFolder=*">SharePoint</a></div>
<div><b>Published:</b> 12/18/2012 3:17 PM</div>
<div><b>Author:</b> <a href="http://www.synergyonline.com/company/Profiles/Pages/MichaelBeeler.aspx">Michael Beeler</a></div>
<div><b>PageKeywords:</b> sharepoint design, sharepoint branding</div>
<div><b>PageTitle:</b> SharePoint from a Designer’s point of view – Out of the box versus Custom</div>
<div><b>PageDescription:</b> SharePoint 2013 promises to be another push into the future. Every upgrade has unbound a designer’s hand a little more. At this point a designer can begin to focus more on creating solutions, rather than “skinning” a technology.</div>
]]></description>
      <author>System Account</author>
      <category>Branding; Design; SharePoint</category>
      <pubDate>Tue, 18 Dec 2012 20:07:04 GMT</pubDate>
      <guid isPermaLink="true">http://www.synergyonline.com/Blog/Lists/Posts/ViewPost.aspx?ID=247</guid>
    </item>
    <item>
      <title>Interactive Web Design in SharePoint 2013: HTML before and after</title>
      <link>http://www.synergyonline.com/Blog/Lists/Posts/ViewPost.aspx?ID=246</link>
      <description><![CDATA[<div><b>Body:</b> <div class="ExternalClass571CF99258BB45A88A90E08E92710EF1"><h3><font style="font-weight:bold">Introduction</font></h3>
 <p>By now most people who have beheld the preview version of SharePoint 2013 will have seen the Design Manager in action, Microsoft’s latest gift to the many SharePoint Designers who work tirelessly to brand SharePoint.  </p>
<p>If you haven’t, the big news for designers in this version of SharePoint is that the Design Manager allows a designer to convert a perfectly normal HTML page into a SharePoint masterpage. This is done using a wizard like interface. At the end of the process, the HTML page is essentially changed into a master page. </p>
<p>For more information I refer the reader to Randy’s excellent blog post ‘<a href="http://blog.drisgill.com/2012/07/top-6-new-features-for-designers-in.html" target="_blank">Top 6 New Features for Designers in SharePoint 2013</a>’.  </p>
<p>In this article, we are going to run a test HTML page through the Design manager, and we will be looking at exactly what the Design Manager does to our source HTML in order for the magic to happen. </p>
<h3><font style="font-weight:bold">The HTML Source</font></h3>
 <p>Here's a screenshot of the HTML page we're going to use: </p>
<p><img src="/Blog/PublishingImages/Screenshot1.png" alt="Screenshot1.png" style="margin-top:5px;margin-right:5px;margin-bottom:5px;margin-left:5px;width:650px;height:343px" /><br /></p>
<p>All things considered, this is quite a simple piece of HTML – structurally similar to something that a design agency might possibly produce. </p>
<p>Under the hood, here's the source HTML:</p>
 <div id="codeSnippetWrapper" style="border-bottom-color:silver;border-bottom-width:1px;border-bottom-style:solid;text-align:left;border-left-color:silver;border-left-width:1px;border-left-style:solid;padding-bottom:4px;line-height:12pt;background-color:rgb(244, 244, 244);margin-top:20px;margin-right:0px;margin-bottom:10px;margin-left:0px;padding-left:4px;width:97.5%;padding-right:4px;font-family:'courier new', courier, monospace;direction:ltr;max-height:200px;font-size:8pt;overflow-x:auto;overflow-y:auto;border-top-color:silver;border-top-width:1px;border-top-style:solid;cursor:text;border-right-color:silver;border-right-width:1px;border-right-style:solid;padding-top:4px"> <div id="codeSnippet" style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:rgb(244, 244, 244);border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px"><pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">&lt;!DOCTYPE html&gt;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">&lt;html&gt;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">&lt;head&gt;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">&lt;meta http-equiv=<span style="color:rgb(0, 96, 128)">&quot;Content-Type&quot;</span> content=<span style="color:rgb(0, 96, 128)">&quot;text/html; charset=utf-8&quot;</span> /&gt;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">&lt;title&gt;SharePoint 2013 Demo Site&lt;/title&gt;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">&lt;link href=<span style="color:rgb(0, 96, 128)">&quot;style.css&quot;</span> rel=<span style="color:rgb(0, 96, 128)">&quot;stylesheet&quot;</span> type=<span style="color:rgb(0, 96, 128)">&quot;text/css&quot;</span>&gt;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">&lt;/head&gt;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px"> </pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">&lt;body&gt;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">&lt;div id=<span style="color:rgb(0, 96, 128)">&quot;menu_container&quot;</span>&gt;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">&lt;div <span style="color:rgb(0, 0, 255)">class</span>=<span style="color:rgb(0, 96, 128)">&quot;menu&quot;</span>&gt;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">&lt;ul&gt;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">                &lt;li&gt;Menu 1&lt;/li&gt;&lt;li&gt;Menu 2&lt;/li&gt;&lt;li&gt;Menu 3&lt;/li&gt;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">                    &lt;li&gt;Menu 4&lt;/li&gt;&lt;li&gt;Menu 5&lt;/li&gt;&lt;li&gt;Menu 6&lt;/li&gt;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">&lt;/ul&gt;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">&lt;/div&gt;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">&lt;/div&gt;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px"> </pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">&lt;div id=<span style="color:rgb(0, 96, 128)">&quot;main_container&quot;</span>&gt;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">&lt;div id=<span style="color:rgb(0, 96, 128)">&quot;header&quot;</span>&gt;Header&lt;/div&gt;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">&lt;div id=<span style="color:rgb(0, 96, 128)">&quot;banner&quot;</span>&gt;Banner Image&lt;/div&gt;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">&lt;div id=<span style="color:rgb(0, 96, 128)">&quot;content_Area&quot;</span>&gt;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">&lt;h1&gt;Section Header&lt;/h1&gt;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">&lt;p&gt;Lorem ipsum dolor sit  … &lt;/p&gt;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">&lt;h1&gt;Section Header&lt;/h1&gt;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">&lt;p&gt;Lorem ipsum dolor sit … &lt;/p&gt;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">&lt;/div&gt;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px"> </pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">&lt;div id=<span style="color:rgb(0, 96, 128)">&quot;sidebar&quot;</span>&gt;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">&lt;h2&gt;Sidebar&lt;/h2&gt;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">&lt;ul&gt;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">&lt;li&gt;List Item 1&lt;/li&gt;&lt;li&gt;List Item 1&lt;/li&gt;&lt;li&gt;List Item 1&lt;/li&gt;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">&lt;li&gt;List Item 1&lt;/li&gt;&lt;li&gt;List Item 1&lt;/li&gt;&lt;li&gt;List Item 1&lt;/li&gt;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">&lt;li&gt;List Item 1&lt;/li&gt;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">&lt;/ul&gt;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">&lt;/div&gt;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px"> </pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">&lt;div style=<span style="color:rgb(0, 96, 128)">&quot;clear:both;&quot;</span>&gt;&lt;/div&gt;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">&lt;div id=<span style="color:rgb(0, 96, 128)">&quot;footer&quot;</span>&gt;Page footer &amp; Copyright notice.&lt;/div&gt;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">&lt;/div&gt;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">&lt;/body&gt;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">&lt;/html&gt;</pre></div></div>
<p>And the CSS that’s being applied:</p>
<div id="codeSnippetWrapper" style="border-bottom-color:silver;border-bottom-width:1px;border-bottom-style:solid;text-align:left;border-left-color:silver;border-left-width:1px;border-left-style:solid;padding-bottom:4px;line-height:12pt;background-color:rgb(244, 244, 244);margin-top:20px;margin-right:0px;margin-bottom:10px;margin-left:0px;padding-left:4px;width:97.5%;padding-right:4px;font-family:'courier new', courier, monospace;direction:ltr;max-height:200px;font-size:8pt;overflow-x:auto;overflow-y:auto;border-top-color:silver;border-top-width:1px;border-top-style:solid;cursor:text;border-right-color:silver;border-right-width:1px;border-right-style:solid;padding-top:4px">
<div id="codeSnippet" style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:rgb(244, 244, 244);border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px"><pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">body {background:#333;padding:0px;margin:0px;font-family:Arial, Helvetica, sans-serif;}</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px"> </pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">#main_container {margin:0 auto;width:80%;margin-top:20px;}</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px"> </pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">#menu_container {width:100%;background-color:#F90;color:#FFF;font-size:14px;}</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px"> </pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">#menu_container .menu {width:80%;margin:0 auto;padding:5px;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">font-weight:bold;text-transform:uppercase;}</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px"> </pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">#menu_container .menu ul {margin:0px;padding:0px;}</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px"> </pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">#menu_container .menu ul li {display:inline-block;padding-right:10px;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">border-right:1px dotted #FFF;margin-right:10px;}</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px"> </pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">#header {-webkit-border-radius: 10px;-moz-border-radius: 10px;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">border-radius: 10px;background-color:#F90;color:</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">#fff;font-size:36px;padding:10px;font-weight:bold;margin-bottom:20px;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">letter-spacing:-2px;}</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px"> </pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">#banner {-webkit-border-radius: 10px;-moz-border-radius:10px;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">border-radius: 10px;background-color:#666;color:#999;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">font-size:48px;padding:50px 10px 50px 10px;font-weight:bold;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">margin-bottom:20px;letter-spacing:-3px;text-align:center;}</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px"> </pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">#content_Area {-webkit-border-radius: 10px;-moz-border-radius: 10px;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">border-radius: 10px;background-color:#CCC;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">color:#333;font-size:16px;padding:10px;width:61%;<span style="color:rgb(0, 0, 255)">float</span>:left;}</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px"> </pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">#content_Area h1 {font-size:24px;font-weight:bold;}</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px"> </pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">#sidebar {display:inline-block;-webkit-border-radius: 10px;-moz-border-radius: 10px;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">border-radius: 10px;background-color:#CCC;color:#333;font-size:16px;padding:10px;width:33%;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px"><span style="color:rgb(0, 0, 255)">float</span>:right;margin-left:1%;}</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px"> </pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">#footer {-webkit-border-radius: 10px;-moz-border-radius: 10px;border-radius: 10px;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">background-color:#000;color:#999;font-size:11px;padding:10px;margin-top:20px;}</pre></div></div>
<p>A few things to note about the HTML source going in
</p></div>
- It's a fairly simple piece of HTML and the CSS is referenced in an external file. This is as per best practice. The HTML's doctype declaration is HTML5, and I'm using CSS 3.0. The CSS version doesn't matter as much here, since SharePoint doesn't modify it in any way. Still, when using CSS 3.0 we must be mindful of browser compatibility issues.<br />- We've got a menu implemented using &lt;ul&gt; and &lt;li&gt; tags. This is also consistent with industry standard practice, and as it turns out, is what SharePoint 2013 follows.<br />Let's run this through the design manager.<br />- Locate the SharePoint 2013 ribbon at the top of the page.<br /><div class="ExternalClass571CF99258BB45A88A90E08E92710EF1"><p>- Click on the icon next to the user name:
</p></div>
<div class="ExternalClass571CF99258BB45A88A90E08E92710EF1"><p><img src="/Blog/PublishingImages/Pin2.png" alt="Pin2.png" style="margin-top:5px;margin-right:5px;margin-bottom:5px;margin-left:5px;width:30px;height:39px" /> </p>
<p>- A menu should drop down. Select &quot;Site Settings&quot;<br /></p>
<p>- This will bring up the new settings page. Under 'Look and Feel', click on 'Design Manager'
</p>
<p>- Click on 'Upload Design Files'. You can use the interface to upload the files one-by-one, or use WebDAV to map a network drive to the suggested address. Regardless, you should have all your resources copied into the masterpage directory. Note that now you are actively encouraged to store your design resources here, rather than the style library like in SharePoint 2010.
</p>
<p>- Click the next step, 'Edit Master Pages'. Then click on 'Convert an HTML file to a SharePoint master page'. This will bring up a selection screen where we can select our source HTML file. Incidentally, we are only allowed to select 'html' files. *.htm files, while having completely the same functionality are not allowed to be selected.
</p>
<p>The file will be added to the display on the page. If everything goes right, a 'Conversion Successful' label will appear next to the filename. 
</p>
<h3><font style="font-weight:bold">The Design Manager Output</font></h3>
<p>Performing the above steps causes SharePoint to alter the HTML and link it to a masterpage file that SharePoint generates. What this means is that any alterations in the HTML source get dynamically applied to the resulting master page file. The idea is that designers should only modify the HTML file. 
</p>
<p>Opening the modified HTML in a browser gives this screen:
</p>
<p><img src="/Blog/PublishingImages/Screenshot3.png" alt="Screenshot3.png" style="margin-top:5px;margin-right:5px;margin-bottom:5px;margin-left:5px;width:650px;height:349px" /><br /></p>
<p>As you can see, the browser recognizes this as a standard HTML file. In fact the entire structure of the page went through intact, and visually the only changes noticeable are the additions of the placeholders above and below that mark out the ribbon and the content placeholders respectively. Note that only the HTML file has been changed, even though we’ve uploaded the CSS, it is still the same file. 
</p>
<p>Clicking on the name of the HTML source file in the Design Manager will bring us to the preview screen where we can preview our master page as applied to our site. 
</p>
<p><img src="/Blog/PublishingImages/Screenshot4.png" alt="Screenshot4.png" style="margin-top:5px;margin-right:5px;margin-bottom:5px;margin-left:5px;width:650px;height:402px" /><br /></p>
<p>Let's take a closer look at how SharePoint 2013 changed our source HTML. </p>
<p><img src="/Blog/PublishingImages/AnnotatedListing.png" alt="AnnotatedListing.png" style="margin-top:5px;margin-right:5px;margin-bottom:5px;margin-left:5px;width:750px;height:186px" /><br /></p>
<p>We will be referring to the code listing over the course of the blog post. Let's break it down section by section. 
</p>
<h3><font style="font-weight:bold">The Starting Tags</font></h3>
<p>The starting tags consist of the tags before the header section. Note that if you've got the image above open in another window, this is everything in the red sections.
</p>
<p>Our processed HTML file has the following tags above the header:</p>
<div id="codeSnippetWrapper" style="border-bottom-color:silver;border-bottom-width:1px;border-bottom-style:solid;text-align:left;border-left-color:silver;border-left-width:1px;border-left-style:solid;padding-bottom:4px;line-height:12pt;background-color:rgb(244, 244, 244);margin-top:20px;margin-right:0px;margin-bottom:10px;margin-left:0px;padding-left:4px;width:97.5%;padding-right:4px;font-family:'courier new', courier, monospace;direction:ltr;max-height:200px;font-size:8pt;overflow-x:auto;overflow-y:auto;border-top-color:silver;border-top-width:1px;border-top-style:solid;cursor:text;border-right-color:silver;border-right-width:1px;border-right-style:solid;padding-top:4px">
<div id="codeSnippet" style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:rgb(244, 244, 244);border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px"><pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">&lt;?xml version=<span style="color:rgb(0, 96, 128)">&quot;1.0&quot;</span> encoding=<span style="color:rgb(0, 96, 128)">&quot;utf-8&quot;</span>?&gt;&lt;!--SPG:</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px"> </pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">This HTML file has been associated with a SharePoint </pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">Master Page (.master file) carrying the same name. </pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px"> While the files remain associated, you will not be allowed to edit </pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">the .master file, and any rename, move, or deletion operations will be reciprocated.</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px"> </pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">To build the master page directly from <span style="color:rgb(0, 0, 255)">this</span> HTML file, </pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">simply edit the page <span style="color:rgb(0, 0, 255)">as</span> you normally would.  </pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">Use the Snippet Generator at </pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">http:<span style="color:rgb(0, 128, 0)">//portal.synergy.com/_layouts/15/ComponentHome.aspx?Url=http%3A%2F%2Fportal%2</span></pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px"><span style="color:rgb(0, 128, 0)">Esynergy%2Ecom%2F%5Fcatalogs%2Fmasterpage%2Findex%2Emaster </span></pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px"><span style="color:rgb(0, 128, 0)"></span><span class="Apple-style-span" style="color:rgb(0, 128, 0)">to create and customize useful SharePoint entities, </span></pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px"><span class="Apple-style-span" style="color:rgb(0, 128, 0)">then copy and paste them as HTML snippets into your HTML code.  </span></pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px"><span style="color:rgb(0, 128, 0)"> All updates to this file will automatically sync to the associated Master Page.</span></pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px"> </pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">--&gt;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">&lt;!DOCTYPE html[]&gt;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">&lt;html xmlns:mso=<span style="color:rgb(0, 96, 128)">&quot;urn:schemas-microsoft-com:office:office&quot;</span> </pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">xmlns:msdt=<span style="color:rgb(0, 96, 128)">&quot;uuid:C2F41010-65B3-11d1-A29F-00AA00C14882&quot;</span>&gt;</pre></div></div>
<p>The first tag is a declaration of the XML version and the encoding of the document. You normally only want to pay attention to this line if your HTML contains text in Asian languages, as the encoding is likely going to be different. (E.g Big5 encoding for traditional Chinese).
</p>
<p>The next tag (&lt;!—SPG …) is a comment added by SharePoint 2013’s Design Manager – it is to inform the user that the HTML has been linked to a master page and that any changes to the HTML will be reflected in the master page. For example if you delete a tag, the same tag within the structure will be deleted in the corresponding master page. This is done automatically. 
</p>
<p>The next thing of note within this comment is that link to the Snippet Generator. This is a major tool in SharePoint 2013 that is meant to be used to add dynamic content to your master page. Extensive coverage of the Snippet Generator is beyond the scope of this blog post. Look out for a full post detailing its workings in the near future!
</p>
<p>The last tag in the pre-head section is the standard doctype declaration. Here I've used the HTML5 declaration, and as you can see SharePoint 2013 will follow the doctype in the source HTML. There is no inherent support in SharePoint 2013 for HTML5, and any special HTML5 specific tags are treated the same as HTML4 tags. 
</p>
<p>Also, the default doctype declaration in SharePoint 2013 is now the <a href="http://www.w3schools.com/tags/tag_doctype.asp" target="_blank">'XHTML 1.0 Strict' DTD</a>'. We know this because running a source HTML that has no doctype declaration through the design manager results in SharePoint 2013 defaulting to the 'Strict' DTD. Microsoft seems to be pushing developers and designers to adopt the prevailing w3c best practices as the 'Transitional' DTD falls out of favor.
</p>
<h3><font style="font-weight:bold">The Head Section</font></h3>
<p>The head section is everything between the &lt;head&gt; and &lt;/head&gt; tags in a standard HTML. In the code reference image I provided above, its everything highlighted in blue. 
</p>
<p>SharePoint 2013 inserts its own content inside. A full listing follows:</p>
<div id="codeSnippetWrapper" style="border-bottom-color:silver;border-bottom-width:1px;border-bottom-style:solid;text-align:left;border-left-color:silver;border-left-width:1px;border-left-style:solid;padding-bottom:4px;line-height:12pt;background-color:rgb(244, 244, 244);margin-top:20px;margin-right:0px;margin-bottom:10px;margin-left:0px;padding-left:4px;width:97.5%;padding-right:4px;font-family:'courier new', courier, monospace;direction:ltr;max-height:200px;font-size:8pt;overflow-x:auto;overflow-y:auto;border-top-color:silver;border-top-width:1px;border-top-style:solid;cursor:text;border-right-color:silver;border-right-width:1px;border-right-style:solid;padding-top:4px">
<div id="codeSnippet" style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:rgb(244, 244, 244);border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px"><pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">&lt;head&gt;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">        &lt;meta http-equiv=<span style="color:rgb(0, 96, 128)">&quot;X-UA-Compatible&quot;</span> content=<span style="color:rgb(0, 96, 128)">&quot;IE=10&quot;</span> xmlns=<span style="color:rgb(0, 96, 128)">&quot;&quot;</span> /&gt;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">        &lt;!--CS: Start Page Head Contents Snippet--&gt;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">        &lt;!--SPM:&lt;%@Register Tagprefix=<span style="color:rgb(0, 96, 128)">&quot;SharePoint&quot;</span> Namespace=<span style="color:rgb(0, 96, 128)">&quot;Microsoft.SharePoint.WebControls&quot;</span> </pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">Assembly=<span style="color:rgb(0, 96, 128)">&quot;Microsoft.SharePoint, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c&quot;</span>%&gt;--&gt;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">        &lt;!--SPM:&lt;%@Register Tagprefix=<span style="color:rgb(0, 96, 128)">&quot;WebPartPages&quot;</span> Namespace=<span style="color:rgb(0, 96, 128)">&quot;Microsoft.SharePoint.WebPartPages&quot;</span> </pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">Assembly=<span style="color:rgb(0, 96, 128)">&quot;Microsoft.SharePoint, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c&quot;</span>%&gt;--&gt;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">        &lt;!--SID:00 --&gt;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">        &lt;meta name=<span style="color:rgb(0, 96, 128)">&quot;GENERATOR&quot;</span> content=<span style="color:rgb(0, 96, 128)">&quot;Microsoft SharePoint&quot;</span> xmlns=<span style="color:rgb(0, 96, 128)">&quot;&quot;</span> /&gt;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">        &lt;meta http-equiv=<span style="color:rgb(0, 96, 128)">&quot;Content-type&quot;</span> content=<span style="color:rgb(0, 96, 128)">&quot;text/html; charset=utf-8&quot;</span> xmlns=<span style="color:rgb(0, 96, 128)">&quot;&quot;</span> /&gt;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">        &lt;meta http-equiv=<span style="color:rgb(0, 96, 128)">&quot;Expires&quot;</span> content=<span style="color:rgb(0, 96, 128)">&quot;0&quot;</span> xmlns=<span style="color:rgb(0, 96, 128)">&quot;&quot;</span> /&gt;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">        &lt;!--MS:&lt;SharePoint:RobotsMetaTag runat=<span style="color:rgb(0, 96, 128)">&quot;server&quot;</span>&gt;--&gt;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">        &lt;!--ME:&lt;/SharePoint:RobotsMetaTag&gt;--&gt;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">        &lt;!--MS:&lt;SharePoint:PageTitle runat=<span style="color:rgb(0, 96, 128)">&quot;server&quot;</span>&gt;--&gt;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">            &lt;!--MS:&lt;asp:ContentPlaceHolder ID=<span style="color:rgb(0, 96, 128)">&quot;PlaceHolderPageTitle&quot;</span> runat=<span style="color:rgb(0, 96, 128)">&quot;server&quot;</span>&gt;--&gt;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">            &lt;!--ME:&lt;/asp:ContentPlaceHolder&gt;--&gt;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">        &lt;!--ME:&lt;/SharePoint:PageTitle&gt;--&gt;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">        &lt;!--MS:&lt;SharePoint:StartScript runat=<span style="color:rgb(0, 96, 128)">&quot;server&quot;</span>&gt;--&gt;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">        &lt;!--ME:&lt;/SharePoint:StartScript&gt;--&gt;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">        &lt;!--MS:&lt;SharePoint:CssLink runat=<span style="color:rgb(0, 96, 128)">&quot;server&quot;</span> Version=<span style="color:rgb(0, 96, 128)">&quot;15&quot;</span>&gt;--&gt;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">        &lt;!--ME:&lt;/SharePoint:CssLink&gt;--&gt;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">        &lt;!--MS:&lt;SharePoint:CacheManifestLink runat=<span style="color:rgb(0, 96, 128)">&quot;server&quot;</span>&gt;--&gt;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">        &lt;!--ME:&lt;/SharePoint:CacheManifestLink&gt;--&gt;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">        &lt;!--MS:&lt;SharePoint:PageRenderMode runat=<span style="color:rgb(0, 96, 128)">&quot;server&quot;</span> RenderModeType=<span style="color:rgb(0, 96, 128)">&quot;Standard&quot;</span>&gt;--&gt;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">        &lt;!--ME:&lt;/SharePoint:PageRenderMode&gt;--&gt;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">        &lt;!--MS:&lt;SharePoint:ScriptLink language=<span style="color:rgb(0, 96, 128)">&quot;javascript&quot;</span> name=<span style="color:rgb(0, 96, 128)">&quot;start.js&quot;</span> OnDemand=<span style="color:rgb(0, 96, 128)">&quot;true&quot;</span> </pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">LoadAfterUI=<span style="color:rgb(0, 96, 128)">&quot;true&quot;</span> runat=<span style="color:rgb(0, 96, 128)">&quot;server&quot;</span> Localizable=<span style="color:rgb(0, 96, 128)">&quot;false&quot;</span>&gt;--&gt;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">        &lt;!--ME:&lt;/SharePoint:ScriptLink&gt;--&gt;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">        &lt;!--MS:&lt;SharePoint:ScriptLink language=<span style="color:rgb(0, 96, 128)">&quot;javascript&quot;</span> name=<span style="color:rgb(0, 96, 128)">&quot;core.js&quot;</span> OnDemand=<span style="color:rgb(0, 96, 128)">&quot;true&quot;</span> </pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">runat=<span style="color:rgb(0, 96, 128)">&quot;server&quot;</span> Localizable=<span style="color:rgb(0, 96, 128)">&quot;false&quot;</span>&gt;--&gt;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">        &lt;!--ME:&lt;/SharePoint:ScriptLink&gt;--&gt;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">        &lt;!--MS:&lt;SharePoint:ScriptLink language=<span style="color:rgb(0, 96, 128)">&quot;javascript&quot;</span> name=<span style="color:rgb(0, 96, 128)">&quot;menu.js&quot;</span> OnDemand=<span style="color:rgb(0, 96, 128)">&quot;true&quot;</span> </pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">runat=<span style="color:rgb(0, 96, 128)">&quot;server&quot;</span> Localizable=<span style="color:rgb(0, 96, 128)">&quot;false&quot;</span>&gt;--&gt;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">        &lt;!--ME:&lt;/SharePoint:ScriptLink&gt;--&gt;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">        &lt;!--MS:&lt;SharePoint:ScriptLink language=<span style="color:rgb(0, 96, 128)">&quot;javascript&quot;</span> name=<span style="color:rgb(0, 96, 128)">&quot;sharing.js&quot;</span> OnDemand=<span style="color:rgb(0, 96, 128)">&quot;true&quot;</span> </pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">runat=<span style="color:rgb(0, 96, 128)">&quot;server&quot;</span> Localizable=<span style="color:rgb(0, 96, 128)">&quot;false&quot;</span>&gt;--&gt;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">        &lt;!--ME:&lt;/SharePoint:ScriptLink&gt;--&gt;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">        &lt;!--MS:&lt;SharePoint:ScriptLink language=<span style="color:rgb(0, 96, 128)">&quot;javascript&quot;</span> name=<span style="color:rgb(0, 96, 128)">&quot;suitelinks.js&quot;</span> OnDemand=<span style="color:rgb(0, 96, 128)">&quot;true&quot;</span> </pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">runat=<span style="color:rgb(0, 96, 128)">&quot;server&quot;</span> Localizable=<span style="color:rgb(0, 96, 128)">&quot;false&quot;</span>&gt;--&gt;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">        &lt;!--ME:&lt;/SharePoint:ScriptLink&gt;--&gt;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">        &lt;!--MS:&lt;SharePoint:CustomJSUrl runat=<span style="color:rgb(0, 96, 128)">&quot;server&quot;</span>&gt;--&gt;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">        &lt;!--ME:&lt;/SharePoint:CustomJSUrl&gt;--&gt;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">        &lt;!--MS:&lt;SharePoint:SoapDiscoveryLink runat=<span style="color:rgb(0, 96, 128)">&quot;server&quot;</span>&gt;--&gt;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">        &lt;!--ME:&lt;/SharePoint:SoapDiscoveryLink&gt;--&gt;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">        &lt;!--MS:&lt;SharePoint:AjaxDelta ID=<span style="color:rgb(0, 96, 128)">&quot;DeltaPlaceHolderAdditionalPageHead&quot;</span> Container=<span style="color:rgb(0, 96, 128)">&quot;false&quot;</span> </pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">runat=<span style="color:rgb(0, 96, 128)">&quot;server&quot;</span>&gt;--&gt;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">            &lt;!--MS:&lt;asp:ContentPlaceHolder </pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">ID=<span style="color:rgb(0, 96, 128)">&quot;PlaceHolderAdditionalPageHead&quot;</span> runat=<span style="color:rgb(0, 96, 128)">&quot;server&quot;</span>&gt;--&gt;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">            &lt;!--ME:&lt;/asp:ContentPlaceHolder&gt;--&gt;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">            &lt;!--MS:&lt;SharePoint:DelegateControl runat=<span style="color:rgb(0, 96, 128)">&quot;server&quot;</span> ControlId=<span style="color:rgb(0, 96, 128)">&quot;AdditionalPageHead&quot;</span> </pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">AllowMultipleControls=<span style="color:rgb(0, 96, 128)">&quot;true&quot;</span>&gt;--&gt;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">            &lt;!--ME:&lt;/SharePoint:DelegateControl&gt;--&gt;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">        &lt;!--ME:&lt;/SharePoint:AjaxDelta&gt;--&gt;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">        &lt;!--[<span style="color:rgb(0, 0, 255)">if</span> IE 9]&gt;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">    &lt;style type=<span style="color:rgb(0, 96, 128)">&quot;text/css&quot;</span>&gt;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">    .ms-core-animation-transparent</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">    {</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">        opacity:0;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">    }</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">    .ms-isBot .ms-core-animation-transparent</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">    {</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">        opacity:1;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">    }</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">    &lt;/style&gt;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">&lt;![endif]--&gt;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">        &lt;!--[<span style="color:rgb(0, 0, 255)">if</span> lte IE 8]&gt;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">    &lt;style type=<span style="color:rgb(0, 96, 128)">&quot;text/css&quot;</span>&gt;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">        .ms-core-animation-transparent,</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">        .ms-core-animation-transparent img</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">        {</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">           -ms-filter:<span style="color:rgb(0, 96, 128)">&quot;alpha(opacity=0)&quot;</span>;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">        }</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">        .ms-isBot .ms-core-animation-transparent,</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">        .ms-isBot .ms-core-animation-transparent img</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">        {</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">           -ms-filter:<span style="color:rgb(0, 96, 128)">&quot;&quot;</span>;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">        }</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">    &lt;/style&gt;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">&lt;![endif]--&gt;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">        &lt;script type=<span style="color:rgb(0, 96, 128)">&quot;text/javascript&quot;</span> xmlns=<span style="color:rgb(0, 96, 128)">&quot;&quot;</span>&gt;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">    var g_pageLoadAnimationParams = { elementSlideIn : </pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px"><span style="color:rgb(0, 96, 128)">&quot;sideNavBox&quot;</span>, elementSlideInPhase2 : <span style="color:rgb(0, 96, 128)">&quot;contentBox&quot;</span> };</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px"> </pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">        &lt;/script&gt;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">        &lt;script type=<span style="color:rgb(0, 96, 128)">&quot;text/javascript&quot;</span> xmlns=<span style="color:rgb(0, 96, 128)">&quot;&quot;</span>&gt;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">    var bglImgElmId = <span style="color:rgb(0, 96, 128)">&quot;background&quot;</span>;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">    var bglHelperElmIds = [];</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px"> </pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">        &lt;/script&gt;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">        &lt;!--MS:&lt;SharePoint:CssRegistration Name=<span style="color:rgb(0, 96, 128)">&quot;corev15.css&quot;</span> runat=<span style="color:rgb(0, 96, 128)">&quot;server&quot;</span>&gt;--&gt;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">        &lt;!--ME:&lt;/SharePoint:CssRegistration&gt;--&gt;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">        &lt;!--MS:&lt;SharePoint:ImageRegistration runat=<span style="color:rgb(0, 96, 128)">&quot;server&quot;</span> </pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">ImageUrl=<span style="color:rgb(0, 96, 128)">&quot;/_layouts/15/images/spmpv15gradients.png&quot;</span> Hide=<span style="color:rgb(0, 96, 128)">&quot;true&quot;</span> IsCssRelated=<span style="color:rgb(0, 96, 128)">&quot;true&quot;</span>&gt;--&gt;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">        &lt;!--ME:&lt;/SharePoint:ImageRegistration&gt;--&gt;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">        &lt;!--MS:&lt;WebPartPages:SPWebPartManager runat=<span style="color:rgb(0, 96, 128)">&quot;server&quot;</span>&gt;--&gt;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">        &lt;!--ME:&lt;/WebPartPages:SPWebPartManager&gt;--&gt;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">        &lt;!--CE: End Page Head Contents Snippet--&gt;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">        &lt;!--DC:SharePoint 2013 Demo Site--&gt;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">        &lt;link title=<span style="color:rgb(0, 96, 128)">&quot;new&quot;</span> rel=<span style="color:rgb(0, 96, 128)">&quot;stylesheet&quot;</span> href=<span style="color:rgb(0, 96, 128)">&quot;style.css&quot;</span> type=<span style="color:rgb(0, 96, 128)">&quot;text/css&quot;</span> /&gt;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">        &lt;!--[<span style="color:rgb(0, 0, 255)">if</span> gte mso 9]&gt;&lt;xml&gt;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">&lt;mso:CustomDocumentProperties&gt;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">&lt;mso:ContentTypeId msdt:dt=<span style="color:rgb(0, 96, 128)">&quot;string&quot;</span></pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px"><span style="color:rgb(0, 96, 128)"></span>&gt;0x0101000F1C8B9E0EB4BE489F09807B2C53288F0054AD6EF48B9F7B45A142F</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">8173F171BD10003D357F861E29844953D5CAA1D4D8A3A&lt;/mso:ContentTypeId&gt;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">&lt;mso:HtmlDesignAssociated msdt:dt=<span style="color:rgb(0, 96, 128)">&quot;string&quot;</span>&gt;1&lt;/mso:HtmlDesignAssociated&gt;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">&lt;mso:HtmlDesignFromMaster msdt:dt=<span style="color:rgb(0, 96, 128)">&quot;string&quot;</span>&gt;&lt;/mso:HtmlDesignFromMaster&gt;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">&lt;mso:HtmlDesignConversionSucceeded msdt:dt=<span style="color:rgb(0, 96, 128)">&quot;string&quot;</span>&gt;True&lt;/mso:HtmlDesignConversionSucceeded&gt;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">&lt;mso:HtmlDesignStatusAndPreview msdt:dt=<span style="color:rgb(0, 96, 128)">&quot;string&quot;</span>&gt;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">http:<span style="color:rgb(0, 128, 0)">//portal.synergy.com/_layouts/15/previewwithstatus.aspx?Url=%5Fcatalogs%2Fmasterpage%2Fdemo%2Ehtml,</span></pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px"><span style="color:rgb(0, 128, 0)"> Conversion successful.&lt;/mso:HtmlDesignStatusAndPreview&gt;</span></pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">&lt;/mso:CustomDocumentProperties&gt;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">&lt;/xml&gt;&lt;![endif]--&gt;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">    &lt;/head&gt;</pre></div></div>
<p>It looks complicated on first glance, but the structure is actually relatively simple. Below the first meta-tag, SharePoint 2013 has inserted an entire snippet that is responsible for rendering the header section of the resulting master page. Enclosed in comment tags within the snippet we find:
</p></div>
<blockquote class="webkit-indent-blockquote" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:40px;border-top-style:none;border-right-style:none;border-bottom-style:none;border-left-style:none;border-width:initial;border-color:initial;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px"><div class="ExternalClass571CF99258BB45A88A90E08E92710EF1"><p>1. <b>Tag registrations (1<sup>st</sup> few lines)</b>. These are responsible for registration of the SharePoint Web controls. We typically only need to modify these if we are using custom code in our solution. They work pretty much the same way as in SharePoint 2010. The system encloses them in comments so that the HTML reader and/or editor will ignore them, but SharePoint is able to extract the .NET code. This is essentially the way snippets work.
</p></div>
<div class="ExternalClass571CF99258BB45A88A90E08E92710EF1"><p>2. <b>Web Controls</b>. Anything that we see that begins with “&lt;SharePoint:…” is typically a web control. For example, SharePoint:Scriptlink will generate a javascript registration to the SharePoint default javascripts. SharePoint:CSSRegistration also works in a similar way.
</p></div>
<div class="ExternalClass571CF99258BB45A88A90E08E92710EF1"><p>3. <b>Content Placeholders</b>. Any code that begins with asp:ContentPlaceHolder defines a placeholder for dynamic content. For example asp:ContenePlaceHolder ID=”PlaceHolderPageTitle” will be replaced at runtime with the correct page title. The page title is defined upon page creation by the user, and has to be read and placed correctly at runtime so that it can be displayed. All other dynamic content placeholders work in a similar way.
</p></div>
<div class="ExternalClass571CF99258BB45A88A90E08E92710EF1"><p>4. <b>Javascript and CSS</b>. We also have CSS in the page head, and some javascript that tailors the user experience to various versions of IE. Towards the end of the snippet you will see the SharePoint:CSSRegistration tag for “corev15.css”. This is the new primary CSS file for SharePoint.
</p></div></blockquote>
<div class="ExternalClass571CF99258BB45A88A90E08E92710EF1"><p>Immediately after the closing tag of the snippet (&lt;!--CE: End Page Head Contents Snippet--&gt;) we have our own external CSS link. If I had included any Javascript files, they will show up here as well. Note that since these links are always further down the page than SharePoint’s core CSS files, our CSS files will always take precedence. 
</p>
<p>This is by default, and is a departure from SharePoint 2010, where the best practice was to register our own CSS file using the SharePoint:CSSRegistration tag and use the “after” property to specify precedence. 
</p>
<p>Immediately after our links, we have a section of XML code – this section is responsible for the link between our HTML and the master page. It also stores the conversion status (success/failure).
</p>
<p>Also here you will find the link to preview page.
</p>
<p><b></b>
</p>
<h3><font style="font-weight:bold">The Body Section</font></h3>
<p>The body section is where we will find our HTML page. In the code listing at the start of the article, its highlighted in green. You will notice that the main structure is completely different from our source HTML. This is because SharePoint inserts the ribbon here, and has to make the appropriate adjustments to the code to accommodate. There are 3 main parts we must concern ourselves with:
</p>
<h3><font style="font-weight:bold">Section 1: Ribbon</font></h3>
<p>Immediately after the opening body tag, we have the snippet for the SharePoint ribbon. </p>
<div id="codeSnippetWrapper" style="border-bottom-color:silver;border-bottom-width:1px;border-bottom-style:solid;text-align:left;border-left-color:silver;border-left-width:1px;border-left-style:solid;padding-bottom:4px;line-height:12pt;background-color:rgb(244, 244, 244);margin-top:20px;margin-right:0px;margin-bottom:10px;margin-left:0px;padding-left:4px;width:97.5%;padding-right:4px;font-family:'courier new', courier, monospace;direction:ltr;max-height:200px;font-size:8pt;overflow-x:auto;overflow-y:auto;border-top-color:silver;border-top-width:1px;border-top-style:solid;cursor:text;border-right-color:silver;border-right-width:1px;border-right-style:solid;padding-top:4px">
<div id="codeSnippet" style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:rgb(244, 244, 244);border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px"><pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">&lt;!--CS: Start Ribbon Snippet--&gt;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">        &lt;!--SPM:&lt;%@Register Tagprefix=<span style="color:rgb(0, 96, 128)">&quot;SharePoint&quot;</span> Namespace=<span style="color:rgb(0, 96, 128)">&quot;Microsoft.SharePoint.WebControls&quot;</span> </pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">Assembly=<span style="color:rgb(0, 96, 128)">&quot;Microsoft.SharePoint, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c&quot;</span>%&gt;--&gt;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">        &lt;!--SPM:&lt;%@Register Tagprefix=<span style="color:rgb(0, 96, 128)">&quot;wssucw&quot;</span> TagName=<span style="color:rgb(0, 96, 128)">&quot;Welcome&quot;</span> </pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">Src=<span style="color:rgb(0, 96, 128)">&quot;~/_controltemplates/15/Welcome.ascx&quot;</span>%&gt;--&gt;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">        &lt;div id=<span style="color:rgb(0, 96, 128)">&quot;TurnOnAccessibility&quot;</span> style=<span style="color:rgb(0, 96, 128)">&quot;display:none&quot;</span> <span style="color:rgb(0, 0, 255)">class</span>=<span style="color:rgb(0, 96, 128)">&quot;s4-notdlg noindex&quot;</span>&gt;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">            &lt;a id=<span style="color:rgb(0, 96, 128)">&quot;linkTurnOnAcc&quot;</span> href=<span style="color:rgb(0, 96, 128)">&quot;#&quot;</span> <span style="color:rgb(0, 0, 255)">class</span>=<span style="color:rgb(0, 96, 128)">&quot;ms-accessible ms-acc-button&quot;</span> </pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">onclick=<span style="color:rgb(0, 96, 128)">&quot;SetIsAccessibilityFeatureEnabled(true);UpdateAccessibilityUI();</span></pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px"><span style="color:rgb(0, 96, 128)">document.getElementById('linkTurnOffAcc').focus();return false;&quot;</span>&gt;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">                &lt;!--MS:&lt;SharePoint:EncodedLiteral runat=<span style="color:rgb(0, 96, 128)">&quot;server&quot;</span> </pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">text=<span style="color:rgb(0, 96, 128)">&quot;&amp;lt;%$Resources:wss,master_turnonaccessibility%&amp;gt;&quot;</span></pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px"><span style="color:rgb(0, 96, 128)"></span> EncodeMethod=<span style="color:rgb(0, 96, 128)">&quot;HtmlEncode&quot;</span>&gt;--&gt;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">                &lt;!--ME:&lt;/SharePoint:EncodedLiteral&gt;--&gt;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">            &lt;/a&gt;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">        &lt;/div&gt;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">        &lt;div id=<span style="color:rgb(0, 96, 128)">&quot;TurnOffAccessibility&quot;</span> style=<span style="color:rgb(0, 96, 128)">&quot;display:none&quot;</span> <span style="color:rgb(0, 0, 255)">class</span>=<span style="color:rgb(0, 96, 128)">&quot;s4-notdlg noindex&quot;</span>&gt;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">            &lt;a id=<span style="color:rgb(0, 96, 128)">&quot;linkTurnOffAcc&quot;</span> href=<span style="color:rgb(0, 96, 128)">&quot;#&quot;</span> <span style="color:rgb(0, 0, 255)">class</span>=<span style="color:rgb(0, 96, 128)">&quot;ms-accessible ms-acc-button&quot;</span> </pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">onclick=<span style="color:rgb(0, 96, 128)">&quot;SetIsAccessibilityFeatureEnabled(false);UpdateAccessibilityUI();</span></pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px"><span style="color:rgb(0, 96, 128)">document.getElementById('linkTurnOnAcc').focus();return false;&quot;</span>&gt;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">                &lt;!--MS:&lt;SharePoint:EncodedLiteral runat=<span style="color:rgb(0, 96, 128)">&quot;server&quot;</span> </pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">text=<span style="color:rgb(0, 96, 128)">&quot;&amp;lt;%$Resources:wss,master_turnoffaccessibility%&amp;gt;&quot;</span> </pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">EncodeMethod=<span style="color:rgb(0, 96, 128)">&quot;HtmlEncode&quot;</span>&gt;--&gt;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">                &lt;!--ME:&lt;/SharePoint:EncodedLiteral&gt;--&gt;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">            &lt;/a&gt;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">        &lt;/div&gt;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">        &lt;div id=<span style="color:rgb(0, 96, 128)">&quot;ms-designer-ribbon&quot;</span>&gt;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">            &lt;!--SID:02 {Ribbon}--&gt;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">            &lt;!--PS: Start of READ-ONLY PREVIEW (<span style="color:rgb(0, 0, 255)">do</span> not modify) --&gt;&lt;div <span style="color:rgb(0, 0, 255)">class</span>=<span style="color:rgb(0, 96, 128)">&quot;DefaultContentBlock&quot;</span> </pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">style=<span style="color:rgb(0, 96, 128)">&quot;background:rgb(0, 114, 198); color:white; width:100%; padding:8px; height:64px; </span></pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px"><span style="color:rgb(0, 96, 128)">overflow:hidden;&quot;</span>&gt;The SharePoint ribbon will be here when your file <span style="color:rgb(0, 0, 255)">is</span> either previewed on </pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">or applied to your site.&lt;/div&gt;&lt;!--PE: End of READ-ONLY PREVIEW --&gt;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">        &lt;/div&gt;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">        &lt;!--MS:&lt;SharePoint:SPSecurityTrimmedControl runat=<span style="color:rgb(0, 96, 128)">&quot;server&quot;</span> </pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">AuthenticationRestrictions=<span style="color:rgb(0, 96, 128)">&quot;AnonymousUsersOnly&quot;</span>&gt;--&gt;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">            &lt;!--MS:&lt;wssucw:Welcome runat=<span style="color:rgb(0, 96, 128)">&quot;server&quot;</span> EnableViewState=<span style="color:rgb(0, 96, 128)">&quot;false&quot;</span>&gt;--&gt;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">            &lt;!--ME:&lt;/wssucw:Welcome&gt;--&gt;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">        &lt;!--ME:&lt;/SharePoint:SPSecurityTrimmedControl&gt;--&gt;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">        &lt;!--CE: End Ribbon Snippet--&gt;</pre></div></div>
<p>This is everything from &lt;!--CS: Start Ribbon Snippet--&gt; to &lt;!--CS: End Ribbon Snippet--&gt;. For those of you who have done SharePoint 2010 branding, you will realize that the ribbon code is much shorter than in SharePoint 2010. This is because the entire ribbon is rendered using one control on the master page – which means that the ribbon code is no longer exposed to the designer, making heavy customization of the ribbon all but impossible to the designer without access to custom code. </p>
<h3><font style="font-weight:bold">Section 2: Original HTML</font></h3>
<p>After the ribbon, we see a couple of div tags. The contents of the inner one “s4-bodyContainer” should look familiar.</p>
<div id="codeSnippetWrapper" style="border-bottom-color:silver;border-bottom-width:1px;border-bottom-style:solid;text-align:left;border-left-color:silver;border-left-width:1px;border-left-style:solid;padding-bottom:4px;line-height:12pt;background-color:rgb(244, 244, 244);margin-top:20px;margin-right:0px;margin-bottom:10px;margin-left:0px;padding-left:4px;width:97.5%;padding-right:4px;font-family:'courier new', courier, monospace;direction:ltr;max-height:200px;font-size:8pt;overflow-x:auto;overflow-y:auto;border-top-color:silver;border-top-width:1px;border-top-style:solid;cursor:text;border-right-color:silver;border-right-width:1px;border-right-style:solid;padding-top:4px">
<div id="codeSnippet" style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:rgb(244, 244, 244);border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px"><pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">&lt;div id=<span style="color:rgb(0, 96, 128)">&quot;menu_container&quot;</span>&gt;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">                    &lt;div <span style="color:rgb(0, 0, 255)">class</span>=<span style="color:rgb(0, 96, 128)">&quot;menu&quot;</span>&gt;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">                        &lt;ul&gt;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">                        &lt;li&gt;Menu 1&lt;/li&gt;&lt;li&gt;Menu 2&lt;/li&gt;&lt;li&gt;Menu 3&lt;/li&gt;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">                        &lt;li&gt;Menu 4&lt;/li&gt;&lt;li&gt;Menu 5&lt;/li&gt;&lt;li&gt;Menu 6&lt;/li&gt;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">                        &lt;/ul&gt;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">                    &lt;/div&gt;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">                &lt;/div&gt;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">                &lt;div id=<span style="color:rgb(0, 96, 128)">&quot;main_container&quot;</span>&gt;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">                    &lt;div id=<span style="color:rgb(0, 96, 128)">&quot;header&quot;</span>&gt;Header&lt;/div&gt;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">                    &lt;div id=<span style="color:rgb(0, 96, 128)">&quot;banner&quot;</span>&gt;Banner Image&lt;/div&gt;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">                    &lt;div id=<span style="color:rgb(0, 96, 128)">&quot;content_Area&quot;</span>&gt;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">                        &lt;h1&gt;Section Header&lt;/h1&gt;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">                        &lt;p&gt;Lorem ipsum .. &lt;/p&gt;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">                        &lt;h1&gt;Section Header&lt;/h1&gt;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">                        &lt;p&gt;Lorem ipsum .. &lt;/p&gt;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">                    &lt;/div&gt;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">                    &lt;div id=<span style="color:rgb(0, 96, 128)">&quot;sidebar&quot;</span>&gt;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">                        &lt;h2&gt;Sidebar&lt;/h2&gt;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">                        &lt;ul&gt;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">                            &lt;li&gt;List Item&lt;/li&gt;&lt;li&gt;List Item&lt;/li&gt;&lt;li&gt;List Item&lt;/li&gt;&lt;li&gt;List </pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">Item&lt;/li&gt;&lt;li&gt;List Item&lt;/li&gt;&lt;li&gt;List Item&lt;/li&gt;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">                        &lt;/ul&gt;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">                    &lt;/div&gt;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">                    &lt;div style=<span style="color:rgb(0, 96, 128)">&quot;clear:both;&quot;</span>&gt;&lt;/div&gt;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">                    &lt;div id=<span style="color:rgb(0, 96, 128)">&quot;footer&quot;</span>&gt;Page footer &amp;amp; Copyright notice.&lt;/div&gt;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">                &lt;/div&gt;</pre></div></div>

<p>It’s actually the entire contents of the body tag in the original HTML, completely unmodified. This means that should your design reply on heavy styling of the body (most often this occurs when we apply a CSS to the body to center the main layout), the design might break. Designers take note.
</p>
<p>Also, our menu is still the same. The &lt;ul&gt; tag is unmodified and still shows static dummy content. We must replace this manually later on with SharePoint dynamic content.
</p>
<h3><font style="font-weight:bold">Section 3: PlaceHolderMain</font></h3>
<p>Within the same div, and after our original HTML, we have the most important part of the page by far: The placeholder for the main content of the page – PlaceHolderMain.</p>
<div id="codeSnippetWrapper" style="border-bottom-color:silver;border-bottom-width:1px;border-bottom-style:solid;text-align:left;border-left-color:silver;border-left-width:1px;border-left-style:solid;padding-bottom:4px;line-height:12pt;background-color:rgb(244, 244, 244);margin-top:20px;margin-right:0px;margin-bottom:10px;margin-left:0px;padding-left:4px;width:97.5%;padding-right:4px;font-family:'courier new', courier, monospace;direction:ltr;max-height:200px;font-size:8pt;overflow-x:auto;overflow-y:auto;border-top-color:silver;border-top-width:1px;border-top-style:solid;cursor:text;border-right-color:silver;border-right-width:1px;border-right-style:solid;padding-top:4px">
<div id="codeSnippet" style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:rgb(244, 244, 244);border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px"><pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">&lt;div data-name=<span style="color:rgb(0, 96, 128)">&quot;ContentPlaceHolderMain&quot;</span>&gt;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">                    &lt;!--CS: Start PlaceHolderMain Snippet--&gt;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">                    &lt;!--SPM:&lt;%@Register Tagprefix=<span style="color:rgb(0, 96, 128)">&quot;SharePoint&quot;</span> </pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">Namespace=<span style="color:rgb(0, 96, 128)">&quot;Microsoft.SharePoint.WebControls&quot;</span></pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px"><span style="color:rgb(0, 96, 128)"></span> Assembly=<span style="color:rgb(0, 96, 128)">&quot;Microsoft.SharePoint, Version=15.0.0.0, Culture=neutral,</span></pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px"><span style="color:rgb(0, 96, 128)"> PublicKeyToken=71e9bce111e9429c&quot;</span>%&gt;--&gt;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">                    &lt;!--MS:&lt;SharePoint:AjaxDelta ID=<span style="color:rgb(0, 96, 128)">&quot;DeltaPlaceHolderMain&quot;</span> </pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">IsMainContent=<span style="color:rgb(0, 96, 128)">&quot;true&quot;</span> runat=<span style="color:rgb(0, 96, 128)">&quot;server&quot;</span>&gt;--&gt;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">                        &lt;!--MS:&lt;asp:ContentPlaceHolder ID=<span style="color:rgb(0, 96, 128)">&quot;PlaceHolderMain&quot;</span> runat=<span style="color:rgb(0, 96, 128)">&quot;server&quot;</span>&gt;--&gt;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">                            &lt;div <span style="color:rgb(0, 0, 255)">class</span>=<span style="color:rgb(0, 96, 128)">&quot;DefaultContentBlock&quot;</span> </pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">style=<span style="color:rgb(0, 96, 128)">&quot;border:medium black solid; background:yellow; </span></pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px"><span style="color:rgb(0, 96, 128)">color:black; margin:20px; padding:10px;&quot;</span>&gt;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">            This div, which you should delete, represents the content area that</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px"> your Page Layouts and pages will fill.</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px"> Design your Master Page around <span style="color:rgb(0, 0, 255)">this</span> content placeholder.</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">        </pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">                            &lt;/div&gt;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">                        &lt;!--ME:&lt;/asp:ContentPlaceHolder&gt;--&gt;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">                    &lt;!--ME:&lt;/SharePoint:AjaxDelta&gt;--&gt;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:rgb(244, 244, 244);margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">                    &lt;!--CE: End PlaceHolderMain Snippet--&gt;</pre>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin-top:0em;margin-right:0em;margin-bottom:0em;margin-left:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:'courier new', courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow-x:visible;overflow-y:visible;padding-top:0px">                &lt;/div&gt;</pre></div></div>

<p>This will be replaced dynamically depending on what page the user is browsing. If you are in a site where the publishing feature is turned on, the page layout will be rendered here, followed by the contents. 
</p>
<p>Note that PlaceHolderMain will always come after the HTML, and that SharePoint does not do anything to the HTML. Therefore, if dynamic content is supposed to go within the HTML layout, (which is more than likely), then we need to do adjustments to the page for SharePoint to render it correctly. 
</p>
<h3><font style="font-weight:bold">Conclusion: Final Thoughts</font></h3>
<p>We know what happens to a HTML file after SharePoint 2013's new feature the design manager is done with it. While this is a welcome feature to simplify the process of creating master pages, it is still far from automatic. One cannot expect SharePoint to produce a usable master page from an HTML cutout without human interaction. 
</p>
<p>This is mainly because SharePoint does not know where the dynamic content is to be placed, and it is up to us as designers to move the snippets to their correct places. 
</p>
<p>Our examination of the code in the processed HTML reveals that the concepts used in SharePoint 2010 are still relatively unchanged. One could go about writing a master page the traditional way, and it will still work. 
</p>
<p>I hope this has been informative and look out for more SharePoint 2013!</p></div></div>
<div><b>Category:</b> <a onclick="OpenPopUpPage('http://www.synergyonline.com/Blog/_layouts/listform.aspx?PageType=4&ListId={BEBD6B7C-8EDF-4976-8627-9238AFF8A903}&ID=13&RootFolder=*', RefreshPage); return false;" href="http://www.synergyonline.com/Blog/_layouts/listform.aspx?PageType=4&ListId={BEBD6B7C-8EDF-4976-8627-9238AFF8A903}&ID=13&RootFolder=*">SharePoint</a>; <a onclick="OpenPopUpPage('http://www.synergyonline.com/Blog/_layouts/listform.aspx?PageType=4&ListId={BEBD6B7C-8EDF-4976-8627-9238AFF8A903}&ID=4&RootFolder=*', RefreshPage); return false;" href="http://www.synergyonline.com/Blog/_layouts/listform.aspx?PageType=4&ListId={BEBD6B7C-8EDF-4976-8627-9238AFF8A903}&ID=4&RootFolder=*">Development</a>; <a onclick="OpenPopUpPage('http://www.synergyonline.com/Blog/_layouts/listform.aspx?PageType=4&ListId={BEBD6B7C-8EDF-4976-8627-9238AFF8A903}&ID=5&RootFolder=*', RefreshPage); return false;" href="http://www.synergyonline.com/Blog/_layouts/listform.aspx?PageType=4&ListId={BEBD6B7C-8EDF-4976-8627-9238AFF8A903}&ID=5&RootFolder=*">Design</a></div>
<div><b>Published:</b> 12/11/2012 4:25 PM</div>
<div><b>Author:</b> <a href="http://www.synergyonline.com/company/Profiles/Pages/MatthewLee.aspx">Matthew Lee</a></div>
<div><b>PageKeywords:</b> sharepoint development, Interactive Web Design in SharePoint 2013, SharePoint Workflow</div>
<div><b>PageTitle:</b> Interactive Web Design in SharePoint 2013: HTML before and after</div>
<div><b>PageDescription:</b> In this article, we are going to run a test HTML page through the Design manager, and we will be looking at exactly what the Design Manager does to our source HTML in order for the magic to happen.</div>
]]></description>
      <author>System Account</author>
      <category>SharePoint; Development; Design</category>
      <pubDate>Tue, 11 Dec 2012 21:23:59 GMT</pubDate>
      <guid isPermaLink="true">http://www.synergyonline.com/Blog/Lists/Posts/ViewPost.aspx?ID=246</guid>
    </item>
    <item>
      <title>Creating a Lead Tracking Application Using SharePoint 2010, InfoPath Forms and Nintex 2010 – Part 3</title>
      <link>http://www.synergyonline.com/Blog/Lists/Posts/ViewPost.aspx?ID=245</link>
      <description><![CDATA[<div><b>Body:</b> <div class="ExternalClass430D78FBEBD642FB9155ACB8183F4B66"><p>This is the third post in the series on creating a Lead Tracking Application using SharePoint 2010 technologies.  </p>
<p><a href="/Blog/Lists/Posts/Post.aspx?ID=238">Part 1</a> of the series describes the details behind the overall concept for the application and recounts the creation of the corresponding lists and views. </p>
<p><a href="/Blog/Lists/Posts/Post.aspx?ID=243">Part 2</a> of the series provides the details of the pages supporting the application and the use of InfoPath to customize views for list forms. </p>
<p>This blog provides a review of the <a href="http://www.nintex.com/en-US/Products/Pages/NintexWorkflow2010.aspx" target="_blank">Nintex Workflow</a> used for the Lead Tracking solution. </p>
<h3><font style="font-weight:bold">Workflow Requirement</font></h3>
 <p>Workflows are business automation. A Nintex Workflow provides an automated process in <a href="/sharepoint/training/public/Pages/SharePoint2010.aspx">SharePoint 2010</a> for doing repetitive actions in a uniform, transparent, consistent, and manageable way. The key to implementing a sound Nintex Workflow is to analyze the business process that the workflow models, and create a detailed set of steps to accomplish the task. </p>
<p>The objective of the Leads List workflow is to send out reminders to responsible parties on leads that require follow-up. The specific requirements for the workflow are: </p>
<ul> <li>Send the reminder once a week on Monday evening </li>
<li>Send the reminder email to the owner of the lead </li>
<li>Only send the email if the following conditions are true: <ul> <li>The target follow-up date has passed, and </li>
<li>The lead has not been tagged as dormant, dead, won, or lost</li></ul></li></ul>
 <p>An important aspect of this workflow requirements set needs explanation. Most of the workflow executes as needed without human intervention. However, there is one key exception – the lead owner must set the date for when a follow-up email is desired. Once that date is passed, the lead owner receives notifications every Monday thereafter. The only way to currently stop the email is to remove the date, set the date to a time frame in the future, or mark the lead to dormant, dead, won, or lost.  </p>
<p>The Leads List, as described in previous posts, has three key fields that support the workflow business requirements. These three fields are: </p>
<ul> <li>Follow-up: The expiration date that triggers an email. </li>
<li>Owner: The lead owner and person receiving the email. </li>
<li>LeadStatus: The field containing the status setting for the lead. The lead status values are: <ul> <li>Lead </li>
<li>Opportunity </li>
<li>Scoping </li>
<li>Quote Sent </li>
<li>Won </li>
<li>Lost </li>
<li>Dormant </li>
<li>Dead</li></ul></li></ul>
 <p>The list is shown below with relevant fields highlighted in red: </p>
<p><img src="/Blog/PublishingImages/List1.png" alt="List1.png" style="margin-top:5px;margin-right:5px;margin-bottom:5px;margin-left:5px;width:300px;height:281px" /><br /></p>
<h3><font style="font-weight:bold">Workflow Process and Architecture</font></h3>
 <p>In order to translate the functional requirements into technical some understanding of Nintex Workflow is required. Nintex Workflow provides a host of activities that allow for interaction with SharePoint 2010 content, which includes the temporary storage of list items, manipulation and review of content, and subsequent actions such as sending emails or changing list items. The details for the activities in Nintex Workflow are available from the <a href="http://connect.nintex.com/files/29/default.aspx" target="_blank">Nintex website</a>. </p>
<p>The technical requirements for this task are: </p>
<ul> <li>Create variables that temporarily store Leads List data </li>
<li>Construct the process for manipulating the data in the Leads List, which includes <ul> <li>Reading the appropriate portions of the list and storing those items in a variable </li>
<li>Loop through the items to  identify candidates for email notification </li>
<li>For each item that is an email candidate store the following information in a corresponding variable: <ul> <li>The owner who will receive the email </li>
<li>The relevant Organization information </li>
<li>URL to the item and store</li></ul></li></ul>
 </li>
<li>Setup the email notification system by: <ul> <li>Setting to with the Owner Name </li>
<li>Setting the subject with the Lead ID </li>
<li>Setting the body with a link to the source item and the Organization information</li></ul>
 </li>
<li>Run the workflow weekly on Monday evening.</li></ul>
 <p>After digesting these requirements it was decided to use a Nintex site workflow. The main factor that drove this decision is that site workflows allow for workflow scheduling.</p>
 <p><img src="/Blog/PublishingImages/Create-site-workflow2.png" alt="Create-site-workflow2.png" style="margin-top:5px;margin-right:5px;margin-bottom:5px;margin-left:5px;width:300px;height:57px" /><br /></p>
 <h3><font style="font-weight:bold">Variable Setup</font></h3>
 <p>This workflow uses seven variables. These are shown in the graphic below. A note on naming convention for these variables is necessary prior to proceeding. In a programming environment there are a <a href="http://en.wikipedia.org/wiki/Naming_convention_(programming)" target="_blank">number of conventions</a> that may be used for variable naming. The intent is to provide some clarity around the purpose of the variable. In this workflow setting I have prepended the string “var” to make clear that the item is a workflow variable.  This allows for the use of names that are similar to list column names. This gives two benefits: </p>
<ul> <li>The intention of the variable is readily apparent, along with its corresponding list source (where appropriate) </li>
<li>The variable is readily discernable as a variable</li></ul>
 <p>The definition for the variables are as follows: </p>
<ul> <li>varLeads – A Collection variable type that holds relevant leads for further processing. </li>
<li>varLeadsID – A List Item ID variable type that holds the ID of the list item currently undergoing processing. </li>
<li>varOwner – A Person variable type that holds the current owner information for the To: in the notification email. </li>
<li>varCurrentDate – A Date and Time variable time that holds the current date. </li>
<li>varSubject – A Single line of text variable type that holds the subject line for an email. </li>
<li>varURL – A Single line of text variable type that holds the URL to the currently processed item. </li>
<li>varBody – A Multiple lines of text variable type that holds the email body text.</li></ul>
 <p><img src="/Blog/PublishingImages/Workflow-Variables3.png" alt="Workflow-Variables3.png" style="margin-top:5px;margin-right:5px;margin-bottom:5px;margin-left:5px;width:500px;height:283px" /><br /></p>
 <h3><font style="font-weight:bold">Overall Workflow Design</font></h3>
 <p>The workflow design is shown below. It is split into two halves for readability.  An explanation of the various elements is explained in detail below. </p>
<p><img src="/Blog/PublishingImages/Workflow4.jpg" alt="Workflow4.jpg" style="margin-top:5px;margin-right:5px;margin-bottom:5px;margin-left:5px;width:450px;height:507px" /><br /></p>
<h3><font style="font-weight:bold">Getting List Data</font></h3>
 <p>The first step in the workflow is to get list data. This is accomplished with a Query list action. During the query list process for this workflow the list is filtered for the list items with the appropriate Lead Status (not equal to dormant, dead, lost, or worn). A portion of the Query list action is shown below for illustrative purposes. Note that the list is in Query builder mode, though for more complex queries there is a CAML editor. The ID of each item in this query is stored in the varLeads collection variable. </p>
<p><img src="/Blog/PublishingImages/Query-List5.png" alt="Query-List5.png" style="margin-top:5px;margin-right:5px;margin-bottom:5px;margin-left:5px;width:500px;height:305px" /><br /></p>
<h3><font style="font-weight:bold">Iterating Through the Collection of List Items with the For Each Action</font></h3>
 <p>Once the data has been queried from the Leads List, it is then processed in a loop. Each item is read individually and referenced by its item ID. This ID is used as a reference for subsequent steps in processing. The image below shows that the collection where the Leads List items are in the varLeads collection, and in an iterative fashion each item is read into varLeadsID for processing. </p>
<p><img src="/Blog/PublishingImages/For-Each-Action6.png" alt="For-Each-Action6.png" style="margin-top:5px;margin-right:5px;margin-bottom:5px;margin-left:5px;width:500px;height:158px" /><br /></p>
<h3><font style="font-weight:bold">Filter Processed Results with a Run If Action</font></h3>
 <p>As the items are processed in the For Each loop, the first order of business is to check the Follow-up date. If this date is still in the future, then the item is bypassed, as it is not scheduled for a notification. Conversely, if the date is in the present or past, then it enters the processing pipeline that follows. The image below shows the settings for the Run If Action. </p>
<p>Comments on this action: the lookup is performed on the actual Leads List against the item where the List ID is equal to the varLeadsID. Once this item is found, the Follow-Up date is compared to the current date (which is stored in the varCurrentDate variable). If the conditions of the comparison are satisfied, then the process for generating a notification email is performed. </p>
<p><img src="/Blog/PublishingImages/Run-I7.png" alt="Run-I7.png" style="margin-top:5px;margin-right:5px;margin-bottom:5px;margin-left:5px;width:500px;height:255px" /><br /></p>
<h3><font style="font-weight:bold">Build the Text for Each Element of the Email</font></h3>
 <p>Once the list item has passed through the Run If filter then it enters the main body of the workflow loop. In the main body, prior to email generation, the following occurs: </p>
<ul> <li>The URL to the list item is captured </li>
<li>The Owner name is captured </li>
<li>The email Subject is created </li>
<li>The email Body is created</li></ul>
 <p>The URL is captured in a Build String Action. This action embeds the item ID to a pre-generated URL. This is then stored in the varURL variable, and is used in the email body. The image blow shows the use of the Build String Action.</p>
 <p><img src="/Blog/PublishingImages/Build-String8.png" alt="Build-String8.png" style="margin-top:5px;margin-right:5px;margin-bottom:5px;margin-left:5px;width:500px;height:261px" /><br /></p>
 <p>Each of the three actions following the URL capture further gather data corresponding to elements required for the outgoing email. The Set a Variable action is used for each of these items, and queries data from the Leads List. The query uses the varLeadsID variable to get the appropriate owner, lead status, and organization. These are stored in the varOwner, varSubject, and varBody respectively. The image below shows the query for the Body element. Note that this works similarly to other queries shown above. Not how the list is returned in the varBody variable. Also note that the Field is returned as “Organization – Lookup Value (as Text).” This is used in the case where the originating field (Organization) is multiple lines of text.</p>
 <p><img src="/Blog/PublishingImages/Body9.png" alt="Body9.png" style="margin-top:5px;margin-right:5px;margin-bottom:5px;margin-left:5px;width:500px;height:185px" /><br /></p>
 <h3><font style="font-weight:bold">Send an Email to the List Item Owner</font></h3>
 <p>The final task in this workflow is to generate an email for the appropriate Leads List item owner. This is pretty rote, as all of the information is stored in the appropriate variables at this point in the workflow. The image below shows the setup for generating the email. Note how the varOwner variable is placed in the “To” field, the varSubject variable is placed in the “Subject” field, and both the varBody and varURL are placed in the main body of the email. </p>
<p><img src="/Blog/PublishingImages/email10.png" alt="email10.png" style="margin-top:5px;margin-right:5px;margin-bottom:5px;margin-left:5px;width:500px;height:366px" /><br /></p>
<h3><font style="font-weight:bold">Workflow Scheduling</font></h3>
 <p>Nintex site workflows allow for workflow scheduling. This is available on the Site Settings menu. </p>
<p><img src="/Blog/PublishingImages/schedule11.png" alt="schedule11.png" style="margin-top:5px;margin-right:5px;margin-bottom:5px;margin-left:5px;width:300px;height:56px" /><br /></p>
<p>The details of the workflow schedule for the Leads List workflow is shown below. This details the start date and time, repetition schedule, and termination. </p>
<p><img src="/Blog/PublishingImages/schedule-detail12.png" alt="schedule-detail12.png" style="margin-top:5px;margin-right:5px;margin-bottom:5px;margin-left:5px;width:500px;height:344px" /><br /></p>
<h3><font style="font-weight:bold">Afterword</font></h3>
 <p>This workflow is actually a very simple example of some of the capability that is available with Nintex. The ability to work with lists, iterate through collections of items, perform logic and branching are all very intuitive and user friendly. Working with variables may take some time for the non programmer, but in the end is pretty intuitive as well. </p>
<p>The main underpinning in creating such a workflow is the understanding of the processed being modeled, and the subsequent requirements. These drive the workflow architecture, and if done right, allow for the automation of business processes in a manner consistent with business and organizational needs. </p>
<h3><font style="font-weight:bold">Future Opportunities</font></h3>
 <p>A couple of additional capabilities that may become part of this workflow in the future are: </p>
<ul> <li>A capability where the owner can mark the number of emails and follow-ups for a given time frame. </li>
<li>A capability where the owner can decide that the workflow should turn off the email generation automatically at some foreseen time in the future.</li></ul></div></div>
<div><b>Category:</b> <a onclick="OpenPopUpPage('http://www.synergyonline.com/Blog/_layouts/listform.aspx?PageType=4&ListId={BEBD6B7C-8EDF-4976-8627-9238AFF8A903}&ID=17&RootFolder=*', RefreshPage); return false;" href="http://www.synergyonline.com/Blog/_layouts/listform.aspx?PageType=4&ListId={BEBD6B7C-8EDF-4976-8627-9238AFF8A903}&ID=17&RootFolder=*">Workflow</a>; <a onclick="OpenPopUpPage('http://www.synergyonline.com/Blog/_layouts/listform.aspx?PageType=4&ListId={BEBD6B7C-8EDF-4976-8627-9238AFF8A903}&ID=13&RootFolder=*', RefreshPage); return false;" href="http://www.synergyonline.com/Blog/_layouts/listform.aspx?PageType=4&ListId={BEBD6B7C-8EDF-4976-8627-9238AFF8A903}&ID=13&RootFolder=*">SharePoint</a></div>
<div><b>Published:</b> 12/4/2012 11:49 AM</div>
<div><b>Author:</b> <a href="http://www.synergyonline.com/company/Profiles/Pages/ChrisWelch.aspx">Chris Welch</a></div>
<div><b>PageKeywords:</b> SharePoint Workflow, SharePoint Training, SharePoint Development</div>
<div><b>PageTitle:</b> Creating a Lead Tracking Application Using SharePoint 2010, InfoPath Forms and Nintex 2010 – Part 3</div>
<div><b>PageDescription:</b> Third post in the series on creating a Lead Tracking Application using SharePoint 2010 technologies. </div>
]]></description>
      <author>System Account</author>
      <category>Workflow; SharePoint</category>
      <pubDate>Tue, 04 Dec 2012 16:41:16 GMT</pubDate>
      <guid isPermaLink="true">http://www.synergyonline.com/Blog/Lists/Posts/ViewPost.aspx?ID=245</guid>
    </item>
  </channel>
</rss>