The new arrival has a long and formal name known as Microsoft Outlook Social Connector Provider Extensibility, but the name shouldn’t stop you from getting acquainted with this exciting new extensibility feature for Outlook 2010!
What is an Outlook Social Connector (OSC) provider?
The Microsoft Outlook Social Connector is an add-in that surfaces social network data including friends, profiles, activities, and status information from social networks in Microsoft Outlook. The user interface of the OSC is shown below:
The OSC obtains social network data using an OSC provider, which provides the abstraction layer between the OSC and the APIs offered by social networks.
If the provider implements the required OSC provider extensibility interfaces and is registered with the OSC, the data from the social network becomes available to Outlook so that an end user can view social data in the context of the Outlook user interface. OSC providers can be developed by third parties or individual social networks that want to expose their social data in Outlook. Think of an OSC provider as a translation layer between Outlook and your favorite social network. Another great scenario for corporate customers is to create a provider that connects to a in-house business application, and surfaces business information about people directly inside of Outlook. The provider extensibility stack is represented by the following diagram:
How do I develop an OSC provider?
You can develop an OSC provider using the development tool of your choice. When you develop an OSC provider, you are not writing MAPI or Outlook Object Model code. The OSC core engine handles writing activity or contact information to the user’s default store. Your OSC provider simply hands back XML to the OSC core engine when methods are called on the required interfaces. The XML should conform to the OSC schema defined by OutlookSocialConnector.xsd. Each OSC provider is built on a set of required interfaces that must be implemented by your provider code. The interface contract is defined by a type library installed with the OSC, socialprovider.dll. The documentation for the required interfaces is available in the following MSDN technical article:
An OSC provider can be written using managed languages such as Microsoft Visual C# or Microsoft Visual Basic, or unmanaged languages such as Microsoft Visual C++. Any tool that can create a COM-visible DLL component can be used to develop an OSC provider. The decision to use a managed or unmanaged language to develop a provider should take into account the download size and dependencies of the provider installation package.
An OSC provider must be COM-visible as defined by the following:
- After installation, an OSC provider must be registered using COM self-registration or regsvr32.
- COM registration of an OSC provider DLL registers the provider under HKCU or HKLM.
- A provider’s ProgID is registered under HKCU\Software\Microsoft\Office\Outlook\SocialConnector\SocialProviders
- An OSC provider developed in a managed language (that is, a managed OSC provider) is COM-visible.
Is sample code available?
All developers love sample code that helps to unleash their creativity, so of course sample code is available! To get started, take a look at the sample code available on http://code.msdn.microsoft.com/odcOL14OSCProvider:
- TestProvider, a Visual C# sample provider that implements all interface members required for the Beta version of the OSC
- The OSC schema, OutlookSocialProvider.xsd
- Provider templates that you can use to develop your own provider in the following languages:
- Visual Basic .NET
How do I learn more?
To learn more about OSC provider extensibility, read the technical article on MSDN and download the sample provider and provider templates. Be aware that the OSC interfaces and members might change between the OSC Beta and the final release of Outlook 2010.