You are hereFeed aggregator / Categories / SharePoint

SharePoint


White paper update: Configuring Kerberos Authentication for Microsoft SharePoint 2010 Products

SharePoint IT Pro Documentation - Wed, 09/01/2010 - 16:29

In July we published a white paper on how to configure Kerberos authentication end-to-end in several SQL Server and SharePoint 2010 business intelligence environments. The overview of this white paper is in the TechNet article, here.

I write to inform you of the following updates to the same white paper.

  • Additional information regarding Kerberos Constrained Delegation and Protocol Transitioning.
  • Additional information regarding Kerberos Token Size.
  • Additional instructions to grant SQLRS service account access to content databases.
  • Comments regarding claims authentication and C2WTS

To download the white paper, click here OR paste http://go.microsoft.com/fwlink/?LinkID=196600 into your browser address bar.

Cheers,

-Norm

Categories: SharePoint

New governance content – white papers and check out the model!

SharePoint IT Pro Documentation - Wed, 09/01/2010 - 14:08

Hi! Governance is a critical topic for SharePoint Server 2010, and I know you’ve all been waiting for us to get content out there about it. We have some progress to share from our work this summer.

What’s new in governance content:

  • Governance model – describes the three areas of governance for SharePoint Server 2010 and highlights some questions to ask while determining your governance approach.

 

More white papers and articles are in progress. Check the Resource Center for the latest information.

- Samantha Robertson

Categories: SharePoint

Announcing the updates resource center for SharePoint 2010 Products

SharePoint IT Pro Documentation - Tue, 08/24/2010 - 05:40

We've created an updates resource center Web site that features articles about software updates for a SharePoint Foundation 2010 or a SharePoint Server 2010 environment.

In addition to posting the lastest information about cumulative updates and service packs, the updates resource center links to up-to-date articles about the nature of software updates and our recommended approaches for mitigating downtime when you install an update on farm servers.

All these approaches are based on the software update deployment cycle, which is shown in the following illustration.

Visit the Updates for SharePoint 2010 Products site to learn more about the software update deployment cycle and explore other relevant topics. 

Categories: SharePoint

SharePoint 2010 Products: Upgrade and the Fabulous 40 Application Templates

SharePoint IT Pro Documentation - Wed, 08/18/2010 - 08:23

Many of you have used the "Fabulous 40 templates" that were created for Windows SharePoint Services 3.0. Some of these templates were created as site admin templates (.stp files) and some as server admin templates (.wsp files). Microsoft is not releasing new versions of these templates for SharePoint 2010 Products. Also, .stp  files are deprecated and can't be used to create new sites when you upgrade to SharePoint Server 2010 or SharePoint Foundation 2010.

So, what do you do when you want to upgrade?

Sites based on these templates should upgrade, but you'll want to try out your upgrade in a test environment before you upgrade your production environment so that you can catch any potential issues. Definitely use the pre-upgrade checker to identify any issues (some people have seen problems with custom workflows or CAML-based views in the templates). However, after upgrade, you won't be able to use STP files to create new templates.

Type of template Can I upgrade sites based on this template? Will I be able to use the template after upgrade? Site admin (.stp file or site template) Yes No Server admin (.wsp file or solution package) Yes* Yes*

*There are issues with a few of the .wsp files after upgrade. In particular, after upgrading, some customers are unable to create new sites based on the following templates: Absence Request and Vacation Schedule Management, Call Center, Help Desk, IT Team Workspace, Knowledge Base, and Physical Asset Tracking and Management. If you have trouble using any of these templates, you can post an issue in the SharePoint 2010 – Setup, Upgrade, Administration and Operation TechNet Forum at http://social.technet.microsoft.com/Forums/en-US/sharepoint2010setup/threads, or contact Microsoft Product Support.

So, what do you do if you're using an .stp file and you want to continue using it after upgrade? You can convert the .stp file to a .wsp file manually. To do this, in Windows SharePoint Services 3.0 or Office SharePoint Server 2007, create a site based on the template, and then upgrade the site to 2010. Then, follow this procedure:

  1. On the Site Actions menu in the site, click Site Settings.
  2. On the Site Settings page, under Site Actions, click Save site as Template.
  3. On the Save as Template page, enter a file name and Template name and then click OK.
  4. The site template is saved as a WSP file to the Solutions Gallery for that site collection and you can create new sites based on that solution.

If you can't or don't want to do that, you can look to the partner community for upgraded templates. Khalil over on TechSolutions has already converted some of these templates to 2010 for you. Take a look at http://techsolutions.net/Blog/tabid/65/EntryId/17/Fab-40-Templates-for-MOSS-2010.aspx.

Categories: SharePoint

Three integrated business intelligence solutions

SharePoint IT Pro Documentation - Fri, 08/06/2010 - 05:10

The following is a summary of recently published business intelligence solutions and the corresponding solution download link. The solutions include Microsoft Office, SharePoint 2010, and SQL Server 2008.

Self-Service Analytics: Sales Solution

This business intelligence (BI) solution scenario describes the steps that employees of the fictional company Contoso take as they analyze sales and promotions data and share that analysis with others in the company. The document that is available from the link below provides step-by-step guidance, and the accompanying sample data lets you follow along with the document. To download, click here.

BI Reporting: Reports and Subscriptions Scenario

This business intelligence (BI) scenario describes the steps some employees of the fictional company, Contoso, take as they use Report Builder 3.0, SharePoint Server 2010, and Microsoft Excel 2010 to provide data analysis, rich report design, and flexible delivery of content. To download, click here.

Corporate Dashboards: Sales Solution

This solution scenario walks you through the process of creating and then using a basic dashboard to track organizational performance. The dashboard includes various report views that empower users to quickly and easily gain insights through Microsoft business intelligence. To download, click here.

An at-a-glance visual of all three solutions

I created the following at-a-glance visual (see below to download) for an event in Colorado that highlights the end result of three business intelligence solutions. The visual has some general guidelines customers have asked for about when you would consider using each of the business intelligence technologies.  Let me know what you think.  

Categories: SharePoint

Introducing SharePoint Workspace 2010

SharePoint IT Pro Documentation - Mon, 08/02/2010 - 13:24

Do you wish you had an easy answer for SharePoint users who ask, "How can I update my SharePoint documents while I’m away or offline?" or "How can I access my SharePoint content quickly and easily without a browser?"

Installing SharePoint Workspace on client computers may be just that answer. SharePoint Workspace is part of the Office Professional Plus 2010 suite, and it’s designed specifically to support remote and offline SharePoint users who need to work offline or have minimal access to SharePoint servers.

With SharePoint Workspace, an end user can easily connect to a designated SharePoint site, get a local copy of selected SharePoint libraries and lists, and add or modify library or list content within a private "SharePoint workspace". Content in a SharePoint workspace automatically synchronizes with the associated SharePoint site when users are on their network, or it can be manually synchronized on demand. No browser access needed and no need for VPNs or special IT setup.

If Active Directory Domain Services (AD DS) is running in your organization, you can use Group Policy to manage and customize a SharePoint Workspace deployment according to your IT practices, just as with other Office applications. Alternatively, you can use the Office Customization Tool. The most important policy you’ll want to consider for SharePoint Workspace deployment is one that blocks the use of peer workspaces. SharePoint Workspace typically lets users create collaborative "Groove workspaces" and Shared Folders where they can share information with trusted invited peers. Groove workspaces are separate from SharePoint workspaces and do not support connections to SharePoint sites. But if your org prohibits or discourages this type of activity, be sure to include the Prohibit Groove workspaces policy in your Office ProPlus 2010 deployment.

Other important policies to consider are one that requires Secure Socket Layer (SSL) protection for SharePoint Workspace client connections to SharePoint Server 2010, and one that prevents Windows Search 4.0 from crawling SharePoint Workspace content.

For information about how to plan and deploy SharePoint Workspace, see http://technet.microsoft.com/en-us/library/ee649106.aspx.

Once employees start using SharePoint workspaces for contributing SharePoint content, they’ll barely notice that they’re using another app. Soon they’ll be creating multiple workspaces for accessing multiple SharePoint sites. And because working with SharePoint content in SharePoint a workspace not only solves the offline problem but is typically easier and faster than accessing it through a browser (think, image rendering or saving changes on a distant server), your calls from remote users trying to get at their SharePoint content should be a thing of the past.

For information about how SharePoint Workspace helps end users, see http://office.microsoft.com/en-us/sharepoint-workspace-help/CH010289332.aspx.

-- Mena Paton, SharePoint Workspace writer

Categories: SharePoint

SharePoint 2010 Products, SQL Server, Storage and Databases (oh my)

SharePoint IT Pro Documentation - Fri, 07/30/2010 - 03:22

The SharePoint 2010 Products are, at core, Web applications built on SQL Server databases. To best administer an environment and keep it performing well, administrators should understand the following:

  • How to choose the best version of SQL Server for their environment
  • How to best configure and monitor SQL Server for SharePoint 2010 Products
  • Which databases they are running, and their characteristics
  • Whether it’s appropriate to use remote BLOB storage to meet their business needs.

We have assembled key database, storage, and SQL Server content in one easy location—the SQL Server and SharePoint Server 2010 Databases resource center.

The resource center provides links to great core resources that you should be familiar with:

The resource center is also a one-stop shop for SQL Server DBAs who manage SharePoint environments, with links to information about integrating SharePoint with Reporting Services, and PowerPivot for SharePoint.

Please let us know if the resource center is helpful, and if you there is any additional content you’d like to see about managing SharePoint databases.

Categories: SharePoint

White paper: Configuring Kerberos authentication for SharePoint 2010 and SQL Server 2008 R2 products

SharePoint IT Pro Documentation - Thu, 07/22/2010 - 13:29

Hello, this is Norm, IT Pro writer for business intelligence in Microsoft SharePoint 2010 Products. Kerberos is often used in business intelligence solutions to establish secure access to external data sources such as Microsoft SQL Server. Last week, a new white paper was published that gives instructions to configure Kerberos authentication in a multi-server environment for several SharePoint Server and SQL Server business intelligence scenarios.

This document helps you understand the concepts of identity in Microsoft SharePoint 2010 Products, describes how Kerberos authentication plays a very important role in authentication and delegation scenarios, and describes the situations where Kerberos authentication should be used or may be required in solution designs.  

The document also shows how to configure Kerberos authentication end-to-end within your environment, including scenarios that use various service applications in Microsoft SharePoint Server. Additional tools and resources are described to help you test and validate Kerberos configuration. The "Step-by-Step Configuration" sections of this document cover the following scenarios for SharePoint Server 2010.

·         Scenario 1: Core Configuration

·         Scenario 2: Kerberos Authentication for SQL OLTP

·         Scenario 3: Identity Delegation for SQL Analysis Services

·         Scenario 4: Identity Delegation for SQL Reporting Services

·         Scenario 5: Identity Delegation for Excel Services

·         Scenario 6: Identity Delegation for Power Pivot for SharePoint

·         Scenario 7: Identity Delegation for Visio Services

·         Scenario 8: Identity Delegation for Performance Point Services

·         Scenario 9: Identity Delegation for Business Connectivity Services

To download the white paper, click here OR paste http://go.microsoft.com/fwlink/?LinkID=196600 into your browser address bar.

Enjoy!

Categories: SharePoint

Excel Services and Excel Web Apps common/different features

SharePoint IT Pro Documentation - Wed, 07/21/2010 - 08:20

Excel Services extends the Excel desktop experience to the web and is built upon a server-hosted version of the Excel calculation engine. Advantages include enabling users to interact with Excel workbooks directly in their web browser, without having to have the Excel client installed on a client computer. This increases the overall reach and use-case scenarios of Excel-based data and applications.

 

Microsoft Office Web Apps includes an online companion to Office Excel that enables users to access and edit documents, regardless of their location. The Office Excel web app is also available to users through Windows Live and to business customers with Microsoft Office 2010 volume licensing and document management solutions based on Microsoft SharePoint 2010 Products.

 

The following table provided by Microsoft SharePoint Insights lets you see shared and exclusive features for Excel Services and the Office Excell web app.

 

Capability

Excel Web App part of Office Web Apps

Excel Services in SharePoint 2010

View

x

x

Edit

x

Collaboration

x

Create New

x

Create Excel-Driven Dashboards

x

Display New Visualization

x

x

External Data

x

x

- Anonymous

x

x

- Secure Store

x

- PowerPivot

x

Web Services API

x

REST API

x

JavaScript OM

x

User-Defined Function

x

x

 

See the following TechNet articles for more information:

·        Excel Services overview (SharePoint Server 2010)

·        Deploy Office Web Apps (Installed on SharePoint 2010 Products)

Categories: SharePoint

Announcing the release of the Microsoft SharePoint 2010 Administration Toolkit version 1.0

SharePoint IT Pro Documentation - Tue, 07/20/2010 - 10:00

Hello, my name is Kirk Stark, a technical writer on the SharePoint ITPro content team.  I'm announcing the release of the Microsoft SharePoint 2010 Administration Toolkit version 1.0. This version includes the following features:

Note: The User Profile Replication Engine and the Content Management Interoperability Services are not supported in SharePoint Foundation 2010.

If the source or target server is running Microsoft Office SharePoint Server 2007, that source or target server must be updated with the June 2010 Cumulative Update (or a later cumulative update). For additional information about the June 2010 Cumulative Update, see http://support.microsoft.com/kb/983310/.

 For additional information, see

SharePoint 2010 Administration Toolkit (SharePoint Server 2010)
http://go.microsoft.com/fwlink/?LinkID=125907

SharePoint 2010 Administration Toolkit (SharePoint Foundation 2010)
http://go.microsoft.com/fwlink/?LinkID=125908

 

 

Categories: SharePoint

Upgrade to SharePoint 2010 Products from other versions or products

SharePoint IT Pro Documentation - Mon, 07/19/2010 - 09:42

Not every upgrade is a straightforward upgrade from one version of a product to the next. In order to help, we've got new TechNet library articles about how to perform an upgrade when you need to:

  • Skip a version:
    • Upgrade from SharePoint Portal Server 2003 to SharePoint Server 2010
    • Upgrade from Windows SharePoint Services 2.0 to SharePoint Foundation 2010
  • Get more features:
    • Upgrade from SharePoint Foundation 2010 to SharePoint Server 2010
    • Upgrade from SharePoint Server 2010 Standard to SharePoint Server 2010 Enterprise
  • Upgrade from a trial version

A frequently-asked question on the TechNet Forums is whether you can upgrade from Windows SharePoint Services 3.0 to SharePoint Server 2010. Yes, you can, and you can use a database attach approach to do so. This process is so straightforward, we didn’t need a whole article for it. Just follow the process for a database attach upgrade and attach your Windows SharePoint Services content databases to your SharePoint Server 2010 farm.

Another quick cross-product upgrade is from Office Forms Server 2007 to SharePoint Server 2010. Again, just do a database attach upgrade, being sure to transfer your form templates over. Everything you need to know is in the database attach upgrade content, and the article Plan to upgrade form templates during an upgrade to SharePoint Server 2010.

Resources:

As always, let us know if you have any comments or questions!

Samantha Robertson, Senior Writer, SharePoint Products (I’m all about the upgrade)

Categories: SharePoint

Announcing the release of the SharePoint 2010 Administration Toolkit V1

SharePoint Products Team - Thu, 07/15/2010 - 15:00

I am pleased to announce the availability of the first version of the SharePoint 2010 Administration Toolkit. In this toolkit we’ve included a couple of tools that were shipped releases and are now adapted to SharePoint 2010, along with two new tools.

·         User Profile Replication Engine 2010 (UPRE2010): this tool got a complete overhaul and was converted to PowerShell. It now allows you to replicate Profile and Social data between SharePoint 2010’s User Profile Application (UPA), as well as backward compatibility with SharePoint 2007’s SSP. You can replicate between SSP’s or UPA services, as well as across versions. (Note that only Profile data can be replicated across versions, as SSP contains no Social activity tracking).

·         The Security Configuration (SCW) Manifest: SCW is an attack surface reduction feature in Windows Server. This manifest adds roles for SharePoint 2010 Products to Windows Server 2008 with SP2 or Windows Server 2008 R2.

·         The Content Management Interoperability Services (CMIS) Connector: enables SharePoint users to interact with content stored in any repository that has implemented the CMIS standard, as well as making SharePoint 2010 content available to any application that has implemented the CMIS standard.

·         The Load Testing Kit (LTK): LTK generates a Visual Studio Team System 2008 (VSTS) load test based on Windows SharePoint Services 3.0 IIS logs. The VSTS load test can be used to generate synthetic load against Microsoft SharePoint Foundation 2010 as part of a capacity planning exercise or a pre-upgrade stress test.

 

The toolkit can be downloaded from here: http://www.microsoft.com/downloads/details.aspx?FamilyId=718447d8-0814-427a-81c3-c9c3d84c456e&displaylang=en

 

The toolkit documentation can be found here:

SharePoint Foundation 2010: http://technet.microsoft.com/en-us/library/cc508986.aspx

SharePoint Server 2010: http://technet.microsoft.com/en-us/library/cc508851.aspx  

 

Doron Bar-Caspi

Sr. Program Manager, SharePoint

Categories: SharePoint

Back by Popular Request - Live Chats with MVP Experts

SharePoint Products Team - Wed, 07/14/2010 - 15:23

Do you have questions about SharePoint? Want to learn more about the recently launched SharePoint 2010?  By popular request, SharePoint MVPs from around the world are participating in a live chat event about SharePoint. These Q&A events are a great opportunity to tap into the vast knowledge of these industry professionals who are regarded as the best in their field. 

Please join us on Wednesday July 21st at 9am PDT!

Learn more and add these chats to your calendar by visiting the MSDN event page http://msdn.microsoft.com/en-us/chats/default.aspx

Categories: SharePoint

Learning about Business Connectivity Services

SharePoint IT Pro Documentation - Fri, 07/09/2010 - 09:14

Hello, I’m Rob Silver, a technical writer on the SharePoint IT pro content team. This release, I focused on Business Connectivity Services, a set of features that help you bring external data into SharePoint and Office 2010. In this blog entry, I’ll give you a brief description of Business Connectivity Services and then describe the content we’ve created to you to help you understand this feature area and incorporate it into your SharePoint and Microsoft Office 2010 solutions.

Business Connectivity Services, which is included in Microsoft SharePoint Server 2010 and SharePoint Foundation 2010, is a set of services and features that provides a way to connect your SharePoint solutions to sources of external data, such as Web services, SQL Server databases, SAP applications, and custom solutions. Business Connectivity Services is also included in Microsoft Office 2010 suites, and when you use Business Connectivity Services in SharePoint Server 2010, you can implement solutions that let users interact with external data directly from such Microsoft Office 2010 programs as Outlook 2010 and SharePoint Workspace 2010. For example, if your enterprise maintains an external database of its customers, you can design a solution that lets your sales and support personnel view the customer information from within Outlook 2010 and even create new customer entries in the external database using the familiar Outlook interface.

Business Connectivity Services builds on the Business Data Catalog feature that was included in Office SharePoint Server 2007. However it adds a rich set of new features that helps you bring your external data into the familiar SharePoint user experience, allowing information workers in your organization to collaborate on the data as easily as they would collaborate on documents and list items. Here is a summary of the key features of Business Connectivity Services:

  • More connectivity options: In addition to databases and Web services, you can connect to WCF services and .NET assembly connectors.
  • Design and customization tools: You can use SharePoint Designer 2010 or Visual Studio 2010 to design Business Connectivity Services solutions.
  • Support for a full set of operations: In SharePoint Designer 2010 or Visual Studio 2010, you can implement a full set of operations on the external data (such as Read, Write, Update, and Delete) that will be available from within your solution.
  • Richer security: Full support for Claims-enabled services as well as the Secure Store Service to map user credentials to external sources of data.
  • Office client integration: You can implement solutions that let users interact with external data directly from Microsoft Office 2010 programs such as Outlook 2010 and SharePoint Workspace 2010. Data can be taken offline and, when the connection is restored, the data can be synchronized with the external system.
  • External data Web parts: SharePoint Server 2010 and SharePoint Foundation 2010 include a set of Web parts that help you rapidly build solutions that help users work with external data.

Business Connectivity Services touches on many audiences in the enterprise and we have designed our content sets to address the needs of these various audiences:

  •  IT pros are responsible for evaluating and planning Business Connectivity Services, deploying it, and operating the various services and features that come into play in a solution based on Business Connectivity Services. You will find Business Connectivity Services content for IT pros on TechNet. For example, here is planning content for SharePoint Server 2010 and planning content for SharePoint Foundation. Here is operations content  for SharePoint Server 2010 and operations content for SharePoint Foundation. For an overview of Business Connectivity Services, download the Business Connectivity Services model poster. And for a great roll-up view of most of the Business Connectivity Services content (from an IT pro’s perspective) visit the Business Connectivity Services Resource Center.
  •  Developers design and create external content types, create Web services to expose external data, and do other development tasks to build solutions based on Business Connectivity Services. There is a rich set of content for developers available on MSDN. Start at Microsoft Business Connectivity Services. Also, be sure to visit the SharePoint 2010 Developer Center for up-to-date information on Business Connectivity Services and on all the SharePoint development capabilities. Also, the Business Connectivity Services team maintains its own Business Connectivity Services blog. You’ll find the frequent posts on that blog relevant and useful for developers and IT pros.
  • Information workers create Business Connectivity Services solutions using tools such as SharePoint Designer 2010, and they use SharePoint sites and Office applications such as Outlook 2010 to participate in solutions based on Business Connectivity Services. The Office Web site has content for information workers who want to take advantage of Business Connectivity Services. For example, if you are designing solutions based on Business Connectivity Services, check out the SharePoint Designer 2010 content.

Lastly, as a technical writer, I want to make sure that we write content that is relevant to our IT Pro audience’s needs. If there is particular Business Connectivity Services content that you would like to see published, or if you have any feedback on the content that is already published, please leave a comment to this blog entry providing your feedback or content requests.

 

Thanks,
Rob Silver
Technical writer
SharePoint IT Pro content team

Categories: SharePoint

How to create planning solutions and scenarios using Office 2010, SharePoint Server 2010, and SQL Server 2008 R2

SharePoint IT Pro Documentation - Wed, 07/07/2010 - 07:53

For a detailed look at understanding planning solutions using Office 2010, SharePoint Server 2010 and SQL 2008 R2, check out this white paper, "Planning, Budgeting & Forecasting for the Office of Finance: Understanding Planning Solutions and Scenarios with Microsoft Office 2010, Microsoft SharePoint Server 2010 and Microsoft SQL Server 2008 R2".  Many companies still rely heavily on spreadsheets to create and collect data specific to their daily function, but with no central data repository to plug into. This white paper provides direction and samples for developing a business intelligence solution with planning, budgeting and forecasting capabilities for Finance, HR, and other departments within an organization. 

The solution is architected to enable planning functions that include write-back capabilities to SQL Server Analysis Services cubes, SharePoint lists and relational database. It also demonstrates how the Microsoft platform can be used in developing financial calculations and business rules to link forms and reports data through Microsoft Office Excel 2010.

This paper also includes samples and instructions on:

  • A centralized data model usingSQL Server 2008 R2 Analysis Services.
  • Form and report authoring using Microsoft Office Excel 2010 and PivotTables.
  • Data entry and What-If analysis using Excel 2010 PivotTables.
  • Dimensional data modeling using PowerPivot for Excel 2010.
  • Online document storage and collaboration with security and workflow for forms and reports using SharePoint Server 2010.

 

Categories: SharePoint

Metadata-based content routing and storage in SharePoint Server 2010

SharePoint IT Pro Documentation - Tue, 07/06/2010 - 15:42

For many organizations, content not being saved and stored to the right place is a serious problem. SharePoint Server 2010 now offers new features to help administrators make sure content items (documents, pictures, workbooks, and so on) that are submitted, saved, or migrated to their SharePoint environment can be routed to and stored based on an item's metadata.  By tagging content with metadata and by using Content Organizer settings and rules, you can effectively identify, route, and store almost any content item in your SharePoint environment. Combined with managed metadata and metadata-based navigation and filtering, metadata-based routing and storage provides an incredibly powerful way to design and implement a robust content architecture for your organization that can scale to the tens of millions of documents.

For more information, see the following articles on TechNet:

Categories: SharePoint

SharePoint 2010 Products and Hyper-V R2

SharePoint IT Pro Documentation - Thu, 07/01/2010 - 17:40

I'm excited to announce the availability of expanded and new resources for customers who want to create virtual farms. Since Hyper-V was first released, we witnessed a dramtic growth in the number of organizations and individuals who are using or plan to use Hyper-V as a flexible, stable, and high performing platform for SharePoint 2010 Products. Adopters are using virtual farms for development, testing, staging, and production environments.

To meet your needs, we added to and expanded our virtualization documentation on TechNet. This encompasses planning, deployment, and operations content. To find out more about SharePoint 2010 Products and Hyper-V, visit the virtualization resource center at http://technet.microsoft.com/en-us/sharepoint/ff602849.aspx. Also, add this resource center to your Favorites list to stay abreast of new documentation.

Dan Wesley, IT Pro writer

Categories: SharePoint

Developing Applications for SharePoint 2010

SharePoint Products Team - Wed, 06/30/2010 - 09:30

Microsoft patterns & practices is excited to announce the release of:

Developing Applications for SharePoint 2010

SharePoint 2010 introduces new ways of developing applications for the SharePoint platform. With SharePoint 2010, you can build multi-tenant, hosted applications on an infrastructure that is scalable, secure, and stable. You can create powerful, data-driven solutions using SharePoint lists or external data. You can create client-side functionality that takes advantage of modern browser capabilities and Silverlight to provide a rich user experience. These new features, operational models, and development tools make SharePoint a more complete application platform, and it also introduces new design and development decisions for customers. This guidance helps customers understand the decision points, tradeoffs, and performance implications that the new functionality introduces; it also helps customers learn how to take best advantage of the new capabilities that SharePoint 2010 provides.

                                

What’s in Developing Applications for SharePoint 2010?

 

Component

Description

The guide

"Application Foundations for SharePoint 2010" describes approaches you can use to address the challenges of testability, flexibility, configuration, logging and exception handling, and maintainability; it also explains how to use the SharePoint Guidance Library components in these areas.

"Execution Models in SharePoint 2010" provides deep technical insights into the mechanics of the full-trust execution environment, the sandbox execution environment, and various hybrid approaches to executing code in SharePoint applications.

"Data Models in SharePoint 2010" explains new list and external data functionality and data access techniques, key design decision points that can help you to choose between standard SharePoint lists and external lists, and techniques and patterns to address large lists and list aggregation.

"Client Models in SharePoint 2010" provides guidance on how to best use the new client-side functionality to access data and build richer client experiences with Silverlight and Ajax.

Each section also contains a set of how-to topics. These explain how to perform specific tasks that the team found challenging to discover.

Reference implementations

This release includes eight reference implementations that you can deploy to a SharePoint 2010 test environment. The reference implementations reinforce the key concepts in the guide and illustrate how to build applications that reflect real-world scenarios. Each reference implementation includes a detailed scenario and design overview, an explanation of the design decisions the team faced for the implementation, and an installation script to automate setup. This release includes reference implementations for the following scenarios:

·         Sandboxed solution

·         Sandboxed solution with a full-trust proxy

·         Sandboxed solution with External List

·         Sandboxed solution with custom workflow activities

·         Farm Solution (timer job)

·         SharePoint List Data Models

·         External Data Models

·         Client Application Models

The SharePoint Guidance Library

The library is a collection of reusable classes delivered as source code that address common challenges in application development for the SharePoint platform. This release improves on the previous release of the library by adding support for sandboxed solutions and taking advantage of new SharePoint features. The SharePoint Guidance Library consists of three key components:

·         SharePoint Service Locator. This provides a simple implementation of the Service Locator pattern for SharePoint applications. The service locator enables you to isolate your code from dependencies on external types, which makes your code more modular, easier to test, and easier to maintain.

·         Application Settings Manager. This provides a robust and consistent mechanism for storing and retrieving configuration settings at each level of the SharePoint hierarchy, from individual sites (SPWeb) to the entire server farm (SPFarm).

·         SharePoint Logger. This provides easy-to-use utility methods that you can employ to write information to the Windows Event log and the SharePoint Unified Logging Service (ULS) trace log. It also enables you to create custom diagnostic areas and categories for logging.

 

Click here to download this release.

Categories: SharePoint

Create a Corporate Sales dashboard with PerformancePoint Services in SharePoint Server 2010

SharePoint IT Pro Documentation - Wed, 06/30/2010 - 06:45

SharePoint Server 2010 offers new and expanded ways of creating business intelligence dashboards using PerformancePoint Services.  Download this complete scenario to get detailed guidance on how to create a sample Corporate Sales dashboard that uses the business intelligence capabilities in SQL Server 2008 R2, Microsoft SharePoint Server 2010, and Microsoft Office 2010. The scenario takes you step-by-step through the creation of a dashboard to include a variety of reports. 

http://www.microsoft.com/downloads/details.aspx?FamilyID=da2e7bfc-c005-42e4-8b39-e1809bd65e0b&displaylang=en 

Categories: SharePoint

Managing Upgrades on Sandbox Solutions

SharePoint Products Team - Wed, 06/23/2010 - 14:00

Sandbox solutions are a great feature on the SharePoint 2010 platform.  But as these solutions are deployed in various locations across your farm or site collection, the question of how to manage them arises.

We’re providing a PowerShell script to help you with this.  It’s pretty simple but can be extended to do more in order to fit into the tools you’re already using to manage your farms and site collections.

Let me describe what this script does: 

Every Sandbox Solution that is deployed has a Solution ID associated with it.  Inside that Solution, you will find one or more features with a Feature ID and a version number.   For a given Solution Id, this script will walk your entire farm or site collection and generate a log telling you all the locations where that solution is found.  It will then look at each feature within the Solution and add a log entry indicating which version of that feature is deployed.  It can also perform the upgrade if a new version of the Solution is provided.  This is a flag so the script can perform the upgrade or simply be used as a means for gathering information on the solution.

The script takes the following parameters:

·         File Path and Name of Solution (.wsp file) to be upgraded 

·         Switch Parameter indicating if the upgrade should be performed or not

Permissions:

·         Script assumes the person running it is the box admin and is permitted to perform the upgrade actions.

·         Permission levels are modified to grant Full Control for the admin.

·         After upgrade is complete, permissions are restored to original settings.

The log format is as follows:

·         Details on the file path and name of the solution you are examining including Solution Id.

·         Detail on each site collection that is examined

·         For each site collection

o   Information on whether or not a matching solution was found

o   If found, details on the solution file that is being removed so it may be replaced by the new version.

o   If upgrade is being performed, details on success or failure

·         A summary that includes

o   Number of site collections examined

o   If upgrade is not being performed, a summary list of the sites that will require upgrade along with details on the current version for each feature (id) in the solution.

o   If upgrade IS performed, the feature and version information accompanied by details on successful upgrade, successful new install, or the feature being unchanged because it’s already current.

A few Things to Note:

To upgrade a solution, the SharePoint 2010 platform expects the solution filenames to be different.  If they are the same, you will get an error telling you that the solution is already active.  When you upgrade a solution, the solution id will be used to find existing versions of that solution and THEN look at the version details.  The upgrade will only move you to a new version.  It will not roll back to an old version.  And if the versions are the same, it will do nothing.

We hope this script helps you manage the solutions you are deploying and makes upgrades that much easier.

# SharePoint DLL

[void][System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SharePoint")

 

#Cmdlet Install

Add-PSSnapin Microsoft.SharePoint.PowerShell -ErrorAction SilentlyContinue

 

#Log file definition

$intro = "User Solution Upgrader v1.0 - Log File"

$date = (Get-Date).ToString('yyyyMMdd')

 

Set-Variable -Name ForReading -value 1 -Option Constant

Set-Variable -Name ForWriting -value 2 -Option Constant

Set-Variable -Name ForAppending -value 8 -Option Constant

 

#Assume that the current "Domain\User" is the box admin entitled to perform the reconaissance and upgrade actions.

$admin  = $env:UserDomain + "\" + $env:UserName

if ($env:UserDomain -eq $null)

{             

                $admin = $admin.substring(1)

}

 

# Get the script's parent folder. This is where the log file will be written.

$logFolder = Split-Path -Path $MyInvocation.MyCommand.Definition -Parent

$getACL = Get-Acl $logFolder

$access = $getACL.Access | Where { $_.IdentityReference -eq $admin }

if ($access -eq $null -or

    ($access.FileSystemRights -ne [System.Security.AccessControl.FileSystemRights]::FullControl -and

     ($access.FileSystemRights -ne [System.Security.AccessControl.FileSystemRights]::Write -and

      $access.FileSystemRights -ne [System.Security.AccessControl.FileSystemRights]::CreateFiles)))

{

                $logFolder = $env:userprofile

}

 

# Add the log file name to the path.

$logFileFullPath = Join-Path $logFolder "usersolutionupgrader-$date.txt"

 

# Open file

$fo = New-Object -com Scripting.FileSystemObject

$f = $fo.OpenTextFile($logFileFullPath, $ForAppending, $true)

 

if ($f -eq $null)

{

                $logFolder = $env:userprofile

                $logFileFullPath = Join-Path $logFolder "usersolutionupgrader-$date.txt"

                $f = $fo.OpenTextFile($logFileFullPath, $ForAppending, $true)

}

 

#Confirm log file on screen

Write-Host ("Log Path: " + $logFileFullPath)

 

#Write intro line

$f.WriteLine()

$f.WriteLine($intro)

 

function WriteLog

{

                $dt = Get-Date

                $logMsg = $dt.ToShortDateString() + "  " + $dt.ToShortTimeString() + "`t" + $args[0]

                $f.WriteLine($logMsg)

                Write-Output($logMsg)  #Turn this on when you need console output

}

 

function exitScript()

{

                if ($f -ne $null)

                {

                                $f.Close()

                }

                Write-Host "Exiting script due to error."

                exit

}

 

WriteLog ("Current user (admin):   $admin")

 

#solution details

$solFile = ""

$targetSolutionId = ""

$upgrade = $false

$myError = $null

 

$haveCurrentFeatures = $false

$haveNewFeatures  = $false

$numSites = 0

$oldFeatures = @{}

$newFeatures = @{}

$solSites = New-Object System.Collections.ArrayList

$solFailSites = New-Object System.Collections.ArrayList

 

#Parse the commandline parameters

if (($args -eq $null) -or ($args.Count -lt 2))

{

                WriteLog("Error: This script has been called without enough parameters. Listing your parameters below:")

                WriteLog($args)

                if ($f -ne $null)

                {

                                $f.Close()

                }

                exitScript

}

else

{

                $badParameters = $false

                foreach ($arg in $args)

                {

                                switch ($arg)

                                {

                                                "-upgrade"  {$upgrade = $true}

                                                "-path" {[void] $foreach.MoveNext(); $solFile = $foreach.Current}

                                                default {$badParameters = $true}

                                }

                }

 

                if ($badParameters -eq $true)

                {

                                WriteLog("You passed in a bad parameter.")

                                exitScript

                }                             

 

                #Validate parameters

                $extension = [IO.Path]::GetExtension($solFile)

                if (($extension -eq $null) -or ($extension -ne ".wsp") -or (!(Test-Path $solFile)))

                {

                                WriteLog("Error: The solution file name is not of WSP format or is an invalid file.")

                                exitScript

                }

 

                #Confirm parameter values captured

                $fileName = Split-Path $solFile -Leaf

                WriteLog("Solution Path is: `t" + $solFile)

                WriteLog("Solution Name is: `t" + $fileName)

                if ($upgrade)

                {

                                WriteLog "The tool will attempt to perform UPGRADE on the site collections"

                }

                WriteLog ""

}

 

#Get solution ID from given WSP

$tempPath = Join-Path $env:temp "upgrader" | Join-Path -ChildPath $fileName

$shell = New-Object -ComObject "Shell.Application" -ErrorAction:SilentlyContinue -ErrorVariable myError

if ($myError -ne $null)

{

                WriteLog("FAILED to create the Shell.Application object.")

                WriteLog("Error: " + $myError)

                $myError = $null

}

 

[IO.Directory]::CreateDirectory($tempPath)  | Out-Null

$tempFolder = $shell.NameSpace($tempPath)

$tempFolder.CopyHere($solFile)

 

#Take the file name ("yourfile.wsp") from the original path

$tempSolPath = Join-Path $tempPath $fileName

 

if (!(Test-Path $tempSolPath))

{

                WriteLog "Error: Failed to copy WSP file to temp location."

                exitScript

}

 

#Rename the WSP file to have CAB extension in order to facilitate CAB extraction

$cabFileName = [System.IO.Path]::GetFileNameWithoutExtension($fileName) + ".cab"

 

Rename-Item $tempSolPath $cabFileName

$cabPath = Join-Path $tempPath $cabFileName

 

$sourceWsp = $shell.NameSpace($cabPath).items()

$tempFolder.CopyHere($sourceWsp)

$manifestPath = Join-Path $tempPath "manifest.xml"

[xml]$manifest = Get-Content $manifestPath

$targetSolutionId = $manifest.Solution.SolutionId

 

#Validate Solution GUID

[Guid]$testGuid = "B80D56EC-5899-459d-83B4-1AE0BB8418E4"

if (($targetSolutionId -eq $null) -or ($targetSolutionId.Length -lt 36) -or

    ([System.ComponentModel.TypeDescriptor]::GetConverter($testGuid).ConvertFromString($targetSolutionId) -eq $null))

{

                WriteLog("Error: Target solution ID is invalid: " + $stringSolutionId)

                exitScript

}

 

WriteLog("Extracted solution ID: $targetSolutionId from manifest.xml")

WriteLog("")

 

#Now delete temp folder.

Remove-Item $tempPath\*

Remove-Item $tempPath

 

#Go through Content DBs

WriteLog ("Looking for Solution Id: " + $targetSolutionId + " in all Content Databases`n")

$dbs = Get-SPContentDatabase

 

foreach ($contentdb in $dbs)

{

                #Web App Level

                $webAppUrl = $contentdb.WebApplication.Url

 

                #Get WebApp

                $webApp = Get-SPWebApplication -Identity $webAppUrl

 

                $policy = $webApp.Policies[$admin]

                $policyAdded = $false

                $roleAdded = $false

 

                #If the admin doesn't have Full Control, it will be granted as follows:

                if ($policy -eq $null)

                {

                                $policy = $webApp.Policies.Add($admin, "") 

                                $webAppModified = $true

                                $policyAdded = $true

                                WriteLog "Added a policy entry for user '$admin'."

                }

 

                $fullRole = $webApp.PolicyRoles.GetSpecialRole([Microsoft.SharePoint.Administration.SPPolicyRoleType]::FullControl)

                if ($policy.PolicyRoleBindings[$fullRole] -eq $null)

                {

                                $policy.PolicyRoleBindings.Add($fullRole) 

                                $webAppModified = $true

                                $roleAdded = $true

                                WriteLog "Full Control added for '$admin' to Web Application '$webAppUrl'"

                }

 

                if ($webAppModified)

                {

                                $webApp.Update()

                                $webAppModified = $false

                }

 

                #Done. Have Full Control

                WriteLog ("Entering Web Application '$webAppUrl'.`n")

                Get-SPSite -WebApplication $webApp -Limit ALL | % {

                                $site = $_

                                $solution = $null

                                $foundSolution = $false

 

                                #Scan for solution here

                                Get-SPUserSolution -Site $_ | Where { $_.Status -eq [Microsoft.Sharepoint.SPUserSolutionStatus]::Activated -and $_.SolutionId -eq $targetSolutionId } | % {

                                                if ($foundSolution -eq $false)

                                                {

                                                                $foundSolution = $true

                                                                $solution = $_

 

                                                                if ($haveCurrentFeatures -eq $false)

                                                                {                             

                                                                                Get-SPFeature -Sandboxed -Site $site | Where { $_.SolutionId -eq $targetSolutionId } | % {$oldFeatures.Add($_.Id, $_)}

                                                                                $haveCurrentFeatures = $true

                                                                }

 

                                                                if ($upgrade -eq $false)

                                                                {             

                                                                                $solSites.Add($site.Url)  | Out-Null         

                                                                }

                                                                $solutionHash = $_.Signature

                                                                WriteLog ("Found site collection: " + $site.Url)

                                                }

                                }

                                $numSites ++

                               

                                #DoUpgrade here

                                if ($upgrade -and $foundSolution)

                                {

                                                $successAdd = $false

                                                WriteLog ("Uploading new solution file as: $fileName")

 

                                                #Add + Upgrade solution

                                                $myError = $null

                                                Add-SPUserSolution -LiteralPath $solFile -Site $site -ErrorAction:SilentlyContinue -ErrorVariable myError -Confirm:$false

                                                if ($myError -ne $null)

                                                {

                                                                WriteLog("Site collection '" + $site.Url + "' FAILED to upload the new solution.")

                                                                WriteLog("Error: " + $myError)

                                                                $myError = $null

                                                }

                                                else

                                                {

                                                                $successAdd = $true

                                                }

                                               

                                                $addedSolution = Get-SPUserSolution -Identity $fileName -Site $site

                                                if ($addedSolution -ne $null)

                                                {

                                                                WriteLog ("Found solution $fileName in the Solutions Gallery. Attempting to use it...")

 

                                                                #First check for already updated solution

                                                                if ($addedSolution.Signature -eq $solutionHash) 

                                                                {

                                                                                #This means we have the same version installed. Just skip it. And delete our copy!

                                                                                WriteLog ("New solution is already active on this site collection.")

               

                                                                                if ($successAdd -eq $true)

                                                                                {

                                                                                                #Remove the new solution (the dupe)

                                                                                                WriteLog ("Removing file: $fileName")

                                                                                                Remove-SPUserSolution -Identity $addedSolution -Site $site -Confirm:$false

                                                                                                if (!($solFailSites.Contains($site.Url)))

                                                                                                {

                                                                                                                $solFailSites.Add($site.Url) | Out-Null

                                                                                                }

                                                                                }

                                                                }

                                                                else

                                                                {

                                                                                #Perform upgrade

                                                                                Update-SPUserSolution -Identity $solution -Site $site -ToSolution $addedSolution -ErrorAction:SilentlyContinue -ErrorVariable myError -Confirm:$false

                                                                                if ($myError -ne $null)

                                                                                {

                                                                                                WriteLog("Site collection '" + $site.Url + "' FAILED to upgrade to the new solution.")

                                                                                                WriteLog("Error: " + $myError)

                                                                                                if (!($solFailSites.Contains($site.Url)))

                                                                                                {

                                                                                                                $solFailSites.Add($site.Url) | Out-Null

                                                                                                }

                                                                                                $myError = $null

                                                                                }

 

                                                                                if (!($solFailSites.Contains($site.Url)))

                                                                                {

                                                                                                #Upgrade succeeded

                                                                                                WriteLog("Site collection '" + $site.Url + "' has been upgraded to the new solution.")

                                                                                                WriteLog ""

                                                                                                $solSites.Add($site.Url)  | Out-Null

 

                                                                                                #Record results AFTER upgrade

                                                                                                if ($haveNewFeatures -eq $false)

                                                                                                {                             

                                                                                                                Get-SPFeature -Sandboxed -Site $site | Where { $_.SolutionId -eq $targetSolutionId } | %{$newFeatures.Add($_.Id, $_)}

                                                                                                                $haveNewFeatures = $true

                                                                                                }

                                                                                }

                                                                }

                                                }

                                                else

                                                {

                                                                if (!($solFailSites.Contains($site.Url)))

                                                                {

                                                                                $solFailSites.Add($site.Url) | Out-Null

                                                                }

                                                }

                                }

                                $site.Close();

                }             

 

                #Close permissions and webApp

                if ($roleAdded)

                {

                                $policy.PolicyRoleBindings.RemoveById($fullRole.Id)

                                $webAppModified = $true

                        WriteLog "Removed Full Control for '$admin' from Web Application '$webAppUrl'"

                }

                if ($policyAdded)

                {

                                $webApp.Policies.Remove($admin)

                                $webAppModified = $true

                                WriteLog "Removed the policy entry for user '$admin'."

                }

                if ($webAppModified)

                {

                                $webApp.Update()

                                $webAppModified = $false

                }

                WriteLog ""

                WriteLog "Done with Web Application."

                WriteLog ""

}

 

#Final tally of site collections

WriteLog("Analysis of site collection upgrades for solution ID $targetSolutionId ...")

WriteLog("We have processed a total of $numSites site collections.")

WriteLog("")

 

if ($upgrade)

{

                #Site Collection Summary

                if ($solSites.Count -eq 0)

                {

                                WriteLog("No site collections were upgraded. Refer to this log for any upgrade errors.")

                }

                else

                {

                                WriteLog("Listing site collections that have been upgraded:")

                                foreach ($siteUrl in $solSites)

                                {

                                                WriteLog($siteUrl)

                                }

                }

 

                if ($solFailSites.Count -ne 0)

                {

                                WriteLog("Listing site collections that FAILED to upgrade:")

                                foreach ($siteUrl in $solFailSites)

                                {

                                                WriteLog($siteUrl)

                                }

                }

 

                #Feature Upgrade Summary

                if ($newFeatures.Count -gt 0)

                {

                                WriteLog ""

                                WriteLog "Feature upgrade summary for the New User Solution:"

                                foreach($fKey in $newFeatures.Keys)  

                                {

                                                $fDef = $oldFeatures[$fKey]

                                                $fDef2 = $newFeatures[$fKey]

                               

                                                #Feature ID and DisplayName

                                                WriteLog("Feature ID: " + $fDef2.Id + "`t DisplayName: " + $fDef2.DisplayName)

 

                                                #Feature Version

                                                if ($fDef -eq $null)

                                                {

                                                                #New feature added.

                                                                WriteLog("This feature has been newly added.`t`t`t Version " + $fDef2.Version)

                                                }

                                                else

                                                {

                                                                if ($fDef.Version -eq $fDef2.Version)

                                                                {

                                                                                WriteLog("This feature has been unchanged.`t`t`t Version " + $fDef2.Version)

                                                                }

                                                                else

                                                                {

                                                                                WriteLog("Feature went from Version " + $fDef.Version + " to Version " + $fDef2.Version)

                                                                }

                                                }                             

                               

                                                WriteLog ""

                                }

                                WriteLog ("The new solution holds a total of " + $newFeatures.Count + " feature(s).")

                }

}

else

{

                if ($solSites.Count -eq 0)

                {

                                WriteLog("No site collections have been found.")

                }

                else

                {

                                WriteLog("We have found " + $solSites.Count + " site collections, as follows (no upgrade action performed):")

                                foreach ($siteUrl in $solSites)

                                {

                                                WriteLog($siteUrl)

                                }

                }

 

                WriteLog ""

                WriteLog "Feature summary for current User Solution:"

                foreach($fKey in $oldFeatures.Keys)

                {

                                $fDef = $oldFeatures[$fKey]

                                WriteLog ("Feature DisplayName: `t" + $fDef.DisplayName)

                                WriteLog ("Feature Version: `t" + $fDef.Version)

                                WriteLog ("Feature Id: `t`t" + $fDef.Id)

                }

 

                WriteLog ""

                WriteLog ("Found a total of " + $oldFeatures.Count + " feature(s).")

                WriteLog ""

}

WriteLog ""

 

#Close the file handle.

if ($f -ne $null)

{

                $f.Close()           

}

 

Categories: SharePoint