Your SlideShare is downloading. ×

Benefits of share_point_2010_as_a_product_platform


Published on

Benefits of share_point_2010

Benefits of share_point_2010

  • Be the first to comment

  • Be the first to like this

No Downloads
Total Views
On Slideshare
From Embeds
Number of Embeds
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

No notes for slide


  • 1. Benefits ofSharePoint 2010 as aProduct PlatformFor Independent Software Vendors and EnterprisesDate published: June 2010Authors:Owen Allen – Senior Product Manager for SharePoint ISV Partners, Microsoft CorporationEric Bowden – Senior Consultant, ThreeWillKirk Liemohn – Principal Software Engineer, ThreeWillDanny Ryan – Principal, ThreeWillTommy Ryan – Principal, ThreeWillPete Skelly – Principal Consultant, ThreeWillContributors: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 CorporationReviewers: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 CorporationAaron Rafus – Technology Evangelist, McKesson CorporationWilliam Rogers – Chief Workplace Architect, CorasWorks CorporationBrendon 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 CorporationSummaryDuring 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.” Tomake his case, he cited the momentum of the SharePoint platform along with significant announcements fromcompanies building integration with SharePoint into their products and services. This white paper, designedfor Independent Software Vendors, software architects, CIOs, and other enterprise technology leaders picks upthis discussion by addressing the perceived limitations that may cause development companies to discountSharePoint as a development platform when drawing up a technology roadmap – and illustrating the value ofleveraging SharePoint as a Web Application Development Platform for those organizations.
  • 2. ContentsWhy This White Paper...............................................................3 Perceived Barrier 3 - Lack of Integration with External or Relational Data.........21SharePoint Background............................................................4 Perceived Barrier 4 -Audience for this Paper............................................................6 Application Lifecycle Management (ALM) and Code Isolation..................................................................................21 .Making the Case for SharePoint.............................................7 . Is Perception Reality?.....................................................................22 Does SharePoint Fit..........................................................................7 Misconceptions of SharePoint as an Making the Case................................................................................8 Application Platform...............................................................23 Leveraging the Platform............................................................8 . Misconception 1 - Understand Your Value Proposition.......................................8 A SharePoint Dependency Means Closed Architecture........................................................................23SharePoint Platform Strategies...............................................9 Misconception 2 - Connect................................................................................................9 . SharePoint Applications Are Too Restrictive.........................23 Extend.................................................................................................11 . Misconception 3 - SharePoint Is Only a Document Repository..........................24 Build On..............................................................................................12 Misconception 4 -Platform Capabilities...............................................................13 SharePoint Cannot Be Used to Run Line of Business Applications...............................................................25 Infrastructure....................................................................................13 Community Support and Tooling.........................................26 ASP.NET HTTP Pipeline.................................................................. 13 Community.......................................................................................26 . Application Security........................................................................ 14 Visual Studio.....................................................................................26 Service Applications........................................................................ 14 Debugging........................................................................................26 . Packaging and Deployment........................................................ 14 SharePoint Designer......................................................................27 . Content Management...................................................................15 Third Party Tools..............................................................................27 External Data..................................................................................... 15 . Next Steps. ................................................................................28 . Business Intelligence...................................................................... 16 . Feature Mapping.............................................................................28 Search................................................................................................... 16 Market Analysis...............................................................................28 . Workflow............................................................................................. 17 Bake Off..............................................................................................28 Data Model User Interface........................................................... 17 Pilot Project.......................................................................................28 And More............................................................................................ 17 Consult with Others.......................................................................28 . User Interface...................................................................................18 . ISV Ecosystem Map........................................................................29 . Platform Capabilities Summary.................................................19 Key Resources...................................................................................30Barriers to Adoption as a Development Platform. ...........20 . References.........................................................................................30 . Perceived Barrier 1 - Unique Developer Skill Set..........................................................20 Glossary of Terms............................................................................31 Perceived Barrier 2 - Footnotes...........................................................................................34 Closed or Restrictive Platform Services...................................20 2
  • 3. Why This White PaperAs with any evolving product, there are false ceilings set due to people’s experiences with previous versions. The initial corefeatures/capabilities for SharePoint were targeted to provide out-of-the-box features that made the product easy to useand administer for team sites and portals. The product was extensible from the beginning, but it was not architected for themainstream developer. This focus has changed over the years and there are very compelling reasons that product companiesshould consider SharePoint in their technology roadmaps.The ability to leverage the rich features of SharePoint technologies is reason enough to consider SharePoint as a webdevelopment platform. Another key reason to consider either building on top of SharePoint or having a connection strategywith SharePoint is market opportunities that come from being associated with this popular platform (over 100 million licenses ofSharePoint have been sold). The purpose of this white paper is to address the perceived limitations that typically cause productcompanies 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 fasterand take advantage of the rapid adoption and increased market interest in SharePoint as a platform. Also described in this paperare the Connect, Extend, and Build On strategies and the advantages of each approach. 3
  • 4. SharePoint BackgroundSharePoint 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. Truecustomization was limited. Unlike subsequent versions of SharePoint, the two collections of services in its first version, SharePointTeam Services (STS) and SharePoint Portal Server (SPS), did not completely share a common framework.With the second version, Windows SharePoint Services With the release of WSS version 3 and Microsoft Office(WSS) 2.0 and SPS 2003, a third-party developer community SharePoint Server (MOSS) 2007, a developer community forbegan to form. This community was primarily focused on in-house developers and consultants started to form, whilethe gap between SharePoint features and the typical needs the third-party developer community continued to expandfor team sites and portals. These products often took form rapidly. The extensibility story became richer and the viabilityas components (such as a web part) that would empower of SharePoint as a web application development platformend users to put together lightweight applications. Also, the emerged. The services available to build upon in SharePointconcept of mashing up data from sources inside and outside of allowed for enhanced custom solution scenarios that couldSharePoint started to take shape. Outside of the development leverage Windows Workflow Foundation, web contentof third-party products, the developer community shied away management (via the incorporation of the Microsoft Contentfrom SharePoint customization because the techniques were Management Server product), a rich event model and searchoften fragile. For example, the ONET.XML had to be changed to capabilities, to name just a few areas.make branding changes; yet this SharePoint system file has alsohad the potential to be changed in subsequent service packupdates, overwriting the customizations. Also, the SharePointtechnology stack was executing in parallel to ASP.NET runtimeinstead of being built directly on top of it: SharePoint had aseparate ISAPI filter and did not run through the ASP.NET ISAPIfilter. As a result, SharePoint could not take advantage of theextensive features offered by ASP.NET.SharePoint HistoryTo get a good glimpse of the product history read Jeff Teper’s poston SharePoint History. Jeff is the Corporate VP of SharePoint andprovides a good perspective on how an early vision of SharePointhas prevailed over the years. As stated in the blog post, the strategyfrom the beginning has been: Great Integrated Solution Out-of-Box Web Workspace Compelling Office Integration Easy & Flexible Deployment 4
  • 5. SharePoint capabilities. capabilitie by the SharePSharePoint BackgroundWith SharePoint 2010, the names of the componentproducts have changed. The successor to WindowsSharePoint Services 3.0 is named Microsoft SharePoint 2001Foundation 2010 and the next version of Microsoft Office • SharePoint Team ServicesSharePoint Server 2007 is named Microsoft SharePoint • SharePoint Portal ServerServer 2010. The term “SharePoint 2010” is often used asan umbrella term to refer to SharePoint services generically,without being specific to SharePoint Foundation or 2003SharePoint Server. The developer story has also greatly • Windows SharePoint Services v2improved in SharePoint 2010. Whether building composite • SharePoint Portal Server2003applications without code or getting into Visual Studio andbuilding a packaged solution, there are many tools andfeatures available. In addition, the platform story has only 2007gotten better in 2010 and is becoming a key strategy forthe SharePoint product. This paper will dive into a few key • Windows SharePoint Services v3platform capabilities and reveal why they could be important • Microsoft Office SharePoint Server 2007to your product development technology roadmap.The SharePoint Team has done an excellent job of 2010establishing SharePoint as an “Application” and has made • Microsoft SharePoint Foundation 2010major strides toward SharePoint being a “Platform”. • Microsoft SharePoint Server 2010From developer tools to open-source communities todevelopment APIs, it is clear that the SharePoint ProductTeam does not intend SharePoint to be a “sealed” application.To the contrary, SharePoint has evolved into a webapplication development and integration framework forMicrosoft Developers to connect, extend, and build on.Terminology SitesThroughout this white paper we will use the terms SharePoint 2003, SharePoint 2007, etc. when we need to differentiate betweenreleases of SharePoint. If necessary, we will use the license names/abbreviations (e.g., WSS v3, MOSS 2007), will be used. Composites Communities Insights Content Search 5
  • 6. Audience for this PaperThe audience for this white paper is software product Note that Enterprises also have internal development efforts thatcompanies, which we will refer to as ISVs (Independent are very similar to product development that is performed with ISVs.Software Vendors), as well as software architects, CIOs, and Enterprises will connect, extend, or build on SharePoint to provideother enterprise technology leaders. The information in this solutions such as:paper is technical in nature so technical decision makers willbest connect with the content. • Connect SharePoint to proprietary or legacy systems to share data among systems or to provide an improved usability orFor SharePoint, Microsoft groups ISVs (see “Appendix A: accessibility experience to employees or client/customersSharePoint ISV Partner Ecosystem Map” for examples) into: • Extend SharePoints team site and collaboration templates and • Technology Solutions – ISVs that extend the functional capabilities to include standard features that are specific to the areas of SharePoint companies’ collaboration disciplines • Horizontal Business Solutions – ISVs that create broad • Build On SharePoint through the development of custom line- solutions that can apply to most companies’ needs of-business applications that automate processes based on the regardless of their industry; this paper refers to them as companies’ intellectual properties and business requirements Horizontal ISVs That being said, Enterprises should also consider in their • Vertical Business Solutions – ISVs that create industry- technology roadmaps and architects, CIOs, and other technology specific solutions; this paper refers to them as Vertical ISVs leaders can benefit from reading this white paper. 6
  • 7. Making the Case for SharePoint 2010 • Microsoft SharePoint Foundation 2010 • Microsoft SharePoint Server 2010Does SharePoint FitSharePoint can fit many product scenarios. Understanding if there is any alignment of SharePoint product features to yourproduct’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, Sites and internet sites. SharePoint Sites bring users together to share information, data, and expertise across organizations. Communities - SharePoint Communities empower people to Composites Communities 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. Insights Content 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 Search 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 datasources. SharePoint Insights empower users to discover the right people and expertise to make better and more agile businessdecisions.Composites - SharePoint Composites empower users to rapidly respond to business needs by creating their own no-codesolutions, on premises or in the cloud, through a rich set of building blocks, tools, and self-service capabilities.These product capabilities have considerable depth. This paper • Provisioning – The ability to allow users to easily provisionwill not cover each one in detail, but will provide descriptions new sites and lists as their business needs dictate.that could be helpful to those considering whether to build • Security – A comprehensive authentication and granularsimilar capabilities into their product(s) from the ground up. authorization system are built in and govern access to allFor more detail, please read this post from the SharePoint aspects of SharePoint.Product Team Blog3 . It provides 40 examples of investmentsin the six functional categories of SharePoint 2010 mentioned • User Interface – “Web Parts,” wiki style editing, a “Fluent”above along with Administration and Development areas of ribbon-based menu system, AJAX- style dialog boxesthe platform. and more are all provided. These features not only save development effort, they provide a strong level ofIn addition to these high-level solution areas, SharePoint consistency that aids in usability and adoption.provides a number of built-in features required by many websolutions. Thus by adopting SharePoint, an ISV can reuse rather • Forms and Workflows – Tools such as InfoPath andthan reinvent them. These capabilities include: SharePoint Designer allow business analysts and power users to construct workflow-oriented business applications.• List and Library Management – The ability to store ISV’s can easily add to the capabilities available in such information in lists which can be created by users or solutions, and can also provide pre-built forms and programmatically, and which have rich built-in capabilities workflows oriented to specific horizontal or vertical such as check-in and check-out, versioning, approvals, business scenarios. folder hierarchies, data validation, user-configurable views, calculated fields and more. Input forms, item and list level The reuse of these capabilities allows ISV’s to focus on their views, grid-based editing, RSS rendering and more are also core values rather than reinventing yet another security system built into all lists. Libraries build on lists by including binary or UI. They also allow business users to combine SharePoint objects such as documents, images, and digital media. and ISV features to build solutions that uniquely address their business needs. 7
  • 8. Making the Case for SharePointMaking the CaseGetting the most out SharePoint as a basis for ISV offerings comes from understanding the platform and the value of having aproduct associated with SharePoint in the marketplace. Let’s explore this idea further.Leveraging the Platform Understand Your Value PropositionTo get the most from leveraging SharePoint as a platform, When building a roadmap, it is important to understandbegin by considering its built-in features and which of SharePoint’s strengths and weaknesses along with those ofits capabilities are relevant to your solution space. Most other SharePoint ISVs. A significant part of the product valueorganizations typically deploy one to two key workloads or is usually based on the feature gap between SharePoint andcapabilities at a time. For the best ROI (return on investment) what the current users and administrators need from theirand TCO (total cost of ownership), incorporate as many of the SharePoint environment.SharePoint built-in features as possible and follow common With Vertical ISVs, it is easier to determine the valueSharePoint best practices. This will allow faster time to market proposition. The vertical markets have their own ecosystemand lead to a product that will benefit from new releases of of products that have established pricing and licensingSharePoint. models. If determining what features are needed in a verticalOne simple example of leveraging the SharePoint platform market, perform a gap analysis of what features exist in theis document management. For instance, with the check in products of a vertical market. Based on that gap analysis, itand check out of documents, you can embrace the built-in can be determined how SharePoint can help penetrate thatdocument management features of SharePoint that provides market with built-in features (including what is configurablethis capability. Taking this approach will save money by within SharePoint). Understanding what it takes to connect,not having to build the feature from scratch, and will avoid extend, and build on SharePoint will help you understandconfusing users by providing a consistent way to perform this the incremental investment to turn SharePoint into a verticaltask. In addition, the product will benefit from future upgrades solution that fills a market the SharePoint feature. Thinking of SharePoint as a web application development platform? Explore the rest of this paper to get some furtherBecause SharePoint is a platform built on top of ASP.NET, many insight on the value of the platform.development skills are readily transferable. Understanding howto build ASP.NET applications with .NET framework languages isan extremely sound foundation for leveraging SharePoint as adevelopment platform. The SharePoint tooling in Visual Studio Keep in mind that some horizontal ISVs are creating solutions that2010 is quite mature, and there is a well-established SharePoint fit in vertical markets. They are typically not fully featured, but withcommunity to help in the learning process of your team. customizations they can compete in certain verticals. 8
  • 9. Se Windows ServerSharePoint Platform StrategiesThere 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. Connect Extend Build On Integrate an existing Create integrated solutions Create solutions on top product with SharePoint to that extend SharePoint of the SharePoint enable the two products to feature offerings - or that infrastructure that leverage work together. leverage or include the breadth of SharePoint capabilities. capabilities provided by the SharePoint platform.These strategies, for the most part, progress in the order of Connect, Extend, and Build On; advancing through them increasesa dependency on either SharePoint Foundation or SharePoint Server. Most product companies that accept a dependency onSharePoint will provide the option to run on SharePoint Foundation or Server, sometimes with a more comprehensive feature setenabled 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 dependencycan save development costs by leveraging Server features that otherwise need to be created (i.e., Form Services orWeb Content Management). 2001 • SharePoint Team ServicesLet’s explore these strategies of Connect, Extend, and Build On in more depth. • SharePoint Portal ServerConnectExisting products can be connected to SharePoint by providing integration points such as content embedding, cross-productsearch, and single sign-on. The goal is to give users a seamless experience and allow them to work in their product of choice 2003without having to spend time switching contexts between various products. This connection/integration can be unidirectional orbidirectional. • Windows SharePoint Services v2Here are more details on some of these integration points. • SharePoint Portal Server2003• Content Embedding - Content embedding may Connect strategies are common when a product does not share involve SharePoint content being viewed or used within the same platform or technologies as SharePoint (e.g., Java-based your product and vice-versa. This approach allows the instead of .Net-based). SharePoint and the connected product product’s data to be used in new ways. Maybe the can also execute on separate servers in the same network or in a 2007 data could be seen via a custom web part, referenced completely different network (e.g., one could be in the cloud). through some SharePoint list data, be part of a SharePoint • Windows SharePoint Services v3 workflow, and/or simply be easier to collaborate on using • Microsoft Office SharePoint Server 2007 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 2010 either a common search results UI or simply a shared search query API.• • Microsoft SharePoint Foundation 2010 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 • Microsoft SharePoint Server 2010 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. 9
  • 10. SharePoint Platform StrategiesProducts can be connected to SharePoint using existing or A clear example of a connect scenario for an ISV is thecustom web services regardless of whether they are built SharePoint Connector for Confluence4. You can read aboutin .NET, Java, or another technology. The integration points the technologies involved in a How We Did It Article onare more compelling in SharePoint 2010 with its richer web SharePoint Product Team Blog5. You can also read more aboutservices infrastructure (WCF), richer UI capabilities (AJAX, an enterprise example that involved unique requirement toSilverlight, and Client OM), improved search architecture, and connect SQL Server Reporting Services (SSRS) and SharePointnew claims based authentication capability (including SAML). 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 10
  • 11. SharePoint Platform StrategiesExtendThere 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. Withmost Extend solutions, the SharePoint interface is not abstracted from the user and the focus is enabling the customer to speedup 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 standardwith SharePoint. For example, Nintex provides WYSIWYGworkflow editors in the browser and Colligo provides a rich, Extend strategies are common for products that provide integratedoffline synchronization experience with SharePoint Lists and building blocks from which others can build a final solution.Libraries. Note that enterprises often take an Extend strategywith their SharePoint application development. A goodexample of this strategy is the extension of InfoPath andForms 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, individualdepartments can implement custom service-request sites yet still have access to common services within the enterprise. Readabout 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 11
  • 12. SharePoint Platform StrategiesBuild OnProducts designed and built from the ground up for SharePoint can take advantage of its broad feature set. Out-of-the-boxSharePoint 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 strategycreates 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 thatproducts using the Build On strategy might abstract the user from the SharePoint interface (leveraging the SharePoint Services butcreating a totally different user experience than what is provided by the SharePoint interface).Using the Build On strategy does not preclude some external Build On strategies are common when a product uses the samecomponent from existing: call it a hybrid Build On/Connect platform and technologies as SharePoint. Products built on ASP.NETstrategy. For example, a back-end component from a product and SQL Server should consider the Build strategy and would use allsuch as a processing server or database may be completely or most of the SharePoint infrastructure (front end servers, applicationexternal from SharePoint. Alternatively, a custom UI such as a servers, content databases, IIS web sites, list infrastructure, webClickOnce WPF application may be part of the solution as well. services architecture, etc.).Before deciding how certain components may live completelywithin or outside of the SharePoint infrastructure, invest inunderstanding the new Services Architecture, vastly improved As an example, CorasWorks and its application publishersBusiness Connectivity Services (BCS), the new SharePoint provide a broad line of off-the-shelf departmental businessWorkspace features, and the benefits that SharePoint’s applications through a Build On SharePoint strategy. Fordeployment model can provide (e.g., managing web.config reference see the CorasWorks App Store8.changes across multiple web front ends).“Over the last 3 cycles of SharePoint CorasWorks has been transitioningits products from technology solutions to horizontal and verticalbusiness solutions. Using a strategy of Building On SharePoint 2010,CorasWorks and our application publishers are able to focus on thebusiness solution vs. technology extensions – thereby addressing thecritical last mile to unleash business value”William Rogers, Chief Workplace Architect at CorasWorks 12
  • 13. Platform Capabilities Silverlight JavaScript Windows AppSharePoint provides a great foundation for application development at all levels of the software development stack. Thecapabilities extend outward to include search, workflow, scalable and extensible services architecture, and administrative features. Client OM Client OM Client OMBeing built upon ASP.NET and Windows Server platforms allows SharePoint to expose infrastructure features and inherent SvcProxy AJAX AJAXpoints of extensibility to application developers. ISVs who choose to build upon SharePoint will find that they inherit a rich setof 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 ConnectivityServices (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 SharePoint Web ServicesUser Interface similar to n-tier architecture models. This is a departure from the SharePoint wheel shown earlier. This SharePoint Server-Side UIwheel works well from an end-user point of view, but the below diagram is more useful when looking to understand SharePointas a developer platform. SharePoint SharePoint APIInfrastructureSharePoint is now at version4 and has become a well- Request Membership Service Applicationtested and trusted platform Authorization Provisioning Pipeline Providerfor securing content and Architecture Deployment Scalabilityallowing ISVs to move forward ASP.NETinto adding application value.Its infrastructure starts with Authentication Content & Configuration DatabasesWindows Server and the IIS SQL Server.NET Framework and heavilyrelies on IIS, ASP.NET and Windows ServerSQL Server. Out-of-the-boxauthentication includes WindowsNTLM or Kerberos whileSharePoint and ASP.NET extensibility allow for developers to provide custom forms and web single sign-on options. SharePointresource authorization can be managed at site collection, site, page, item, and custom action levels; security permissions can alsobe applied in custom code. Role membership can be defined individually or by using SharePoint or Active Directory groups. Connect Extend Build OnASP.NET HTTP Pipeline an existing Integrate Create integrated solutions Create solutions on top product with SharePoint to that extend SharePoint of the SharePointASP.NET extensibility goes further by allowing developers to add in HttpHandlers and HttpModules for custom request enable the two products to feature offerings - or that infrastructure that leveragehandling. Developers can use this handling to support features such as global changes to the SharePoint interface, custom work together. leverage or include the breadth offile-type processing, custom authentication, and more. For example, an HttpHandler could be created to prevent cross-site SharePoint capabilities. capabilities providedscripting errors when processing requests for file types stored in an external system. The HttpHandler could accept a request by the SharePoint platform.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 fromSharePoint. The SharePoint API, including site and user context, are available from within the handler. Because SharePoint is builtupon ASP.NET, application developers have available both the ASP.NET customization options as well as SharePoint context andconfiguration. 2001 • SharePoint Team Services • SharePoint Portal Server 2003 • Windows SharePoint Services v2 • SharePoint Portal Server2003 13 2007
  • 14. Platform CapabilitiesApplication Security Packaging and DeploymentAnother example of extensibility provided by ASP.NET includes The deployment capabilities of SharePoint cannot becreating custom membership providers that enable login overstated either. Custom functions are packaged into acredentials to be retrieved from a custom store. Membership solution package file (WSP) and may contain one or moreproviders supplied by SharePoint allow connecting to features scoped to the farm, a web application, site collection,membership stores created using SQL, LDAP, or Active or site. SharePoint handles the deployment of files to theDirectory. The base MembershipProvider, like many ASP.NET GAC, bin, and virtual directories within the web site onand SharePoint classes, can be extended, allowing developers the front end web servers. It also handles deployment ofto create custom implementations. The membership provider content to the content databases. After files are deployed tois configured in the site web.config file allowing, among other the web front ends (WFEs), additional WFEs can be addedthings, a custom login page to be supplied. and SharePoint handles updating the new WFEs, including web.config file updates. SharePoint 2010 adds additionalClaims-based authentication is a significant infrastructure deployment capabilities with its versioning support andfeature new to SharePoint 2010. With claims, user Sandboxed Solutions. With Sandboxed Solutions, WSPs areauthentication is provided by an “identity system” that deployed to a content database and farm administrators aremay include corporate credential providers such as Active given more control by isolating the execution environment ofDirectory, LDAP, or credentials stored in databases. Credentials the features within the package. This enables administratorsauthentication may also be provided by web sign-on providers to upload solutions only once that are automatically deployedsuch as LiveID and OpenID. Claims-based authentication will to all web front ends, increasing predictability and reducingmake it easier for additional identity systems to integrate with maintenance cost.SharePoint, thus opening up another point of extensibility. Service Applications OOTB Content Extension PointThe service application architecture, new in SharePoint Management Highlights2010, provides another point of extensibility and enterprisescalability. Services developed on the new platform can • Content Versioning • Event Receiversbe scaled across one or more servers and can cross the • Check-in/Check-out • Custom Field Typesfarm boundary to provide services for multiple SharePoint • Content Approval • Rendered Columnsinstallations. SharePoint services support additional scalability • Records Routing • Custom View Typesby providing “services in the cloud,” delivering new ways that • Information • External DataISVs can extend SharePoint. The services architecture includes Management Policies • Custom Actionsa configuration store for application settings, a common • CRUD UI • Custom InformationSQL database provisioning infrastructure, support for storing • Social Content Management Policiescustom data in databases that are managed by SharePoint, • Workflow • Custom Workflows • Content Types • Custom Workflow Actionsa location to host middle-tier web services, a provisioning • Field Types • Custom Content Typesmechanism for web services, and a service-scoped timer • Office Integration • Custom User Definedjob infrastructure to support scheduled operations. This is Functions • Offline Dataprobably the largest investment Microsoft has made • Web Services • Custom Web Servicestoward using SharePoint as a platform in 2010. • Search • Custom CRUD UI • Custom Search Content Sources Web Pages (ASPX Master Page Site Pages Customized Ribbon Custom Action Web Part Server Control User Control 14
  • 15. Platform CapabilitiesContent 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 anddisposition, records routing, and information-management policies such as content expiration. In addition, there is opportunity toextend the SharePoint ECM capabilities at all levels. To cover all of them would take several books, so just a few will be highlighted.Enterprise PerspectiveSharePoint can also be used as an underlying CMS to feed into other portal technologies.  At McKesson, we use Vignette as our portal today andSharePoint as our collaboration platform.  RSS and other technologies have allowed us to start taking advantage of the easy SharePoint CMScapabilities 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 oftheir Team/Department/Business Units they are taking SharePoint to the next level with data integration, creative redesigns and heavy processautomation projects.Aaron Rafus, Technology Evangelist, McKesson CorporationExternal DataApplication developers can choose to use SharePoint as a Another key advantage for using BCS is that SharePointdata store or use a separate, external data store such as one automatically provides a customizable UI that supports read/provided by a relational database, abstracted by web services, write as well as view/sort/filter capabilities. Standard ASP.NETor provided by custom code. Using the SharePoint data store, forms are created for external data connected to the form of SharePoint lists, allows for the full utilization Using SharePoint Designer or InfoPath Designer, developersof SharePoint content-management features, including the can create a richer interface for external data by generatingability of users to configure and extend the schema. However, InfoPath forms. InfoPath forms also allow for a richerSharePoint lists are not fully relational data stores. Application experience, including a deep set of form rules that can, amongdevelopers in need of a more relational or custom data store other things, connect to external data sources to fill user choicecan instead choose to connect to an external data source by fields and perform field-level validation.using external content types provided by Business Connectivity There are also external-data innovations outside of BCSServices (BCS). A hybrid approach involves connecting within Microsoft and the ISV community. For example, thereSharePoint list data to external data by using external data are several ISV products that expose external data withincolumns. An external data column is a field in a SharePoint list SharePoint. The Data Integration Toolset9 from CorasWorks andwhich is a look-up to an external data source. The external data MashPoint10 from Bamboo, for example, provide external datacolumn can select one or more fields from an external record connections to easily surface data into their web part be included in a SharePoint list item. Furthermore, standards such as OData (Open Data Protocol)BCS allows external data to participate in SharePoint content- are emerging. Similar to Microsoft ODBC efforts, OData is anmanagement features such as enterprise search, offline data open protocol for sharing data across various data consumersaccess, and integration into Office client applications including and data providers. OData is based on web standard such asOutlook, Word, and Access. External data can also participate HTTP and AtomPub (Atom Publishing Protocol) using JSONin content-management features such as tagging, workflow, notation. To learn more about this emerging data protocol,check-in/check-out, versioning, information management see Mike Flasko’s “Breaking Down ‘Data Silos’ – The Open Datapolicies, and permissions by using proxy records in SharePoint. Protocol (OData)”11 on the WCF Data Services Team Blog.External data columns in SharePoint allow SharePoint list itemsto relate directly to external data (e.g., proxy record). Customcode in workflows, event receivers, and custom informationrights management policies can then propagate activities thatoccur on the proxy records such as the application of tags orcheck-in/check-out to the external data records. 15
  • 16. Platform CapabilitiesBusiness Intelligence SearchData analysis is becoming a more frequent demand of any Search is a key capability for applications. Enterprise searchapplication, and this demand is rapidly expanding beyond supports searching data stored in SharePoint lists as wellthe need for basic operational reporting. SharePoint 2010 external data. In SharePoint 2010, the BCS indexes externalprovides a rich suite of offerings that application developers content and can involve no-code solutions for simple modelscan leverage to accomplish this goal. They include native or custom-managed code for more complex scenarios (e.g.,Charts and Data Indicator web parts, Performance Point nested/hierarchical data). Developers can customize the searchServices, Excel Services, Visio Services, and Reporting Services, experience by creating search scopes that limit a user’s search,and more. Each is designed for a unique business case. For for example, to application records or by generating a set ofexample, Performance Point Services supports business search refiners, allowing the search to be filtered and exploredscorecards, charts, and analytic dashboards. Using this feature by metadata at query time. Additionally, the search UI includesof SharePoint 2010, an ISV could provide a dashboard that points of extensibility such as the ability to configure the searchleverages Key Performance Indicators (KPIs) to give users results page and extending out-of-the-box search web parts.a quick view of operational health. The real purpose of a This is a very simple way to surface your existing solution’sdashboard is to direct users to highlighted areas that need data into SharePoint search through configuration rather thanattention. through programming. ISVs who choose the Connect strategy may want to use queryBusiness Intelligence federation to enable SharePoint and an external applicationNote that business intelligence features are extremely powerful in to maintain their own search indexes. Or they may choose toSharePoint 2010 and are a big part of exposing external data inside use SharePoint’s enterprise search Connector Framework12 toSharePoint. Since business intelligence features are in such high maintain a single index across applications. In SharePoint 2010,demand for enterprises today, this is an area of SharePoint that federated search is a core component in the search API and isshould not be ignored. even used by the Core Search Results web part. In SharePoint 2010, the Connector Framework no longerOne of the most exciting new features in Performance Point requires writing unmanaged protocol handlers for crawlingServices is the Decomposition Tree visualization. Visualizing custom content. The Connector Framework, and even BCSdata has many challenges, and each visualization strategy search, provides security descriptors (ACLs) at index timehas pros and cons. Grids show numbers but don’t highlight if the information is available. This allows for trimming therelative values, charts highlight relative values but don’t do a search results to only those items available to the individualgood job of showing actual values, and neither charts nor grids performing the a great job of visualizing hierarchical relationships in data. The Connector Framework is common across SharePoint ServerThe decomposition tree highlights hierarchical relationships, 2010 Search as well as FAST Search for SharePoint 2010, soshows raw numbers, and includes a graphing component that ISVs who build upon it will find their solution works with bothprovides the best of each of these worlds. This visualization can enterprise search options. On the other hand, ISVs who needbe selected by users on demand and offers a great alternative more search capabilities can build upon FAST and have evenfor users to perform ad-hoc analysis. more flexibility with its indexing and query pipelines as well as itsISVs looking to add analytics to their applications can leverage entity-extraction capabilities. The ability of FAST to automaticallyPerformance Point Services in both the Connect to and Build create and categorize metadata introduces options forOn scenarios as it provides a rich set of database connectors for developers looking to create search-driven applications orquerying application data, and can leverage existing reporting to aggregate structured and/or unstructured content frominvestments in its dashboard technology. Using this approach, disparate repositories while pivoting off common fields.Performance Point dashboards and scorecards can be builtto consume data from an existing application database and Strategy: Connect or Extendleverage existing custom reports. By using these features, users ISV’s looking to Connect or Extend SharePoint may find amplecan perform ad-hoc analysis of application data, and correlate opportunity within the SharePoint search infrastructure to providethat information with other business data. Furthermore, as custom indexing or federated search connectors to third-party datawith any good reporting solution, users are shielded from the sources. One can even imagine a federated search web part thatunderlying complexities of source system data models and aggregates similar data sources such as news feeds and organizes thequery languages. data in a meaningful way. 16
  • 17. Platform CapabilitiesWorkflow And More...Developers can further use content-management features Application developers can also dive deep into the SharePointthrough out-of-the-box SharePoint workflows such as data-management structure by adding event receivers. Eventthe “Approval Workflow” or by writing custom SharePoint receivers allow custom code to be executed when a changeworkflows to control features such as content approval or occurs to a site collection, site, feature, workflow, list, or listrecords routing. SharePoint provides the workflow execution item. Typical events that are handled include when a list orenvironment and Windows Workflow Foundation provides library item is added, updated, or deleted.the building blocks. In addition to custom workflows, ISVs SharePoint provides out-of-the-box information-can provide their own extension points by creating reusable management policies that govern the data life cycle within it.workflow activities for power users with SharePoint Designer or Examples include expiration, bar code, and auditing policies.for developers with Visual Studio. ISVs can create custom information-management policies soIn SharePoint 2007, workflows are associated with a list/library that SharePoint can manage their data but have it governedand workflow instances are tied to a list item. SharePoint by their specific rules.2010 provides for this association and also adds the ability for SharePoint’s latest social features around contentworkflows to be independent of lists so they can be reused management are also available to applications that store dataacross lists and content types. This capability opens up a whole in SharePoint lists or connect external data using externalnew world of possibilities for Workflow and SharePoint. 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 ofData Model User Interface metadata residing in a unified, centrally-managed location. Users can also rate “favorites” and bookmark data recordsUsing SharePoint content management features also provides to share and re-retrieve content they deem interesting.a functional UI around the data model. By default, SharePoint Additionally, items in document libraries can appear in thewill create the CRUD (Create, Read, Update and Delete) forms SharePoint Documents web part of a user’s My Site (theiraround application data. The forms may be replaced and personal web site) to display documents which the user hasdeveloped as ASP.NET application pages, or may optionally be recently modified. Documents can also appear in the Relevantdeveloped as InfoPath forms. InfoPath forms then bring in a Documents web part which displays recent changes for thelarge set of customization capabilities such as a form designer current user on the site.and a rich set of built-in form rules. SharePoint Workspace, formerly Groove, allows users to easilyUsers can customize the presentation of data in SharePoint by take the application data offline. SharePoint Workspace is acreating custom views. Custom views in SharePoint allow users windows desktop collaboration environment allowing usersto customize which columns are viewed, as well as add sorting, to interact with content and other team members. Usersfiltering, paging, sub-totals, and more. ISVs can further extend can work with application data offline and then synchronizethe behaviors of data in SharePoint views through custom with the SharePoint server when a connection is available.actions that can appear in the Actions menu of the view or on Offline mode is available for applications that store data inthe list item drop-down menu (e.g., Edit Control Block). ISVs SharePoint lists as well as to those that connect to SharePointcan also extend SharePoint out-of-the-box views by creating using Business Connectivity Services.rendered columns, custom view types, and custom field types.Custom field types provide custom storage and presentation ofdata types that are not native to SharePoint. Custom field typescan also be used to connect external data to native SharePointlists through custom controls for editing and rendering data. 17
  • 18. • Offline Data Functions • Web Services • Custom Web ServicesPlatform Capabilities • Search • Custom CRUD UI • Custom Search Content SourcesUser Interface Web Pages (ASPX) Master PageBeing built upon ASP.NET also allows forpoints of extensibility in the SharePoint UI. The Site Pagesinterface uses master pages, web parts, server Customized Ribboncontrols, and user controls developed using CustomASP.NET. This means that ASP.NET application Actiondevelopers can use familiar skills to build customUI components and then integrate those Web Partsolutions into the SharePoint UI. Server ControlCustom Actions provide additional optionsfor UI enhancement. Custom actions include User Controlcontent drop downs, “Site Actions” menu items,and links placed on administrative pages.As a result, it is very easy to create customadministrative pages and provide links to these Server Controlpages such that they look completely integratedwith the rest of the SharePoint administrationpages. SharePoint 2010 goes a step further withthe introduction of the SharePoint “Ribbon”. Thenew ribbon can be customized and extended bySharePoint developers to include content-sensitive menu options alongside the standard menu options that are provided. Silverlight JavaScript Windows AppWeb parts are a key UI component for ISVs, regardless of Strategy: Connectwhether they use the Connect, Extend, or Build On strategy. Client OM Client OM Client OM SvcProxy Connecting at the user interface layer allows users to view and interactWeb parts are an ASP.NET concept (and base class) and are AJAX AJAX with external data from within SharePoint while keeping the data andhosted by SharePoint. SharePoint also manages the storage data access code external to SharePoint. This is typically achieved byof web part properties, including shared property values and developing custom web parts or application pages which use customper-user property values. Web parts give users the ability to code libraries to directly access external data. Developing custom UIdesign and configure site pages. They can configure custom components is a lightweight strategy for connecting to SharePoint;web parts to connect to one another such as in a master/detail SharePoint Web Servicesarrangement. Standard web part connection interfaces, such as this approach from the consistent SharePoint user interface Server-Side Uthose provided by SharePoint filter web parts, allow out-of-the- paradigm and the ability to be used in SharePoint configuration and deployment web parts to connect with custom web parts. For example, SharePoint SharePoint APIthe Choice Filter web part can be connected with web partswhich implement the IFilterValues connection interface. Thereare nine filter web parts available from SharePoint Server,providing several options for connecting to a custom web partthat implements IFilterValues. Request Membership Service Application Authorization Provisioning Pipeline Provider Architecture Scalability ASP.NET Authentication Content & Configuration Databases IIS SQL Server Windows Server Connect Extend Build On Integrate an existing 18 Create integrated solutions Create solutions on
  • 19. Server ControlPlatform Capabilities User Control Server ControlSharePoint 2010 provides for even broader UI customization with the new client object model. This model allows for easyaccess to SharePoint data from client side JavaScript enabled browsers, windows desktop, and Silverlight applications. Thispoint of extensibility makes it much easier for developers to provide rich client- side features and usability when a web basedinterface is not desirable. Silverlight JavaScript Windows App Client OM Client OM Client OM SvcProxy AJAX AJAX SharePoint Web Services Server-Side UI SharePoint SharePoint APIPlatform Capabilities Summary Request Membership Service Application Authorization ProvisioningThe robust and extensible infrastructure, content management, and Provider UI capabilities position SharePoint as a solid choice for Pipelineapplication development. The flexibility built into SharePoint 2010 allows ISV developers to envision ways in which the platform Architecture Deployment Scalabilitycan be extended to provide even greater value. For more details from a developer perspective, see Introduction to SharePoint ASP.NETProducts and Technologies for the Professional .NET Developer13. Authentication Content & Configuration Databases IIS SQL Server Windows Server Connect Extend Build On Integrate an existing Create integrated solutions Create solutions on top product with SharePoint to that extend SharePoint of the SharePoint enable the two products to feature offerings - or that infrastructure that leverage work together. leverage or include the breadth of SharePoint capabilities. capabilities provided by the SharePoint platform. 2001 • SharePoint Team Services • SharePoint Portal Server 19
  • 20. Barriers to Adoption as a Development PlatformWe have described some of the ways SharePoint has matured just within the last two product cycles. But are there realimpediments to using SharePoint as an application platform? Let’s address four common perceived barriers: a unique developerskill set, a closed or restrictive set of horizontal services, the inability to integrate with external or relational data sources, and ALMand 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 andthe complexity of platform integration or extension. For example, the lack of a tight integration into the ASP.NET technology stackin SharePoint 2003 required investments in specific skill sets or making risky implementation decisions (e.g., ASP.NET developerscould either decide to not leverage their existing knowledge or make unsupported changes to ONET.XML). Although the skillsneeded were still based on .NET, the ability to have utility players jump in and code different product features would have beendifficult. 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 inSharePoint 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 APIsand architecture of SharePoint, all good .NET developers have a core .NET framework services expertise that will benefit theirwork on SharePoint applications – and SharePoint will continue to embrace the new .NET framework capabilities that benefit itssolutions, giving them additional and transferrable skills. Making the investment in understanding the SharePoint Frameworkstreamlines solution creation because developers can focus on solving business problem and build fewer framework services fromscratch. For larger development teams, the SharePoint expertise investment can be weighted more toward those involved witharchitecture and design, resulting in a shorter investment time for other developers (e.g., they don’t need to understand the entirefeature 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 ondecisions 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; and2. Enables extensibility and configurationOne 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 maturedto provide a rich, extensible set of base functions that address most cross-cutting concerns of modern business applications. Aninitial set of services that suited small- to medium-sized teams has been supplanted by one that offer flexibility and extensibilitywhile providing a standards-based approach to large scale implementations.Current core features including authentication, navigation, provisioning, and others support a provider model to enable extensionor replacement of base services. The use of common standards such as XHTML, WCAG, REST, SOAP, JSON, RSS, and XSLT alongwith standard OS platform services such as WCF, WF, LINQ, and PowerShell enables the use of standard, proven developmentprocesses and practices.Our first criteria of a platforms value (rich features) is certainly met by SharePoint 2007, and is vastly improved with SharePoint2010. Access to content and data through a variety of standards and channels provides an infrastructure upon which valuableapplications can be developed. The new Client Object Model and PowerShell support are prime examples of the extensibility andconfiguration capabilities of the platform that meet our second criteria of a platforms value. The Client Object Model provides theability to extend the use of SharePoint objects in a consistent manner across multiple technologies (including .NET, JavaScript, andSilverlight) in a whole new class of applications that can span web, Office client applications, and fat and thin clients – and evenprovide online/offline synchronization. PowerShell integration comes standard with SharePoint 2010; this integration enablesinstallation, configuration and management through standard cmdlets and extension through custom scripts and modules. Thereis 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. 20
  • 21. Barriers to Adoption as a Development PlatformPerceived 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 withexternal data sources. The most common vertical or business application requirement is to integrate with external data – forexample, 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, verticalproduct solutions don’t provide a compelling value proposition and viable profit margin for ISV’s to build these solutions. In theinitial releases of SharePoint, vertical product solutions required too much development effort, redundant data and processingto be viable products. However, integration with external data improved significantly from SharePoint 2003 to SharePoint 2007through the use of SharePoint Designer 2007 and the Business Data Catalog (BDC). SharePoint Designer could integrate easilyenough 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 MOSSand considerable modification and configuration for bidirectional integration. In summary, surfacing data has been possible, buttruly 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 SharePoint2010 these barriers are removed. BCS is a very compelling improvement in this area. BCS continues to provide read access toexternal data, and now provides streamlined capabilities to enable write access to external data sources and a client side runtimeand synchronization of data that now promote offline scenarios. This approach is all part of the base Microsoft SharePointFoundation 2010 platform services. These features combine to provide the ability to develop solutions using familiar Officeapplications as the facade, deploy them using proven ClickOnce technology, and enable users to access, update, and synchronizeand 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 fromSharePoint 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 integralpart of a business quickly and easily. It often provides an instant boost to collaboration and productivity for many organizationswith only out–of-the-box features. However, as with many things in life, there is another side to that coin. Developmentorganizations and IT professionals in many organizations are tasked with managing and maintaining environments and mustensure product quality or site availability and function. To support these requirements, IT operations often enforce ApplicationLifecycle Management (ALM) policies to ensure stability for the now business- critical SharePoint sites. Product or IT Operationsorganizations can require procedures ranging from simple source code control, to Code Access Security (CAS) for customSharePoint solutions, to dedicated server instances for a specific custom solution (yes, this does exist!). The first two approachesminimally impact cost and deployment and are relatively easy to implement. But dedicated instances (a radical approach toproviding stability), increase development, testing, hardware, and operating expenses – and can doom a product or solutionbefore 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 businesscritical tool, can continue to count on that tool being up and running. But are these really barriers to ISVs and enterprises usingSharePoint as a development platform?Let’s discuss just three of the requirements listed above: SCC, deployment policies, and development debugging cycle time. Thereare some excellent SharePoint ALM resources and blogs that provide guidance for the use of SCC with SharePoint. Microsoftprovides 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 isnot a barrier, but when developing products or solutions for SharePoint, artifacts must be identified and managed appropriatelyto enable repeatable deployments. The Solution and Authored Artifact Development Models for SharePoint Products andTechnologies15 provides an excellent discussion on defining and reconciling the differences between “solution” and “authoredartifact” development and source control. 21
  • 22. Barriers to Adoption as a Development PlatformStrict IT operations deployment policies exist to ensure a stable production SharePoint environment. Deployment policies canrange from simple sign off for “one throat to choke” for a failed deployment to rigorous quality metrics and test iterations beforea 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 maintainableways in SharePoint 2007. These tools are good, but what about those times when all the processes were followed, but a poorlywritten or poorly performing web part or custom solution was deployed anyway (besides bringing SharePoint to its knees andthe IT Pro developer to blows)? Now, IT operations will never deploy anything again, right? With the new features of SharePoint2010, IT professionals can now throttle requests and even isolate custom solutions, and developers can develop more “operationsfriendly” solutions by using viable production logging and troubleshooting techniques. HTTP request throttling will enable ITprofessionals to manage heavily used read operations without sacrificing critical update operations. Sandboxed Solutions letdevelopers create useful solutions and deploy them in a more controlled and isolated environment – which should make ITprofessionals and developers friends again. Developers can now easily log operations and provide detailed execution informationvia monitored scopes. Other deployment improvements include “round trip” workflow development and deployment. Workflowscan now be created using Visio, or exported from SharePoint Designer 2010, and modified using Visual Studio to extend and easetheir deployment as components of packaged solutions.The development and debug cycle time of SharePoint solutions and products was a serious issue in previous versions. Theability to press F5 to debug in Visual Studio has spoiled many and was sadly missing from the development experience. Thedevelopment and debugging cycle time shortcomings for SharePoint 2007 were painful, but the community shared many utilitiesand best practices including macros for attaching to IIS processes as well as utilities that provided better build and deploymentcapabilities. 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 roundtrips. 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 deploymentsequences. Not only are the basic issues of the F5 dev and debug cycle time addressed with Sandboxed Solutions (not evenrequiring a recycle for deployment), but now the out-of-the-box experience is improved by having a customize process thatoccurs when deploying and debugging. Finally, if the default SPI templates are lacking in some way, additional templates can becreated and made readily available to developers through the Visual Studio Gallery, providing an easy way to market a solutionvia 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 servicescoupled with the vertical integration capabilities of SharePoint 2010 eliminate most of those barriers. With a set of servicesthat have matured to support standard application requirements and that enable the extension or integration with custominfrastructure services, it seems inevitable that the next wave of SharePoint value will come in the form of vertical solutionsthat 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. 22
  • 23. Misconceptions of SharePoint as an Application PlatformThere have been, and continue to be, many misconceptions about SharePoint application platform capabilities. Most of themisconceptions 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 impressionthat SharePoint has a list limit of 2,000 items that it seems some bloggers have made a reputation on dispelling this myth. For adefinitive answer, see the Working with Large Lists in Office SharePoint 200716 whitepaper. In addition, there are several commonmisconceptions that specifically relate to development of solutions that provide business-specific value on the platform. Let’sreview four of the more prevalent ones:1. A SharePoint dependency means closed Architecture2. SharePoint applications are too restrictive3. SharePoint is only a document repository4. SharePoint Cannot Be Used to Run Line of Business ApplicationsMisconception 1 - Misconception 2 - SharePointA SharePoint Dependency Applications Are Too RestrictiveMeans Closed Architecture Another common misconception about delivering valuable applications on SharePoint is that the platform has too manySome potential vertical application ISVs misinterpret taking a restrictions to development and deployment. Often heard isdependency on the services and capabilities of the platform as that “SharePoint is too restrictive - I need complete controla limiting decision from an architecture perspective. The use over the environment in order to build my application.”of, and integration with, SharePoint platform services does not One could argue that domain-specific applications providingimply a tight coupling of your application to SharePoint (see vertical solutions similar to Excel Services or the Business DataCohesion and Coupling17 for a definition and discussion). The Catalog had architectural and scalability limits (each webability to create and extend loosely coupled solutions through application could only be associated with one SSP). Specifically,Service Oriented Architecture principles, specifically SOAP providing scalable, centrally managed and configured servicesand REST based web services, is available within SharePoint across a SharePoint farm or farms, simply was not Nothing precludes the use of ASP.NET features such as For example, try to imagine creating an “Insurance ClaimsHttpHandlers and HttpModules or custom REST or SOAP based Processing Service” that provides processing services forWeb Services to enable an application built on SharePoint 2007 all web applications in a SharePoint Farm using SharePointto be more SOA compliant. The approach is simply one that 2007. An ISV would have to deal with issues of deployment,requires a bit more than simplistic knowledge of the SharePoint configuration, scalability, database, and many more concerns asAPI. Integrating the creation of SharePoint “compliant” web custom into a Visual Studio build process and deploymentpackage, for example, is possible and can enable appropriate The “Service Application model” is now part of Microsoftseparation of business logic from SharePoint, but leverages all SharePoint Foundation 2010 and provides the next generationof the features of SharePoint’s deployment and accessibility. As for hosting services. The limitation of web applications beinga second example, the use of an HttpHandler to manage and associated with one Shared Service Provider is eliminated.provide AJAX REST services is a common approach to enabling Service Applications can be consumed by multiple websolutions to exploit the power of SharePoint while maintaining applications on an individual basis, across farms, and canopen access to common business data. This allows for WCF-like even be deployed in multiple (named) instances for specificcapability directly within SharePoint (see Developing Service- purposes. The architecture now enables dedicated serviceOriented AJAX Applications on the Microsoft Platform18 for databases, deployment via PowerShell, configuration andmore detail). process isolation, and large loads and scalability – and can also provide services in multi-tenant and cloud scenarios.SharePoint 2010 creates an even clearer response to this The Service Application model enables ISV’s to build thatmisconception. The ability to provide access via a new client API, vertical “processing service” that is now available to an entirenative REST services, out-of-the-box support for WCF services, enterprise, or potentially as a value-added service in a hosted,and Service Applications enable the development of solutions multi-tenant or cloud-based model. The future here looksthat adhere to SOA principles and allow for business value to be incredibly interesting with great opportunities to createbuilt in a reusable and highly accessible, scalable manner. valuable solutions. 23
  • 24. Misconceptions of SharePoint as an Application PlatformFinally, there are valid arguments from ISVs and enterprises system provide to an ISV writing a traditional application?that the deployment, management, and upgrade stories Don’t continue yet; write down some ideas. Before reading on,for applications built on SharePoint 2007 are a bit lacking. here is one definition from “the collection ofSpecifically, the inability to version features or solution software that directs a computer’s operations, controlling andpackages and upgrade a solution package is a frequent scheduling the execution of other programs, and managingconcern in settings that require deployment in development, storage, input/output, and communication resources.”test/staging, and production environments. In SharePoint 2010, Review the preceding definition and some of your answers.there are now updates that provide a smoother transition Well, that certainly sounds like what SharePoint is providing,for upgrading features and assemblies that are part of doesn’t it? Isn’t SharePoint really a collection of services,custom applications. Full-trust, farm solutions provide typical features and operations that enable the creation and executiondeployment to web front ends providing similar deployment of other applications, while managing storage, input/output,options to SharePoint 2007 with some notable updates. New and communication resources (see also Is SharePoint a Businesssupport for ID’s, binding redirects, and a FeatureUpgrading Operating System?19)? Traditional software applications requireevent give ISV’s the opportunity to provide a richer and more an operating system to provide services to interact with a UI,robust deployment path for upgrading components. These storage, and other layers or systems to enable innovations tochanges address most, if not all, of the common deployment occur rapidly. This role is exactly what SharePoint provides toscenarios in a permissive environment. application developers who take the time to understand theFor less permissive, even locked-down environments, services (and they are considerable) that SharePoint offers.Sandboxed Solutions provide a very rich set of deployment, Application development today requires a pragmatic mixmanagement and maintenance features. Developers can of innovation and leverage. In the same way that moderndevelop specifically for constrained environments and build operating systems and 3GL languages strive to remove thesolutions that provide value while adhering to rules by default need to interact with memory management, scheduling, and– and can even call full-trust proxies in the event that specific low-level hardware access, SharePoint provides the abilitytrusted operations are known and approved of in advance. If to quickly add value by connecting to basic SharePointSandboxed Solutions adhere to the strictest scenarios, they infrastructure (web parts, site definitions, custom lists),can even be deployed by users who have been granted ‘Full building upon the infrastructure of SharePoint (deployment,Control’ permissions to a site collection. Administrators can provisioning, scheduling, communication, UI, etc.), or bymanage Sandboxed Solutions, even with custom validation creating innovative solutions by extending the capabilities ofthat provides detailed information about why a solution was SharePoint in unique and valuable ways. The three strategiesnot validated. Finally, site collection administrators can activate described (Connect, Extend, Build On) all exploit the servicesand install solutions in a secured, monitored environment and and extensibility provided by SharePoint at different entryfarm administrators can provide a wide variety of hard limits on points.the execution of Sandboxed Solutions, even blocking specificsolutions completely, to ensure environment stability. It should For concrete examples, just look at the host of third-partybe obvious that these features were designed to support an ISV web parts that provide different data visualization capabilities,ecosystem. 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 strategyMisconception 3 - SharePoint Is with the updated Excel Services, BCS, and Search Services among others. Doesn’t each one of these build on theOnly a Document Repository services, features, operations, storage, I/O, and communicationOne of the most challenging aspects of SharePoint consulting resources that SharePoint provides? Absolutely. In fact, theyand development engagements is to educate others that are possible specifically because of the services and capabilitiesSharePoint is much more than a simple portal and document provided by Microsoft SharePoint Foundation 2010. Inrepository. Individuals tend to recognize the inherent value of addition, Microsoft has created some great new “applications”lists and document libraries, but in general only advanced users to whet our appetite and spur additional innovation. Thesee immediate value from the web parts, workflow and other Managed Metadata Service20, Access Services21, Secure Storefeatures. SharePoint is much more. Eight categories and forty Service22, and Web Analytics Service are excellent examplesfeatures were already mentioned, but what do these high- of combining all three strategies (Connect, Extend, and Buildlevel categories and features mean to potential application On) to provide valuable applications on top of SharePoint’sdevelopers? “operating system” and services.This is probably the most challenging misconception of all, andthe answer provided depends on the audience. Let’s pose thefollowing question before proceeding. What does an operating 24
  • 25. Misconceptions of SharePoint as an Application PlatformMisconception 4 - SharePointCannot Be Used to Run Line ofBusiness ApplicationsFor many years the reputation of SharePoint has been thatit’s great for collaboration, but the platform is not capable ofsupporting true line-of-business applications. With MicrosoftOffice SharePoint Server 2007 and even more so withSharePoint Server 2010, this is not the case at all. Not onlyis the platform capable from an infrastructure standpoint interms of performance and scalability, but the features andfunctionality of SharePoint itself are ideal for building suchhigh-value business applications. As can be seen in the bodyof this paper, there is a solid foundational architecture andnumerous inherent features (that are either out of the box oravailable via Technology Solution ISVs, tooling, and communitysupport) to enable a combination of buying and/or buildingviable SharePoint line-of-business applications.Examples of Line of Business SharePoint ApplicationsThere are already ISV’s building line-of-business applications onSharePoint. For example, NextDocs Corporation and TranSenda are twoVertical ISV’s that build such applications for the life sciences market.For Technology ISV’s, you can look at companies such asKnowledgeLake that provide transactional content mangagementexpertise for line-of-business applications that require image captureprocessing. 25
  • 26. Community Support and ToolingSharePoint 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 SharePointDesigner (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 contentand videos, SDK documentation, downloads, training resources, and links to community sites.Community can also be easily added using Visual Studio. Visual Studio also includes support for creating SharePoint “Sandboxed Solutions”Rich community support includes more than 180 Microsoft which are projects that utilize a limited set of the SharePointMVPs worldwide that have proficiency in SharePoint Services API for deployments in low-trust environments. Visual Studioand SharePoint Server. MVPs are active members of the can then build the solution and create a SharePoint SolutionSharePoint community who make significant contributions Package (WSP) that can be deployed to a separate SharePointby publishing original content and tools, monitoring and instance.answering questions in online forums, presenting at majorMicrosoft conferences, and/or leading or actively participatingin SharePoint user groups or code camps. The SharePointDeveloper Center is a great place to monitor community Debuggingcontent. Several tools and techniques are available for debuggingThere are a large number of forums available for discussions SharePoint solutions. Starting from the lowest level,on various SharePoint topics such as general design or applications built upon the Microsoft Server Operatingdevelopment or specific areas like Workflow or Excel Services. Systems and ASP.NET enables OS event logs to be used forMany ISVs have forums as well. Some popular community logging of errors, warnings, and information. At the next level,forums include: the Unified Logging Service (ULS) logs include SharePoint specific error and warning information. The level of detail• MSDN - SharePoint Products and Technologies Forums24 (e.g., warning or information) included in the ULS logs can be• TechNet - SharePoint 2010 Forums25 controlled via settings in SharePoint Central Administration. ASP.NET tracing can be captured to the Visual Studio output• Stack Overflow - SharePoint26 window or can be viewed using the DebugView application.• Server Fault - SharePoint27 A higher level is the SharePoint Developer Dashboard, which includes execution times for page load and database queries.Microsoft’s open source project hosting site, CodePlex28, Problematic database queries can be further investigated byhas become the de facto source for community-supported clicking the hyperlink for the query to see the call stack whichSharePoint projects. SharePoint projects include those that led up to the query. Developers can also add monitoring forsupport developer activities as well as those that add to and custom code wrapping it with a SPMonitoredScope section.customize SharePoint usability and features. A quick search ofCodePlex yields over 1000 projects containing the keyword Visual Studio is a rich environment for debugging. Visual“SharePoint”! 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 timerVisual Studio jobs or resumed workflow processes. Further, Visual Studio isVisual Studio is Microsoft’s flagship development environment. a great script debugging environment, attaching to InternetIt provides support for developing applications and Explorer for stepping into client-side code.components across the spectrum of Microsoft technologies.The environment supports deep customization into theunderlying ASP.NET infrastructure such as HttpHandlers,HttpModules, or membership providers for customauthentication – as well as SharePoint specific development.Using a wizard-based interface, developers can create webparts, list definitions, list instances, content types, workflows,event receivers, application pages, and Business DataConnectivity Models. Additionally, resources such as JavaScriptor solutions images that must be deployed to the file system 26
  • 27. Community Support and ToolingSharePoint Designer Third Party ToolsSharePoint Designer is a very versatile tool which is used by Third-party developers have created myriad componentsdevelopers and power users alike. SharePoint Designer includes that developers and power users can use to add value to(to name a few) support for customizing and designing web SharePoint. Technology Solution ISVs such as CorasWorks,pages and master pages, creating and designing workflows, Bamboo Solutions, Nintex, and Quest are examples of toolconnecting Business Connectivity Services to external data, and providers that have extended the capabilities of SharePoint forcustomizing item-input forms for SharePoint lists. SharePoint power users, developers and administrators. Their offeringsDesigner can also be used to create content types, lists, and include data mash-up and presentation features, roll-up website columns. SharePoint Designer can import workflows which parts, and even external data connectivity tools. These tools arehave been designed using Microsoft Visio for implementation typically well supported by their respective companies and byin SharePoint. Administrative tasks such as application of the user community and are available as trial downloads.permissions or site settings can also be accomplished usingSharePoint Designer.Though SharePoint Designer is often a power user tool, itincludes the ability to export components such as workflows(reusable workflows only), lists, and sites into SharePointSolution Packages (WSPs). WSPs are the deployable unit forSharePoint components. Once exported, a WSP can be openedand more deeply customized using Visual Studio 2010.SharePoint Designer can connect directly to a productionSharePoint site. This capability may lead SharePointadministrators to fret, but SharePoint gives administrators theability to specify SharePoint designer permissions for a webapplication 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 siteWhen editing a web page, SharePoint Designer by defaultrestricts users to editing web parts on a page. This featureprevents developers from detaching the page from the sitedefinition, which can increase maintenance costs. An AdvancedEdit Mode is available for full editing of the page.Often users will create solutions that grow over time to requirea professional developer’s assistance. Solutions can be exportedfrom SharePoint Designer 2010 and imported into Visual Studio2010 to enable the developer to enhance the user’s solutionwithout recreating it from scratch. 27
  • 28. Next StepsThe decision to use SharePoint as a web application development platform can be approached in different ways. Below are somestrategies to consider.Feature Mapping Pilot ProjectMap a product roadmap to SharePoint features. After Most companies when evaluating a new technical roadmap willthis mapping, determine what areas of SharePoint can approach building their product incrementally by starting withaccelerate your product development. This is a low-cost-of- a Beta of the product first. They typically build a Beta of theirentry approach to determine the benefit of leveraging the SharePoint based product in a 1-3 month cycle. Getting a quickSharePoint platform. It may be beneficial to consult with cycle of the product is a key to understand the true value of asomeone that has a deep understanding of the breadth Connect, Extend, or Build On strategy. It can be surprising whatof capabilities that SharePoint can enable. Hopefully, this features can be built in 1-2 week iterations. By 3-6 iterations,paper has given insight to the key capabilities and benefits typically enough features are in the product to release to a Betaof SharePoint that indicate if a feature-mapping exercise Community. After this 1-3 month time frame, developmentcould have the potential to identify areas of overlap between cycles are understood and an organization is prepared to haveSharePoint and intended product features. Also, during a tighter estimate on what it will take to get a product to athis analysis it is important to understand the components version 1.0.provided by the different product SKUs of SharePoint. Consult with OthersMarket Analysis Discuss this with other ISVs, enterprises, and/or consultingGet an understanding of the use of SharePoint among current companies that have done this before. There is nothing likeand prospective customers. Based on this understanding, getting feedback from people that have been through theyou can make a more informed decision about the potential process. There are plenty of Horizontal and Vertical ISVs (andbenefits of having a product built on or connected to enterprises) that have made a choice to Connect, Extend, orSharePoint. In the situation of Horizontal ISVs, it can be a Build On the SharePoint platform. Finding a company that isshow stopper or a delay in the sales cycle if your product does building similar products and asking about their experience willnot have a SharePoint connection strategy. For Vertical ISVs, be very enlightening. Of course, the competition might not bebuilding on SharePoint may result in a positive outcome based willing to discuss their experience, but it is easy to find otheron the comfort level a customer’s IT group has with SharePoint. ISVs that are building software that has equivalent features or aHaving a product that leverages SharePoint (a familiar platform similar level of complexity. It is surprising how many companiesservice that IT groups use today) will be seen as a simpler are willing to share their experiences.solution and one that is more maintainable. For example,most Microsoft based IT shops know how SharePoint securityworks, so there will be a comfort level of leveraging an existingauthentication and authorization mechanism that is integral toSharePoint.Bake OffAn interesting exercise is to build two similar products; oneleveraging SharePoint and one that is built from the groundup. This is not a common exercise, but can be a very eye-opening experience. With the SharePoint development, thereis more of a focus around the business problem and less of afocus on the framework. Because of this focus, many commonbusiness problems can be solved with a large reduction ofcustom code and a greatly reduced development cycle. 28
  • 29. SharePoint ISV Partner Ecosystem ® Technology Solutions Horizontal Business Solutions Vertical Business Solutions Communities Content Insights Sites Business Solutions HR Applications Communications Life Sciences Collaboration Archiving/Backups Metadata Management BCS-LOB Integration Accessibility Bamboo Software ADP CA Accelrys Aditi Allen Systems Concept Searching ERP-Link HiSoftware BPA Solutions Kronos Marketron Adlib Software Colligo AvePoint Expert System Intellimaker CDC Corporation Nakisa MetraTech Corp CSC Content Circles BlueThread ITSystems AG Lightning Tools Administration CorasWorks Topaz Bridge MSA DITA-Exchange CA KwizCom Simplement AvePoint Kronos Quark Good Products Social Computing CommVault MetaVis Sitrion (SAP) Axceler SharePartXXL NextDocs Awareness EMC Networked Planet StoneBond Data Assist TXT e-Solutions OSIsoft ConnectBeam Hitachi Data Systems ScanJour Topaz Bridge Echo Technologies Varicent Knowledge Management PointCross INgage Networks Iron Mountain SchemaLogic Varicent Idera Verint Distribution & Services SchemaLogic KWizCom Metalogix SharePartXXL iDevFactory TranSenda Associated Press Leverage Software Mimosa Systems SmartLogic Business Intelligence Quest Software Bentley Systems Accellos Lightning Tools NetApp Synaptica Advantive.NL Bloomberg Escalate NewsGator Neverfail Clarity Geo-Replication Contract Management Easy Software (AG) Gerber Tech Nintex Quest Software OCR deFacto DoubleTake it Consult (IT) Manufacturing & LexisNexis RealCom Seagate ABBYY MaxQ Technologies Echo Technologies Telligent Symantec EMC Panorama Infonic Business Integrity Kronos Manhattan Associates Resources C-Lutions LexisNexis ProfitBase IRIS PushBI Neverfail MicroStrategy Corridor Consulting Radiant Aspen Tech Wiki Tools Compliance Kofax Quilogy RepliWeb Thomson Reuters Dolphin Software WebTrends Autodesk Atlassian Bentley Systems Open Text RadWare Syntergy Open Text Bentley Systems Bamboo Solutions CA Solgenia Consumer Goods Cincom BlueBridge ClusterSeven Offline Replication Tagetik Governance Blue Granite Dassault KWizCom GigaTrust Colligo Transpara AvePoint HiSoftware Digi-Link Wincor Nixdorf CA Managed SharePoint Cactus Commerce Honeywell HP Dosensio ClusterSeven CRM Services Invensys ICONICS Quofore Intergraph Indorse Infonic Data Enhancement Mimosa Systems TXT OSIsoft Composites Liquid Machines Acxiom Navantis AccTech Systems Azaleos Vendor Managed Technologies NextDocs Physical Records MetaCarta NextPage BPA Solutions Bluespring Software PTC NextPage Management Omada CDC Corporation Rockwell Business Process Hospitality Nintex DataStore Information Security Quest Software LookOut Software Schlumberger Management Aristocrat Technologies Prodiance FileTrail bHold Securent Portrait Software Siemens PLM AgilePoint Travelport Titus Labs Iron Mountain GigaTrust speakTECH Relavis Wipro Datapolis OmniRIM TotalSoft Project Management Global360 Liquid Machines Workshare InRule Content Migration Productiv NextPage Bamboo Software ITSystems AG AvePoint Omada Identity/User Directory K2 Casahl Records Management Sophos Novell BrightWork Education Power & Utilities Kaldeera Metalogix Applied IS Ping DoD Certification LMR Solutions Metastorm MetaPlus CA Text Analytics Agilix Areva Group Nintex MetaVis EMC Infonic Mobile App Support Applied IS CSI Enspiria Solutions SharePoint Solutions Proventeq HP Formotus CA Datatel Flexnova SharePointBoost Quest Software Open Text H3-Inc (Mobile Entree) HP SharePoint Cloud Offering E-Learning Force IHS Inc. ShareVis SeeUnity Productiv PushBI Houghton Mifflin Harcourt McLaren Software Skelta Tzunami UniqueWorld RealCommerce nGenera iStrategy Navantis Valiance Partners Search Transpara SpringCM IT Worx OSISoft Ultimus Storage Services SunGard Higher Education Vamosa Linguistic and TrueContext E-Commerce Developer Components Vital Path CommVault WICKSoft EMC Sound Semantics Atalasoft Concept Searching Aivea Content Transformation HDS Reporting ComponentOne Expert System Cactus Commerce SharePoint FIS Hosting Professional Services ESRI Adlib Software Iron Mountain IntLock Federal Government NetApp Sinequa IDV Solutions AnyDoc Software WebTrends Open Text ATOS WORLDLINE Accruent Infragistics Coextant AvePoint Seagate-i365 Natural Language Search FPWeb Aderant Infusion DITA-Exchange Security/Permissions Mgmt Bentley Systems E-Discovery 29 Q-Go GoDaddy Handshake Software InterKnowlogy Foxit Software bHold CA Transactional Content LINK Development S.A.E. NextPage NetUnity Titus Labs CA CorasWorks Management Query Enhancements Applied Discovery Netrics Hosting AG Sonata Software Tec-IT Cisco Dialogic Comm BancTec BA-Insight Digital Reef Rackspace WorkProducts Telerik Digital Asset Management Courion E-Sponder BlueThread Expert System WorkProducts Telecom Italia S.P.A. Workshare Adam GigaTrust NewsGator Clearview ScanJour Telecom New Zealand xmLaw User Components Equilibrium Lightning Tools Dark Blue Duck SurfRay Telus Communications Bamboo Solutions Open Text (Artesia) McAfee Telestream eCopy Omada Tieto Finland Oy CorasWorks Repository Connectors/ KwizCom Fujitsu Quest Software E-Learning/LMS Financial Services MindJet Document Assembly Hyland Software Protocol Handlers/iFilters Rohati Retail ImageSource BA-Insight Senova Solutions ActiveDocs Symantec Competentum ARGO Data SharePartXXL Business Integrity IRIS Citeknet Trend Micro IntraLearn Video Interfacing Acorn Systems KnowledgeLake Comperio CSC Techtra DITA-Exchange Learning Evolution Cactus Commerce Kodak Coveo Fiserv WorkLight ld Site Management SoftwareFX Red Prairie Kofax Handshake Software FundTech Intelledox Alcero Winnov RPM Car Laserfiche iFilterShop Jack Henry Microsystems Echo Technology TXT eSolutions Nuance SeeUnity Memento Thirtysix Software SharePoint Solutions Varicent SpringCM Vital Path MiSys Xinnovation Wincor Nixdorf Xerox Vorsite Portrait Software WAN Optimization Prodiance Corporation xmLaw Document Multi-Authoring Aptimize Profitbase Black Blade Associates Translation Support BlueCoat IceFire Visual Search R Square HyLighter Documill Brocade SunGard State & Local Government OneDoc Idiom Certeon Temenos Cisco Vertafore Bentley Systems ECM Interop Web Content Management Citrix CA EMC Coextant F5 Imex Systems Hyland IT Hit HP IBM Metalogix RadWare HealthCare Partner Ecosystem Open Text pTools Oracle Telerik SAP Allscripts Supply Chain & CA Process Visibility Care Fusion Forms CitiusTech Adapx Adexa Greenway Kayentis AspenTech SharePoint ISV Hyland Software Qdabra Epicor McKesson ShareVis ICONICS Philips Tec-IT Infosys SolverNext Steps Texcel Invensys White Cloud Logility OSIsoft RedPrairie SAP-Duet This is a draft version. Please send feedback to This is a representative sample of partners and is not designed to be a comprehensive list. Rev. date March 12, 2010. The ISV Ecosystem Map is representative only, and is not a comprehensive list. The © Copyright 2010. Microsoft Corporation. All rights reserved. growth in ISV solutions for SharePoint is illustrated here, and growth in Horizontal and Vertical solutions is significant. This growth indicates the strength, openness, and flexibility of SharePoint as an Application Development Platform. Comments about the ISV Ecosystem Map can be submitted to (Comments will be accepted, but will not be responded to.)
  • 30. Next StepsKey Resources ReferencesMicrosoft - SharePoint 2010: Microsoft - SharePoint 2010 Capabilities: Pages/default.aspxMicrosoft - Office SharePoint Server 2007: Microsoft SharePoint Team Blog - SharePoint History: sharepoint-history.aspxMicrosoft SharePoint Team Blog: Microsoft SharePoint Team Blog - SharePoint 2010: - SharePoint Developer Introduction for .NET sharepoint-2010.aspxDevelopers: TechNet - SharePoint 2010 Forum:html/Default.html category/sharepoint2010MSDN - What’s New in SharePoint Server 2010: TechNet - Managed Metadata Service Application Overviewee557323(office.14).aspx (SharePoint Server 2010): - What’s New in SharePoint Foundation 2010: ee424403(office.14).aspx TechNet - Introduction to Access Services (SharePoint Server 2010): - Introduction to SharePoint Products and Technologies ee748634(office.14).aspxfor the Professional .NET Developer: TechNet – Configure the Secure Store Service (SharePoint Server 2010):MSDN - Microsoft SharePoint Products and Technologies: Microsoft Learning - Developing Service-Oriented AJAX Applications on the Microsoft Platform: aspx?ID=12793 MSDN - SharePoint Developer Center: MSDN - SharePoint Products and Technologies Forums: category/sharepoint MSDN - Application Lifecycle Management Resource Center: MSDN - Team-Based Development in Microsoft Office SharePoint Server 2007: MSDN - Using Team Foundation Server to Develop Custom SharePoint Products and Technologies Applications: MSDN - Solution and Authored Artifact Development Models for SharePoint Products and Technologies: 30
  • 31. Next StepsReferences (continued) Glossary of TermsMSDN - Walkthrough: Creating a Basic SharePoint Web Part: If you are new to ASP.NET or SharePoint concepts, we have provided the below glossary of terms for your reference.Microsoft SharePoint Team Blog - Scaling to Extremely Large ACL – Access Control List – a set of permissions tied to an object.Lists and Performant Access Methods: For search indexing this involves storing the ACL with an item that is indexed so the query engine can easily determine if the current userscaling-large-lists.aspx has read access to the search result. See also wiki/Access_control_list.MSDN - Cohesion and Coupling: AJAX – Asynchronous JavaScript and XML – refers to web requests from browser clients (JavaScript) that tend to return XML from theCodePlex: server without having to refresh the entire page. See also http:// ALM - Application Lifecycle Management – refers to managing theCodePlex - WSPBuilder: entire software lifecycle of an application through the use of tools. See also - STSDEV: ASP.NET – Active Server Pages .NET – Microsoft web application framework built upon the .NET framework. See also http:// - SharePoint Solution Installer: BCS - Business Connectivity Services – SharePoint 2010’s new service for connecting SharePoint to business data that lives outsideStackOverflow - SharePoint: 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.ServerFault - SharePoint: BDC - Business Data Catalog – the original name for the BCS in SharePoint 2007 and now replaced by the BCS in SharePoint 2010.SharePoint Reviews – Reviews of Third Party SharePoint CAS – Code Access Security – allows a set of code to demand certainproducts - security rights at runtime. See also access_security.David Chappell - The SharePoint 2010 Developer Platform: Claims Based Authentication – an approach to identity management where a secure token service (STS) is used to make2010-developer-platform.html a “claim” on an identity. The STS can be used in a heterogeneous environment allowing disparate systems to trust the identity as long asKollabria - Is SharePoint a Business Operating System?: they can share the same STS. ClickOnce – Microsoft technology for deploying client applications over the Internet. See also 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. 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 en-us/sharepointserver/HA101054761033.aspx. 31
  • 32. Next StepsExternal Content Types – a Content Type that is external to SharePoint Ribbon – SharePoint 2010 provides a ribbon interface justSharePoint and is available through the BCS. like the ribbon introduced in most Office 2007 products. This ribbon is context sensitive to provide most common actions behind an iconFederated Search / Query Federation – the act of delegating a at the top portion of the page. See also to another service, such as the owner of the content. The other Ribbon_(computing).service would be in charge of indexing the content as well. See also Silverlight – A web application framework for rich web user interface that can be used across browsers and operating systems. See alsoFolksonomy – simple tagging or classification of content emerges from users of content vs. being mandated to apredetermined structured taxonomy. Folksonomies are considered to Site Actions Menu – A user interface component common onbe a bottoms-up approach to tagging content. Taxonomies are usually SharePoint pages that allow users with the appropriate permissions toconsidered a top-down approach to tagging content. See also http:// perform common site actions such as creating a new list for a site. also Handler – code within ASP.NET that can be configured to SharePoint Workspace – Formally Groove in Office 2007, this ishandle particular type of request (e.g., a GET for a URL). See also 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 toHTTP Module – code within ASP.NET that can be configured to as SharePoint. See also of the pipeline for all requests for a particular site or sub-site. See ee649102%28office.14%29.aspxalso SPI - SharePoint Project Item – SharePoint Project Item TemplatesInformation Management Policies – a set of rules that can be are used in Visual Studio 2010 to add project items to an existingapplied to content in SharePoint. See also SharePoint project, such as adding an event receiver to a listen-us/library/ms499244.aspx. definition project. See also Forms – Form-design tool used for electronic form data ee231554(VS.100).aspx.collection. SharePoint has a server feature for InfoPath Forms to SPS - SharePoint Portal Services – The name used for the serverallow viewing InfoPath Form within the browser on a SharePoint product for first and second generation (version) of See also SSO - Single Sign-On – Attributed to heterogeneous systems where a user can authenticate once and have access to multiple systemsISAPI - Internet Server Application Programming Interface – The API without having to log in again.used for building the ASP.NET framework. See also STS - SharePoint Team Services – The name used for the free add- on to Windows Server for the first generation (version) of SharePoint.Master Pages – This ASP.NET capability is used for common/consistent layout and web pages across sites in SharePoint. See also VSeWSS - Visual Studio Extensions for Windows SharePoint Services – A set of extensions to Visual Studio to help developers of SharePoint 2007 based applications.Monitored Scope – A technique used to instrument code to showup in the SharePoint Developer Dashboard. See also http://www. WCF – Windows Communication Foundation – As part of the framework, this foundation provides a unified model for buildingmonitoring-using-SPMonitoredScope.aspx and http://blogs.technet. service-oriented applications. See also us/netframework/aa663324.aspxin-sharepoint-2010.aspx Web Part – Modular user interface components that are nested inMOSS - Microsoft Office SharePoint Server - the name of the Web Part Pages. Web Parts in SharePoint can be configured by a user,licensed version of SharePoint in 2007. including determining in whichWeb Part Zone a Web Part is placed. This is a key part of packaging elements of a SharePoint solution. See alsoMSF - Microsoft SharePoint Foundation - the new name of the of SharePoint in 2010. Web Part Pages – The main container for the SharePoint userMSS – Microsoft SharePoint Server – the new name of the licensed interface. Web Part Pages contain Web Part Zones, which can containversion of SharePoint in 2010. zero to many Web Parts. See also – Open Data Protocol - Web protocol for querying and library/dd583147(office.11).aspxupdating data that provides a way to unlock your data and free it fromsilos that exist in applications today. See also http://www.odata.orgSAML – Security Assertion Markup Language – XML-basedstandard for exchanging authentication and authorization databetween security domains. See also 32
  • 33. Next StepsGlossary of Terms (continued)Web Part Zones – Web Part Zones allow a user or developer to placeWeb Parts in relative positions within a Web Part Page. For example,you could have top, left, and right Web Part Zones to organize whereWeb Parts would be rendered on a Web Part Page.WF - Windows Workflow Foundation – Microsoft workflowframework that can be hosted within SharePoint to provide workflowcapabilities. This engine is used for custom workflows and is leveragedby most products that provide workflow in SharePoint. See also - Solution Package – A CAB file with the extension of “.wsp”used to deploy code to a SharePoint Server. See also - Windows SharePoint Services - the name of the core ofSharePoint from v1 through v3. In 2010 this has been replaced withthe moniker Microsoft SharePoint Foundation (MSF). 33
  • 34. AppendixFootnotes1 SharePoint History Blog Post - David Chappell’s Blog (The SharePoint 2010 Developer 14 Platform) - sharepoint-history.aspx developer-platform.html SharePoint Capabilities -2 Solution and Authored Artifact Development Models for 15 Pages/default.aspx SharePoint Products and Technologies - Microsoft SharePoint Team Blog (SharePoint 2010) -3 aspx sharepoint-2010.aspx Working with Large Lists in Office SharePoint 2007 16 Whitepaper - SharePoint Connector for Confluence (Atlassian Product Page) -4 scaling-large-lists.aspx SharePoint Connector for Confluence (How We Did It Article5 17 MSDN Pattern in Practice (Cohesion And Coupling) - on SharePoint Product Team Blog) - sharepoint-connector-for-confluence-how-we-did-it.aspx Developing Service-Oriented AJAX Applications on the 18 Microsoft Platform - Allowing Connections to Multiple SSRS Servers with Report6 Viewer and Explorer Web Parts (How We Did It Article on SharePoint Product Team Blog) - Article on “Is SharePoint a Business Operating System?” - 19 we-did-it-allowing-connections-to-multiple-ssrs-servers-with- Operating-System%3F.html report-viewer-and-explorer-web-parts.aspx Managed Metadata Service Application Overview - 20 Automating Service Requests using InfoPath Forms Services7 (How We Did It Article on SharePoint Product Team Blog) - ee424403(office.14).aspx we-did-it-automating-service-requests-using-infopath-forms- 21 Introduction to Access Services - services.aspx ee748634(office.14).aspx CorasWorks App Store -8 Configure the Secure Store Service (SharePoint Server 2010) - 22 Data Integration Toolset from CorasWorks -9 SharePoint Developer Center - 23 MashPoint from Bamboo Solutions - MSDN - SharePoint Products and Technologies Forums - 24 Mike Flasko’s “Breaking Down ‘Data Silos’ - The Open Data sharepoint Protocol (OData)” - TechNet - SharePoint 2010 Forums - 25 breaking-down-data-silos-the-open-data-protocol-odata.aspx sharepoint201012 SharePoint Search Connector Framework Overview - Stack Overflow - SharePoint - 26 (office.14).aspx Introduction to SharePoint Products and Technologies for Server Fault - SharePoint - 27 the Professional .NET Developer - CodePlex (Open Source Project Community) - 28 34