Top Banner
Benefits of SharePoint 2010 as a Product Platform For Independent Software Vendors and Enterprises Authors: Owen Allen – Principal, SharePoint Directions Eric Bowden – Senior Consultant, ThreeWill Kirk Liemohn – Principal Software Engineer, ThreeWill Danny Ryan – Principal, ThreeWill Tommy Ryan – Principal, ThreeWill Pete Skelly – Principal Consultant, ThreeWill John Underwood - Technical Evangelist, ThreeWill Contributors: Geoffrey Edge – Senior Technology Specialist, Microsoft Corporation Kirk Evans – Developer and Platform Evangelism for Communications Sector, Microsoft Corporation Chris Mitchell – Technology Architect for Microsoft Technology Center, Microsoft Corporation Reviewers: Bill Arconati – Product Marketing Manager, Atlassian Software Systems Tony Clark – Director, Enterprise Architecture, Cox Enterprises Geoffrey Edge – Senior Technology Specialist, Microsoft Corporation Bo George – Senior Application Developer, Aflac Murray Gordon – ISV Architect Evangelist, Microsoft Corporation Adam P. Morgan - Enterprise Sales, Digital Marketing Platform Group, Microsoft Corporation Aaron Rafus – Technology Evangelist, McKesson Corporation William Rogers – Chief Workplace Architect, CorasWorks Corporation Scott Schemmel - VP, Global Information Technology at PGi Brendon Schwartz – Senior Platform Engineer, JackBe Corporation Cole Shiflett – Solutions Architect, Equifax Dr. Todd Stephens – Senior Technical Architect, AT&T Matt Waltz – Chief Technology Officer, NextDocs Michael Wilson – Solution Specialist for Office and SharePoint, Microsoft Corporation Date published: November 2010 Summary During the 2009 SharePoint Conference, Christian Finn, Director of SharePoint Products for Microsoft, commented that given current trends, building products on the SharePoint Platform is the “new black.” To make his case, he cited the momentum of the SharePoint platform along with significant announcements from companies building integration with SharePoint into their products and services. This white paper, designed for Independent Software Vendors, software architects, CIOs, and other enterprise technology leaders picks up this discussion by addressing the perceived limitations that may cause development companies to discount SharePoint as a development platform when drawing up a technology roadmap – and illustrating the value of leveraging SharePoint as a Web Application Development Platform for those organizations.
34

Benefits of SharePoint 2010 as a Product Platformthreewill.com/wp-content/uploads/Benefits-of-SharePoint...Benefits of SharePoint 2010 as a Product Platform For Independent Software

May 22, 2018

Download

Documents

phamnhan
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Benefits of SharePoint 2010 as a Product Platformthreewill.com/wp-content/uploads/Benefits-of-SharePoint...Benefits of SharePoint 2010 as a Product Platform For Independent Software

Benefits of SharePoint 2010 as a Product PlatformFor Independent Software Vendors and Enterprises

Authors:

Owen Allen – Principal, SharePoint DirectionsEric Bowden – Senior Consultant, ThreeWillKirk Liemohn – Principal Software Engineer, ThreeWillDanny Ryan – Principal, ThreeWillTommy Ryan – Principal, ThreeWillPete Skelly – Principal Consultant, ThreeWillJohn Underwood - Technical Evangelist, ThreeWill

Contributors:

Geoffrey Edge – Senior Technology Specialist, Microsoft CorporationKirk Evans – Developer and Platform Evangelism for Communications Sector, Microsoft CorporationChris Mitchell – Technology Architect for Microsoft Technology Center, Microsoft Corporation

Reviewers:

Bill Arconati – Product Marketing Manager, Atlassian Software SystemsTony Clark – Director, Enterprise Architecture, Cox EnterprisesGeoffrey Edge – Senior Technology Specialist, Microsoft CorporationBo George – Senior Application Developer, Aflac Murray Gordon – ISV Architect Evangelist, Microsoft CorporationAdam P. Morgan - Enterprise Sales, Digital Marketing Platform Group, Microsoft Corporation Aaron Rafus – Technology Evangelist, McKesson CorporationWilliam Rogers – Chief Workplace Architect, CorasWorks CorporationScott Schemmel - VP, Global Information Technology at PGi Brendon Schwartz – Senior Platform Engineer, JackBe CorporationCole Shiflett – Solutions Architect, EquifaxDr. Todd Stephens – Senior Technical Architect, AT&TMatt Waltz – Chief Technology Officer, NextDocsMichael Wilson – Solution Specialist for Office and SharePoint, Microsoft Corporation

Date published: November 2010

SummaryDuring the 2009 SharePoint Conference, Christian Finn, Director of SharePoint Products for Microsoft, commented that given current trends, building products on the SharePoint Platform is the “new black.” To make his case, he cited the momentum of the SharePoint platform along with significant announcements from companies building integration with SharePoint into their products and services. This white paper, designed for Independent Software Vendors, software architects, CIOs, and other enterprise technology leaders picks up this discussion by addressing the perceived limitations that may cause development companies to discount SharePoint as a development platform when drawing up a technology roadmap – and illustrating the value of leveraging SharePoint as a Web Application Development Platform for those organizations.

Page 2: Benefits of SharePoint 2010 as a Product Platformthreewill.com/wp-content/uploads/Benefits-of-SharePoint...Benefits of SharePoint 2010 as a Product Platform For Independent Software

2 3

Contents

Why This White Paper ..............................................................3

SharePoint Background ...........................................................4

Audience for this Paper............................................................6

Making the Case for SharePoint .............................................7

Does SharePoint Fit .........................................................................7

Making the Case ...............................................................................8

Leveraging the Platform ............................................................8

Understand Your Value Proposition ......................................8

SharePoint Platform Strategies ..............................................9

Connect ................................................................................................9

Extend .................................................................................................11

Build On .............................................................................................12

Platform Capabilities ..............................................................13

Infrastructure ...................................................................................13

ASP.NET HTTP Pipeline ................................................................. 13

Application Security ....................................................................... 14

Service Applications ....................................................................... 14

Packaging and Deployment ....................................................... 14

Office 365 & SharePoint Online ................................................ 14

Content Management ..................................................................15

External Data ..................................................................................... 15

Business Intelligence ...................................................................... 16

Search .................................................................................................. 16

Workflow ............................................................................................ 17

Data Model User Interface .......................................................... 17

And More... ........................................................................................ 17

User Interface ...................................................................................18

Platform Capabilities Summary ................................................19

Barriers to Adoption as a Development Platform ............20

Perceived Barrier 1 - Unique Developer Skill Set .........................................................20

Perceived Barrier 2 - Closed or Restrictive Platform Services ..................................20

Perceived Barrier 3 - Lack of Integration with External or Relational Data ........21

Perceived Barrier 4 - Application Lifecycle Management (ALM) and Code Isolation. .................................................................................21

Is Perception Reality? ....................................................................22

Misconceptions of SharePoint as an Application Platform ..............................................................23

Misconception 1 - A SharePoint Dependency Means Closed Architecture .......................................................................23

Misconception 2 - SharePoint Applications Are Too Restrictive ........................23

Misconception 3 - SharePoint Is Only a Document Repository..........................24

Misconception 4 - SharePoint Cannot Be Used to Run Line of Business Applications ..............................................................25

Community Support and Tooling ........................................26

Community .......................................................................................26

Visual Studio ....................................................................................26

Debugging ........................................................................................26

SharePoint Designer ......................................................................27

Third Party Tools .............................................................................27

Office 365 & SharePoint Online Resources ...........................27

Next Steps .................................................................................28

Feature Mapping ............................................................................28

Market Analysis ...............................................................................28

Bake Off .............................................................................................28

Pilot Project ......................................................................................28

Consult with Others .......................................................................28

ISV Ecosystem Map ........................................................................29

Key Resources ..................................................................................30

References .........................................................................................30

Glossary of Terms ...........................................................................31

Footnotes ..........................................................................................34

Page 3: Benefits of SharePoint 2010 as a Product Platformthreewill.com/wp-content/uploads/Benefits-of-SharePoint...Benefits of SharePoint 2010 as a Product Platform For Independent Software

3

Why This White Paper

As with any evolving product, there are false ceilings set due to people’s experiences with previous versions. The initial core features/capabilities for SharePoint were targeted to provide out-of-the-box features that made the product easy to use and administer for team sites and portals. The product was extensible from the beginning, but it was not architected for the mainstream developer. This focus has changed over the years and there are very compelling reasons that product companies should consider SharePoint in their technology roadmaps.

The ability to leverage the rich features of SharePoint technologies is reason enough to consider SharePoint as a web development platform. Another key reason to consider either building on top of SharePoint or having a connection strategy with SharePoint is market opportunities that come from being associated with this popular platform (over 100 million licenses of SharePoint have been sold). The purpose of this white paper is to address the perceived limitations that typically cause product companies to discount SharePoint when determining a technology roadmap for their products.

This white paper will dive into some of the features of the platform, including how a company could build a better product faster and take advantage of the rapid adoption and increased market interest in SharePoint as a platform. Also described in this paper are the Connect, Extend, and Build On strategies and the advantages of each approach.

Page 4: Benefits of SharePoint 2010 as a Product Platformthreewill.com/wp-content/uploads/Benefits-of-SharePoint...Benefits of SharePoint 2010 as a Product Platform For Independent Software

4 5

SharePoint Background

SharePoint is now in its fourth version. It has matured over the past decade since its first versions of SharePoint Team Services (STS) and SharePoint Portal Server (SPS) 2001.

It is amazing to see the vision that the early SharePoint team had and how they have come through to deliver on that vision1.

SharePoint, in the early days of its product lifecycle, provided an application for team and portal implementations. True customization was limited. Unlike subsequent versions of SharePoint, the two collections of services in its first version, SharePoint Team Services (STS) and SharePoint Portal Server (SPS), did not completely share a common framework.

With the second version, Windows SharePoint Services (WSS) 2.0 and SPS 2003, a third-party developer community began to form. This community was primarily focused on the gap between SharePoint features and the typical needs for team sites and portals. These products often took form as components (such as a web part) that would empower end users to put together lightweight applications. Also, the concept of mashing up data from sources inside and outside of SharePoint started to take shape. Outside of the development of third-party products, the developer community shied away from SharePoint customization because the techniques were often fragile. For example, the ONET.XML had to be changed to make branding changes; yet this SharePoint system file has also had the potential to be changed in subsequent service pack updates, overwriting the customizations. Also, the SharePoint technology stack was executing in parallel to ASP.NET runtime instead of being built directly on top of it: SharePoint had a separate ISAPI filter and did not run through the ASP.NET ISAPI filter. As a result, SharePoint could not take advantage of the extensive features offered by ASP.NET.

SharePoint HistoryTo get a good glimpse of the product history read Jeff Teper’s post on SharePoint History. Jeff is the Corporate VP of SharePoint and provides a good perspective on how an early vision of SharePoint has prevailed over the years. As stated in the blog post, the strategy from the beginning has been:

Great Integrated Solution

Out-of-Box Web Workspace

Compelling Office Integration

Easy & Flexible Deployment

With the release of WSS version 3 and Microsoft Office SharePoint Server (MOSS) 2007, a developer community for in-house developers and consultants started to form, while the third-party developer community continued to expand rapidly. The extensibility story became richer and the viability of SharePoint as a web application development platform emerged. The services available to build upon in SharePoint allowed for enhanced custom solution scenarios that could leverage Windows Workflow Foundation, web content management (via the incorporation of the Microsoft Content Management Server product), a rich event model and search capabilities, to name just a few areas.

Page 5: Benefits of SharePoint 2010 as a Product Platformthreewill.com/wp-content/uploads/Benefits-of-SharePoint...Benefits of SharePoint 2010 as a Product Platform For Independent Software

5

SharePoint Background

TerminologyThroughout this white paper we will use the terms SharePoint 2003, SharePoint 2007, etc. when we need to differentiate between releases of SharePoint. If necessary, we will use the license names/abbreviations (e.g., WSS v3, MOSS 2007), will be used.

CommunitiesComposites

Insights Content

Sites

Search

Master Page Web Pages (ASPX)

Site PagesCustomized Ribbon

Server Control

Server Control

User Control

Web Part

CustomAction

Silverlight

Clie

nt

OM

AJA

X

SharePoint

JavaScript

SharePoint Web Services

Clie

nt

OM

AJA

X

SharePoint API

Server-Side UI

Windows App

Clie

nt

OM

SvcP

roxy

• Microsoft SharePoint Foundation 2010• Microsoft SharePoint Server 2010

2010

• Windows SharePoint Services v3• Microsoft Office SharePoint Server 2007

2007

• Windows SharePoint Services v2• SharePoint Portal Server2003

2003

• SharePoint Team Services• SharePoint Portal Server

2001

Integrate an existing product with SharePoint to enable the two products to

work together.

Connect

Create integrated solutions that extend SharePoint

feature offerings - or that leverage or include

SharePoint capabilities.

Extend

Create solutions on top of the SharePoint

infrastructure that leverage the breadth of

capabilities provided by the SharePoint platform.

Build On

Dep

loym

ent

Serv

ice

Ap

plic

atio

nA

rch

itec

ture

ASP.NET

Windows Server

Authentication

IIS

Content & Configuration Databases

SQL Server

Authorization ProvisioningRequestPipeline

MembershipProvider

Scal

abili

ty

OOTB ContentManagement

• Content Versioning• Check-in/Check-out• Content Approval• Records Routing• Information Management Policies• CRUD UI• Social Content• Workflow• Content Types• Field Types• Office Integration• Offline Data• Web Services• Search

Extension PointHighlights

• Event Receivers• Custom Field Types• Rendered Columns• Custom View Types• External Data• Custom Actions• Custom Information Management Policies• Custom Workflows• Custom Workflow Actions• Custom Content Types• Custom User Defined Functions• Custom Web Services• Custom CRUD UI• Custom Search Content Sources

With SharePoint 2010, the names of the component products have changed. The successor to Windows SharePoint Services 3.0 is named Microsoft SharePoint Foundation 2010 and the next version of Microsoft Office SharePoint Server 2007 is named Microsoft SharePoint Server 2010. The term “SharePoint 2010” is often used as an umbrella term to refer to SharePoint services generically, without being specific to SharePoint Foundation or SharePoint Server. The developer story has also greatly improved in SharePoint 2010. Whether building composite applications without code or getting into Visual Studio and building a packaged solution, there are many tools and features available. In addition, the platform story has only gotten better in 2010 and is becoming a key strategy for the SharePoint product. This paper will dive into a few key platform capabilities and reveal why they could be important to your product development technology roadmap.

The SharePoint Team has done an excellent job of establishing SharePoint as an “Application” and has made major strides toward SharePoint being a “Platform”. From developer tools to open-source communities to development APIs, it is clear that the SharePoint Product Team does not intend SharePoint to be a “sealed” application. To the contrary, SharePoint has evolved into a web application development and integration framework for Microsoft Developers to connect, extend, and build on.

Page 6: Benefits of SharePoint 2010 as a Product Platformthreewill.com/wp-content/uploads/Benefits-of-SharePoint...Benefits of SharePoint 2010 as a Product Platform For Independent Software

6 7

The audience for this white paper is software product companies, which we will refer to as ISVs (Independent Software Vendors), as well as software architects, CIOs, and other enterprise technology leaders. The information in this paper is technical in nature so technical decision makers will best connect with the content.

For SharePoint, Microsoft groups ISVs (see “Appendix A: SharePoint ISV Partner Ecosystem Map” for examples) into:

• Technology Solutions – ISVs that extend the functional areas of SharePoint

• Horizontal Business Solutions – ISVs that create broad solutions that can apply to most companies’ needs regardless of their industry; this paper refers to them as Horizontal ISVs

• Vertical Business Solutions – ISVs that create industry-specific solutions; this paper refers to them as Vertical ISVs

Note that Enterprises also have internal development efforts that are very similar to product development that is performed with ISVs. Enterprises will connect, extend, or build on SharePoint to provide solutions such as:

• Connect SharePoint to proprietary or legacy systems to share data among systems or to provide an improved usability or accessibility experience to employees or client/customers

• Extend SharePoint's team site and collaboration templates and capabilities to include standard features that are specific to the companies’ collaboration disciplines

• Build On SharePoint through the development of custom line-of-business applications that automate processes based on the companies’ intellectual properties and business requirements

That being said, Enterprises should also consider in their technology roadmaps and architects, CIOs, and other technology leaders can benefit from reading this white paper.

Audience for this Paper

Page 7: Benefits of SharePoint 2010 as a Product Platformthreewill.com/wp-content/uploads/Benefits-of-SharePoint...Benefits of SharePoint 2010 as a Product Platform For Independent Software

7

Making the Case for SharePoint

Does SharePoint FitSharePoint can fit many product scenarios. Understanding if there is any alignment of SharePoint product features to your product’s features is key to determining a fit. A good place to start is exploring the six high-level product capabilities of

SharePoint 2010 found in the diagram below (these descriptions can also be found on the SharePoint 2010 Capabilities2 page).

Sites - SharePoint Sites deliver a single infrastructure to provide portal and collaboration capabilities across intranet, extranet, and internet sites. SharePoint Sites bring users together to share information, data, and expertise across organizations.

Communities - SharePoint Communities empower people to work together in ways that are most effective for them. SharePoint Communities make it possible for people to collaborate in groups, share knowledge and ideas, connect with colleagues, and find information and experts easily.

Content - SharePoint Content enables all users to participate in a governed, compliant content management lifecycle. SharePoint Content makes it possible to expertly balance user experience with policy and process.

Search - SharePoint Search gives users the ability to find the content, information, and people they need by combining an integrated, easy-to-manage platform with best-of-breed enterprise search technology.

Insights - SharePoint Insights enables users to access and interact with information across unstructured and structured data sources. SharePoint Insights empower users to discover the right people and expertise to make better and more agile business decisions.

Composites - SharePoint Composites empower users to rapidly respond to business needs by creating their own no-code solutions, on premises or in the cloud, through a rich set of building blocks, tools, and self-service capabilities.

CommunitiesComposites

Insights Content

Sites

Search

Master Page Web Pages (ASPX)

Site PagesCustomized Ribbon

Server Control

Server Control

User Control

Web Part

CustomAction

Silverlight

Clie

nt

OM

AJA

X

SharePoint

JavaScript

SharePoint Web Services

Clie

nt

OM

AJA

X

SharePoint API

Server-Side UI

Windows App

Clie

nt

OM

SvcP

roxy

• Microsoft SharePoint Foundation 2010• Microsoft SharePoint Server 2010

2010

• Windows SharePoint Services v3• Microsoft Office SharePoint Server 2007

2007

• Windows SharePoint Services v2• SharePoint Portal Server2003

2003

• SharePoint Team Services• SharePoint Portal Server

2001

Integrate an existing product with SharePoint to enable the two products to

work together.

Connect

Create integrated solutions that extend SharePoint

feature offerings - or that leverage or include

SharePoint capabilities.

Extend

Create solutions on top of the SharePoint

infrastructure that leverage the breadth of

capabilities provided by the SharePoint platform.

Build On

Dep

loym

ent

Serv

ice

Ap

plic

atio

nA

rch

itec

ture

ASP.NET

Windows Server

Authentication

IIS

Content & Configuration Databases

SQL Server

Authorization ProvisioningRequestPipeline

MembershipProvider

Scal

abili

ty

OOTB ContentManagement

• Content Versioning• Check-in/Check-out• Content Approval• Records Routing• Information Management Policies• CRUD UI• Social Content• Workflow• Content Types• Field Types• Office Integration• Offline Data• Web Services• Search

Extension PointHighlights

• Event Receivers• Custom Field Types• Rendered Columns• Custom View Types• External Data• Custom Actions• Custom Information Management Policies• Custom Workflows• Custom Workflow Actions• Custom Content Types• Custom User Defined Functions• Custom Web Services• Custom CRUD UI• Custom Search Content Sources

These product capabilities have considerable depth. This paper will not cover each one in detail, but will provide descriptions that could be helpful to those considering whether to build similar capabilities into their product(s) from the ground up. For more detail, please read this post from the SharePoint Product Team Blog3 . It provides 40 examples of investments in the six functional categories of SharePoint 2010 mentioned above along with Administration and Development areas of the platform.

In addition to these high-level solution areas, SharePoint provides a number of built-in features required by many web solutions. Thus by adopting SharePoint, an ISV can reuse rather than reinvent them. These capabilities include:

• List and Library Management – The ability to store information in lists which can be created by users or programmatically, and which have rich built-in capabilities such as check-in and check-out, versioning, approvals, folder hierarchies, data validation, user-configurable views, calculated fields and more. Input forms, item and list level views, grid-based editing, RSS rendering and more are also built into all lists. Libraries build on lists by including binary objects such as documents, images, and digital media.

• Provisioning – The ability to allow users to easily provision new sites and lists as their business needs dictate.

• Security – A comprehensive authentication and granular authorization system are built in and govern access to all aspects of SharePoint.

• User Interface – “Web Parts,” wiki style editing, a “Fluent” ribbon-based menu system, AJAX- style dialog boxes and more are all provided. These features not only save development effort, they provide a strong level of consistency that aids in usability and adoption.

• Forms and Workflows – Tools such as InfoPath and SharePoint Designer allow business analysts and power users to construct workflow-oriented business applications. ISV’s can easily add to the capabilities available in such solutions, and can also provide pre-built forms and workflows oriented to specific horizontal or vertical business scenarios.

The reuse of these capabilities allows ISV’s to focus on their core values rather than reinventing yet another security system or UI. They also allow business users to combine SharePoint and ISV features to build solutions that uniquely address their business needs.

Page 8: Benefits of SharePoint 2010 as a Product Platformthreewill.com/wp-content/uploads/Benefits-of-SharePoint...Benefits of SharePoint 2010 as a Product Platform For Independent Software

8 9

Making the Case for SharePoint

Making the CaseGetting the most out SharePoint as a basis for ISV offerings comes from understanding the platform and the value of having a product associated with SharePoint in the marketplace. Let’s explore this idea further.

Keep in mind that some horizontal ISVs are creating solutions that fit in vertical markets. They are typically not fully featured, but with customizations they can compete in certain verticals.

Leveraging the PlatformTo get the most from leveraging SharePoint as a platform, begin by considering its built-in features and which of its capabilities are relevant to your solution space. Most organizations typically deploy one to two key workloads or capabilities at a time. For the best ROI (return on investment) and TCO (total cost of ownership), incorporate as many of the SharePoint built-in features as possible and follow common SharePoint best practices. This will allow faster time to market and lead to a product that will benefit from new releases of SharePoint.

One simple example of leveraging the SharePoint platform is document management. For instance, with the check in and check out of documents, you can embrace the built-in document management features of SharePoint that provides this capability. Taking this approach will save money by not having to build the feature from scratch, and will avoid confusing users by providing a consistent way to perform this task. In addition, the product will benefit from future upgrades to the SharePoint feature.

Because SharePoint is a platform built on top of ASP.NET, many development skills are readily transferable. Understanding how to build ASP.NET applications with .NET framework languages is an extremely sound foundation for leveraging SharePoint as a development platform. The SharePoint tooling in Visual Studio 2010 is quite mature, and there is a well-established SharePoint community to help in the learning process of your team.

Understand Your Value PropositionWhen building a roadmap, it is important to understand SharePoint’s strengths and weaknesses along with those of other SharePoint ISVs. A significant part of the product value is usually based on the feature gap between SharePoint and what the current users and administrators need from their SharePoint environment.

With Vertical ISVs, it is easier to determine the value proposition. The vertical markets have their own ecosystem of products that have established pricing and licensing models. If determining what features are needed in a vertical market, perform a gap analysis of what features exist in the products of a vertical market. Based on that gap analysis, it can be determined how SharePoint can help penetrate that market with built-in features (including what is configurable within SharePoint). Understanding what it takes to connect, extend, and build on SharePoint will help you understand the incremental investment to turn SharePoint into a vertical solution that fills a market need.

Thinking of SharePoint as a web application development platform? Explore the rest of this paper to get some further insight on the value of the platform.

Page 9: Benefits of SharePoint 2010 as a Product Platformthreewill.com/wp-content/uploads/Benefits-of-SharePoint...Benefits of SharePoint 2010 as a Product Platform For Independent Software

9

SharePoint Platform Strategies

These strategies, for the most part, progress in the order of Connect, Extend, and Build On; advancing through them increases a dependency on either SharePoint Foundation or SharePoint Server. Most product companies that accept a dependency on SharePoint will provide the option to run on SharePoint Foundation or Server, sometimes with a more comprehensive feature set enabled if a customer’s environment includes SharePoint Server.

For example, many medium to large enterprises have SharePoint Server deployed. A product that builds on that that dependency can save development costs by leveraging Server features that otherwise need to be created (i.e., Form Services or Web Content Management).

Let’s explore these strategies of Connect, Extend, and Build On in more depth.

ConnectExisting products can be connected to SharePoint by providing integration points such as content embedding, cross-product search, and single sign-on. The goal is to give users a seamless experience and allow them to work in their product of choice without having to spend time switching contexts between various products. This connection/integration can be unidirectional or bidirectional.

Here are more details on some of these integration points.

• Content Embedding - Content embedding may involve SharePoint content being viewed or used within your product and vice-versa. This approach allows the product’s data to be used in new ways. Maybe the data could be seen via a custom web part, referenced through some SharePoint list data, be part of a SharePoint workflow, and/or simply be easier to collaborate on using a SharePoint team site. Think of this type of connection when the product is sharing data from SharePoint or sharing data to SharePoint.

• Search - Cross-product search allows users to work in the product most pertinent to their task, but to also find relevant data from the connected product. This approach can be integrated using a federated query search or a common search index with either a common search results UI or simply a shared search query API.

• Single Sign-On - This approach simply ensures that users can easily move from a product to SharePoint and vice-versa without having to enter credentials more than once. In addition, any content embedding and search results should be relevant for the current user (e.g, security trimmed appropriately). This may involve delegation (e.g., Kerberos), custom services that do impersonation, or utilization of claims-based authentication.

Connect strategies are common when a product does not share the same platform or technologies as SharePoint (e.g., Java-based instead of .Net-based). SharePoint and the connected product can also execute on separate servers in the same network or in a completely different network (e.g., one could be in the cloud).

There are three primary strategies for using SharePoint as your product platform. These strategies were described by Owen Allen, Senior Product Manager for SharePoint ISV Partners at Microsoft, during the SharePoint Conference in October 2009.

CommunitiesComposites

Insights Content

Sites

Search

Master Page Web Pages (ASPX)

Site PagesCustomized Ribbon

Server Control

Server Control

User Control

Web Part

CustomAction

Silverlight

Clie

nt

OM

AJA

X

SharePoint

JavaScript

SharePoint Web Services

Clie

nt

OM

AJA

X

SharePoint API

Server-Side UI

Windows App

Clie

nt

OM

SvcP

roxy

• Microsoft SharePoint Foundation 2010• Microsoft SharePoint Server 2010

2010

• Windows SharePoint Services v3• Microsoft Office SharePoint Server 2007

2007

• Windows SharePoint Services v2• SharePoint Portal Server2003

2003

• SharePoint Team Services• SharePoint Portal Server

2001

Integrate an existing product with SharePoint to enable the two products to

work together.

Connect

Create integrated solutions that extend SharePoint

feature offerings - or that leverage or include

SharePoint capabilities.

Extend

Create solutions on top of the SharePoint

infrastructure that leverage the breadth of

capabilities provided by the SharePoint platform.

Build On

Dep

loym

ent

Serv

ice

Ap

plic

atio

nA

rch

itec

ture

ASP.NET

Windows Server

Authentication

IIS

Content & Configuration Databases

SQL Server

Authorization ProvisioningRequestPipeline

MembershipProvider

Scal

abili

ty

OOTB ContentManagement

• Content Versioning• Check-in/Check-out• Content Approval• Records Routing• Information Management Policies• CRUD UI• Social Content• Workflow• Content Types• Field Types• Office Integration• Offline Data• Web Services• Search

Extension PointHighlights

• Event Receivers• Custom Field Types• Rendered Columns• Custom View Types• External Data• Custom Actions• Custom Information Management Policies• Custom Workflows• Custom Workflow Actions• Custom Content Types• Custom User Defined Functions• Custom Web Services• Custom CRUD UI• Custom Search Content Sources

Page 10: Benefits of SharePoint 2010 as a Product Platformthreewill.com/wp-content/uploads/Benefits-of-SharePoint...Benefits of SharePoint 2010 as a Product Platform For Independent Software

10 11

SharePoint Platform Strategies

Products can be connected to SharePoint using existing or custom web services regardless of whether they are built in .NET, Java, or another technology. The integration points are more compelling in SharePoint 2010 with its richer web services infrastructure (WCF), richer UI capabilities (AJAX, Silverlight, and Client OM), improved search architecture, and new claims based authentication capability (including SAML).

A clear example of a connect scenario for an ISV is the SharePoint Connector for Confluence4. You can read about the technologies involved in a How We Did It Article on SharePoint Product Team Blog5. You can also read more about an enterprise example that involved unique requirement to connect SQL Server Reporting Services (SSRS) and SharePoint beyond what was provided by SharePoint out of the box - Allowing Connections to Multiple SSRS Servers with Report Viewer and Explorer Web Parts6

“From a strategic standpoint, connecting to SharePoint provides a number of benefits to both ISVs and customers:

1. Bridging teams – When it comes to collaboration software, teams within an organization tend to select the tools that suit their style of work. For example, the marketing team may use SharePoint for collaborating on documents while the engineering team may use a wiki for this. Connecting your applications to SharePoint allows individuals to collaborate across team boundaries while giving teams the flexibility to choose the tool best suited for them.

2. Eliminating content silos – the “Holy Grail” of knowledge management for any organization is to attain a unified, organized and searchable knowledge repository for all employees to access. Connecting your applications to SharePoint through content embedding, search and single sign-on brings you closer to achieving a “shared brain” within your organization.

3. SharePoint as a corporate standard – For many large organizations, SharePoint is becoming the corporate standard for collaboration, document management and content management. Any ISV’s looking to sell into these organizations should consider a “plays well with SharePoint” strategy in order to satisfy your customers’ requirements. ISV’s without this strategy may find themselves eliminated from sales opportunities they’re otherwise qualified to win.”

Bill Arconati, Product Marketing Manager at Atlassian

Page 11: Benefits of SharePoint 2010 as a Product Platformthreewill.com/wp-content/uploads/Benefits-of-SharePoint...Benefits of SharePoint 2010 as a Product Platform For Independent Software

11

SharePoint Platform Strategies

ExtendThere are many products that take SharePoint to the next level. Some provide services that extend existing SharePoint capabilities. Others incorporate SharePoint services and capabilities in such a way as to extend the product value proposition.

This Extend strategy, in many cases, creates a dependency among such products on particular SharePoint features. In some cases, the product could still function without SharePoint, but its features would be limited without the presence of SharePoint. With most Extend solutions, the SharePoint interface is not abstracted from the user and the focus is enabling the customer to speed up the process of building business value-added solutions that involve SharePoint.

Many Technology Solution ISVs are examples of product companies taking the Extend strategy (i.e., Nintex Workflow and Colligo). They are providing solutions for the SharePoint community that have incremental value above those that are included as standard with SharePoint. For example, Nintex provides WYSIWYG workflow editors in the browser and Colligo provides a rich, offline synchronization experience with SharePoint Lists and Libraries. Note that enterprises often take an Extend strategy with their SharePoint application development. A good example of this strategy is the extension of InfoPath and Forms Services to provide a canned service request template/site definition with custom InfoPath consumable web services particular to the enterprise. With this type of solution, individual departments can implement custom service-request sites yet still have access to common services within the enterprise. Read about this enterprise example in the following article- Automating Service Requests using InfoPath Forms Services7.

The list of ways to extend SharePoint is large, but some include:

• Custom web parts that can be used for mash-ups and composite applications

• Custom workflow actions for use in SharePoint Designer

• Custom out-of-the-box list or site workflows that can be used as part of an overall solution

• Custom field types for use in any SharePoint list or library

• Custom event receivers for programmatic action upon item submission

• Custom content types specific to a particular need

• Custom information-management policies for placing custom policies around content

• Custom search indexing pipeline stages for us in FAST Search for SharePoint

• Custom user-defined functions for use in Excel Services

Extend strategies are common for products that provide integrated building blocks from which others can build a final solution.

Page 12: Benefits of SharePoint 2010 as a Product Platformthreewill.com/wp-content/uploads/Benefits-of-SharePoint...Benefits of SharePoint 2010 as a Product Platform For Independent Software

12 13

Build OnProducts designed and built from the ground up for SharePoint can take advantage of its broad feature set. Out-of-the-box SharePoint provides the plumbing for authentication, authorization, provisioning, data viewing and editing, workflows, events, versioning, scaling to multiple servers, deployment, administration, auditing, Office integration, and more. This Build On strategy creates SharePoint dependencies and would not exist without having SharePoint installed. With these dependencies, the product-development effort can focus primarily on business functions and leverage SharePoint for common framework services. Note that products using the Build On strategy might abstract the user from the SharePoint interface (leveraging the SharePoint Services but creating a totally different user experience than what is provided by the SharePoint interface).

Using the Build On strategy does not preclude some external component from existing: call it a hybrid Build On/Connect strategy. For example, a back-end component from a product such as a processing server or database may be completely external from SharePoint. Alternatively, a custom UI such as a ClickOnce WPF application may be part of the solution as well. Before deciding how certain components may live completely within or outside of the SharePoint infrastructure, invest in understanding the new Services Architecture, vastly improved Business Connectivity Services (BCS), the new SharePoint Workspace features, and the benefits that SharePoint’s deployment model can provide (e.g., managing web.config changes across multiple web front ends).

SharePoint Platform Strategies

Build On strategies are common when a product uses the same platform and technologies as SharePoint. Products built on ASP.NET and SQL Server should consider the Build strategy and would use all or most of the SharePoint infrastructure (front end servers, application servers, content databases, IIS web sites, list infrastructure, web services architecture, etc.).

As an example, CorasWorks and its application publishers provide a broad line of off-the-shelf departmental business applications through a Build On SharePoint strategy. For reference see the CorasWorks App Store8.

“Over the last 3 cycles of SharePoint CorasWorks has been transitioning its products from technology solutions to horizontal and vertical business solutions. Using a strategy of Building On SharePoint 2010, CorasWorks and our application publishers are able to focus on the business solution vs. technology extensions – thereby addressing the critical last mile to unleash business value”

William Rogers, Chief Workplace Architect at CorasWorks

Page 13: Benefits of SharePoint 2010 as a Product Platformthreewill.com/wp-content/uploads/Benefits-of-SharePoint...Benefits of SharePoint 2010 as a Product Platform For Independent Software

13

Platform Capabilities

SharePoint provides a great foundation for application development at all levels of the software development stack. The capabilities extend outward to include search, workflow, scalable and extensible services architecture, and administrative features. Being built upon ASP.NET and Windows Server platforms allows SharePoint to expose infrastructure features and inherent points of extensibility to application developers. ISVs who choose to build upon SharePoint will find that they inherit a rich set of platform capabilities, letting them put more time and effort into developing unique product features vs. generic features. Applications that connect to SharePoint can reveal application data and features either in the SharePoint UI, Business Connectivity Services (BCS), or via one of the many options for extensibility provided by SharePoint.

Let’s explore the platform capabilities using more developer-centric categories of Infrastructure, Content Management, and User Interface similar to n-tier architecture models. This is a departure from the SharePoint wheel shown earlier. This SharePoint wheel works well from an end-user point of view, but the below diagram is more useful when looking to understand SharePoint as a developer platform.

InfrastructureSharePoint is now at version 4 and has become a well-tested and trusted platform for securing content and allowing ISVs to move forward into adding application value. Its infrastructure starts with Windows Server and the .NET Framework and heavily relies on IIS, ASP.NET and SQL Server. Out-of-the-box authentication includes Windows NTLM or Kerberos while SharePoint and ASP.NET extensibility allow for developers to provide custom forms and web single sign-on options. SharePoint resource authorization can be managed at site collection, site, page, item, and custom action levels; security permissions can also be applied in custom code. Role membership can be defined individually or by using SharePoint or Active Directory groups.

CommunitiesComposites

Insights Content

Sites

Search

Master Page Web Pages (ASPX)

Site PagesCustomized Ribbon

Server Control

Server Control

User Control

Web Part

CustomAction

Silverlight

Clie

nt

OM

AJA

X

SharePoint

JavaScript

SharePoint Web Services

Clie

nt

OM

AJA

X

SharePoint API

Server-Side UI

Windows App

Clie

nt

OM

SvcP

roxy

• Microsoft SharePoint Foundation 2010• Microsoft SharePoint Server 2010

2010

• Windows SharePoint Services v3• Microsoft Office SharePoint Server 2007

2007

• Windows SharePoint Services v2• SharePoint Portal Server2003

2003

• SharePoint Team Services• SharePoint Portal Server

2001

Integrate an existing product with SharePoint to enable the two products to

work together.

Connect

Create integrated solutions that extend SharePoint

feature offerings - or that leverage or include

SharePoint capabilities.

Extend

Create solutions on top of the SharePoint

infrastructure that leverage the breadth of

capabilities provided by the SharePoint platform.

Build On

Dep

loym

ent

Serv

ice

Ap

plic

atio

nA

rch

itec

ture

ASP.NET

Windows Server

Authentication

IIS

Content & Configuration Databases

SQL Server

Authorization ProvisioningRequestPipeline

MembershipProvider

Scal

abili

ty

OOTB ContentManagement

• Content Versioning• Check-in/Check-out• Content Approval• Records Routing• Information Management Policies• CRUD UI• Social Content• Workflow• Content Types• Field Types• Office Integration• Offline Data• Web Services• Search

Extension PointHighlights

• Event Receivers• Custom Field Types• Rendered Columns• Custom View Types• External Data• Custom Actions• Custom Information Management Policies• Custom Workflows• Custom Workflow Actions• Custom Content Types• Custom User Defined Functions• Custom Web Services• Custom CRUD UI• Custom Search Content Sources

ASP.NET HTTP PipelineASP.NET extensibility goes further by allowing developers to add in HttpHandlers and HttpModules for custom request handling. Developers can use this handling to support features such as global changes to the SharePoint interface, custom file-type processing, custom authentication, and more. For example, an HttpHandler could be created to prevent cross-site scripting errors when processing requests for file types stored in an external system. The HttpHandler could accept a request for the custom file type, forward the request to the external system, and then return the results to the requesting browser (note: credentials delegation may be required). This would allow the file that resides on an external server to be requested directly from SharePoint. The SharePoint API, including site and user context, are available from within the handler. Because SharePoint is built upon ASP.NET, application developers have available both the ASP.NET customization options as well as SharePoint context and configuration.

Page 14: Benefits of SharePoint 2010 as a Product Platformthreewill.com/wp-content/uploads/Benefits-of-SharePoint...Benefits of SharePoint 2010 as a Product Platform For Independent Software

14 15

Platform Capabilities

Application SecurityAnother example of extensibility provided by ASP.NET includes creating custom membership providers that enable login credentials to be retrieved from a custom store. Membership providers supplied by SharePoint allow connecting to membership stores created using SQL, LDAP, or Active Directory. The base MembershipProvider, like many ASP.NET and SharePoint classes, can be extended, allowing developers to create custom implementations. The membership provider is configured in the site web.config file allowing, among other things, a custom login page to be supplied.

Claims-based authentication is a significant infrastructure feature new to SharePoint 2010. With claims, user authentication is provided by an “identity system” that may include corporate credential providers such as Active Directory, LDAP, or credentials stored in databases. Credentials authentication may also be provided by web sign-on providers such as LiveID and OpenID. Claims-based authentication will make it easier for additional identity systems to integrate with SharePoint, thus opening up another point of extensibility.

Service ApplicationsThe service application architecture, new in SharePoint 2010, provides another point of extensibility and enterprise scalability. Services developed on the new platform can be scaled across one or more servers and can cross the farm boundary to provide services for multiple SharePoint installations. SharePoint services support additional scalability by providing “services in the cloud,” delivering new ways that ISVs can extend SharePoint. The services architecture includes a configuration store for application settings, a common SQL database provisioning infrastructure, support for storing custom data in databases that are managed by SharePoint, a location to host middle-tier web services, a provisioning mechanism for web services, and a service-scoped timer job infrastructure to support scheduled operations. This is probably the largest investment Microsoft has made toward using SharePoint as a platform in 2010.

Office 365 & SharePoint OnlineAs more companies move to a cloud-based computing model, it is important for developers and ISVs to consider the implications of their custom SharePoint solutions running in the cloud via Office 365 and SharePoint Online. Two points of particular interest: Sandboxed Solutions and feature availability. Sandboxed Solutions (referenced elsewhere in this document) provide an environment where developers can upload code in a partially-trusted environment in such a way that the administrator can control the impact of errant or non-performant code through isolation and quotas. While this is obviously important in an on-premise environment,

it is crucial in a multi-tenant environment. Awareness of feature availability is important because of potential code dependencies on features that may not be available at all in SharePoint Online, or may not be available in a particular edition of SharePoint Online (i.e. Standard vs. Dedicated). For an early glimpse of feature availability please review “Appendix B: SharePoint Online and SharePoint Server Feature Comparison” in Microsoft_SharePoint_Online_Standard_Beta_Service_Description_Final.docx (see “References” section of this document for download details).

Packaging and DeploymentThe deployment capabilities of SharePoint cannot be overstated either. Custom functions are packaged into a solution package file (WSP) and may contain one or more features scoped to the farm, a web application, site collection, or site. SharePoint handles the deployment of files to the GAC, bin, and virtual directories within the web site on the front end web servers. It also handles deployment of content to the content databases. After files are deployed to the web front ends (WFEs), additional WFEs can be added and SharePoint handles updating the new WFEs, including web.config file updates. SharePoint 2010 adds additional deployment capabilities with its versioning support and Sandboxed Solutions. With Sandboxed Solutions, WSPs are deployed to a content database and farm administrators are given more control by isolating the execution environment of the features within the package. This enables administrators to upload solutions only once that are automatically deployed to all web front ends, increasing predictability and reducing maintenance cost.

CommunitiesComposites

Insights Content

Sites

Search

Master Page Web Pages (ASPX)

Site PagesCustomized Ribbon

Server Control

Server Control

User Control

Web Part

CustomAction

Silverlight

Clie

nt

OM

AJA

X

SharePoint

JavaScript

SharePoint Web Services

Clie

nt

OM

AJA

X

SharePoint API

Server-Side UI

Windows App

Clie

nt

OM

SvcP

roxy

• Microsoft SharePoint Foundation 2010• Microsoft SharePoint Server 2010

2010

• Windows SharePoint Services v3• Microsoft Office SharePoint Server 2007

2007

• Windows SharePoint Services v2• SharePoint Portal Server2003

2003

• SharePoint Team Services• SharePoint Portal Server

2001

Integrate an existing product with SharePoint to enable the two products to

work together.

Connect

Create integrated solutions that extend SharePoint

feature offerings - or that leverage or include

SharePoint capabilities.

Extend

Create solutions on top of the SharePoint

infrastructure that leverage the breadth of

capabilities provided by the SharePoint platform.

Build On

Dep

loym

ent

Serv

ice

Ap

plic

atio

nA

rch

itec

ture

ASP.NET

Windows Server

Authentication

IIS

Content & Configuration Databases

SQL Server

Authorization ProvisioningRequestPipeline

MembershipProvider

Scal

abili

ty

OOTB ContentManagement

• Content Versioning• Check-in/Check-out• Content Approval• Records Routing• Information Management Policies• CRUD UI• Social Content• Workflow• Content Types• Field Types• Office Integration• Offline Data• Web Services• Search

Extension PointHighlights

• Event Receivers• Custom Field Types• Rendered Columns• Custom View Types• External Data• Custom Actions• Custom Information Management Policies• Custom Workflows• Custom Workflow Actions• Custom Content Types• Custom User Defined Functions• Custom Web Services• Custom CRUD UI• Custom Search Content Sources

Page 15: Benefits of SharePoint 2010 as a Product Platformthreewill.com/wp-content/uploads/Benefits-of-SharePoint...Benefits of SharePoint 2010 as a Product Platform For Independent Software

15

Platform Capabilities

External DataApplication developers can choose to use SharePoint as a data store or use a separate, external data store such as one provided by a relational database, abstracted by web services, or provided by custom code. Using the SharePoint data store, in the form of SharePoint lists, allows for the full utilization of SharePoint content-management features, including the ability of users to configure and extend the schema. However, SharePoint lists are not fully relational data stores. Application developers in need of a more relational or custom data store can instead choose to connect to an external data source by using external content types provided by Business Connectivity Services (BCS). A hybrid approach involves connecting SharePoint list data to external data by using external data columns. An external data column is a field in a SharePoint list which is a look-up to an external data source. The external data column can select one or more fields from an external record to be included in a SharePoint list item.

BCS allows external data to participate in SharePoint content-management features such as enterprise search, offline data access, and integration into Office client applications including Outlook, Word, and Access. External data can also participate in content-management features such as tagging, workflow, check-in/check-out, versioning, information management policies, and permissions by using proxy records in SharePoint. External data columns in SharePoint allow SharePoint list items to relate directly to external data (e.g., proxy record). Custom code in workflows, event receivers, and custom information rights management policies can then propagate activities that occur on the proxy records such as the application of tags or check-in/check-out to the external data records.

Content ManagementSharePoint 2010 provides plenty of out-of-the-box capabilities to meet many ECM requirements. This is an advantage for ISVs. Content- management features provided by SharePoint include content versioning, check-in/check-out, content approval and disposition, records routing, and information-management policies such as content expiration. In addition, there is opportunity to extend the SharePoint ECM capabilities at all levels. To cover all of them would take several books, so just a few will be highlighted.

Enterprise Perspective

SharePoint can also be used as an underlying CMS to feed into other portal technologies. At McKesson, we use Vignette as our portal today and SharePoint as our collaboration platform. RSS and other technologies have allowed us to start taking advantage of the easy SharePoint CMS capabilities but the content is available in the company wide portal.

Our SharePoint CMS strategy in the initial phase was to use out of the box capabilities. Now that users understand the product and the needs of their Team/Department/Business Units they are taking SharePoint to the next level with data integration, creative redesigns and heavy process automation projects.

Aaron Rafus, Technology Evangelist, McKesson Corporation

Another key advantage for using BCS is that SharePoint automatically provides a customizable UI that supports read/write as well as view/sort/filter capabilities. Standard ASP.NET forms are created for external data connected to SharePoint. Using SharePoint Designer or InfoPath Designer, developers can create a richer interface for external data by generating InfoPath forms. InfoPath forms also allow for a richer experience, including a deep set of form rules that can, among other things, connect to external data sources to fill user choice fields and perform field-level validation.

There are also external-data innovations outside of BCS within Microsoft and the ISV community. For example, there are several ISV products that expose external data within SharePoint. The Data Integration Toolset9 from CorasWorks and MashPoint10 from Bamboo, for example, provide external data connections to easily surface data into their web part suites. Furthermore, standards such as OData (Open Data Protocol) are emerging. Similar to Microsoft ODBC efforts, OData is an open protocol for sharing data across various data consumers and data providers. OData is based on web standard such as HTTP and AtomPub (Atom Publishing Protocol) using JSON notation. To learn more about this emerging data protocol, see Mike Flasko’s “Breaking Down ‘Data Silos’ – The Open Data Protocol (OData)”11 on the WCF Data Services Team Blog.

Page 16: Benefits of SharePoint 2010 as a Product Platformthreewill.com/wp-content/uploads/Benefits-of-SharePoint...Benefits of SharePoint 2010 as a Product Platform For Independent Software

16 17

Platform Capabilities

Business IntelligenceData analysis is becoming a more frequent demand of any application, and this demand is rapidly expanding beyond the need for basic operational reporting. SharePoint 2010 provides a rich suite of offerings that application developers can leverage to accomplish this goal. They include native Charts and Data Indicator web parts, Performance Point Services, Excel Services, Visio Services, and Reporting Services, and more. Each is designed for a unique business case. For example, Performance Point Services supports business scorecards, charts, and analytic dashboards. Using this feature of SharePoint 2010, an ISV could provide a dashboard that leverages Key Performance Indicators (KPIs) to give users a quick view of operational health. The real purpose of a dashboard is to direct users to highlighted areas that need attention.

Business Intelligence Note that business intelligence features are extremely powerful in SharePoint 2010 and are a big part of exposing external data inside SharePoint. Since business intelligence features are in such high demand for enterprises today, this is an area of SharePoint that should not be ignored.

SearchSearch is a key capability for applications. Enterprise search supports searching data stored in SharePoint lists as well external data. In SharePoint 2010, the BCS indexes external content and can involve no-code solutions for simple models or custom-managed code for more complex scenarios (e.g., nested/hierarchical data). Developers can customize the search experience by creating search scopes that limit a user’s search, for example, to application records or by generating a set of search refiners, allowing the search to be filtered and explored by metadata at query time. Additionally, the search UI includes points of extensibility such as the ability to configure the search results page and extending out-of-the-box search web parts. This is a very simple way to surface your existing solution’s data into SharePoint search through configuration rather than through programming.

ISVs who choose the Connect strategy may want to use query federation to enable SharePoint and an external application to maintain their own search indexes. Or they may choose to use SharePoint’s enterprise search Connector Framework12 to maintain a single index across applications. In SharePoint 2010, federated search is a core component in the search API and is even used by the Core Search Results web part.

In SharePoint 2010, the Connector Framework no longer requires writing unmanaged protocol handlers for crawling custom content. The Connector Framework, and even BCS search, provides security descriptors (ACLs) at index time if the information is available. This allows for trimming the search results to only those items available to the individual performing the search.

The Connector Framework is common across SharePoint Server 2010 Search as well as FAST Search for SharePoint 2010, so ISVs who build upon it will find their solution works with both enterprise search options. On the other hand, ISVs who need more search capabilities can build upon FAST and have even more flexibility with its indexing and query pipelines as well as its entity-extraction capabilities. The ability of FAST to automatically create and categorize metadata introduces options for developers looking to create search-driven applications or to aggregate structured and/or unstructured content from disparate repositories while pivoting off common fields.

Strategy: Connect or Extend ISV’s looking to Connect or Extend SharePoint may find ample opportunity within the SharePoint search infrastructure to provide custom indexing or federated search connectors to third-party data sources. One can even imagine a federated search web part that aggregates similar data sources such as news feeds and organizes the data in a meaningful way.

One of the most exciting new features in Performance Point Services is the Decomposition Tree visualization. Visualizing data has many challenges, and each visualization strategy has pros and cons. Grids show numbers but don’t highlight relative values, charts highlight relative values but don’t do a good job of showing actual values, and neither charts nor grids do a great job of visualizing hierarchical relationships in data. The decomposition tree highlights hierarchical relationships, shows raw numbers, and includes a graphing component that provides the best of each of these worlds. This visualization can be selected by users on demand and offers a great alternative for users to perform ad-hoc analysis.

ISVs looking to add analytics to their applications can leverage Performance Point Services in both the Connect to and Build On scenarios as it provides a rich set of database connectors for querying application data, and can leverage existing reporting investments in its dashboard technology. Using this approach, Performance Point dashboards and scorecards can be built to consume data from an existing application database and leverage existing custom reports. By using these features, users can perform ad-hoc analysis of application data, and correlate that information with other business data. Furthermore, as with any good reporting solution, users are shielded from the underlying complexities of source system data models and query languages.

Page 17: Benefits of SharePoint 2010 as a Product Platformthreewill.com/wp-content/uploads/Benefits-of-SharePoint...Benefits of SharePoint 2010 as a Product Platform For Independent Software

17

Platform Capabilities

WorkflowDevelopers can further use content-management features through out-of-the-box SharePoint workflows such as the “Approval Workflow” or by writing custom SharePoint workflows to control features such as content approval or records routing. SharePoint provides the workflow execution environment and Windows Workflow Foundation provides the building blocks. In addition to custom workflows, ISVs can provide their own extension points by creating reusable workflow activities for power users with SharePoint Designer or for developers with Visual Studio.

In SharePoint 2007, workflows are associated with a list/library and workflow instances are tied to a list item. SharePoint 2010 provides for this association and also adds the ability for workflows to be independent of lists so they can be reused across lists and content types. This capability opens up a whole new world of possibilities for Workflow and SharePoint.

Data Model User InterfaceUsing SharePoint content management features also provides a functional UI around the data model. By default, SharePoint will create the CRUD (Create, Read, Update and Delete) forms around application data. The forms may be replaced and developed as ASP.NET application pages, or may optionally be developed as InfoPath forms. InfoPath forms then bring in a large set of customization capabilities such as a form designer and a rich set of built-in form rules.

Users can customize the presentation of data in SharePoint by creating custom views. Custom views in SharePoint allow users to customize which columns are viewed, as well as add sorting, filtering, paging, sub-totals, and more. ISVs can further extend the behaviors of data in SharePoint views through custom actions that can appear in the Actions menu of the view or on the list item drop-down menu (e.g., Edit Control Block). ISVs can also extend SharePoint out-of-the-box views by creating rendered columns, custom view types, and custom field types. Custom field types provide custom storage and presentation of data types that are not native to SharePoint. Custom field types can also be used to connect external data to native SharePoint lists through custom controls for editing and rendering data.

And More...Application developers can also dive deep into the SharePoint data-management structure by adding event receivers. Event receivers allow custom code to be executed when a change occurs to a site collection, site, feature, workflow, list, or list item. Typical events that are handled include when a list or library item is added, updated, or deleted.

SharePoint provides out-of-the-box information-management policies that govern the data life cycle within it. Examples include expiration, bar code, and auditing policies. ISVs can create custom information-management policies so that SharePoint can manage their data but have it governed by their specific rules.

SharePoint’s latest social features around content management are also available to applications that store data in SharePoint lists or connect external data using external data columns. Users can choose to tag application data using either a managed, hierarchical term store (taxonomy) or community-generated tags (folksonomy), with both types of metadata residing in a unified, centrally-managed location. Users can also rate “favorites” and bookmark data records to share and re-retrieve content they deem interesting. Additionally, items in document libraries can appear in the SharePoint Documents web part of a user’s My Site (their personal web site) to display documents which the user has recently modified. Documents can also appear in the Relevant Documents web part which displays recent changes for the current user on the site.

SharePoint Workspace, formerly Groove, allows users to easily take the application data offline. SharePoint Workspace is a windows desktop collaboration environment allowing users to interact with content and other team members. Users can work with application data offline and then synchronize with the SharePoint server when a connection is available. Offline mode is available for applications that store data in SharePoint lists as well as to those that connect to SharePoint using Business Connectivity Services.

Page 18: Benefits of SharePoint 2010 as a Product Platformthreewill.com/wp-content/uploads/Benefits-of-SharePoint...Benefits of SharePoint 2010 as a Product Platform For Independent Software

18 19

Platform Capabilities

User InterfaceBeing built upon ASP.NET also allows for points of extensibility in the SharePoint UI. The interface uses master pages, web parts, server controls, and user controls developed using ASP.NET. This means that ASP.NET application developers can use familiar skills to build custom UI components and then integrate those solutions into the SharePoint UI.

Custom Actions provide additional options for UI enhancement. Custom actions include content drop downs, “Site Actions” menu items, and links placed on administrative pages. As a result, it is very easy to create custom administrative pages and provide links to these pages such that they look completely integrated with the rest of the SharePoint administration pages. SharePoint 2010 goes a step further with the introduction of the SharePoint “Ribbon”. The new ribbon can be customized and extended by SharePoint developers to include content-sensitive menu options alongside the standard menu options that are provided.

Web parts are a key UI component for ISVs, regardless of whether they use the Connect, Extend, or Build On strategy. Web parts are an ASP.NET concept (and base class) and are hosted by SharePoint. SharePoint also manages the storage of web part properties, including shared property values and per-user property values. Web parts give users the ability to design and configure site pages. They can configure custom web parts to connect to one another such as in a master/detail arrangement. Standard web part connection interfaces, such as those provided by SharePoint filter web parts, allow out-of-the-box web parts to connect with custom web parts. For example, the Choice Filter web part can be connected with web parts which implement the IFilterValues connection interface. There are nine filter web parts available from SharePoint Server, providing several options for connecting to a custom web part that implements IFilterValues.

CommunitiesComposites

Insights Content

Sites

Search

Master Page Web Pages (ASPX)

Site PagesCustomized Ribbon

Server Control

Server Control

User Control

Web Part

CustomAction

Silverlight

Clie

nt

OM

AJA

X

SharePoint

JavaScript

SharePoint Web Services

Clie

nt

OM

AJA

X

SharePoint API

Server-Side UI

Windows App

Clie

nt

OM

SvcP

roxy

• Microsoft SharePoint Foundation 2010• Microsoft SharePoint Server 2010

2010

• Windows SharePoint Services v3• Microsoft Office SharePoint Server 2007

2007

• Windows SharePoint Services v2• SharePoint Portal Server2003

2003

• SharePoint Team Services• SharePoint Portal Server

2001

Integrate an existing product with SharePoint to enable the two products to

work together.

Connect

Create integrated solutions that extend SharePoint

feature offerings - or that leverage or include

SharePoint capabilities.

Extend

Create solutions on top of the SharePoint

infrastructure that leverage the breadth of

capabilities provided by the SharePoint platform.

Build On

Dep

loym

ent

Serv

ice

Ap

plic

atio

nA

rch

itec

ture

ASP.NET

Windows Server

Authentication

IIS

Content & Configuration Databases

SQL Server

Authorization ProvisioningRequestPipeline

MembershipProvider

Scal

abili

ty

OOTB ContentManagement

• Content Versioning• Check-in/Check-out• Content Approval• Records Routing• Information Management Policies• CRUD UI• Social Content• Workflow• Content Types• Field Types• Office Integration• Offline Data• Web Services• Search

Extension PointHighlights

• Event Receivers• Custom Field Types• Rendered Columns• Custom View Types• External Data• Custom Actions• Custom Information Management Policies• Custom Workflows• Custom Workflow Actions• Custom Content Types• Custom User Defined Functions• Custom Web Services• Custom CRUD UI• Custom Search Content Sources

Strategy: Connect Connecting at the user interface layer allows users to view and interact with external data from within SharePoint while keeping the data and data access code external to SharePoint. This is typically achieved by developing custom web parts or application pages which use custom code libraries to directly access external data. Developing custom UI components is a lightweight strategy for connecting to SharePoint; this approach from the consistent SharePoint user interface paradigm and the ability to be used in SharePoint configuration and deployment scenarios.

Page 19: Benefits of SharePoint 2010 as a Product Platformthreewill.com/wp-content/uploads/Benefits-of-SharePoint...Benefits of SharePoint 2010 as a Product Platform For Independent Software

19

Platform Capabilities

CommunitiesComposites

Insights Content

Sites

Search

Master Page Web Pages (ASPX)

Site PagesCustomized Ribbon

Server Control

Server Control

User Control

Web Part

CustomAction

Silverlight

Clie

nt

OM

AJA

X

SharePoint

JavaScript

SharePoint Web Services

Clie

nt

OM

AJA

X

SharePoint API

Server-Side UI

Windows App

Clie

nt

OM

SvcP

roxy

• Microsoft SharePoint Foundation 2010• Microsoft SharePoint Server 2010

2010

• Windows SharePoint Services v3• Microsoft Office SharePoint Server 2007

2007

• Windows SharePoint Services v2• SharePoint Portal Server2003

2003

• SharePoint Team Services• SharePoint Portal Server

2001

Integrate an existing product with SharePoint to enable the two products to

work together.

Connect

Create integrated solutions that extend SharePoint

feature offerings - or that leverage or include

SharePoint capabilities.

Extend

Create solutions on top of the SharePoint

infrastructure that leverage the breadth of

capabilities provided by the SharePoint platform.

Build On

Dep

loym

ent

Serv

ice

Ap

plic

atio

nA

rch

itec

ture

ASP.NET

Windows Server

Authentication

IIS

Content & Configuration Databases

SQL Server

Authorization ProvisioningRequestPipeline

MembershipProvider

Scal

abili

ty

OOTB ContentManagement

• Content Versioning• Check-in/Check-out• Content Approval• Records Routing• Information Management Policies• CRUD UI• Social Content• Workflow• Content Types• Field Types• Office Integration• Offline Data• Web Services• Search

Extension PointHighlights

• Event Receivers• Custom Field Types• Rendered Columns• Custom View Types• External Data• Custom Actions• Custom Information Management Policies• Custom Workflows• Custom Workflow Actions• Custom Content Types• Custom User Defined Functions• Custom Web Services• Custom CRUD UI• Custom Search Content Sources

SharePoint 2010 provides for even broader UI customization with the new client object model. This model allows for easy access to SharePoint data from client side JavaScript enabled browsers, windows desktop, and Silverlight applications. This point of extensibility makes it much easier for developers to provide rich client- side features and usability when a web based interface is not desirable.

Platform Capabilities SummaryThe robust and extensible infrastructure, content management, and UI capabilities position SharePoint as a solid choice for application development. The flexibility built into SharePoint 2010 allows ISV developers to envision ways in which the platform can be extended to provide even greater value. For more details from a developer perspective, see Introduction to SharePoint Products and Technologies for the Professional .NET Developer13.

Page 20: Benefits of SharePoint 2010 as a Product Platformthreewill.com/wp-content/uploads/Benefits-of-SharePoint...Benefits of SharePoint 2010 as a Product Platform For Independent Software

20 21

Barriers to Adoption as a Development Platform

We have described some of the ways SharePoint has matured just within the last two product cycles. But are there real impediments to using SharePoint as an application platform? Let’s address four common perceived barriers: a unique developer skill set, a closed or restrictive set of horizontal services, the inability to integrate with external or relational data sources, and ALM and code isolation.

Perceived Barrier 1 - Unique Developer Skill SetEarly in SharePoint’s history, ISV integration and extension of the platform was slow to take hold due to product immaturity and the complexity of platform integration or extension. For example, the lack of a tight integration into the ASP.NET technology stack in SharePoint 2003 required investments in specific skill sets or making risky implementation decisions (e.g., ASP.NET developers could either decide to not leverage their existing knowledge or make unsupported changes to ONET.XML). Although the skills needed were still based on .NET, the ability to have utility players jump in and code different product features would have been difficult. This presented some decision points about investment in education, skill sets, and more.

While some decision points persist, the investments can now be amortized across core .NET technologies with less investment in SharePoint specifics (see Chappell’s Developer Whitepaper14 for a compelling discussion of the technical aspects of the platform). While it is still imperative for architects and senior developers to have a deeper understanding and specific expertise on the APIs and architecture of SharePoint, all good .NET developers have a core .NET framework services expertise that will benefit their work on SharePoint applications – and SharePoint will continue to embrace the new .NET framework capabilities that benefit its solutions, giving them additional and transferrable skills. Making the investment in understanding the SharePoint Framework streamlines solution creation because developers can focus on solving business problem and build fewer framework services from scratch. For larger development teams, the SharePoint expertise investment can be weighted more toward those involved with architecture and design, resulting in a shorter investment time for other developers (e.g., they don’t need to understand the entire feature set; they can just focus on the SharePoint API they need to use).

Perceived Barrier 2 - Closed or Restrictive Platform ServicesAny platform, including hardware, operating systems, gaming, and others, has inherent features and constraints based on decisions and assumptions made in its development. The test of a platform’s value is the extent to which it:

1. Provides rich, standard features and functionality; and

2. Enables extensibility and configuration

One could argue that early in SharePoint’s history there were barriers due to preconditions for several of the horizontal services, chief among them the reliance on Active Directory for authentication. The evolution of SharePoint’s platform services has matured to provide a rich, extensible set of base functions that address most cross-cutting concerns of modern business applications. An initial set of services that suited small- to medium-sized teams has been supplanted by one that offer flexibility and extensibility while providing a standards-based approach to large scale implementations.

Current core features including authentication, navigation, provisioning, and others support a provider model to enable extension or replacement of base services. The use of common standards such as XHTML, WCAG, REST, SOAP, JSON, RSS, and XSLT along with standard OS platform services such as WCF, WF, LINQ, and PowerShell enables the use of standard, proven development processes and practices.

Our first criteria of a platforms value (rich features) is certainly met by SharePoint 2007, and is vastly improved with SharePoint 2010. Access to content and data through a variety of standards and channels provides an infrastructure upon which valuable applications can be developed. The new Client Object Model and PowerShell support are prime examples of the extensibility and configuration capabilities of the platform that meet our second criteria of a platforms value. The Client Object Model provides the ability to extend the use of SharePoint objects in a consistent manner across multiple technologies (including .NET, JavaScript, and Silverlight) in a whole new class of applications that can span web, Office client applications, and fat and thin clients – and even provide online/offline synchronization. PowerShell integration comes standard with SharePoint 2010; this integration enables installation, configuration and management through standard cmdlets and extension through custom scripts and modules. There is even the option of creating new PowerShell Snap-In’s to provide additional capabilities for administration and maintenance, opening up yet another avenue for ISV’s to provide value.

Page 21: Benefits of SharePoint 2010 as a Product Platformthreewill.com/wp-content/uploads/Benefits-of-SharePoint...Benefits of SharePoint 2010 as a Product Platform For Independent Software

21

Barriers to Adoption as a Development Platform

Perceived Barrier 3 - Lack of Integration with External or Relational DataAnother common argument against the use of SharePoint as a development platform has been the inability to integrate with external data sources. The most common vertical or business application requirement is to integrate with external data – for example, to combine data from one or more authoritative sources to enable form completion, order and request management, service provisioning, and other actions. Without the ability to easily and tightly integrate with external data sources, vertical product solutions don’t provide a compelling value proposition and viable profit margin for ISV’s to build these solutions. In the initial releases of SharePoint, vertical product solutions required too much development effort, redundant data and processing to be viable products. However, integration with external data improved significantly from SharePoint 2003 to SharePoint 2007 through the use of SharePoint Designer 2007 and the Business Data Catalog (BDC). SharePoint Designer could integrate easily enough with external sources using data web parts, but the integration was often shallow, or not fully integrated. For example, read access to SQL or web services data was included, but write access required moderate effort. As well, the BDC required MOSS and considerable modification and configuration for bidirectional integration. In summary, surfacing data has been possible, but truly developing and deploying applications that integrate with external data sources require significant knowledge and effort.

With the advent of the Business Connectivity Services (BCS), external content types, and other core features within SharePoint 2010 these barriers are removed. BCS is a very compelling improvement in this area. BCS continues to provide read access to external data, and now provides streamlined capabilities to enable write access to external data sources and a client side runtime and synchronization of data that now promote offline scenarios. This approach is all part of the base Microsoft SharePoint Foundation 2010 platform services. These features combine to provide the ability to develop solutions using familiar Office applications as the facade, deploy them using proven ClickOnce technology, and enable users to access, update, and synchronize and analyze external data. While BCS may be the most compelling feature that addresses external data integration, new WCF, REST, RSS and JSON features also provide integration with external data sources to be surfaced inside SharePoint or exposed from SharePoint to other applications.

Perceived Barrier 4 - Application Lifecycle Management (ALM) and Code Isolation.For users of SharePoint, simplicity and consistency make the platform an instant success. SharePoint can become an integral part of a business quickly and easily. It often provides an instant boost to collaboration and productivity for many organizations with only out–of-the-box features. However, as with many things in life, there is another side to that coin. Development organizations and IT professionals in many organizations are tasked with managing and maintaining environments and must ensure product quality or site availability and function. To support these requirements, IT operations often enforce Application Lifecycle Management (ALM) policies to ensure stability for the now business- critical SharePoint sites. Product or IT Operations organizations can require procedures ranging from simple source code control, to Code Access Security (CAS) for custom SharePoint solutions, to dedicated server instances for a specific custom solution (yes, this does exist!). The first two approaches minimally impact cost and deployment and are relatively easy to implement. But dedicated instances (a radical approach to providing stability), increase development, testing, hardware, and operating expenses – and can doom a product or solution before it ever gets out of the design stage. All along the spectrum of ALM are varying requirements for Source Code Control (SCC), versioning, automated builds, unit, integration, regression and acceptance testing, deployment and release policies, and many, many more. These requirements are imposed to ensure that the business, now relying on SharePoint as a business critical tool, can continue to count on that tool being up and running. But are these really barriers to ISVs and enterprises using SharePoint as a development platform?

Let’s discuss just three of the requirements listed above: SCC, deployment policies, and development debugging cycle time. There are some excellent SharePoint ALM resources and blogs that provide guidance for the use of SCC with SharePoint. Microsoft provides guidance for team-based SharePoint development and for developing custom SharePoint products and applications, but other SCC products can be used as well and provide all of the advantages any modern SCC tool. The bottom line is this is not a barrier, but when developing products or solutions for SharePoint, artifacts must be identified and managed appropriately to enable repeatable deployments. The Solution and Authored Artifact Development Models for SharePoint Products and Technologies15 provides an excellent discussion on defining and reconciling the differences between “solution” and “authored artifact” development and source control.

Page 22: Benefits of SharePoint 2010 as a Product Platformthreewill.com/wp-content/uploads/Benefits-of-SharePoint...Benefits of SharePoint 2010 as a Product Platform For Independent Software

22 23

Barriers to Adoption as a Development Platform

Strict IT operations deployment policies exist to ensure a stable production SharePoint environment. Deployment policies can range from simple sign off for “one throat to choke” for a failed deployment to rigorous quality metrics and test iterations before a deployment is allowed. Tools such as SharePoint Designer 2007 and SharePoint Solution Generator 2008 (from VSeWSS 1.3) can assist in easing the identification of solution components and features so they are deployable in repeatable and maintainable ways in SharePoint 2007. These tools are good, but what about those times when all the processes were followed, but a poorly written or poorly performing web part or custom solution was deployed anyway (besides bringing SharePoint to its knees and the IT Pro developer to blows)? Now, IT operations will never deploy anything again, right? With the new features of SharePoint 2010, IT professionals can now throttle requests and even isolate custom solutions, and developers can develop more “operations friendly” solutions by using viable production logging and troubleshooting techniques. HTTP request throttling will enable IT professionals to manage heavily used read operations without sacrificing critical update operations. Sandboxed Solutions let developers create useful solutions and deploy them in a more controlled and isolated environment – which should make IT professionals and developers friends again. Developers can now easily log operations and provide detailed execution information via monitored scopes. Other deployment improvements include “round trip” workflow development and deployment. Workflows can now be created using Visio, or exported from SharePoint Designer 2010, and modified using Visual Studio to extend and ease their deployment as components of packaged solutions.

The development and debug cycle time of SharePoint solutions and products was a serious issue in previous versions. The ability to press F5 to debug in Visual Studio has spoiled many and was sadly missing from the development experience. The development and debugging cycle time shortcomings for SharePoint 2007 were painful, but the community shared many utilities and best practices including macros for attaching to IIS processes as well as utilities that provided better build and deployment capabilities. The community responded to the cycle time issue in a big way with CodePlex projects ranging from WSP Builder, to STSDEV, to SharePoint Solution Installer and even PowerShell scripts to facilitate quicker development and debugging round trips. SharePoint 2010 addresses the missing tooling and development gaps with a wide variety of SharePoint Project Items (SPI’s) in Visual Studio 2010 and deeper IDE integration, including SharePoint Explorer, visual designers, and customizable deployment sequences. Not only are the basic issues of the F5 dev and debug cycle time addressed with Sandboxed Solutions (not even requiring a recycle for deployment), but now the out-of-the-box experience is improved by having a customize process that occurs when deploying and debugging. Finally, if the default SPI templates are lacking in some way, additional templates can be created and made readily available to developers through the Visual Studio Gallery, providing an easy way to market a solution via the massive Visual Studio developer ecosystem.

Is Perception Reality?While there may have been barriers to adoption as a development platform in earlier versions of SharePoint, the base services coupled with the vertical integration capabilities of SharePoint 2010 eliminate most of those barriers. With a set of services that have matured to support standard application requirements and that enable the extension or integration with custom infrastructure services, it seems inevitable that the next wave of SharePoint value will come in the form of vertical solutions that build upon the new platform services. Business Continuity Services (BCS), a Client Object Model, SharePoint Workspaces, Sandboxed Solutions, and Service Applications – among others – are areas to watch for burgeoning vertical value.

Page 23: Benefits of SharePoint 2010 as a Product Platformthreewill.com/wp-content/uploads/Benefits-of-SharePoint...Benefits of SharePoint 2010 as a Product Platform For Independent Software

23

Misconceptions of SharePoint as an Application Platform

There have been, and continue to be, many misconceptions about SharePoint application platform capabilities. Most of the misconceptions come in the form of either a misunderstanding, or lack of understanding of the scalability, performance, deployment, administration, or standard features of the platform. For example, so many customers are under the false impression that SharePoint has a list limit of 2,000 items that it seems some bloggers have made a reputation on dispelling this myth. For a definitive answer, see the Working with Large Lists in Office SharePoint 200716 whitepaper. In addition, there are several common misconceptions that specifically relate to development of solutions that provide business-specific value on the platform. Let’s review four of the more prevalent ones:

1. A SharePoint dependency means closed Architecture

2. SharePoint applications are too restrictive

3. SharePoint is only a document repository

4. SharePoint Cannot Be Used to Run Line of Business Applications

Misconception 1 - A SharePoint Dependency Means Closed Architecture Some potential vertical application ISVs misinterpret taking a dependency on the services and capabilities of the platform as a limiting decision from an architecture perspective. The use of, and integration with, SharePoint platform services does not imply a tight coupling of your application to SharePoint (see Cohesion and Coupling17 for a definition and discussion). The ability to create and extend loosely coupled solutions through Service Oriented Architecture principles, specifically SOAP and REST based web services, is available within SharePoint today. Nothing precludes the use of ASP.NET features such as HttpHandlers and HttpModules or custom REST or SOAP based Web Services to enable an application built on SharePoint 2007 to be more SOA compliant. The approach is simply one that requires a bit more than simplistic knowledge of the SharePoint API. Integrating the creation of SharePoint “compliant” web services into a Visual Studio build process and deployment package, for example, is possible and can enable appropriate separation of business logic from SharePoint, but leverages all of the features of SharePoint’s deployment and accessibility. As a second example, the use of an HttpHandler to manage and provide AJAX REST services is a common approach to enabling solutions to exploit the power of SharePoint while maintaining open access to common business data. This allows for WCF-like capability directly within SharePoint (see Developing Service-Oriented AJAX Applications on the Microsoft Platform18 for more detail).

SharePoint 2010 creates an even clearer response to this misconception. The ability to provide access via a new client API, native REST services, out-of-the-box support for WCF services, and Service Applications enable the development of solutions that adhere to SOA principles and allow for business value to be built in a reusable and highly accessible, scalable manner.

Misconception 2 - SharePoint Applications Are Too RestrictiveAnother common misconception about delivering valuable applications on SharePoint is that the platform has too many restrictions to development and deployment. Often heard is that “SharePoint is too restrictive - I need complete control over the environment in order to build my application.”

One could argue that domain-specific applications providing vertical solutions similar to Excel Services or the Business Data Catalog had architectural and scalability limits (each web application could only be associated with one SSP). Specifically, providing scalable, centrally managed and configured services across a SharePoint farm or farms, simply was not possible. For example, try to imagine creating an “Insurance Claims Processing Service” that provides processing services for all web applications in a SharePoint Farm using SharePoint 2007. An ISV would have to deal with issues of deployment, configuration, scalability, database, and many more concerns as custom implementations.

The “Service Application model” is now part of Microsoft SharePoint Foundation 2010 and provides the next generation for hosting services. The limitation of web applications being associated with one Shared Service Provider is eliminated. Service Applications can be consumed by multiple web applications on an individual basis, across farms, and can even be deployed in multiple (named) instances for specific purposes. The architecture now enables dedicated service databases, deployment via PowerShell, configuration and process isolation, and large loads and scalability – and can also provide services in multi-tenant and cloud scenarios. The Service Application model enables ISV’s to build that vertical “processing service” that is now available to an entire enterprise, or potentially as a value-added service in a hosted, multi-tenant or cloud-based model. The future here looks incredibly interesting with great opportunities to create valuable solutions.

Page 24: Benefits of SharePoint 2010 as a Product Platformthreewill.com/wp-content/uploads/Benefits-of-SharePoint...Benefits of SharePoint 2010 as a Product Platform For Independent Software

24 25

Finally, there are valid arguments from ISVs and enterprises that the deployment, management, and upgrade stories for applications built on SharePoint 2007 are a bit lacking. Specifically, the inability to version features or solution packages and upgrade a solution package is a frequent concern in settings that require deployment in development, test/staging, and production environments. In SharePoint 2010, there are now updates that provide a smoother transition for upgrading features and assemblies that are part of custom applications. Full-trust, farm solutions provide typical deployment to web front ends providing similar deployment options to SharePoint 2007 with some notable updates. New support for ID’s, binding redirects, and a FeatureUpgrading event give ISV’s the opportunity to provide a richer and more robust deployment path for upgrading components. These changes address most, if not all, of the common deployment scenarios in a permissive environment.

For less permissive, even locked-down environments, Sandboxed Solutions provide a very rich set of deployment, management and maintenance features. Developers can develop specifically for constrained environments and build solutions that provide value while adhering to rules by default – and can even call full-trust proxies in the event that specific trusted operations are known and approved of in advance. If Sandboxed Solutions adhere to the strictest scenarios, they can even be deployed by users who have been granted ‘Full Control’ permissions to a site collection. Administrators can manage Sandboxed Solutions, even with custom validation that provides detailed information about why a solution was not validated. Finally, site collection administrators can activate and install solutions in a secured, monitored environment and farm administrators can provide a wide variety of hard limits on the execution of Sandboxed Solutions, even blocking specific solutions completely, to ensure environment stability. It should be obvious that these features were designed to support an ISV ecosystem.

Misconception 3 - SharePoint Is Only a Document RepositoryOne of the most challenging aspects of SharePoint consulting and development engagements is to educate others that SharePoint is much more than a simple portal and document repository. Individuals tend to recognize the inherent value of lists and document libraries, but in general only advanced users see immediate value from the web parts, workflow and other features. SharePoint is much more. Eight categories and forty features were already mentioned, but what do these high-level categories and features mean to potential application developers?

This is probably the most challenging misconception of all, and the answer provided depends on the audience. Let’s pose the following question before proceeding. What does an operating

system provide to an ISV writing a traditional application? Don’t continue yet; write down some ideas. Before reading on, here is one definition from Dictionary.com: “the collection of software that directs a computer’s operations, controlling and scheduling the execution of other programs, and managing storage, input/output, and communication resources.”

Review the preceding definition and some of your answers. Well, that certainly sounds like what SharePoint is providing, doesn’t it? Isn’t SharePoint really a collection of services, features and operations that enable the creation and execution of other applications, while managing storage, input/output, and communication resources (see also Is SharePoint a Business Operating System?19)? Traditional software applications require an operating system to provide services to interact with a UI, storage, and other layers or systems to enable innovations to occur rapidly. This role is exactly what SharePoint provides to application developers who take the time to understand the services (and they are considerable) that SharePoint offers.

Application development today requires a pragmatic mix of innovation and leverage. In the same way that modern operating systems and 3GL languages strive to remove the need to interact with memory management, scheduling, and low-level hardware access, SharePoint provides the ability to quickly add value by connecting to basic SharePoint infrastructure (web parts, site definitions, custom lists), building upon the infrastructure of SharePoint (deployment, provisioning, scheduling, communication, UI, etc.), or by creating innovative solutions by extending the capabilities of SharePoint in unique and valuable ways. The three strategies described (Connect, Extend, Build On) all exploit the services and extensibility provided by SharePoint at different entry points.

For concrete examples, just look at the host of third-party web parts that provide different data visualization capabilities, custom site definitions that provide solutions with standard lists, and custom views and reporting that leverage the configuration, deployment, and scalability of SharePoint. Microsoft has shown how to implement the Extend strategy with the updated Excel Services, BCS, and Search Services among others. Doesn’t each one of these build on the services, features, operations, storage, I/O, and communication resources that SharePoint provides? Absolutely. In fact, they are possible specifically because of the services and capabilities provided by Microsoft SharePoint Foundation 2010. In addition, Microsoft has created some great new “applications” to whet our appetite and spur additional innovation. The Managed Metadata Service20, Access Services21, Secure Store Service22, and Web Analytics Service are excellent examples of combining all three strategies (Connect, Extend, and Build On) to provide valuable applications on top of SharePoint’s “operating system” and services.

Misconceptions of SharePoint as an Application Platform

Page 25: Benefits of SharePoint 2010 as a Product Platformthreewill.com/wp-content/uploads/Benefits-of-SharePoint...Benefits of SharePoint 2010 as a Product Platform For Independent Software

25

Misconceptions of SharePoint as an Application Platform

Misconception 4 - SharePoint Cannot Be Used to Run Line of Business ApplicationsFor many years the reputation of SharePoint has been that it’s great for collaboration, but the platform is not capable of supporting true line-of-business applications. With Microsoft Office SharePoint Server 2007 and even more so with SharePoint Server 2010, this is not the case at all. Not only is the platform capable from an infrastructure standpoint in terms of performance and scalability, but the features and functionality of SharePoint itself are ideal for building such high-value business applications. As can be seen in the body of this paper, there is a solid foundational architecture and numerous inherent features (that are either out of the box or available via Technology Solution ISVs, tooling, and community support) to enable a combination of buying and/or building viable SharePoint line-of-business applications.

Misconceptions of SharePoint as an Application Platform

Examples of Line of Business SharePoint Applications There are already ISV’s building line-of-business applications on SharePoint. For example, NextDocs Corporation and TranSenda are two Vertical ISV’s that build such applications for the life sciences market.

For Technology ISV’s, you can look at companies such as KnowledgeLake that provide transactional content mangagement expertise for line-of-business applications that require image capture processing.

Page 26: Benefits of SharePoint 2010 as a Product Platformthreewill.com/wp-content/uploads/Benefits-of-SharePoint...Benefits of SharePoint 2010 as a Product Platform For Independent Software

26 27

Community Support and Tooling

SharePoint has a large (and growing!) community following and is well supported by Microsoft as well as third-party tools. Developer tools such as Visual Studio 2010 help build deep integration with SharePoint, while power user tools such SharePoint Designer (along with third-party web parts and components) provide a means for adding value with less effort.

Microsoft provides an excellent launch point for developers with the SharePoint Developer Center23. It includes how-to content and videos, SDK documentation, downloads, training resources, and links to community sites.

CommunityRich community support includes more than 180 Microsoft MVPs worldwide that have proficiency in SharePoint Services and SharePoint Server. MVPs are active members of the SharePoint community who make significant contributions by publishing original content and tools, monitoring and answering questions in online forums, presenting at major Microsoft conferences, and/or leading or actively participating in SharePoint user groups or code camps. The SharePoint Developer Center is a great place to monitor community content.

There are a large number of forums available for discussions on various SharePoint topics such as general design or development or specific areas like Workflow or Excel Services. Many ISVs have forums as well. Some popular community forums include:

• MSDN - SharePoint Products and Technologies Forums24

• TechNet - SharePoint 2010 Forums25

• Stack Overflow - SharePoint26

• Server Fault - SharePoint27

Microsoft’s open source project hosting site, CodePlex28, has become the de facto source for community-supported SharePoint projects. SharePoint projects include those that support developer activities as well as those that add to and customize SharePoint usability and features. A quick search of CodePlex yields over 1000 projects containing the keyword “SharePoint”!

Visual StudioVisual Studio is Microsoft’s flagship development environment. It provides support for developing applications and components across the spectrum of Microsoft technologies. The environment supports deep customization into the underlying ASP.NET infrastructure such as HttpHandlers, HttpModules, or membership providers for custom authentication – as well as SharePoint specific development.

Using a wizard-based interface, developers can create web parts, list definitions, list instances, content types, workflows, event receivers, application pages, and Business Data Connectivity Models. Additionally, resources such as JavaScript or solutions images that must be deployed to the file system

can also be easily added using Visual Studio. Visual Studio also includes support for creating SharePoint “Sandboxed Solutions” which are projects that utilize a limited set of the SharePoint API for deployments in low-trust environments. Visual Studio can then build the solution and create a SharePoint Solution Package (WSP) that can be deployed to a separate SharePoint instance.

DebuggingSeveral tools and techniques are available for debugging SharePoint solutions. Starting from the lowest level, applications built upon the Microsoft Server Operating Systems and ASP.NET enables OS event logs to be used for logging of errors, warnings, and information. At the next level, the Unified Logging Service (ULS) logs include SharePoint specific error and warning information. The level of detail (e.g., warning or information) included in the ULS logs can be controlled via settings in SharePoint Central Administration. ASP.NET tracing can be captured to the Visual Studio output window or can be viewed using the DebugView application. A higher level is the SharePoint Developer Dashboard, which includes execution times for page load and database queries. Problematic database queries can be further investigated by clicking the hyperlink for the query to see the call stack which led up to the query. Developers can also add monitoring for custom code wrapping it with a SPMonitoredScope section.

Visual Studio is a rich environment for debugging. Visual Studio can attach to the SharePoint worker process to allow stepping through server-side code such as for web pages, web parts, and user controls. Attaching to the SharePoint Services Timer process allows for debugging custom timer jobs or resumed workflow processes. Further, Visual Studio is a great script debugging environment, attaching to Internet Explorer for stepping into client-side code.

Page 27: Benefits of SharePoint 2010 as a Product Platformthreewill.com/wp-content/uploads/Benefits-of-SharePoint...Benefits of SharePoint 2010 as a Product Platform For Independent Software

27

Community Support and Tooling

Third Party ToolsThird-party developers have created myriad components that developers and power users can use to add value to SharePoint. Technology Solution ISVs such as CorasWorks, Bamboo Solutions, Nintex, and Quest are examples of tool providers that have extended the capabilities of SharePoint for power users, developers and administrators. Their offerings include data mash-up and presentation features, roll-up web parts, and even external data connectivity tools. These tools are typically well supported by their respective companies and by the user community and are available as trial downloads.

Office 365 & SharePoint OnlineAs mentioned earlier in this document, developers and ISVs must have an awareness of Office 365 & SharePoint Online in order to reach the broadest audience possible while achieving the desired functionality in a hosted, cloud-based environment. The tooling story for SharePoint Online mirrors the experience for on-premise environments: SharePoint Designer for advanced users and basic developer chores, and Visual Studio for more advanced developer customizations.

SharePoint DesignerSharePoint Designer is a very versatile tool which is used by developers and power users alike. SharePoint Designer includes (to name a few) support for customizing and designing web pages and master pages, creating and designing workflows, connecting Business Connectivity Services to external data, and customizing item-input forms for SharePoint lists. SharePoint Designer can also be used to create content types, lists, and site columns. SharePoint Designer can import workflows which have been designed using Microsoft Visio for implementation in SharePoint. Administrative tasks such as application of permissions or site settings can also be accomplished using SharePoint Designer.

Though SharePoint Designer is often a power user tool, it includes the ability to export components such as workflows (reusable workflows only), lists, and sites into SharePoint Solution Packages (WSPs). WSPs are the deployable unit for SharePoint components. Once exported, a WSP can be opened and more deeply customized using Visual Studio 2010.

SharePoint Designer can connect directly to a production SharePoint site. This capability may lead SharePoint administrators to fret, but SharePoint gives administrators the ability to specify SharePoint designer permissions for a web application using the following settings:

• Allow SharePoint Designer to be used in this web application

• Allow site collection administrators to customize site pages

• Allow site collection administrators to customize master pages and layout pages

• Allow site collection administrators to customize the URL structure of their web site

When editing a web page, SharePoint Designer by default restricts users to editing web parts on a page. This feature prevents developers from detaching the page from the site definition, which can increase maintenance costs. An Advanced Edit Mode is available for full editing of the page.

Often users will create solutions that grow over time to require a professional developer’s assistance. Solutions can be exported from SharePoint Designer 2010 and imported into Visual Studio 2010 to enable the developer to enhance the user’s solution without recreating it from scratch.

Community Support and Tooling

Page 28: Benefits of SharePoint 2010 as a Product Platformthreewill.com/wp-content/uploads/Benefits-of-SharePoint...Benefits of SharePoint 2010 as a Product Platform For Independent Software

28 29

Next Steps

The decision to use SharePoint as a web application development platform can be approached in different ways. Below are some strategies to consider.

Feature MappingMap a product roadmap to SharePoint features. After this mapping, determine what areas of SharePoint can accelerate your product development. This is a low-cost-of-entry approach to determine the benefit of leveraging the SharePoint platform. It may be beneficial to consult with someone that has a deep understanding of the breadth of capabilities that SharePoint can enable. Hopefully, this paper has given insight to the key capabilities and benefits of SharePoint that indicate if a feature-mapping exercise could have the potential to identify areas of overlap between SharePoint and intended product features. Also, during this analysis it is important to understand the components provided by the different product SKUs of SharePoint.

Market AnalysisGet an understanding of the use of SharePoint among current and prospective customers. Based on this understanding, you can make a more informed decision about the potential benefits of having a product built on or connected to SharePoint. In the situation of Horizontal ISVs, it can be a show stopper or a delay in the sales cycle if your product does not have a SharePoint connection strategy. For Vertical ISVs, building on SharePoint may result in a positive outcome based on the comfort level a customer’s IT group has with SharePoint. Having a product that leverages SharePoint (a familiar platform service that IT groups use today) will be seen as a simpler solution and one that is more maintainable. For example, most Microsoft based IT shops know how SharePoint security works, so there will be a comfort level of leveraging an existing authentication and authorization mechanism that is integral to SharePoint.

Bake OffAn interesting exercise is to build two similar products; one leveraging SharePoint and one that is built from the ground up. This is not a common exercise, but can be a very eye-opening experience. With the SharePoint development, there is more of a focus around the business problem and less of a focus on the framework. Because of this focus, many common business problems can be solved with a large reduction of custom code and a greatly reduced development cycle.

Pilot ProjectMost companies when evaluating a new technical roadmap will approach building their product incrementally by starting with a Beta of the product first. They typically build a Beta of their SharePoint based product in a 1-3 month cycle. Getting a quick cycle of the product is a key to understand the true value of a Connect, Extend, or Build On strategy. It can be surprising what features can be built in 1-2 week iterations. By 3-6 iterations, typically enough features are in the product to release to a Beta Community. After this 1-3 month time frame, development cycles are understood and an organization is prepared to have a tighter estimate on what it will take to get a product to a version 1.0.

Consult with OthersDiscuss this with other ISVs, enterprises, and/or consulting companies that have done this before. There is nothing like getting feedback from people that have been through the process. There are plenty of Horizontal and Vertical ISVs (and enterprises) that have made a choice to Connect, Extend, or Build On the SharePoint platform. Finding a company that is building similar products and asking about their experience will be very enlightening. Of course, the competition might not be willing to discuss their experience, but it is easy to find other ISVs that are building software that has equivalent features or a similar level of complexity. It is surprising how many companies are willing to share their experiences.

Page 29: Benefits of SharePoint 2010 as a Product Platformthreewill.com/wp-content/uploads/Benefits-of-SharePoint...Benefits of SharePoint 2010 as a Product Platform For Independent Software

29

Next Steps Next StepsSharePoint

® ISV Partner Ecosystem

The Business Collaboration Platform for the Enterprise and the W

eb

© Copyright 2010. M

icrosoft Corporation. All rights reserved.

CollaborationAditiColligoContent Circles

Social Computing

Awareness

ConnectBeamIN

gage Netw

orksKW

izComLeverage Softw

areLightning ToolsN

ewsG

atorN

intexRealComTelligent

Wiki Tools

AtlassianBam

boo SolutionsBlueBridgeKW

izCom Comm

unities

Business ProcessM

anagement

AgilePointD

atapolisG

lobal360InRuleITSystem

s AGK2KaldeeraM

etastormN

intexSharePoint SolutionsSharePointBoostShareVisSkeltaU

ltimus

Developer Com

ponentsAtalasoftCom

ponentOne

ESRIID

V SolutionsInfragisticsInfusionInterKnow

logyN

etUnity

Tec-ITTelerik

User Com

ponentsBam

boo SolutionsCorasW

orksKw

izComM

indJetSenova SolutionsSharePartXXLTechtraW

orkLight

Composites

Accessibility

HiSoftw

are

Adm

inistrationAvePointAxcelerD

ata AssistEcho TechnologiesIderaiD

evFactoryQ

uest Software

Geo-Replication

DoubleTake

Echo TechnologiesInfonicN

everfailRepliW

ebSyntergy

Governance

AvePointCAClusterSevenM

imosa System

sN

avantisN

extPageO

mada

Quest Softw

areSecurentspeakTECHW

orkshare

Identity/User D

irectoryN

ovellPing

Mobile A

pp SupportForm

otusH

3-Inc (Mobile Entree)

PushBIRealCom

merce

TransparaTrueContextW

ICKSoft

ReportingIntLockW

ebTrends

Security/Permissions M

gmt

bHold

CACiscoCourionG

igaTrustLightning ToolsM

cAfeeO

mada

Quest Softw

areRohatiSym

antecTrend M

icro

Site Managem

entAlceroEcho TechnologySharePoint Solutions

WA

N O

ptimization

Aptimize

BlueCoatBrocadeCerteonCiscoCitrixF5H

PRadW

are

Sites

Archiving/Backups

Allen Systems

AvePointBlueThreadCACom

mVault

EMC

Hitachi D

ata Systems

Iron Mountain

Metalogix

Mim

osa Systems

NetApp

Neverfail

Quest Softw

areSeagateSym

antec

Compliance

Bentley Systems

CAClusterSevenG

igaTrustH

iSoftware

HP

IndorseLiquid M

achinesN

extDocs

NextPage

Nintex

ProdianceTitus Labs

Content Migration

AvePointCasahlM

etalogixM

etaPlusM

etaVisProventeqQ

uest Software

SeeUnity

Tzunami

Valiance PartnersVam

osaVital Path

Content Transformation

Adlib Software

AnyDoc Softw

areCoextantD

ITA-ExchangeFoxit Softw

areTitus Labs

Digital A

sset Managem

entAdamEquilibriumO

pen Text (Artesia)Telestream

Docum

ent Assem

blyActiveD

ocsBusiness IntegrityD

ITA-ExchangeldIntelledoxM

icrosystems

Thirtysix Software

Xinnovation

Docum

ent Multi-A

uthoringBlack Blade AssociatesH

yLighterO

neDoc

ECM Interop

EMC

Hyland

IBMO

pen TextO

racleSAP

Forms

AdapxKayentisQ

dabraShareVisTec-ITTexcel

Content

Metadata M

anagement

Concept SearchingExpert SystemITSystem

s AGKw

izComM

etaVisN

etworked Planet

ScanJourSchem

aLogicSharePartXXLSm

artLogicSynaptica

OCR

ABBYYEM

CIRISKofaxO

pen Text

Offline Replication

ColligoD

igi-LinkD

osensioInfonic

Physical RecordsM

anagement

DataStore

FileTrailIron M

ountainO

mniRIM

Productiv

Records Managem

entApplied ISCAEM

CH

PO

pen TextProductivU

niqueWorld

Storage ServicesCom

mVault

EMC

HD

SIron M

ountainN

etAppO

pen TextSeagate-i365

Transactional ContentM

anagement

BancTecBlueThreadClearviewD

ark Blue Duck

eCopyFujitsuH

yland Software

ImageSource

IRISKnow

ledgeLakeKodakKofaxLaserficheN

uanceSpringCMXerox

Translation SupportIceFireIdiom

Web Content M

anagement

CoextantIT H

itM

etalogixpToolsTelerik

Linguistic andSound Sem

anticsConcept SearchingExpert SystemSinequa

Natural Language Search

Q-G

o

Query Enhancem

entsBA-InsightExpert SystemScanJourSurfRay

Repository Connectors/Protocol H

andlers/iFiltersBA-InsightCiteknetCom

perioCoveoH

andshake Software

iFilterShopSeeU

nityVital PathVorsitexm

Law

Visual SearchD

ocumill

Search

BCS-LOB Integration

ERP-LinkIntellim

akerLightning ToolsSim

plement

Sitrion (SAP)StoneBondTopaz BridgeVaricent

Business IntelligenceAdvantive.N

LClaritydeFactoM

axQ Technologies

Panorama

PushBIQ

uilogyRadW

areSolgeniaTagetikTransparaW

incor Nixdorf

Data Enhancem

entAcxiomM

etaCarta

Information Security

bHold

GigaTrust

Liquid Machines

NextPage

Om

adaSophos

Text Analytics

Infonic

Insights

Bamboo Softw

areBPA SolutionsCD

C CorporationCorasW

orksKronosSharePartXXLTXT e-SolutionsVaricentVerint

Business Solutions

Business IntegrityC-LutionsCorridor ConsultingD

olphin Software

Open Text

Contract Managem

ent

ADP

KronosN

akisaTopaz Bridge

HR Applications

AccTech Systems

BPA SolutionsCD

C CorporationLookO

ut Software

Portrait Software

RelavisTotalSoft

CRM

AiveaCactus Com

merce

E-Comm

erce

Applied Discovery

Digital Reef

WorkProducts

E-Discovery

Associated PressBentley System

sBloom

bergEasy Softw

are (AG)

it Consult (IT)KronosLexisN

exisM

icroStrategyThom

son Reuters

Knowledge M

anagement

Competentum

IntraLearnLearning Evolution

E-Learning/LMS

Bamboo Softw

areBrightW

orkLM

R Solutions

Project Managem

ent

Applied ISCAH

P

DoD

Certification

nGenera

SpringCM

SharePoint Cloud Offering

ATOS W

ORLD

LINE

FPWeb

GoD

addyLIN

K Developm

ent S.A.E.N

etrics Hosting AG

RackspaceTelecom

Italia S.P.A.Telecom

New

ZealandTelus Com

munications

Tieto Finland Oy

SharePoint FIS Hosting

SoftwareFX

Winnov

Video Interfacing

AzaleosBluespring Softw

are

Managed SharePoint

Services

CAMarketron

MetraTech Corp

MSA

Quark Com

munications

AccellosEscalateG

erber TechLexisN

exisM

anhattan AssociatesProfitBaseRadiantW

ebTrends

Consumer G

oodsBlue G

raniteCactus Com

merce

InvensysQ

uoforeTXTVendor M

anaged Technologies

Hospitality

Aristocrat TechnologiesTravelport

Distribution &

Services

AccelrysAdlib Softw

areCSCD

ITA-ExchangeG

ood ProductsN

extDocs

OSIsoft

PointCrossSchem

aLogicTranSenda

Life Sciences

AccruentAderantH

andshake Software

NextPage

Sonata Software

WorkProducts

Workshare

xmLaw

Professional Services

Areva Group

Enspiria SolutionsFlexnovaIH

S Inc.M

cLaren Software

Navantis

OSISoft

Power &

Utilities

Aspen TechAutodeskBentley System

sCincomD

assaultH

oneywell

ICON

ICSIntergraphO

SIsoftPTCRockw

ellSchlum

bergerSiem

ens PLMW

ipro Manufacturing &

Resources

AgilixCSID

atatelE-Learning ForceH

oughton Mifflin H

arcourtiStrategyIT W

orxSunG

ard Higher Education

Education

AdexaAspenTechEpicorICO

NICS

InfosysInvensysLogilityO

SIsoftRedPrairieSAP-D

uet

Supply Chain &Process Visibility

Acorn Systems

Cactus Comm

erceRed PrairieRPM

CarTXT eSolutionsVaricentW

incor Nixdorf

Retail

AvePointBentley System

sCACorasW

orksD

ialogic Comm

E-SponderN

ewsG

ator

Federal Governm

ent

Bentley Systems

CAImex System

s

State & Local G

overnment

ARGO

Data

CSCFiservFundTechJack H

enryM

emento

MiSys

Portrait Software

Prodiance CorporationProfitbaseR SquareSunG

ardTem

enosVertafore

Financial Services

AllscriptsCACare FusionCitiusTechG

reenway

Hyland Softw

areM

cKessonPhilipsSolverW

hite Cloud

HealthCare

Technology SolutionsH

orizontal Business SolutionsVertical Business Solutions

This is a representative sample of partners and is not designed to be a com

prehensive list. Rev. date M

arch 12, 2010.

This is a draft version. Please send feedback to spisvmap@

microsoft.com

.

SharePoint ISV Partner Ecosystem

The ISV Ecosystem

Map is representative only, and is not a com

prehensive list. The grow

th in ISV solutions for SharePoint is illustrated here, and grow

th in Horizontal

and Vertical solutions is significant. This growth indicates the strength, openness,

and flexibility of SharePoint as an Application D

evelopment Platform

. Com

ments

about the ISV Ecosystem

Map can be subm

itted to spisvm

ap@

microsoft.com

. (C

omm

ents will be accepted, but w

ill not be responded to.)

Page 30: Benefits of SharePoint 2010 as a Product Platformthreewill.com/wp-content/uploads/Benefits-of-SharePoint...Benefits of SharePoint 2010 as a Product Platform For Independent Software

30 31

Next Steps

Key ResourcesMicrosoft - SharePoint 2010: http://sharepoint2010.microsoft.com/Pages/ default.aspx

Microsoft - Office SharePoint Server 2007: http://sharepoint.microsoft.com/Pages/Default.aspx

Microsoft SharePoint Team Blog: http://blogs.msdn.com/sharepoint

Microsoft - SharePoint Developer Introduction for .NET Developers: http://www.microsoft.com/click/sharepointdeveloper/html/Default.html

MSDN - What’s New in SharePoint Server 2010: http://msdn.microsoft.com/en-us/library/ee557323(office.14).aspx

MSDN - What’s New in SharePoint Foundation 2010: http://msdn.microsoft.com/en-us/library/ee539826(office.14).aspx

MSDN - Introduction to SharePoint Products and Technologies for the Professional .NET Developer: http://msdn.microsoft.com/en-us/library/cc537498.aspx

MSDN - Microsoft SharePoint Products and Technologies: http://msdn.microsoft.com/en-us/library/bb931739.aspx

ReferencesMicrosoft - SharePoint 2010 Capabilities: http://sharepoint2010.microsoft.com/product/capabilities/Pages/default.aspx

Microsoft SharePoint Team Blog - SharePoint History: http://blogs.msdn.com/sharepoint/archive/2009/10/05/sharepoint-history.aspx

Microsoft SharePoint Team Blog - SharePoint 2010: http://blogs.msdn.com/sharepoint/archive/2009/10/19/sharepoint-2010.aspx

TechNet - SharePoint 2010 Forum: http://social.technet.microsoft.com/Forums/en-US/category/sharepoint2010

TechNet - Managed Metadata Service Application Overview (SharePoint Server 2010): http://technet.microsoft.com/en-us/library/ee424403(office.14).aspx

TechNet - Introduction to Access Services (SharePoint Server 2010): http://technet.microsoft.com/en-us/library/ee748634(office.14).aspx

TechNet – Configure the Secure Store Service (SharePoint Server 2010): http://technet.microsoft.com/en-us/library/ee806866.aspx

Microsoft Learning - Developing Service-Oriented AJAX Applications on the Microsoft Platform: http://www.microsoft.com/learning/en/us/book.aspx?ID=12793

MSDN - SharePoint Developer Center: http://msdn.microsoft.com/en-us/sharepoint/default.aspx

MSDN - SharePoint Products and Technologies Forums: http://social.msdn.microsoft.com/forums/en-US/ category/sharepoint

MSDN - Application Lifecycle Management Resource Center:http://msdn.microsoft.com/en-us/office/cc990283.aspx

MSDN - Team-Based Development in Microsoft Office SharePoint Server 2007: http://msdn.microsoft.com/en-us/library/bb428899.aspx

MSDN - Using Team Foundation Server to Develop Custom SharePoint Products and Technologies Applications: http://msdn.microsoft.com/en-us/library/cc948982.aspx

MSDN - Solution and Authored Artifact Development Models for SharePoint Products and Technologies: http://msdn.microsoft.com/en-us/library/dd179854.aspx

Page 31: Benefits of SharePoint 2010 as a Product Platformthreewill.com/wp-content/uploads/Benefits-of-SharePoint...Benefits of SharePoint 2010 as a Product Platform For Independent Software

31

Next Steps

Glossary of TermsIf you are new to ASP.NET or SharePoint concepts, we have provided the below glossary of terms for your reference.

ACL – Access Control List – a set of permissions tied to an object. For search indexing this involves storing the ACL with an item that is indexed so the query engine can easily determine if the current user has read access to the search result. See also http://en.wikipedia.org/wiki/Access_control_list.

AJAX – Asynchronous JavaScript and XML – refers to web requests from browser clients (JavaScript) that tend to return XML from the server without having to refresh the entire page. See also http://en.wikipedia.org/wiki/Ajax_(programming).

ALM - Application Lifecycle Management – refers to managing the entire software lifecycle of an application through the use of tools. See also http://en.wikipedia.org/wiki/Application_lifecycle_management.

ASP.NET – Active Server Pages .NET – Microsoft web application framework built upon the .NET framework. See also http://en.wikipedia.org/wiki/Asp.net.

BCS - Business Connectivity Services – SharePoint 2010’s new service for connecting SharePoint to business data that lives outside of SharePoint and can be accessed through database protocols, web services, or custom .NET code. The data is exposed within SharePoint as external content types.

BDC - Business Data Catalog – the original name for the BCS in SharePoint 2007 and now replaced by the BCS in SharePoint 2010.

CAS – Code Access Security – allows a set of code to demand certain security rights at runtime. See also http://en.wikipedia.org/wiki/Code_access_security.

Claims Based Authentication – an approach to identity management where a secure token service (STS) is used to make a “claim” on an identity. The STS can be used in a heterogeneous environment allowing disparate systems to trust the identity as long as they can share the same STS.

ClickOnce – Microsoft technology for deploying client applications over the Internet. See also http://en.wikipedia.org/wiki/ClickOnce.

Client OM - Client Object Model – the new object model available to browsers running JavaScript or Silverlight as well as Windows applications. This makes it easier for programmers to communicate to SharePoint through a client API.

Content Types – these define the schema and behavior of a particular type of content. In SharePoint this includes the fields for the content (list/library columns) and can also define workflow settings as well as information management policy settings. See also http://msdn.microsoft.com/en-us/library/ms472236.aspx.

ECB - Edit Control Block – the drop-down menu associated with an item in a SharePoint list/library.

Excel Services – allows the sharing of Excel content to others through SharePoint web user interface. See also http://office.microsoft.com/en-us/sharepointserver/HA101054761033.aspx.

Next Steps

References (continued)MSDN - Walkthrough: Creating a Basic SharePoint Web Part:http://msdn.microsoft.com/en-us/library/ms452873.aspx

Microsoft SharePoint Team Blog - Scaling to Extremely Large Lists and Performant Access Methods: http://blogs.msdn.com/sharepoint/archive/2007/07/25/scaling-large-lists.aspx

MSDN - Cohesion and Coupling: http://msdn.microsoft.com/en-us/magazine/cc947917.aspx

CodePlex: http://www.codeplex.com

CodePlex - WSPBuilder: http://www.codeplex.com/wspbuilder

CodePlex - STSDEV: http://www.codeplex.com/stsdev

CodePlex - SharePoint Solution Installer: http://www.codeplex.com/sharepointinstaller

StackOverflow - SharePoint: http://stackoverflow.com/questions/tagged/sharepoint

ServerFault - SharePoint: http://serverfault.com/questions/tagged/sharepoint

SharePoint Reviews – Reviews of Third Party SharePoint products - http://www.sharepointreviews.com/

David Chappell - The SharePoint 2010 Developer Platform:http://www.davidchappell.com/blog/2009/10/sharepoint-2010-developer-platform.html

Kollabria - Is SharePoint a Business Operating System?: http://www.kollabria.com/pages/Is-SharePoint-a-Business-Operating-System%3F.html

Office 365 & SharePoint Online Capabilities Microsoft_SharePoint_Online_Standard_Beta_Service_Description_Final.docx

http://www.microsoft.com/downloads/en/details.aspx?FamilyID=6c6ecc6c-64f5-490a-bca3-8835c9a4a2ea

Developing for Microsoft SharePoint 2010 Online: Understanding the Boundarieshttp://www.msteched.com/2010/NorthAmerica/OSP204

Page 32: Benefits of SharePoint 2010 as a Product Platformthreewill.com/wp-content/uploads/Benefits-of-SharePoint...Benefits of SharePoint 2010 as a Product Platform For Independent Software

32 33

Next Steps

SharePoint Ribbon – SharePoint 2010 provides a ribbon interface just like the ribbon introduced in most Office 2007 products. This ribbon is context sensitive to provide most common actions behind an icon at the top portion of the page. See also http://en.wikipedia.org/wiki/Ribbon_(computing).

Silverlight – A web application framework for rich web user interface that can be used across browsers and operating systems. See also http://en.wikipedia.org/wiki/Microsoft_Silverlight.

Site Actions Menu – A user interface component common on SharePoint pages that allow users with the appropriate permissions to perform common site actions such as creating a new list for a site. See also http://msdn.microsoft.com/en-us/library/bb418728.aspx.

SharePoint Workspace – Formally Groove in Office 2007, this is the offline client for SharePoint 2010. This is also a secure and rich peer collaboration environment that allows for data synchronization between users in a workspace without being connected to SharePoint. See also http://technet.microsoft.com/en-us/library/ee649102%28office.14%29.aspx

SPI - SharePoint Project Item – SharePoint Project Item Templates are used in Visual Studio 2010 to add project items to an existing SharePoint project, such as adding an event receiver to a list definition project. See also http://msdn.microsoft.com/en-us/library/ee231554(VS.100).aspx.

SPS - SharePoint Portal Services – The name used for the server product for first and second generation (version) of SharePoint.

SSO - Single Sign-On – Attributed to heterogeneous systems where a user can authenticate once and have access to multiple systems without having to log in again.

STS - SharePoint Team Services – The name used for the free add-on to Windows Server for the first generation (version) of SharePoint.

VSeWSS - Visual Studio Extensions for Windows SharePoint Services – A set of extensions to Visual Studio to help developers of SharePoint 2007 based applications.

WCF – Windows Communication Foundation – As part of the .NET framework, this foundation provides a unified model for building service-oriented applications. See also http://msdn.microsoft.com/en-us/netframework/aa663324.aspx

Web Part – Modular user interface components that are nested in Web Part Pages. Web Parts in SharePoint can be configured by a user, including determining in whichWeb Part Zone a Web Part is placed. This is a key part of packaging elements of a SharePoint solution. See also http://msdn.microsoft.com/en-us/library/dd583154(office.11).aspx.

Web Part Pages – The main container for the SharePoint user interface. Web Part Pages contain Web Part Zones, which can contain zero to many Web Parts. See also http://msdn.microsoft.com/en-us/library/dd583147(office.11).aspx

External Content Types – a Content Type that is external to SharePoint and is available through the BCS.

Federated Search / Query Federation – the act of delegating a query to another service, such as the owner of the content. The other service would be in charge of indexing the content as well. See also http://en.wikipedia.org/wiki/Federated_search.

Folksonomy – simple tagging or classification of content that emerges from users of content vs. being mandated to a predetermined structured taxonomy. Folksonomies are considered to be a bottoms-up approach to tagging content. Taxonomies are usually considered a top-down approach to tagging content. See also http://en.wikipedia.org/wiki/Folksonomy.

HTTP Handler – code within ASP.NET that can be configured to handle particular type of request (e.g., a GET for a URL). See also http://msdn.microsoft.com/en-us/library/bb398986.aspx.

HTTP Module – code within ASP.NET that can be configured to as part of the pipeline for all requests for a particular site or sub-site. See also http://msdn.microsoft.com/en-us/library/bb398986.aspx.

Information Management Policies – a set of rules that can be applied to content in SharePoint. See also http://msdn.microsoft.com/en-us/library/ms499244.aspx.

InfoPath Forms – Form-design tool used for electronic form data collection. SharePoint has a server feature for InfoPath Forms to allow viewing InfoPath Form within the browser on a SharePoint site. See also http://office.microsoft.com/en-us/sharepointserver/HA101672841033.aspx.

ISAPI - Internet Server Application Programming Interface – The API used for building the ASP.NET framework. See also http://en.wikipedia.org/wiki/Internet_Server_Application_Programming_Interface.

Master Pages – This ASP.NET capability is used for common/consistent layout and web pages across sites in SharePoint. See also http://msdn.microsoft.com/en-us/library/wtxbf3hh.aspx

Monitored Scope – A technique used to instrument code to show up in the SharePoint Developer Dashboard. See also http://www.wictorwilen.se/Post/Improve-your-SharePoint-2010-applications-with-monitoring-using-SPMonitoredScope.aspx and http://blogs.technet.com/speschka/archive/2009/10/28/using-the-developer-dashboard-in-sharepoint-2010.aspx

MOSS - Microsoft Office SharePoint Server - the name of the licensed version of SharePoint in 2007.

MSF - Microsoft SharePoint Foundation - the new name of the core/foundation of SharePoint in 2010.

MSS – Microsoft SharePoint Server – the new name of the licensed version of SharePoint in 2010.

OData – Open Data Protocol - Web protocol for querying and updating data that provides a way to unlock your data and free it from silos that exist in applications today. See also http://www.odata.org

SAML – Security Assertion Markup Language – XML-based standard for exchanging authentication and authorization data between security domains. See also http://en.wikipedia.org/wiki/Security_Assertion_Markup_Language.

Page 33: Benefits of SharePoint 2010 as a Product Platformthreewill.com/wp-content/uploads/Benefits-of-SharePoint...Benefits of SharePoint 2010 as a Product Platform For Independent Software

33

Next Steps

Glossary of Terms (continued)Web Part Zones – Web Part Zones allow a user or developer to place Web Parts in relative positions within a Web Part Page. For example, you could have top, left, and right Web Part Zones to organize where Web Parts would be rendered on a Web Part Page.

WF - Windows Workflow Foundation – Microsoft workflow framework that can be hosted within SharePoint to provide workflow capabilities. This engine is used for custom workflows and is leveraged by most products that provide workflow in SharePoint. See also http://msdn.microsoft.com/en-us/netframework/aa663328.aspx.

WSP - Solution Package – A CAB file with the extension of “.wsp” used to deploy code to a SharePoint Server. See also http://msdn.microsoft.com/en-us/library/bb466225.aspx.

WSS - Windows SharePoint Services - the name of the core of SharePoint from v1 through v3. In 2010 this has been replaced with the moniker Microsoft SharePoint Foundation (MSF).

Page 34: Benefits of SharePoint 2010 as a Product Platformthreewill.com/wp-content/uploads/Benefits-of-SharePoint...Benefits of SharePoint 2010 as a Product Platform For Independent Software

34 34

Appendix

Footnotes1 SharePoint History Blog Post -

http://blogs.msdn.com/sharepoint/archive/2009/10/05/sharepoint-history.aspx

2 SharePoint Capabilities - http://sharepoint2010.microsoft.com/product/capabilities/Pages/default.aspx

3 Microsoft SharePoint Team Blog (SharePoint 2010) - http://blogs.msdn.com/sharepoint/archive/2009/10/19/sharepoint-2010.aspx

4 SharePoint Connector for Confluence (Atlassian Product Page) -http://www.atlassian.com/sharepoint/

5 SharePoint Connector for Confluence (How We Did It Article on SharePoint Product Team Blog) - http://blogs.msdn.com/sharepoint/archive/2008/01/10/sharepoint-connector-for-confluence-how-we-did-it.aspx

6 Allowing Connections to Multiple SSRS Servers with Report Viewer and Explorer Web Parts (How We Did It Article on SharePoint Product Team Blog) -http://blogs.msdn.com/sharepoint/archive/2008/11/03/how-we-did-it-allowing-connections-to-multiple-ssrs-servers-with-report-viewer-and-explorer-web-parts.aspx

7 Automating Service Requests using InfoPath Forms Services (How We Did It Article on SharePoint Product Team Blog) - http://blogs.msdn.com/sharepoint/archive/2008/11/14/how-we-did-it-automating-service-requests-using-infopath-forms-services.aspx

8 CorasWorks App Store - http://www.cwappstore.com/

9 Data Integration Toolset from CorasWorks - http://www.corasworks.net/dataintegrationtoolset/

10 MashPoint from Bamboo Solutions - http://store.bamboosolutions.com/ps-118-5-mashpoint.aspx

11 Mike Flasko’s “Breaking Down ‘Data Silos’ - The Open Data Protocol (OData)” - http://blogs.msdn.com/astoriateam/archive/2009/11/17/breaking-down-data-silos-the-open-data-protocol-odata.aspx

12 SharePoint Search Connector Framework Overview - http://msdn.microsoft.com/en-us/library/ee556429 (office.14).aspx

13 Introduction to SharePoint Products and Technologies for the Professional .NET Developer - http://msdn.microsoft.com/en-us/library/cc537498.aspx

14 David Chappell’s Blog (The SharePoint 2010 Developer Platform) - http://www.davidchappell.com/blog/2009/10/sharepoint-2010-developer-platform.html

15 Solution and Authored Artifact Development Models for SharePoint Products and Technologies - http://msdn.microsoft.com/en-us/library/dd179854(office.12).aspx

16 Working with Large Lists in Office SharePoint 2007 Whitepaper - http://blogs.msdn.com/sharepoint/archive/2007/07/25/scaling-large-lists.aspx

17 MSDN Pattern in Practice (Cohesion And Coupling) - http://msdn.microsoft.com/en-us/magazine/cc947917.aspx

18 Developing Service-Oriented AJAX Applications on the Microsoft Platform - http://www.microsoft.com/learning/en/us/book.aspx?ID=12793

19 Article on “Is SharePoint a Business Operating System?” - http://www.kollabria.com/pages/Is-SharePoint-a-Business-Operating-System%3F.html

20 Managed Metadata Service Application Overview - http://technet.microsoft.com/en-us/library/ee424403(office.14).aspx

21 Introduction to Access Services - http://technet.microsoft.com/en-us/library/ee748634(office.14).aspx

22 Configure the Secure Store Service (SharePoint Server 2010) -http://technet.microsoft.com/en-us/library/ee806866.aspx

23 SharePoint Developer Center - http://msdn.microsoft.com/en-us/sharepoint/default.aspx

24 MSDN - SharePoint Products and Technologies Forums -http://social.msdn.microsoft.com/forums/en-US/category/sharepoint

25 TechNet - SharePoint 2010 Forums - http://social.technet.microsoft.com/Forums/en-US/category/sharepoint2010

26 Stack Overflow - SharePoint - http://stackoverflow.com/questions/tagged/sharepoint

27 Server Fault - SharePoint - http://serverfault.com/questions/tagged/sharepoint

28 CodePlex (Open Source Project Community) - http://www.codeplex.com/