SPTechCon Extending ECM for Developers

26
Developing and Extending Enterprise Content Management features Paul J. Swider Technology Partner RealActivity @pswider

description

ECM and SharePoint for Developers

Transcript of SPTechCon Extending ECM for Developers

Page 1: SPTechCon Extending ECM for Developers

Developing and Extending Enterprise Content Management features Paul J. SwiderTechnology PartnerRealActivity@pswider

Page 2: SPTechCon Extending ECM for Developers

www.paulswider.com

Page 3: SPTechCon Extending ECM for Developers

Objectives

Understand Forms of ECM Programming

Best Practices Extending ECM features

Page 4: SPTechCon Extending ECM for Developers

Agenda Introduction to Extending ECM

Document Management Namespace

Demo: Document Id Service Demo: Automate Document Sets

Taxonomy Namespace

Demo: Program Content Type Syndication

Page 5: SPTechCon Extending ECM for Developers

Form of ECM Programming

SharePoint Sites, Libraries and Lists

Workflow Project Template

Policy Object Model

Search Object Model

SPFile

Page 6: SPTechCon Extending ECM for Developers

Extending ECM Features (Cont.)

Document Management Object Model

Taxonomy Object Model

Page 7: SPTechCon Extending ECM for Developers

Microsoft.Office.DocumentManagement

Lives in SharePoint Root

Referenced from Any Project

Code Runs on Server

Page 8: SPTechCon Extending ECM for Developers

Document Management Inheritance

using Microsoft.Office.DocumentManagement;namespace CustomDocumentIDProvider{class CustomDocumentIDProvider :Microsoft.Office.DocumentManagement.DocumentIdProvider{…

using Microsoft.Office.DocumentManagement;namespace CustomDocumentIDProvider{class CustomDocumentIDProvider :Microsoft.Office.DocumentManagement.DocumentIdProvider{…

Page 9: SPTechCon Extending ECM for Developers

ECM Programming features

demo

Page 10: SPTechCon Extending ECM for Developers

Document ID Service

New Site Collection Feature: Document ID Service

Adds Unique ID

Documents Retrieved Regardless of Location

Page 11: SPTechCon Extending ECM for Developers

Implementing Retrieval Options

public override bool DoCustomSearchBeforeDefaultSearch{//property used to trigger our custom search first.//If false then we will use the SharePoint search when retrievingDocument IDsGet…

public override bool DoCustomSearchBeforeDefaultSearch{//property used to trigger our custom search first.//If false then we will use the SharePoint search when retrievingDocument IDsGet…

Page 12: SPTechCon Extending ECM for Developers

Implementing Finder Method

//Implement our own finder method.//Return empty if no resultspublic override string[] GetDocumentUrlsById(Microsoft.SharePoint.SPSitesite, string documentId){string[] searchhits = new string[0];return new string[0];}…

//Implement our own finder method.//Return empty if no resultspublic override string[] GetDocumentUrlsById(Microsoft.SharePoint.SPSitesite, string documentId){string[] searchhits = new string[0];return new string[0];}…

Page 13: SPTechCon Extending ECM for Developers

Deployment with a Feature Receiver

public override void FeatureActivated(SPFeatureReceiverProperties properties){SPSite sitecollection = (SPSite)properties.Feature.Parent;DocumentId.SetProvider(sitecollection,typeof(CustomDocumentIDProvider.CustomDocumentID));}…

public override void FeatureActivated(SPFeatureReceiverProperties properties){SPSite sitecollection = (SPSite)properties.Feature.Parent;DocumentId.SetProvider(sitecollection,typeof(CustomDocumentIDProvider.CustomDocumentID));}…

Page 14: SPTechCon Extending ECM for Developers

Deployment with PowerShell

$site = Get-SPSite http://MyServer [System.Reflection.Assembly]::LoadWithPartialName("Microsoft.Office.DocumentManagement") $assembly = [System.Reflection.Assembly]::Load("CustomDocIdProvider") $type = $assembly.GetType("Microsoft.SDK.MOSS.Samples.CustomDocumentIDProvider"); [Microsoft.Office.DocumentManagement.DocumentId]::SetProvider($site, $type); …

$site = Get-SPSite http://MyServer [System.Reflection.Assembly]::LoadWithPartialName("Microsoft.Office.DocumentManagement") $assembly = [System.Reflection.Assembly]::Load("CustomDocIdProvider") $type = $assembly.GetType("Microsoft.SDK.MOSS.Samples.CustomDocumentIDProvider"); [Microsoft.Office.DocumentManagement.DocumentId]::SetProvider($site, $type); …

Page 15: SPTechCon Extending ECM for Developers

Custom Document ID Provider

demo

Page 16: SPTechCon Extending ECM for Developers

Document SetSharePoint 2010 introduces document sets, or a

collection of documents, spreadsheets, presentations, etc. that make up a single work

product

Compound Document Inherits from Folder

Metadata exists on individual items and the set as a whole

Page 17: SPTechCon Extending ECM for Developers

Document Sets Each document set has:

List of available content types Default content automatically added

Create Shared Columns Defined in document set’s content type and pushed down across

all content in set

Welcome Page Customizable Web Part Page

Page 18: SPTechCon Extending ECM for Developers

Automate Document Set Creation

demo

Page 19: SPTechCon Extending ECM for Developers

Shared Service Application

‟Service” Term Store and Content Type Publishing Content type hub Many shared apps/web app Service can be local or remote

Sharing Connection

Default Locations

Excel Services

Business Data Catalog

Access Service

People

Managed Metadata

Lotus Notes Connector

Central Administration Manage Service Applications

Visio Graphics

Secure Store

Search

Word Conversion

Web Analytics

Page 20: SPTechCon Extending ECM for Developers

Microsoft.SharePoint.Taxonomy

Lives in SharePoint Root

Referenced from Any Project

Code Runs on Server

Page 21: SPTechCon Extending ECM for Developers

Term Store, Term Sets & Terms Service Application (Term Store) » Groups »

Term Sets » Terms Locations » Cities » Anaheim

Administrators & users create term stores & terms Flat or hierarchical Can have custom properties associated with each term Reusing, merging & deprecating terms

Page 22: SPTechCon Extending ECM for Developers

Content Type Syndication

Publishing content types Content Types are ‟published” from a ‟normal” Site Content Type Gallery Maximum of 1 Hub per Metadata Shared Application Service It is not a requirement that a Metadata Service syndicate content types It is not a requirement that a service connection consume content types

from the service Setting a site collection to be the hub enables necessary components on hub

What gets published? Content Type with all the corresponding columns

Including Document Set Content Type Policies And workflow associations (not the workflows)

Page 23: SPTechCon Extending ECM for Developers

Automate Content Type Syndication

demo

Page 24: SPTechCon Extending ECM for Developers

Enterprise Deployment

Features/Packages• Standard Deployment• Multiple Service

Applications

Upgradable

Page 25: SPTechCon Extending ECM for Developers

Review

Understand Forms of ECM Programming

Microsoft.Office.DocumentManagement

Microsoft.SharePoint.Taxonomy

Best Practices

Page 26: SPTechCon Extending ECM for Developers

© 2011 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted

to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

www.paulswider.com