SharePoint

SharePoint is a web application framework and platform developed by Microsoft. First launched in 2001, SharePoint integrates intranet, content management and document management, but recent versions have broader capabilities.

SharePoint comprises a multipurpose set of Web technologies backed by a common technical infrastructure. By default, SharePoint has a Microsoft Office-like interface, and it is closely integrated with the Office suite. The web tools are intended for non-technical users. SharePoint can provide intranet portals, document & file management, collaboration, social networks, extranets, websites, enterprise search, and business intelligence. It also has system integration, process integration, and workflow automation capabilities.

Enterprise application software (e.g. ERP or CRM packages) often provide some SharePoint integration capability, and SharePoint also incorporates a complete development stack based on web technologies and standards-based APIs. As an application platform, SharePoint provides central management, governance, and security controls for implementation of these requirements. The SharePoint platform integrates directly into IIS - enabling bulk management, scaling, and provisioning of servers, as is often required by large organizations or cloud hosting providers.

According to Microsoft, SharePoint is used by 78% of Fortune 500 companies. Between 2006 and 2011, Microsoft sold over 36.5 million user licenses. Microsoft has two versions of SharePoint available at no cost, but it sells premium editions with additional functionality, and provides a cloud service edition as part of their Office 365 platform (previously BPOS). The product is also sold through a cloud model by many third-party vendors.

The SharePoint Wheel
In Microsoft advertising material the "SharePoint Wheel" describes what they consider the SharePoint's tools can facilitate inside organizations. The wheel refers to six outcomes:


 * Sites: A site is a contextual work environment. Once SharePoint is configured, these sites can be created without any requirement for specialized knowledge. A context for a site may be organization-wide, or it may be specific to an individual team or group.
 * Communities: A community is a place for group communication. Communities can occur around any context, and typically develop around either shared knowledge, or shared activities (such as collaboration).
 * Content: SharePoint provides document management and storage for work items.
 * Search: Look for relevant communities, content, people, or sites: search is based on keywords, refinement, and content analysis.
 * Insights: Information from any part of the organization can be surfaced inside useful contexts, providing information that can improve effectiveness.
 * Composites: SharePoint enables no-code integration of data, documents and processes to provide composite applications ("mash-ups" based on internal data).

Applications
The most common uses of SharePoint include:

Intranet portals
A SharePoint intranet or intranet portal is a way to centralize access to enterprise information and applications on a corporate network. It is a tool that helps a company manage its data, 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/blogs).

Enterprise content and document management
SharePoint is often used to store and track electronic documents or images of paper documents. It is usually also capable of keeping track of the different versions created by different users. In addition to being a platform for digital record management systems that meet government and industry compliance standards, SharePoint also provides the benefit of a central location for storing and collaborating on documents, which can significantly reduce emails and duplicated work in an organization.

Extranet portal
SharePoint can be used to provide password-protected, web-facing access to people outside an organization. Organizations often use functionality like this to integrate third parties into supply chain or business processes, or to provide a shared collaboration environment.

SharePoint provides an Alternative Access Mapping, or AAM, which allows the same 'site' to be surfaced via a number of different URLs, each URL can have its own authentication technology allowing the same site to be both an intranet on one network while an extranet to outside users.

Internet sites
Using the 'Publishing' features, SharePoint can be used to manage larger public websites.

Software framework
SharePoint is built upon the ASP.Net framework and provides an additional layer of services and codebase to greatly reduce the amount of custom development required to provide a working application. It may also be referred to as a web application framework.

Web-based configuration
SharePoint offers a ribbon user-interface similar to that in Microsoft Office 2007 and later. This interface provides a general user interface for manipulating data, editing pages, and adding functionality to sites. Users can:


 * manipulate content in lists and libraries, pages and sites.
 * copy, create, delete, or rename lists and libraries, pages, sites and web-parts
 * manage user permissions, and view document/page version histories
 * manage definitions and properties of lists and libraries, pages, sites and web-parts and many others

SharePoint Designer

 * The SharePoint 'Client Object Model' (available for JavaScript, Silverlight, and .NET), and REST/SOAP APIs can be referenced from within a custom page, feature, or in SharePoint 2013 from a SharePoint-hosted or Provider-hosted app.
 * '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.
 * Service applications — It is possible to integrate directly into the SharePoint SOA bus, at a farm level.

Customizations may be surfaced via
 * 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

Sites
A SharePoint Site is a collection of pages, site templates, lists, and libraries configured for the purpose of achieving an express goal. A site may contain sub-sites, and those sites may contain further sub-sites. Typically, sites need to be created from scratch, but sites can also be created according to packaged functionality. Examples of Site templates in SharePoint include: blogs, collaboration (team) sites, documents, and meetings.

Lists and libraries
Lists and libraries have the same properties. This could be considered similar to a database table. For instance, you can have a list of links called "my links", where each item has a URL, a name, and a description. Lists have many features such as workflows, item-level or list-level permission, version history tracking, multiple content-types, external data sources and many more features. Some of these features depend on the version of SharePoint that is installed.

SharePoint supports the creation of multiple views of a list or library, including Gantt chart and calendar views. Views can define columns to show rankings, aggregation and establish criteria for inclusion in the list. Views can be personal or distributed to a group of users.

From 2007 on, lists also support item (document or record) level security permissions, where each list item can have a unique permission level. This feature can cause problems in viewing large lists and Microsoft recommends that for 2007 a list have no more than 1,000 unique permissions defined, and in 2010 that limit is 5,000.

A Library is a list where each item in the list refers to a file that is stored in SharePoint. Libraries have all the same behaviors as lists, but because libraries contain files, they have extra features. One of these is the ability to be opened and modified through a compatible WebDAV client (e.g. Windows Explorer).

Microsoft SharePoint comes with some pre-defined list and library definitions. These include: Announcement Lists, Blogs, Contacts, Discussion Boards, Document Libraries, External Content (BCS) lists, Pages, Surveys, and Tasks.

Some of these pre-defined lists have additional integration. For example, lists based on the contact content-type, and lists created using the calendar list template can be synced directly with Microsoft Outlook.

Web-parts
Web-parts are sections that can be inserted into Pages in SharePoint sites. These sections are UI Widgets whose typical uses are
 * Displaying content defined in the web-part's settings (e.g. custom content or an iframe)
 * Displaying items from Lists/Libraries (this can be customizable in SharePoint Designer, using XSLT & CAML)
 * Providing access to features in the SharePoint platform (e.g. Search)
 * Providing a user interface into other products (e.g. Microsoft Reporting Services, Microsoft Office PerformancePoint Server or a variety of third party systems).

Web-parts based on completely custom code can be built in Microsoft Visual Studio 2010 and uploaded by end-users to SharePoint as packaged, sandboxed features. Due to the prevalence of SharePoint, third-party vendors often provide SharePoint web-parts for intranet sites.

Web-parts also support connections to other web-parts on the page, providing the ability to construct relatively complex pages without the need to build additional code.

SharePoint web-parts were formerly implemented separately from ASP.NET web-parts, but as of SharePoint 2007, SharePoint's web-parts are now based on ASP.NET's.

Pages
SharePoint provides three primary page content-types: In newer SharePoint versions, the default page type is wiki page, which enables free-form editing access from the ribbon toolbar. Users can also insert web-parts into any page type.
 * Wiki page
 * Web-part page
 * Publishing pages

Search
SharePoint Foundation contains a limited search engine. Microsoft produces a free product called Microsoft Search Server Express to complement SharePoint Foundation. Different SharePoint search versions offer different features, including the ability to search within documents and — except in cloud environments — across external data sources (such as file systems). You can read a SharePoint Enterprise Search features deep comparison.

Compliance, standards and integration

 * SharePoint integrates with Microsoft Office 2007 and 2010. "Microsoft Office SharePoint Server 2007" (MOSS 2007), the previous version of SharePoint, was considered part of the Microsoft Office Suite.
 * SharePoint uses Microsoft's OpenXML document standard for integration with Microsoft Office. Document metadata is also stored using this format.
 * SharePoint 2010 provides various application programming interfaces (APIs: client-side, server-side, JavaScript) and REST, SOAP and OData based interfaces.
 * SharePoint 2010 can be used to achieve compliance with many document retention, record management, document ID and discovery laws.
 * SharePoint 2007 and 2010 are compatible with CMIS - the Content Management Interoperability Standard, using Microsoft's CMIS Connector.
 * SharePoint 2010 by default produces valid XHTML 1.0 that is compliant with WCAG 2.0 AA accessibility standards.
 * SharePoint 2010's server control output is primarily driven by XSLT and can be modified using the proprietary SharePoint Designer tool, or with any text editor.
 * SharePoint 2010 can use claims-based authentication, relying on SAML tokens for security assertions. SharePoint provides an open authentication plugin model.
 * SharePoint 2013 adds support for XLIFF to support the localization of content in SharePoint. Also added support for AppFabric.

Architecture
The SharePoint platform is a flexible, n-tier service-oriented architecture (SOA). It can be scaled down to operate entirely from one machine, or scaled up to be managed across hundreds of machines.

Farms
A SharePoint farm is a logical grouping of SharePoint servers that share common resources. 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, and are typically the interface through which a user interacts with SharePoint. A web application is associated with a set of access mappings or URLs defined in the SharePoint central management console, then automatically replicated into the IIS configuration of every server configured in the farm. WAs are typically independent of each other, have their own application pools, and can be restarted independently in Internet Information Services.

Site collections
A site collection is used to provide a grouping of 'SharePoint Sites'. Each web application typically has at least one site collection. Site collections may be associated with their own content databases, or they may share a content database with other site collections in the same web application. A site collection may contain one or more sites. A site collection is a group of sites that are functionally, navigationally, and administratively related to one another.

Service applications
Service Applications (SAs) 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. An SA can be turned off, exist on one server, or be load-balanced across many servers in a farm. SAs are designed to be as independent as possible, so that — depending on the SA — restarting an SA, experiencing an SA failure, or misconfiguring an SA may not necessarily prevent the farm from operating. Each SA enabled on the farm typically has its own process that requires a certain amount of RAM to operate, and typically also has its own configuration database and Active Directory (AD) service account. SharePoint Server and SharePoint Enterprise include all the SharePoint Foundation SAs, as well as additional SAs.

Administration and security
The modular nature of SharePoint's architecture enables a secure 'least-privileges' execution permission best practice.

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. 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.

SharePoint editions
A summary of the SharePoint versions can be found here.

Microsoft SharePoint Foundation
The underlying technology for all SharePoint sites. SharePoint Foundation is available for free on-premises deployment and was called Windows SharePoint Services in previous versions. You can use SharePoint Foundation to quickly create many types of sites where you can collaborate on Web pages, documents, lists, calendars, and data. It is dependent on various hardware/software requirements, including a proper license for Microsoft Windows Server. It contains much of the core functionality and architecture drawn on by the commercial version of the package. Downloading SharePoint Foundation 2010 requires a mandatory registration, but this has been omitted for the 2013 version.

Microsoft Search Server Express
Microsoft's Search Server Express is a free, modified distribution of SharePoint 2010 Foundation. The installer for this package installs SharePoint 2010 Foundation, plus a limited subset of enterprise search features and enterprise document management features typically only found in paid versions of SharePoint.

Microsoft SharePoint Standard
Microsoft SharePoint Standard builds on the Microsoft SharePoint Foundation in a few key product areas.

Sites: Audience targeting, governance tools, Secure store service, web analytics functionality

Communities: 'MySites' (personal profiles including skills management, and search tools), enterprise wikis, organization hierarchy browser, tags and notes

Content: Improved tooling and compliance for document & record management, managed metadata, word automation services, content type management

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

Composites:  Pre-built workflow templates, BCS profile pages

''Note: some search features are available in Search Server Express - a no-cost add-in for Microsoft SharePoint Foundation. ''

SharePoint Standard licensing includes a CAL (client access license) component and a server fee. SharePoint Standard may also be licensed through a cloud model.

It is possible to upgrade a SharePoint farm from Foundation to Standard. The product is equivalent to Microsoft Office SharePoint Server (MOSS) 2007.

Microsoft SharePoint Enterprise
Built upon SharePoint Standard, Microsoft SharePoint Enterprise features can be unlocked simply by providing an additional license key. The product is the equivalent to MOSS 2007 Enterprise.

Extra features in SharePoint Enterprise includes:
 * Search thumbnails and previews, rich web indexing, better search results
 * BI Integration, Dashboards, and Business Data surfacing
 * PowerPivot
 * PerformancePoint
 * Microsoft Office Access, Visio, Excel, and InfoPath Forms services
 * SharePoint Enterprise Search extensions

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.

===Office 365 - SharePoint Online=== A cloud-based service, hosted by Microsoft, for businesses of all sizes. Instead of installing and deploying SharePoint Server on premises, any business can now simply subscribe to a service offering such as Office 365 and their employees can use SharePoint Online for creating sites to share documents and information with colleagues, partners, and customers. Microsoft Office 365- SharePoint has inserted many new features in its latest Version.

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.

Versions
Successive versions (in chronological order):


 * Microsoft SharePoint Portal Server 2001
 * Microsoft SharePoint Team Services (2002)
 * Windows SharePoint Services 2.0 (free license) - Microsoft SharePoint Portal Server 2003 (commercial release)
 * Windows SharePoint Services 3.0 (free license) - plus Microsoft Office SharePoint Server 2007 (commercial extension)
 * Microsoft SharePoint Foundation 2010 (free) - plus Microsoft SharePoint Server 2010 (commercial extension for Foundation), and SharePoint Enterprise 2010 (commercial extension for Server)
 * Microsoft SharePoint Foundation 2013 (free) - plus Microsoft SharePoint Server 2013 (extension on top of Foundation) SharePoint 2013 has been available to Microsoft volume licensees and TechNet and MSDN subscribers since late 2012

A next SharePoint release is announced for 2015, but Microsoft will go "Cloud First". Jeff Teper, the Corporate Vice President of Office Service and Servers group at Microsoft, noted: "Our server releases will include some, but not all, of the experience you saw today due to the computational power and integrated aspects that only come with Office 365."

Changes in SharePoint Foundation 2010
Changes in end-user functionality added in the 2010 version of SharePoint include:


 * "v4" User Interface, featuring a Fluent Ribbon
 * Business Connectivity Services - providing interfaces for interacting with business data
 * new governance and workflow functionality
 * use of wiki-pages rather than web-part pages in default templates
 * social profiles and social networking features
 * support for SharePoint Workspaces 2010
 * a re-developed client editor (SharePoint Designer)
 * multi-browser support: Internet Explorer 7, Mozilla Firefox 3.6 (Limited), and (WebKit-based) Apple Safari 4.04 (Limited). Support for Internet Explorer 6 has not been tested, according to Microsoft.

Major server-side or developer changes include:


 * new central administration UI1
 * replacement of "Shared Service Providers" with "Service Applications"
 * jQuery & Silverlight support, plus more theming flexibility
 * new client-side object-model APIs for JavaScript, Silverlight, and .NET applications
 * claims-based authentication
 * support for Windows PowerShell
 * sandboxing

Additional changes exist in paid/advanced versions of SharePoint 2010.

Changes in SharePoint 2013

 * database caching, called Cache Service
 * content-aware switching, called Management

System requirements
The following are the various requirements for deploying Microsoft SharePoint 2010.

Web browser support
Supported web browsers:
 * Internet Explorer 8 or later: supported
 * Google Chrome (latest version): supported
 * Mozilla Firefox 19 or later: supported
 * Safari (latest version): supported

IE 6 is not supported for SharePoint 2010 or later, but works with SharePoint up to 2007. IE 8 and below has issues with SharePoint 2013 and below. Some functionality in SharePoint 2013 requires ActiveX controls, which restricts browser versions that are not Internet Explorer with 32 bit. Internet Explorer 10 must be in desktop mode.

Open source equivalents
Some potential SharePoint users arrive from open source world and initially struggle to understand SharePoint in terms of related open source software they used previously. "SharePoint" refers to a large stack of Microsoft software, not a single program, and does not translate to a single system in open source world. However many parts of the stack have equivalents. The low-level frameworks map to web libraries such as Django and Rails while the higher level platforms (e.g. CMS, wikis, forums) map to systems using those libraries such as django-cms, django-wiki, django-blogs and similar Rails-using libraries. Other open source tools produce only high level aspects of the stack such as standalone wiki (e.g. MediaWiki), CMS (e.g. Drupal, Alfresco), or social network (e.g. Diaspora) software.