Professional Documents
Culture Documents
Summary
During the 2009 SharePoint Conference, Christian Finn, Director of SharePoint Products for Microsoft, commented that given current trends, building products on the SharePoint Platform is the new black. To make his case, he cited the momentum of the SharePoint platform along with significant announcements from companies building integration with SharePoint into their products and services. This white paper, designed for Independent Software Vendors, software architects, CIOs, and other enterprise technology leaders picks up this discussion by addressing the perceived limitations that may cause development companies to discount SharePoint as a development platform when drawing up a technology roadmap and illustrating the value of leveraging SharePoint as a Web Application Development Platform for those organizations.
Contents
Why This White Paper...............................................................3 SharePoint Background............................................................4 Audience for this Paper............................................................6 Making the Case for SharePoint. .............................................7 Does SharePoint Fit..........................................................................7 Making the Case................................................................................8 Leveraging the Platform. ............................................................8 Understand Your Value Proposition.......................................8 SharePoint Platform Strategies...............................................9 Connect. ................................................................................................9 Extend. .................................................................................................11 Build On..............................................................................................12 Platform Capabilities...............................................................13 Infrastructure....................................................................................13 ASP.NET HTTP Pipeline.................................................................. 13 Application Security........................................................................ 14 Service Applications........................................................................ 14 Packaging and Deployment........................................................ 14 Content Management...................................................................15 External Data. ..................................................................................... 15 Business Intelligence. ...................................................................... 16 Search................................................................................................... 16 Workflow............................................................................................. 17 Data Model User Interface........................................................... 17 And More............................................................................................ 17 User Interface. ...................................................................................18 Platform Capabilities Summary.................................................19 Barriers to Adoption as a Development Platform. ............20 Perceived Barrier 1 Unique Developer Skill Set..........................................................20 Perceived Barrier 2 Closed or Restrictive Platform Services...................................20 Perceived Barrier 3 Lack of Integration with External or Relational Data.........21 Perceived Barrier 4 Application Lifecycle Management (ALM) and Code Isolation.. .................................................................................21 Is Perception Reality?.....................................................................22 Misconceptions of SharePoint as an Application Platform...............................................................23 Misconception 1 A SharePoint Dependency Means Closed Architecture........................................................................23 Misconception 2 SharePoint Applications Are Too Restrictive.........................23 Misconception 3 SharePoint Is Only a Document Repository..........................24 Misconception 4 SharePoint Cannot Be Used to Run Line of Business Applications...............................................................25 Community Support and Tooling.........................................26 Community. .......................................................................................26 Visual Studio.....................................................................................26 Debugging. ........................................................................................26 SharePoint Designer. ......................................................................27 Third Party Tools..............................................................................27 Next Steps. .................................................................................28 Feature Mapping.............................................................................28 Market Analysis. ...............................................................................28 Bake Off..............................................................................................28 Pilot Project.......................................................................................28 Consult with Others. .......................................................................28 ISV Ecosystem Map. ........................................................................29 Key Resources...................................................................................30 References. .........................................................................................30 Glossary of Terms............................................................................31 Footnotes...........................................................................................34
SharePoint Background
SharePoint is now in its fourth version. It has matured over the past decade since its first versions of SharePoint Team Services (STS) and SharePoint Portal Server (SPS) 2001. It is amazing to see the vision that the early SharePoint team had and how they have come through to deliver on that vision1. SharePoint, in the early days of its product lifecycle, provided an application for team and portal implementations. True customization was limited. Unlike subsequent versions of SharePoint, the two collections of services in its first version, SharePoint Team Services (STS) and SharePoint Portal Server (SPS), did not completely share a common framework. With the second version, Windows SharePoint Services (WSS) 2.0 and SPS 2003, a third-party developer community began to form. This community was primarily focused on the gap between SharePoint features and the typical needs for team sites and portals. These products often took form as components (such as a web part) that would empower end users to put together lightweight applications. Also, the concept of mashing up data from sources inside and outside of SharePoint started to take shape. Outside of the development of third-party products, the developer community shied away from SharePoint customization because the techniques were often fragile. For example, the ONET.XML had to be changed to make branding changes; yet this SharePoint system file has also had the potential to be changed in subsequent service pack updates, overwriting the customizations. Also, the SharePoint technology stack was executing in parallel to ASP.NET runtime instead of being built directly on top of it: SharePoint had a separate ISAPI filter and did not run through the ASP.NET ISAPI filter. As a result, SharePoint could not take advantage of the extensive features offered by ASP.NET.
SharePoint History To get a good glimpse of the product history read Jeff Tepers post on SharePoint History. Jeff is the Corporate VP of SharePoint and provides a good perspective on how an early vision of SharePoint has prevailed over the years. As stated in the blog post, the strategy from the beginning has been: Great Integrated Solution Out-of-Box Web Workspace Compelling Office Integration Easy & Flexible Deployment
With the release of WSS version 3 and Microsoft Office SharePoint Server (MOSS) 2007, a developer community for in-house developers and consultants started to form, while the third-party developer community continued to expand rapidly. The extensibility story became richer and the viability of SharePoint as a web application development platform emerged. The services available to build upon in SharePoint allowed for enhanced custom solution scenarios that could leverage Windows Workflow Foundation, web content management (via the incorporation of the Microsoft Content Management Server product), a rich event model and search capabilities, to name just a few areas.
SharePoint capabilities.
SharePoint Background
With SharePoint 2010, the names of the component products have changed. The successor to Windows SharePoint Services 3.0 is named Microsoft SharePoint Foundation 2010 and the next version of Microsoft Office SharePoint Server 2007 is named Microsoft SharePoint Server 2010. The term SharePoint 2010 is often used as an umbrella term to refer to SharePoint services generically, without being specific to SharePoint Foundation or SharePoint Server. The developer story has also greatly improved in SharePoint 2010. Whether building composite applications without code or getting into Visual Studio and building a packaged solution, there are many tools and features available. In addition, the platform story has only gotten better in 2010 and is becoming a key strategy for the SharePoint product. This paper will dive into a few key platform capabilities and reveal why they could be important to your product development technology roadmap. The SharePoint Team has done an excellent job of establishing SharePoint as an Application and has made major strides toward SharePoint being a Platform. From developer tools to open-source communities to development APIs, it is clear that the SharePoint Product Team does not intend SharePoint to be a sealed application. To the contrary, SharePoint has evolved into a web application development and integration framework for Microsoft Developers to connect, extend, and build on.
2001
Terminology Sites Throughout this white paper we will use the terms SharePoint 2003, SharePoint 2007, etc. when we need to differentiate between releases of SharePoint. If necessary, we will use the license names/abbreviations (e.g., WSS v3, MOSS 2007), will be used.
Composites
Communities
Insights Search
Content
That being said, Enterprises should also consider in their technology roadmaps and architects, CIOs, and other technology leaders can benefit from reading this white paper.
Sites - SharePoint Sites deliver a single infrastructure to provide portal and collaboration capabilities across intranet, extranet, and internet sites. SharePoint Sites bring users together to share information, data, and expertise across organizations. Communities - SharePoint Communities empower people to work together in ways that are most effective for them. SharePoint Communities make it possible for people to collaborate in groups, share knowledge and ideas, connect with colleagues, and find information and experts easily. Content - SharePoint Content enables all users to participate in a governed, compliant content management lifecycle. SharePoint Content makes it possible to expertly balance user experience with policy and process. Search - SharePoint Search gives users the ability to find the content, information, and people they need by combining an integrated, easy-to-manage platform with best-of-breed enterprise search technology.
Insights Search
Content
Insights - SharePoint Insights enables users to access and interact with information across unstructured and structured data sources. SharePoint Insights empower users to discover the right people and expertise to make better and more agile business decisions. Composites - SharePoint Composites empower users to rapidly respond to business needs by creating their own no-code solutions, on premises or in the cloud, through a rich set of building blocks, tools, and self-service capabilities. These product capabilities have considerable depth. This paper will not cover each one in detail, but will provide descriptions that could be helpful to those considering whether to build similar capabilities into their product(s) from the ground up. For more detail, please read this post from the SharePoint Product Team Blog3 . It provides 40 examples of investments in the six functional categories of SharePoint 2010 mentioned above along with Administration and Development areas of the platform. In addition to these high-level solution areas, SharePoint provides a number of built-in features required by many web solutions. Thus by adopting SharePoint, an ISV can reuse rather than reinvent them. These capabilities include: List and Library Management The ability to store information in lists which can be created by users or programmatically, and which have rich built-in capabilities such as check-in and check-out, versioning, approvals, folder hierarchies, data validation, user-configurable views, calculated fields and more. Input forms, item and list level views, grid-based editing, RSS rendering and more are also built into all lists. Libraries build on lists by including binary objects such as documents, images, and digital media. Provisioning The ability to allow users to easily provision new sites and lists as their business needs dictate. Security A comprehensive authentication and granular authorization system are built in and govern access to all aspects of SharePoint. User Interface Web Parts, wiki style editing, a Fluent ribbon-based menu system, AJAX- style dialog boxes and more are all provided. These features not only save development effort, they provide a strong level of consistency that aids in usability and adoption. Forms and Workflows Tools such as InfoPath and SharePoint Designer allow business analysts and power users to construct workflow-oriented business applications. ISVs can easily add to the capabilities available in such solutions, and can also provide pre-built forms and workflows oriented to specific horizontal or vertical business scenarios.
The reuse of these capabilities allows ISVs to focus on their core values rather than reinventing yet another security system or UI. They also allow business users to combine SharePoint and ISV features to build solutions that uniquely address their business needs.
Keep in mind that some horizontal ISVs are creating solutions that fit in vertical markets. They are typically not fully featured, but with customizations they can compete in certain verticals.
Windows Server
There are three primary strategies for using SharePoint as your product platform. These strategies were described by Owen Allen, Senior Product Manager for SharePoint ISV Partners at Microsoft, during the SharePoint Conference in October 2009.
Connect
Integrate an existing product with SharePoint to enable the two products to work together.
Extend
Create integrated solutions that extend SharePoint feature offerings - or that leverage or include SharePoint capabilities.
Build On
Create solutions on top of the SharePoint infrastructure that leverage the breadth of 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 increases a dependency on either SharePoint Foundation or SharePoint Server. Most product companies that accept a dependency on SharePoint will provide the option to run on SharePoint Foundation or Server, sometimes with a more comprehensive feature set enabled if a customers environment includes SharePoint Server. For example, many medium to large enterprises have SharePoint Server deployed. A product that builds on that that dependency can save development costs by leveraging Server features that otherwise need to be created (i.e., Form Services or Web Content Management). 2001 Lets explore these strategies of Connect, Extend, and Build On in more depth.
Connect
Existing products can be connected to SharePoint by providing integration points such as content embedding, cross-product search, and single sign-on. The goal is to give users a seamless experience and allow them to work in their product of choice without having to spend time switching contexts between various products. This connection/integration can be unidirectional or 2003 bidirectional. Here are more details on some of these integration points.
Content Embedding - Content embedding may involve SharePoint content being viewed or used within your product and vice-versa. This approach allows the products data to be used in new ways. Maybe the 2007 data could be seen via a custom web part, referenced through some SharePoint list data, be part of a SharePoint workflow, and/or simply be easier to collaborate on using a SharePoint team site. Think of this type of connection when the product is sharing data from SharePoint or sharing data to SharePoint.
Connect strategies are common when a product does not share the same platform or technologies as SharePoint (e.g., Java-based instead of .Net-based). SharePoint and the connected product can also execute on separate servers in the same network or in a completely different network (e.g., one could be in the cloud).
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. Single Sign-On - This approach simply ensures that users can easily move from a product to SharePoint and vice-versa without having to enter credentials more than once. In addition, any content embedding and search results should be relevant for the current user (e.g, security trimmed appropriately). This may involve delegation (e.g., Kerberos), custom services that do impersonation, or utilization of claims-based authentication.
Se
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 ISVs looking to sell into these organizations should consider a plays well with SharePoint strategy in order to satisfy your customers requirements. ISVs without this strategy may find themselves eliminated from sales opportunities theyre otherwise qualified to win. Bill Arconati, Product Marketing Manager at Atlassian
10
11
As an example, CorasWorks and its application publishers provide a broad line of off-the-shelf departmental business applications through a Build On SharePoint strategy. For reference see the CorasWorks App Store8.
12
Platform Capabilities
Silverlight JavaScript Windows App SharePoint provides a great foundation for application development at all levels of the software development stack. The capabilities extend outward to include search, workflow, scalable and extensible services architecture, and administrative features. Being built upon ASP.NET and Windows Server platforms allows SharePoint to expose infrastructure features and inherent points of extensibility to application developers. ISVs who choose to build upon SharePoint will find that they inherit a rich set of platform capabilities, letting them put more time and effort into developing unique product features vs. generic features. Applications that connect to SharePoint can reveal application data and features either in the SharePoint UI, Business Connectivity Services (BCS), or via one of the many options for extensibility provided by SharePoint. Client OM Client OM Client OM SharePoint Web Services Lets explore the platform capabilities using more developer-centric categories of Infrastructure, Content Management, and User Interface similar to n-tier architecture models. This is a departure from the SharePoint wheel shown earlier. This SharePoint Server-Side UI wheel works well from an end-user point of view, but the below diagram is more useful when looking to understand SharePoint as a developer platform. SharePoint SharePoint API SvcProxy AJAX AJAX
Infrastructure
SharePoint is now at version 4 and has become a wellRequest Membership tested and trusted platform Authorization Provisioning Pipeline Provider for securing content and allowing ISVs to move forward ASP.NET into adding application value. Authentication Content & Configuration Databases Its infrastructure starts with Windows Server and the IIS SQL Server .NET Framework and heavily Windows Server relies on IIS, ASP.NET and SQL Server. Out-of-the-box authentication includes Windows NTLM or Kerberos while SharePoint and ASP.NET extensibility allow for developers to provide custom forms and web single sign-on options. SharePoint resource authorization can be managed at site collection, site, page, item, and custom action levels; security permissions can also be applied in custom code. Role membership can be defined individually or by using SharePoint or Active Directory groups. Service Application Architecture
Connect
Extend
Build On
Create integrated solutions Create solutions on top that extend SharePoint of the SharePoint product with SharePoint to ASP.NET extensibility goes further by allowing developers to add in HttpHandlers and HttpModules for custom request feature offerings - or that infrastructure that leverage enable the two products to handling. Developers can use this handling to support features such as global changes to the SharePoint interface, custom leverage or include the breadth of work together. file-type processing, custom authentication, and more. For example, an HttpHandler could be created to prevent cross-site SharePoint capabilities. capabilities provided scripting 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 from SharePoint. The SharePoint API, including site and user context, are available from within the handler. Because SharePoint is built upon ASP.NET, application developers have available both the ASP.NET customization options as well as SharePoint context and configuration.
2001
Deployment
Scalability
Platform Capabilities
Application Security
Another example of extensibility provided by ASP.NET includes creating custom membership providers that enable login credentials to be retrieved from a custom store. Membership providers supplied by SharePoint allow connecting to membership stores created using SQL, LDAP, or Active Directory. The base MembershipProvider, like many ASP.NET and SharePoint classes, can be extended, allowing developers to create custom implementations. The membership provider is configured in the site web.config file allowing, among other things, a custom login page to be supplied. Claims-based authentication is a significant infrastructure feature new to SharePoint 2010. With claims, user authentication is provided by an identity system that may include corporate credential providers such as Active Directory, LDAP, or credentials stored in databases. Credentials authentication may also be provided by web sign-on providers such as LiveID and OpenID. Claims-based authentication will make it easier for additional identity systems to integrate with SharePoint, thus opening up another point of extensibility.
Service Applications
The service application architecture, new in SharePoint 2010, provides another point of extensibility and enterprise scalability. Services developed on the new platform can be scaled across one or more servers and can cross the farm boundary to provide services for multiple SharePoint installations. SharePoint services support additional scalability by providing services in the cloud, delivering new ways that ISVs can extend SharePoint. The services architecture includes a configuration store for application settings, a common SQL database provisioning infrastructure, support for storing custom data in databases that are managed by SharePoint, a location to host middle-tier web services, a provisioning mechanism for web services, and a service-scoped timer job infrastructure to support scheduled operations. This is probably the largest investment Microsoft has made toward using SharePoint as a platform in 2010.
OOTB Content Management Content Versioning Check-in/Check-out Content Approval Records Routing Information Management Policies CRUD UI Social Content Workflow Content Types Field Types Office Integration Offline Data Web Services Search
Extension Point Highlights Event Receivers Custom Field Types Rendered Columns Custom View Types External Data Custom Actions Custom Information Management Policies Custom Workflows Custom Workflow Actions Custom Content Types Custom User Defined Functions Custom Web Services Custom CRUD UI Custom Search Content Sources
Master Page Customized Ribbon Custom Action Web Part Server Control User Control
14
Site Pages
Platform Capabilities
Content Management
SharePoint 2010 provides plenty of out-of-the-box capabilities to meet many ECM requirements. This is an advantage for ISVs. Content- management features provided by SharePoint include content versioning, check-in/check-out, content approval and disposition, records routing, and information-management policies such as content expiration. In addition, there is opportunity to extend the SharePoint ECM capabilities at all levels. To cover all of them would take several books, so just a few will be highlighted.
Enterprise Perspective SharePoint can also be used as an underlying CMS to feed into other portal technologies. At McKesson, we use Vignette as our portal today and SharePoint as our collaboration platform. RSS and other technologies have allowed us to start taking advantage of the easy SharePoint CMS capabilities but the content is available in the company wide portal. Our SharePoint CMS strategy in the initial phase was to use out of the box capabilities. Now that users understand the product and the needs of their Team/Department/Business Units they are taking SharePoint to the next level with data integration, creative redesigns and heavy process automation projects. Aaron Rafus,Technology Evangelist, McKesson Corporation
External Data
Application developers can choose to use SharePoint as a data store or use a separate, external data store such as one provided by a relational database, abstracted by web services, or provided by custom code. Using the SharePoint data store, in the form of SharePoint lists, allows for the full utilization of SharePoint content-management features, including the ability of users to configure and extend the schema. However, SharePoint lists are not fully relational data stores. Application developers in need of a more relational or custom data store can instead choose to connect to an external data source by using external content types provided by Business Connectivity Services (BCS). A hybrid approach involves connecting SharePoint list data to external data by using external data columns. An external data column is a field in a SharePoint list which is a look-up to an external data source. The external data column can select one or more fields from an external record to be included in a SharePoint list item. BCS allows external data to participate in SharePoint contentmanagement features such as enterprise search, offline data access, and integration into Office client applications including Outlook, Word, and Access. External data can also participate in content-management features such as tagging, workflow, check-in/check-out, versioning, information management policies, and permissions by using proxy records in SharePoint. External data columns in SharePoint allow SharePoint list items to relate directly to external data (e.g., proxy record). Custom code in workflows, event receivers, and custom information rights management policies can then propagate activities that occur on the proxy records such as the application of tags or check-in/check-out to the external data records. Another key advantage for using BCS is that SharePoint automatically provides a customizable UI that supports read/ write as well as view/sort/filter capabilities. Standard ASP.NET forms are created for external data connected to SharePoint. Using SharePoint Designer or InfoPath Designer, developers can create a richer interface for external data by generating InfoPath forms. InfoPath forms also allow for a richer experience, including a deep set of form rules that can, among other things, connect to external data sources to fill user choice fields and perform field-level validation. There are also external-data innovations outside of BCS within Microsoft and the ISV community. For example, there are several ISV products that expose external data within SharePoint. The Data Integration Toolset9 from CorasWorks and MashPoint10 from Bamboo, for example, provide external data connections to easily surface data into their web part suites. Furthermore, standards such as OData (Open Data Protocol) are emerging. Similar to Microsoft ODBC efforts, OData is an open protocol for sharing data across various data consumers and data providers. OData is based on web standard such as HTTP and AtomPub (Atom Publishing Protocol) using JSON notation. To learn more about this emerging data protocol, see Mike Flaskos Breaking Down Data Silos The Open Data Protocol (OData)11 on the WCF Data Services Team Blog.
15
Platform Capabilities
Business Intelligence
Data analysis is becoming a more frequent demand of any application, and this demand is rapidly expanding beyond the need for basic operational reporting. SharePoint 2010 provides a rich suite of offerings that application developers can leverage to accomplish this goal. They include native Charts and Data Indicator web parts, Performance Point Services, Excel Services, Visio Services, and Reporting Services, and more. Each is designed for a unique business case. For example, Performance Point Services supports business scorecards, charts, and analytic dashboards. Using this feature of SharePoint 2010, an ISV could provide a dashboard that leverages Key Performance Indicators (KPIs) to give users a quick view of operational health. The real purpose of a dashboard is to direct users to highlighted areas that need attention.
Business Intelligence Note that business intelligence features are extremely powerful in SharePoint 2010 and are a big part of exposing external data inside SharePoint. Since business intelligence features are in such high demand for enterprises today, this is an area of SharePoint that should not be ignored.
Search
Search is a key capability for applications. Enterprise search supports searching data stored in SharePoint lists as well external data. In SharePoint 2010, the BCS indexes external content and can involve no-code solutions for simple models or custom-managed code for more complex scenarios (e.g., nested/hierarchical data). Developers can customize the search experience by creating search scopes that limit a users search, for example, to application records or by generating a set of search refiners, allowing the search to be filtered and explored by metadata at query time. Additionally, the search UI includes points of extensibility such as the ability to configure the search results page and extending out-of-the-box search web parts. This is a very simple way to surface your existing solutions data into SharePoint search through configuration rather than through programming. ISVs who choose the Connect strategy may want to use query federation to enable SharePoint and an external application to maintain their own search indexes. Or they may choose to use SharePoints enterprise search Connector Framework12 to maintain a single index across applications. In SharePoint 2010, federated search is a core component in the search API and is even used by the Core Search Results web part. In SharePoint 2010, the Connector Framework no longer requires writing unmanaged protocol handlers for crawling custom content. The Connector Framework, and even BCS search, provides security descriptors (ACLs) at index time if the information is available. This allows for trimming the search results to only those items available to the individual performing the search. The Connector Framework is common across SharePoint Server 2010 Search as well as FAST Search for SharePoint 2010, so ISVs who build upon it will find their solution works with both enterprise search options. On the other hand, ISVs who need more search capabilities can build upon FAST and have even more flexibility with its indexing and query pipelines as well as its entity-extraction capabilities. The ability of FAST to automatically create and categorize metadata introduces options for developers looking to create search-driven applications or to aggregate structured and/or unstructured content from disparate repositories while pivoting off common fields.
Strategy: Connect or Extend ISVs looking to Connect or Extend SharePoint may find ample opportunity within the SharePoint search infrastructure to provide custom indexing or federated search connectors to third-party data sources. One can even imagine a federated search web part that aggregates similar data sources such as news feeds and organizes the data in a meaningful way.
One of the most exciting new features in Performance Point Services is the Decomposition Tree visualization. Visualizing data has many challenges, and each visualization strategy has pros and cons. Grids show numbers but dont highlight relative values, charts highlight relative values but dont do a good job of showing actual values, and neither charts nor grids do a great job of visualizing hierarchical relationships in data. The decomposition tree highlights hierarchical relationships, shows raw numbers, and includes a graphing component that provides the best of each of these worlds. This visualization can be selected by users on demand and offers a great alternative for users to perform ad-hoc analysis. ISVs looking to add analytics to their applications can leverage Performance Point Services in both the Connect to and Build On scenarios as it provides a rich set of database connectors for querying application data, and can leverage existing reporting investments in its dashboard technology. Using this approach, Performance Point dashboards and scorecards can be built to consume data from an existing application database and leverage existing custom reports. By using these features, users can perform ad-hoc analysis of application data, and correlate that information with other business data. Furthermore, as with any good reporting solution, users are shielded from the underlying complexities of source system data models and query languages.
16
Platform Capabilities
Workflow
Developers can further use content-management features through out-of-the-box SharePoint workflows such as the Approval Workflow or by writing custom SharePoint workflows to control features such as content approval or records routing. SharePoint provides the workflow execution environment and Windows Workflow Foundation provides the building blocks. In addition to custom workflows, ISVs can provide their own extension points by creating reusable workflow activities for power users with SharePoint Designer or for developers with Visual Studio. In SharePoint 2007, workflows are associated with a list/library and workflow instances are tied to a list item. SharePoint 2010 provides for this association and also adds the ability for workflows to be independent of lists so they can be reused across lists and content types. This capability opens up a whole new world of possibilities for Workflow and SharePoint.
And More...
Application developers can also dive deep into the SharePoint data-management structure by adding event receivers. Event receivers allow custom code to be executed when a change occurs to a site collection, site, feature, workflow, list, or list item. Typical events that are handled include when a list or library item is added, updated, or deleted. SharePoint provides out-of-the-box informationmanagement policies that govern the data life cycle within it. Examples include expiration, bar code, and auditing policies. ISVs can create custom information-management policies so that SharePoint can manage their data but have it governed by their specific rules. SharePoints latest social features around content management are also available to applications that store data in SharePoint lists or connect external data using external data columns. Users can choose to tag application data using either a managed, hierarchical term store (taxonomy) or community-generated tags (folksonomy), with both types of metadata residing in a unified, centrally-managed location. Users can also rate favorites and bookmark data records to share and re-retrieve content they deem interesting. Additionally, items in document libraries can appear in the SharePoint Documents web part of a users My Site (their personal web site) to display documents which the user has recently modified. Documents can also appear in the Relevant Documents web part which displays recent changes for the current user on the site. SharePoint Workspace, formerly Groove, allows users to easily take the application data offline. SharePoint Workspace is a windows desktop collaboration environment allowing users to interact with content and other team members. Users can work with application data offline and then synchronize with the SharePoint server when a connection is available. Offline mode is available for applications that store data in SharePoint lists as well as to those that connect to SharePoint using Business Connectivity Services.
17
Platform Capabilities
User Interface
Being built upon ASP.NET also allows for points of extensibility in the SharePoint UI. The interface uses master pages, web parts, server controls, and user controls developed using ASP.NET. This means that ASP.NET application developers can use familiar skills to build custom UI components and then integrate those solutions into the SharePoint UI.
Functions Custom Web Services Custom CRUD UI Custom Search Content Sources
Server Control Custom Actions provide additional options User Control for UI enhancement. Custom actions include content drop downs, Site Actions menu items, and links placed on administrative pages. As a result, it is very easy to create custom administrative pages and provide links to these Server Control pages such that they look completely integrated with the rest of the SharePoint administration pages. SharePoint 2010 goes a step further with the introduction of the SharePoint Ribbon. The new ribbon can be customized and extended by SharePoint developers to include content-sensitive menu options alongside the standard menu options that are provided.
Silverlight JavaScript Windows App Web parts are a key UI component for ISVs, regardless of Strategy: Connect whether they use the Connect, Extend, or Build On strategy. Connecting at the user interface layer allows users to view and interact Web parts are an ASP.NET concept (and base class) and are with external data from within SharePoint while keeping the data and hosted by SharePoint. SharePoint also manages the storage data access code external to SharePoint. This is typically achieved by of web part properties, including shared property values and developing custom web parts or application pages which use custom per-user property values. Web parts give users the ability to code libraries to directly access external data. Developing custom UI design 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 Services arrangement. Standard web part connection interfaces, such as this approach from the consistent SharePoint user interface Server-Side U those provided by SharePoint filter web parts, allow out-of-the- paradigm and the ability to be used in SharePoint configuration and deployment scenarios. box web parts to connect with custom web parts. For example, SharePoint SharePoint API the Choice Filter web part can be connected with web parts which implement the IFilterValues connection interface. There are nine filter web parts available from SharePoint Server, providing several options for connecting to a custom web part that implements IFilterValues. Client OM Client OM Client OM Authorization Scalability Provisioning ASP.NET Authentication IIS Windows Server Content & Configuration Databases SQL Server Request Pipeline SvcProxy AJAX AJAX Membership Provider
Connect
Integrate 18 an existing
Extend
Create integrated solutions
Build On
Create solutions on
Server Control SharePoint 2010 provides for even broader UI customization with the new client object model. This model allows for easy access to SharePoint data from client side JavaScript enabled browsers, windows desktop, and Silverlight applications. This point of extensibility makes it much easier for developers to provide rich client- side features and usability when a web based interface is not desirable.
Silverlight Client OM
JavaScript Client OM
AJAX
SQL Server
Connect
Integrate an existing product with SharePoint to enable the two products to work together.
Extend
Create integrated solutions that extend SharePoint feature offerings - or that leverage or include SharePoint capabilities.
Build On
Create solutions on top of the SharePoint infrastructure that leverage the breadth of capabilities provided by the SharePoint platform.
2001
19
Deployment
Request Membership Authorization Provisioning The robust and extensible infrastructure, content management, and Provider UI capabilities position SharePoint as a solid choice for Pipeline application development. The flexibility built into SharePoint 2010 allows ISV developers to envision ways in which the platform can be extended to provide even greater value. For more details from a developer perspective, see Introduction to SharePoint ASP.NET Products and Technologies for the Professional .NET Developer13. Authentication Content & Configuration Databases
AJAX
20
21
Is Perception Reality?
While there may have been barriers to adoption as a development platform in earlier versions of SharePoint, the base services coupled with the vertical integration capabilities of SharePoint 2010 eliminate most of those barriers. With a set of services that have matured to support standard application requirements and that enable the extension or integration with custom infrastructure services, it seems inevitable that the next wave of SharePoint value will come in the form of vertical solutions that build upon the new platform services. Business Continuity Services (BCS), a Client Object Model, SharePoint Workspaces, Sandboxed Solutions, and Service Applications among others are areas to watch for burgeoning vertical value.
22
23
24
Examples of Line of Business SharePoint Applications There are already ISVs building line-of-business applications on SharePoint. For example, NextDocs Corporation and TranSenda are two Vertical ISVs that build such applications for the life sciences market. For Technology ISVs, you can look at companies such as KnowledgeLake that provide transactional content mangagement expertise for line-of-business applications that require image capture processing.
25
Community
Rich community support includes more than 180 Microsoft MVPs worldwide that have proficiency in SharePoint Services and SharePoint Server. MVPs are active members of the SharePoint community who make significant contributions by publishing original content and tools, monitoring and answering questions in online forums, presenting at major Microsoft conferences, and/or leading or actively participating in SharePoint user groups or code camps. The SharePoint Developer Center is a great place to monitor community content. There are a large number of forums available for discussions on various SharePoint topics such as general design or development or specific areas like Workflow or Excel Services. Many ISVs have forums as well. Some popular community forums include: MSDN - SharePoint Products and Technologies Forums24 TechNet - SharePoint 2010 Forums25 Stack Overflow - SharePoint26 Server Fault - SharePoint27
can also be easily added using Visual Studio. Visual Studio also includes support for creating SharePoint Sandboxed Solutions which are projects that utilize a limited set of the SharePoint API for deployments in low-trust environments. Visual Studio can then build the solution and create a SharePoint Solution Package (WSP) that can be deployed to a separate SharePoint instance.
Debugging
Several tools and techniques are available for debugging SharePoint solutions. Starting from the lowest level, applications built upon the Microsoft Server Operating Systems and ASP.NET enables OS event logs to be used for logging of errors, warnings, and information. At the next level, the Unified Logging Service (ULS) logs include SharePoint specific error and warning information. The level of detail (e.g., warning or information) included in the ULS logs can be controlled via settings in SharePoint Central Administration. ASP.NET tracing can be captured to the Visual Studio output window or can be viewed using the DebugView application. A higher level is the SharePoint Developer Dashboard, which includes execution times for page load and database queries. Problematic database queries can be further investigated by clicking the hyperlink for the query to see the call stack which led up to the query. Developers can also add monitoring for custom code wrapping it with a SPMonitoredScope section. Visual Studio is a rich environment for debugging. Visual Studio can attach to the SharePoint worker process to allow stepping through server-side code such as for web pages, web parts, and user controls. Attaching to the SharePoint Services Timer process allows for debugging custom timer jobs or resumed workflow processes. Further, Visual Studio is a great script debugging environment, attaching to Internet Explorer for stepping into client-side code.
Microsofts open source project hosting site, CodePlex28, has become the de facto source for community-supported SharePoint projects. SharePoint projects include those that support developer activities as well as those that add to and customize SharePoint usability and features. A quick search of CodePlex yields over 1000 projects containing the keyword SharePoint!
Visual Studio
Visual Studio is Microsofts flagship development environment. It provides support for developing applications and components across the spectrum of Microsoft technologies. The environment supports deep customization into the underlying ASP.NET infrastructure such as HttpHandlers, HttpModules, or membership providers for custom authentication as well as SharePoint specific development. Using a wizard-based interface, developers can create web parts, list definitions, list instances, content types, workflows, event receivers, application pages, and Business Data Connectivity Models. Additionally, resources such as JavaScript or solutions images that must be deployed to the file system
26
When editing a web page, SharePoint Designer by default restricts users to editing web parts on a page. This feature prevents developers from detaching the page from the site definition, which can increase maintenance costs. An Advanced Edit Mode is available for full editing of the page. Often users will create solutions that grow over time to require a professional developers assistance. Solutions can be exported from SharePoint Designer 2010 and imported into Visual Studio 2010 to enable the developer to enhance the users solution without recreating it from scratch.
27
Next Steps
The decision to use SharePoint as a web application development platform can be approached in different ways. Below are some strategies to consider.
Feature Mapping
Map a product roadmap to SharePoint features. After this mapping, determine what areas of SharePoint can accelerate your product development. This is a low-cost-ofentry approach to determine the benefit of leveraging the SharePoint platform. It may be beneficial to consult with someone that has a deep understanding of the breadth of capabilities that SharePoint can enable. Hopefully, this paper has given insight to the key capabilities and benefits of SharePoint that indicate if a feature-mapping exercise could have the potential to identify areas of overlap between SharePoint and intended product features. Also, during this analysis it is important to understand the components provided by the different product SKUs of SharePoint.
Pilot Project
Most companies when evaluating a new technical roadmap will approach building their product incrementally by starting with a Beta of the product first. They typically build a Beta of their SharePoint based product in a 1-3 month cycle. Getting a quick cycle of the product is a key to understand the true value of a Connect, Extend, or Build On strategy. It can be surprising what features can be built in 1-2 week iterations. By 3-6 iterations, typically enough features are in the product to release to a Beta Community. After this 1-3 month time frame, development cycles are understood and an organization is prepared to have a tighter estimate on what it will take to get a product to a version 1.0.
Market Analysis
Get an understanding of the use of SharePoint among current and prospective customers. Based on this understanding, you can make a more informed decision about the potential benefits of having a product built on or connected to SharePoint. In the situation of Horizontal ISVs, it can be a show stopper or a delay in the sales cycle if your product does not have a SharePoint connection strategy. For Vertical ISVs, building on SharePoint may result in a positive outcome based on the comfort level a customers IT group has with SharePoint. Having a product that leverages SharePoint (a familiar platform service that IT groups use today) will be seen as a simpler solution and one that is more maintainable. For example, most Microsoft based IT shops know how SharePoint security works, so there will be a comfort level of leveraging an existing authentication and authorization mechanism that is integral to SharePoint.
Bake Off
An interesting exercise is to build two similar products; one leveraging SharePoint and one that is built from the ground up. This is not a common exercise, but can be a very eyeopening experience. With the SharePoint development, there is more of a focus around the business problem and less of a focus on the framework. Because of this focus, many common business problems can be solved with a large reduction of custom code and a greatly reduced development cycle.
28
Technology Solutions
Communities Insights
Metadata Management Concept Searching Expert System ITSystems AG KwizCom MetaVis Networked Planet ScanJour SchemaLogic SharePartXXL SmartLogic Synaptica OCR ABBYY EMC IRIS Kofax Open Text Offline Replication Colligo Digi-Link Dosensio Infonic Physical Records Management DataStore FileTrail Iron Mountain OmniRIM Productiv Records Management Applied IS CA EMC HP Open Text Productiv UniqueWorld Text Analytics Infonic Information Security bHold GigaTrust Liquid Machines NextPage Omada Sophos Identity/User Directory Novell Ping Mobile App Support Formotus H3-Inc (Mobile Entree) PushBI RealCommerce Transpara TrueContext WICKSoft Reporting IntLock WebTrends Security/Permissions Mgmt bHold CA Cisco Courion GigaTrust Lightning Tools McAfee Omada Quest Software Rohati Symantec Trend Micro Query Enhancements BA-Insight Expert System ScanJour SurfRay Repository Connectors/ Protocol Handlers/iFilters BA-Insight Citeknet Comperio Coveo Handshake Software iFilterShop SeeUnity Vital Path Vorsite xmLaw Visual Search Documill Web Content Management Coextant IT Hit Metalogix pTools Telerik Site Management Alcero Echo Technology SharePoint Solutions WAN Optimization Aptimize BlueCoat Brocade Certeon Cisco Citrix F5 HP RadWare Translation Support IceFire Idiom Data Enhancement Acxiom MetaCarta Governance AvePoint CA ClusterSeven Mimosa Systems Navantis NextPage Omada Quest Software Securent speakTECH Workshare Business Intelligence Advantive.NL Clarity deFacto MaxQ Technologies Panorama PushBI Quilogy RadWare Solgenia Tagetik Transpara Wincor Nixdorf Geo-Replication DoubleTake Echo Technologies Infonic Neverfail RepliWeb Syntergy Business Integrity C-Lutions Corridor Consulting Dolphin Software Open Text Administration AvePoint Axceler Data Assist Echo Technologies Idera iDevFactory Quest Software Bamboo Software BPA Solutions CDC Corporation CorasWorks Kronos SharePartXXL TXT e-Solutions Varicent Verint BCS-LOB Integration ERP-Link Intellimaker Lightning Tools Simplement Sitrion (SAP) StoneBond Topaz Bridge Varicent Accessibility HiSoftware ADP Kronos Nakisa Topaz Bridge Collaboration Aditi Colligo Content Circles Social Computing Awareness ConnectBeam INgage Networks KWizCom Leverage Software Lightning Tools NewsGator Nintex RealCom Telligent Archiving/Backups Allen Systems AvePoint BlueThread CA CommVault EMC Hitachi Data Systems Iron Mountain Metalogix Mimosa Systems NetApp Neverfail Quest Software Seagate Symantec
Content
Communications
Life Sciences
Knowledge Management
Associated Press Bentley Systems Bloomberg Easy Software (AG) it Consult (IT) Kronos LexisNexis MicroStrategy Thomson Reuters
Accelrys Adlib Software CSC DITA-Exchange Good Products NextDocs OSIsoft PointCross SchemaLogic TranSenda
Contract Management
Composites
Business Process Management
AgilePoint Datapolis Global360 InRule ITSystems AG K2 Kaldeera Metastorm Nintex SharePoint Solutions SharePointBoost ShareVis Skelta Ultimus Developer Components Atalasoft ComponentOne ESRI IDV Solutions Infragistics Infusion InterKnowlogy NetUnity Tec-IT Telerik Content Transformation Adlib Software AnyDoc Software Coextant DITA-Exchange Foxit Software Titus Labs Natural Language Search Q-Go Digital Asset Management Adam Equilibrium Open Text (Artesia) Telestream Document Assembly ActiveDocs Business Integrity DITA-Exchange ld Intelledox Microsystems Thirtysix Software Xinnovation Document Multi-Authoring Black Blade Associates HyLighter OneDoc ECM Interop EMC Hyland IBM Open Text Oracle SAP Forms Adapx Kayentis Qdabra ShareVis Tec-IT Texcel Transactional Content Management BancTec BlueThread Clearview Dark Blue Duck eCopy Fujitsu Hyland Software ImageSource IRIS KnowledgeLake Kodak Kofax Laserfiche Nuance SpringCM Xerox User Components Bamboo Solutions CorasWorks KwizCom MindJet Senova Solutions SharePartXXL Techtra WorkLight Content Migration AvePoint Casahl Metalogix MetaPlus MetaVis Proventeq Quest Software SeeUnity Tzunami Valiance Partners Vamosa Vital Path
Compliance Bentley Systems CA ClusterSeven GigaTrust HiSoftware HP Indorse Liquid Machines NextDocs NextPage Nintex Prodiance Titus Labs
Accellos Escalate Gerber Tech LexisNexis Manhattan Associates ProfitBase Radiant WebTrends
CRM
AccTech Systems BPA Solutions CDC Corporation LookOut Software Portrait Software Relavis TotalSoft
Consumer Goods Blue Granite Cactus Commerce Invensys Quofore TXT Vendor Managed Technologies
Project Management
Bamboo Software BrightWork LMR Solutions
Aspen Tech Autodesk Bentley Systems Cincom Dassault Honeywell ICONICS Intergraph OSIsoft PTC Rockwell Schlumberger Siemens PLM Wipro
DoD Certification
Applied IS CA HP
Education
Search
Linguistic and Sound Semantics Concept Searching Expert System Sinequa
E-Learning/LMS
Competentum IntraLearn Learning Evolution
Retail
ARGO Data CSC Fiserv FundTech Jack Henry Memento MiSys Portrait Software Prodiance Corporation Profitbase R Square SunGard Temenos Vertafore
Acorn Systems Cactus Commerce Red Prairie RPM Car TXT eSolutions Varicent Wincor Nixdorf
HealthCare
Next Steps
Allscripts CA Care Fusion CitiusTech Greenway Hyland Software McKesson Philips Solver White Cloud
Adexa AspenTech Epicor ICONICS Infosys Invensys Logility OSIsoft RedPrairie SAP-Duet
This is a draft version. Please send feedback to spisvmap@microsoft.com. This is a representative sample of partners and is not designed to be a comprehensive list. Rev. date March 12, 2010.
Copyright 2010. Microsoft Corporation. All rights reserved.
The ISV Ecosystem Map is representative only, and is not a comprehensive list. The 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 spisvmap@microsoft.com. (Comments will be accepted, but will not be responded to.)
29
Storage Services CommVault EMC HDS Iron Mountain NetApp Open Text Seagate-i365
E-Commerce
Aivea Cactus Commerce
Agilix CSI Datatel E-Learning Force Houghton Mifflin Harcourt iStrategy IT Worx SunGard Higher Education
Areva Group Enspiria Solutions Flexnova IHS Inc. McLaren Software Navantis OSISoft
Federal Government
Professional Services
Accruent Aderant Handshake Software NextPage Sonata Software WorkProducts Workshare xmLaw
Next Steps
Key Resources
Microsoft - SharePoint 2010: http://sharepoint2010.microsoft.com/Pages/ default.aspx Microsoft - Office SharePoint Server 2007: http://sharepoint.microsoft.com/Pages/Default.aspx Microsoft SharePoint Team Blog: http://blogs.msdn.com/sharepoint Microsoft - SharePoint Developer Introduction for .NET Developers: http://www.microsoft.com/click/sharepointdeveloper/ html/Default.html MSDN - Whats New in SharePoint Server 2010: http://msdn.microsoft.com/en-us/library/ ee557323(office.14).aspx MSDN - Whats New in SharePoint Foundation 2010: http://msdn.microsoft.com/en-us/library/ ee539826(office.14).aspx MSDN - Introduction to SharePoint Products and Technologies for the Professional .NET Developer: http://msdn.microsoft.com/en-us/library/cc537498.aspx MSDN - Microsoft SharePoint Products and Technologies: http://msdn.microsoft.com/en-us/library/bb931739.aspx
References
Microsoft - SharePoint 2010 Capabilities: http://sharepoint2010.microsoft.com/product/capabilities/ Pages/default.aspx Microsoft SharePoint Team Blog - SharePoint History: http://blogs.msdn.com/sharepoint/archive/2009/10/05/ sharepoint-history.aspx Microsoft SharePoint Team Blog - SharePoint 2010: http://blogs.msdn.com/sharepoint/archive/2009/10/19/ sharepoint-2010.aspx TechNet - SharePoint 2010 Forum: http://social.technet.microsoft.com/Forums/en-US/ category/sharepoint2010 TechNet - Managed Metadata Service Application Overview (SharePoint Server 2010): http://technet.microsoft.com/en-us/library/ ee424403(office.14).aspx TechNet - Introduction to Access Services (SharePoint Server 2010): http://technet.microsoft.com/en-us/library/ ee748634(office.14).aspx TechNet Configure the Secure Store Service (SharePoint Server 2010): http://technet.microsoft.com/en-us/library/ee806866.aspx Microsoft Learning - Developing Service-Oriented AJAX Applications on the Microsoft Platform: http://www.microsoft.com/learning/en/us/book. aspx?ID=12793 MSDN - SharePoint Developer Center: http://msdn.microsoft.com/en-us/sharepoint/default.aspx MSDN - SharePoint Products and Technologies Forums: http://social.msdn.microsoft.com/forums/en-US/ category/sharepoint MSDN - Application Lifecycle Management Resource Center: http://msdn.microsoft.com/en-us/office/cc990283.aspx MSDN - Team-Based Development in Microsoft Office SharePoint Server 2007: http://msdn.microsoft.com/en-us/library/bb428899.aspx MSDN - Using Team Foundation Server to Develop Custom SharePoint Products and Technologies Applications: http://msdn.microsoft.com/en-us/library/cc948982.aspx MSDN - Solution and Authored Artifact Development Models for SharePoint Products and Technologies: http://msdn.microsoft.com/en-us/library/dd179854.aspx
30
Next Steps
References (continued)
MSDN - Walkthrough: Creating a Basic SharePoint Web Part: http://msdn.microsoft.com/en-us/library/ms452873.aspx Microsoft SharePoint Team Blog - Scaling to Extremely Large Lists and Performant Access Methods: http://blogs.msdn.com/sharepoint/archive/2007/07/25/ scaling-large-lists.aspx MSDN - Cohesion and Coupling: http://msdn.microsoft.com/en-us/magazine/cc947917.aspx CodePlex: http://www.codeplex.com CodePlex - WSPBuilder: http://www.codeplex.com/wspbuilder CodePlex - STSDEV: http://www.codeplex.com/stsdev CodePlex - SharePoint Solution Installer: http://www.codeplex.com/sharepointinstaller StackOverflow - SharePoint: http://stackoverflow.com/questions/tagged/sharepoint ServerFault - SharePoint: http://serverfault.com/questions/tagged/sharepoint SharePoint Reviews Reviews of Third Party SharePoint products http://www.sharepointreviews.com/ David Chappell - The SharePoint 2010 Developer Platform: http://www.davidchappell.com/blog/2009/10/sharepoint2010-developer-platform.html Kollabria - Is SharePoint a Business Operating System?: http://www.kollabria.com/pages/Is-SharePoint-a-BusinessOperating-System%3F.html
Glossary of Terms
If you are new to ASP.NET or SharePoint concepts, we have provided the below glossary of terms for your reference. ACL Access Control List a set of permissions tied to an object. For search indexing this involves storing the ACL with an item that is indexed so the query engine can easily determine if the current user has read access to the search result. See also http://en.wikipedia.org/ wiki/Access_control_list. AJAX Asynchronous JavaScript and XML refers to web requests from browser clients (JavaScript) that tend to return XML from the server without having to refresh the entire page. See also http:// en.wikipedia.org/wiki/Ajax_(programming). ALM - Application Lifecycle Management refers to managing the entire software lifecycle of an application through the use of tools. See also http://en.wikipedia.org/wiki/Application_lifecycle_management. ASP.NET Active Server Pages .NET Microsoft web application framework built upon the .NET framework. See also http:// en.wikipedia.org/wiki/Asp.net. BCS - Business Connectivity Services SharePoint 2010s new service for connecting SharePoint to business data that lives outside of SharePoint and can be accessed through database protocols, web services, or custom .NET code. The data is exposed within SharePoint as external content types. BDC - Business Data Catalog the original name for the BCS in SharePoint 2007 and now replaced by the BCS in SharePoint 2010. CAS Code Access Security allows a set of code to demand certain security rights at runtime. See also http://en.wikipedia.org/wiki/Code_ access_security. Claims Based Authentication an approach to identity management where a secure token service (STS) is used to make a claim on an identity. The STS can be used in a heterogeneous environment allowing disparate systems to trust the identity as long as they can share the same STS. ClickOnce Microsoft technology for deploying client applications over the Internet. See also http://en.wikipedia.org/wiki/ClickOnce. Client OM - Client Object Model the new object model available to browsers running JavaScript or Silverlight as well as Windows applications. This makes it easier for programmers to communicate to SharePoint through a client API. Content Types these define the schema and behavior of a particular type of content. In SharePoint this includes the fields for the content (list/library columns) and can also define workflow settings as well as information management policy settings. See also http://msdn. microsoft.com/en-us/library/ms472236.aspx. ECB - Edit Control Block the drop-down menu associated with an item in a SharePoint list/library. Excel Services allows the sharing of Excel content to others through SharePoint web user interface. See also http://office.microsoft.com/ en-us/sharepointserver/HA101054761033.aspx.
31
Next Steps
External Content Types a Content Type that is external to SharePoint and is available through the BCS. Federated Search / Query Federation the act of delegating a query to another service, such as the owner of the content. The other service would be in charge of indexing the content as well. See also http://en.wikipedia.org/wiki/Federated_search. Folksonomy simple tagging or classification of content that emerges from users of content vs. being mandated to a predetermined structured taxonomy. Folksonomies are considered to be a bottoms-up approach to tagging content. Taxonomies are usually considered a top-down approach to tagging content. See also http:// en.wikipedia.org/wiki/Folksonomy. HTTP Handler code within ASP.NET that can be configured to handle particular type of request (e.g., a GET for a URL). See also http://msdn.microsoft.com/en-us/library/bb398986.aspx. HTTP Module code within ASP.NET that can be configured to as part of the pipeline for all requests for a particular site or sub-site. See also http://msdn.microsoft.com/en-us/library/bb398986.aspx. Information Management Policies a set of rules that can be applied to content in SharePoint. See also http://msdn.microsoft.com/ en-us/library/ms499244.aspx. InfoPath Forms Form-design tool used for electronic form data collection. SharePoint has a server feature for InfoPath Forms to allow viewing InfoPath Form within the browser on a SharePoint site. See also http://office.microsoft.com/en-us/sharepointserver/ HA101672841033.aspx. ISAPI - Internet Server Application Programming Interface The API used for building the ASP.NET framework. See also http://en.wikipedia. org/wiki/Internet_Server_Application_Programming_Interface. Master Pages This ASP.NET capability is used for common/ consistent layout and web pages across sites in SharePoint. See also http://msdn.microsoft.com/en-us/library/wtxbf3hh.aspx Monitored Scope A technique used to instrument code to show up in the SharePoint Developer Dashboard. See also http://www. wictorwilen.se/Post/Improve-your-SharePoint-2010-applications-withmonitoring-using-SPMonitoredScope.aspx and http://blogs.technet. com/speschka/archive/2009/10/28/using-the-developer-dashboardin-sharepoint-2010.aspx MOSS - Microsoft Office SharePoint Server - the name of the licensed version of SharePoint in 2007. MSF - Microsoft SharePoint Foundation - the new name of the core/foundation of SharePoint in 2010. MSS Microsoft SharePoint Server the new name of the licensed version of SharePoint in 2010. OData Open Data Protocol - Web protocol for querying and updating data that provides a way to unlock your data and free it from silos that exist in applications today. See also http://www.odata.org SAML Security Assertion Markup Language XML-based standard for exchanging authentication and authorization data between security domains. See also http://en.wikipedia.org/wiki/ Security_Assertion_Markup_Language.
32
SharePoint Ribbon SharePoint 2010 provides a ribbon interface just like the ribbon introduced in most Office 2007 products. This ribbon is context sensitive to provide most common actions behind an icon at the top portion of the page. See also http://en.wikipedia.org/wiki/ Ribbon_(computing). Silverlight A web application framework for rich web user interface that can be used across browsers and operating systems. See also http://en.wikipedia.org/wiki/Microsoft_Silverlight. Site Actions Menu A user interface component common on SharePoint pages that allow users with the appropriate permissions to perform common site actions such as creating a new list for a site. See also http://msdn.microsoft.com/en-us/library/bb418728.aspx. SharePoint Workspace Formally Groove in Office 2007, this is the offline client for SharePoint 2010. This is also a secure and rich peer collaboration environment that allows for data synchronization between users in a workspace without being connected to SharePoint. See also http://technet.microsoft.com/en-us/library/ ee649102%28office.14%29.aspx SPI - SharePoint Project Item SharePoint Project Item Templates are used in Visual Studio 2010 to add project items to an existing SharePoint project, such as adding an event receiver to a list definition project. See also http://msdn.microsoft.com/en-us/library/ ee231554(VS.100).aspx. SPS - SharePoint Portal Services The name used for the server product for first and second generation (version) of SharePoint. SSO - Single Sign-On Attributed to heterogeneous systems where a user can authenticate once and have access to multiple systems without having to log in again. STS - SharePoint Team Services The name used for the free addon to Windows Server for the first generation (version) of SharePoint. VSeWSS - Visual Studio Extensions for Windows SharePoint Services A set of extensions to Visual Studio to help developers of SharePoint 2007 based applications. WCF Windows Communication Foundation As part of the .NET framework, this foundation provides a unified model for building service-oriented applications. See also http://msdn.microsoft.com/enus/netframework/aa663324.aspx Web Part Modular user interface components that are nested in Web Part Pages. Web Parts in SharePoint can be configured by a user, including determining in whichWeb Part Zone a Web Part is placed. This is a key part of packaging elements of a SharePoint solution. See also http://msdn.microsoft.com/en-us/library/dd583154(office.11).aspx. Web Part Pages The main container for the SharePoint user interface. Web Part Pages contain Web Part Zones, which can contain zero to many Web Parts. See also http://msdn.microsoft.com/en-us/ library/dd583147(office.11).aspx
Next Steps
Glossary of Terms (continued)
Web Part Zones Web Part Zones allow a user or developer to place Web Parts in relative positions within a Web Part Page. For example, you could have top, left, and right Web Part Zones to organize where Web Parts would be rendered on a Web Part Page. WF - Windows Workflow Foundation Microsoft workflow framework that can be hosted within SharePoint to provide workflow capabilities. This engine is used for custom workflows and is leveraged by most products that provide workflow in SharePoint. See also http:// msdn.microsoft.com/en-us/netframework/aa663328.aspx. WSP - Solution Package A CAB file with the extension of .wsp used to deploy code to a SharePoint Server. See also http://msdn. microsoft.com/en-us/library/bb466225.aspx. WSS - Windows SharePoint Services - the name of the core of SharePoint from v1 through v3. In 2010 this has been replaced with the moniker Microsoft SharePoint Foundation (MSF).
33
Appendix
Footnotes
1
14
Solution and Authored Artifact Development Models for SharePoint Products and Technologies http://msdn.microsoft.com/en-us/library/dd179854(office.12). aspx
Working with Large Lists in Office SharePoint 2007 Whitepaper http://blogs.msdn.com/sharepoint/archive/2007/07/25/ scaling-large-lists.aspx
SharePoint Connector for Confluence (How We Did It Article on SharePoint Product Team Blog) http://blogs.msdn.com/sharepoint/archive/2008/01/10/ sharepoint-connector-for-confluence-how-we-did-it.aspx
17
18
Allowing Connections to Multiple SSRS Servers with Report Viewer and Explorer Web Parts (How We Did It Article on SharePoint Product Team Blog) http://blogs.msdn.com/sharepoint/archive/2008/11/03/howwe-did-it-allowing-connections-to-multiple-ssrs-servers-withreport-viewer-and-explorer-web-parts.aspx
19
20 7
Automating Service Requests using InfoPath Forms Services (How We Did It Article on SharePoint Product Team Blog) http://blogs.msdn.com/sharepoint/archive/2008/11/14/howwe-did-it-automating-service-requests-using-infopath-formsservices.aspx
21
22
23
10
24
11
Mike Flaskos Breaking Down Data Silos - The Open Data Protocol (OData) http://blogs.msdn.com/astoriateam/archive/2009/11/17/ breaking-down-data-silos-the-open-data-protocol-odata.aspx
25
12
26
13
Introduction to SharePoint Products and Technologies for the Professional .NET Developer http://msdn.microsoft.com/en-us/library/cc537498.aspx
27
28
34