Welcome to Office Zealot Sign in | Join | Help

Review of Outlook Social Connector Provider Extensibility

Yesterday, the Outlook Team at Microsoft unveiled via their blog (and by Kurt DelBene’s demo at PDC09) information about the release of the Outlook Social Connector (OSC).  I also briefly discussed it in my last blog, which was written before I even read their blog (thanks to my notes from a private demonstration by the Outlook Team at the MVP Summit last year).  Today, Outlook Development Program Manager Randy Byrne has released the developer documentation on MSDN:

Developing an Outlook Social Connector Provider:
http://msdn.microsoft.com/en-us/library/ee829696(office.14).aspx

This post will review and distil and criticize and applaud where appropriate.  Let’s go!

Old School Implementation

OSC providers need to be built as a COM-visible DLL – which is not surprising.  What’s interesting is that you have a choice of using either unmanaged languages like C++ or managed languages like VB.NET and C# to build them.  The documentation is also very clear – and states this twice – that you should use a native C++ compiler for production providers in order to minimize the download size of the provider and to minimize provider load time.

However, if you can depend on the availability or deployment of the .NET Framework 3.5 SP1, managed providers are fine.  I’m going to guess that social networking providers themselves may opt for unmanaged providers, while the technical community, businesses and small ISVs may choose to develop managed providers.

Requirements

There’s no need to rehash everything the article already states, but the first requirement for your first project is to set a reference to the socialprovider.dll assembly, which exposes the interfaces for Microsoft Outlook Social Provider Extensibility.

The Interfaces – Not Ready For Prime Time?

Essentially, the implementation for your custom provider needs to handle four interfaces:

  • ISocialProvider
  • ISocialSession
  • ISocialProfile
  • ISocialPerson

What’s odd are the number of methods/properties that are not supported in release 1.0 of the OSC:

  • ISocialProvider.DefaultSiteUrls – a list of URLs are supported, but only the first (the default) will be used
  • ISocialProvider.GetStatusSettings
  • ISocialSession.FindPerson
  • ISocialProfile.AreFriendsOrColleagues
  • ISocialProfile.SetStatus
  • ISocialPerson.GetStatus

The most obvious glaring omission is the current lack of support for social statuses.  That’s a big one!  This could very well prevent any Twitter (and Facebook or any other social networks where status is uber-critical) providers from being fully developed at this time in the Beta.  Although using ISocialProfile.GetActivities may be the mechanism to retrieve a full list of status updates, it remains to be seen how the UI in the People Pane will treat activity feeds if they are used to display statuses that may be completely different entities compared to activities (depending on the social network).  I imagine the title strip in the People Pane is where status updates are supposed to be displayed, so hopefully this can be cleared up soon.

I’m also not clear on the difference between ISocialSession.FindPerson and ISocialSession.GetPerson.  The former – not implemented yet – returns a String and the latter returns a full ISocialPerson interface (both take userID strings as a parameter).  Hopefully this is something that can be ignored for beta providers without handicapping the feature set.

Authentication – Not For The Corporate Domain??

The ISocialSession interface is what is needed to authenticate with your social network.  It supports two methods – Logon and LogonWeb.  Logon is meant for basic authentication mechanisms – so a simple username and password implementation.  LogonWeb is to be used for forms based authentication.  Both are fine of course and can be used for the majority of social networks.  But what about Windows Authentication??  What if your provider is leveraging domain resources and Active Directory?  It’s unclear to me whether we can leverage the System.Net.NetworkCredential class and use the identity of the logged on user to sign into domain based resources utilized by the provider.  It sounds like providers may need to ask the user to enter their username and password – and store and encrypt them – in order to let the provider sign in to the domain the user is already logged into!  This approach won’t be very elegant, but may need to be swallowed for this version.  Hopefully the next rev for the OSC provides additional authentication methods – especially Windows Authentication for providers that may be leveraging LOB systems.

A Walkthrough Of The Sample Project

A Visual Studio project is available for download so that you can see how the interfaces are implemented:

Outlook 2010 Sample - Social Connector Provider

I ran the project and stepped through the code to briefly see it in action.  There’s no point going into detail about the order of events in the various interfaces – I just want to see what the sample provider really does.  So the first thing I did was add the TestProvider network:

TestProviderAccount

Clicking Connect validated my login (any username or password can be used for this project):

TestProviderAccount2

Great – I’m in.  So now what?  I tried adding myself to the TestProvider network:

AddAction 

AddPerson

This didn’t do much but create an ugly icon:

AddActionResult

The tooltip on the icon said “Unable to add person on TestProvider.  Please try again later”.  Okay, that’s fine.  This is a sample project and the data is static.

So what else can we do?  Check this out – by setting the proper registry keys (HKEY_CURRENT_USER\Software\Microsoft\Office\Outlook\SocialConnector – set ShowDebugButtons to 1), you can enable the display of some buttons in the Add-Ins tab on the Ribbon for testing purposes:

ToolbarCommands

I clicked Sync Feeds, and saw a call to the TestProfile.GetActivitiesOfFriendsAndColleagues method which retrieved three activities.  So where are the activities?  Look here:

NewsFeed

It looks like Activities from all providers are stored in the News Feed folder.  I was under the impression that provider storage utilized provider-specific sub-folders. More on that in a sec…

I then clicked the Sync Contacts button, which did create a provider-specific Contacts folder…Contacts

…and added two new Contacts to it. I’m not sure why the user name is included in the folder name along with the name of the provider (TestProvider – foo).  Maybe there’s a need to allow signing in to a provider’s social network using multiple accounts and keeping your Contacts separate per user.

Another interesting thing is that the People Pane is also visible in the Contact form:

ContactPeoplePane

Here you can see the same entries in the News Feed folder in the All Items view (as aggregated from the Activities view).

Conclusion

So developing a provider seems pretty straightforward.  There are considerations for best practices as listed in the MSDN article.  The main points of consideration are to get a handle on the deployment requirements regarding the necessary registry keys for provider registration, and to be aware of the effects from making a high volume of calls to the social network from your provider.

Watch this space for more information as I dig deeper!

Note: Keep an eye on the Outlook Team Blog for more information about provider extensibility from Randy Byrne.

Posted by legault | 1 Comments
Filed under:

Introducing the Outlook Social Connector

Today at PDC09 they finally announced a product that I’ve been itching to talk about for a long time.  In March at the MVP Summit, the Outlook product team gave us Outlook MVPs a private demonstration of the Outlook Social Connector (OSC).  For those of you running the Office 2010 Beta, you may have seen this and been wondering what it is.

So what is it?  The OSC is a set of features designed to help users keep track of friends and colleagues while enabling them to grow their professional network.  It is an add-in distributed with Outlook 2010 and will be available as a free download for Outlook 2003 and 2007!

In essence – Twitter, Facebook, LinkedIn, you name it – has arrived in Outlook in a very cool way.

The implementation is via an extension to the Reading Pane (and inside open e-mail messages):

peoplepane

The purpose is to present contextual relevant information about the person who sent you the e-mail.  The top panel shows the name and title of the person currently selected, which can be changed by clicking the thumbnail photos (or the photo placeholder icon for those without a photo) at the right side of the strip.  You can also click the two person icon at the end to flip the pane to a thumbnail photo view for all recipients and senders in the current e-mail:

photopane

Back in the main view of the People Pane, there are six icons aligned vertically:

  • Home – All Items
  • RSS – Activities
  • Mail
  • Attachments
  • Meetings
  • Status Updates

Each of these areas will show information either from Outlook or elements exposed via whatever providers for the OSC are currently installed.  The icons will be provider specific. Which brings me to this dialog, which you can see by clicking the Add button in the People Pane:

splashpage

Following this wizard brings up this screen:

accounts

Since I don’t have SharePoint 2010 installed yet, the info I’m getting for the OSC is just standard Outlook data, like e-mails and appointments related to the current thread.

Obviously, Twitter and Facebook providers are imminent!  However, the link in the dialog for a listing of online providers is currently not live.

The Implementation

Anyway, how does this all work?  Essentially, all related people in your provider’s network will be stored as Outlook Contacts.  This data will either be cached or permanent and stored in provider specific Contact folders.  For locally cached Contacts, I believe they are synchronized with the Global Address List and then the default Contacts folder, but I need to confirm how this works.

For Activities, these items will be stored in the root News Feed folder, with sub-folders for each installed provider.  This folder also contains a folder home page (no screenshot yet) that will:

  • Display “My Network News”
  • Aggregate info from the Contacts in all providers
  • Set your status updates (as per Facebook)
  • Add “People You May Know” from a list of suggested people

Entries in the feed will show information like:

  • “Joan added new photos”
  • “Dave authored a new blog post”
  • “Fred added a colleague”
  • “Denise is Out Of Office until [Date]”
  • “Abe created a new Word document “Foo1.docx”

So what’s it all mean?  The scenarios for the end user leveraging the OSC are pretty basic:

  • Build your professional network
  • Keep track of people in your networks
  • Find out what you need to know about the people you communicate with
  • Fully deployable with policies and configuration settings

You can obviously imagine that the possibilities are endless!  Since this is an open framework, we will be seeing plug-ins appear for an increasing list of providers – some built by the official caretaker of the provider data and some built by the community, ISVs or social networking companies. I wonder how many Facebook or Twitter providers will pop-up?  I wonder if the defacto Facebook provider will be built by Facebook themselves, or by some 14 year-old programmer in their room?  Will they be free? $29.99? Subscription based?  Regardless, this is going to be a very interesting market!

Stay tuned for more posts I have in the works, especially on how the SharePoint provider works and details on the provider architecture and how developers can build their own provider services for use with the OSC.

More information is available on the Outlook Team Blog, which just got published:

http://blogs.msdn.com/outlook/archive/2009/11/18/announcing-the-outlook-social-connector.aspx

Posted by legault | 2 Comments
Filed under:

SharePoint Connections Conference 2009 – Las Vegas

I’d like to thank all those who came out to my sessions!  I had a great time last week and met some smart and interesting people.

To recap, these were the sessions I delivered:

HDV308: Enhancing Connected SharePoint Lists in Outlook 2007
HDV307: Building SharePoint Applications for Outlook and Exchange
HDV101: Social Networking and Collaboration in Outlook and SharePoint

The updated code and slide decks are available for download here:

http://www.devconnections.com/updates/LasVegas_Fall09/SharePoint

If you have any questions, don’t hesitate to drop me a line.

Posted by legault | 0 Comments
Filed under: , ,

My Colligo Webinar – Available Now On Demand

The webinar I presented September 30th on “How to Implement an Effective Email Attachment Solution in SharePoint” is now available on demand.

In this on-demand webinar, you will learn:

  • The advantages of managing attachments in SharePoint
  • The requirements for a SharePoint-based solution
  • Architectural and implementation considerations
  • How an end-to-end attachment management solution can be deployed today using Colligo Contributor Add-In for Outlook

Enjoy!

Posted by legault | 0 Comments
Filed under: , ,

My webinar on storing Outlook attachments in SharePoint, using Colligo

2009-09-09-webinar

How to Implement an Effective Email Attachment Solution in SharePoint

According to industry analysts, attachments make up as much as 90% of all data stored in Microsoft Exchange, often clogging mailboxes with redundant and out-of-date information. Moving attachments to a content management platform such as Microsoft SharePoint provides the ability to tag, search, share and single instance files while controlling access and managing versions. Despite these benefits, user adoption can be low because of the cumbersome process required to save, tag, and link to SharePoint through the Microsoft Outlook interface.

Attend this practical “How To” webinar to learn how you can overcome objections and develop an effective email attachment management solution in SharePoint. Join Microsoft MVP Eric Legault as he shares tips and tricks to help your organization leverage your investment in SharePoint today.  

In this webinar, you’ll learn:

  • The advantages of managing attachments in SharePoint
  • The requirements for a SharePoint-based solution
  • Architectural and implementation considerations
  • How an end-to-end attachment management solution can be deployed today using Colligo Contributor Add-In for Outlook

If you are responsible for SharePoint or Exchange in your organization, you won’t want to miss this webinar! Join us to learn Best Practices for using SharePoint for attachment management – register today.

WHAT - How to Implement an Effective Email Attachment Solution in SharePoint

WHEN & WHERE - Wednesday, September 30, 2009
8:00 AM Pacific / 11:00 AM Eastern
4:00 PM London / 5:00 PM Paris
Online Webinar

PRESENTERS - Eric Legault, MVP, Consultant & Author and Barry Jinks, President & CEO, Colligo Networks Inc.

COST - COMPLIMENTARY

REGISTER - Register HERE Today
Even if you can't make the date, please register and we will send you a link to the on-demand webinar when it's available.


Web Seminar Guest Speaker - Eric Legault
Founder, Collaborative Innovations

Eric Legault, a Microsoft Most Valuable Professional for Outlook since 2003, is the founder of Collaborative Innovations, a Micro ISV and consulting services provider specializing on Microsoft messaging and collaboration solutions. Eric has over 13 years experience in the IT industry and has focused his energies developing solutions based on Microsoft application platforms. He has published articles in MSDN, Office Online, Windows IT Pro magazine, edited books on Outlook, SharePoint and Access, and maintains a blog on Outlook programming and SharePoint technologies. His current focus is on developing custom Outlook Add-Ins to integrate line of business applications or enhance collaboration processes and workflows. Eric is also the co-founder of the Winnipeg SharePoint User Group and a guest speaker at conferences around the globe.

Web Seminar Host - Barry Jinks
President & CEO, Colligo Networks Inc.

Barry Jinks is the President and CEO of Colligo Networks, a leader in desktop collaboration solutions used by Global 500 companies. A recognized expert on SharePoint client software, Barry maintains the popular www.OfflineSharePoint.com blog and is a frequent speaker at industry conferences, including the Information Technology Alliance, WiFi Planet, SharePoint, and Collaborative Technologies conferences.

Posted by legault | 2 Comments
Filed under: , ,
More Posts Next page »