SPTechCon Extending ECM for Developers
-
Upload
paul-swider -
Category
Technology
-
view
1.011 -
download
0
description
Transcript of SPTechCon Extending ECM for Developers
Developing and Extending Enterprise Content Management features Paul J. SwiderTechnology PartnerRealActivity@pswider
www.paulswider.com
Objectives
Understand Forms of ECM Programming
Best Practices Extending ECM features
Agenda Introduction to Extending ECM
Document Management Namespace
Demo: Document Id Service Demo: Automate Document Sets
Taxonomy Namespace
Demo: Program Content Type Syndication
Form of ECM Programming
SharePoint Sites, Libraries and Lists
Workflow Project Template
Policy Object Model
Search Object Model
SPFile
Extending ECM Features (Cont.)
Document Management Object Model
Taxonomy Object Model
Microsoft.Office.DocumentManagement
Lives in SharePoint Root
Referenced from Any Project
Code Runs on Server
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{…
ECM Programming features
demo
Document ID Service
New Site Collection Feature: Document ID Service
Adds Unique ID
Documents Retrieved Regardless of Location
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…
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];}…
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));}…
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); …
Custom Document ID Provider
demo
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
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
Automate Document Set Creation
demo
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
Microsoft.SharePoint.Taxonomy
Lives in SharePoint Root
Referenced from Any Project
Code Runs on Server
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
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)
Automate Content Type Syndication
demo
Enterprise Deployment
Features/Packages• Standard Deployment• Multiple Service
Applications
Upgradable
Review
Understand Forms of ECM Programming
Microsoft.Office.DocumentManagement
Microsoft.SharePoint.Taxonomy
Best Practices
© 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