Because of SharePoint’s wide breadth of features, powerful customization options and, frankly, general usefulness, it makes a lot of sense for an ISV to integrate with it. Of course, this is not necessary to become a go-to location on an intranet. However, by integrating, you are placing your application in the heart of an organization’s collaboration environment. Not only will users more readily experience your app’s power and functionality, they will experience it in the context of organization-wide search, pertinent documents, workflows, reporting and even social networking.
SharePoint is becoming a strategic productivity hub for the mid-sized & enterprise markets. It is where organizations are directing users to discover information, store & collaborate on documents, manage projects, read organizational news, manage shared calendars, etc. Furthermore, it is booming! SharePoint alone did $1.5 billion in revenue for Microsoft in 2010 and is found in 75% of all Fortune 500 corporations. According to this ZDNet article, a staggering 20,000 user licenses are being sold per day!
Great! So how do I do it?
Of course, there are a wide variety of ways to plug into SharePoint. When I work with ISVs who are considering integration, one of my core tenets is that deeper integration with SharePoint makes it more likely that the application will become ingrained in key business processes. Naturally, this is an extremely powerful thing for the customer and the ISV.
Usually, ISVs that I work with haven’t started out with that core principle. Many just want a SharePoint integration story so that an additional box can be checked on an RFP form. However, soon their customers start clamoring for more and more functionality.
“Why can’t I search for this data the same way I search for everything else?”
“Why can’t I get at some content as part of a structured workflow?”
“I’m already seeing your data in SharePoint. Why do I have to retype it into lists and documents?”
“Why can’t your application create SharePoint and Outlook tasks?”
This is because they’ve created a web part or two that can sit on a page and surface functionality from their application. This is a great start, but lacks a tight integration story. At this point, they have essentially a glorified Iframe.
Almost without fail, at this point, I recommend that we integrate using Business Connectivity Services. To quote Microsoft:
Business Connectivity Services is a set of services and features that provide a way to connect SharePoint solutions to sources of external data and to define external content types that are based on that external data… [BCS] solutions use a set of standardized interfaces to provide access to business data. As a result, developers of solutions do not have to learn programming practices that apply to a specific system or adapter for each external data source. Microsoft Business Connectivity Services also provide the run-time environment in which solutions that include external data are loaded, integrated, and executed in supported Office client applications and on the Web server.
Essentially, with BCS, you surface application data as native SharePoint data. When users search for content, your application data appears right along-side documents, users, discussions, etc… Likewise, your data will exist in its own SharePoint lists and appear alongside data in other well-known lists like document libraries, tasks, calendars, etc… In fact, it can even be inside Word documents.
This deeper level of integration gives power users and SharePoint designers the ability to customize their experience in working not only directly with your application data, but also in how your application data shows up in their day-to-day processes. For example, a sales person can add product data that exists in your ERP system directly to an Invoice that they are creating in Microsoft word simply by selecting the product name from a drop down. Likewise, customers from 3rd party systems such as SalesForce.com or Dynamics CRM can appear in SharePoint search, exist in their own SharePoint contacts lists, and even be added to Statements of Work.
Give it a shot!
Using BCS takes work. It involves more coding than you’d otherwise need and more upfront planning. It’s frequently passed over for faster up-front solutions – most commonly custom web parts that call a service directly. It is worth considering going with BCS and the deeper level of integration that gives your customers the opportunity to ingrain your application into their daily business processes. This will drive value from your application in ways you haven’t even thought of yet. Ideally you will find your application has become an indispensable part of the organization.