Hybrid

Hybrid Self-Service Site Creation now available for SharePoint Server 2013

@williambaer

At the center of collaboration is the site and modern Team Site in Office 365 are core to discovering and showcasing the most relevant and important information to you and your business. While SharePoint Online in Office 365 is an attractive alternative to on-premises business solutions with SharePoint. You might want to or need to deploy specific solutions in the cloud while still maintaining your on-premises investments or gradually move to cloud using a staged, workload-driven approach.

Hybrid scenarios with Office 365 and SharePoint on-premises allow you to bring the cloud to your business while bringing the business to the cloud. Today we’re pleased to announce the availability of hybrid self-service site creation for customers of SharePoint Server 2013.

New hybrid self-service site creation allows SharePoint administrators to direct users site creations requests to Office 365. This new hybrid capability allows administrators of SharePoint Server 2013 to have the option to enable their existing or new Self-Service Site Creation flow redirect users to SharePoint Online to create a Group (with an associated Team Site). SharePoint administrators can turn this feature on or off on the Self-service Site Collection Management page, accessible from SharePoint 2013 Central Administration.

This capability is included in the March 2017 Public Update available later today. Download the March 2017 Public Update for SharePoint Server 2013 at https://technet.microsoft.com/en-us/library/mt715807(v=office.16).aspx#BKMK_2013.

ssc1

New with the March 2017 Public Update for SharePoint Server 2013 is the option to Create Site Collections in SharePoint Online as illustrated above. When selecting this option any hybrid user that goes to the Self-service Site Creation page (/_layouts/15/scsignup.aspx) will be redirected to SharePoint Online Group creation, and will be able to create a Group and associated Team Site in the Cloud using the new modern group creation flow. Hybrid users are defined through inclusion in one or more audiences as configured when enabling the hybrid sites feature in SharePoint Server 2013. To learn more about hybrid sites and audiences see also https://support.office.com/article/5ff7e56a-7af2-4511-adec-1e043afe244e.

ssc2

For on-premises only users, or those excluded from the hybrid audience as described above, they will still be able to use the existing On-Premise Self-service Site Creation experience.

In addition to the configuration options available directly through SharePoint 2013 Central Administration, there will also be entry points to the configuration page through a one-time Central Administration alert box and from the Hybrid Picker in Office 365.

The cloud is no longer a luxury—it’s central to a mobile, modern workplace—and Office 365 brings the cloud to you, on your terms and across SharePoint and OneDrive we’re constantly working to help you take advantage of the power of Office 365. Kick start the journey to the cloud with hybrid self-service site creation today.

Resources

Learn more about hybrid scenarios across Office 365 at http://hybrid.office.com/.

Download the hybrid scenarios pocket guide with SharePoint and Office 365 at https://go.microsoft.com/fwlink/?linkid=842608.

Get more information on implementing hybrid scenarios with SharePoint and Office 365 at https://support.office.com/en-us/article/SharePoint-Hybrid-4c89a95a-a58c-4fc1-974a-389d4f195383.

FaQ

Q:  Will this feature be available to SharePoint Server 2016?

A:  Yes.  In H2 CY2017 we’ll make available hybrid self-service site creation to customers of SharePoint Server 2016.  In the near term you can continue to deploy the hybrid sites feature as an interim solution.  To learn more about hybrid sites see also https://support.office.com/en-us/article/SharePoint-hybrid-sites-and-search-5ff7e56a-7af2-4511-adec-1e043afe244e.

Standard
Hybrid

Simplifying Hybrid Configuration with the new Hybrid Scenario Picker

This month we continued to invest in simplifying the Office 365 and SharePoint 2013 hybrid experience with the new hybrid scenario picker available in the Office 365 Administration Center.

Overview

The hybrid scenario picker is designed to help customers get up and running quickly with in-market and future hybrid scenarios by providing quick access to hybrid scenarios such as OneDrive for Business and SharePoint Sites in addition to programmatically configuring hybrid prerequisites to include Server-to-Server (S2s) and OAuth connections.

H1

Scenarios

The current hybrid scenario picker experience provides access to two (2) core scenarios supported with SharePoint Server 2013 and the upcoming release of SharePoint Server 2016 Preview.

H2

SharePoint Hybrid OneDrive for Business – The Hybrid OneDrive option redirects your on-premises My Sites/OneDrive host to SharePoint Online OneDrive for Business. Once the wizard completes, any click of the OneDrive link from on-premises will redirect to OneDrive in the Cloud. The redirection is complete and users may begin moving or syncing files to the Cloud for storage, right away.  The wizard also configures a sever-to-server (S2S/OAuth) connection between SharePoint Server on-premises and SharePoint Online.

SharePoint Hybrid Site Features – The Hybrid SharePoint Sites option configures a server-to-server (S2S/OAuth) connection that allows you to join features of your team site to your SharePoint Online site collection in Office 365.  OneDrive for Business redirection is also configured when you click this option. Note that, depending on what hybrid features you want to use, there may be other steps that you need to complete when this wizard finishes.  For example, if you want to configure SharePoint Server search as a hybrid of SharePoint Online and SharePoint Server on-premises.

Prerequisites

To successfully configure a hybrid Office 365 and SharePoint 2013 experience using the hybrid scenario picker your SharePoint Server 2013 farm should have the August PU installed, ports 80 and 443 should be open for outbound connections, and users synchronized with Office 365 using Azure Active Directory Sync (AAD Sync).

Resources

To learn more about hybrid Office 365 and SharePoint scenarios see also https://technet.microsoft.com/en-us/library/jj838715.aspx.

Standard
Events, SharePoint

The SharePoint Journey

Microsoft Ignite will open the window to our vision, strategy, and future for SharePoint and provide a first look at most recent developments with SharePoint Server 2016.  From the business value for organizations looking to modernize their workplace and infrastructure to the technical value it will deliver to IT Professionals and Developers as well as new hybrid investments for those customers looking to enrich their existing investments with cloud innovation.

With Microsoft Ignite just around the corner, it’s time to look back and provide a little historical SharePoint information.

There have been 5SharePoint releases.

1997-1998

“Exchange and SharePoint become best friends”

Exchange Server works on a new information store (Web Store) to support document, web content, and e-mail management.

Codename Tahoe (the genesis of SharePoint Products and Technologies) advances Platinum introducing document management capabilities through WebDAV – Document Authoring and Versioning in addition to an improved search and indexing engine.

Platinum and Tahoe would represent a new, next generation messaging, collaboration, and document management platform.

Learn more about the evolution of SharePoint’s storage architecture at http://blogs.technet.com/b/wbaer/archive/2012/12/20/shredded-storage-and-the-evolution-of-sharepoint-s-storage-architecture.aspx.

1999

“A gem is found in nuggets”

Microsoft makes available a free download called Digital Dashboard Starter Kit introducing our first portal framework.   Solutions based on the starter kit enabled a user interface that could reside within Outlook through visual aids called “nuggets” that displayed information from a variety of content sources – “nuggets” would later take on the name Web Parts.

2000-2001

“A rolling milestone gathers no moss”

Tahoe reaches its beta 1 milestone in early 2000 and the Digital Dashboard Starter Kit is renamed the Digital Dashboard Resource Kit.  In mid-2000 Tahoe reaches another important milestone (Beta 2) with important changes to include a new user interface based on the Digital Dashboard Resource Kit creating a “true” portal user experience and subsequently retiring its codename in favor of SharePoint Portal Server 2001.

2001

“So it begins”

SharePoint Portal Server 2001 is released and creates a portal web site that allows users to share documents and search for information across the organization and enterprise, including SharePoint Team Services-based Web sites—all within one extensible portal interface. SharePoint Portal Server includes robust document management features that allow companies to incorporate business processes into their portal solution, but is limited by the Web Store and Digital Dashboard.

Web Store performance and scalability limited the expansion of SharePoint and Digital Dashboards were developed outside of the core development platform (Visual Studio) which limited the audience for extensibility.

In parallel the fledging portal market began to see unprecedented growth and overlap with the existing  Web Content Management (WCM) market which included CMS 2001.

As the growth and adoption of SharePoint Portal Server 2001 continued to rise in the then new portals market, SharePoint Team Services was released in conjunction with Office 2000 providing web-based team-centric collaboration capabilities.

Untitled

2002-2003

“Raise the roof”

The Web Store, the storage foundation for SharePoint Portal Server 2001 is replaced with SQL Server as the storage backend – on the other side of the topology Digital Dashboards were phased out in favor of ASP.NET improving overall scalability and portal capabilities at the expense of some document management capabilities, notably document profiles and workflow that were to be removed from the upcoming SharePoint release.

This was also a tumultuous time for SharePoint Team Services – but in the end the teams responsible for SharePoint Portal Server and SharePoint Team Services were converged.  In parallel to the changes affecting the technologies that powered SharePoint, CMS evolved as well leveraging ASP.NET on the frontend and delivered as CMS 2002.

In 2002 SharePoint Team Services officially was renamed as Windows SharePoint Services (WSS) and packaged in Windows Server 2003 as a Feature of the server – like SharePoint Portal Server it also provided a collaboration store and Web Part user interface build on ASP.NET.

In this same period SharePoint Portal Server (v2 at the time) was officially branded Microsoft Office SharePoint Portal Server 2003 (no longer referred to as codename Matrix), built on top of Windows SharePoint Services, but delivered independent of Windows Server 2003.

sharepointserver2003

This new release contained important scenarios such as search and indexing, but also ushered in personalization (people-centric collaboration), and enhanced taxonomy capabilities with improved overall manageability.

2004-2005

“Got SOX”?

SOX or Sarbanes-Oxley is introduced to the world and changes document and records management practices.  In response, the CMS and SharePoint Portal Server groups converge in 2004 and Web Parts built using ASP.NET were enabled for developers.  The extensibility era begins…

Near the end of 2005 ASP.NET v2 launches to include new native Web Parts and Windows Workflow Foundation becomes a native add-on to Windows Server that provides a new workflow service that other applications can build on.

2005

“Time to Groove”

In 2005, Grove was acquired, a peer-to-peer (P2P) team-based collaboration product that also includes synchronization of SharePoint sites.

2006-2007

“Who puts MOSS on a server anyway”

Microsoft Office SharePoint Server 2007 is born signifying a leap forward in experiences.

Microsoft Office SharePoint Server 2007 was defined as a Microsoft server product that creates a portal website that allows users to share documents and search for information across the organization and enterprise within one extensible portal interface.

SharePoint-2007

Windows SharePoint Services moves forward, but now as a standalone product versus Windows Server feature.

Groove Server 2007 is released with Microsoft Office SharePoint Server 2007, which provides the server software and tools that IT organizations can use to best deploy, manage, and integrate the Groove functionality that comes with the new Groove 2007.

2009

SharePoint Server 2010 is released, the first in two successive releases to drop the Microsoft Office branding.

SP2010

Groove is renamed SharePoint Workspace and released as Microsoft SharePoint Workspace 2010, the server management platform remains Groove Server and released as Groove Server 2010.

2012

10/11/12 the world is introduced to the most recent generation of SharePoint Products and Technologies, SharePoint 2013.

prev_EN_ShrPt_Srvr_PT_C_rgb

Personal sites, a staple of SharePoint people-centric collaboration are rebranded and paired with a new sync client powered by Groove as SkyDrive Pro, over the course of the SharePoint Server 2013 release these capabilities will become OneDrive for Business.

2015

The next generation of SharePoint is revealed as SharePoint Server 2016 – want to learn more…  Register now for Microsoft Ignite.

Standard
Administration, SharePoint

SharePoint and Read-Only Domain Controllers (RODC)

The question of read-only domain controllers (RODC) and SharePoint comes up frequently in conversation and on forums, whether not supported, and what potential issues can be expected if implemented with SharePoint.  This article will help address some of these questions.

FAQ

Q:  Can I use a read-only domain controller (RODC) with SharePoint 2013?

A:  Yes; however, there are limitations and constraints with certain operations (see below).  An implementation of RODC with SharePoint should assume a writable replication partner.  Introducing an RODC into an environment does impact applications that interact with AD DS to include SharePoint.  An RODC implementation should be thoroughly validated in an isolated non-production environment to understand constraints, limitations, performance, and any potential issues that may not exist with conventional, writable domain controllers.  In addition performance should be carefully monitored where connectivity between the RODC and partner replication server (writable domain controller) is limited.  In conclusion, an RODC implementation with SharePoint must include a writable partner replication server.

For additional information on RODC known issues see http://technet.microsoft.com/en-us/library/cc725669(v=ws.10).aspx.

For RODC placement considerations see http://technet.microsoft.com/en-us/library/cc732632(v=ws.10).aspx.

Q:  What is a RODC?

A:  An RODC is a revised version of a domain controller, introduced in Windows Server 2008 that hosts read-only partitions of AD DS.

RODC’s are most commonly implemented to address a variety of scenarios to include:

  • Placing domains controller where physical security cannot be guaranteed.
  • Domain controllers deployed with additional active server roles.
  • Domain controllers used in Extranet or application-facing roles.
  • Scenarios where low network bandwidth exists, I.e. branch office scenarios.

Q:  How does it work?

A:  Except for account passwords and other filtered attributes, an RODC holds the same user accounts and attributes that a writable domain controller holds. Clients, however, are not able to write changes directly to the RODC. Local applications that request Read access to the directory obtain access, whereas Lightweight Directory Access Protocol (LDAP) applications that perform a Write operation are referred to a writable domain controller in a hub site.

Q:  In what scenarios does SharePoint require a writable domain controller?

A:  There are a number of individual scenarios where a Write operation is required, some of which are base SharePoint functionality, and others workload dependent.

NOTE This is not an exhaustive list.

Installation/Configuration

SharePoint implements Service Connection Points that are created during installation and configuration.  Service Connection Points object represents one or more instances of a service that is available in a network.  For additional information on SharePoint and Service Connection Points see also http://blogs.technet.com/b/wbaer/archive/2010/04/28/service-connection-points-and-governance-with-sharepoint-server-2010.aspx.

Profile Synchronization

If you'll export property values from SharePoint to AD DS, the synchronization account must have Create Child Objects (this object and all descendants) and Write All Properties (this object and all descendants) permissions on the organizational unit (OU) with which you are synchronizing.

NOTE Replicate Directory Changes does not require a writable domain controller.

The Replicate Directory Changes permission enables the synchronization account to read AD DS objects and to discover AD DS objects that have been changed in the domain.  The Replicate Directory Changes permission allows an account to query for the changes in the directory. This permission does not allow an account to make any changes in the directory.

People Picker

People picker is unable to resolve users in a trusted forest if the only domain controller SharePoint can access is read-only.   For additional information on People Picker and RODC’s see also http://support.microsoft.com/kb/970612/en-us.

Managed Service Accounts

SharePoint 2010 introduced the concept of a managed service account with works in correlation with AD DS to enable automatic password management, which can better isolate these services from other services on the computer.  Registering a managed account in SharePoint, allows SharePoint to change the credentials for a managed account at a specified interval.

Incoming E-mail and Provisioning Contacts

Incoming E-mail implements the SharePoint Directory Management service to connect SharePoint sites to the user directory which allows users to create and manage e-mail distribution groups from SharePoint in addition to creating contacts in the user directory.  The SharePoint Directory Management service communicates with AD DS.

Publishing SharePoint on an Active Directory Service Connection Point

See also Installation/Configuration above.

Conclusion

In most cases an organization should not experience the issues listed above as a RODC implementation should include writable partner replication servers.

In Extranet and perimeter network scenarios, writer operations will fail, RODC is not a candidate in such scenarios; however, where connectivity exists between and RODC and a partner replication server, a write operation will return a referral to a writable domain controller – if connectivity to a writable domain controller is not available, then Write operations fail regardless of whether the application uses LDAP or ADSI.

For additional RODC planning and deployment information see also http://technet.microsoft.com/en-us/library/cc771744(v=WS.10).aspx.

Standard
Administration, SharePoint

Document Property Promotion and Demotion Overview and Considerations

Overview

Document Property Promotion and Demotion is a Feature in versions of SharePoint designed to synchronize specific metadata across documents and its parent List columns and/or fields.

Property promotion refers to the process of extracting values from properties of a document and writing those values to corresponding columns on the list or document library where the document is stored.

Property demotion is the same process in reverse. Values are read from list columns and written to document properties.

Document Parser

SharePoint works together with a document parser to provide automation of the process of promoting and demoting properties so if the value of a one or more document properties changes, those changes are automatically synchronized to the parent List object or conversely when the values of the parent List columns or fields in a list item change, those changes are synchronized to the subordinate document associated with the item.

Document Parsers represent a significant advantage to managing metadata associated with one or more documents stored in a SharePoint List or Library, by providing a programmatic approach to managing the metadata associated with a document removing the need to manually synchronize important document characteristics across a document and its parent container.  By default SharePoint Server 2013 provides document parsers (pluggable) for the following types:

docx      SharePoint.SPDocumentParser.OfficeParser

docm      SharePoint.SPDocumentParser.OfficeParser

dotx      SharePoint.SPDocumentParser.OfficeParser

dotm      SharePoint.SPDocumentParser.OfficeParser

pptx      SharePoint.SPDocumentParser.OfficeParser

pptm      SharePoint.SPDocumentParser.OfficeParser

potm      SharePoint.SPDocumentParser.OfficeParser

potx      SharePoint.SPDocumentParser.OfficeParser

ppsx      SharePoint.SPDocumentParser.OfficeParser

ppsm      SharePoint.SPDocumentParser.OfficeParser

xlsx      SharePoint.SPDocumentParser.OfficeParser

xlsb      SharePoint.SPDocumentParser.OfficeParser

xlsm      SharePoint.SPDocumentParser.OfficeParser

xltx      SharePoint.SPDocumentParser.OfficeParser

xltm      SharePoint.SPDocumentParser.OfficeParser

gif       SharePoint.SPDocumentParser.ImageParser

jpeg      SharePoint.SPDocumentParser.ImageParser

jpg       SharePoint.SPDocumentParser.ImageParser

jpe       SharePoint.SPDocumentParser.ImageParser

jfif      SharePoint.SPDocumentParser.ImageParser

bmp       SharePoint.SPDocumentParser.ImageParser

dib       SharePoint.SPDocumentParser.ImageParser

png       SharePoint.SPDocumentParser.ImageParser

tif       SharePoint.SPDocumentParser.ImageParser

tiff      SharePoint.SPDocumentParser.ImageParser

ico       SharePoint.SPDocumentParser.ImageParser

wdp       SharePoint.SPDocumentParser.ImageParser

hdp       SharePoint.SPDocumentParser.ImageParser

In addition to the parsers provided out of the box, SharePoint Server 2013 also provides an extensible document parsing infrastructure that allows developers to install custom parsers for types not included out of the box to enable the process of property promotion and demotion for those types.

Architecture

Flow

Document Promotion and Demotion is applied when the following conditions are met:

  • A document is uploaded to a SharePoint Document Library
  • List item fields associated with a document are modified
  • SPFile object properties are programmatically modified
  • A document is downloaded after the list item schema is modified (first run experience only)

Picture1

 

In each scenario SharePoint will attempt to determine whether or not a parser is associated with the document type and in the event a parser is associated with the document type, SharePoint invokes the parser and sends the parser the document and property bag object.  If a promotion scenario, the document parser will fill the property bag with the values that need to be synchronized with the parent list or in a demotion scenario, extracts values from the property bag that need to be written to the document.

Content Types

Referencing the illustration above, when using the document parser interface, document parsers can access the Content Type assigned to a document and subsequently store the content type in the document in addition to updating the Content Type definition stored in the document to match the version of the definition used by a List or Document Library.

Picture1

Validating Input / Output

For content supportive of Document Parsing an XML namespace designation is added to the document metadata, in some cases, the document itself.

Example 1

Create a new HTML type document “PropValidation.html”.

Copy into the document the following HTML:

<html>
    <head>
</head>
        <body>
            <span>Hello World</span>
        </body>
    </head>
</html>

Save as something.html

Upload to a SharePoint Document Library and open the document.

The following html will be added to the document

<html xmlns:mso="urn:schemas-microsoft-com:office:office" xmlns:msdt="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882">
    <head>
       
<!–[if gte mso 9]><xml>
<mso:CustomDocumentProperties>
<mso:IsMyDocuments msdt:dt="string">1</mso:IsMyDocuments>
</mso:CustomDocumentProperties>
</xml><![endif]–>

</head>
        <body>
            <span>Hello World</span>
        </body>
    </head>
</html>

Notice the UUID element.  The UUID is an XML namespace designation used as part of property demotion, everyone who saves an HTML-like file to a SharePoint document Library will have the same GUID inserted into the document.

Example 2

Create a new Microsoft Word Document (Document.docx).

Edit the document properties and specify a Title property of “Parse this field”.

image

Upload the document to a Document Library.  The Title column field associated with the document will reflect the document property (promotion).

image

Edit the Title property of Document.docx in the browser.

image

Download the document, the document property will be updated to reflect the value specified in the Title column field associated with the document (demotion).

image

 

Special Content Type Considerations

In some cases a document Content Type may not be associated with the Document Library where the document is uploaded (I.e. a user creates a document from a Document Template containing a Content Type or moved the document to a different Document Library.  In these scenarios, unlike the flow depicted in the image above, SharePoint will:

  • Invoke the Document Parser to demote the out of the box default List Content Type for the Document Library into the document if the document contains a property for a Content Type, but the document property is empty.  SharePoint will then promote the document properties to match columns in the out of the box List Content Type.
  • Leaves the document Content Type unchanged if the Document Library allows any Content Type and the document is assigned a Content Type not associated with the Document Library.  SharePoint will not promote the document Content Type, but will promote any document properties that match the Document Library columns.

NOTE

If a List is set to allow any Content Type, documents of any Content Type can be uploaded and their Content Types will not be overwritten which subsequently enables movement of documents between Libraries without the documents losing their metadata.

  • Invokes the Document Parser to demote the out of the box List Content Type for the Document Library into the document if the document is assigned a Content Type that is not associated with the Document Library and the Document Library does not allow any Content Types (see Note above).  SharePoint then promotes the document properties that match columns in the out of the box List Content Type and stores the document.

Enumerating Pluggable Parsers

Enumeration of Document Parsers lists all of the default (pluggable) parsers shipped with SharePoint.

To enumerate pluggable parsers refer to the following code sample.

C#

namespace EnumParsers
{
    using System;
    using System.Collections.Generic;
    using System.Globalization;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using Microsoft.SharePoint.Administration;

    public static class Program
    {
        private static void Main()
        {
            SPFarm objFarm = SPFarm.Local;
            SPWebService service = objFarm.Services.GetValue<SPWebService>(string.Empty);

            Dictionary<string, SPDocumentParser> objParser = service.PluggableParsers;
            Dictionary<string, SPDocumentParser>.KeyCollection keys = objParser.Keys;

            Console.WriteLine("Extension     Parser");
            Console.WriteLine("---------     -------");
            foreach (string key in keys)
            {
                Console.WriteLine(string.Format(CultureInfo.CurrentCulture, "{0, -7}       {1}", objParser[key].FileExtension, objParser[key].ProgId));
            }
        }
    }
}

Disabling the Document Parser

The Document Parser can be enabled and/or disabled on-premises by configuring the SPWeb.ParserEnabled value to True|False.

C#

namespace ParserEnabled
{
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using Microsoft.SharePoint;
    using Microsoft.SharePoint.Administration;

    class Program
    {
        static void Main(string[] args)
        {
            SPFarm oFarm = SPFarm.Local;
            SPSecurity.RunWithElevatedPrivileges(delegate()
            {
                SPWebApplication webApp = SPWebApplication.Lookup(new Uri("http://www.contoso.com"));

                foreach (SPSite site in webApp.Sites)
                {
                    foreach (SPWeb web in site.AllWebs)
                    {
                        if (web.ParserEnabled == true)
                        {
                            web.ParserEnabled = false;
                            web.Update();
                        }
                    }
                }
            });
        }
    }
}

Windows PowerShell

$web = Get-SPWeb www.contoso.com
$web.ParserEnabled = $false
$web.Update()

NOTE

Disabled Document Parsing should be carefully considered as it will also impact Features dependent on promotion and demotion.  For example, content type syndication and document information panels.

Disabling Document Parsing is effectively a one-way operation.  Disabling parsing disables the bidirectional synchronization of document properties, if disabled, and subsequently re-enabled and the properties are diverged while disabled, the original property values will be synchronized as contained within the property bag.

Similarly, Document Parsers also affect how content types are managed.  For example, when SharePoint invokes a parser to promote document properties (writes the properties to the parent List), the parser writes all document properties to an instance of the IParserPropertyBag interface and then determines which properties in the property bag match the columns on the parent List or Library.  If the property bag indicates that the document has an assigned content type, and the content type is supported by the document library, SharePoint promotes the document properties that match the columns that are included in the content type.

Associating Custom Parsers with File Types

In addition to enumeration and disabling document parsers, you can also add a document parser and associate with a specific parser.

The example below associates a custom document parser with an RTF extension.

C#

namespace AddParsers
{
    using System;
    using System.Collections.Generic;
    using System.Globalization;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using Microsoft.SharePoint.Administration;

    public static class Program
    {
        static void Main(string[] args)
        {
            SPWebService service = SPWebService.ContentService;
            Dictionary<string, SPDocumentParser> parsers = service.PluggableParsers;

            string extension = "rtf";
            string progID = parsers["docx"].ProgId;
            SPDocumentParser customParser = new SPDocumentParser(progID, extension);

            if (parsers.ContainsKey(extension))
            {
                parsers.Remove(extension);
                service.Update();
            }

            service.PluggableParsers.Add(extension, customParser);
            service.Update();
        }
    }
}

Purpose

Document parsing in SharePoint provides a number of benefits to the management of metadata around documents,

Metadata management is a powerful capability offered in SharePoint, document parsing simplifies the scenario of maintaining consistent metadata between documents and their parent libraries and parent libraries and their subordinate documents.

In SharePoint several Features leverage Document Parser logic to include:

Link Fixup

Link Fixup is used to indicate a Web Part property that contain one or more links to a document, if the document is moved or renamed, Link Fixup corrects the absolute Url to reflect the new location as a relative Url.  See also ManagedLinkAttribute.Fixup property.

Property Panels

Document Information Panels are forms that are displayed within the client application, and which contains fields for the document metadata. Document information panels enable users to enter important metadata about a file anytime they want, without having to leave the client application.  For example, a Document Information Panel may include custom properties to associated with a document, such as declaration information, specific terms, etc.

For files stored in document libraries, the document information is actually the columns of the content type assigned to that file. The document information panel displays a field for each content type property, or column, the user can edit.

For documents stored in SharePoint, these property values are promoted back to the document library, as column values, when the user updates them in the document. Similarly, if the user updates the content type column values in the SharePoint user interface, the new values are demoted into the document itself, as document properties.

Metadata Portability

See Special Content Type Considerations above.

Conclusion

Document Parsers in SharePoint provide an abstract method for users when managing metadata (document properties) across client and server.

Standard
Administration, SharePoint

Implementing Azure Blob Storage (ABS) with SQL Server 2014 and SharePoint 2013 [Updated]

Overview

NOTE (8/26/2014)

With any solution that externalizes the unstructured content with SharePoint you need to understand the limitations and optimal use of those solutions as documented at http://technet.microsoft.com/en-us/library/ff628583(v=office.15).aspx to include related latency and performance requirements.

With any application organizations face consistent key challenges such as high efficiency and business value, complex configuration, and low total cost of ownership.  Extending applications to the cloud in hybrid scenarios addresses many of these challenges, whether distributing SharePoint content across on-premises and Office 365 while leveraging search as a service (hybrid search) or externalizing data, extending it to the cloud with Remote Blob Storage or related technologies.

SQL Server 2014 and Windows Azure Blob Storage provide a unique solution that balances the needs of IT with those of the business – SQL Server Data Files in Windows Azure which allows you to create a database in SQL Server running in on-premises or in a virtual machine in Windows Azure with a dedicated storage location for your data in Windows Azure Blob Storage.

Picture1

This enhancement especially simplifies to move databases between machines by using detach and attach operations. In addition, it provides an alternative storage location for your database backup files by allowing you to restore from or to Windows Azure Storage. Therefore, it enables several hybrid solutions by providing several benefits for data virtualization, data movement, security and availability, and any easy low costs and maintenance for high-availability and elastic scaling.

Prerequisites

SQL Server 2014 on-premises or as a Windows Azure Virtual Machine

Storage Account and Container in Windows Azure

When using SQL Server Data Files in Windows Azure feature, you need to create a storage account and a container in Windows Azure, create a SQL Server credential, which includes information on the policy of the container as well as a Shared Access Signature that is necessary to access the container.

Getting Started

Create a Storage Account

To store files and data in the Blob, Table, Queue, and File services in Azure, you must create a storage account in the geographic region where you want to store the data.

For step by step instructions on how to create a Storage Account using the Windows Azure Management Portal see http://azure.microsoft.com/en-us/documentation/articles/storage-create-storage-account/.

image

Create a Container

All storage blobs reside in a container.   To create a container:

Sign in to the Management Portal.

Click Storage from the list of available options and select the Storage Account created in the previous steps.

Click CONTAINERS from the list of available options.

image

On the CONTAINERS dialog click + Add and specify the name for the new container.

image 

NOTE

Keep the default access level ‘Private’.

By default, the container is private and can be accessed only by the account owner. To allow public read access to the blobs in the container, but not the container properties and metadata, use the "Public Blob" option. To allow full public read access for the container and blobs, use the "Public Container" option.

The following steps assume that a Windows Azure Storage container has been created, and a policy has been created with read, write, list, rights. Creating a policy on a container generates a SAS key which is safe to keep unencrypted in memory and needed by SQL Server to access the blob files in the container.

Create a Credential

Creating a credential creates a record that contains the authentication information that is required to connect to a resource outside SQL Server. (such as Azure Blob Store).  To create a credential for Azure Blob Store requires a Windows Azure Store Container and a policy to allow read, write, and list rights.  Creating a policy generates a SAS key which SQL Server uses to access the blobs in the container.

Syntax

CREATE CRENDENTIAL [Container Url] — Specifies the name of the credential being created, I.e. the Windows Azure Storage Container

WITH IDENTITY = ‘SHARED ACCESS SIGNATURE’ — Specifies the name of the account to be used when connecting outside the server, I.e. when used with a Windows Azure Storage Container this value is always ‘SHARED ACCESS SIGNATURE’.  A Shared Access Signature is a URI that grants restricted access rights to containers, blobs, queues, and tables for a specific time interval (see example below).

For information on creating and using Shared Access Signatures see http://msdn.microsoft.com/en-us/library/azure/jj721951.aspx.

SECRET = ‘Secret’ — Specifies the secret required for outgoing authentication.   In this scenario the SECRET represents the Shared Access Signature associated with the policy created on the container (see example below).

Example

USE master
CREATE CREDENTIAL [https://sqlcloud.blob.core.windows.net/data%5D
WITH IDENTITY = 'SHARED ACCESS SIGNATURE',
SECRET = 'sr=c&se=2014-08-25T18%3B34%3B29Z&sp=rwl&sig=wJripFB9nq%2FrwlARE11TYS1OccKpFrpn6y3QuRS%2Fv4o%3D'

To view the credential created in the steps above use:

SELECT * FROM sys.credentials

The sys.credentials Security Catalog View returns one row for each stored credential which includes:

name = Name of the credential. Is unique in the server.

credential_identity = Name of the identity to use.

create_date = Time at which the credential was created.

modify_date = Time at which the credential was last modified.

target_type = Type of credential. Returns NULL for traditional credentials such as SHARED ACCESS SIGNATURE.

target_id = ID of the object that the credential is mapped to. Returns 0 for traditional credentials.

image

Create a Database

Creating a database does not differ significantly from creating a database in a traditional on-premises SQL Server storage scenario using the CREATE DATABASE statement.

Syntax

CREATE DATABASE [Name] — Is the name of the new database.

ON ( NAME = [Database Name], FILENAME = [Data File Path and File Name] ) — Specifies that the disk files used to store the data sections of the database, data files, are explicitly defined.

LOG ON ( Name = [Log Name], FILENAME = [Log File Path and File Name] ) Specifies that the disk files used to store the database log, log files, are explicitly defined.

Example

CREATE DATABASE WSS_Content
ON ( NAME = WSS_Content, FILENAME = 'https://sqlcloud.blob.core.windows.net/data/WSS_Content.mdf' )
LOG ON ( NAME = WSS_Content_Log, FILENAME = 'https://sqlcloud.blob.core.windows.net/data/WSS_Content.ldf' )

Validate Database Creation

To validate the database and related files were created successfully in the container select Connect in SQL Server Management Studio and choose Windows Azure from the list of available options.  Specify the name of the storage account associated with the container and provide the related access key to access the container.

image

Add Database(s) to SharePoint

To add the database use the Mount-SPContentDatabase cmdlet which attaches an existing content database to the farm.

Syntax

Mount-SPContentDatabase

-Name Specifies the existing content database to attach to the farm.

-DatabaseServer Specifies the name of the host server for the content database specified in the Name parameter.

-WebApplication Attaches the content database to the specified SharePoint web application.

Example

Mount-SPContentDatabase “WSS_Content” –DatabaseServer CP-SQ-01 –WebApplication http://sharepoint.wbaer.com.co

Summary

SQL Server Data Files in Windows Azure simplifies migration processes by moving one database at a time between machines on-premises as well as between on-premises and cloud environments without any application changes and provides near limitless storage without the overhead of managing storage.

Standard
Administration, SharePoint

ULS Viewing Like a Boss (ULS Viewer is now available)

I’m excited to announce we’ve published a new and improved version of the ULS Viewer.

About the Unified Logging Service

The Unified Logging Service (ULS) is the primary logging mechanism in SharePoint to make it easier to develop applications, expose in-depth information for debugging, and vehicle to isolate problems or threshold issues when they are encountered.  ULS writes events to the Trace Log and stores them in the file system.

For Developers ULS logs act as an extension of existing development tools as another debugging facility, in some scenarios, mitigating the need to attach a debugger to isolate an event.

For IT Professionals and support personnel ULS logs provide enough information and metadata to help determine the course of action necessary in resolution of an event and expedite support escalations where required.

The ULS Viewer provides a solution the enables presentation of ULS Log entries in a human readable format to aid in troubleshooting.

New ULS Viewer Features

Monitor multiple servers simultaneously, because we know you need to troubleshoot more than just a standalone server…

ULS1

Personalize the output with the option to edit formatting.

ULS2

Support for locating a specific log line within one or more ULS Logs based on a command line argument which enables other tools and solutions can leverage ULS Viewer as an external log viewer.

Example:

ulsviewer.exe –fileat:<logpath>@<time>

Time format is yyyy/MM/ddTHH:mm:ss.FF

Support for opening multiple ULS Log files in a single tab based on a command line argument which enables other tools and solutions can leverage ULS Viewer as an external log viewer.

Example:

ulsviewer <file1> <file2> … -combine

Optionally you can combine with "-fileat":

Example:

ulsviewer -fileat:<file1>@<time> <file2> … -combine

Fixed in ULS Viewer

Resolved updating defined filters while in paused state which provides IT Professionals and Developers an additional tool to isolate issues in high trace flow environments.

Fixed Find Again command missing matching entries.

Fixed issues with multi-line messages.

Applies more strict filter with RegEx when finding the uls log files in the log folder so that non-uls log files are not picked.

Download

To download the ULS Viewer visit http://www.microsoft.com/en-us/download/details.aspx?id=44020.

Standard