programming with the sharepoint 2010 taxonomy api - sptechcon 2013

25
Code Tax: Programming With The Taxonomy API In SharePoint 2010 PATRICK TUCKER

Upload: patrick-tucker

Post on 01-Nov-2014

13 views

Category:

Technology


3 download

DESCRIPTION

presented at SPTechCon San Francisco 2013

TRANSCRIPT

Page 1: Programming with the SharePoint 2010 Taxonomy API - SPTechCon 2013

Code Tax: Programming With The Taxonomy API

In SharePoint 2010

PATRICK TUCKER

Page 2: Programming with the SharePoint 2010 Taxonomy API - SPTechCon 2013

About Me

• PATRICK TUCKER

• STRATEGIC DATA SYSTEMS, MS GOLD PARTNER

• PRINCIPAL CONSULTANT, SHAREPOINT

• MCT, MCTS, MCPD, MCITP, MCSD, MCAD, MCDBA

[email protected] | [email protected]

• BLOG: WWW.TUCKERSNET.COM

• TWITTER: @TUCKERSNET

Page 3: Programming with the SharePoint 2010 Taxonomy API - SPTechCon 2013

The Managed Metadata Experience

HOW DO WE INTERACT WITH MANAGED METADATA IN SHAREPOINT?

Page 4: Programming with the SharePoint 2010 Taxonomy API - SPTechCon 2013

Managed Metadata in SharePoint

• A WAY TO DO CLASSIFICATION OF CONTENT BASED ON ATTRIBUTES

• APPLIES TO DOCUMENTS, LIST ITEMS & PAGES AT THE COLUMN LEVEL

• ASSISTS SHAREPOINT IN BEING A DOCUMENT MANAGEMENT & COLLABORATION PLATFORM

• TAXONOMY AND FOLKSONOMY

Page 5: Programming with the SharePoint 2010 Taxonomy API - SPTechCon 2013

Where Is Managed Metadata Surfaced?

• MANAGED METADATA COLUMNS

• THE DOCUMENT INFORMATION PANEL

• THE TAXONOMY PICKER CONTROL

• SEARCH

Page 6: Programming with the SharePoint 2010 Taxonomy API - SPTechCon 2013

Managed Metadata and Taxonomy

• MANAGED METADATA SERVICE APPLICATION

• TAXONOMY TERM STORE

• TERM SETS

• MANAGED METADATA COLUMN TYPE

Page 7: Programming with the SharePoint 2010 Taxonomy API - SPTechCon 2013

Taxonomy Term Store

• AVAILABLE THROUGH MANAGED METADATA SERVICE

• COMPRISED OF SYSTEM OR ADMIN CREATED TERM SETS

• TERM SETS MAY BE GLOBAL OR LOCAL, OPEN OR CLOSED

• HIERARCHICAL

• GROUPS CONTAIN TERM SETS

• TERM SETS CONTAIN TERMS

• TERMS MAY HAVE A DEFAULT LABEL AND OTHER LABELS (SYNONYMS)

Page 8: Programming with the SharePoint 2010 Taxonomy API - SPTechCon 2013

Behind the Scenes

• TAXONOMIES ARE STORED IN A SINGLE DATABASE

• EACH ROOT SITE IN A SITE COLLECTION CONTAINS A “TAXONOMYHIDDENLIST”

• THE “TAXONOMY UPDATE SCHEDULER” TIMER JOB SYNCS HOURLY TO UPDATE THIS LIST

• TAXONOMY FIELD VALUES ARE IMPLEMENTED AS LOOKUP COLUMNS

• THE “MANAGED METADATA” FIELD IS ACTUALLY COMPRISED OF MULTIPLE COLUMNS

• TAXONOMYFIELD

• TAXKEYWORDTAXHTFIELD

• “TAXCATCHALL”

• “TAXCATCHALLLABEL”

Page 9: Programming with the SharePoint 2010 Taxonomy API - SPTechCon 2013

• PRACTICAL LIMITATIONS:

• NOT SUPPORTED IN INFOPATH FORMS

• NOT SUPPORTED IN SHAREPOINT WORKSPACE

• NOT SUPPORTED IN DATASHEET VIEWS

• LIMITED SUPPORT IN SPD WORKFLOWS

• PER TECHNET, THE RECOMMENDED STORAGE GUIDELINES ARE:

• MAX 7 LEVELS OF NESTING IN A TERM STORE

• MAX 1000 TERM SETS IN A TERM STORE

• MAX 30,000 TERMS IN A TERM SET

• MAX 1 MILLION TOTAL ITEMS IN A TERM STORE

Managed Metadata Limitations

Page 10: Programming with the SharePoint 2010 Taxonomy API - SPTechCon 2013

The Taxonomy API

WORKING WITH THE MANAGED METADATA SERVICE PROGRAMMATICALLY

Page 11: Programming with the SharePoint 2010 Taxonomy API - SPTechCon 2013

Options

• SERVER SIDE OBJECT MODEL (MICROSOFT.SHAREPOINT.TAXONOMY)

• SORRY, NOT AVAILABLE TO SANDBOXED SOLUTIONS

• THE TAXONOMY CLIENT SERVICE

• DECLARATIVE XML

• POWERSHELL

Page 12: Programming with the SharePoint 2010 Taxonomy API - SPTechCon 2013

Object Model

• NEED TO REFERENCE MICROSOFT.SHAREPOINT.TAXONOMY DLL

• ENTRY POINT IS A NEW TAXONOMY SESSION, CONNECTS TO MMS INSTANCE

• CLASSES IN TAXONOMY NAMESPACE MIRROR HIERARCHY SEEN IN TERM STORE MANAGEMENT TOOL

• TAXONOMYSESSION CLASS

• TERMSTORE CLASS

(TAKES NAME OF MMS PROXY)

• GROUP CLASS

• TERMSET CLASS

• TERM CLASS

(MAY CONTAIN NESTED TERMS)

Page 13: Programming with the SharePoint 2010 Taxonomy API - SPTechCon 2013

MMS Instance Term Store Groups Term Sets Terms

So The Hierarchy Is…

Page 14: Programming with the SharePoint 2010 Taxonomy API - SPTechCon 2013

Terms, Keywords and Synonyms

• TERMS ARE EITHER MANAGED TERMS OR ENTERPRISE KEYWORDS

• EACH TERM MAY BE MARKED AS AVAILABLE FOR TAGGING

• EACH TERM HAS A DEFAULT LABEL

• SYNONYMS ARE ADDED UNDER THE “OTHER LABELS” SECTION

• SYNONYMS ARE EXPOSED IN CODE THROUGH A LABELS COLLECTION ON EACH TERM. THE DEFAULT LABEL IS THE FIRST TERM IN THE COLLECTION.

Page 15: Programming with the SharePoint 2010 Taxonomy API - SPTechCon 2013

Creating New Term Store Items In Code

• GET A REFERENCE TO SESSION . . . TERM STORE

• THE TERMSTORE CLASS CONTAINS A CREATEGROUP METHOD

• THE GROUP CLASS CONTAINS A CREATETERMSET METHOD

• THE TERMSET CLASS CONTAINS A CREATE TERM METHOD

• ADDING ITEMS TO THE TERM STORE IS TRANSACTIONAL. WE MUST REMEMBER TO CALL “COMMITALL()”

Tips to Remember . . .

Page 16: Programming with the SharePoint 2010 Taxonomy API - SPTechCon 2013

DEMO

• TRAVERSE THE HIERARCHY OF GROUPS, TERM SETS AND TERMS

• DISPLAY THE HIERARCHY IN A TREE VIEW CONTROL VIA A CUSTOM WEB PART

• CREATE A NEW GROUP, TERM SET AND TERMS PROGRAMMATICALLY

• RETRIEVE AND DISPLAY THE NEWLY CREATED TERMS

Page 17: Programming with the SharePoint 2010 Taxonomy API - SPTechCon 2013

The Taxonomy Client Service

• THE TAXONOMYCLIENTSERVICE.SVC IS AVAILABLE, BUT LIMITED

• OPERATIONS TO RETRIEVE TERM STORE ITEMS AND ADD TERMS ARE AVAILABLE

Page 18: Programming with the SharePoint 2010 Taxonomy API - SPTechCon 2013

Taxonomy Client Service

• NAVIGATE TO HTTP://SITECOLLECTIONURL/_VTI_BIN/TAXONOMYCLIENTSERVICE.ASMX

• DO YOU KNOW THE GUIDS OF YOUR TERM STORE AND TERM SET?

• XML PARSING IS IN YOUR FUTURE

Page 19: Programming with the SharePoint 2010 Taxonomy API - SPTechCon 2013

The Taxonomy Field Type

• CUSTOM LIST DEFINITIONS WILL NEED TO CREATE THE FIELD – DECLARATIVELY OR PROGRAMMATICALLY (OR BOTH)

• THIS FIELD IS EXPOSED IN THE UI VIA THE TAXONOMY PICKER CONTROL

• PAGE LAYOUTS MAY ALSO MAKE USE OF THIS FIELD TYPE TO TAG PAGES AS WELL AS ITEMS AND DOCUMENTS

Page 20: Programming with the SharePoint 2010 Taxonomy API - SPTechCon 2013

Implementing a Taxonomy Field in a Custom List

• DECLARATIVE APPROACH

• WILL NEED SSPID AND TERM SET GUIDS IN XML

• PROGRAMMATIC APPROACH

• ALSO WORKS WITH PARTIAL DECLARATIVE CODE

Create site columns (taxonomy & note

field)

Create content type and reference the columns

Link the taxonomy

field up to a term set

Page 21: Programming with the SharePoint 2010 Taxonomy API - SPTechCon 2013

The Taxonomy Picker Control

• ALLOWS THE USER TO SELECT TERM(S) TO TAG CONTENT

• THE CONTROL SHOWS UP ON NEW AND EDIT FORMS

• THE CONTROL MAY BE USED ON CUSTOM PAGE LAYOUTS

Page 22: Programming with the SharePoint 2010 Taxonomy API - SPTechCon 2013

DEMO

• USE THE TAXONOMY WEB SERVICE TO DISPLAY TERM STORE ITEMS

• CREATE A CUSTOM LIST DEFINITION THAT CONTAINS A MANAGED METADATA COLUMN

• VIEW A PAGE LAYOUT TO SEE THE ATTACHED TAXONOMY TERM

Page 23: Programming with the SharePoint 2010 Taxonomy API - SPTechCon 2013

The Undiscovered Country

WHAT’S NEW WITH MANAGED METADATA IN SHAREPOINT 2013?

Page 24: Programming with the SharePoint 2010 Taxonomy API - SPTechCon 2013

So What’s Changed in 2013?

• MANAGED METADATA NAVIGATION

• TERMS INTENDED USE MAY BE FOR NAVIGATION

• TARGET PAGES ARE ATTACHED TO TERMS AND DRIVE THE NAVIGATION OF THE SITE

• CSOM – CLIENT SIDE OBJECT MODEL SUPPORT

• AVAILABLE TO .NET, SILVERLIGHT AND JAVASCRIPT

• PROJECTS MAY REFERENCE THE MICROSOFT.SHAREPOINT.CLIENT.TAXONOMY ASSEMBLY

• DATASHEET VIEW SUPPORT FOR THE MANAGED METADATA COLUMN TYPE

• CUSTOM PROPERTIES MAY BE ADDED TO A TERM TO STORE ADDITIONAL DATA

• MORE THAN JUST ADDITIONAL LABELS, THIS IS A DICTIONARY OF METADATA FOR YOUR METADATA

Page 25: Programming with the SharePoint 2010 Taxonomy API - SPTechCon 2013

Q and A

[email protected] | [email protected]

• BLOG: WWW.TUCKERSNET.COM

• TWITTER: @TUCKERSNET