Microsoft SharePoint is a web application platform developed by Microsoft. First launched in 2001, SharePoint has historically been associated with web content management and document management, but recent versions have significantly broader capabilities.
SharePoint is a multi-purpose tool designed to cater to web requirements common for most organizations. By default, SharePoint provides a Microsoft Office-like interface and is heavily integrated with the Office suite of tools. The tools are designed for non-experts to leverage web tools and functions without having to understand the underlying technical platform. SharePoint's tools can facilitate intranet portals, document & file management, collaboration, social networks, extranets, websites, enterprise search, and business intelligence. It also has capabilities around system integration, process integration, and workflow automation.
SharePoint Foundation 2010 provides the core engine, services, and facilities for creating and using templates. This core functionality employs Microsoft programming and Web platforms, such as ASP.NET; it can be enhanced and extended by developing custom templates, Web Parts, and code.
SharePoint Server 2010 significantly extends the functionality and capability beyond the core services offered by SharePoint Foundation. There are different editions of SharePoint Server 2010; some of the service applications and functionality discussed in this paper will only be available in Enterprise Edition.
Learn SharePoint by Tekslate - Fastest growing sector in the industry. Explore Online "SharePoint Training" and course is aligned with industry needs & developed by industry veterans. Tekslate will turn you into a SharePoint Expert.
In SharePoint 2007 the versions we became very familiar with were:
For SharePoint 2010 it has changed to:
SharePoint 2010 has not changed from a Tier perspective. There are Web, Application, and Database tiers. What’s important is it to understand is how to architect those tiers. For SharePoint 2010 the Application tier has changed significantly as it is more sophisticated than what was available in SharePoint 2007. Some things that we will get into within this series are creating service farms and partitioned services.
SharePoint offers integration and ease-of-use benefits when used in conjunction with Microsoft Office Client applications. For example, documents stored in a SharePoint library can be directly opened from Microsoft Word, PowerPoint, or Excel. Also, from within Microsoft Outlook, users can subscribe to and display list items from a SharePoint site or RSS feeds provided by a SharePoint-powered blog. Users can also create blog entries directly from Word. This integration makes data stored in a SharePoint infrastructure more accessible to end-users.
SharePoint Designer 2010 is a client application that simplifies the creation of custom sites, templates, applications, and WebParts. SharePoint Workspace 2010 enables synchronization with SharePoint document libraries and provides the ability to access view, and edit documents when working offline.
Integrating with Other Microsoft Server Applications Installing a server farm for SharePoint Server 2010 requires the inclusion of certain infrastructure and services to fully exploit all SharePoint features and functionality. For example, Active Directory (AD) is a pre-requisite, because it provides authentication and authorization among the servers in a farm and can be used to import user profile information from AD into SharePoint. If your farm is heavily used, adding additional directory servers may be necessary to handle the authentication traffic.
When designing and maintaining a SharePoint solution, it is important to understand the various levels at which information is organized and contained. The containers within a SharePoint infrastructure are outlined in Table 1. The most granular individual items are located at the bottom of the table, and the level of aggregation increases as you progress to the top of the table. These containers provide physical and logical boundaries to consider while designing and deploying a SharePoint infrastructure.
SharePoint Farm | A set of servers that collectively provide the databases, applications, and Web services that comprise a SharePoint solution |
SharePoint Servers | Individual servers that run the operating system and application software required to perform roles or provide services for the SharePoint farm. Examples include a Web front-end server, an application server, and a database server |
IIS Application Pool | A container that is configured within the Internet Information Server (IIS) to constrain a defined set of content to operate within a defined set of system processes. Application Pools provide logical barriers that protect against the threat of a compromised site being used as a vector to attack other sites hosted on the same Webserver |
IIS Web Application | An IIS Web site with a unique domain name that is created and used by SharePoint products. Three Web applications must be configured: Central Administration, Shared Services Provider (SSP), and content. Additional Web applications may be useful for providing content isolation or for establishing distinct management or SLA boundaries within the farm. |
SharePoint Database | Individual SQL Server databases that are used to store information about or data from within a SharePoint farm. The core databases used by SharePoint are Configuration, Administration, SSP, Search, and Content. Depending on its architecture and needs, a farm may feature multiple SSP, Search, and Content databases |
Site Collection | A set of sites that feature the same owners and administrative settings (such as content types or quotas). A site collection features a top-level Web site and may also contain several sub-sites. Generally, all of the sites within a site collection share a common navigational design. One content database can host multiple site collections, but data from a given site collection must reside in the same content database. Similarly, one or more site collections may be configured within the same Web application |
Site | A set of Web pages stored within a site collection that delivers common features or content to users. Sites may be structured, such as a top-level portal site, or maybe ad hoc, such as team sites for collaboration. MOSS provides templates for several types of sites, such as blogs, wikis, team sites, and portals |
List | A means of collecting, storing, and organizing data within a site. Some common examples include document collections, calendars, and tasks |
Item | An individual data object within a list. Some common examples include document or image files, contacts, and calendar entries |
To summarize, SharePoint Server is a system with the following capabilities:
SharePoint products and technologies provide a scalable architecture that can be appropriate for several users or 100,000 employees of a large corporation. For websites outside the firewall, SharePoint Server 2010 for Internet Sites enables you to build scalable, flexible websites that you can maintain with the ease of maintaining a SharePoint site.
SharePoint integration with the Microsoft Office 2010 system is important. You can take advantage of this integration to build solutions in such a way that—regardless of whether the users are in an Office client application or in a web browser—the features of your application are discoverable and convenient for them.
You can find much information about SharePoint capabilities from the Microsoft SharePoint 2010 Product Overview. The capabilities include the following:
What are the varieties of applications that SharePoint developers build? This resembles asking the question about the varieties of applications that you can build on an operating system. Developers are creating uses for SharePoint that cover many scenarios. Here are several varieties of applications.
Although many examples of SharePoint applications fit into one of these categories, this list is definitely incomplete.
Changes in end-user functionality added in the latest version of SharePoint include:
Support for SharePoint Workspaces 2010
Major Server-side or Developer changes include:
Additional changes exist in paid/advanced versions of SharePoint 2010
SharePoint 2010 Architecture
The most common uses of SharePoint include:
A SharePoint 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. This has organizational benefits such as increased employee, 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)
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.[9]
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 a supply chain or business processes or to provide a shared collaboration environment.
Using the 'Publishing' feature, SharePoint can be used to manage larger public websites.
Configuration and customization Web-based configuration
SharePoint offers a fluent ribbon user-interface that should be familiar to users of Microsoft Office. This interface provides a general user interface for manipulating data, page editing ability, and the ability to add functionality to sites.
Broadly, the web-based interface provides the ability to:
Customizations may be surfaced via
Sites
A SharePoint Site is a collection of pages, 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 pre-defined templates that provide packaged functionality. Examples of Site templates in SharePoint include Blogs, My Sites, collaboration (team) sites, document workspaces, group worksites, and meeting workspaces.
Sites have navigation, themes/branding, custom permissions, workflows, and have the ability to be configured or customized in a number of ways. In order to achieve a greater degree of maintainability, sites typically inherit site-level settings from their parent sites.
Lists & libraries
Lists and libraries are stored in SharePoint Sites. A-List can be thought of as a collection of pieces of information — all of which (typically) have the same properties. 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.
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 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
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.
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 it.
Pages
SharePoint has three primary page content-types: Wiki pages, Web-part pages, and Publishing Pages. Unlike prior versions of SharePoint, the default page type is a 'Wiki Page', which enables free-form editing based on the ribbon toolbar. It is possible to insert Web-parts into any page type.
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.
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.
A SharePoint farm is a logical grouping of SharePoint servers that share common resources. A farm will typically operate stand-alone, but it can also subscribe to functionality from another farm, or provide the functionality to another farm. Each farm has its own central configuration database, which is managed through either a Power Shell interface or a Central Administration website (which relies partially on Power Shell’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 (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 which are 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 IIS
A site collection is used to provide a grouping of 'SharePoint Sites'. Each web application will typically have 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.
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 is designed to be as independent as possible, so 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.
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 Power Shell 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.
Important changes that you should be aware of:
Knowing what we now know, when scaling out these services we will take the following into consideration:
Some side notes:
Given this flexibility in service configuration you now can:
We will put these rules for Service Applications into action in the next part of this series.
In SharePoint 2007 we commonly had to configure the following services:
In many cases with SharePoint 2007 implementations services were not configured correctly. This resulted in poor performance and the inability to scale to meet business demands. Many people implementing SharePoint 2007 did not understand that both logical and physical architectures have to be aligned to how SharePoint services will be utilized. This will be a problem for many on the 2010 platform.
As discussed the service architecture has changed for SharePoint 2010 in many ways. Before we dive into all of the strategies of how services should be aligned in both the logical and physical architectures let us understand what the new services are.
Here is a list of services for SharePoint 2010. I found several pieces of information and I manually created this table with the information that I have.
Services | Description | Service Application | Cross Farm | Partitioning | Available On |
Access Database Services | New service that allows for viewing, editing, and interacting with MS Access through a browser. | Yes | No | Yes ** | SharePoint Server 2010 Enterprise |
Application Registry Service | Enables users to search and collaborate around business data. Provides backward compatibility to BDC service. | No | No | NA | SharePoint Foundation 2010 and up |
Business Data Connectivity | Access to the line of business systems. Service now supports writing to data services. | Yes | Yes | Yes | SharePoint Foundation 2010 and up |
Central Administration | Central Admin Site | No | No | NA | SharePoint Foundation 2010 and up |
Document Conversions Launcher Service | Schedules and initiates document conversions. | No | No | NA | SharePoint Foundation 2010 and up |
Document Conversions Load Balancer Service | Balances document conversions across the SharePoint farm. | No | No | NA | SharePoint Foundation 2010 and up |
Excel Calculation Services | Ability to interact with Excel files in a browser. New extended functionality. | Yes | No | No | SharePoint Server 2010 Enterprise |
Lotus Notes Connector | Index service connector to index Lotus Notes Domino Servers. | Yes | Yes | Yes | SharePoint Server 2010 Standard and up |
InfoPath Service | Supports hosting InfoPath forms in SharePoint. | No | Yes | Yes ** | SharePoint Server 2010 Enterprise |
Managed Metadata Service | New service that manages taxonomy structures and definitions. | Yes | Yes | Yes | SharePoint Server 2010 Standard and up |
Microsoft SharePoint Foundation Incoming E-mail | Email service. This will run on the machine where the web application is running. | No | No | NA | SharePoint Foundation 2010 and up |
Microsoft SharePoint Foundation Subscription Settings Services | New service used to track subscription IDs and settings for services that deployed in partition mode. | Yes | NA | NA | SharePoint Foundation 2010 and up |
Microsoft SharePoint Foundation User Code Service | New service runs code deployed as part of a sandbox solution and runs in restricted mode. Must be started on any machine in the farm that needs to run Sandbox code. | No | NA | NA | SharePoint Foundation 2010 and up |
Microsoft SharePoint Foundation Web Application | The service that runs the web application. | No | No | NA | SharePoint Foundation 2010 and up |
Microsoft SharePoint Foundation Workflow Timer Service | Responsible for running timer jobs. | No | No | NA | SharePoint Foundation 2010 and up |
PerformancePoint | BI Dashboard services. | Yes | No | NA | SharePoint Server 2010 Enterprise |
PowerPoint | New services that allow viewing, editing, and broadcasting PowerPoint in a browser. | Yes | No | Yes ** | SharePoint Server 2010 Enterprise |
Project | Host project server 2010. | Yes | No | Yes | Additional server product. |
Search Query and Site Settings Service | Service that performs a query across built indexes. | Yes | Yes | Yes* | SharePoint Server 2010 Standard and up |
Secure Store Service | The service provides SSO authentication. | Yes | Yes | Yes | SharePoint Server 2010 Standard and up |
SharePoint Foundation Search | Service that provides search capabilities for SharePoint Foundation Search only. For SharePoint Server 2010 Standard and Enterprise this service will perform an online Help search. | No | No | NA | SharePoint Foundation 2010 and up. |
SharePoint Server Search | Crawls content creates indexes and performs queries. Automatically configured. | Yes | Yes | Yes* | SharePoint Server 2010 Standard and up |
State Service | New services that provide temporary storage of user session data for SharePoint components. | Yes | No | Yes ** | SharePoint Server 2010 Standard and up |
Usage and Health Data Collection | Reporting services that provide farm-wide usage and health. | Yes | No | Yes | SharePoint Foundation 2010 and up |
User Profile | New and expanded social networking services and features. | Yes | Yes | Yes | SharePoint Server 2010 Standard and up |
User Profile Synchronization Service | Synchronizes user and group profile information that is stored in the SharePoint Server 2010 profile store with profile information that is stored in directory services across the enterprise. Works with AD, BDC, Novel LDAP, and Sun LDAP (more info). | Yes | Yes | Yes | SharePoint Server 2010 Standard and up |
Visio Graphics Service | Ability to view published Visio diagrams in a browser. | Yes | No | Yes ** | SharePoint Server 2010 Enterprise |
Web Analytics Data Processing Service | Captures data for analytics. | Yes | Yes | Yes | SharePoint Foundation 2010 and up |
Web Analytics Web Service | Web service interfaces for analytics. | Yes | Yes | Yes | SharePoint Foundation 2010 and up |
Word Automation Services | Service that performs automated bulk document conversions. | Yes | No | Yes ** | SharePoint Server 2010 Standard and Up |
* FAST Search cannot be partitioned. ** Supports partitioning but is not needed because there is no tenant data.
The biggest change in SharePoint 2010 is the flexibility you now have with the configuration and re-use of services. In the previous blog in this series, I identified several rules that you should know which will directly apply to how the logical architecture of SharePoint 2010 would be done. Here they are again:
In the following sections, I have identified some common scenarios for the configuration of the SharePoint 2010 logical topology based on these rules. It will not be possible in this blog to go over every permutation of these rules.
As well as best practices for the configuration of these services is still not very well known other than the information is being provided to us by Microsoft and our experiences with SharePoint 2007. However, you should be able to take these examples and use them as a way to start doing some early planning for the implementation of SharePoint 2010.
Side Note – If you are familiar with some of the logical topology diagrams that are provided by Microsoft they usually include Application Pools in those diagrams. I have decided to exclude that from these diagrams to make understanding the logical topology simple. Albeit understanding how the Applications Pools are incorporated into the topology is extremely important (security and fault tolerance). Usually, when architecting a SharePoint topology I start with understanding how I want to organize service to achieve the best possible performance, security, and redundancy. Once I have that organized, I will then use Application Pools to help attain those tenants.
This first topology depicts a standard SharePoint farm that has a single service group that is shared across all types of sites. Any time new sites are added within this farm, they will have access to all of the services that are available in the Default Application Group.
Advantages:
Disadvantages:
Recommendations:
Single Farm Multiple Service Groups
This second example is a reconfiguration of the previous farm; the difference is that multiple Application groups have been created. There is a Default Application Group which has some of the core Service Applications that can be used by all the sites. Some sites, however, will have dedicated services. You will want to have dedicated services for scalability, performance and security reasons and this will be covered later on from a physical perspective.
Observations:
Second, you will notice that Search has been centralized as part of the default application group and has been made a resource to all the sites. This is because it is a resource-intensive process and it is not likely
Advantages:
Disadvantages:
Recommendations:
In this farm configuration, we have broken it out and created several independent SharePoint farms that still use the central services farm.
Observations:
Advantages:
Disadvantages:
Recommendations:
This farm configuration introduces service partitioning into the previous diagram. It is recommended that all services be partitioned when they are initially set up, even if one partitioned is only used. It is not possible to change a service to allow for partitioning after it has been started in an un-partitioned state.
Observations:
Advantages:
Disadvantages:
Recommendations:
The last farm configuration I will introduce to you is the concept of a completely hosted farm. This is a very interesting scenario because you were not empowered to do this very well with SharePoint 2007. Some SharePoint service companies provided SharePoint hosted solutions but given what was available in SharePoint 2007. Now with SharePoint 2010 and Microsoft Azure those limitations have been removed.
Observations:
Advantages:
Disadvantages:
Recommendations:
Microsoft SharePoint Server 2010 introduces both new databases and databases whose distribution and purpose differ over previous versions of Microsoft SharePoint Products and Technologies. This post details the changes in the Microsoft SharePoint Server 2010 database layer. This section provides information about Shared Service Applications that have a database dependency and is not an exhaustive list of all Shared Service Applications available in Microsoft SharePoint Server 2010. At the time of publication, this is not 100% complete.
Usage and Health Data Collection Service
The Usage and Health Data Collection Service collects and logs SharePoint health indicators and usage metrics for analysis and reporting purposes.
Logging Database
The logging database is the Microsoft SQL Server, MSDE, or WMSDE database that stores health monitoring and usage data temporarily, and can be used for reporting and diagnostics.
Search Service
Administration Database
The Administration Database is what the Shared Services Provider database was in Microsoft Office SharePoint Server 2007 and is instantiated once per Search application aligning with the Administration Component. The Administration Database hosts the Search application configuration and access control list (ACL) for the content crawl.
Property Database
The Property Database stores crawled properties associated with the crawled data to include properties, history data, crawl queues, etc.
Crawl Database
The Crawl Databases host the crawled data and drives crawl - the Crawl Database is what the Search database was in Microsoft Office SharePoint Server 2007.
Web Analytics Service
The Web Analytics Service provides rich analytics giving you insights into your web traffic, search, and SharePoint assets enabling you to better understand your user and deployments. With SharePoint Web Analytics, you’ll be able to tailor the system to meet the needs of your users, optimize how they use and discover information, and create targeted content for your sites.
Staging Database
The Web Analytics Staging database is the working database that stores un-aggregated Fact Data, asset metadata, queued batch data, and provides short term retention of this content.
Reporting Database
The Web Analytics Reporting database stores aggregated standard report tables, Fact Data aggregated by Site Group, date, and asset metadata in addition to diagnostics information.
Configuration Database
The configuration database handles all administration of the deployment, directing requests to the appropriate database, and managing load-balancing for the back-end databases. When a front-end Web server receives a request for a page in a particular site, it checks the configuration database to determine which content database holds the site's data. You can run the
configuration database on the same computer as a Web server or on a remote computer running Microsoft SQL Server. The configuration database concepts are relatively unchanged in Microsoft SharePoint Server 2010. In Microsoft Office SharePoint Server 2007 and Windows SharePoint Services 3.0, the Sitemap table was stored in the configuration database which provided information about which content database contains data for a given site. When Windows SharePoint Services or Microsoft Office SharePoint Server 2007 received the URL of a request, settings in this database determine which content database contains data for the site. In Microsoft SharePoint Server 2010 and Windows SharePoint Services 4.0, the Sitemap is serialized to disk to improve performance and reduce database callback operations that could result in contention when serving requests on large server farm deployments.
Content Database
The back-end content database stores all site content, including site documents or files in document libraries, list data, and Web Part properties, as well as user names and rights. All the data for a specific site resides in one content database on only one computer.
Central Administration Content Database
See also Content Database.
Shared Services Provider (SSP)
The Shared Services Provider layer is obsolete in Microsoft SharePoint Server 2010 replaced with Shared Services Applications, to understand changes in database design associated with the Shared Services Provider database, see also Search and People in this section.
NOTE
A Microsoft Office SharePoint Server 2007 Shared Services Provider when upgraded will result in a new Search, User Profile, Excel Services, Application Registry Backwards Compatibility, and Managed Metadata Service shared services applications. New databases will be created as required to support the upgrade and Web application settings are preserved through establishing a proxy for each service application.
User Profile Service
The User Profile Service encompasses user-profiles and My Sites.
Profile Database
The user profile database is a flexible database that stores and manages users and associated information. The database allows for a flexible schema that supports multiple data types. It can be queried and it can be updated. For example, a company can define the attributes of an employee record in the profile database. Then for each record, an employee object will be created and saved. This information is now usable in a number of ways, such as in WebParts, in the Web service, or to create rule-based groups or roles.
Synchronization Database
The synchronization database is used to store configuration and staging data for synchronization of profile data from external sources such as Active Directory. Social Tagging DatabaseThe social tagging database stores social tagging records and their respective Url which are coupled with information from the profile and taxonomy databases at the front-end layer at execution/request. This database is used to store social tags and notes created by users. Managed Metadata ServiceThe Managed Metadata Service publishes a term store and, optionally, a set of content types. Term Store database in which managed metadata is stored. The Web front end public APIs interact with the data layer to get or set data. The data layer talks to the term store directly if the shared service is local to the farm, or it talks to a backend Web service on an application server if the shared service is not local. The backend Web service then interacts with the data layer on the application server to get to the term store. State ServiceThe State Service maintains temporary state information for InfoPath Forms Services. State DatabaseThe state database maintains temporary state information for InfoPath Forms Services. Business Data Connectivity ServiceThe Business Database Connectivity Service provides a means for storing, securing, and administering external content types and related objects. Database
Stores external content types and related objects.
Secure Store Service
The Secure Store Service replaces the Single Sign-On Service in previous versions of the product.
This service provides storage and mapping of credentials such as account names and passwords. Portal site-based applications can retrieve information from third-party applications and back-end systems such as Enterprise Resource Planning (ERP) and Customer Relations Management (CRM) systems.
The use of Secure Store functionality enables users to authenticate without asking the user multiple times for the credentials needed to authenticate in that system.
Store Database
Provides storage and mapping of credentials such as account names and passwords.
Standard SharePoint Server 2010 Enterprise edition installation, out of the box you’ll have the following databases:
Application_Registry_Service_DB_GUID Bdc_Service_DB_GUID Managed Metadata Service_GUID PerformancePoint Service Application_GUID Search_Service_Application_CrawlStoreDB_GUID Search_Service_Application_DB Search_Service_Application_PropertyStoreDB_GUID Secure_Store_Service_DB_GUID SharePoint_AdminContent_GUID SharePoint_Config StateService_GUID User Profile Service Application_ProfileDB_GUID User Profile Service Application_SocialDB_GUID User Profile Service Application_SyncDB_GUID WebAnalyticsServiceApplication_ReportingDB_GUID WebAnalyticsServiceApplication_StagingDB_GUID WordAutomationServices_GUID WSS_Content WSS_Logging
Web Parts as you know are Reusable components that can be deployed and added to many different SharePoint site pages. In this post, we will talk about custom and Out-of-box web parts in SharePoint 2010. In SharePoint 2010 we can create two kinds of custom Web Parts:
Technically, a Visual web part in SharePoint 2010 is an ascx User Control that is hosted inside a standard asp.net web part. If you notice that the web part class does not now inherit from Microsoft.SharePoint.webpartpages.webparts or System.Web.UI.WebControls.WebParts instead it inherits from the UserControl namespace.
WebPart Packaging - Visual Studio 2010 package and deploy web parts when you press Clt + F5. It has a packaging and deployment processor which will create the needed solution package for your web part and will deploy it in your SharePoint site. You can then add the web parts on any SharePoint site page from the web part gallery.
In SharePoint 2010 we can create two types of web parts.
General-Purpose Web Parts
General-Purpose Web Parts | ||
Web Part Category | Example Web Parts | Description |
Lists and Libraries | XSLT List View Web Part | Use to create custom list views with SharePoint Designer 2010. Lists and libraries use XSL style sheets to control output. |
None | Data Form Web Part | Use this Web Part in SharePoint Designer 2010 to create custom queries and displays. |
Content Rollup | Content Query Web Part*, Summary Links Web Part* | Query content from anywhere in the current site and customize its presentation. |
Content Rollup | RSS Viewer Web Part*, XML Viewer Web Part | Use an RSS feed or XML file as the data source and customize its presentation. |
Media and Content | Silver light Web Part | Display a Silver light application with this Web Part. |
*Requires SharePoint Server 2010 Standard license Specialized Web Parts
Specialized Web Parts | ||
Web Part Category | Example Web Parts | Description |
Business Data* | Business Lists | Display items from external data sources, such as databases. |
People** | Note Board | Allow users to add comments to any page. |
Navigation** | Tag Cloud | Displays a tag cloud for tags found in the current site. |
Search** | Refinement Panel, Search Core Results | Use to create custom search experiences. |
*Requires SharePoint Server 2010 Enterprise license; **Requires SharePoint Server 2010 Standard license
Sandbox solution is a new feature introduced in SharePoint 2010. It's a secured wrapper around web parts and other elements with limitations. There is no thumb rule that every web part in SharePoint 2010 belongs to Sandbox Solution. But it's recommended to develop web parts with Sandbox solution. It allows administrators to monitor the solutions and control as required. SharePoint Site Collection administrators can view the resource utilization of each solution and can block if it consumes too many resources. Usually, when sites working slow, developers complain the server is slow whereas site/server administrators blame on Developer code/solutions. Now Microsoft put a Full Stop to that.
Technically speaking SharePoint solutions run in separate worker processes and not in w3wp.exe. So It doesn't require IIS Reset or Application Pool Recycling. Without disturbing the SharePoint site, Sandbox solutions can be deployed. Only thing while deploying a new version of Sandbox solution over the existing solution, SharePoint will display No Solution found an error in Sandbox Web parts on the page. However, within second’s sandbox solutions getting deployed and it'll start working. In SharePoint 2007, only farm administrators can install/deploy developer solutions. But now site collection administrators can deploy solutions with a web-based interface. This reduces the dependency on the Farm Administrator and improves rapid deployment.
Sandbox Processes Here the processes required for Sandbox solutions.
Sandbox Limitations As I said before, Sandbox is a secured wrapper and it has restrictions on code to run in the SharePoint environment. Few Key limitations that developers should know are listed below.
SharePoint Online which is a SharePoint environment provided by Microsoft to manage SharePoint Sites on the internet accepts only Sandbox solutions. Because SharePoint Online sites are Windows Servers at Microsoft Datacenters, Microsoft won't allow GAC deployment or file system access. In the future Sandbox, the solution will give more features for developers.
Sandbox Solutions support the following SharePoint item types:
Building a sandboxed solution is the same as building a farm solution. The best way to understand the development process is to walk through the creation of a sandboxed solution using Visual Studio 2010.
Start by opening Visual Studio 2010. You can see in Figure 2 that Visual Studio 2010 has a number of SharePoint project templates built-in, and there are templates for both Visual Basic and C#.
You want to build a sandboxed web part solution, so you must start with an empty SharePoint project.
The Visual Web Part project template isn't supported in the solution gallery because it contains a .ascx control that must be deployed to the _layouts directory and deploying controls isn't allowed in any directory in sandboxed solutions. For this example, name the solution SimpleWebPart.
After you click OK, the project wizard will ask you what type of project you're creating and for a path, as shown in Figure 3.
The default is to deploy as a sandboxed solution. It's important that you set the correct path to the local site in this dialog because Visual Studio will use this path to deploy and debug the solution.
If you're unsure, it's a good practice to click the validate button to ensure that Visual Studio can connect to the site using the path you set. There's also a link at the bottom of the dialog to learn more about sandboxed solutions from the help system.
After you click Finish, you'll have an empty SharePoint sandboxed solution project. You could press F5 and deploy the project at this point, but you wouldn't see much because it contains no features.
Take a minute to understand what's included in the project, shown in Figure 4.
The empty project contains the standard references you would expect in a .Net project and a reference to Microsoft.SharePoint.dll and Microsoft.SharePoint.Security.dll.
There's a node called Features that's empty and will contain the features of your solution package. There's a package node that contains the SharePoint package information. And finally, there's a default strong name key file called key.snk.
Add a Web Part to the project by choosing Add New Item from the project context menu or by pressing ctrl-shift-A (if you're using the C# profile). Be sure to choose the Web Part item, which Figures 5 shows, not the Visual Web Part item. The default name of WebPart1 is fine for this walkthrough. Click Add to add the Web Part feature to your package. At this point, Visual Studio creates a feature called Feature1, shown in Figure 6, that contains your Web Part.
It also adds a node for the Web Part that contains the SharePoint Elements.xml file, code file, and the .webpart file. Visual Studio contains a visual package designer that will allow you to manage and organize your SharePoint package without editing any xml files.
You can now add the code for your Web Part in the WebPart1.cs file. This code, shown in Listing 1is exactly like code that you may have written in the past for farm-level solutions.
The code displays a list of the lists that are in the current site in a listbox control. Accessing list data and creating lists are two of the most common tasks for a SharePoint solution, and in a sandboxed solution you can work with lists and libraries just as you would in a farm solution. One of the only restrictions is that you can only access lists and libraries within the site collection where the sandboxed solution is installed.
Once you've written the code, you can easily deploy and debug the code from the Visual Studio IDE. Just like most other Visual Studio projects, pressing F5 will compile and debug the project.
In any SharePoint project, there are a number of steps that occur when you press F5--you can see an example list of SharePoint lists in Figure 7. The steps that Visual Studio takes are extensible and you can control all aspects of the build process.
By default, Visual Studio compiles the project then builds the SharePoint solution package file—this is a standard, compressed cabinet (cab) SharePoint package file with a .wsp extension. Next, because this is a sandboxed solution, Visual Studio will upload the solution package to the Solution Gallery and activate it.
It will attach the debugger to the sandboxed solution worker process, SPUCWorkerProcess.exe, and start the web site in the browser. You may be prompted for confirmation to attach to the worker process, as shown in Figure 8.
Debugging this SharePoint code is exactly the same as any other Visual Studio project. Simply set a breakpoint on the line of code.
The best part about developing sandboxed solutions is that you don't have to learn a new way of doing things. If you've developed in .Net in the past, SharePoint development shouldn't have much of a learning curve, and you'll be up to speed developing on SharePoint, Microsoft's fastest-growing development platform.
SharePoint 2010 Sandboxed solutions run as an isolated and monitored process. In case unusual operation like the one above is detected the process will finalize its execution.
Monitoring Sandbox Solutions
As Site Collection administrator you can monitor the resource usage of SandBox solutions via Site Actions > Site Settings > Galleries > Solutions. The simple dashboard shows how much resources have been consumed by deployed solutions. To learn more about SharePoint resource usage configuration
Interested in SandBox Solutions? Stay tuned as I will be posting some interesting samples in the next few posts.
Figure 1: Sandbox upload process in SharePoint 2010
Once the WSP package is loaded successfully, don't forget to "activate" it before using it on a page. Otherwise, the Web Part will not show up in the Web Part Gallery and it will take a while before the problem is identified.
When you compile a SharePoint solution, it deploys to the SharePoint server and a debugger attaches to debug it. The process used to debug the solution depends on the setting of the Sandboxed Solution property: sandboxed solution or farm solution.
Farm Solutions Farm solutions, which are hosted in the IIS worker process (W3WP.exe), run code that can affect the whole farm. When you debug a SharePoint project whose Sandboxed Solution property is set to "farm solution," the system's IIS application pool recycles before SharePoint retracts or deploys the feature so as to release any files locked by the IIS worker process. Only the IIS application pool serving the SharePoint project's site URL is recycled.
Sandboxed Solutions Sandboxed solutions, which are hosted in the SharePoint user code solution worker process (SPUCWorkerProcess.exe), run code that can only affect the site collection of the solution. Because sandboxed solutions do not run in the IIS worker process, neither the IIS application pool nor the IIS server must restart. Visual Studio attaches the debugger to the SPUCWorkerProcess process that the SPUserCodeV4 service in SharePoint automatically triggers and controls. It is not necessary for the SPUCWorkerProcess process to recycle to load the latest version of the solution.
Either Type of Solution With either solution type, Visual Studio also attaches the debugger to the browser to enable client-side script debugging. Visual Studio uses the script debugging engine for this purpose. To enable script debugging, you must change the default browser settings when you are prompted.
Visual Studio attaches the debugger only to the W3WP or SPUCWorkerProcess processes running the current site. Visual Studio also attaches the managed COM Plus and workflow debugging engines.
Sandboxed solutions are going to change the way that people think about SharePoint as a development platform. You're going to see an explosion in the number of SharePoint solutions that developers create and deploy.
You'll also see the number of community solutions grow as companies running SharePoint trust that the solutions users are running won't compromise the health of the SharePoint farm.
This article only touches on some of the basics of what you can do in sandboxed solutions from the developer perspective. If you're a farm administrator, the sandbox provides new ways for you to monitor and validate solutions that are running in the farm.
I encourage you to install SharePoint 2010 and read the SDK, and as you build solutions using SharePoint 2010, you should always start with a sandboxed solution. Sandboxed solutions provide a quick and safe development model for creating rich agile business solutions
For an in-depth understanding of SharePoint click on
You liked the article?
Like: 0
Vote for difficulty
Current difficulty (Avg): Medium
TekSlate is the best online training provider in delivering world-class IT skills to individuals and corporates from all parts of the globe. We are proven experts in accumulating every need of an IT skills upgrade aspirant and have delivered excellent services. We aim to bring you all the essentials to learn and master new technologies in the market with our articles, blogs, and videos. Build your career success with us, enhancing most in-demand skills in the market.