<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:atom="https://www.w3.org/2005/Atom" xmlns:sy="https://purl.org/rss/1.0/modules/syndication/" xmlns:dc="https://purl.org/dc/elements/1.1/" xmlns:content="https://purl.org/rss/1.0/modules/content/" xmlns:wfw="https://wellformedweb.org/CommentAPI/" xmlns:slash="https://purl.org/rss/1.0/modules/slash/"
  version="2.0">
  <channel>
    <title>Sanjay Narang's thoughts on Azure and SharePoint</title>
    <atom:link
      href="https://docs.microsoft.com/archive/blogs/sanjaynarang/feed.xml"
      rel="self"
      type="application/rss+xml" />
    <link>https://docs.microsoft.com/archive/blogs/sanjaynarang/feed.xml</link>
    <description>Enabling people to understand Azure &amp;amp; SharePoint better and maximizing its use</description>
    <lastBuildDate>Wed, 17 Apr 2019 03:25:07 GMT</lastBuildDate>
    <language>en-US</language>
    <sy:updatePeriod>hourly</sy:updatePeriod>
    <sy:updateFrequency>1</sy:updateFrequency>
    <item>
      <title>Azure Networking features, NVAs and how to leverage them to design your network topology in Azure.</title>
      <link>https://docs.microsoft.com/archive/blogs/sanjaynarang/azure-networking-features-nvas-and-how-to-leverage-them-to-design-your-network-topology-in-azure</link>
      <pubDate>Wed, 16 Dec 2015 07:20:00 GMT</pubDate>
      <dc:creator><![CDATA[Sanjay.Narang]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/sanjaynarang/2015/12/16/azure-networking-features-nvas-and-how-to-leverage-them-to-design-your-network-topology-in-azure/</guid>
      <description><![CDATA[I recently did the session with above title in Future Unleashed event and in Azure Vidyapeeth. You...]]></description>
      <content:encoded><![CDATA[<p><font size="2">I recently did the session with above title in Future Unleashed event and in </font><a href="https://www.microsoft.com/india/azurevidyapeeth/" target="_blank"><font size="2">Azure Vidyapeeth</font></a><font size="2">. You can view recording in </font><a href="https://www.microsoft.com/india/Azure-vidyapeeth-app/hubpage.aspx" target="_blank"><font size="2">Azure Vidyapeeth app</font></a><font size="2"> or by registering </font><a href="https://info.microsoft.com/IN-Azure-WBNR-FY16-12Dec-14-Azure-Networking-features.html" target="_blank"><font size="2">here</font></a><font size="2">.</font></p>  <p><font size="2">A whole set of features have been released in Azure such as NSGs, Forced Tunnelling, Load Balancers, multiple VIPs, Reserved and static IPs etc. In addition, features like User Defined Routes, IP Forwarding, multi NIC VMs have enabled many Network Virtual Appliances providers like CheckPoint, Barracuda, F5 to release their products in Marketplace.&#160; </font></p>  <p><font size="2">At the same time, not many people are aware of these features and how to use these features to build a secure network topology in Azure. Many times, I’ve heard people saying that it’s not easy building a secure network topology or DMZ in Azure as they are able to do in on-prem. This is not true. With all above feature, you can build a topology the way you want with security controls that you want. You can learn about all these new features and how to use these to build a DMZ like environment in Azure in the above session. </font></p>  <p><font size="2">Also, if you are planning to secure your network topology. you must go through this white paper: </font><a href="https://azure.microsoft.com/en-us/documentation/articles/best-practices-network-security/" target="_blank"><font size="2">Microsoft Cloud Services and Network Security</font></a><font size="2">. The white paper provides an overview of security and architectural issues that customers should consider when using Microsoft Cloud services accessed via ExpressRoute as well as creating secure services in Microsoft Azure’s Virtual Network. Then, it also provides example topologies and detailed step-by-step guidance (and scripts to build these topologies)</font></p>  <ul>   <li><a href="https://azure.microsoft.com/en-us/documentation/articles/best-practices-network-security/#example-1-build-a-simple-dmz-with-nsgs"><font size="2">Example 1 – Build a DMZ to protect applications with NSGs</font></a></li>    <li><a href="https://azure.microsoft.com/en-us/documentation/articles/best-practices-network-security/#example-2-build-a-dmz-to-protect-applications-with-a-firewall-and-nsgs"><font size="2">Example 2 – Build a DMZ to protect applications with a Firewall and NSGs</font></a></li>    <li><a href="https://azure.microsoft.com/en-us/documentation/articles/best-practices-network-security/#example-3-build-a-dmz-to-protect-networks-with-a-firewall-udr-and-nsg"><font size="2">Example 3 – Build a DMZ to protect networks with a Firewall, UDR, and NSG</font></a></li>    <li><a href="https://azure.microsoft.com/en-us/documentation/articles/best-practices-network-security/#example-4-adding-a-hybrid-connection-with-a-site-to-site-virtual-appliance-vpn"><font size="2">Example 4 – Adding a hybrid connection with a Site-to-Site, Virtual Appliance VPN</font></a></li>    <li><a href="https://azure.microsoft.com/en-us/documentation/articles/best-practices-network-security/#example-5-adding-a-hybrid-connection-with-a-site-to-site-azure-gateway-vpn"><font size="2">Example 5 – Adding a hybrid connection with a Site-to-Site, Azure Gateway VPN</font></a></li>    <li><a href="https://azure.microsoft.com/en-us/documentation/articles/best-practices-network-security/#example-6-adding-a-hybrid-connection-with-expressroute"><font size="2">Example 6 – Adding a hybrid connection with ExpressRoute</font></a></li> </ul>]]></content:encoded>
    </item>
    <item>
      <title>SIEM Integration with Azure</title>
      <link>https://docs.microsoft.com/archive/blogs/sanjaynarang/siem-integration-with-azure</link>
      <pubDate>Sun, 01 Nov 2015 04:07:32 GMT</pubDate>
      <dc:creator><![CDATA[Sanjay.Narang]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/sanjaynarang/2015/11/01/siem-integration-with-azure/</guid>
      <description><![CDATA[Lot of customers ask how to integrate their existing SIEM engines with Azure. The information is not...]]></description>
      <content:encoded><![CDATA[<p><font size="2">Lot of customers ask how to integrate their existing SIEM engines with Azure. The information is not readily available and hence many customer find difficulties in integrating their SIEM engines with Azure.</font> In this post, I’m sharing some resources and points that’ll simplify this integration.</p>  <p>For Azure, I’d categorize Azure resources (you can call them as SIEM sources) into three high level areas:</p>  <ol>   <li>Virtual Machines (Both Windows and Linux)</li>    <li>Azure Portal &amp; Infrastructure</li>    <li>Azure Services such as SQL Database, Storage, Azure AD etc. </li> </ol>  <p>For each of these, Azure provides APIs and mechanisms to export the their logs into your SIEM Engines. I had recently published a blog post along with <a href="https://blogs.msdn.com/b/azuresecurity/" target="_blank">Azure Security Team</a> that provides details into these APIs and mechanisms. You can find the post here: <a title="Security logging and analysis options in Azure" href="https://blogs.msdn.com/b/azuresecurity/archive/2015/09/03/security-logging-and-analysis-options-in-azure.aspx" target="_blank">Security logging and analysis options in Azure</a>. </p>  <p>I’d like to emphasize, especially for Virtual Machines, you need not do anything different from what you’ve been doing in on-premises. Whether you are using HP ArcSight or IBM qRadar or Splunk or any other SIEM engine, the mechanism they used on-premised should also work in Azure. Mostly, these tools use Windows Event Forwarding (WEF) or WMI to collect events from Windows machines, and syslog for Linux machines. These interfaces are supported in Azure also and should work just as they work in on-premises. You would need to consider the data transfer between you on-premises SIEM server and agents in Azure. </p>  <p>Hope you find this useful.</p>]]></content:encoded>
    </item>
    <item>
      <title>SharePoint 2013 on Azure IaaS– Realizing highly available public facing web sites with geo-DR and auto-failover</title>
      <link>https://docs.microsoft.com/archive/blogs/sanjaynarang/sharepoint-2013-on-azure-iaas-realizing-highly-available-public-facing-web-sites-with-geo-dr-and-auto-failover</link>
      <pubDate>Fri, 21 Feb 2014 10:58:00 GMT</pubDate>
      <dc:creator><![CDATA[Sanjay.Narang]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/sanjaynarang/2014/02/21/sharepoint-2013-on-azure-iaas-realizing-highly-available-public-facing-web-sites-with-geo-dr-and-auto-failover/</guid>
      <description><![CDATA[Update (14-Mar-2014)&nbsp; &gt;
The recording and presentation is now available on Channel 9 -...]]></description>
      <content:encoded><![CDATA[<p><strong>Update (14-Mar-2014)</strong>&nbsp; &gt;</p>
<p>The recording and presentation is now available on Channel 9 - <a href="https://channel9.msdn.com/Events/SharePoint-Conference/2014/SPC312">https://channel9.msdn.com/Events/SharePoint-Conference/2014/SPC312</a></p>
<p>&lt; <strong>Update (14-Mar-2014)</strong></p>
<p>&nbsp;-----</p>
<p>I've been working on this topic for sometime now, and I'm happy that the solution is ready to be shared with you. I'll be&nbsp;presenting&nbsp;a session on this at SharePoint Conference 2014</p>
<p><a href="https://www.sharepointconference.com/content/sessions/SPC312">https://www.sharepointconference.com/content/sessions/SPC312</a></p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/14/39/3125.SPC14_EmailSignature_ImSpeakingAt.jpg" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-14-39/3125.SPC14_5F00_EmailSignature_5F00_ImSpeakingAt.jpg"><img src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/14/39/3125.SPC14_EmailSignature_ImSpeakingAt.jpg" original-url="https://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-14-39/3125.SPC14_5F00_EmailSignature_5F00_ImSpeakingAt.jpg" alt="" border="0" /></a></p>
<p>Here's the abstract of the session</p>
<p>Public facing websites of large organizations generally have very strict Service Level Agreements (SLA) for parameters related to Business Continuity Management (BCM) such as High Availability (HA) and Disaster Recovery (DR). Such SLAs can&rsquo;t be met with just with the HA capabilities of a SharePoint farm or 99.95% uptime offered by Azure Virtual Machines (VMs) using availability sets.</p>
<p>In this session we will discuss how to meet such demands by implementing two SharePoint farms on two different Azure IAAS data centres (DC) in hot stand-by DR mode which can failover within minutes. We&rsquo;ll do a demo of the auto-failover feature on live SharePoint environments.</p>
<p>We will explain how we used a combination of technologies, SQL Server Always On, Log shipping, Azure Blob storage, and Azure Traffic Manager (ATM) to build the above solution.</p>
<p>Geo-redundancy in SharePoint is a relatively less explored area even in the on-premise world. Azure IaaS adds some more challenges such as non-availability of cross-datacenter VNET or AD domain. The session provides information on how to address these challenges and will lay out the available choices on techniques, consequences of the choices and hidden issues to watch out for in each of these aspects. The session is based on real life scenarios from two large customers with public web sites on SharePoint.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>]]></content:encoded>
    </item>
    <item>
      <title>Sizing and Capacity Planning for SharePoint 2013 - Resources</title>
      <link>https://docs.microsoft.com/archive/blogs/sanjaynarang/sizing-and-capacity-planning-for-sharepoint-2013-resources</link>
      <pubDate>Sat, 06 Apr 2013 02:30:00 GMT</pubDate>
      <dc:creator><![CDATA[Sanjay.Narang]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/sanjaynarang/2013/04/06/sizing-and-capacity-planning-for-sharepoint-2013-resources/</guid>
      <description><![CDATA[v4:9-May-13, v3:15-Apr-13, v2: 9-Apr-13, v1: 6-Apr-13
SharePoint 2013 has been out for some time...]]></description>
      <content:encoded><![CDATA[<p>v4:9-May-13, v3:15-Apr-13, v2: 9-Apr-13, v1: 6-Apr-13</p>
<p>SharePoint 2013 has been out for some time now, and most of new the SharePoint projects are happening on SharePoint 2013. However, when it comes to sizing and capacity planning, there isn't enough information available on TechNet (at the time of writing). Though, for the Search workload, there is very detailed information available, but when it comes to other workloads, you'd need to look into many different places where information is available in bits and pieces. In this post, I've consolidated sizing information from all resources that I could find. I've tried to categorize it based on servers/resource type. Also, in the 'Guidance' column I've provided key sizing related information in that resource. However, I strongly recommend you to go to the particular resource to get complete context of that guidance.</p>
<p>NOTE: Microsoft is going to publish a lot more information based on its performance testing. I'd try to keep this post updated. At the same time, I recommend, you always look for the latest published information from this TechNet section: <a href="https://technet.microsoft.com/en-us/library/cc261700.aspx">Capacity management and sizing for SharePoint Server 2013. Also, I have classified resources into two categories: one, Guidance along with performance test results and recommendations; Other, all other resources. </a></p>
<p>NOTE on Formatting: Because of table formatting issues, I couldn't put all columns here. You can download the excel file from the bottom of this post.</p>
<h1>GUIDANCE BASED ON TEST RESULTS AND RECOMMENDATIONS:</h1>
<p>&nbsp;</p>
<div>
<table style="border-collapse: collapse;" border="0"><colgroup><col style="width: 106px;" /><col style="width: 583px;" /><col style="width: 180px;" /><col style="width: 341px;" /></colgroup>
<tbody valign="top">
<tr style="height: 20px;">
<td style="padding-left: 7px; padding-right: 7px; border: solid 0.5pt;">
<p><strong>Servers</strong></p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: solid 0.5pt; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;">
<p><strong>Guidance</strong></p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: solid 0.5pt; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;">
<p><strong>Reference</strong></p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: solid 0.5pt; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;">
<p><strong>Remarks</strong></p>
</td>
</tr>
<tr style="height: 100px;">
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: solid 0.5pt; border-bottom: solid 0.5pt; border-right: solid 0.5pt;">
<p>Web Servers</p>
<p>and DB Servers</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;">
<ul>
<li>Server Specs: With 4 cores, 12 GB RAM web servers (virtual) and 1 16 core DB, 32 GB RAM</li>
<li>RPS/server - you can expect more than 40 RPS per server for green zone and more than 70 RPS for red zone</li>
<li>1 DB server was able to scale upto 10 web servers</li>
</ul>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;">
<p><a href="https://technet.microsoft.com/en-in/library/ff758657.aspx">Estimate performance and capacity requirements for enterprise intranet collaboration environments (SharePoint Server 2013)</a></p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;">
<p>There are many more details in the article. Also it provides comparison of performance of 2010 vs. 2013</p>
<p>&nbsp;</p>
<p>Interestingly, there wasn't any application server in this farm, so there isn't any guidance on that</p>
</td>
</tr>
<tr style="height: 100px;">
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: solid 0.5pt; border-bottom: solid 0.5pt; border-right: solid 0.5pt;">
<p>All</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;">
<ul>
<li>Provides results for two types of sites: sites using new features: cross-site publishing along with Content Search web part and managed navigation, sites using classical feature: author-in publishing, content query web part and structured navigation.</li>
<li>Cross site publishing: Server specs - 16 cores, 24 GB RAM (physical), topology - 3 WFE+Query,1 Crawler, 1 App, 1 DB,</li>
<li>Cross site publishing results &ndash; 78 page views/sec (with 3 WFEs)</li>
<li>Author-in-place publishing results &ndash; 57 page views/sec (1 WFE)</li>
</ul>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;">
<p><a href="https://technet.microsoft.com/en-us/library/d819b0d0-aa83-4e40-82d8-7a32195cc669(v=office.15).aspx">Estimate capacity and performance for Web Content Management (SharePoint Server 2013)</a></p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;">
<p>There are very important findings and useful guidance in the article that you must go through</p>
</td>
</tr>
<tr style="height: 100px;">
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: solid 0.5pt; border-bottom: solid 0.5pt; border-right: solid 0.5pt;">
<p>Application</p>
<p>Servers (MMS)</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;">
<ul>
<li>As it's difficult to translate end user requests to MMS requests, the results provided here are with respect to MMS server response time and VSTS tests completed. Roughly, you can assume number of tests completed same as requests hitting MMS for sizing your MMS servers.</li>
</ul>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;">
<p><a href="https://technet.microsoft.com/en-in/library/gg681889.aspx">Estimate capacity and performance for Managed Metadata Service (SharePoint Server 2013)</a></p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;">&nbsp;</td>
</tr>
<tr style="height: 100px;">
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: solid 0.5pt; border-bottom: solid 0.5pt; border-right: solid 0.5pt;">
<p>Web Server</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;">
<ul>
<li>1 server (VM, 4 cores, 12 GB RAM) was able to provide acceptable streaming experience up to 400 concurrent users.</li>
<li>Dataset was about 350 videos, size range 1 MB &ndash; 1 GB (total 14 GB)</li>
<li>Video stored in SharePoint content db with BLOB cache enabled</li>
</ul>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;">
<p><a href="https://technet.microsoft.com/en-us/library/dn169054.aspx">Estimate capacity and performance for video content management in SharePoint Server 2013</a></p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;">&nbsp;</td>
</tr>
<tr style="height: 100px;">
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: solid 0.5pt; border-bottom: solid 0.5pt; border-right: solid 0.5pt;">
<p>Query Servers</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;">
<ul>
<li>Doesn't provide detailed tests, but provides information on how compliance, and eDiscovery can effect capacity and performance in SharePoint Server 2013</li>
<li>eDiscovery queries can increase query latencies that users observe by as much as 100 percent. If you run close to capacity for your user search queries, you might consider running eDiscovery queries and exports during non-peak hours to have a smaller effect on user search queries</li>
</ul>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;">
<p><a href="https://technet.microsoft.com/en-us/library/dn169053.aspx">Estimate capacity and performance for compliance and eDiscovery for SharePoint Server 2013</a></p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;">&nbsp;</td>
</tr>
</tbody>
</table>
</div>
<p>&nbsp;</p>
<h2>GENERAL RESOURCES:</h2>
<p>&nbsp;</p>
<div>
<table style="border-collapse: collapse;" border="0"><colgroup><col style="width: 105px;" /><col style="width: 437px;" /><col style="width: 125px;" /><col style="width: 265px;" /></colgroup>
<tbody valign="top">
<tr style="height: 20px;">
<td style="padding-left: 7px; padding-right: 7px; border: solid 0.5pt;">
<p><strong>Servers</strong></p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: solid 0.5pt; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;">
<p><strong>Guidance</strong></p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: solid 0.5pt; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;">
<p><strong>Reference</strong></p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: solid 0.5pt; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;">
<p><strong>Remarks</strong></p>
</td>
</tr>
<tr style="height: 100px;">
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: solid 0.5pt; border-bottom: solid 0.5pt; border-right: solid 0.5pt;">
<p>All Servers</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;">
<p>Minimum hardware specification for each type of server</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;">
<p><a href="https://technet.microsoft.com/en-us/library/cc262485.aspx">Hardware and software requirements for SharePoint 2013</a></p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;">
<p>Provides minimum guidance, but this minimum should NOT be considered as recommended. For which, you need to refer to other resources</p>
</td>
</tr>
<tr style="height: 120px;">
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: solid 0.5pt; border-bottom: solid 0.5pt; border-right: solid 0.5pt;">
<p>Web Servers</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;">
<p>A Web server typically supports 10,000-20,000 users. <br />For 90,000 users this architecture starts with six Web servers to serve user requests and leaves room for additional Web servers, if needed. <br /><br />Two-three Web servers that are dedicated for search crawling is a good starting point, depending on rates of change and freshness requirements.</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;">
<p><a href="https://www.microsoft.com/en-us/download/details.aspx?id=35569">Enterprise-scale farms for SharePoint Server 2013</a></p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;">
<p>Use this guidance just a thumb rule, as no supporting test data has been provided here</p>
</td>
</tr>
<tr style="height: 220px;">
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: solid 0.5pt; border-bottom: solid 0.5pt; border-right: solid 0.5pt;">
<p>All Servers</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;">
<p>It doesn't provide any specific guidance on number or specifications of server. It provides the following two things:<br />1. Recommended Topologies based on number of users: &lt; 100, &lt;1000, &lt;10,000, &gt; 10,000<br />2. Reference Topology for Microsoft Office Division farm that had following workload and dataset:<br /><br />15,000 users<br />2,500 unique users per hour<br />1.7 million requests per day<br />1.3 Terabytes total data</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;">
<p><a href="https://www.microsoft.com/en-us/download/details.aspx?id=37000">Streamlined topologies for SharePoint Server 2013</a></p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;">
<p>Most of this guidance is from SharePoint Conference session "SPC192 - SharePoint 2013 Performance and Capacity Management"</p>
</td>
</tr>
<tr style="height: 100px;">
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: solid 0.5pt; border-bottom: solid 0.5pt; border-right: solid 0.5pt;">
<p>All Servers</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;">
<p>Generic guidance on how to scale farms as covered in the Streamlined topologies visio</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;">
<p><a href="https://www.mssharepointconference.com/Pages/default.aspx">SPC192 - SharePoint 2013 Performance and Capacity Management</a></p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;">
<p>If you don't have access to the session recording, refer to streamlined topologies visio, as most of information covered in this session is available there</p>
</td>
</tr>
<tr style="height: 400px;">
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: solid 0.5pt; border-bottom: solid 0.5pt; border-right: solid 0.5pt;">
<p>All Servers</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;">
<p>As in Streamlined topologies, this diagram also provides generic guidance, and also provide some statements about specific numbers as provided below:<br /><br />1. The number of users will affect the requirement for web servers. Factor 10,000 users per web server as a starting point. Adjust the number based on how heavily the servers are utilized. Heavy use of client services will increase the load on web servers.<br />2. Start with two application servers dedicated to the query processing component and index partitions and place all other service application components on a separate application server. Based on utilization, consider either adding all-purpose application servers that are configured similarly, or adding application servers to dedicate resources to specific service applications.<br />3. The query role can be combined with the Web server role on a server only if there are enough resources. Running both of these roles on a single virtual machine requires a 6-8-core VM and a physical host that runs Windows Server 2012. A 4-core VM does not provide enough resources for both the query processing component and the Web server role. <br />4. A detailed table for number of servers for each search component, based on number of items. this is covered in more detail in Enterprise Search diagram.</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;">
<p><a href="https://www.microsoft.com/en-us/download/details.aspx?id=30377">Traditional topologies for SharePoint 2013</a></p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;">
<p>Along with sizing, this diagram is a good reference for topology design principles explained with example topologies.</p>
</td>
</tr>
<tr style="height: 120px;">
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: solid 0.5pt; border-bottom: solid 0.5pt; border-right: solid 0.5pt;">
<p>Distributed</p>
<p>Cache Servers</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;">
<p>The diagram does not provide any information on number of Cache servers, but provides the following information about the memory of cache server e.g. <br /><br />The memory allocation for the cache size must be between 8GB and 16GB, and the memory allocation of the cache size must be less than or equal to 40% of the total memory on the server.</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;">
<p><a href="https://www.microsoft.com/en-us/download/details.aspx?id=35557">Plan and use the Distributed Cache service in SharePoint Server 2013</a></p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;">&nbsp;</td>
</tr>
<tr style="height: 120px;">
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: solid 0.5pt; border-bottom: solid 0.5pt; border-right: solid 0.5pt;">
<p>Distributed</p>
<p>Cache Servers</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;">
<p>This provides little more details about minimum number of cache host servers based on number of total users. Also there's recommendation, upto 10,000 users, you can go with co-located DC servers, beyond that you should go with dedicated server (minimum number 1)</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;">
<p><a href="https://technet.microsoft.com/en-in/library/jj219572.aspx">Plan for feeds and the Distributed Cache service in SharePoint Server 2013</a></p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;">&nbsp;</td>
</tr>
<tr style="height: 80px;">
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: solid 0.5pt; border-bottom: solid 0.5pt; border-right: solid 0.5pt;">
<p>Search Servers</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;">
<p>The Search has very detailed description on sizing, which covers lot of things for different number of items (10m, 40m, 100m) such as: RAM, DISK, CPU, Number of Servers.</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;">
<p><a href="https://www.microsoft.com/en-us/download/details.aspx?id=30383">Enterprise search architectures for SharePoint Server 2013</a></p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;">
<p>This diagram covers Search from Intranet perspective. The internet search is different and covered in the other diagram</p>
</td>
</tr>
<tr style="height: 180px;">
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: solid 0.5pt; border-bottom: solid 0.5pt; border-right: solid 0.5pt;">
<p>All</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;">
<p>It does not provide per role or per component guidance, but provides one topology with predefined performance:<br /><br />A medium Internet sites (FIS) topology is optimized for a corpus size of 3,400,000 items, processing approximately 100-200 documents per second, depending on language, and a usage pattern of 85 page views per second, which corresponds to 100 queries per second.</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;">
<p><a href="https://www.microsoft.com/en-us/download/details.aspx?id=30464">Internet sites search architectures for SharePoint Server 2013</a></p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;">
<p>In the associated document (https://technet.microsoft.com/en-us/library/jj219628.aspx) its recommended to use physical servers:<br /><br />We recommend that you deploy search topologies for Internet sites on physical hardware.</p>
</td>
</tr>
<tr style="height: 100px;">
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: solid 0.5pt; border-bottom: solid 0.5pt; border-right: solid 0.5pt;">
<p>Search Servers</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;">
<p>The article covers the details provided in two search visio diagrams</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;">
<p><a href="https://technet.microsoft.com/en-us/library/jj219628.aspx">Scale search for performance and availability in SharePoint Server 2013</a></p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;">&nbsp;</td>
</tr>
<tr style="height: 120px;">
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: solid 0.5pt; border-bottom: solid 0.5pt; border-right: solid 0.5pt;">&nbsp;</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;">
<p>Provides very detailed information on each search components, which isn't available in the two visios. It also includes important information on IOPS requirements for search</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;">
<p><a href="https://social.technet.microsoft.com/wiki/contents/articles/16002.capacity-planning-sizing-and-high-availability-for-search-in-sharepoint-2013-spc172-barry-waldbaum-and-olaf-birkeland.aspx">Capacity Planning, Sizing and High Availability for Search in SharePoint 2013</a></p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;">
<p>This information is taken from SharePoint Conference 2012 session - SPC172 (Barry Waldbaum and Olaf Birkeland)</p>
</td>
</tr>
<tr style="height: 120px;">
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: solid 0.5pt; border-bottom: solid 0.5pt; border-right: solid 0.5pt;">
<p>Search Servers</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;">
<p>Most detailed information on every aspect of sizing for enterprise scenarios</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;">
<p><a href="https://www.mssharepointconference.com/Pages/default.aspx">SPC 172 - Capacity Planning, Sizing and High Availability for Search in SharePoint 2013</a></p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;">
<p>If you don't have access to the session recording, refer to the TechNet Wiki and enterprise search vision, as most of information covered in this session is available there</p>
</td>
</tr>
<tr style="height: 100px;">
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: solid 0.5pt; border-bottom: solid 0.5pt; border-right: solid 0.5pt;">
<p>Workflow</p>
<p>Manager Server</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;">
<p>Minimum three servers are required to provide high availability for Workflow Manager</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;">
<p><a href="https://technet.microsoft.com/en-us/library/jj193534">Configuring a Highly Available Workflow in Workflow Manager 1.0</a></p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;">
<p>It's because it depends on Windows Server Service Bus, which requires three servers for HA</p>
</td>
</tr>
<tr style="height: 160px;">
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: solid 0.5pt; border-bottom: solid 0.5pt; border-right: solid 0.5pt;">
<p>All</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;">
<p>For SharePoint 2013 virtual environments, dynamic memory is NOT supported:<br /><br />We do not support this option for virtual machines that run in a SharePoint 2013 environment. The reason is that this implementation of dynamic memory does not work with every SharePoint feature. For example, Distributed Cache and Search do not resize their caches when the allocated memory for a virtual machine is dynamically changed. This can cause performance degradation, especially when assigned memory is reduced.</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;">
<p><a href="https://technet.microsoft.com/en-us/library/ff621103.aspx">Use best practice configurations for the SharePoint 2013 virtual machines and Hyper-V environment</a></p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;">&nbsp;</td>
</tr>
<tr style="height: 120px;">
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: solid 0.5pt; border-bottom: solid 0.5pt; border-right: solid 0.5pt;">
<p>Office Web</p>
<p>Apps Server</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;">
<p>Based on our performance tests, an Office Web Apps Server, togetherwith two Intel Xeon processors (8 cores), 8 GB of RAM, and a 60 GB hard disk, should support up to 10,000 users where most of the usage is viewing. A server that has a 16 core CPU and 16 GB of Ram should support up to 20,000 users. These results will vary, depending on usage patterns and other factors such as network hardware.</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;">
<p><a href="https://technet.microsoft.com/en-us/library/jj219435.aspx">Plan Office Web Apps Server</a></p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;">&nbsp;</td>
</tr>
</tbody>
</table>
</div>
<p>&nbsp;</p>
<p><span style="text-decoration: underline;"><strong>Excel file for view and download: </strong></span></p>
<p><iframe src="https://skydrive.live.com/embed?cid=388E940E7959F9EF&amp;resid=388E940E7959F9EF%214237&amp;authkey=AEchx3P0yGfLrqM&amp;em=2&amp;wdAllowInteractivity=False&amp;wdHideGridlines=True&amp;wdHideHeaders=True&amp;wdDownloadButton=True" frameborder="0" scrolling="no" width="600" height="400"></iframe></p>]]></content:encoded>
    </item>
    <item>
      <title>SharePoint 2013, 2010, 2007 &amp; Office 365 – Features, Editions and Plans Comparison</title>
      <link>https://docs.microsoft.com/archive/blogs/sanjaynarang/sharepoint-2013-2010-2007-office-365-features-editions-and-plans-comparison</link>
      <pubDate>Sun, 20 Jan 2013 02:20:00 GMT</pubDate>
      <dc:creator><![CDATA[Sanjay.Narang]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/sanjaynarang/2013/01/20/sharepoint-2013-2010-2007-office-365-features-editions-and-plans-comparison/</guid>
      <description><![CDATA[Ever since SharePoint 2013 is released, there's increased demand from partners and customers on...]]></description>
      <content:encoded><![CDATA[<p>Ever since SharePoint 2013 is released, there's increased demand from partners and customers on feature comparison matrix between different versions of SharePoint: 2007, 2010 and 2013. They need it so that they can make informed decision about upgrading their existing SharePoint to the latest version.</p>
<p>Unfortunately, there isn't any official tabular matrix that provides this kind of comparison. However, I've compiled a list of links that provide you new and changed features. You can use this list and create your own matrix. Feel free to comment if you know additional links in this regard.</p>
<p>&nbsp;</p>
<h3>Changes from 2010 to 2013</h3>
<ul>
<li><a href="https://office.microsoft.com/en-us/support/whats-new-in-microsoft-sharepoint-server-2013-HA102785546.aspx">What&rsquo;s new in Microsoft SharePoint Server 2013</a></li>
<li><a href="https://technet.microsoft.com/en-us/sharepoint/fp142374.aspx">Capabilities and features in SharePoint 2013</a> &ndash; This article has links to &ldquo;What&rsquo;s New&rdquo; for various feature areas &ndash; that would provide you changes</li>
<li><a href="https://msdn.microsoft.com/en-us/library/jj163091(v=office.15).aspx">What&rsquo;s new for developers in SharePoint 2013</a></li>
<li><a href="https://technet.microsoft.com/en-us/library/ff607742.aspx">Changes from SharePoint 2010 to SharePoint 2013</a></li>
<li><a href="https://office.microsoft.com/en-us/office365-sharepoint-online-enterprise-help/discontinued-features-and-modified-functionality-in-microsoft-sharepoint-2013-HA102892827.aspx">Discontinued features and modified functionality in Microsoft SharePoint 2013</a></li>
</ul>
<p>Matrix created by third parties or other bloggers&nbsp;(you might want to verify for comprehensiveness and correctness)</p>
<ul>
<li><a href="https://www.fpweb.net/sharepoint-hosting/2013/compare-sharepoint-2010-2013/">Compare SharePoint 2010 vs. SharePoint 2013</a></li>
<li><a href="https://www.rharbridge.com/?page_id=966">SharePoint 2010 vs SharePoint 2013</a></li>
</ul>
<p>&nbsp;</p>
<h3>Changes from 2007 to 2010</h3>
<ul>
<li><a href="https://office.microsoft.com/en-us/sharepoint-server-help/what-s-new-in-microsoft-sharepoint-server-2010-HA010370058.aspx">What's New in Microsoft SharePoint Server 2010</a></li>
<li><a href="https://technet.microsoft.com/en-us/sharepoint/ee518662.aspx">What's new in SharePoint Server 2010 (IT Pro oriented)</a></li>
<li><a href="https://msdn.microsoft.com/en-us/library/ee557323(v=office.14).aspx">What's New in SharePoint Server 2010 (Dev oriented)</a></li>
</ul>
<p>Matrix created by third parties or other bloggers&nbsp;(you might want to verify for comprehensiveness and correctness)</p>
<ul>
<li><a href="https://www.rharbridge.com/?page_id=103">SharePoint 2007 vs SharePoint 2010</a></li>
</ul>
<h3>&nbsp;</h3>
<h3>Comparison between On-premise Editions and Online plans for SharePoint 2013</h3>
<p>Now, when you are on path to 2013, you would also need comparison between various Editions of SharePoint (Foundation, Standard, Enterprise) and various plans for Office 365 and SharePoint Online. Fortunately, TechNet has provided a very useful and detailed tabular matrix for this comparison.</p>
<p>There&rsquo;s just one URL for all such comparisons: <a href="https://technet.microsoft.com/en-us/library/jj819267.aspx">SharePoint Online</a>. Each feature in these tables is a hyperlink to another page, which provides your description of that feature. It contains the following sections:</p>
<ul>
<li><a href="https://technet.microsoft.com/en-us/library/jj819267.aspx#bkmk_tableo365">SharePoint features across Office 365 plans</a></li>
<li><a href="https://technet.microsoft.com/en-us/library/jj819267.aspx#bkmk_tablespo">SharePoint features across SharePoint Online standalone plans</a></li>
<li><a href="https://technet.microsoft.com/en-us/library/jj819267.aspx#bkmk_FeaturesOnPremise">SharePoint feature availability across on-premise solutions</a></li>
</ul>
<p>The above page is huge list with a long scroll bar. If you are interested for specific area, there are individual pages also. I&rsquo;ve provided a tabular format for your use</p>
<table style="width: 396px;" border="1" cellspacing="0" cellpadding="2">
<tbody>
<tr>
<td valign="top" width="104">Feature Area</td>
<td valign="top" width="92">Office 365 Plans</td>
<td valign="top" width="103">SPO Standalone Plans</td>
<td valign="top" width="95">On-Premise Editions</td>
</tr>
<tr>
<td valign="top" width="105"><a href="https://technet.microsoft.com/en-us/library/jj819261.aspx">Developer</a></td>
<td valign="top" width="92"><a href="https://technet.microsoft.com/en-us/library/jj819261.aspx#bkmk_DevfeaturesO365">Link</a></td>
<td valign="top" width="103"><a href="https://technet.microsoft.com/en-us/library/jj819261.aspx#bkmk_DeveloperStandalone">Link</a></td>
<td valign="top" width="95"><a href="https://technet.microsoft.com/en-us/library/jj819261.aspx#bkmk_DeveloperFeatureOnPrem">Link</a></td>
</tr>
<tr>
<td valign="top" width="106"><a href="https://technet.microsoft.com/en-us/library/jj819290.aspx">IT Professional</a></td>
<td valign="top" width="91"><a href="https://technet.microsoft.com/en-us/library/jj819290.aspx#bkmk_ITProO365plans">Link</a></td>
<td valign="top" width="103"><a href="https://technet.microsoft.com/en-us/library/jj819290.aspx#bkmk_ITProStandalone">Link</a></td>
<td valign="top" width="95"><a href="https://technet.microsoft.com/en-us/library/jj819290.aspx#bkmk_ITProfeaturesOnPrem">Link</a></td>
</tr>
<tr>
<td valign="top" width="106"><a href="https://technet.microsoft.com/en-us/library/jj819301.aspx">Content</a></td>
<td valign="top" width="91"><a href="https://technet.microsoft.com/en-us/library/jj819301.aspx#bkmk_ContentfeaturesO365">Link</a></td>
<td valign="top" width="103"><a href="https://technet.microsoft.com/en-us/library/jj819301.aspx#bkmk_ContentfeaturesStandalone">Link</a></td>
<td valign="top" width="95"><a href="https://technet.microsoft.com/en-us/library/jj819301.aspx#bkmk_ContentfeatureOnPrem">Link</a></td>
</tr>
<tr>
<td valign="top" width="106"><a href="https://technet.microsoft.com/en-us/library/jj819252.aspx">Insights</a></td>
<td valign="top" width="91"><a href="https://technet.microsoft.com/en-us/library/jj819252.aspx#bkmk_InsightsfeaturesO365">Link</a></td>
<td valign="top" width="103"><a href="https://technet.microsoft.com/en-us/library/jj819252.aspx#bkmk_InsightsfeaturesStandalone">Link</a></td>
<td valign="top" width="95"><a href="https://technet.microsoft.com/en-us/library/jj819252.aspx#bkmk_InsightsFeaturesOnPrem">Link</a></td>
</tr>
<tr>
<td valign="top" width="106"><a href="https://technet.microsoft.com/en-us/library/jj819291.aspx">Search</a></td>
<td valign="top" width="91"><a href="https://technet.microsoft.com/en-us/library/jj819291.aspx#bkmk_SearchfeaturesO365">Link</a></td>
<td valign="top" width="103"><a href="https://technet.microsoft.com/en-us/library/jj819291.aspx#bkmk_SearchfeatureStandalone">Link</a></td>
<td valign="top" width="95"><a href="https://technet.microsoft.com/en-us/library/jj819291.aspx#bkmk_SearchfeaturesOnPrem">Link</a></td>
</tr>
<tr>
<td valign="top" width="106"><a href="https://technet.microsoft.com/en-us/library/jj819293.aspx">Sites</a></td>
<td valign="top" width="91"><a href="https://technet.microsoft.com/en-us/library/jj819293.aspx#bkmk_SitesfeaturesO365">Link</a></td>
<td valign="top" width="103"><a href="https://technet.microsoft.com/en-us/library/jj819293.aspx#bkmk_SitesfeaturesStandalone">Link</a></td>
<td valign="top" width="95"><a href="https://technet.microsoft.com/en-us/library/jj819293.aspx#bkmk_SitesfeaturesOnPrem">Link</a></td>
</tr>
<tr>
<td valign="top" width="106"><a href="https://technet.microsoft.com/en-us/library/jj819256.aspx">Social</a></td>
<td valign="top" width="91"><a href="https://technet.microsoft.com/en-us/library/jj819256.aspx#bkmk_SocialfeaturesO365">Link</a></td>
<td valign="top" width="103"><a href="https://technet.microsoft.com/en-us/library/jj819256.aspx#bkmk_SocialfeaturesStandalone">Link</a></td>
<td valign="top" width="95"><a href="https://technet.microsoft.com/en-us/library/jj819256.aspx#bkmk_SocialfeaturesOnPrem">Link</a></td>
</tr>
<tr>
<td valign="top" width="106"><a href="https://technet.microsoft.com/en-us/library/jj819308.aspx">Add-Ons</a></td>
<td valign="top" width="91"><a href="https://technet.microsoft.com/en-us/library/jj819308.aspx#bkmk_AddOnFeaturesO365">Link</a></td>
<td valign="top" width="103"><a href="https://technet.microsoft.com/en-us/library/jj819308.aspx#bkmk_AddONFeaturesStandalone">Link</a></td>
<td valign="top" width="95"><a href="https://technet.microsoft.com/en-us/library/jj819308.aspx#bkmk_AddOnFeatureOnPrem">Link</a></td>
</tr>
</tbody>
</table>
<p>&nbsp;</p>
<p>If you want it be available in offline excel copy, Andrew Connell has done the good work to compile above information in a spreadsheet with filterable columns. you can find that here: <a href="https://www.andrewconnell.com/blog/archive/2013/01/11/sharepoint-2013-amp-office-365-feature-matrixndashan-easier-way-to.aspx">SharePoint 2013 &amp; Office 365 Feature Matrix&ndash;An Easier Way to View It</a>. At the same time, you need to be aware that excel might not be updated always as Office 365 would be adding new features every three months.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</p>
<p>&nbsp;</p>
<p>HTH</p>]]></content:encoded>
    </item>
    <item>
      <title>Performance Testing Analysis Template for SharePoint Server 2010</title>
      <link>https://docs.microsoft.com/archive/blogs/sanjaynarang/performance-testing-analysis-template-for-sharepoint-server-2010</link>
      <pubDate>Tue, 05 Jun 2012 10:34:00 GMT</pubDate>
      <dc:creator><![CDATA[Sanjay.Narang]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/sanjaynarang/2012/06/05/performance-testing-analysis-template-for-sharepoint-server-2010/</guid>
      <description><![CDATA[Continuing my love for performance testing SharePoint and building on my previous posts on...]]></description>
      <content:encoded><![CDATA[<p>Continuing my love for performance testing SharePoint and building on my previous posts on performance testing of <a title="SharePoint Server 2010" href="https://blogs.msdn.com/b/sanjaynarang/archive/2010/04/20/sharepoint-2010-performance-stress-load-testing.aspx" target="_blank">SharePoint 2010</a> and <a title="MOSS 2007" href="https://blogs.msdn.com/b/sanjaynarang/archive/2009/04/18/sharepoint-performance-stress-load-testing.aspx" target="_blank">SharePoint 2007</a>, I created a template for reporting and analyzing performance test results for SharePoint 2010.</p>
<p>It is an excel workbook. Sharing it here, as I feel, it could be useful to many others who need to do performance or load testing on SharePoint 2010.</p>
<p>This workbook provides templates for performance testing reporting and analysis for SharePoint Server 2010.</p>
<p>Many times, when IT Professionals do performance testing for some application, they are not sure what many things such as:</p>
<ul>
<li>What performance counters to capture from servers</li>
<li>What key configurations/counters to capture from VSTS</li>
<li>How to record or report test results</li>
<li>How to create create test mix&nbsp;</li>
<li>When they should consider a value as problem and what should they do to troubleshoot the problem</li>
</ul>
<p>This workbook helps IT professionals in these tasks by providing templates as well as examples. Two worksheets (Test Results, Global Settings) had been created for Publishing sites, but can easily be extended to cover other workloads</p>
<p>Some of the material available here is available in Technet or in other resources also, but this document provides single point reference for everything required for reporting and analysing performance tests for SharePoint Server 2010. <strong>Also, this&nbsp;workbook should ONLY be used as a reference document (or as a template) and MUST be customized as per your requirements. </strong>Would love to hear to improve it further.</p>
<p>The workbook contains the following worksheets:</p>
<ol>
<li>Performance Targets - For validating success of failure of application in the performance testing, you need to set some performance targets. This worksheet provies typical performance targets.</li>
<li>Test Results - template for how test results can be captured and compared in different runs. The worksheet also have most common counters that are required for analysing performance results. You can add/remove counters based on your requirement. The is written based on Visual Studio 2010. This worksheet can cover only 1 type of load test. For additional load tests, you need to create copies of this worksheet.</li>
<li>Performance Counters - This worksheet provides list important performance counter that you should monitor during performance Testing. It also provides when that counter value can be taken as problem and what should be resolution steps.</li>
<li>Test Mix Example 1 and 2 - The worksheets provide examples of how to define a test mix for a performance test</li>
<li>Server Configs - It is very important that server configuration is recorded completely for any performance test. This worksheet provides an example of how it can be recorded.</li>
<li>Global Settings - There are many settings (infrastructure or application or farm level) that remain constant for all performance test runs. However, if these are changed, these can change the performance test results greatly. Hence it very important to record these settings. This worksheet provides examples of such global settings</li>
</ol>
<p></p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Components.PostAttachments/00/10/31/53/69/Performance%20Testing%20Analysis%20template%20for%20SharePoint%202010.xlsx" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-components-postattachments/00-10-31-53-69/Performance-Testing-Analysis-template-for-SharePoint-2010.xlsx">Performance Testing Analysis template for SharePoint 2010.xlsx</a></p>]]></content:encoded>
    </item>
    <item>
      <title>Feature Upgrade, Adding fields to Content Types, and SharePoint Application Lifecycle Management</title>
      <link>https://docs.microsoft.com/archive/blogs/sanjaynarang/feature-upgrade-adding-fields-to-content-types-and-sharepoint-application-lifecycle-management</link>
      <pubDate>Sun, 05 Feb 2012 18:03:00 GMT</pubDate>
      <dc:creator><![CDATA[Sanjay.Narang]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/sanjaynarang/2012/02/05/feature-upgrade-adding-fields-to-content-types-and-sharepoint-application-lifecycle-management/</guid>
      <description><![CDATA[UPDATE: The bug covered in this post has been fixed in June 2012 CU. So if you are on June 2012 or...]]></description>
      <content:encoded><![CDATA[<p>UPDATE: The bug covered in this post has been fixed in June 2012 CU. So if you are on June 2012 or more CU, you need not follow the workaround mentioned in this post.</p>
<p>Recently, I got into issues with using feature upgrade mechanism for adding a new field to a content type. We have been using <a href="https://msdn.microsoft.com/en-us/library/ff595314.aspx" target="_blank">AddContentTypeField Element</a> inside <a href="https://msdn.microsoft.com/en-us/library/ff595308.aspx" target="_blank">UpgradeActions Element</a> successfully for some releases and it was adding new content type fields to existing sites properly. However, so far, we did not get into scenario where the same feature was also required to be activated on new sites. When we got into the scenario, we realized this approach was not working at all. The approach we have been using was as per SharePoint Application Lifecycle Management (ALM) guidelines that feature upgrade should take care of both the scenarios:</p>
<ol>
<li>Existing Sites: Whenever the existing features are upgraded, the new functionality should get added to the site</li>
<li>New Sites: Whenever the features are activated, the site should get both: the functionality in the previous versions of features as well as that in the current version of the features.&nbsp;</li>
</ol>
<h5><span style="text-decoration: underline;">The approach that we used was as given below:</span></h5>
<ul>
<li>Define new field in new elements2.xml</li>
<li>For New Sites we do this:</li>
<ul>
<li>In feature manifest. refer to elements2.xml&nbsp; (in addition to exiting elements.xml)</li>
<li>In existing elements.xml (which has content type definition), add additional field to exiting content type definition using new &lt;FieldRef&gt; element for new column</li>
</ul>
<li>For existing sites, for Feature Upgrade. We do the following in&nbsp; &lt;UpgradeActions&gt;,</li>
<ul>
<li>add field definition with new elements2.xml using &lt;ApplyElementManifests&gt; and then</li>
<li>add that new field to existing content type using&nbsp; &lt;AddContentTypeField&gt; element and with PushDown=&rdquo;TRUE&rdquo;</li>
</ul>
</ul>
<p>The above approach is in line with the approach suggested in the MSDN article: <a href="https://msdn.microsoft.com/en-us/library/gg604045.aspx" target="_blank">Application Lifecycle Management in SharePoint 2010</a>. Under the section &ldquo;Upgrading SharePoint 2010 Features: A High-Level Walkthrough&rdquo;, the article gives an example of adding a new field to existing content type and mentions the following in step 2:</p>
<p>&ldquo;<em>Update the existing definition of the content type in the existing feature element file. This update will apply to all sites where the feature is newly deployed and activated.</em>&rdquo;</p>
<h5><span style="text-decoration: underline;">However, the approach never worked, and we had various issues with the approach:</span></h5>
<ul>
<li>We tried SPFeature.Upgrade(false). We got exception - <span style="font-family: Courier New; font-size: x-small;">The object has been updated by another user since it was last fetched</span></li>
<li>When we tried SPFeature.Upgrade(true) , the upgrade went through (at least no visible exception). After feature upgrade:&nbsp;&nbsp;
<ul>
<li>On existing site collection, All new columns for the exiting content types are visible in site collection content type gallery. But not on any list/library either in root or sub sites. New columns are not getting reflected for any inherited content type which is associated with list or library.</li>
<li>For New site collections, latest content type definition is available in content type gallery as well as on any list/lib at root or subsite levels.</li>
</ul>
</li>
</ul>
<ul>
<li>We also tried other approach of removing the new &lt;FieldRef&gt; from the existing content type type definition in existing element.xml. In this case, feature upgrade on existing site collection worked fine. But this time, on the new site collections, the new columns are not available. Here feature upgrade can&rsquo;t be used as the feature version of the new site collection is already the latest version.</li>
</ul>
<p>After a lot of troubleshooting and trying various options, we finally could find an approach that works.</p>
<h5><span style="text-decoration: underline;">The working approach is:</span></h5>
<ul>
<li>Define new field in new elements2.xml</li>
<li>For New Sites we do this:</li>
<ul>
<li>In feature manifest. refer to elements2.xml&nbsp; (in addition to exiting elements.xml)</li>
<li>DO NOT do this: <s>In existing elements.xml (which has content type definition), add additional field to exiting content type definition using new &lt;FieldRef&gt; element for new column</s></li>
<li>Add code in feature activation to add columns, which have NOT been added in elements.xml. USE CSV or excel for columns and content type mapping</li>
</ul>
<li>For existing sites, for Feature Upgrade. We do the following in&nbsp; &lt;UpgradeActions&gt;,</li>
<ul>
<li>add field definition with new elements2.xml using &lt;ApplyElementManifests&gt; and then</li>
<li>add code in feature upgrading through custom upgrade action to add new columns. This code would be same as what you used for activation. (<em>You can also add that new field to existing content type using &lt;AddContentTypeField&gt; element and with PushDown=&rdquo;TRUE&rdquo;. However, we resorted to code approach as anyway code was being written for feature activation.</em>)</li>
</ul>
</ul>
<h5><span style="text-decoration: underline;">What we figured out for adding new columns to existing content type is this: </span></h5>
<p>Whether we use code (custom upgrade action) OR declarative (using&nbsp; &lt;AddContentTypeField&gt;) &ndash; it&rsquo;ll never work (sometime throws error, or sometime doesn&rsquo;t update content types without any error) if we change the existing content type definition xml file.</p>
<p>Later we also realized that Official documentation also states the same thing, however, it was never documented in connection with feature upgrade. Hence, there is confusion across community on this area. Here are the references that state that we should never update content type definition file:</p>
<ul>
<li><strong>Updating Content Types </strong><a href="https://msdn.microsoft.com/en-us/library/aa543504.aspx">https://msdn.microsoft.com/en-us/library/aa543504.aspx</a></li>
</ul>
<blockquote>
<p><em>Do not, <strong>under any circumstances, update the content type definition file for a content type after you install and activate that content type</strong>. SharePoint Foundation does not track all the changes that are made to the content type definition file. Therefore, you have no reliable method for pushing down all the changes made to site content types to the child content types.</em></p>
</blockquote>
<ul>
<li><strong>Updating Child Content Types</strong> <a href="https://msdn.microsoft.com/en-us/library/ms442695.aspx">https://msdn.microsoft.com/en-us/library/ms442695.aspx</a></li>
</ul>
<blockquote>
<p><strong><em>You cannot add columns to an existing site content type declaratively, in other words, by updating the Feature XML files</em></strong></p>
</blockquote>
<p>The similar issues are also documented by Charles Chen in his blog <a href="https://charliedigital.com/2011/05/03/sharepoint-content-type-lifecycle-management/" target="_blank">SharePoint Content Type Lifecycle Management</a>, however, the approach suggested there is to update the original content type definition manifest file, and add a CustomUpgradeAction as well in addition to the AddContentTypeField. I&rsquo;m not sure what&rsquo;s official recommendation here, however, personally I am not in favor of this approach for two reasons: first, it updates original content type definition, which is not recommended in official documentation. Second, it is adding two instructions for upgrade &ndash; which can cause issue in some later updates. At the same time, the blog has been written well and there&rsquo;s a lot of sample code in that which applies to the approach suggested here also.&nbsp;&nbsp;</p>
<p>Update (25-Mar-2012)</p>
<p><span style="text-decoration: underline;">Sample Code</span></p>
<p>As there are plenty other resources available for the samples, I am not providing sample code for this particular approach. <a title="Vesa" href="https://blogs.msdn.com/b/vesku/">Vesa</a> has provided a detailed <a title="post" href="https://blogs.msdn.com/b/vesku/archive/2011/07/29/webtemplate-training-materials-lab-4-upgrading-existing-sites-with-feature-versioning.aspx">post</a> on this. Check out section "Task 2 &ndash; Updating features and content types". He has also provided zip file containing the complete source code <a title="here" href="https://blogs.msdn.com/b/vesku/archive/2011/07/29/webtemplate-training-materials-introduction-to-reusable-labs.aspx">here</a></p>]]></content:encoded>
    </item>
    <item>
      <title>List of Site Templates in SharePoint 2010</title>
      <link>https://docs.microsoft.com/archive/blogs/sanjaynarang/list-of-site-templates-in-sharepoint-2010</link>
      <pubDate>Thu, 29 Sep 2011 23:03:59 GMT</pubDate>
      <dc:creator><![CDATA[Sanjay.Narang]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/sanjaynarang/2011/09/29/list-of-site-templates-in-sharepoint-2010/</guid>
      <description><![CDATA[Many times we come across the question that what site template we should use for a particular...]]></description>
      <content:encoded><![CDATA[<p>Many times we come across the question that what site template we should use for a particular required. Whether we can use out-of-the-box template or do we need to create a custom site template? We can answer these questions only when we know about all the site templates provided by SharePoint 2010 out-of-the-box. For that I was searching for some available resources and got some good resources, I thought it, it would be useful for others also to have these resources listed in one single place – and hence sharing here:</p>  <p>1. Which SharePoint 2010 Site Template Is Right For Me? (<a href="https://toddbaginski.com/blog/which-sharepoint-2010-site-template-is-right-for-me/">https://toddbaginski.com/blog/which-sharepoint-2010-site-template-is-right-for-me/</a>)</p>  <p>A blog post from “Todd Baginski”. He provides an overview of site templates and sub-site templates that are available with SharePoint 2010. Todd also discusses templates that are new to SharePoint 2010, the various kinds of lists that are available for particular templates.</p>  <p>2. A preview of the SharePoint Server 2010 site templates (<a href="https://office.microsoft.com/en-us/sharepoint-server-help/a-preview-of-the-sharepoint-server-2010-site-templates-HA101907564.aspx">https://office.microsoft.com/en-us/sharepoint-server-help/a-preview-of-the-sharepoint-server-2010-site-templates-HA101907564.aspx</a>)</p>  <p>The page provides videos for different site templates. The videos provide a quick preview of these templates, what they look like, what’s included, and how you might use them in your organization. Each video is less than a minute long so that you can go through them quickly and decide which template is best for you.</p>  <p>3. Sites and site collections overview (SharePoint Server 2010) (<a href="https://technet.microsoft.com/en-us/library/cc262410.aspx">https://technet.microsoft.com/en-us/library/cc262410.aspx</a>)</p>  <p>This TechNet page provides a table that lists every site template, describes the purpose of each, and indicates whether the template is available at the site collection level, site level, or both. It also provides the category that is used to group the templates. As the category might be different, depending on the level at which a site is created, it provides category at both the levels.</p>  <p>4. SharePoint 2010 Site Template (<a href="https://wellytonian.com/2010/08/sharepoint-2010-site-template-screenshots-2/">https://wellytonian.com/2010/08/sharepoint-2010-site-template-screenshots-2/</a>)</p>  <p>As the name suggests, this blog post provide you quick overview of site templates by providing the screen shots of their home pages.</p>  <p>Hope you find this useful!</p>]]></content:encoded>
    </item>
    <item>
      <title>Custom Note Board web part, SocialCommentManager, social security trimming and Search</title>
      <link>https://docs.microsoft.com/archive/blogs/sanjaynarang/custom-note-board-web-part-socialcommentmanager-social-security-trimming-and-search</link>
      <pubDate>Sun, 12 Jun 2011 04:11:21 GMT</pubDate>
      <dc:creator><![CDATA[Sanjay.Narang]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/sanjaynarang/2011/06/12/custom-note-board-web-part-socialcommentmanager-social-security-trimming-and-search/</guid>
      <description><![CDATA[If you have used My Sites in SharePoint 2010, you would have seen the new Note Board web part. The...]]></description>
      <content:encoded><![CDATA[<p>If you have used My Sites in SharePoint 2010, you would have seen the new Note Board web part. The Note Board web part is a generic web part and can be used in other sites also such as publishing portals, team sites etc. It enables users to leave short, publicly-viewable notes or comments about the page, where the web part exists. </p>  <p>There are scenarios, where you’d like to customize the out-of-the-box (OOB) Note Board web part. For example, you might want to show dates in different format, or you want to provide ‘report abuse’ feature on each note. You might want to show the total number of notes within the web part. Unfortunately, the OOB web part offers very limited flexibility to customize its UI or provide other features on top of it. So, you would need to write your own custom Notes or Comments web part. </p>  <p>How to write a custom Notes or Comments web part? First option would be to extend the class used by OOB Note Board web part – SocialCommentWebPart class. Unfortunately again, the class is sealed and you can’t inherit from it. The only option left is to use SharePoint object model (OM) to view/add/delete/edit comments and write the whole UI from scratch. The OM provides a class&#160; <a href="https://msdn.microsoft.com/en-us/library/microsoft.office.server.socialdata.socialcommentmanager.aspx">SocialCommentManager</a>, which provides extensive methods to do work with social comments or notes. For example: <a href="https://msdn.microsoft.com/en-us/library/microsoft.office.server.socialdata.socialcommentmanager.addcomment.aspx">AddComment</a>, <a href="https://msdn.microsoft.com/en-us/library/microsoft.office.server.socialdata.socialcommentmanager.getcomments.aspx">GetComments</a>, <a href="https://msdn.microsoft.com/en-us/library/microsoft.office.server.socialdata.socialcommentmanager.getcount.aspx">GetCount</a>. However, if you want to provide all features provided by OOB web part, you are going to face some challenges. In the following section, I would would explain those challenges and how to overcome them.</p>  <h6>Social Security Trimming and Search</h6>  <p>Most of social data in SharePoint (tag, comment, rating) is controlled by social security trimming. Before SocialCommentManager returns comments for a page, it uses a component called the <em>security trimmer</em> to determine whether the current user has permission to view that Web page. If the user is not permitted to view the Web page, SocialCommentManager does not returns the comment.</p>  <p>As the search service crawls Web pages, it records the permissions that are required to view each Web page. The security trimmer uses this information to determine whether a given user has permission to view a specific Web page. If the security trimmer has insufficient information to determine whether a user has permission to view a Web page, it errs on the side of caution and reports that the user does <em>not</em> have permission to view the Web page. You can read more about social security trimming here: <a href="https://technet.microsoft.com/en-us/library/ff608006.aspx">Privacy and security implications of social tagging</a></p>  <p>As a result, if the search service has not crawled a Web page, SocialCommentsManager returns only current user’s comments on that page and does not return comments added by other users. So if you don’t have SharePoint Search in your environment, you would not be able to show comments by all users in your custom web part. Also, if your Search incremental crawl is scheduled every night (which happens most of the cases), when a new page is created, users would not be able to see other’s comments until the page is crawled in the night. </p>  <p>There are two ways to overcome this issue. SocialCommentsManager has an internal method overload for GetComments that takes a Boolean argument whether to consider security trimming or not. OOB web part also uses this method. </p>  <pre style="border-bottom: #cecece 1px solid; border-left: #cecece 1px solid; padding-bottom: 5px; background-color: #fbfbfb; min-height: 40px; padding-left: 5px; width: 650px; padding-right: 5px; overflow: auto; border-top: #cecece 1px solid; border-right: #cecece 1px solid; padding-top: 5px"><pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 12px"><span style="color: #0000ff">internal</span> SocialComment[] GetComments(Uri url, <span style="color: #0000ff">int</span> maximumItemsToReturn, <span style="color: #0000ff">int</span> startIndex, DateTime excludeItemsTime, <span style="color: #0000ff">bool</span> needSecurityTrim)</pre></pre>

<p>You can use reflection to call this method to get comments. If you don’t want to use reflection, you can resort to the other method, which is to disable social security trimming. This can also help you with OOB web parts that are controlled through social security trimming such as&#160; What’s New web part that shows user’s colleagues activities. </p>

<p>Be aware that by disabling security trimming, you override the SharePoint privacy controls. You disable social security trimming by using the following PowerShell&#160; </p>

<pre style="border-bottom: #cecece 1px solid; border-left: #cecece 1px solid; padding-bottom: 5px; background-color: #fbfbfb; min-height: 40px; padding-left: 5px; width: 650px; padding-right: 5px; overflow: auto; border-top: #cecece 1px solid; border-right: #cecece 1px solid; padding-top: 5px"><pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 12px">$upaProxyId = (Get-SPServiceApplicationProxy |? {$_.DisplayName -eq &quot;<span style="color: #8b0000">&lt;Name of your user profile SA proxy</span>&quot;}).Id
</pre><pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 12px">Remove-SPPluggableSecurityTrimmer -UserProfileApplicationProxyId $upaProxyId -PlugInId 0
</pre></pre>

<p>Remember the social security trimming is enabled or disabled at the level of Proxy and NOT at the level of whole service application.&#160; </p>

<h1></h1>

<h6>Delete and Edit Comments</h6>

<p>There is no method exposed by SocialCommentManager to Delete comments or Edit comments. Actually there are methods DeleteComment and UpdateComment, but those are internal. But, we have an asmx web service <a href="https://msdn.microsoft.com/en-us/library/websvcsocialdataservice.socialdataservice.aspx">SocialDataService</a> that exposes both of these methods: <a href="https://msdn.microsoft.com/en-us/library/websvcsocialdataservice.socialdataservice.deletecomment.aspx">DeleteComment</a>, and <a href="https://msdn.microsoft.com/en-us/library/websvcsocialdataservice.socialdataservice.updatecomment.aspx">UpdateComment</a>. So, we can use SocialCommentManager for adding and getting comments and use SocialDataService for deleting and editing comment. Otherwise, we can use SocialDataService for everything. However, there is still a catch. With OOB Notes web part, owner of comment as well as site owners can delete any comment on the web part. Whereas, the SocialDataService DeleteComment method deletes the social comment associated with the current user only. How do you provide the capability to site owners to delete any comment? Even if you try impersonation or try running code with RunWithElevatedPrivileges, it doesn’t allow to delete a comment of a user other than the current logged on user. </p>

<p>The only solution I could find for this is to use reflection and execute internal methods of SocialCommentManager. The internal method DeleteComment, is used for deleting comments. It takes an argument as commentID. The SocialComment class has a property CommentID that returns an ID of a comment, but that also is internal. So, you would need reflection for getting value of this property also. The code looks like this:</p>

<pre style="border-bottom: #cecece 1px solid; border-left: #cecece 1px solid; padding-bottom: 5px; background-color: #fbfbfb; min-height: 40px; padding-left: 5px; width: 650px; padding-right: 5px; overflow: auto; border-top: #cecece 1px solid; border-right: #cecece 1px solid; padding-top: 5px"><pre class="code"><span style="color: blue">public void </span>DeleteComment(<span style="color: blue">string </span>userAccountName, <span style="color: blue">string </span>pageUrl)
{

    <span style="color: blue">using </span>(<span style="color: #2b91af">SPSite </span>site = <span style="color: blue">new </span><span style="color: #2b91af">SPSite</span>(pageUrl))
    {
        <span style="color: #2b91af">SPServiceContext </span>serviceContext = <span style="color: #2b91af">SPServiceContext</span>.GetContext(site);
        <span style="color: #2b91af">UserProfileManager </span>upm = <span style="color: blue">new </span><span style="color: #2b91af">UserProfileManager</span>(serviceContext);
        <span style="color: #2b91af">UserProfile </span>user = upm.GetUserProfile(userAccountName);

        <span style="color: #2b91af">SocialCommentManager </span>scManager = <span style="color: blue">new </span><span style="color: #2b91af">SocialCommentManager</span>(serviceContext);

        <span style="color: #2b91af">Uri </span>currUri = FixupPageUrl(<span style="color: blue">new </span><span style="color: #2b91af">Uri</span>(pageUrl));

        <span style="color: #2b91af">SocialComment</span>[] scList = scManager.GetComments(user, currUri);
        <span style="color: green">// get the latest comment in the list, comments list is returned in 
        // descending order of modified date
        </span><span style="color: #2b91af">SocialComment </span>sc = scList[0];

        <span style="color: #2b91af">PropertyInfo </span>propertyInfo = <span style="color: blue">typeof</span>(<span style="color: #2b91af">SocialComment</span>).GetProperty(<span style="color: #a31515">&quot;CommentID&quot;</span>,
            <span style="color: #2b91af">BindingFlags</span>.NonPublic | <span style="color: #2b91af">BindingFlags</span>.Instance);

        <span style="color: blue">object </span>o = propertyInfo.GetValue(sc, <span style="color: blue">null</span>);

        <span style="color: blue">if </span>(o != <span style="color: blue">null</span>)
        {
            <span style="color: #2b91af">Type </span>type = scManager.GetType();

            <span style="color: #2b91af">MethodInfo </span>mi = <span style="color: blue">typeof</span>(<span style="color: #2b91af">SocialCommentManager</span>).GetMethod(<span style="color: #a31515">&quot;DeleteComment&quot;</span>,
                <span style="color: #2b91af">BindingFlags</span>.NonPublic | <span style="color: #2b91af">BindingFlags</span>.Instance,
                <span style="color: blue">null</span>,
                <span style="color: blue">new </span><span style="color: #2b91af">Type</span>[] { <span style="color: blue">typeof</span>(<span style="color: blue">long</span>) },
                <span style="color: blue">null</span>);

            <span style="color: blue">long </span>id = <span style="color: #2b91af">Convert</span>.ToInt64(o.ToString());
            mi.Invoke(scManager, <span style="color: blue">new object</span>[] { id });
        }

    }
}</pre></pre>

<p>I’ve already explained most of the code above except method FixupPageUrl, which brings us to our next challenge.</p>

<h6>Welcome Page Comments</h6>

<p>SharePoint stores each social comment in social DB against the URL of the page, on which comment has been given. However, if the page is welcome page of the site, it stores the URL of site instead of the actual page. For example, if you have some comments on the welcome page of your site: <a href="https://sitename/pages/default.aspx">https://sitename/pages/default.aspx</a> and you pass this URL to GetComments method, it would not return any result, because SharePoint would have stored those comments against the site URL: <a href="https://sitename">https://sitename</a>. The method FixupPageUrl addresses this issue. It returns the site URL if the passed URL is a welcome page. OOB Note Board web part also uses the same method. It is available in an internal class SocialItemUrlNormalizer. You can either use reflection to call this method or paste the method code into your calls using reflector. The code look like this:</p>

<pre style="border-bottom: #cecece 1px solid; border-left: #cecece 1px solid; padding-bottom: 5px; background-color: #fbfbfb; min-height: 40px; padding-left: 5px; width: 650px; padding-right: 5px; overflow: auto; border-top: #cecece 1px solid; border-right: #cecece 1px solid; padding-top: 5px"><pre class="code"><span style="color: blue">private </span><span style="color: #2b91af">Uri </span>FixupPageUrl(<span style="color: #2b91af">Uri </span>url)
{
    <span style="color: #2b91af">SPSecurity</span>.<span style="color: #2b91af">CodeToRunElevated </span>secureCode = <span style="color: blue">null</span>;
    <span style="color: blue">string </span>strWelcomePage;
    <span style="color: blue">if </span>(url != <span style="color: blue">null</span>)
    {
        strWelcomePage = <span style="color: blue">string</span>.Empty;
        <span style="color: blue">try
        </span>{
            <span style="color: blue">if </span>(secureCode == <span style="color: blue">null</span>)
            {
                secureCode = <span style="color: blue">delegate
                </span>{
                    <span style="color: blue">using </span>(<span style="color: #2b91af">SPSite </span>site = <span style="color: blue">new </span><span style="color: #2b91af">SPSite</span>(url.AbsoluteUri))
                    {
                        <span style="color: blue">using </span>(<span style="color: #2b91af">SPWeb </span>web = site.OpenWeb())
                        {
                            strWelcomePage = web.RootFolder.WelcomePage;
                            <span style="color: blue">if </span>(!<span style="color: blue">string</span>.IsNullOrEmpty(strWelcomePage))
                            {
                                strWelcomePage = <span style="color: #2b91af">SPHttpUtility</span>.UrlPathDecode(strWelcomePage, <span style="color: blue">false</span>);
                                strWelcomePage = <span style="color: #2b91af">SPHttpUtility</span>.UrlPathEncode(strWelcomePage, <span style="color: blue">false</span>, <span style="color: blue">true</span>);
                            }
                        }
                    }
                };
            }
            <span style="color: #2b91af">SPSecurity</span>.RunWithElevatedPrivileges(secureCode);
        }
        <span style="color: blue">catch
        </span>{
        }
        <span style="color: blue">if </span>(!<span style="color: blue">string</span>.IsNullOrEmpty(strWelcomePage))
        {
            <span style="color: blue">string </span>absoluteUri = url.AbsoluteUri;
            <span style="color: blue">int </span>startIndex = absoluteUri.LastIndexOf(strWelcomePage, <span style="color: #2b91af">StringComparison</span>.OrdinalIgnoreCase);
            <span style="color: blue">if </span>(startIndex != -1)
            {
                url = <span style="color: blue">new </span><span style="color: #2b91af">Uri</span>(absoluteUri.Remove(startIndex));
            }
        }
    }

    <span style="color: blue">return </span>url;
}</pre></pre>

<h6>Paging</h6>

<p>You would have to use your own logic for paging also. The SocialCommentManager exposes a <a href="https://msdn.microsoft.com/en-us/library/ee578375.aspx">GetComments</a> overloaded method, which takes arguments that would enable you to build paging: Number of Items to be displayed on the page and the start index. </p>

<p>The key thing to remember here is that use <a href="https://msdn.microsoft.com/en-us/library/ee581579.aspx">SocialCommentManager.GetCount()</a> method to get total number of comments to calculate number of pages required to display all comments. If you use Length property of SocialComment[] returned by GetComments to get total number of pages, you might get into the issue, which is discussed in the next challenge. </p>

<h6>Deleted User Profiles</h6>

<p>When a user profile gets deleted from the user profile database (for example, after a user leaves the company), social comments added by that user are not deleted from the Social DB. However, the object model, does not return any comments added by such deleted profiles. Hence, Length property of SocialComment[] returned by GetComments can be lesser than that value returned by GetCount method. This happens because GetCount value also contains the comments by deleted user profiles whereas GetComments does not.&#160; If you has used GetComments method to get total comments for paging, your Next button can get disabled even before showing all the comments. At the time of writing this was a bug in OOB Note Board web part, and is expected to get fixed soon. </p>

<p>The above issue won’t happen if you use GetCount method to get total comments. However, you might have other issue here. For example, if you are showing 5 comments on each page, you might have intermediate pages which would display less than 5 comments. This would happen because the comments not displayed would be the comments from delete user profiles. As this is still better than not showing all comments, I prefer this one.&#160;&#160; </p>

<p>
  <div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:8940a425-9ff2-4499-af54-3089ee62a368" class="wlWriterEditableSmartContent">Technorati Tags: <a href="https://technorati.com/tags/Note+Board" rel="tag">Note Board</a>,<a href="https://technorati.com/tags/SocialCommentManager" rel="tag">SocialCommentManager</a>,<a href="https://technorati.com/tags/Social+Security+Trimming" rel="tag">Social Security Trimming</a>,<a href="https://technorati.com/tags/SharePoint+2010" rel="tag">SharePoint 2010</a></div></p>]]></content:encoded>
    </item>
    <item>
      <title>Media Web Part in SharePoint 2010 - FAQ</title>
      <link>https://docs.microsoft.com/archive/blogs/sanjaynarang/media-web-part-in-sharepoint-2010-faq</link>
      <pubDate>Wed, 26 May 2010 05:10:00 GMT</pubDate>
      <dc:creator><![CDATA[Sanjay.Narang]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/sanjaynarang/2010/05/26/media-web-part-in-sharepoint-2010-faq/</guid>
      <description><![CDATA[Media Web Part (MWP) is new Silverlight based web part that can be used to play videos and audios....]]></description>
      <content:encoded><![CDATA[<p>Media Web Part (MWP) is new Silverlight based web part that can be used to play videos and audios. As it’s a new web part, there have been many doubts/questions around this web part. I plan to clear those doubts in this post using a Frequently Asked Questions (FAQ) format. Here we go.</p>  <p><strong>1. How do I use Media Web Part?</strong></p>  <p>You can do this through&#160; Video and Audio button on the Ribbon interface on Insert tab. For step-by-step details look at <a href="https://www.chakkaradeep.com/post/SharePoint-2010-Media-Web-Part.aspx" target="_blank"><span style="color: #0000cc">SharePoint 2010: Media Web Part</span></a> blog post by Chakkaradeep</p>  <p><strong>2. What file formats are supported or can be played in Media Web Part?</strong></p>  <p>Media Web Part is a Silverlight control. So, all the formats supported by Silverlight can be played using MWP. Look at this article for details on that: <a title="Silverlight - Supported Media Formats, Protocols, and Log Fields" href="https://msdn.microsoft.com/en-us/library/cc189080(VS.95).aspx" target="_blank"><span style="color: #0000cc">Supported Media Formats, Protocols, and Log Fields</span></a>. </p>  <p><strong>3. Can I used Media Web Part to play flash Videos?</strong></p>  <p>No. As Silverlight does not support flash, hence, you can’t play flash videos.</p>  <p><strong>4. Then how can I play flash videos in SharePoint?</strong></p>  <p>You’d need to embed the HTML &lt;object&gt; tag in your pages. There are number of ways you can do that. You can either use out-of-the-box Content Editor web part to embed your &lt;object&gt; tag. If you don’t want to play with HTML, you can use some of open source or third party web parts such as <a title="Custom Web Part to play flash videos in SharePoint" href="https://www.devexpert.net/blog/pt/blog/SharePoint-2007-Flash-Animation-Web-Part.aspx" target="_blank"><span style="color: #0000cc">Flash Animation Web Part</span></a></p>  <p><strong>5. Can I play videos/audios from other web sites OR I need to store video in local SharePoint site?</strong></p>  <p>You can play videos from external sites (including streaming videos) as well videos in local SharePoint site. </p>  <p><strong>6. Can I use Media Web Part in SharePoint Foundation 2010?</strong></p>  <p>No, Media Web Part is included in Publishing feature, which is only available in SharePoint Server 2010.</p>  <p><strong>7. Can I used Media Web Part in SharePoint 2007?</strong></p>  <p>No, it’s only available in SharePoint Server 2010.</p>  <p><strong>8. Why can’t I embed videos in SharePoint blog site using Media Web Part?</strong></p>  <p>As mentioned above, Media Web Part is included in Publishing feature, which is only available in SharePoint Server 2010. Whereas the blog site template is included in SharePoint Foundation and hence can’t used publishing features.</p>  <p><strong>9. If if have SharePoint Server license, can I use Media Web Part in blog site template?</strong></p>  <p>Yes, you can do this with some bit of extra work with JavaScript. For details. see <a title="SharePoint 2010 - Video Blogging with Javascript and the Media Web Part" href="https://blogs.msdn.com/sharepointdesigner/archive/2009/12/11/video-blogging-with-javascript-and-the-media-web-part.aspx" target="_blank"><span style="color: #0000cc">Video Blogging with Javascript and the Media Web Part</span></a> blog post by <a title="SharePoint Designer Team blog" href="https://blogs.msdn.com/sharepointdesigner/" target="_blank"><span style="color: #0000cc">SharePoint Designer Team</span></a></p>  <p><strong>10. Can I change URL of the video being played by Media Web Part dynamically at client side?</strong></p>  <p>Yes. Media Web Part exposes JavaScript object model that you can use to manipulate the behavior of Media Web Part in the browser. One example of this is shown in Video Blogging post mentioned in Q 9. For details, see <a href="https://msdn.microsoft.com/en-us/library/ee558890.aspx" target="_blank"><span style="color: #0000cc">How to: Configure the MediaWebPart Object Using ECMAScript</span></a></p>  <p><strong>11. Can I use Media Web part to make complex video sharing web sites in SharePoint?</strong></p>  <p>Yes, You can use Media Web Part and digital asset management (DAM) features in Microsoft SharePoint Server 2010&#160; to create a customized social media sharing site. As an example of a video page, you can look at <a title="Sample Page for using videos in SharePoint" href="https://sharepoint.microsoft.com/en-us/Pages/Videos.aspx" target="_blank"><span style="color: #0000cc">Videos</span></a> page at <a href="https://sharepoint.microsoft.com/" target="_blank"><span style="color: #0000cc">SharePoint Official web site</span></a>. </p>  <p>MSDN has published a series of walkthroughs to describe the whole process:</p>  <ul>   <li><a href="https://msdn.microsoft.com/en-us/library/ff394513.aspx" target="_blank"><span style="color: #0000cc">Walkthrough: Creating a Video Site</span></a> </li>    <li><a href="https://msdn.microsoft.com/en-us/library/ff464368.aspx" target="_blank"><span style="color: #0000cc">Walkthrough: Adding the MediaWebPart and Video Site Features</span></a> </li>    <li><a href="https://msdn.microsoft.com/en-us/library/ff394411.aspx" target="_blank"><span style="color: #0000cc">Walkthrough: Customizing the Video Upload Experience</span></a> </li>    <li><a href="https://msdn.microsoft.com/en-us/library/ff394560.aspx" target="_blank"><span style="color: #0000cc">Walkthrough: Creating a Customized Home Page and Content By Query Web Part XSL</span></a> </li>    <li><a href="https://msdn.microsoft.com/en-us/library/ff464455.aspx" target="_blank"><span style="color: #0000cc">Walkthrough: Creating and Customizing a Channel Page</span></a> </li> </ul>  <p><b>12. Can I use Media Web part to play any size of video?</b></p>  <p>No, you should carefully plan the use of Media Web Part or digital content in general. Playing large files can affect the performance of your application drastically, if not planned properly. You need to look at factors such as available bandwidth between clients and server, server configurations (RAM, CPU, Disk Speeds) and advanced features provided be IIS and SharePoint – Bit Rate Throttling and BLOB cache. Bit Rate Throttling is an IIS 7.0 extension that meters the download speeds of media file types and data between a server and a client computer. Based on these factors, you should decide the maximum size of your videos and audios. Details discussion on these factors is beyond the scope of this. However, you should look at the following resources:</p>  <ul>   <li><a title="Learn about BLOB, Bit Rate Throttling and Max File size" href="https://technet.microsoft.com/en-us/library/ee424404.aspx" target="_blank">Caching and performance planning</a></li>    <li><a href="https://www.iis.net/download/BitRateThrottling" target="_blank">Bit Rate Throttling</a></li> </ul>  <p><b>13. What is &quot;Play media links in browser&quot; option in Content Query Web Part (CQWP) ? OR I don’t want to use MWP as I need to set preview image URL and Media URL for every video that I need to show. Isn’t there something that can show me list of all media content available and I can play any of those by just clicking on those?</b></p>  <p>When you upload a video as OOB Video content type or some content type inheriting from Video content type, you get additional Video playing features OOB. For example, if you have an Asset Library showing some digital content (Video, Audio or Image) in Thumbnails view, when you hover over or click an item, it pops up a small window showing the properties of digital item and with relevant links (such as Play, View Item etc.). When you click “Play” it plays the video in the browser itself, through a Silverlight overlay player. You need not use any Media Web Web part for this.</p>  <p>CQWP also behaves in the same way, when you select &quot;Play media links in browser&quot; option in web part properties, presentation section.</p>  <div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:a6a5f74b-3603-4d1e-a094-a3b35d5d9a5c" class="wlWriterEditableSmartContent">Technorati Tags: <a href="https://technorati.com/tags/SharePoint+2010" rel="tag">SharePoint 2010</a>,<a href="https://technorati.com/tags/Media+Web+Part" rel="tag">Media Web Part</a>,<a href="https://technorati.com/tags/Videos" rel="tag">Videos</a></div>]]></content:encoded>
    </item>
  </channel>
</rss>