In any business, tension exists between business users and IT. Business users want to be empowered to respond to changes and address new opportunities, while IT wants to retain control in order to maintain the systems environment. Composite applications in SharePoint 2010 take advantage of the ability to configure elements such as list views, Web Parts, and workflows to create solutions that enable business users while providing manageability, monitoring, and governance for IT.

SharePoint 2010 introduces many new capabilities that are categorized into six different workloads, one of which is the composites workload (Figure 1). In this article, I discuss the various components of Office 2010 and SharePoint 2010 that work together to let end users create no-code composite solutions.

A key component of creating composite applications is SharePoint 2010’s ability to create custom workflows, allowing end users to attach behavior to data. Workflows are a central capability for composite applications. I covered workflows in depth in a previous article, so let’s look at some of the less familiar capabilities that SharePoint 2010 provides for creating composite applications.

Browser Customizations

The most obvious way to create composite applications in SharePoint 2010 is to use the browser to customize a page by using Web Parts. SharePoint 2010 introduces a rich set of Web Parts (Figure 2) for connecting to various types of data and a rich framework for connecting Web Parts to each other. Wiki-style editing allows in-browser customization of data on the page, providing a very capable environment for users to quickly consume existing Web Parts and configure them.

This provides an obvious opportunity for developers to create new Web Parts that give end users the types of solutions they’re looking for. As you’ll see throughout this article, end users can accomplish quite a bit without requiring developer intervention.

SharePoint Designer 2010 and Form Web Parts

A key tool for enabling composites in SharePoint 2010 is SharePoint Designer 2010. This tool has undergone a significant overhaul from its predecessor, making it easy for end users to create lists and to customize forms for the list. After creating a list, click the List Form button in the List Settings ribbon in SharePoint Designer 2010 to show the Create New List Form dialog.

Once the form is created, you can customize the fields and labels, provide conditional formatting, change the order of fields, and add new fields to the form. Figure 3 shows four capabilities that make this a very powerful tool: A WYSIWYG editor enables visual design, making it easy to make changes to the form. Synchronized HTML editing lets power users take charge of the HTML generated by customizing XSLT templates. Server-side control properties are easily managed in the Tag Properties pane, while the Toolbox enables drag and drop of new controls to the design surface. The data source window provides an easy way to add new fields to the design surface from the current data source; in this case, the data source is our SharePoint list.

This is one of the most powerful concepts in SharePoint 2010: end users have the ability to define data storage simply by creating new lists, and they can customize how others interact with those lists by manipulating the list forms. I can easily create a form using a master-detail view of data simply by configuring the form in SharePoint Designer 2010 without writing any server-side code or requiring administrator privileges. See Figure 4.

While the ability to customize list forms yields great power, SharePoint 2010 also provides several layers of control for administrators to govern which users have the ability to make modifications through permissions, site collection policy, and web application policy. As users are added to the site, they’re granted permission levels such as View Only, Read, Contribute, Design, or Full Control. By default, only users with Design or Full Control permission levels have the ability to use SharePoint Designer 2010 to customize a site. Site collection administrators can grant or deny the ability to use SharePoint Designer 2010 by clicking the SharePoint Designer Settings link in the site settings page.

Farm administrators also have the ability to restrict the use of SharePoint Designer 2010 at the web application level with a similar menu option in Central Administration. These settings are also available using the Set-SPDesignerSettings cmdlet in PowerShell. In addition to customizing forms, SharePoint Designer 2010 provides access to many more functions, including Business Connectivity Services (BCS) and workflows.

Business Connectivity Services

BCS lets you unlock enterprise data by bringing it into the SharePoint environment. You can provide a full set of CRUD operations on external data, providing a central location for users to interact with data.

For example, you can use SharePoint as the user interface to a CRM system such as SAP, enabling users to interact with the data as if it were just another list in SharePoint, including the ability to customize list forms. The BCS framework provides additional capabilities, such as the ability to take data offline in BCS-aware applications and synchronize them as connectivity permits.

Connecting to Backend Systems

Imagine a scenario where a group leverages a third-party CRM system to manage its business. Rather than write a completely new application to expose the desired functionality for business users, the business users can simply consume the services exposed by the CRM system.

In SharePoint Designer 2010, create a new external content type. Switch to the operations design view by clicking the ribbon, and choose Add Connection. By default, SharePoint Designer 2010 exposes three data source types: SQL Server, .NET Type, and WCF Service. By choosing WCF Service, end users can consume the service exposed by the backend service (Figure 5). This lets users safely connect to a services infrastructure that governs message security and delivery through signing and encryption via the power of Windows Communication Foundation.

Users can also connect to existing SQL Server databases. Using the same Add Connection dialog, they can connect to a database, surface that data in SharePoint Designer 2010, and create operations against that database (Figure 6). Once the external list is created, you can view and edit the external data in SharePoint (Figure 7).

I wrote about the developer experience for BCS in my article in the December 2009 issue of MSDN Magazine, “Using Business Connectivity Services in SharePoint 2010.” There is a wealth of opportunity for developers to build new connectors that can be consumed by end users while designing solutions in SharePoint Designer 2010. These strategic investments by IT can greatly enhance the business users’ ability to rapidly respond to changes in business while providing IT the level of control it needs to effectively maintain the integrity of its systems.

Forms Services in BCS

Just as we did above in SharePoint Designer, you can customize the list forms using server-side ASP.NET controls and an XSLT-based list view, or you can provide a custom form using InfoPath (Figure 8).

This InfoPath form is used to customize the offline view that users see in SharePoint Workspace. This allows an end user to control the look and feel, formatting, and validation of data with the InfoPath form that appears within SharePoint Workspace (Figure 9).

This ability to take data offline is very significant. Users are able to take data from external systems, use them in offline scenarios, and synchronize changes at a later date using various Office client applications. Enabling this scenario is easy using SharePoint Designer 2010 to map the fields in the data source to fields that Office understands.

The ability to map types to Office properties lets you shape the data when viewed offline in a client application (Figure 10). For instance, we mapped the data in our CRM application to a Contact type, which allows us to view and update the data using Outlook. This is a huge capability for mobile workers making offline edits and synchronizing the data at a later time. For example, mobile sales professionals in the field can make updates in their Outlook contacts and those changes are propagated to the external store.

The ability to connect to external data means that the data can be crawled by SharePoint search as well, incorporating results from third-party systems into the search results across your SharePoint farm. This gives end users an easy way to discover data and to act on it more quickly.

Governance of BCS

Just as BCS lets end users create systems, IT professionals can manage systems and provide controls that enforce the integrity of systems. External lists in SharePoint 2010 use the same permissions capability that we saw earlier, providing the ability to control who can read, update, or make changes to the list. Site administrators can restrict the ability to take data offline. Views, edits, and deletes to data are shown in audit log reports. Farm administrators control access to external entities (Figure 11).

Access Services

We just saw how an end user can connect to a SQL Server database using BCS, but what about scenarios where the user has an Access database that they’ve been maintaining on the desktop in a workgroup scenario? Enter Access Services, a new capability in SharePoint 2010 that allows users to publish Access databases, customize the forms, and provide no-code solutions for manipulating the data through an online interface.

Access 2010 provides the ability to easily create forms for databases through a familiar user interface that is consistent with other forms technologies in InfoPath, Word, and Excel. Users define the forms in the Access 2010 desktop client application (Figure 12) and publish the forms to SharePoint 2010 (Figure 13). Once published, the forms are available in the web user interface in SharePoint (Figure 14). As many companies look to unlock the data in their current Access databases, Access Services provides a very elegant solution to creating composite applications.

Visio Services

Just as InfoPath, Excel, and Access enable end users to publish assets to SharePoint 2010, Visio 2010 introduces a new capability called Visio Services. One very interesting way that Visio Services manifests itself in SharePoint 2010 is through the ability to view the status of a workflow visually (Figure 15).

Users can create diagrams with Visio 2010 and publish them to SharePoint 2010. One way to do this is to upload a Visio document that is viewed with the new Visio Services Web Part. Just configure the Web Part on a page, point it to a Visio 2010 diagram, and the diagram is visible on your page (Figure 16).

Even more interesting is the ability to connect Visio diagrams to live data using Visio Services. This lets you provide visualizations that represent the current state of data. Figure 17 shows a diagram that represents the current state of various servers in a data center.

It’s Your Turn

I covered only a very small subset of the capabilities for creating composite applications in SharePoint 2010. I didn’t include how you can surface data in clients such as Word or InfoPath, how you can create and centrally manage form templates, or how you can use components such as Excel Services to enhance data entry solutions to provide rich business intelligence capabilities.

The key takeaway from this article is that SharePoint 2010 offers a number of foundational capabilities for creating composite applications to rapidly respond to changes in business while providing IT the control it requires for maintaining systems. Your task is to start building upon these foundational capabilities, making business users ecstatic with new possibilities and capabilities, while making IT happy with the levels of control that are provided along the way.