Microsoft SharePoint

Microsoft SharePoint is a web-based collaborative platform that integrates with Microsoft Office. Launched in 2001,[5] SharePoint is primarily sold as a document management and storage system, but the product is highly configurable and usage varies substantially among organizations.

Microsoft states that SharePoint has 190 million users across 200,000 customer organizations.[6]

Editions
There are various editions of SharePoint which have different functions.

SharePoint Server
SharePoint Server is provided to organizations that seek greater control over SharePoint's behavior or design. This product is installed on customers' IT infrastructure. It receives fewer frequent updates but has access to a wider set of features and customization capabilities. There are three editions of SharePoint Server: Standard, Enterprise, and Foundation (free) which was discontinued in 2016.[7] These servers may be provisioned as normal virtual/cloud servers or as hosted services.

SharePoint Standard
Microsoft SharePoint Standard builds on the Microsoft SharePoint Foundation in a few key product areas. SharePoint Standard licensing includes a CAL (client access license) component and a server fee. SharePoint Standard may also be licensed through a cloud model.
 * Sites: Audience targeting, governance tools, Secure store service, web analytics functionality.[8]
 * Communities: 'MySites' (personal profiles including skills management, and search tools), enterprise wikis, organization hierarchy browser, tags and notes.[9]
 * Content: Improved tooling and compliance for document & record management, managed metadata, word automation services, content type management.[10]
 * Search: Better search results, search customization abilities, mobile search, 'Did you mean?', OS search integration, Faceted Search, and metadata/relevancy/date/location-based refinement options.[11]
 * Composites: Pre-built workflow templates, Business Connectivity Services (BCS) profile pages.[12]

SharePoint Enterprise
Built upon SharePoint Standard, Microsoft SharePoint Enterprise features can be unlocked by providing an additional license key.

Extra features in SharePoint Enterprise include: SharePoint Enterprise licensing includes a CAL component and a server fee that must be purchased in addition to SharePoint Server licensing. SharePoint Enterprise may also be licensed through a cloud model.
 * Search thumbnails and previews, rich web indexing, better search results.
 * Business intelligence integration, dashboards, and business data surfacing.
 * PowerPivot and PerformancePoint.
 * Microsoft Office Access, Visio, Excel, and InfoPath Forms services.
 * SharePoint Enterprise Search extensions.[13]

SharePoint Online
Microsoft's hosted SharePoint is typically bundled in Microsoft Office 365 subscriptions, but can be purchased outright.[14] SharePoint Online has the advantage of not needing to maintain one's own server, but as a result lacks the customization options of a self-hosted installation of SharePoint.[15]

It is limited to a core set of collaboration, file hosting, and document and content management scenarios, and is updated on a frequent basis, but is typically comparable with SharePoint Enterprise.[16][17]Currently, additional capabilities include: Missing capabilities include: Microsoft lists changes in SharePoint Online on its Office Roadmap.
 * Support for SharePoint Framework extensions
 * New "Modern" (Responsive) SharePoint UX (partially included in 2016 - Feature Pack 1)
 * Yammer Integration & Office 365 Groups
 * Integration with Outlook Web App
 * Newer versions of Online Office Document Editor Tools
 * Removal of various file size/number limitations
 * Apps Concept
 * Some search & UI customizations
 * Many web publishing capabilities
 * Service Application administration options
 * Many customization/solution types will not run
 * No ability to read error (ULS) logs

Applications
SharePoint usage varies from organization to organization. The product encompasses a wide variety of capabilities, most of which require configuration and governance.[18]

The most common uses of the SharePoint include:

Enterprise content and document management
Main articles: Enterprise content management and document management

SharePoint allows for storage, retrieval, searching, archiving, tracking, management, and reporting on electronic documents and records. Many of the functions in this product are designed around various legal, information management, and process requirements in organizations. SharePoint also provides search and 'graph' functionality.[19] SharePoint's integration with Microsoft Windows and Microsoft Office allow forcollaborative real-time editing, and encrypted/information rights managed synchronization.

This capability is often used to replace an existing corporate file server, and is typically coupled with an enterprise content management policy.[20]

Intranet and social network
Main articles: Intranet portal and Social Network

A SharePoint intranet or intranet portal is a way to centralize access to enterprise information and applications. It is a tool that helps an organization manage its internal communications, applications and information more easily. Microsoft claims that this has organizational benefits such as increased employee engagement, centralizing process management, reducing new staff on-boarding costs, and providing the means to capture and share tacit knowledge (e.g. via tools such as wikis).

Collaborative software
SharePoint contains team collaboration groupware capabilities, including: project scheduling (integrated with Outlook and Project), social collaboration, shared mailboxes, and project related document storage and collaboration. Groupware in SharePoint is based around the concept of a "Team Site".

File hosting service (personal cloud)
Main articles: Personal Cloud and File hosting service

SharePoint Server hosts OneDrive for Business, which allows storage and synchronization of an individual's personal documents, as well as public/private file sharing of those documents. This is typically combined with other Microsoft Office Servers/Services such as Microsoft Exchange, to produce a "personal cloud",

WebDAV can be used to access files without using the web interface. However, Microsoft's implementation of WebDAV doesn't conform to the official WebDAV protocol and therefore isn't compliant to the WebDAV standard. For example, WebDAV applications have to support the language tagging functionality of the XML specification[21] which Microsoft's implementation doesn't. Only Windows XP to Windows 8 are supported.

Custom web applications
Main article: Software framework

SharePoint's custom development capabilities provide an additional layer of services that allow rapid prototyping of integrated (typically line-of-business) web applications.[22] SharePoint provides developers with integration into corporate directories and data sources through standards such as REST/OData/OAuth. Enterprise application developers use SharePoint's security and information management capabilities across a variety of development platforms and scenarios. SharePoint also contains an enterprise "app store" that has different types of external applications which are encapsulated and managed to access to resources such as corporate user data and document data.

Pages
SharePoint provides free-form pages which may be edited in-browser. These may be used to provide content to users, or to provide structure to the SharePoint environment.

Web parts and app parts
Web parts and app parts are components (also known as portlets) that can be inserted into Pages. They are used to display information from both SharePoint and third party applications.

Lists, libraries, content, and "Apps"
A SharePoint library stores and displays files and folders.

A SharePoint list stores and displays data items.

Each item in a library or list is a content item. Examples of content items include "Document" - which may have a "Name", "Contact" - with contact information fields, or "Sales Invoice" - with fields such as "Total" and "Customer ID".

Content Types are definitions (or types) of items. These definitions describe things like what metadata fields a Document, Contact, or Invoice may have. SharePoint allows you to create your own definitions based on the built-in ones. Some built in content types include: Contacts, Appointments, Documents, and Folders.

Some built-in content types such as 'contact' or 'appointment' allow the list to expose advanced features such as Microsoft Outlook or Project synchronization.[23]

In SharePoint 2013, in some locations, Lists and Libraries were renamed 'Apps' (despite being unrelated to the "SharePoint App Store"). In SharePoint 2016, some of these were renamed back to Lists and Libraries.

Sites
A SharePoint Site is a collection of pages, lists, libraries, apps, configurations, features, content types, and sub-sites. Examples of Site templates in SharePoint include: collaboration (team) sites, wiki sites, blank sites, and publishing sites.

Web-based configuration
SharePoint is primarily configured through a web browser. The web-based user interface provides most of the configuration capability of the product.

Depending on your permission level, the web interface can be used to:
 * Manipulate content structure, site structure, create/delete sites, modify navigation and security, or add/remove apps.
 * Enable or disable product features, upload custom designs/themes, or turn on integrations with other Office products.
 * Configure basic workflows, view usage analytics, manage metadata, configure search options, upload customizations, and set up integration.[24]

SharePoint Designer
Main article: SharePoint Designer

SharePoint Designer is a semi-deprecated product that provided 'advanced editing' capabilities for HTML/ASPX pages, but remains the primary method of editing SharePoint workflows.

A significant subset of HTML editing features were removed in Designer 2013, and the product is expected to be deprecated in 2016-7.[25]

Microsoft SharePoint's Server Features are configured either using PowerShell, or a Web UI called "Central Administration". Configuration of server farm settings (e.g. search crawl, web application services) can be handled through these central tools.

While Central Administration is limited to farm-wide settings (config DB), it provides access to tools such as the 'SharePoint Health Analyzer', a diagnostic health-checking tool.

In addition to PowerShell's farm configuration features, some limited tools are made available for administering or adjusting settings for sites or site collections in content databases.

A limited subset of these features are available by SharePoint's SaaS providers, including Microsoft.

Custom development
Customization may appear through:
 * The SharePoint Framework (SPFX) provides a development model based on typescript language. The technical stack is yeoman, node.js, webstack, gulp, npm. It embraces modern web technologies development method. It is the only supported way to customize the new modern experience user interface (UI). It is globally available since mid 2017. It allows web developer to step in Sharepoint development more easily.
 * The SharePoint "App Model" provides various types of external applications that offer the capability to show authenticated web-based applications through a variety of UI mechanisms. Apps may be either "SharePoint-hosted", or "Provider-hosted". Provider hosted apps may be developed using most back-end web technologies (e.g. ASP.net, NodeJS, PHP). Apps are served through a proxy in SharePoint, which requires some DNS/certificate manipulation in on-premises versions of SharePoint.
 * The SharePoint "Client Object Model" (available for JavaScript and .NET), and REST/SOAP APIs can be referenced from many environments, providing authenticated users access to a wide variety of SharePoint capabilities.[26]
 * "Sand-boxed" plugins can be uploaded by any end-user who has been granted permission. These are security-restricted, and can be governed at multiple levels (including resource consumption management). In multi-tenant cloud environments, these are the only customizations that are typically allowed.
 * Farm features are typically fully trusted code that need to be installed at a farm-level. These are considered deprecated for new development.
 * Service applications: It is possible to integrate directly into the SharePoint SOA bus, at a farm level.
 * Application-to-application integration with SharePoint.
 * Extensions to SharePoint functionality (e.g. custom workflow actions).
 * 'Web Parts' (also known as "portlets", "widgets", or "gadgets") that provide new functionality when added to a page.
 * Pages/sites or page/site templates.[26]

Server architecture
SharePoint Server can be scaled down to operate entirely from one developer machine, or scaled up to be managed across hundreds of machines.[27]

Farms
A SharePoint farm is a logical grouping of SharePoint servers that share common resources.[28] A farm typically operates stand-alone, but can also subscribe to functions from another farm, or provide functions to another farm. Each farm has its own central configuration database, which is managed through either a PowerShell interface, or a Central Administration website (which relies partly on PowerShell's infrastructure). Each server in the farm is able to directly interface with the central configuration database. Servers use this to configure services (e.g. IIS, windows features, database connections) to match the requirements of the farm, and to report server health issues, resource allocation issues, etc...

Web applications
Web applications (WAs) are top-level containers for content in a SharePoint farm. A web application is associated primarily with IIS configuration. A web application consists of a set of access mappings or URLs defined in the SharePoint central management console, which are replicated by SharePoint across every IIS Instance (e.g. Web Application Servers) configured in the farm.

Site collections
A site collection is a hierarchical group of 'SharePoint Sites'. Each web application must have at least one site collection. Site collections share common properties (detailed here), common subscriptions to service applications, and can be configured with unique host names.[29] A site collection may have a distinct content databases, or may share a content database with other site collections in the same web application.[27]

Service applications
Service applications provide granular pieces of SharePoint functionality to other web and service applications in the farm. Examples of service applications include the User Profile Sync service, and the Search Indexing service. A service application can be turned off, exist on one server, or be load-balanced across many servers in a farm. Service Applications are designed to have independent functionality and independent security scopes.[27]

Administration, security, compliance
SharePoint's architecture enables 'least-privileges' execution permission model.[30]

SharePoint Central Administration (the CA) is a web application that typically exists on a single server in the farm, however it is also able to be deployed for redundancy to multiple servers.[27] This application provides a complete centralized management interface for web & service applications in the SharePoint farm, including AD account management for web & service applications. In the event of the failure of the CA, Windows PowerShell is typically used on the CA server to reconfigure the farm.

The structure of the SharePoint platform enables multiple WAs to exist on a single farm. In a shared (cloud) hosting environment, owners of these WAs may require their own management console. The SharePoint 'Tenant Administration' (TA) is an optional web application used by web application owners to manage how their web application interacts with the shared resources in the farm.[27]

Compliance, standards and integration

 * SharePoint integrates with Microsoft Office.
 * SharePoint uses Microsoft's OpenXML document standard for integration with Microsoft Office. Document metadata is also stored using this format.
 * SharePoint provides various application programming interfaces (APIs: client-side, server-side, JavaScript) and REST, SOAP and OData-based interfaces.
 * SharePoint can be used to achieve compliance with many document retention, record management, document ID and discovery laws.[31]
 * SharePoint is compatible with CMIS - the Content Management Interoperability Standard, using Microsoft's CMIS Connector.
 * SharePoint by default produces valid XHTML 1.0 that is compliant with WCAG 2.0 accessibility standards.
 * SharePoint can use claims-based authentication, relying on SAML tokens for security assertions. SharePoint provides an open authentication plugin model.
 * SharePoint has support for XLIFF to support the localization of content in SharePoint.[32] Also added support for AppFabric.[33]

Origins
SharePoint evolved from projects codenamed "Office Server" and "Tahoe" during the Office XP development cycle.

"Office Server" evolved out of the FrontPage and Office Server Extensions and "Team Pages". It targeted simple, bottom-up collaboration.

"Tahoe", built on shared technology with Exchange and the “Digital Dashboard”, targeted top-down portals, search and document management. The searching and indexing capabilities of SharePoint came from the "Tahoe" feature set. The search and indexing features were a combination of the index and crawling features from the Microsoft Site Server family of products and from the query language of Microsoft Index Server.[37]

GAC-(Global Assembly Cache) is used to accommodate the shared assemblies that are specifically designated to be shared by applications executed on a system.

Versions
Successive versions (in chronological order):
 * Office Server Extensions
 * SharePoint Portal Server 2001
 * SharePoint Team Services
 * Windows SharePoint Services 2.0 (free license) and SharePoint Portal Server 2003 (commercial release)
 * Windows SharePoint Services 3.0 (free license) and Office SharePoint Server 2007 (commercial extension)[5]
 * SharePoint Foundation 2010 (free), SharePoint Server 2010 (commercial extension for Foundation), and SharePoint Enterprise 2010 (commercial extension for Server)
 * SharePoint Foundation 2013 (free), SharePoint Server 2013 (extension on top of Foundation), and SharePoint Enterprise 2013.
 * SharePoint Online (Plan 1), and SharePoint Online (Plan 2)
 * SharePoint Server 2016 and SharePoint Enterprise 2016.
 * SharePoint Server 2019 and SharePoint Enterprise 2019.

Notable changes in SharePoint 2010
Changes in end-user functionality added in the 2010 version of SharePoint include:
 * New UI with Fluent Ribbon, using wiki-pages rather than 'web-part pages' and offering multi-browser support.
 * New social profiles, and early social networking features
 * Central Administration rebuilt.
 * Restructure of "Shared Service Providers" - Introduction of "Service Applications" SOA model.
 * Sandboxed Solutions and a client-side object-model APIs for JavaScript, Silverlight, and .NET applications
 * Business Connectivity Services, Claims-based Authentication, and Windows PowerShell support

Notable changes in SharePoint 2013

 * Cross-browser drag & drop support for file uploads/changes, and Follow/Share buttons
 * OneDrive for Business (initially SkyDrive Pro) replaces MySites and Workspaces.
 * Updates to social network feature & new task aggregation tool.
 * Database caching, called Distributed Cache Service[38]
 * Content-aware switching, called Management
 * Audit center (service called eDiscovery)
 * Rebuilt and improved search capabilities
 * Removal of some analytics capabilities
 * UI: JSLink, MDS, theme packs. No WYSIWYG in SP Designer.

Notable changes in SharePoint 2016
Sources:[39][40]
 * Hybrid Improvements
 * Single Sites View
 * Unified Search
 * Search Sensitive Information in Hybrid Search
 * Unified UI (O365)
 * Performance, Scaling & Deployment Improvements
 * Search Scaling Capabilities
 * Site Collection Enhancement
 * Deterministic View Threshold – Removing 5000 Limit
 * Durable Links and Large Files Support
 * Deployment Improvements
 * MinRole
 * Zero Downtime Patching

Notable changes in SharePoint 2019
Sources:[41]
 * Modern sites and page layouts
 * Communication sites
 * Large File Support, Character Restrictions, and File/Folder Names