Search This Blog

Monday, October 26, 2015

In Jquery e.preventDefault() &&e.stopPropagation() Event

<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<script type="text/javascript">
 
    $(document).ready(function () {

        // alert($('#hdnnode').val());
        alert(localStorage.getItem("TreeNode"));
       
        if (localStorage.getItem("TreeNode") != null)
        {
            $('#IPFrame').attr('src', localStorage.getItem("TreeNode"));
           // localStorage.removeItem("TreeNode");l
            alert(localStorage.getItem("TreeNode"));
        }
        else
        {
            var defaultFrameUrl = $('#tvDocumentLibraryt0').attr('href');
            // var defaultFrameUrl = $('#ctl00_ctl39_g_5ee41523_d303_442b_88b9_c64700cd7030_ctl00_tvDocumentLibraryt0').attr('href');
            $('#IPFrame').attr('src', defaultFrameUrl);
            // Initialization code here, meant to run once.
            localStorage.removeItem("TreeNode");
            alert(localStorage.getItem("TreeNode"));
        }
         
        $('a').click(function (e) {
           
            var linkID = $(this).attr("id");
           
           if (linkID == 'zz11_SiteActionsMenu')
            {
                //alert(linkID);
               // alert('sietsetings');
               // e.preventDefault();
               // e.stopPropagation();

          }
          //else if (linkID == 'zz13_NewMenu_t')
          //{
          //    alert('Ram');
           
             
         // }
            else {
                var imgSrcVal = $('img', this).attr("src");
                if (imgSrcVal != undefined) {
                    var n = imgSrcVal.indexOf("folder");
                    if (n != -1) {
                     
                        e.preventDefault();
                        localStorage.setItem("name", $(this).attr('href'));
                        $('#IPFrame').attr('src', $(this).attr('href'));
                   
                    }
                    else {
                        e.stopPropagation();
                    }
                }
                else {
                    if (linkID != null && imgSrcVal == undefined) {
                       
                        e.preventDefault();
                        localStorage.setItem("TreeNode", $(this).attr('href'));
                        $('#IPFrame').attr('src', $(this).attr('href'));
                     
                    }
                }
            }
         
           // alert('End');
          // e.stopPropagation();
        });
   
     

   
     
    });

   <%-- function GetSelectedNode() {
        var treeViewData = window["<%=tvDocumentLibraryt0.ClientID%>" + "_Data"];
        if (treeViewData.selectedNodeID.value != "") {
            var selectedNode = document.getElementById(treeViewData.selectedNodeID.value);
            var value = selectedNode.href.substring(selectedNode.href.indexOf(",") + 3, selectedNode.href.length - 2);
            var text = selectedNode.innerHTML;
            alert("Text: " + text + "\r\n" + "Value: " + value);
        } else {
            alert("No node selected.")
        }
        return false;
    }--%>
  </script>


All you need to know about client side data storage

There was a time when persisting data for a particular client either means uploading something to the server, or storing it to a server side session variable; or at max saving it to cookie and taking the overhead of transferring continuously in each http request.
But with time, the greed of making better user experience helped the web development world to think of some completely browser based or client side storage systems.

Let’s talk about the history

The journey of client side data storing actually starts from the late childhood of Internet Explorer; when Microsoft engineers included DHTML behaviors in it. One of these behaviors was userData, which allows web pages to store up to 64 KB of data per domain, in a hierarchical XML-based structure.
The second runner in this relay race was introduced by Adobe Inc. in 2002. Flash storage allows flash objects to store up to 100 KB of data per domain.
After that, in 2007 Google came up with “Gears”, an open source browser plugin, which provides an API to an embedded SQL database based on SQLite with some other features. Afterwards Google tried to push all of the Gears capabilities into web standards like HTML5, and eventually Google Gears was stopped.
To avoid all these chaos, Web Hypertext Application Technology Working Group (WHATWG) came up with a well-structured client-side storage solution, which is part of the HTML5 specifications approved by W3C. As a result sessionStorage and localStorage has been introduced to almost all the major browsers and sooner or later WebSql, IndexedDB will also be a part of all of them.

What is HTML5 storage?

Storages are one of the most interesting and futuristic features of HTML5. HTML5 storage is a standardize way of providing comparatively larger storage to save client side data. Previously cookies were considered as a solution of storing data client side; but only 4KB per cookie and 20 cookies per domain can never help to develop a proper web app. HTML5 storages not only provided larger space (5MB to 25MB depending on browsers) but also gave a good control.
Though it faced criticism due to lack of security, but the “something is better than nothing” concept helped it to be one of the mostly talked topics of HTML5.

Why you need client side storage

  1. For better browsing experience with fast start-up.
  2. To shift load from server sessions to client side variables.
  3. To stop repetitive and similar ajax calls.
  4. To make your app work when user is offline.
  5. Easier programming model, with no server required.

Types of storage

  1. sessionStorage
  2. localStorage
  3. Web Sql
  4. IndexedDB
  5. File system

sessionStorage and localStorage

sessionStorage and localStorage, basically known as web storages is used to store data in a key value format. Though both of them stores only string formats, but you can set and get your required things by serializing and deserializing.

Persistence:

sessionStorage: It persists for a session. It will persist in a single tab no matter how many times you navigate through different pages; but once you close the tab, things will be gone.
localStorage: It has more persistence. It persists the data even after you close the browser and reopen.

Availability to other tabs/windows

sessionStorage: Accessible only within the window or tab that created it
localStorage: Shared across every window and tab of one browser running same web app

Advantages

  1. Supported in almost all the browsers, including iOS and Android. The best part is IE8 onward supports it.
  2. Easy to use. APIs are very simple.
  3. Semantic events available to keep other tabs/windows in sync.

Drawbacks

  1. Supports only string format.
  2. Serialization-deserialization is a costly process. Makes things slower.
  3. Searching is never optimum; may have a visible performance drop in case of large data.
  4. Manual effort is required to manage data as data is effectively unstructured.

Web SQL database

As the name speaks, the web SQL database is a spec that brings SQL to the client side, based on SQLite. But this specification is no longer in active development or maintenance now and may be completely dropped or replaced by some other specification, W3C announced that on 18th November, 2010.

Persistence

It’s just like Javascript variables. Once you refresh the page, everything is gone.

Availability to other tabs/windows

No, it’s not available to other tabs or windows.

Advantages

  1. Being an asynchronous API, it is more performant.
  2. Database interaction won’t lock up the user interface.
  3. Good search performance, since data can be indexed according to search keys.
  4. Easier to maintain integrity of data, due to rigid data structure.

Drawbacks

  1. Not supported by all the browsers. IE and Firefox doesn’t support it at all; though the others do.
  2. Need to learn SQL first to use it.
  3. Database schema must be defined upfront, with all records in a table matching the same structure.

IndexedDB

When the W3C announced that developers shouldn’t work on web SQL actively anymore, IndexedDB came as a replacement.
Unlike the relational database, IndexedDB is a simple object store. You create an Object Store for a type of data and simply persist Javascript objects to that store. Each Object Store can have a collection of Indexes that make it efficient to query and iterate across.

Persistence

It doesn’t get deleted automatically. Once you create, it will persist for all the sessions of that particular domain.

Availability to other tabs/windows

Yes, it is shared across all the tabs or windows.

Advantages

  1. As IndexedDB is using asynchronous APIs, database interaction won’t lock up the user interface. (Synchronous API is also available for WebWorkers.)
  2. Data can be indexed according to search keys; hence searching operation become very fast.
  3. Supports versioning.
  4. Uses simple data model, so learning curve is not very steep.
  5. Decent browser support: Chrome, Firefox, mobile FF, IE10.

Drawbacks

  1. 1. Not supported in old versions of the browsers; this is the one and only drawback of IndexedDB I think.

File system storage

The other storages, mentioned above deal with text data, but file system storage, which is currently available only Google chrome and Opera can store binary content. It uses “FileSystem API Standard“, which gives each domain a full hierarchical file system; that means the binary files get stored in users hard disk.

Persistence

It is also like IndexedDB, which doesn’t get deleted after the session or closing the window.

Availability to other tabs/windows

Yes, it gets shared by all the tabs and windows.

Advantages

  1. Can store large content and binary files, so it’s suitable for images, audio, video, PDFs, etc.
  2. As you can store all your media files, stylesheets, fonts, scripts, so you can make a very rich as well as performant web app.
  3. Good performance, being an asynchronous API.

Drawbacks

  1. Not supported in much browsers. Only Chrome and Opera supports it.
  2. No proper file management system or indexing is available; so searching become hard.

Conclusion

Day by day the client side development is becoming more efficient and performant. The storages mentioned above helps reducing the regular http communications between the client and the server. A good management and implementation of these can make your app immensely fast and will give the user a very good performance.



Sunday, October 25, 2015

Modification of Upload.aspx on save button using jquery in SharePoint 2013

<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>

<script type="text/javascript">
$(document).ready(function(){

$("#WebPartWPQ2").contents().find('input[type="submit"]').click(function(){
    window.parent.location = document.referrer;
});
 });
</script>


Sunday, October 18, 2015

A New Feature of SharePoint 2016 & Enhancement 2013

Microsoft has introduced a new feature MinRole in SharePoint 2016.
Through this feature, SharePoint farm administrators can provision each server's role in the farm topology. When we create a new farm or join a server to the existing farm, the role of a server is specified during the installation and the services on each server based on the server's role are configured automatically by SharePoint. Hence, the performance of the farm is also optimized based on that topology.
There are six roles which are predefined and user can choose as per the requirement. In the following table, roles and their description are mentioned :
 Server Role Description
 Front End Service applications, services and components that serve user requests are  configured on  Front end web servers and are optimized for low latency.
 Application Service applications, services and components that serve backend requests  are configured on Application servers and are optimized for high throughput.
 Distributed Cache Service applications, services and components that are required for distributed  cache  are configured on Distributed cache servers.
 Search Service applications, services and components that are required for searching are configured on Search servers.
 Custom Custom service applications,services and components that do not integrate with  MinRole are configured on Custom servers . The farm administrator has full control over  which service instances to run on the servers assigned to the Custom role . MinRole has no role to play with the service instances provisioned on the Custom role.
 Single-server farm Service applications, services and components required for single machine farm  are configured on a Single-Server Farm.
Working of MinRole
When we create a new farm or join a server to an existing farm , a set of service instances are started by SharePoint which are required  for the server's role. Additionally, all the other services which are enabled in the farm are detected by it and starts each service instances as applicable to server's role.
Further, it also detects which service applications have created in the farm and which services are required for supporting these service applications as applicable to server's role.
MinRole starts and stops the service instances on the existing servers in the farm whenever we enable or disable the services in the farm or we delete or create the service applications in the farm.
The outcome is that farm administrators need not worry about the service instances at an individual server level. Rather than this, admins primary focus would be on which services should be enabled at the SharePoint farm level.
Benefits of MinRole
1. Simpler capacity planning and farm scalability : Following the recommended MinRole topology , users can leverage better predictable & proper capacity planning. Additionally, servers can be easily added into the farm as per the need .
2. Simplified deployment : Farm administrators need not worry about configuring services on each servers. By following recommended MinRole topology, farm admins can focus on functionalities needed to be enabled in the farm.
3. Improved performance & reliability : Sharepoint services have been optimized for the MinRole topology based on analysis performed by Microsoft in terms of network latency,CPU,memory, disk I/O . By following recommended MinRole topology, users will be able to reduce the network latency and thus, increase the reliability.
Methods available for Farm Deployment
We can use the following methods to create a new farm or join servers to an existing farm with MinRole :
  • Windows PowerShell cmdlets
  • SharePoint 2016 Products Configuration Wizard (PSConfigUI.exe)
  • PSConfig.exe command line tool
For PSConfig.exe & Windows Powershell we have two new command line parameters with the introduction of MinRole feature which are mentioned below :
  • LocalServerRole  : specifies the role of local server when we create new farm or join a server to an existing farm . This parameter accepts following values :
    • WebFrontEnd
    • Application
    • DistributedCache
    • Search
    • Custom
    • SingleServerFarm
  • ServerRoleOptional : configures the farm which do not require a server role to be specified. In case no server role is specified, then the server defaults to Custom Role.
Recommended MinRole Topologies
Server roleRequired for Content Farm ?Required for Shared Services Farm ?Required for Search Farm ?
Front-end webYesYesNo
ApplicationYesYesNo
Distributed cacheYesYesNo
SearchYes, if hosting SearchYes, if hosting SearchYes
CustomOptionalOptionalOptional
Opting out of MinRole
The backward compatible behavior of previous SharePoint releases is supported in SharePoint 2016 Preview with the custom role.
For existing deployment scripts not to include MinRole, we can specify ServerRoleOptionalparameter by using PSConfig.exe command line tool or Windows PowerShell for creating new Sharepoint farm.

  1 Comment

Microsoft has added some 115 new Powershell cmdlets in the new version of SharePoint i.e. SharePoint 2016. The list of new Powershell cmdlets are mentioned below :
Command-letProduct
Add-SPIPRangeAllowListSharePoint
Compare-SPDatabaseSchemaSharePoint
Copy-SPDatabaseSharePoint
Copy-SPSideBySideFilesSharePoint
Disable-SPIPRangeAllowListSharePoint
Disable-SPProjectActiveDirectoryEnterpriseResourcePoolSyncProject
Disable-SPProjectEmailNotificationProject
Disable-SPProjectEnterpriseProjectTaskSyncProject
Disable-SPProjectQueueStatsMonitoringProject
Disable-SPSecureStoreMinDBSharePoint
Disable-SPVideoStreamingSharePoint
Disable-SPWebTemplateForSiteMasterSharePoint
Dismount-SPSiteMapDatabaseSharePoint
Enable-SPIPRangeAllowListSharePoint
Enable-SPProjectActiveDirectoryEnterpriseResourcePoolSyncProject
Enable-SPProjectEmailNotificationProject
Enable-SPProjectEnterpriseProjectTaskSyncProject
Enable-SPProjectQueueStatsMonitoringProject
Enable-SPSecureStoreMinDBSharePoint
Enable-SPVideoStreamingSharePoint
Enable-SPWebTemplateForSiteMasterSharePoint
Export-SPAccessServicesDatabaseSharePoint
Export-SPTagsAndNotesDataSharePoint
Get-SPAppStoreWebServiceConfigurationSharePoint
Get-SPAzureVideoServiceAccountSharePoint
Get-SPConnectedServiceApplicationInformationSharePoint
Get-SPInsightsAuthSettingsSharePoint
Get-SPIPRangeAllowListSharePoint
Get-SPMicrofeedOptionsSharePoint
Get-SPO365LinkSettingsSharePoint
Get-SPProjectDatabaseQuotaProject
Get-SPProjectDatabaseUsageProject
Get-SPProjectEnterpriseProjectTaskSyncProject
Get-SPProjectEventServiceSettingsProject
Get-SPProjectIsEmailNotificationEnabledProject
Get-SPProjectOdataConfigurationProject
Get-SPProjectPCSSettingsProject
Get-SPProjectPermissionModeProject
Get-SPProjectQueueSettingsProject
Get-SPProjectWebInstanceProject
Get-SPRuntimeTelemetrySharePoint
Get-SPServiceSharePoint
Get-SPSiteMapDatabaseSharePoint
Get-SPSiteMasterSharePoint
Get-SPVideoStreamingConfigSharePoint
Get-SPWebTemplatesEnabledForSiteMasterSharePoint
Import-SPAccessServicesDatabaseSharePoint
Invoke-SPProjectActiveDirectoryEnterpriseResourcePoolSyncProject
Invoke-SPProjectActiveDirectoryGroupSyncProject
Migrate-SPDatabaseSharePoint
Migrate-SPProjectDatabaseProject
Migrate-SPProjectResourcePlansProject
Mount-SPSiteMapDatabaseSharePoint
Move-SPAppManagementDataSharePoint
Move-SPSecureStorePartitionDataSharePoint
New-SPAzureVideoServiceAccountSharePoint
New-SPProjectServiceApplicationProject
New-SPProjectServiceApplicationProxyProject
New-SPSiteMasterSharePoint
Pause-SPProjectWebInstanceProject
Register-SPContentDatabaseSharePoint
Remove-SPAzureVideoServiceAccountSharePoint
Remove-SPIPRangeAllowListSharePoint
Remove-SPProjectWebInstanceDataProject
Remove-SPSiteMasterSharePoint
Repair-SPProjectWebInstanceProject
Reset-SPProjectEventServiceSettingsProject
Reset-SPProjectPCSSettingsProject
Reset-SPProjectQueueSettingsProject
Reset-SPSitesSharePoint
Resume-SPProjectWebInstanceProject
Resume-SPVideoStreamingAccessSharePoint
Set-SPAppStoreWebServiceConfigurationSharePoint
Set-SPDefaultProfileConfigSharePoint
Set-SPInsightsAuthSettingsSharePoint
Set-SPIPAccessControlOperationModeSharePoint
Set-SPIPAccessControlSubscriptionIdSharePoint
Set-SPIPRangeAllowListSharePoint
Set-SPIPRangeAllowListSettingSharePoint
Set-SPMicrofeedOptionsSharePoint
Set-SPO365LinkSettingsSharePoint
Set-SPProjectDatabaseQuotaProject
Set-SPProjectEventServiceSettingsProject
Set-SPProjectOdataConfigurationProject
Set-SPProjectPCSSettingsProject
Set-SPProjectPermissionModeProject
Set-SPProjectQueueSettingsProject
Set-SPProjectServiceApplicationProject
Set-SPProjectUserSyncProject
Set-SPProjectUserSyncDisabledSyncThresholdProject
Set-SPProjectUserSyncFullSyncThresholdProject
Set-SPProjectUserSyncOffPeakSyncThresholdProject
Set-SPRuntimeTelemetrySharePoint
Set-SPServerSharePoint
Start-SPServiceSharePoint
Stop-SPServiceSharePoint
Suspend-SPVideoStreamingAccessSharePoint
Switch-SPSitesToNewDatabaseSharePoint
Sync-SPProjectPermissionsProject
Test-SPIPRangeAllowListSharePoint
Test-SPO365LinkSettingsSharePoint
Test-SPProjectServiceApplicationProject
Test-SPProjectWebInstanceProject
Update-SPAzureBlobConfigLocatorSharePoint
Update-SPAzureBlobConfigLocatorExSharePoint
Update-SPAzureBlobConfigLocatorEx1SharePoint
Update-SPAzureBlobLogStoreSignaturesSharePoint
Update-SPAzureBlobSignaturesExSharePoint
Update-SPAzureBlobSignaturesEx1SharePoint
Upgrade-SPAppManagementServiceApplicationSharePoint
Upgrade-SPConfigurationDatabaseSharePoint
Upgrade-SPProfileServiceApplicationSharePoint
Upgrade-SPServerSharePoint
Upgrade-SPSiteMapDatabaseSharePoint
Upgrade-SPWebApplicationSharePoint

 

In my previous blog post, I have mentioned about some new features in SharePoint 2016 beta release. To have a recap , refer New Features in SharePoint 2016 – Part 1 of 2
  1. Added the support of the BITS Protocol instead of COBALT for file transfer. BITS utilizes an unclaimed bandwidth to enhance file transfer experience.
  2. Microsoft Project Server 2016 (PWA) is now part of the SharePoint product (install) but still requires a separate license.
 PWA
  1. Improved bidirectional sync with active directory
FIM (Forefront Identify Manager) product is removed from the SharePoint media (Install). Also, added support for external standalone FIM product\service.
UPA
  1. New site collection template called “Compliance Policy Center” added
 It allows you to manage policies and assign policies to SharePoint site collections to help you enforce your organization governance requirements.  It includes the ability to discover sensitive information like “Social security number”, credit card numbers …etc. You also can add document delete policies.
 ComplainceCenter

ComplianceCenter2
  1. Added a new Site collection template called “In-Place Hold Policy Center”
This allows you to manage governance policies across site collections.
PolicyCenter
  1. Fast Site Creation introduced
SharePoint will leverage master copies for common site templates (I.e. STS0) to do a SPSite.Copy at the content db level to speed up site collection creation. For deep dive, refer Fast Site Creation in SharePoint 2016
  1. 115 new PowerShell commandlet added.
lot of them existed before part of the Project Server when it was a separate install, the rest are brand new that provide more control on server administration, integration with the cloud for hybrid scenarios …etc.. For complete detailed list, refer SharePoint 2016 New Powershell cmdlets
  1. Durable links feature is added
This provides resource Id based URL to make it easier to locate documents with their URL no matter where you move them.
  1. Two new features are added for document libraries :
    • Generate a file plan report for a folder in document libraryPlanReportReport
    • Change enterprise metadata and keywords settingsMMS

  1. Added SMTP Connection encryption for outgoing email
You can use custom ports & enable SSL …etc
Email
  1. Enabled Office 365 hybrid scenario integration with SharePoint 2016 on-premises through central admin.
O365O365Options
You can configure one of two different integration scenarios:
  1. OneDrive & Sites
  2. OneDrive only

SharePoint 2016 beta has been released and upon exploring we found some new features which are listed below:
  1. Server Roles
While running configuration wizard users will come across a screen, where they are provided with the settings to define the role of a server. It also helps to maintain the best performance of the desired server role. Following roles are available:
  • Front-end
  • Application
  • Distributed Cache
  • Search
  • Custom
  • Single Server Farm
ServerRoles1
We can also change the server role through central admin --> System Settings --> Servers --> Convert server role in this farm
ServerRoles2
  1. App Launcher
This cool gadget which s customizable & extensible allows users to navigate between SharePoint, OneDrive & Newsfeed
QuickLaunch

  1. Enhanced simple controls for document library
SimpleMenu.png
  1. Content Databases sizes to be in TBs and not GBs
  1. Added the support of 100K site collections per content db up from 10K for SharePoint 2013.
  1. Increased the list threshold more than 5000 items per view\query. For deep dive refer Auto Indexing List View In SharePoint 2016.
  1. Increased the maximum file size to 10 GB up from 2 GB for SharePoint 2013
  1. Search index size increased from 250 million supported items per farm to 500 million items.
  1. Added automatic list column indices management to make it easier for SharePoint users to create and use large lists without worrying too much about indexing.
IndexManagement
  1. Improved and stabilized distributed cache (App Fabric)
App Fabric is announced to be discontinued already as a standalone product but the product group will continue to support it as a component part of SharePoint
For more features listing, go to Part 2 of this series -  New Features in SharePoint 2016 - Part 2 of 2

  2 Comments

At Microsoft Ignite , the system requirements for SharePoint Server 2016 were announced by Microsoft Senior Technical Product Manager, Bill Baer .
Following are the system requirements for SharePoint Server 2016 :
ScenarioDeployment TypeProcessorRAMHard Disk
D/B Server running a single SQL instanceDevelopment64-bit, 4 cores12-16 GB80 GB
D/B server running a single SQL instanceProduction64-bit,4 cores16-24 GB80 GB
Web Server or app server running 3-tier farmDevelopment64-bit,4 cores8-12 GB80 GB
Web server or app server running in 3-tier farmProduction64-bit,4 cores12-16 GB80 GB
Operating System Requirements :
Windows Server 2012 R2 and Windows Server Technical Preview will be the OS on which SharePoint Server 2016 is supported.
Database Requirements :
SharePoint Server 2016 will support SQL Server 2014 or SQL Server 2016.
.NET Framework :
Windows Server 2012 R2 : SharePoint Server 2016 requires .NET Framework 4.5.2 .
Windows Server Technical Preview "Threshold" : SharePoint Server 2016 requires .NET Framework 4.6 Preview which comes with Windows Server Technical Preview "Threshold".
Prerequisites for SharePoint Server  2016 :
The prerequisites for SharePoint Server 2016 are similar to the ones which were in SharePoint Server 2013 and it can also be installed manually or by prerequisites installer .
Prerequisite installer installs the following components :
  1. Application Server Role or Web Server (IIS) Role.
  2. Microsoft SQL Server 2012 Native Client.
  3. Microsoft ODBC Driver 11 for SQL Server.
  4. Microsoft Sync Framework Runtime v1.0 SP1 (x64).
  5. Windows Server AppFabric 1.1 .
  6. Cumulative Update Package 1 for Microsoft AppFabric 1.1 for Windows Server (KB2671763).
  7. Microsoft Identity Extensions.
  8. Microsoft Information Protection and Control Client .
  9. Microsoft WCF Data Services 5.0 .
  10. Microsoft WCF Data Services 5.6
  11. Microsoft . Net Framework 4.5.2
  12. Update for Microsoft .NET Framework to disable RC4 in Transport Layer Security (KB2898850) .
  13. Visual C++ Redistributable Package for Visual Studio 2013 .
Deployment Scenarios :
ScenarioSharePoint Server 2016
WorkgroupUnsupported
Domain ControllerDeveloper Installation
Client OSUnsupported
Dynamic MemoryUnsupported
Windows Web ServerUnsupported

 

We have PowerShell Command to find time elapsed in execution of cmdlet. Or this command comes in handy to make a comparison between the cmdlets in terms of execution time .
Syntax for the command :
Measure-Command {New-SPSite http://vmsp2016/sites/DemoFastSite -Template "STS#0" -ContentDatabase $contentDatabse -CompatibilityLevel 15 -OwnerAlias “corp\sp_farmAdmin”}
MeasureCommandForTimeElapse
By using this command , we can easily find the time taken in execution of Pwoershell cmdlet. Post execution, the result displays the duration in Days, Hours, Minutes, Seconds,Milliseconds etc. as shown in the above screenshot.
We can easily log this data in a log file and further optimize the cmdlet for effective & faster execution.

 

SharePoint 2016 IT Preview has been released and there are some new site templates introduced . Here are the list of web templates with their compatibility level available in SharePoint 2016 :
S No.NameTitleCompatibility Level
1ACCSRV#0Access Services Site14
2ACCSRV#0Access Services Site15
3ACCSRV#1Assets Web Database14
4ACCSRV#3Charitable Contributions Web Database14
5ACCSRV#4Contacts Web Database14
6ACCSRV#5Projects Web Database14
7ACCSRV#6Issues Web Database14
8ACCSVC#0Access Services Site Internal15
9ACCSVC#1Access Services Site15
10APP#0App Template15
11APPCATALOG#0App Catalog Site15
12BDR#0Document Center14
13BDR#0Document Center15
14BICenterSite#0Business Intelligence Center14
15BICenterSite#0Business Intelligence Center15
16BLANKINTERNET#0Publishing Site15
17BLANKINTERNET#0Publishing Site14
18BLANKINTERNET#1Press Releases Site14
19BLANKINTERNET#1Press Releases Site15
20BLANKINTERNET#2Publishing Site with Workflow14
21BLANKINTERNET#2Publishing Site with Workflow15
22BLANKINTERNETCONTAINER#0Publishing Portal15
23BLANKINTERNETCONTAINER#0Publishing Portal14
24BLOG#0Blog15
25BLOG#0Blog14
26CENTRALADMIN#0Central Admin Site14
27CENTRALADMIN#0Central Admin Site15
28CMSPUBLISHING#0Publishing Site15
29CMSPUBLISHING#0Publishing Site14
30COMMUNITY#0Community Site15
31COMMUNITYPORTAL#0Community Portal15
32DEV#0Developer Site15
33EDISC#0eDiscovery Center15
34EDISC#1eDiscovery Case15
35ENTERWIKI#0Enterprise Wiki15
36ENTERWIKI#0Enterprise Wiki14
37GLOBAL#0Global template14
38GLOBAL#0Global template15
39GROUP#0Group15
40MPS#0Basic Meeting Workspace14
41MPS#0Basic Meeting Workspace15
42MPS#1Blank Meeting Workspace14
43MPS#1Blank Meeting Workspace15
44MPS#2Decision Meeting Workspace14
45MPS#2Decision Meeting Workspace15
46MPS#3Social Meeting Workspace14
47MPS#3Social Meeting Workspace15
48MPS#4Multipage Meeting Workspace15
49MPS#4Multipage Meeting Workspace14
50OFFILE#0(obsolete) Records Center14
51OFFILE#0(obsolete) Records Center15
52OFFILE#1Records Center14
53OFFILE#1Records Center15
54OSRV#0Shared Services Administration Site14
55OSRV#0Shared Services Administration Site15
56POINTPUBLISHINGHUB#0PointPublishing Hub15
57POINTPUBLISHINGPERSONAL#0PointPublishing Personal15
58POINTPUBLISHINGTOPIC#0PointPublishing Topic15
59POLICYCTR#0Compliance Policy Center15
60PPSMASite#0PerformancePoint14
61PPSMASite#0PerformancePoint15
62PRODUCTCATALOG#0Product Catalog15
63PROFILES#0Profiles15
64PROFILES#0Profiles14
65PROJECTSITE#0Project Site15
66PWA#0Project Web App Site14
67PWA#0Project Web App Site15
68PWS#0Microsoft Project Site14
69PWS#0Microsoft Project Site15
70SGS#0Group Work Site14
71SGS#0Group Work Site15
72SPS#0SharePoint Portal Server Site15
73SPS#0SharePoint Portal Server Site14
74SPSCOMMU#0Community area template14
75SPSCOMMU#0Community area template15
76SPSMSITE#0Personalization Site15
77SPSMSITE#0Personalization Site14
78SPSMSITEHOST#0My Site Host14
79SPSMSITEHOST#0My Site Host15
80SPSNEWS#0News Site14
81SPSNEWS#0News Site15
82SPSNHOME#0News Site14
83SPSNHOME#0News Site15
84SPSPERS#0SharePoint Portal Server Personal Space14
85SPSPERS#0SharePoint Portal Server Personal Space15
86SPSPERS#10Storage And Social SharePoint Portal Server Personal Space15
87SPSPERS#2Storage And Social SharePoint Portal Server Personal Space15
88SPSPERS#3Storage Only SharePoint Portal Server Personal Space15
89SPSPERS#4Social Only SharePoint Portal Server Personal Space15
90SPSPERS#5Empty SharePoint Portal Server Personal Space15
91SPSPERS#6Storage And Social SharePoint Portal Server Personal Space15
92SPSPERS#7Storage And Social SharePoint Portal Server Personal Space15
93SPSPERS#8Storage And Social SharePoint Portal Server Personal Space15
94SPSPERS#9Storage And Social SharePoint Portal Server Personal Space15
95SPSPORTAL#0Collaboration Portal14
96SPSPORTAL#0Collaboration Portal15
97SPSREPORTCENTER#0Report Center15
98SPSREPORTCENTER#0Report Center14
99SPSSITES#0Site Directory14
100SPSSITES#0Site Directory15
101SPSTOC#0Contents area Template15
102SPSTOC#0Contents area Template14
103SPSTOPIC#0Topic area template14
104SPSTOPIC#0Topic area template15
105SRCHCEN#0Enterprise Search Center14
106SRCHCEN#0Enterprise Search Center15
107SRCHCENTERFAST#0FAST Search Center14
108SRCHCENTERLITE#0Basic Search Center15
109SRCHCENTERLITE#0Basic Search Center14
110SRCHCENTERLITE#1Basic Search Center14
111SRCHCENTERLITE#1Basic Search Center15
112STS#0Team Site14
113STS#0Team Site15
114STS#1Blank Site15
115STS#1Blank Site14
116STS#2Document Workspace14
117STS#2Document Workspace15
118TBH#0In-Place Hold Policy Center15
119TENANTADMIN#0Tenant Admin Site14
120TENANTADMIN#0Tenant Admin Site15
121visprus#0Visio Process Repository15
122visprus#0Visio Process Repository14
123WIKI#0Wiki Site15
124WIKI#0Wiki Site14

 1 Comment

To provide the business solution, we use SharePoint list and they are never been designed to replace database tables. However, SharePoint solution keeps on growing and we hit the 5000 threshold limit. This 5000 limit was to mitigate the lock escalation within the SQL Server.
To avoid this, sometimes we increase the limit to some extent (say 10k or any value). But this have an adverse effect on performance of the server. Rather than doing this, we should create indexes on columns in list and provide that column as filter in the view of the list.
A major improvement has been done by Microsoft in this area by introducing a new timer job – “Large List column index management”. This timer job examines the views in the list which exceed the 2500 items and then determines the appropriate columns to create the index on. The choice of index column depends on filters of the view & other list view definitions as well.
A new setting in the list has been introduced “Automatic Index Management” which must be set to “Yes” for the timer job to include the list for auto indexing the columns. This settings can be accessed by navigating to List Settings --> Advanced Settings --> Automatic Index Management. Also, by default this setting is enabled for all the lists.
IndexManagement

This timer job runs per web application like that of List View Threshold. We can check whether this timer job is running for the web application by navigating to Central Admin --> Monitoring -->Timer Job Definitions --> Review Job Definitions
Auto Indexing List View in SharePoint 2016
We can also check through PowerShell whether the timer job is running on the web application or not as mentioned below:
$webApp = Get-WebApplication –Name “Web App Name”
Get-SPTimerJob –WebApplication $webApp –Identity “job-list-automatic-index-management”
PowerShell command to start the timer job is mentioned below:
Start-SPTimerJob –Identity “job-list-automatic-index-management”
Document Library Views
In document library, default view is to sort the folders before files. Hence, an improvement is done in out of the box Document Library views to  address the throttling related to sort ordering. Consider a scenario of large lists where it is necessary for SQL to scan the entire list to find all of the folders to meet the sort criteria.In SharePoint 2016 IT Preview, the folder first sort criteria is omitted.

  1 Comment

To improve provision performance of Site Collections, a mechanism has been designed in SharePoint 2016 which is known as Fast Site Collection Creation.
This feature leverages a copy operation using SPSite.Copy at the Content Database level thereby reducing Feature Activation overhead.
To address this feature, the crux is the enablement of the Site Master or master copy of the site collection for an enabled template which provides the source Site Collection when a request for creating new site collection is made.
First step is to enable the Fast Site Creation for a template and for that we need to execute the following the PowerShell Command:
SyntaxEnable-SPWebTemplateForSiteMaster -Template <TEMPLATENAME> -CompatibilityLevel 15
ExampleEnable-SPWebTemplateForSiteMaster -Template “STS#0″ -CompatibilityLevel 15
Note: As the above command is template specific, we need to execute the above command for all the templates which are needed to include in the process of Fast Site Collection creation.
Next step is to create a Site Master in any one Content Database.
Site Master is actually an empty site collection that preserves all the settings, from the template it was created with and which will be required for the creation of new site collection. Also, it preserves the features to activate on copy of the site collection, templates setting etc.
For creating a Site Master, we require a content database and a fast site creation enabled template.
We will fetch the content database where a site collection is already provisioned.
$contentDatabase = Get-SPContentDatabase –site http://vmsp2016:80/sites/demosite
Now, we will create a Site Master through the below PowerShell command:
SyntaxNew-SPSiteMaster -ContentDatabase <CONTENTDB> -Template <TEMPLATENAME>
ExampleNew-SPSiteMaster -ContentDatabase $contentDatabase -Template “STS#0″
FastSiteCreation_CreateNewSiteMaster
To confirm whether Site Master has been created in a particular content database we use commandGet-SPSiteMaster.
ExampleGet-SPSiteMaster $contentDatabase
FastSiteCreation_GetSiteMaster
For removing the Site Master from the content database we use command Remove-SPSiteMaster.
SyntaxRemove-SPSiteMaster $contentDatabase -SiteId <SiteId>
ExampleRemove-SPSiteMaster $contentDatabase -SiteId "cb1ac950-ae39-45d6-8286-bcc35cdaee24"
FastSiteCreation_RemoveSiteMaster
 In New-SPSite windows PowerShell cmdlet, a new parameter has been introduced named –CreateFromSiteMaster which leverages creation of new Site Collections through Fast Site Collection Creation.
SyntaxNew-SPSite <SITE> -Template <TEMPLATE> -ContentDatabase <CONTENTDB> -CompatibilityLevel 15 -CreateFromSiteMaster -OwnerAlias <OWNER>
ExampleNew-SPSite http://vmsp2016/sites/DemoFastSite -Template "STS#0" -ContentDatabase $contentDatabse -CompatibilityLevel 15 -CreateFromSiteMaster -OwnerAlias “corp\sp_farmAdmin”
FastSiteCreation_NewSiteCollectionFromSiteMaster
To check the time elapsed for the execution of above PowerShell cmdlet , re run the above command :
Measure-Command {New-SPSite http://vmsp2016/sites/DemoFastSite -Template "STS#0" -ContentDatabase $contentDatabse -CompatibilityLevel 15 -CreateFromSiteMaster -OwnerAlias “corp\sp_farmAdmin”}
Run normal command for SPSite creation in PowerShell to check time elapsed and then compare the time in both cases . You will find a difference in time in execution of the both the script :
Command for Site Creation without Fast Site Creation :
Measure-Command {New-SPSite http://vmsp2016/sites/DemoFastSite -Template "STS#0" -ContentDatabase $contentDatabse -CompatibilityLevel 15 -OwnerAlias “corp\sp_farmAdmin”}
Hence, with Fast Site Collection enabled, Site Collections are now created by copying at Content Database level. The Feature Activation which usually happens during the regular site collection creation does not occur in this case.
In case of feature based customization which perform special processing depending on the current site’s information, these will be incorrect. For mitigating this scenario, Features should be marked to be activated post-copy which will in turn execute their activation code post Site creation.
Refer below screenshot of central administration which depicts the Site Master and the brand new “DemoFastSite” Site Collection.
FastSiteCreation_CentralAdmin

 1 Comment

Refer MinRole Feature in SharePoint 2016 for learning about the feature in detail.
With MinRole feature, the SharePoint 2016 installation has an additional screen which allows users to define the role for the server.
Upon selection, the server has the specific role which can be managed through central administration. There are some changes in Central Administration regarding management of servers in the farm, services in the farm , services on servers.
Servers in the Farm 
On this page , the details about the servers joined in the farm are shown. It has two additional columns - Role & In Compliance
ServersInFarm_MinRole
In Role column , the role which is assigned to the server is displayed .
In Compliance column , whether the server configuration is in compliance with the its server role. In case, if it's not in compliance, a Fix  link will be provided to reconfigure the server automatically to meet the expected configuration of it's server role.
The Fix link is accessible to only members of Local Administrators group on the server which hosts the Central Administration.
Services in the Farm
In System Settings category of Central Administration a new link has added with name - Services in Farm which displays the state of each service in the farm . Three columns are present on this page namely : Auto Provision , Action and In Compliance.
ServicesInFarm_MinRole
Auto Provision : whether the service is enabled or disabled in the farm is displayed in this column. 'Yes' value is displayed under this column, then the service instances for this service will be started on the appropriate server in the farm and for "No" value it will be stopped.
Action : Depending on the type of service & whether service is enabled in the farm, this column has three values - Manage Service Application,Disable Auto Provision, and Enable Auto Provision
Manage Service ApplicationIndicates that the service is associated with the service application. Enabling or disabling of the service in the farm is done by its service application, when we create or delete the service application.
Disable Auto ProvisionDisables the service in the farm. Post clicking this link, the service instances will be stopped. Plus, appropriate services to be started on serves with roles that support that service and also stopped on others for the appropriate servers in the farm.
Enable Auto ProvisionEnables the service in the farm. Post clicking this link, service instances for this service will be started on the appropriate servers in the farm.
In Compliance : whether the service is in compliance on every server in the farm is displayed under this column. In case, if it's not in compliance on the server, a Fix  link will be provided to reconfigure the service instances of this service automatically to meet the expected configuration.
The Fix link is accessible to only members of Local Administrators group on the server which hosts the Central Administration.
Services on Server
All the service instances on a server are displayed on this page. Two additional things are added namely - In Compliance and Role of the server is displayed next to the server name.
ServicesOnServers_MinRole
This page is accessible all the members of the SharePoint Farm Administrators group as compared to earlier releases of SharePoint.
In Compliance : whether the service application is in compliance on this server is displayed under this column. In case, if it's not in compliance on this server, a Fix  link will be provided to reconfigure the service instance on this server automatically to meet the expected configuration.
The Fix link is accessible to only members of Local Administrators group on the server which hosts the UNRESOLVED_TOKEN_VAL.
Action : In this column, the Start or Stop link has been removed for servers which are managed by MinRole. Only visible link is Restart for service instances which are started on the server.
Start and Stop  links will be displayed for the servers that are assigned to Custom Role.