web content management - collabcon 2015 - web... · performances complete works ... friendly url an...

145
Web Content Management Peter Carson March 11, 2015

Upload: lekhuong

Post on 30-Jun-2018

213 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Web Content Management - CollabCon 2015 - Web... · Performances Complete Works ... Friendly URL An SEO friendly URL defined in the term store for a page, rather than ... What’s

Web Content Management

Peter Carson

March 11 2015

Peter Carson

President Envision IT

SharePoint MVP

Virtual Technical Specialist Microsoft Canada

peterenvisionitcom

httpblogpetercarsonca

wwwenvisionitcom

Twitter carsonpeter

VP Toronto SharePoint User Group

Envision IT

PublicWebsites

Intranets Staff Portals

Extranets Member Portals

bull Easy delegation of user management to business

bull Self-registration approvals forgotten password reset

bull Simplified login for both internal and external users

Extranet User Manager

Agenda

Web Site Gallery

Envision Shakespeare Project

Whats New in WCM

Search

Adaptive Web Design

Open Source Tools

REST Search and Handlebars

Web Site Gallery

OMA Insurance

Media Experts

The Travel Corporation

Shakespeare Reference Project

wwwenvisionitcomshakespeare

Download the zip file for all the artifacts MindMap

Axure wireframe

Word Functional Spec

Visual Studio projects

PowerShell deployment scripts

Term store exportimport tool and XML data

Term store navigation control

Content

High Level Overview

Prod httpsshakespeareenvisionitcom

Dev Integration httpsshakespearedevenvisionitcom

News

Events

Productions

Performances

Complete Works Plays

‒ Comedy

‒ History

‒ Tragedy

Poetry

Adaptive Design

Built Using Twitter Bootstrap V3

Smartphone Portrait Tablet and Desktop breakpoints

Switches to fluid responsive design below smartphone resolution

Navigation and Friendly URLs

Term store used for navigation and friendly URLs

Server side control outputs HTML for top nav left nav and breadcrumb

Plan is to convert to client-side to support Office 365

Term Store Setup

Two groups used to separate metadata from navigation

Metadata group setup globally

Static GUIDs consistent through all environments

Navigation group setup at the site collection level

Allows multiple copies for multiple sites on the farm

Open Source Tools and Resources

HTML CSS JavaScript jQuery

httpwwww3schoolscom

httpgetbootstrapcom

httphandlebarsjscom

httpknockoutjscom

httpsangularjsorg

httpmomentjscom

Build Process

Complete script is the master script to setup the site

On a new farm it creates the web app and site collection

If the site collection exists it should not affect any content

Useful for updating branding and web parts

TFS build should run this

Need to explicitly force the full run

General Project Process

Create run and test the scripts on your own developer VM

When ready run on dev integration to setup site

Content authoring can happen on dev integration

Script the extraction of content

Compare to TFS and check in as required

Always back up your content authoring site before re-running a full build

Complete Script

Check and create the web app Check and create the site collection Import the term store Set the term store navigation Build the site structure Populate the content Catalogs Search Branding Web Parts

Other Scripts

Set Environment

Defines parameters for each of the environments

Typically has defaults intended for VM13 developer environment

Export the term store to XML

Export list or library content

Overview of ESC Scripts

ESCBuilder_DeployPackages

ESCBuilder_Helper

ESCBuilder_PopulateStructureContent

ESCBuilder_Search

Design Phase

MindMap Information Architecture

Axure Wireframes

PhotoShop or Illustrator Creative Designs

Site Columns and Content Types

Create directly through the SharePoint UI

Senior Consultant can do this in an initial empty devintegration environment

Export script exports these to XML files

Import into target envionments

Typically need Term Store configured as well for Managed Metadata columns

Branding Files

No longer in a Visual Studio WSP package

Simply a collection of files in the Builder folder

Still managed through TFS

Build script uploads and publishes these to the target site

Can edit directly against SharePoint by opening in Windows Explorer

Need to be careful about updating TFS

Export will export the branding files but has farm information in the files that makes it difficult to compare against TFS

Catalogs

Three main steps

Enabling lists or libraries as catalogs

Creating the catalog connection

Building the page layouts to display the category rollups or item detail pages

Enabling Catalogs

Doesnrsquot have to be a list can be a document Images or Pages library

Experimenting using a Pages library

This gives us draft and published states that lists donrsquot support

Preview and editing is easier

Fairly simple script to do this

Needs a full crawl after doing this

Creating the Catalog Connection

Rishan did some great work here

Scripts establish the connection and also update the term store as required

SharePoint Catalog Page Layouts

Uses the CSWP and Content Reuse web parts

Result sources defined in Search for each catalog connection

GUIDs for the result sources different in each farm and need to be updated as part of the deployment

REST Search Catalog Pages

HTML with data attributes on page layouts or in Reusable HTML

jQuery detects this

Builds a REST Search query based on the attributes and URL

Calls SharePoint

Uses Handlebars to format the results

Product Replacements

Video Player is part of the lib structure

Needs references added to the master page

Any hyperlink to an MP4 file launches the video popup

Image Rotator

Jeff is working on standardizing some jQuery slider options

Photo Viewer

No plans just yet

All of these will be part of the ESC package

Starting a New Project

Copy the five ESC scripts from $Envision Shakespeare CompanyBuilder Do not rename

Copy the ShakespeareBuild scripts Rename to your project Update the steps as required for your project

Create the infrastructure WSP Site columns content types list definitions and instances

Manually create the pages and assets that are needed in SharePoint Manually create the term store for metadata and navigation Script the extraction to TFS of content and term store Create the branding WSP Manually create any required web parts Export to TFS and script the placement of the web parts on the pages

ESC Scripts Next Steps

Incorporate TMX additions Farm property bag instead of webconfig Audiences Subsites Available layouts Permissions Extract folders and lists

Continue reconciling additional projects in OMA TMX Christie Medical

Full header blocks and commenting Version numbers Complete the catalog connection script Office 365 support

Links

wwwenvisionitcom

blogpetercarsonca

wwwenvisionitcomshakespeare

httpsShakespeareenvisionitcom

wwwbgccancom

wwwproblemgamblingca

wwwrusselmetalscom

wwwtarioncom

wwwtransamericaca

wwwcollegeofececa

wwwsamuelcom

wwwthewaterfrontpropertiesca

wwwshopsatdonmillsca

wwwfuturesherwaygardensca

wwwpublichealthontarioca

SharePoint WCM Glossary

SharePoint Glossary

Term Definition

SharePoint Farm A set of SharePoint servers that share a single configuration database

Web Application A top level container and entry-point URLs for site collections

Site Collection A set of Web sites that are in the same content database have the same owner and share administration settings A site collection can be identified by a GUID or the URL of the top-level site for the site collection Each site collection contains a top-level site can contain one or more subsites and can have a shared navigation structure

Path Based Site Collection A site collection under a managed pathhttpwebappsitessitecollection

Host Named Site Collection A site collection with its own unique URL Must be created through PowerShell

Site Subsite under a site collection

Site Template A template for a single site that has been saved from another site Site templates may or may not contain content Templates cannot be created from publishing sites

SharePoint Glossary

Term Definition

Site Column A single field that can store information of a particular typebull Textbull Choicebull Numberbull hellipDefined at the site collection level

Content Type A content type is a reusable collection of Site Columns that can be applied to a certain category of content Content types enable the management of metadata and behaviors of a document or item type in a centralized reusable way Basically content types include the columns (or fields) that are applied to a certain type of content plus other optional settings such as a document template

Document Set New content type in SharePoint 2010 A document set is a container for multiple documents to which you can assign certain metadata and treat as a single entity in many ways In addition a document set can contain one or more different content types

SharePoint Glossary

Term Definition

List A container for list content types or custom list items Columns can be defined via content types or directly in the list

Document Library A SharePoint list that contains documents where you can create collect update and share files with others Like lists columns can be defined via content types or directly in the list

Form Library A special type of library to facilitate the interaction with InfoPath forms

Asset Library A library typically used to store image audio and video files

List Template A template used to define the configuration of a list or library Templates can be saved with or without content

SharePoint Glossary

Term Definition

Term Store An instance of the Managed Metadata Service This can be shared between sites site collections web applications or farms

Group A collection of term sets

Term Set A collection of related terms

Term A word or a phrase that can be associated with a SharePoint item

Friendly URL An SEO friendly URL defined in the term store for a page rather than the physical URL of where the page is stored (Pages)

SharePoint Glossary

Term Definition

Design Manager 2013 feature used to manipulate WCM artifacts

Master Page Defines elements that are common to all pages such as the header navigation and footer

Page Layout Defines the layout of a particular style of page such as news or events Each page content type can have one or more layouts associated with them

Web Parts Functional elements that can be added to pages typically for dynamic content

Apps Similar to web parts but run outside of SharePoint while beinghosted in the SharePoint page

Publishing Site Page Rendering

FileName

Welcomeaspx

PageLayout

PageLayoutaspx

Title

Welcome To News

Body

Lorem ipsum dolor sit

Image

ImagesChairjpg

1 Welcomeaspx page is

requested

2 Page layout associated with

page is retrieved

3 Master page associated with site

is retrieved

4 Controls in page layout render

content from pagersquos fields into the page

MasterPagemaster

PageLayoutaspxTitle

BodyImage

Date

ByLine

Field Control

FieldControl

Field ControlField ControlField Control

Field Control

httpfoocombarpageswelcomeaspx

SharePoint Glossary

Term Definition

Cross-Site Publishing Publishing from an authoring site collection to one or more publishing site collections

Catalog A list that has been published as a catalog

Category Page A page that displays a rollup of catalog items

Catalog Item Page A page that displays a single item from a catalog

Display Template Used to format the results on search pages in content search web parts and on category pages

Whatrsquos New in Web Content

Management

Easier Page Authoring With Cut and Paste

Drag and Drop Files

Drag and drop files from Windows Explorer into the browser or the other way

Doesnrsquot support folders or document sets

Open in Windows Explorer still works best for this

Requires IE10 or current versions of Chrome Safari or Firefox

IE8 and 9 supported with Office 2013 installed

Image Renditions

Display uploaded images in predefined sizes widths and crops

Multiple renditions stored in document sets

Content author can create renditions (including crops) in the browser

Design Manager

New way to build master

pages and layouts

SharePoint Designer no

longer required

Edit and preview in any HTML

editor

Automatically creates the associated

master page and aspx

layouts

Package into a Design

Package WSP for

deployment

Snippet Gallery

Select components

such as search box or

navigation control

Configure its properties

Paste the snippet into your HTML

master page or layout

Changes synched to

actual master pages and layouts to convert to SharePoint

components

Can be used by any web design

tool

Device Channels

Map channels to mobile devices or browsers

Alternate master pages

can be assigned

Page layouts can include or

exclude content based

on channel

Display Templates

Used to customize the

presentation of search results

No more XSLT

Three templates

bull Control ndash Overall structure of search results

bull Group ndash Show groups of results

bull Item ndash How each result is presented

Navigation and Friendly URLs

Site navigation driven by managed metadata

Term store used for navigation and SEO-friendly URLs

Connect site navigation to business concepts rather than site structure

Server side control outputs HTML for top nav left nav and breadcrumb

Plan is to convert to client-side to support Office 365

Term Store Setup

Two groups used to separate metadata from navigation

Metadata group setup globally

Static GUIDs consistent through all environments

Navigation group setup at the site collection level

Allows multiple copies for multiple sites on the farm

Search

Search is new and different from all previous versions of SharePoint

The platform has been consolidated Built on a combination of FAST Search and SharePoint Search components as well as new development work ndash it is the

same from Foundation to Server

Foundation Search is intended to replace WSS Search Microsoft Search Server and Search Server Express from previous versions of SharePoint

Itrsquos used pervasively throughout the product now in many different ways in different features eDiscovery navigation topic pages Internet facing business sites etc

Search in SharePoint 2013

Single Extensible Platform

FAST Engine

SharePoint Crawler

Best of both

Same Search Platform in both SharePoint and Exchange

Enterprise Search

Search Page Web parts added to a publishing page

Catalogs Cross-site publishing

Library search Executes in place on the library

Site Search _layouts15osssearchresultsaspx Specifies the site and search parameters

Search Centre Basic Search Center - SharePoint Foundation 2013 Enterprise Search Center - SharePoint Server 2013

Content Search Web Part

Similar in concept to the Content Query Web Part

Many advantages

Can go across sites site collections web apps even farms

Leverages the search index -gt very scalable

Query Builder makes it easy to define your results

Use Display Templates to customize the look and feel No more XSLT

Part of the Enterprise CAL

Pre-Configured CSWPs

Popular Items Shows items that have been recently viewed by many users

Recently Changed Items Shows items that have been modified recently This can help site users

track the latest activity on a site or a library

Recommended Items Show content recommendations based on usage patterns for the current

page

All of these can be further configured by editing their properties and changing the search criteria

Search Results Web Part

Similar functionality to the Content Search Web Part

Doesnrsquot allow property mapping in the web part configuration

Mapping is controlled in the Display Template

Part of the Standard CAL

Category Page Item Page

Catalogs

wwwcontosocomproductsAudio-Liware2g

Catalogs

Results

Consistent Displays

Manage content in one place

No need to create

pages

No need to format

Metadata Navigation

Cross-Site Publishing

Reuse content between different sites including site collections and farms

Catalogs can surface lists into publishing sites onto a category page and item pages

Can be surfaced through the Content Search Web Part

No need to create and publish web pages

Create custom friendly URLs

Metadata based navigation base

Cross Site Publishing

Job Posting

Job Posting

Job Posting

Job Posting

Simcoe County District School Board

50000 students

Over 6000 employees

Board office in Barrie

Bordered by the Holland Marsh in the south the Trent-Severn Waterway in the east Grey County in the west and Muskoka in the north

Simcoe County District School Board

119 schools and centres 87 elementary 16 secondary 6 learning centres 10 alternative

Each needs their own web site Being built on SharePoint 2013 Elementary panel first Each has their own unique URL Content authored both at the school and centrally from the board

wwwscdsbonca Pre-existing SharePoint 2010 site Future goal is to rebuild in SharePoint 2013

Business Challenge

100+ public web sites

No standardization on style technology or content

No ability for the board to push content to the school sites

Outdated sites

Not mobile or AODA compliant

Site Features

Fully Adaptivemobile design Robust Search functionality Template makes it fast and efficient to add new school sites News and events can be targeted by the Board to any number of

school sites Target by panel weather zone trustee language Presented in a blended view with the school news and events

Home page rotator links hours content pages all managed by the school staff

SEO-friendly URLs

News

School news entered by school staff

Board news entered in the board site

Rendered using cross-site publishing

High-priority alerts can be flagged to highlight on the site

Bus or school cancellations

Events

Single and multi-day events

School and board managed like news

Adaptive calendar

School Picker

Used to pick which schools to target news and events to

Schools are tagged through the term store

Target by panel weather zone trustee language

Can override and add or remove individual schools

Search

Catalogs

Three main steps

Enabling lists or libraries as catalogs

Creating the catalog connection

Building the page layouts to display the category rollups or item detail pages

Enabling Catalogs

Doesnrsquot have to be a list can be a document Images or Pages library

Experimenting using a Pages library

This gives us draft and published states that lists donrsquot support

Preview and editing is easier

Fairly simple script to do this

Catalog connections are more complex

Create the connection

Fix up the Term Store

Create the Category and Item page layouts and pages

SEO Enhancements

Friendly URLs

Home page redirects

XML sitemaps automatically generated and updated

Custom SEO properties

Usage Analytics

Built for scale from the ground up Detail data rolled up every 15 days amp anonymized Daily events purged every 15 days monthly events after 3 years Lifetime counts always retained

Counts views amp unique itemsday Shows recent (2-weeks) and lifetime count Trims least visited content Pushes aggregate data to reporting database

Drives recommendations capabilities on content Calculations injected into search index as sortable managed properties Deep integration with search engine Can influence search relevance based on content usage

Variations and Multi-Lingual

Export and import content for translation in XLIFF format

Pages

Labels

List items

Navigation

Bing translation service comes with active SharePoint 2013 license

Adaptive Web Design

Adaptive vs Responsive

Adaptive

Fixed breakpoints‒ Desktop gt 980 px

‒ Table portrait gt 768 px

‒ Phone to tablet gt 480 px lt 768 px

‒ Smartphone lt 480 px

Responsive

No fixed breakpoints

Design fluidly adapts to whatever width the browser is

We generally do a hybrid approach with responsive design in the under 768 pixel situation

Design Approaches in SharePoint

Adaptive Design through CSS media queries

Broader standards approach used outside of SharePoint

Keeps a single master page and CSS

Some unnecessary components may still be loaded

Device Channels SharePoint specific approach

Assign different master pages to different device channels

Rules define what devices use which channels

Device Channel Panels can also target content to channels

Hybrid here can also make sense Device channels can be used to remove unnecessary items from the page payload

Our Adaptive Approach

Built using the Twitter Boostrap CSS framework

twittergithubcombootstrap

Provides a responsive design framework for supporting PC Mac tablet and mobile

We enhanced to provide better touch navigation support

Can be leveraged in the master page page layouts and display templates

Incorporated into the SharePoint 2013 Design Master

HTML based master page that can be edited with any tool

SharePoint converts to a master page when uploaded or saved

Additional Open Source Tools and Resources

HTML CSS JavaScript jQuery

httpwwww3schoolscom

httpgetbootstrapcom

httphandlebarsjscom

httpknockoutjscom

httpsangularjsorg

httpmomentjscom

Content Search Web Part

Web part is configured to return search results

Executed as client-side code in the browser

Pair of display templates map the data returned to HTML

Control template for the overall structure

Item template for each item returned

HTML Designer Manager files are compiled to JavaScript

REST Search and Handlebars

Search is accessible through REST calls

httpsiteurl_apisearchquery

Returns results as a JSON array

Handlebars is a templating engine to format that

Conceptually similar to display templates with control and item sections

jQuery glues this all together

Steps to Experiment

F12 to get into Developer Toolbar

Set a breakpoint where the REST URL is determined

Copy the value

Paste into the REST Search test window

Experiment with the query

Adjust the Handlebars template appropriately

Search Setup

Content Sources to define and schedule the crawls

Crawl logs to review success

Search Schema to define the managed properties

Reusable Content

Snippets of HTML that can be reused throughout the site

JavaScript can be intelligent and use the URL to determine its behaviour

Makes it easy for content authors to drop pre-configured dynamic content onto pages

Topic Pages

Shows all items that match a topic

Could be hundreds of virtual pages

Only one template page

Easily customizable and SEO friendly (each topic appears to be its own page)

Content by search web part open search against a query or result source

May be able to surface the topic pages themselves as site search results

Public Health Ontario

httpwwwpublichealthontariocaenBrowseByTopicPagesTopicaspxk=Influenza20InformationByTopic22Influenza22

Ontario Association of Childrens Aid Societies

Application Lifecycle Management

Purpose

How do we build a solid SharePoint development environment for the enterprise

How do a number of developers work together on a SharePoint project

How does code and content move through a dev test and production lifecycle

What is Agile and Continuous Integration and why is it important

Visual Studio and Team Foundation Server

Visual Studio 2010 is the development platform for coding on SharePoint 2010

Team Foundation Server integrates with Visual Studio to provide a repository for code test and other project artifacts

It facilitates teamwork by providing a common place for developers to work together

Provisioning SharePoint Farms

Provisioning SharePoint Farms

Every developer needs their own complete SharePoint farm

Teams need a dev integration farm to bring their work together on

A full architecture needs QA and production farms as well

Envision IT Virtualization Architecture

Developer VM Template

SharePoint Server 2010 Enterprise

SP1 and August CU

Visual Studio 2010 Premium SP1

Office 2010 Professional Plus SP1

SharePoint Designer 2010 SP1

Fiddler

SQL Server 2008 R2 SP1

Creating a new Developer VM

Open System Centre Virtual Machine Manager

Create Virtual Machine

Choose the Developer VM template

Set the virtual machine name and options

Create and start the VM

Creating a new Developer VM - Step 2

Developer RDPs to their new VM Complete the SQL Server installation

Create the default instance Set the service account(s) Set the authentication mode and server administrators

Update the AutoSPInstallerInputxml file Set the machine name for the default sites and database server Set the service account passwords

Run the AutoSPInstallerLaunch batch file Do a Health check review

Creating a new Developer VM - Step 3

Start Visual Studio

Connect to the Team Foundation Server

Setup your workspaces

Use a standard naming convention across your team

CDevelopmentTFSCollection

Other Environments

Dev Integration QA and Production can all be built using AutoSPInstall

Donrsquot need or want the Visual Studio or Office tools on these servers

We have a base template we use for dev integration servers

QA should match the Prod architecture as closely as possible

High availability with load balancing clustered SQL app servers DMZ hardening Internet publishing

Agile Development

Agile with Team Foundation Server

Creating Your TFS Project

Open Visual Studio

Make sure you are connected to the right Team Project Collection

In Team Explorer right-click the top collection and create a new Team Project

Use the Scrum 10 template

Go into the Areas and Iterations Delete the extraneous releases and sprints

Create a product backlog iteration

Start adding your stories and tasks

Continuous Integration

Continuous Integration

Automated Testing

SharePoint Site Elements

Site structure Site columns content types subsites lists libraries

Branding elements Master pages layouts CSS XSLT supporting images

Custom web parts Page and site content Web part instances Search Workflows Business Connectivity Services Managed Metadata

SharePoint Site Elements ndash Part 2

Access Excel Word Visio

PerformancePoint

Document conversions

Timer jobs

Secure Store Service

User profiles

Site Structure

bull Site columns

bull Define the fields that are used by content types

bull Content types

bull Defines collections of site columns for different types of content

bull Subsites

bull The hierarchy of sites that make up the site collection

bull Lists and Libraries

bull The lists and libraries for each subsite

Site Structure ndash Part 2

Site columns and content types can be programmatically or manually created If they are going to be used in multiple site collections they should be

programmatically created

If a single site collection they can be created manually in a master site collection

GUIDs cannot be manually set and code may need them to be consistent

You can create them manually in SharePoint save the site as a template and import them into Visual Studio to create a proper WSP package

Site Structure ndash Part 3

Site structure can also be done either programmatically or manually

Many sites are complex and it is error prone to create manually

We use our own SiteModelBuilder tool to create the site structure

Site Structure ndash Part 4

For all site structure elements changes can also be manual or programmatic It is useful to be able to delete the whole site collection and recreate it

programmatically As soon as content starts being authored in SharePoint it becomes difficult

or impossible to do that

After content authoring has started Site column and content type changes need to be programmed explicitly

(you canrsquot just drop the content type and recreate it) Site structure changes are usually done manually at this point Changes need to be backed up and restored

Change Management

Page and Site Content

Page and site content is entered directly into SharePoint by the content authors Web pages images PDFs list content etc This should be done in the master site separate from where dev integration is

happening Care needs to be taken with this site once authors start working Make sure it is part of your production backup plan

Periodically back it up and restore it to the dev integration and developer VMs

Alternatively script the export and import Ultimately it will be backed up and restored to the QA and production

farms

Change Management

Change Management

Change Management

Change Management

Web part instances

Web parts ultimately get placed on pages

The configuration of the web parts can often get quite complex

You may want to disable editing of web parts for general content authors

They end up in a grey zone between code and content

Web part instances ndash Part 2

We created our own internal tool to export and import web parts

Each web partrsquos configuration can be exported into a webpartfile

We scripted the extraction from the dev integration

webpart files are treated like code and checked into TFS for version control

Script then applies the new webpart files to the target environment

Workflows

Workflows can be built using SharePoint Designer Visual Studio or third-party tools (Nintex or K2 primarily)

Visual Studio workflow projects are automatically packaged as WSP solution files Simply deploy the WSP file to the other environments

SharePoint Designer workflows need to be deployed using SharePoint Designer This means you need SPD access to production which is not always possible

You can load the SPD workflow into Visual Studio to package it but you lose the ability to edit it in SPD

If you use third-party tools yoursquoll need to define the process for that as well

Business Connectivity Services

BCS can be built using either SharePoint Designer or Visual Studio Visual Studio BCS projects are automatically packaged as WSP

solution files Simply deploy the WSP file to the other environments You can also export the BDC metadata model in the BDC service

application

SharePoint Designer doesnrsquot create a WSP and it doesnrsquot make a complete BDC metadata model You need to export and import using SharePoint Designer

In both cases you still need to deal with connection and configuration information

Future Directions

Visual Studio Lab Management

Integrates the management of HyperV environments in with Visual Studio and Team Foundation Server

Can automate the provisioning of lab environments for automated testing

Test failures can snapshot entire environments to make reproduction of errors much easier

Summary

Yoursquore going to have lots of SharePoint environments ndash figure out how to build them quickly and repeatable

Code and content often move in opposite directions through dev QA and Prod PowerShell script and automate to keep this simple

Agile is a great way to run projects

Continuous integration with automated testing is key to its success

There are lots of parts of SharePoint that you donrsquot code through Visual Studio Figure out how you move those through your environment

Other Topics

Site Design

Information architecture

Wireframes

Creative designs ndash Mobile first

Catalogs deep dive

Site build PowerShell scripts

Team Foundation Server and Application Lifecycle Management

Starting a new project

Managing content authoring

Site Improve tool

SEO Optimizations

Analytics options

Retaining Page Ranks with permanent redirects (301)

Azure SharePoint Hosting

Q amp A

Session Evaluations

Go to Evaluations on the home page of wwwcollabconorg

It is important to get your feedback

Please fill out evaluations for all the sessions you attend

Following the conference a random drawing from all completed evaluations will be selected

The winner will receive a $250 Future Shop gift card valid online or in store

Page 2: Web Content Management - CollabCon 2015 - Web... · Performances Complete Works ... Friendly URL An SEO friendly URL defined in the term store for a page, rather than ... What’s

Peter Carson

President Envision IT

SharePoint MVP

Virtual Technical Specialist Microsoft Canada

peterenvisionitcom

httpblogpetercarsonca

wwwenvisionitcom

Twitter carsonpeter

VP Toronto SharePoint User Group

Envision IT

PublicWebsites

Intranets Staff Portals

Extranets Member Portals

bull Easy delegation of user management to business

bull Self-registration approvals forgotten password reset

bull Simplified login for both internal and external users

Extranet User Manager

Agenda

Web Site Gallery

Envision Shakespeare Project

Whats New in WCM

Search

Adaptive Web Design

Open Source Tools

REST Search and Handlebars

Web Site Gallery

OMA Insurance

Media Experts

The Travel Corporation

Shakespeare Reference Project

wwwenvisionitcomshakespeare

Download the zip file for all the artifacts MindMap

Axure wireframe

Word Functional Spec

Visual Studio projects

PowerShell deployment scripts

Term store exportimport tool and XML data

Term store navigation control

Content

High Level Overview

Prod httpsshakespeareenvisionitcom

Dev Integration httpsshakespearedevenvisionitcom

News

Events

Productions

Performances

Complete Works Plays

‒ Comedy

‒ History

‒ Tragedy

Poetry

Adaptive Design

Built Using Twitter Bootstrap V3

Smartphone Portrait Tablet and Desktop breakpoints

Switches to fluid responsive design below smartphone resolution

Navigation and Friendly URLs

Term store used for navigation and friendly URLs

Server side control outputs HTML for top nav left nav and breadcrumb

Plan is to convert to client-side to support Office 365

Term Store Setup

Two groups used to separate metadata from navigation

Metadata group setup globally

Static GUIDs consistent through all environments

Navigation group setup at the site collection level

Allows multiple copies for multiple sites on the farm

Open Source Tools and Resources

HTML CSS JavaScript jQuery

httpwwww3schoolscom

httpgetbootstrapcom

httphandlebarsjscom

httpknockoutjscom

httpsangularjsorg

httpmomentjscom

Build Process

Complete script is the master script to setup the site

On a new farm it creates the web app and site collection

If the site collection exists it should not affect any content

Useful for updating branding and web parts

TFS build should run this

Need to explicitly force the full run

General Project Process

Create run and test the scripts on your own developer VM

When ready run on dev integration to setup site

Content authoring can happen on dev integration

Script the extraction of content

Compare to TFS and check in as required

Always back up your content authoring site before re-running a full build

Complete Script

Check and create the web app Check and create the site collection Import the term store Set the term store navigation Build the site structure Populate the content Catalogs Search Branding Web Parts

Other Scripts

Set Environment

Defines parameters for each of the environments

Typically has defaults intended for VM13 developer environment

Export the term store to XML

Export list or library content

Overview of ESC Scripts

ESCBuilder_DeployPackages

ESCBuilder_Helper

ESCBuilder_PopulateStructureContent

ESCBuilder_Search

Design Phase

MindMap Information Architecture

Axure Wireframes

PhotoShop or Illustrator Creative Designs

Site Columns and Content Types

Create directly through the SharePoint UI

Senior Consultant can do this in an initial empty devintegration environment

Export script exports these to XML files

Import into target envionments

Typically need Term Store configured as well for Managed Metadata columns

Branding Files

No longer in a Visual Studio WSP package

Simply a collection of files in the Builder folder

Still managed through TFS

Build script uploads and publishes these to the target site

Can edit directly against SharePoint by opening in Windows Explorer

Need to be careful about updating TFS

Export will export the branding files but has farm information in the files that makes it difficult to compare against TFS

Catalogs

Three main steps

Enabling lists or libraries as catalogs

Creating the catalog connection

Building the page layouts to display the category rollups or item detail pages

Enabling Catalogs

Doesnrsquot have to be a list can be a document Images or Pages library

Experimenting using a Pages library

This gives us draft and published states that lists donrsquot support

Preview and editing is easier

Fairly simple script to do this

Needs a full crawl after doing this

Creating the Catalog Connection

Rishan did some great work here

Scripts establish the connection and also update the term store as required

SharePoint Catalog Page Layouts

Uses the CSWP and Content Reuse web parts

Result sources defined in Search for each catalog connection

GUIDs for the result sources different in each farm and need to be updated as part of the deployment

REST Search Catalog Pages

HTML with data attributes on page layouts or in Reusable HTML

jQuery detects this

Builds a REST Search query based on the attributes and URL

Calls SharePoint

Uses Handlebars to format the results

Product Replacements

Video Player is part of the lib structure

Needs references added to the master page

Any hyperlink to an MP4 file launches the video popup

Image Rotator

Jeff is working on standardizing some jQuery slider options

Photo Viewer

No plans just yet

All of these will be part of the ESC package

Starting a New Project

Copy the five ESC scripts from $Envision Shakespeare CompanyBuilder Do not rename

Copy the ShakespeareBuild scripts Rename to your project Update the steps as required for your project

Create the infrastructure WSP Site columns content types list definitions and instances

Manually create the pages and assets that are needed in SharePoint Manually create the term store for metadata and navigation Script the extraction to TFS of content and term store Create the branding WSP Manually create any required web parts Export to TFS and script the placement of the web parts on the pages

ESC Scripts Next Steps

Incorporate TMX additions Farm property bag instead of webconfig Audiences Subsites Available layouts Permissions Extract folders and lists

Continue reconciling additional projects in OMA TMX Christie Medical

Full header blocks and commenting Version numbers Complete the catalog connection script Office 365 support

Links

wwwenvisionitcom

blogpetercarsonca

wwwenvisionitcomshakespeare

httpsShakespeareenvisionitcom

wwwbgccancom

wwwproblemgamblingca

wwwrusselmetalscom

wwwtarioncom

wwwtransamericaca

wwwcollegeofececa

wwwsamuelcom

wwwthewaterfrontpropertiesca

wwwshopsatdonmillsca

wwwfuturesherwaygardensca

wwwpublichealthontarioca

SharePoint WCM Glossary

SharePoint Glossary

Term Definition

SharePoint Farm A set of SharePoint servers that share a single configuration database

Web Application A top level container and entry-point URLs for site collections

Site Collection A set of Web sites that are in the same content database have the same owner and share administration settings A site collection can be identified by a GUID or the URL of the top-level site for the site collection Each site collection contains a top-level site can contain one or more subsites and can have a shared navigation structure

Path Based Site Collection A site collection under a managed pathhttpwebappsitessitecollection

Host Named Site Collection A site collection with its own unique URL Must be created through PowerShell

Site Subsite under a site collection

Site Template A template for a single site that has been saved from another site Site templates may or may not contain content Templates cannot be created from publishing sites

SharePoint Glossary

Term Definition

Site Column A single field that can store information of a particular typebull Textbull Choicebull Numberbull hellipDefined at the site collection level

Content Type A content type is a reusable collection of Site Columns that can be applied to a certain category of content Content types enable the management of metadata and behaviors of a document or item type in a centralized reusable way Basically content types include the columns (or fields) that are applied to a certain type of content plus other optional settings such as a document template

Document Set New content type in SharePoint 2010 A document set is a container for multiple documents to which you can assign certain metadata and treat as a single entity in many ways In addition a document set can contain one or more different content types

SharePoint Glossary

Term Definition

List A container for list content types or custom list items Columns can be defined via content types or directly in the list

Document Library A SharePoint list that contains documents where you can create collect update and share files with others Like lists columns can be defined via content types or directly in the list

Form Library A special type of library to facilitate the interaction with InfoPath forms

Asset Library A library typically used to store image audio and video files

List Template A template used to define the configuration of a list or library Templates can be saved with or without content

SharePoint Glossary

Term Definition

Term Store An instance of the Managed Metadata Service This can be shared between sites site collections web applications or farms

Group A collection of term sets

Term Set A collection of related terms

Term A word or a phrase that can be associated with a SharePoint item

Friendly URL An SEO friendly URL defined in the term store for a page rather than the physical URL of where the page is stored (Pages)

SharePoint Glossary

Term Definition

Design Manager 2013 feature used to manipulate WCM artifacts

Master Page Defines elements that are common to all pages such as the header navigation and footer

Page Layout Defines the layout of a particular style of page such as news or events Each page content type can have one or more layouts associated with them

Web Parts Functional elements that can be added to pages typically for dynamic content

Apps Similar to web parts but run outside of SharePoint while beinghosted in the SharePoint page

Publishing Site Page Rendering

FileName

Welcomeaspx

PageLayout

PageLayoutaspx

Title

Welcome To News

Body

Lorem ipsum dolor sit

Image

ImagesChairjpg

1 Welcomeaspx page is

requested

2 Page layout associated with

page is retrieved

3 Master page associated with site

is retrieved

4 Controls in page layout render

content from pagersquos fields into the page

MasterPagemaster

PageLayoutaspxTitle

BodyImage

Date

ByLine

Field Control

FieldControl

Field ControlField ControlField Control

Field Control

httpfoocombarpageswelcomeaspx

SharePoint Glossary

Term Definition

Cross-Site Publishing Publishing from an authoring site collection to one or more publishing site collections

Catalog A list that has been published as a catalog

Category Page A page that displays a rollup of catalog items

Catalog Item Page A page that displays a single item from a catalog

Display Template Used to format the results on search pages in content search web parts and on category pages

Whatrsquos New in Web Content

Management

Easier Page Authoring With Cut and Paste

Drag and Drop Files

Drag and drop files from Windows Explorer into the browser or the other way

Doesnrsquot support folders or document sets

Open in Windows Explorer still works best for this

Requires IE10 or current versions of Chrome Safari or Firefox

IE8 and 9 supported with Office 2013 installed

Image Renditions

Display uploaded images in predefined sizes widths and crops

Multiple renditions stored in document sets

Content author can create renditions (including crops) in the browser

Design Manager

New way to build master

pages and layouts

SharePoint Designer no

longer required

Edit and preview in any HTML

editor

Automatically creates the associated

master page and aspx

layouts

Package into a Design

Package WSP for

deployment

Snippet Gallery

Select components

such as search box or

navigation control

Configure its properties

Paste the snippet into your HTML

master page or layout

Changes synched to

actual master pages and layouts to convert to SharePoint

components

Can be used by any web design

tool

Device Channels

Map channels to mobile devices or browsers

Alternate master pages

can be assigned

Page layouts can include or

exclude content based

on channel

Display Templates

Used to customize the

presentation of search results

No more XSLT

Three templates

bull Control ndash Overall structure of search results

bull Group ndash Show groups of results

bull Item ndash How each result is presented

Navigation and Friendly URLs

Site navigation driven by managed metadata

Term store used for navigation and SEO-friendly URLs

Connect site navigation to business concepts rather than site structure

Server side control outputs HTML for top nav left nav and breadcrumb

Plan is to convert to client-side to support Office 365

Term Store Setup

Two groups used to separate metadata from navigation

Metadata group setup globally

Static GUIDs consistent through all environments

Navigation group setup at the site collection level

Allows multiple copies for multiple sites on the farm

Search

Search is new and different from all previous versions of SharePoint

The platform has been consolidated Built on a combination of FAST Search and SharePoint Search components as well as new development work ndash it is the

same from Foundation to Server

Foundation Search is intended to replace WSS Search Microsoft Search Server and Search Server Express from previous versions of SharePoint

Itrsquos used pervasively throughout the product now in many different ways in different features eDiscovery navigation topic pages Internet facing business sites etc

Search in SharePoint 2013

Single Extensible Platform

FAST Engine

SharePoint Crawler

Best of both

Same Search Platform in both SharePoint and Exchange

Enterprise Search

Search Page Web parts added to a publishing page

Catalogs Cross-site publishing

Library search Executes in place on the library

Site Search _layouts15osssearchresultsaspx Specifies the site and search parameters

Search Centre Basic Search Center - SharePoint Foundation 2013 Enterprise Search Center - SharePoint Server 2013

Content Search Web Part

Similar in concept to the Content Query Web Part

Many advantages

Can go across sites site collections web apps even farms

Leverages the search index -gt very scalable

Query Builder makes it easy to define your results

Use Display Templates to customize the look and feel No more XSLT

Part of the Enterprise CAL

Pre-Configured CSWPs

Popular Items Shows items that have been recently viewed by many users

Recently Changed Items Shows items that have been modified recently This can help site users

track the latest activity on a site or a library

Recommended Items Show content recommendations based on usage patterns for the current

page

All of these can be further configured by editing their properties and changing the search criteria

Search Results Web Part

Similar functionality to the Content Search Web Part

Doesnrsquot allow property mapping in the web part configuration

Mapping is controlled in the Display Template

Part of the Standard CAL

Category Page Item Page

Catalogs

wwwcontosocomproductsAudio-Liware2g

Catalogs

Results

Consistent Displays

Manage content in one place

No need to create

pages

No need to format

Metadata Navigation

Cross-Site Publishing

Reuse content between different sites including site collections and farms

Catalogs can surface lists into publishing sites onto a category page and item pages

Can be surfaced through the Content Search Web Part

No need to create and publish web pages

Create custom friendly URLs

Metadata based navigation base

Cross Site Publishing

Job Posting

Job Posting

Job Posting

Job Posting

Simcoe County District School Board

50000 students

Over 6000 employees

Board office in Barrie

Bordered by the Holland Marsh in the south the Trent-Severn Waterway in the east Grey County in the west and Muskoka in the north

Simcoe County District School Board

119 schools and centres 87 elementary 16 secondary 6 learning centres 10 alternative

Each needs their own web site Being built on SharePoint 2013 Elementary panel first Each has their own unique URL Content authored both at the school and centrally from the board

wwwscdsbonca Pre-existing SharePoint 2010 site Future goal is to rebuild in SharePoint 2013

Business Challenge

100+ public web sites

No standardization on style technology or content

No ability for the board to push content to the school sites

Outdated sites

Not mobile or AODA compliant

Site Features

Fully Adaptivemobile design Robust Search functionality Template makes it fast and efficient to add new school sites News and events can be targeted by the Board to any number of

school sites Target by panel weather zone trustee language Presented in a blended view with the school news and events

Home page rotator links hours content pages all managed by the school staff

SEO-friendly URLs

News

School news entered by school staff

Board news entered in the board site

Rendered using cross-site publishing

High-priority alerts can be flagged to highlight on the site

Bus or school cancellations

Events

Single and multi-day events

School and board managed like news

Adaptive calendar

School Picker

Used to pick which schools to target news and events to

Schools are tagged through the term store

Target by panel weather zone trustee language

Can override and add or remove individual schools

Search

Catalogs

Three main steps

Enabling lists or libraries as catalogs

Creating the catalog connection

Building the page layouts to display the category rollups or item detail pages

Enabling Catalogs

Doesnrsquot have to be a list can be a document Images or Pages library

Experimenting using a Pages library

This gives us draft and published states that lists donrsquot support

Preview and editing is easier

Fairly simple script to do this

Catalog connections are more complex

Create the connection

Fix up the Term Store

Create the Category and Item page layouts and pages

SEO Enhancements

Friendly URLs

Home page redirects

XML sitemaps automatically generated and updated

Custom SEO properties

Usage Analytics

Built for scale from the ground up Detail data rolled up every 15 days amp anonymized Daily events purged every 15 days monthly events after 3 years Lifetime counts always retained

Counts views amp unique itemsday Shows recent (2-weeks) and lifetime count Trims least visited content Pushes aggregate data to reporting database

Drives recommendations capabilities on content Calculations injected into search index as sortable managed properties Deep integration with search engine Can influence search relevance based on content usage

Variations and Multi-Lingual

Export and import content for translation in XLIFF format

Pages

Labels

List items

Navigation

Bing translation service comes with active SharePoint 2013 license

Adaptive Web Design

Adaptive vs Responsive

Adaptive

Fixed breakpoints‒ Desktop gt 980 px

‒ Table portrait gt 768 px

‒ Phone to tablet gt 480 px lt 768 px

‒ Smartphone lt 480 px

Responsive

No fixed breakpoints

Design fluidly adapts to whatever width the browser is

We generally do a hybrid approach with responsive design in the under 768 pixel situation

Design Approaches in SharePoint

Adaptive Design through CSS media queries

Broader standards approach used outside of SharePoint

Keeps a single master page and CSS

Some unnecessary components may still be loaded

Device Channels SharePoint specific approach

Assign different master pages to different device channels

Rules define what devices use which channels

Device Channel Panels can also target content to channels

Hybrid here can also make sense Device channels can be used to remove unnecessary items from the page payload

Our Adaptive Approach

Built using the Twitter Boostrap CSS framework

twittergithubcombootstrap

Provides a responsive design framework for supporting PC Mac tablet and mobile

We enhanced to provide better touch navigation support

Can be leveraged in the master page page layouts and display templates

Incorporated into the SharePoint 2013 Design Master

HTML based master page that can be edited with any tool

SharePoint converts to a master page when uploaded or saved

Additional Open Source Tools and Resources

HTML CSS JavaScript jQuery

httpwwww3schoolscom

httpgetbootstrapcom

httphandlebarsjscom

httpknockoutjscom

httpsangularjsorg

httpmomentjscom

Content Search Web Part

Web part is configured to return search results

Executed as client-side code in the browser

Pair of display templates map the data returned to HTML

Control template for the overall structure

Item template for each item returned

HTML Designer Manager files are compiled to JavaScript

REST Search and Handlebars

Search is accessible through REST calls

httpsiteurl_apisearchquery

Returns results as a JSON array

Handlebars is a templating engine to format that

Conceptually similar to display templates with control and item sections

jQuery glues this all together

Steps to Experiment

F12 to get into Developer Toolbar

Set a breakpoint where the REST URL is determined

Copy the value

Paste into the REST Search test window

Experiment with the query

Adjust the Handlebars template appropriately

Search Setup

Content Sources to define and schedule the crawls

Crawl logs to review success

Search Schema to define the managed properties

Reusable Content

Snippets of HTML that can be reused throughout the site

JavaScript can be intelligent and use the URL to determine its behaviour

Makes it easy for content authors to drop pre-configured dynamic content onto pages

Topic Pages

Shows all items that match a topic

Could be hundreds of virtual pages

Only one template page

Easily customizable and SEO friendly (each topic appears to be its own page)

Content by search web part open search against a query or result source

May be able to surface the topic pages themselves as site search results

Public Health Ontario

httpwwwpublichealthontariocaenBrowseByTopicPagesTopicaspxk=Influenza20InformationByTopic22Influenza22

Ontario Association of Childrens Aid Societies

Application Lifecycle Management

Purpose

How do we build a solid SharePoint development environment for the enterprise

How do a number of developers work together on a SharePoint project

How does code and content move through a dev test and production lifecycle

What is Agile and Continuous Integration and why is it important

Visual Studio and Team Foundation Server

Visual Studio 2010 is the development platform for coding on SharePoint 2010

Team Foundation Server integrates with Visual Studio to provide a repository for code test and other project artifacts

It facilitates teamwork by providing a common place for developers to work together

Provisioning SharePoint Farms

Provisioning SharePoint Farms

Every developer needs their own complete SharePoint farm

Teams need a dev integration farm to bring their work together on

A full architecture needs QA and production farms as well

Envision IT Virtualization Architecture

Developer VM Template

SharePoint Server 2010 Enterprise

SP1 and August CU

Visual Studio 2010 Premium SP1

Office 2010 Professional Plus SP1

SharePoint Designer 2010 SP1

Fiddler

SQL Server 2008 R2 SP1

Creating a new Developer VM

Open System Centre Virtual Machine Manager

Create Virtual Machine

Choose the Developer VM template

Set the virtual machine name and options

Create and start the VM

Creating a new Developer VM - Step 2

Developer RDPs to their new VM Complete the SQL Server installation

Create the default instance Set the service account(s) Set the authentication mode and server administrators

Update the AutoSPInstallerInputxml file Set the machine name for the default sites and database server Set the service account passwords

Run the AutoSPInstallerLaunch batch file Do a Health check review

Creating a new Developer VM - Step 3

Start Visual Studio

Connect to the Team Foundation Server

Setup your workspaces

Use a standard naming convention across your team

CDevelopmentTFSCollection

Other Environments

Dev Integration QA and Production can all be built using AutoSPInstall

Donrsquot need or want the Visual Studio or Office tools on these servers

We have a base template we use for dev integration servers

QA should match the Prod architecture as closely as possible

High availability with load balancing clustered SQL app servers DMZ hardening Internet publishing

Agile Development

Agile with Team Foundation Server

Creating Your TFS Project

Open Visual Studio

Make sure you are connected to the right Team Project Collection

In Team Explorer right-click the top collection and create a new Team Project

Use the Scrum 10 template

Go into the Areas and Iterations Delete the extraneous releases and sprints

Create a product backlog iteration

Start adding your stories and tasks

Continuous Integration

Continuous Integration

Automated Testing

SharePoint Site Elements

Site structure Site columns content types subsites lists libraries

Branding elements Master pages layouts CSS XSLT supporting images

Custom web parts Page and site content Web part instances Search Workflows Business Connectivity Services Managed Metadata

SharePoint Site Elements ndash Part 2

Access Excel Word Visio

PerformancePoint

Document conversions

Timer jobs

Secure Store Service

User profiles

Site Structure

bull Site columns

bull Define the fields that are used by content types

bull Content types

bull Defines collections of site columns for different types of content

bull Subsites

bull The hierarchy of sites that make up the site collection

bull Lists and Libraries

bull The lists and libraries for each subsite

Site Structure ndash Part 2

Site columns and content types can be programmatically or manually created If they are going to be used in multiple site collections they should be

programmatically created

If a single site collection they can be created manually in a master site collection

GUIDs cannot be manually set and code may need them to be consistent

You can create them manually in SharePoint save the site as a template and import them into Visual Studio to create a proper WSP package

Site Structure ndash Part 3

Site structure can also be done either programmatically or manually

Many sites are complex and it is error prone to create manually

We use our own SiteModelBuilder tool to create the site structure

Site Structure ndash Part 4

For all site structure elements changes can also be manual or programmatic It is useful to be able to delete the whole site collection and recreate it

programmatically As soon as content starts being authored in SharePoint it becomes difficult

or impossible to do that

After content authoring has started Site column and content type changes need to be programmed explicitly

(you canrsquot just drop the content type and recreate it) Site structure changes are usually done manually at this point Changes need to be backed up and restored

Change Management

Page and Site Content

Page and site content is entered directly into SharePoint by the content authors Web pages images PDFs list content etc This should be done in the master site separate from where dev integration is

happening Care needs to be taken with this site once authors start working Make sure it is part of your production backup plan

Periodically back it up and restore it to the dev integration and developer VMs

Alternatively script the export and import Ultimately it will be backed up and restored to the QA and production

farms

Change Management

Change Management

Change Management

Change Management

Web part instances

Web parts ultimately get placed on pages

The configuration of the web parts can often get quite complex

You may want to disable editing of web parts for general content authors

They end up in a grey zone between code and content

Web part instances ndash Part 2

We created our own internal tool to export and import web parts

Each web partrsquos configuration can be exported into a webpartfile

We scripted the extraction from the dev integration

webpart files are treated like code and checked into TFS for version control

Script then applies the new webpart files to the target environment

Workflows

Workflows can be built using SharePoint Designer Visual Studio or third-party tools (Nintex or K2 primarily)

Visual Studio workflow projects are automatically packaged as WSP solution files Simply deploy the WSP file to the other environments

SharePoint Designer workflows need to be deployed using SharePoint Designer This means you need SPD access to production which is not always possible

You can load the SPD workflow into Visual Studio to package it but you lose the ability to edit it in SPD

If you use third-party tools yoursquoll need to define the process for that as well

Business Connectivity Services

BCS can be built using either SharePoint Designer or Visual Studio Visual Studio BCS projects are automatically packaged as WSP

solution files Simply deploy the WSP file to the other environments You can also export the BDC metadata model in the BDC service

application

SharePoint Designer doesnrsquot create a WSP and it doesnrsquot make a complete BDC metadata model You need to export and import using SharePoint Designer

In both cases you still need to deal with connection and configuration information

Future Directions

Visual Studio Lab Management

Integrates the management of HyperV environments in with Visual Studio and Team Foundation Server

Can automate the provisioning of lab environments for automated testing

Test failures can snapshot entire environments to make reproduction of errors much easier

Summary

Yoursquore going to have lots of SharePoint environments ndash figure out how to build them quickly and repeatable

Code and content often move in opposite directions through dev QA and Prod PowerShell script and automate to keep this simple

Agile is a great way to run projects

Continuous integration with automated testing is key to its success

There are lots of parts of SharePoint that you donrsquot code through Visual Studio Figure out how you move those through your environment

Other Topics

Site Design

Information architecture

Wireframes

Creative designs ndash Mobile first

Catalogs deep dive

Site build PowerShell scripts

Team Foundation Server and Application Lifecycle Management

Starting a new project

Managing content authoring

Site Improve tool

SEO Optimizations

Analytics options

Retaining Page Ranks with permanent redirects (301)

Azure SharePoint Hosting

Q amp A

Session Evaluations

Go to Evaluations on the home page of wwwcollabconorg

It is important to get your feedback

Please fill out evaluations for all the sessions you attend

Following the conference a random drawing from all completed evaluations will be selected

The winner will receive a $250 Future Shop gift card valid online or in store

Page 3: Web Content Management - CollabCon 2015 - Web... · Performances Complete Works ... Friendly URL An SEO friendly URL defined in the term store for a page, rather than ... What’s

Envision IT

PublicWebsites

Intranets Staff Portals

Extranets Member Portals

bull Easy delegation of user management to business

bull Self-registration approvals forgotten password reset

bull Simplified login for both internal and external users

Extranet User Manager

Agenda

Web Site Gallery

Envision Shakespeare Project

Whats New in WCM

Search

Adaptive Web Design

Open Source Tools

REST Search and Handlebars

Web Site Gallery

OMA Insurance

Media Experts

The Travel Corporation

Shakespeare Reference Project

wwwenvisionitcomshakespeare

Download the zip file for all the artifacts MindMap

Axure wireframe

Word Functional Spec

Visual Studio projects

PowerShell deployment scripts

Term store exportimport tool and XML data

Term store navigation control

Content

High Level Overview

Prod httpsshakespeareenvisionitcom

Dev Integration httpsshakespearedevenvisionitcom

News

Events

Productions

Performances

Complete Works Plays

‒ Comedy

‒ History

‒ Tragedy

Poetry

Adaptive Design

Built Using Twitter Bootstrap V3

Smartphone Portrait Tablet and Desktop breakpoints

Switches to fluid responsive design below smartphone resolution

Navigation and Friendly URLs

Term store used for navigation and friendly URLs

Server side control outputs HTML for top nav left nav and breadcrumb

Plan is to convert to client-side to support Office 365

Term Store Setup

Two groups used to separate metadata from navigation

Metadata group setup globally

Static GUIDs consistent through all environments

Navigation group setup at the site collection level

Allows multiple copies for multiple sites on the farm

Open Source Tools and Resources

HTML CSS JavaScript jQuery

httpwwww3schoolscom

httpgetbootstrapcom

httphandlebarsjscom

httpknockoutjscom

httpsangularjsorg

httpmomentjscom

Build Process

Complete script is the master script to setup the site

On a new farm it creates the web app and site collection

If the site collection exists it should not affect any content

Useful for updating branding and web parts

TFS build should run this

Need to explicitly force the full run

General Project Process

Create run and test the scripts on your own developer VM

When ready run on dev integration to setup site

Content authoring can happen on dev integration

Script the extraction of content

Compare to TFS and check in as required

Always back up your content authoring site before re-running a full build

Complete Script

Check and create the web app Check and create the site collection Import the term store Set the term store navigation Build the site structure Populate the content Catalogs Search Branding Web Parts

Other Scripts

Set Environment

Defines parameters for each of the environments

Typically has defaults intended for VM13 developer environment

Export the term store to XML

Export list or library content

Overview of ESC Scripts

ESCBuilder_DeployPackages

ESCBuilder_Helper

ESCBuilder_PopulateStructureContent

ESCBuilder_Search

Design Phase

MindMap Information Architecture

Axure Wireframes

PhotoShop or Illustrator Creative Designs

Site Columns and Content Types

Create directly through the SharePoint UI

Senior Consultant can do this in an initial empty devintegration environment

Export script exports these to XML files

Import into target envionments

Typically need Term Store configured as well for Managed Metadata columns

Branding Files

No longer in a Visual Studio WSP package

Simply a collection of files in the Builder folder

Still managed through TFS

Build script uploads and publishes these to the target site

Can edit directly against SharePoint by opening in Windows Explorer

Need to be careful about updating TFS

Export will export the branding files but has farm information in the files that makes it difficult to compare against TFS

Catalogs

Three main steps

Enabling lists or libraries as catalogs

Creating the catalog connection

Building the page layouts to display the category rollups or item detail pages

Enabling Catalogs

Doesnrsquot have to be a list can be a document Images or Pages library

Experimenting using a Pages library

This gives us draft and published states that lists donrsquot support

Preview and editing is easier

Fairly simple script to do this

Needs a full crawl after doing this

Creating the Catalog Connection

Rishan did some great work here

Scripts establish the connection and also update the term store as required

SharePoint Catalog Page Layouts

Uses the CSWP and Content Reuse web parts

Result sources defined in Search for each catalog connection

GUIDs for the result sources different in each farm and need to be updated as part of the deployment

REST Search Catalog Pages

HTML with data attributes on page layouts or in Reusable HTML

jQuery detects this

Builds a REST Search query based on the attributes and URL

Calls SharePoint

Uses Handlebars to format the results

Product Replacements

Video Player is part of the lib structure

Needs references added to the master page

Any hyperlink to an MP4 file launches the video popup

Image Rotator

Jeff is working on standardizing some jQuery slider options

Photo Viewer

No plans just yet

All of these will be part of the ESC package

Starting a New Project

Copy the five ESC scripts from $Envision Shakespeare CompanyBuilder Do not rename

Copy the ShakespeareBuild scripts Rename to your project Update the steps as required for your project

Create the infrastructure WSP Site columns content types list definitions and instances

Manually create the pages and assets that are needed in SharePoint Manually create the term store for metadata and navigation Script the extraction to TFS of content and term store Create the branding WSP Manually create any required web parts Export to TFS and script the placement of the web parts on the pages

ESC Scripts Next Steps

Incorporate TMX additions Farm property bag instead of webconfig Audiences Subsites Available layouts Permissions Extract folders and lists

Continue reconciling additional projects in OMA TMX Christie Medical

Full header blocks and commenting Version numbers Complete the catalog connection script Office 365 support

Links

wwwenvisionitcom

blogpetercarsonca

wwwenvisionitcomshakespeare

httpsShakespeareenvisionitcom

wwwbgccancom

wwwproblemgamblingca

wwwrusselmetalscom

wwwtarioncom

wwwtransamericaca

wwwcollegeofececa

wwwsamuelcom

wwwthewaterfrontpropertiesca

wwwshopsatdonmillsca

wwwfuturesherwaygardensca

wwwpublichealthontarioca

SharePoint WCM Glossary

SharePoint Glossary

Term Definition

SharePoint Farm A set of SharePoint servers that share a single configuration database

Web Application A top level container and entry-point URLs for site collections

Site Collection A set of Web sites that are in the same content database have the same owner and share administration settings A site collection can be identified by a GUID or the URL of the top-level site for the site collection Each site collection contains a top-level site can contain one or more subsites and can have a shared navigation structure

Path Based Site Collection A site collection under a managed pathhttpwebappsitessitecollection

Host Named Site Collection A site collection with its own unique URL Must be created through PowerShell

Site Subsite under a site collection

Site Template A template for a single site that has been saved from another site Site templates may or may not contain content Templates cannot be created from publishing sites

SharePoint Glossary

Term Definition

Site Column A single field that can store information of a particular typebull Textbull Choicebull Numberbull hellipDefined at the site collection level

Content Type A content type is a reusable collection of Site Columns that can be applied to a certain category of content Content types enable the management of metadata and behaviors of a document or item type in a centralized reusable way Basically content types include the columns (or fields) that are applied to a certain type of content plus other optional settings such as a document template

Document Set New content type in SharePoint 2010 A document set is a container for multiple documents to which you can assign certain metadata and treat as a single entity in many ways In addition a document set can contain one or more different content types

SharePoint Glossary

Term Definition

List A container for list content types or custom list items Columns can be defined via content types or directly in the list

Document Library A SharePoint list that contains documents where you can create collect update and share files with others Like lists columns can be defined via content types or directly in the list

Form Library A special type of library to facilitate the interaction with InfoPath forms

Asset Library A library typically used to store image audio and video files

List Template A template used to define the configuration of a list or library Templates can be saved with or without content

SharePoint Glossary

Term Definition

Term Store An instance of the Managed Metadata Service This can be shared between sites site collections web applications or farms

Group A collection of term sets

Term Set A collection of related terms

Term A word or a phrase that can be associated with a SharePoint item

Friendly URL An SEO friendly URL defined in the term store for a page rather than the physical URL of where the page is stored (Pages)

SharePoint Glossary

Term Definition

Design Manager 2013 feature used to manipulate WCM artifacts

Master Page Defines elements that are common to all pages such as the header navigation and footer

Page Layout Defines the layout of a particular style of page such as news or events Each page content type can have one or more layouts associated with them

Web Parts Functional elements that can be added to pages typically for dynamic content

Apps Similar to web parts but run outside of SharePoint while beinghosted in the SharePoint page

Publishing Site Page Rendering

FileName

Welcomeaspx

PageLayout

PageLayoutaspx

Title

Welcome To News

Body

Lorem ipsum dolor sit

Image

ImagesChairjpg

1 Welcomeaspx page is

requested

2 Page layout associated with

page is retrieved

3 Master page associated with site

is retrieved

4 Controls in page layout render

content from pagersquos fields into the page

MasterPagemaster

PageLayoutaspxTitle

BodyImage

Date

ByLine

Field Control

FieldControl

Field ControlField ControlField Control

Field Control

httpfoocombarpageswelcomeaspx

SharePoint Glossary

Term Definition

Cross-Site Publishing Publishing from an authoring site collection to one or more publishing site collections

Catalog A list that has been published as a catalog

Category Page A page that displays a rollup of catalog items

Catalog Item Page A page that displays a single item from a catalog

Display Template Used to format the results on search pages in content search web parts and on category pages

Whatrsquos New in Web Content

Management

Easier Page Authoring With Cut and Paste

Drag and Drop Files

Drag and drop files from Windows Explorer into the browser or the other way

Doesnrsquot support folders or document sets

Open in Windows Explorer still works best for this

Requires IE10 or current versions of Chrome Safari or Firefox

IE8 and 9 supported with Office 2013 installed

Image Renditions

Display uploaded images in predefined sizes widths and crops

Multiple renditions stored in document sets

Content author can create renditions (including crops) in the browser

Design Manager

New way to build master

pages and layouts

SharePoint Designer no

longer required

Edit and preview in any HTML

editor

Automatically creates the associated

master page and aspx

layouts

Package into a Design

Package WSP for

deployment

Snippet Gallery

Select components

such as search box or

navigation control

Configure its properties

Paste the snippet into your HTML

master page or layout

Changes synched to

actual master pages and layouts to convert to SharePoint

components

Can be used by any web design

tool

Device Channels

Map channels to mobile devices or browsers

Alternate master pages

can be assigned

Page layouts can include or

exclude content based

on channel

Display Templates

Used to customize the

presentation of search results

No more XSLT

Three templates

bull Control ndash Overall structure of search results

bull Group ndash Show groups of results

bull Item ndash How each result is presented

Navigation and Friendly URLs

Site navigation driven by managed metadata

Term store used for navigation and SEO-friendly URLs

Connect site navigation to business concepts rather than site structure

Server side control outputs HTML for top nav left nav and breadcrumb

Plan is to convert to client-side to support Office 365

Term Store Setup

Two groups used to separate metadata from navigation

Metadata group setup globally

Static GUIDs consistent through all environments

Navigation group setup at the site collection level

Allows multiple copies for multiple sites on the farm

Search

Search is new and different from all previous versions of SharePoint

The platform has been consolidated Built on a combination of FAST Search and SharePoint Search components as well as new development work ndash it is the

same from Foundation to Server

Foundation Search is intended to replace WSS Search Microsoft Search Server and Search Server Express from previous versions of SharePoint

Itrsquos used pervasively throughout the product now in many different ways in different features eDiscovery navigation topic pages Internet facing business sites etc

Search in SharePoint 2013

Single Extensible Platform

FAST Engine

SharePoint Crawler

Best of both

Same Search Platform in both SharePoint and Exchange

Enterprise Search

Search Page Web parts added to a publishing page

Catalogs Cross-site publishing

Library search Executes in place on the library

Site Search _layouts15osssearchresultsaspx Specifies the site and search parameters

Search Centre Basic Search Center - SharePoint Foundation 2013 Enterprise Search Center - SharePoint Server 2013

Content Search Web Part

Similar in concept to the Content Query Web Part

Many advantages

Can go across sites site collections web apps even farms

Leverages the search index -gt very scalable

Query Builder makes it easy to define your results

Use Display Templates to customize the look and feel No more XSLT

Part of the Enterprise CAL

Pre-Configured CSWPs

Popular Items Shows items that have been recently viewed by many users

Recently Changed Items Shows items that have been modified recently This can help site users

track the latest activity on a site or a library

Recommended Items Show content recommendations based on usage patterns for the current

page

All of these can be further configured by editing their properties and changing the search criteria

Search Results Web Part

Similar functionality to the Content Search Web Part

Doesnrsquot allow property mapping in the web part configuration

Mapping is controlled in the Display Template

Part of the Standard CAL

Category Page Item Page

Catalogs

wwwcontosocomproductsAudio-Liware2g

Catalogs

Results

Consistent Displays

Manage content in one place

No need to create

pages

No need to format

Metadata Navigation

Cross-Site Publishing

Reuse content between different sites including site collections and farms

Catalogs can surface lists into publishing sites onto a category page and item pages

Can be surfaced through the Content Search Web Part

No need to create and publish web pages

Create custom friendly URLs

Metadata based navigation base

Cross Site Publishing

Job Posting

Job Posting

Job Posting

Job Posting

Simcoe County District School Board

50000 students

Over 6000 employees

Board office in Barrie

Bordered by the Holland Marsh in the south the Trent-Severn Waterway in the east Grey County in the west and Muskoka in the north

Simcoe County District School Board

119 schools and centres 87 elementary 16 secondary 6 learning centres 10 alternative

Each needs their own web site Being built on SharePoint 2013 Elementary panel first Each has their own unique URL Content authored both at the school and centrally from the board

wwwscdsbonca Pre-existing SharePoint 2010 site Future goal is to rebuild in SharePoint 2013

Business Challenge

100+ public web sites

No standardization on style technology or content

No ability for the board to push content to the school sites

Outdated sites

Not mobile or AODA compliant

Site Features

Fully Adaptivemobile design Robust Search functionality Template makes it fast and efficient to add new school sites News and events can be targeted by the Board to any number of

school sites Target by panel weather zone trustee language Presented in a blended view with the school news and events

Home page rotator links hours content pages all managed by the school staff

SEO-friendly URLs

News

School news entered by school staff

Board news entered in the board site

Rendered using cross-site publishing

High-priority alerts can be flagged to highlight on the site

Bus or school cancellations

Events

Single and multi-day events

School and board managed like news

Adaptive calendar

School Picker

Used to pick which schools to target news and events to

Schools are tagged through the term store

Target by panel weather zone trustee language

Can override and add or remove individual schools

Search

Catalogs

Three main steps

Enabling lists or libraries as catalogs

Creating the catalog connection

Building the page layouts to display the category rollups or item detail pages

Enabling Catalogs

Doesnrsquot have to be a list can be a document Images or Pages library

Experimenting using a Pages library

This gives us draft and published states that lists donrsquot support

Preview and editing is easier

Fairly simple script to do this

Catalog connections are more complex

Create the connection

Fix up the Term Store

Create the Category and Item page layouts and pages

SEO Enhancements

Friendly URLs

Home page redirects

XML sitemaps automatically generated and updated

Custom SEO properties

Usage Analytics

Built for scale from the ground up Detail data rolled up every 15 days amp anonymized Daily events purged every 15 days monthly events after 3 years Lifetime counts always retained

Counts views amp unique itemsday Shows recent (2-weeks) and lifetime count Trims least visited content Pushes aggregate data to reporting database

Drives recommendations capabilities on content Calculations injected into search index as sortable managed properties Deep integration with search engine Can influence search relevance based on content usage

Variations and Multi-Lingual

Export and import content for translation in XLIFF format

Pages

Labels

List items

Navigation

Bing translation service comes with active SharePoint 2013 license

Adaptive Web Design

Adaptive vs Responsive

Adaptive

Fixed breakpoints‒ Desktop gt 980 px

‒ Table portrait gt 768 px

‒ Phone to tablet gt 480 px lt 768 px

‒ Smartphone lt 480 px

Responsive

No fixed breakpoints

Design fluidly adapts to whatever width the browser is

We generally do a hybrid approach with responsive design in the under 768 pixel situation

Design Approaches in SharePoint

Adaptive Design through CSS media queries

Broader standards approach used outside of SharePoint

Keeps a single master page and CSS

Some unnecessary components may still be loaded

Device Channels SharePoint specific approach

Assign different master pages to different device channels

Rules define what devices use which channels

Device Channel Panels can also target content to channels

Hybrid here can also make sense Device channels can be used to remove unnecessary items from the page payload

Our Adaptive Approach

Built using the Twitter Boostrap CSS framework

twittergithubcombootstrap

Provides a responsive design framework for supporting PC Mac tablet and mobile

We enhanced to provide better touch navigation support

Can be leveraged in the master page page layouts and display templates

Incorporated into the SharePoint 2013 Design Master

HTML based master page that can be edited with any tool

SharePoint converts to a master page when uploaded or saved

Additional Open Source Tools and Resources

HTML CSS JavaScript jQuery

httpwwww3schoolscom

httpgetbootstrapcom

httphandlebarsjscom

httpknockoutjscom

httpsangularjsorg

httpmomentjscom

Content Search Web Part

Web part is configured to return search results

Executed as client-side code in the browser

Pair of display templates map the data returned to HTML

Control template for the overall structure

Item template for each item returned

HTML Designer Manager files are compiled to JavaScript

REST Search and Handlebars

Search is accessible through REST calls

httpsiteurl_apisearchquery

Returns results as a JSON array

Handlebars is a templating engine to format that

Conceptually similar to display templates with control and item sections

jQuery glues this all together

Steps to Experiment

F12 to get into Developer Toolbar

Set a breakpoint where the REST URL is determined

Copy the value

Paste into the REST Search test window

Experiment with the query

Adjust the Handlebars template appropriately

Search Setup

Content Sources to define and schedule the crawls

Crawl logs to review success

Search Schema to define the managed properties

Reusable Content

Snippets of HTML that can be reused throughout the site

JavaScript can be intelligent and use the URL to determine its behaviour

Makes it easy for content authors to drop pre-configured dynamic content onto pages

Topic Pages

Shows all items that match a topic

Could be hundreds of virtual pages

Only one template page

Easily customizable and SEO friendly (each topic appears to be its own page)

Content by search web part open search against a query or result source

May be able to surface the topic pages themselves as site search results

Public Health Ontario

httpwwwpublichealthontariocaenBrowseByTopicPagesTopicaspxk=Influenza20InformationByTopic22Influenza22

Ontario Association of Childrens Aid Societies

Application Lifecycle Management

Purpose

How do we build a solid SharePoint development environment for the enterprise

How do a number of developers work together on a SharePoint project

How does code and content move through a dev test and production lifecycle

What is Agile and Continuous Integration and why is it important

Visual Studio and Team Foundation Server

Visual Studio 2010 is the development platform for coding on SharePoint 2010

Team Foundation Server integrates with Visual Studio to provide a repository for code test and other project artifacts

It facilitates teamwork by providing a common place for developers to work together

Provisioning SharePoint Farms

Provisioning SharePoint Farms

Every developer needs their own complete SharePoint farm

Teams need a dev integration farm to bring their work together on

A full architecture needs QA and production farms as well

Envision IT Virtualization Architecture

Developer VM Template

SharePoint Server 2010 Enterprise

SP1 and August CU

Visual Studio 2010 Premium SP1

Office 2010 Professional Plus SP1

SharePoint Designer 2010 SP1

Fiddler

SQL Server 2008 R2 SP1

Creating a new Developer VM

Open System Centre Virtual Machine Manager

Create Virtual Machine

Choose the Developer VM template

Set the virtual machine name and options

Create and start the VM

Creating a new Developer VM - Step 2

Developer RDPs to their new VM Complete the SQL Server installation

Create the default instance Set the service account(s) Set the authentication mode and server administrators

Update the AutoSPInstallerInputxml file Set the machine name for the default sites and database server Set the service account passwords

Run the AutoSPInstallerLaunch batch file Do a Health check review

Creating a new Developer VM - Step 3

Start Visual Studio

Connect to the Team Foundation Server

Setup your workspaces

Use a standard naming convention across your team

CDevelopmentTFSCollection

Other Environments

Dev Integration QA and Production can all be built using AutoSPInstall

Donrsquot need or want the Visual Studio or Office tools on these servers

We have a base template we use for dev integration servers

QA should match the Prod architecture as closely as possible

High availability with load balancing clustered SQL app servers DMZ hardening Internet publishing

Agile Development

Agile with Team Foundation Server

Creating Your TFS Project

Open Visual Studio

Make sure you are connected to the right Team Project Collection

In Team Explorer right-click the top collection and create a new Team Project

Use the Scrum 10 template

Go into the Areas and Iterations Delete the extraneous releases and sprints

Create a product backlog iteration

Start adding your stories and tasks

Continuous Integration

Continuous Integration

Automated Testing

SharePoint Site Elements

Site structure Site columns content types subsites lists libraries

Branding elements Master pages layouts CSS XSLT supporting images

Custom web parts Page and site content Web part instances Search Workflows Business Connectivity Services Managed Metadata

SharePoint Site Elements ndash Part 2

Access Excel Word Visio

PerformancePoint

Document conversions

Timer jobs

Secure Store Service

User profiles

Site Structure

bull Site columns

bull Define the fields that are used by content types

bull Content types

bull Defines collections of site columns for different types of content

bull Subsites

bull The hierarchy of sites that make up the site collection

bull Lists and Libraries

bull The lists and libraries for each subsite

Site Structure ndash Part 2

Site columns and content types can be programmatically or manually created If they are going to be used in multiple site collections they should be

programmatically created

If a single site collection they can be created manually in a master site collection

GUIDs cannot be manually set and code may need them to be consistent

You can create them manually in SharePoint save the site as a template and import them into Visual Studio to create a proper WSP package

Site Structure ndash Part 3

Site structure can also be done either programmatically or manually

Many sites are complex and it is error prone to create manually

We use our own SiteModelBuilder tool to create the site structure

Site Structure ndash Part 4

For all site structure elements changes can also be manual or programmatic It is useful to be able to delete the whole site collection and recreate it

programmatically As soon as content starts being authored in SharePoint it becomes difficult

or impossible to do that

After content authoring has started Site column and content type changes need to be programmed explicitly

(you canrsquot just drop the content type and recreate it) Site structure changes are usually done manually at this point Changes need to be backed up and restored

Change Management

Page and Site Content

Page and site content is entered directly into SharePoint by the content authors Web pages images PDFs list content etc This should be done in the master site separate from where dev integration is

happening Care needs to be taken with this site once authors start working Make sure it is part of your production backup plan

Periodically back it up and restore it to the dev integration and developer VMs

Alternatively script the export and import Ultimately it will be backed up and restored to the QA and production

farms

Change Management

Change Management

Change Management

Change Management

Web part instances

Web parts ultimately get placed on pages

The configuration of the web parts can often get quite complex

You may want to disable editing of web parts for general content authors

They end up in a grey zone between code and content

Web part instances ndash Part 2

We created our own internal tool to export and import web parts

Each web partrsquos configuration can be exported into a webpartfile

We scripted the extraction from the dev integration

webpart files are treated like code and checked into TFS for version control

Script then applies the new webpart files to the target environment

Workflows

Workflows can be built using SharePoint Designer Visual Studio or third-party tools (Nintex or K2 primarily)

Visual Studio workflow projects are automatically packaged as WSP solution files Simply deploy the WSP file to the other environments

SharePoint Designer workflows need to be deployed using SharePoint Designer This means you need SPD access to production which is not always possible

You can load the SPD workflow into Visual Studio to package it but you lose the ability to edit it in SPD

If you use third-party tools yoursquoll need to define the process for that as well

Business Connectivity Services

BCS can be built using either SharePoint Designer or Visual Studio Visual Studio BCS projects are automatically packaged as WSP

solution files Simply deploy the WSP file to the other environments You can also export the BDC metadata model in the BDC service

application

SharePoint Designer doesnrsquot create a WSP and it doesnrsquot make a complete BDC metadata model You need to export and import using SharePoint Designer

In both cases you still need to deal with connection and configuration information

Future Directions

Visual Studio Lab Management

Integrates the management of HyperV environments in with Visual Studio and Team Foundation Server

Can automate the provisioning of lab environments for automated testing

Test failures can snapshot entire environments to make reproduction of errors much easier

Summary

Yoursquore going to have lots of SharePoint environments ndash figure out how to build them quickly and repeatable

Code and content often move in opposite directions through dev QA and Prod PowerShell script and automate to keep this simple

Agile is a great way to run projects

Continuous integration with automated testing is key to its success

There are lots of parts of SharePoint that you donrsquot code through Visual Studio Figure out how you move those through your environment

Other Topics

Site Design

Information architecture

Wireframes

Creative designs ndash Mobile first

Catalogs deep dive

Site build PowerShell scripts

Team Foundation Server and Application Lifecycle Management

Starting a new project

Managing content authoring

Site Improve tool

SEO Optimizations

Analytics options

Retaining Page Ranks with permanent redirects (301)

Azure SharePoint Hosting

Q amp A

Session Evaluations

Go to Evaluations on the home page of wwwcollabconorg

It is important to get your feedback

Please fill out evaluations for all the sessions you attend

Following the conference a random drawing from all completed evaluations will be selected

The winner will receive a $250 Future Shop gift card valid online or in store

Page 4: Web Content Management - CollabCon 2015 - Web... · Performances Complete Works ... Friendly URL An SEO friendly URL defined in the term store for a page, rather than ... What’s

bull Easy delegation of user management to business

bull Self-registration approvals forgotten password reset

bull Simplified login for both internal and external users

Extranet User Manager

Agenda

Web Site Gallery

Envision Shakespeare Project

Whats New in WCM

Search

Adaptive Web Design

Open Source Tools

REST Search and Handlebars

Web Site Gallery

OMA Insurance

Media Experts

The Travel Corporation

Shakespeare Reference Project

wwwenvisionitcomshakespeare

Download the zip file for all the artifacts MindMap

Axure wireframe

Word Functional Spec

Visual Studio projects

PowerShell deployment scripts

Term store exportimport tool and XML data

Term store navigation control

Content

High Level Overview

Prod httpsshakespeareenvisionitcom

Dev Integration httpsshakespearedevenvisionitcom

News

Events

Productions

Performances

Complete Works Plays

‒ Comedy

‒ History

‒ Tragedy

Poetry

Adaptive Design

Built Using Twitter Bootstrap V3

Smartphone Portrait Tablet and Desktop breakpoints

Switches to fluid responsive design below smartphone resolution

Navigation and Friendly URLs

Term store used for navigation and friendly URLs

Server side control outputs HTML for top nav left nav and breadcrumb

Plan is to convert to client-side to support Office 365

Term Store Setup

Two groups used to separate metadata from navigation

Metadata group setup globally

Static GUIDs consistent through all environments

Navigation group setup at the site collection level

Allows multiple copies for multiple sites on the farm

Open Source Tools and Resources

HTML CSS JavaScript jQuery

httpwwww3schoolscom

httpgetbootstrapcom

httphandlebarsjscom

httpknockoutjscom

httpsangularjsorg

httpmomentjscom

Build Process

Complete script is the master script to setup the site

On a new farm it creates the web app and site collection

If the site collection exists it should not affect any content

Useful for updating branding and web parts

TFS build should run this

Need to explicitly force the full run

General Project Process

Create run and test the scripts on your own developer VM

When ready run on dev integration to setup site

Content authoring can happen on dev integration

Script the extraction of content

Compare to TFS and check in as required

Always back up your content authoring site before re-running a full build

Complete Script

Check and create the web app Check and create the site collection Import the term store Set the term store navigation Build the site structure Populate the content Catalogs Search Branding Web Parts

Other Scripts

Set Environment

Defines parameters for each of the environments

Typically has defaults intended for VM13 developer environment

Export the term store to XML

Export list or library content

Overview of ESC Scripts

ESCBuilder_DeployPackages

ESCBuilder_Helper

ESCBuilder_PopulateStructureContent

ESCBuilder_Search

Design Phase

MindMap Information Architecture

Axure Wireframes

PhotoShop or Illustrator Creative Designs

Site Columns and Content Types

Create directly through the SharePoint UI

Senior Consultant can do this in an initial empty devintegration environment

Export script exports these to XML files

Import into target envionments

Typically need Term Store configured as well for Managed Metadata columns

Branding Files

No longer in a Visual Studio WSP package

Simply a collection of files in the Builder folder

Still managed through TFS

Build script uploads and publishes these to the target site

Can edit directly against SharePoint by opening in Windows Explorer

Need to be careful about updating TFS

Export will export the branding files but has farm information in the files that makes it difficult to compare against TFS

Catalogs

Three main steps

Enabling lists or libraries as catalogs

Creating the catalog connection

Building the page layouts to display the category rollups or item detail pages

Enabling Catalogs

Doesnrsquot have to be a list can be a document Images or Pages library

Experimenting using a Pages library

This gives us draft and published states that lists donrsquot support

Preview and editing is easier

Fairly simple script to do this

Needs a full crawl after doing this

Creating the Catalog Connection

Rishan did some great work here

Scripts establish the connection and also update the term store as required

SharePoint Catalog Page Layouts

Uses the CSWP and Content Reuse web parts

Result sources defined in Search for each catalog connection

GUIDs for the result sources different in each farm and need to be updated as part of the deployment

REST Search Catalog Pages

HTML with data attributes on page layouts or in Reusable HTML

jQuery detects this

Builds a REST Search query based on the attributes and URL

Calls SharePoint

Uses Handlebars to format the results

Product Replacements

Video Player is part of the lib structure

Needs references added to the master page

Any hyperlink to an MP4 file launches the video popup

Image Rotator

Jeff is working on standardizing some jQuery slider options

Photo Viewer

No plans just yet

All of these will be part of the ESC package

Starting a New Project

Copy the five ESC scripts from $Envision Shakespeare CompanyBuilder Do not rename

Copy the ShakespeareBuild scripts Rename to your project Update the steps as required for your project

Create the infrastructure WSP Site columns content types list definitions and instances

Manually create the pages and assets that are needed in SharePoint Manually create the term store for metadata and navigation Script the extraction to TFS of content and term store Create the branding WSP Manually create any required web parts Export to TFS and script the placement of the web parts on the pages

ESC Scripts Next Steps

Incorporate TMX additions Farm property bag instead of webconfig Audiences Subsites Available layouts Permissions Extract folders and lists

Continue reconciling additional projects in OMA TMX Christie Medical

Full header blocks and commenting Version numbers Complete the catalog connection script Office 365 support

Links

wwwenvisionitcom

blogpetercarsonca

wwwenvisionitcomshakespeare

httpsShakespeareenvisionitcom

wwwbgccancom

wwwproblemgamblingca

wwwrusselmetalscom

wwwtarioncom

wwwtransamericaca

wwwcollegeofececa

wwwsamuelcom

wwwthewaterfrontpropertiesca

wwwshopsatdonmillsca

wwwfuturesherwaygardensca

wwwpublichealthontarioca

SharePoint WCM Glossary

SharePoint Glossary

Term Definition

SharePoint Farm A set of SharePoint servers that share a single configuration database

Web Application A top level container and entry-point URLs for site collections

Site Collection A set of Web sites that are in the same content database have the same owner and share administration settings A site collection can be identified by a GUID or the URL of the top-level site for the site collection Each site collection contains a top-level site can contain one or more subsites and can have a shared navigation structure

Path Based Site Collection A site collection under a managed pathhttpwebappsitessitecollection

Host Named Site Collection A site collection with its own unique URL Must be created through PowerShell

Site Subsite under a site collection

Site Template A template for a single site that has been saved from another site Site templates may or may not contain content Templates cannot be created from publishing sites

SharePoint Glossary

Term Definition

Site Column A single field that can store information of a particular typebull Textbull Choicebull Numberbull hellipDefined at the site collection level

Content Type A content type is a reusable collection of Site Columns that can be applied to a certain category of content Content types enable the management of metadata and behaviors of a document or item type in a centralized reusable way Basically content types include the columns (or fields) that are applied to a certain type of content plus other optional settings such as a document template

Document Set New content type in SharePoint 2010 A document set is a container for multiple documents to which you can assign certain metadata and treat as a single entity in many ways In addition a document set can contain one or more different content types

SharePoint Glossary

Term Definition

List A container for list content types or custom list items Columns can be defined via content types or directly in the list

Document Library A SharePoint list that contains documents where you can create collect update and share files with others Like lists columns can be defined via content types or directly in the list

Form Library A special type of library to facilitate the interaction with InfoPath forms

Asset Library A library typically used to store image audio and video files

List Template A template used to define the configuration of a list or library Templates can be saved with or without content

SharePoint Glossary

Term Definition

Term Store An instance of the Managed Metadata Service This can be shared between sites site collections web applications or farms

Group A collection of term sets

Term Set A collection of related terms

Term A word or a phrase that can be associated with a SharePoint item

Friendly URL An SEO friendly URL defined in the term store for a page rather than the physical URL of where the page is stored (Pages)

SharePoint Glossary

Term Definition

Design Manager 2013 feature used to manipulate WCM artifacts

Master Page Defines elements that are common to all pages such as the header navigation and footer

Page Layout Defines the layout of a particular style of page such as news or events Each page content type can have one or more layouts associated with them

Web Parts Functional elements that can be added to pages typically for dynamic content

Apps Similar to web parts but run outside of SharePoint while beinghosted in the SharePoint page

Publishing Site Page Rendering

FileName

Welcomeaspx

PageLayout

PageLayoutaspx

Title

Welcome To News

Body

Lorem ipsum dolor sit

Image

ImagesChairjpg

1 Welcomeaspx page is

requested

2 Page layout associated with

page is retrieved

3 Master page associated with site

is retrieved

4 Controls in page layout render

content from pagersquos fields into the page

MasterPagemaster

PageLayoutaspxTitle

BodyImage

Date

ByLine

Field Control

FieldControl

Field ControlField ControlField Control

Field Control

httpfoocombarpageswelcomeaspx

SharePoint Glossary

Term Definition

Cross-Site Publishing Publishing from an authoring site collection to one or more publishing site collections

Catalog A list that has been published as a catalog

Category Page A page that displays a rollup of catalog items

Catalog Item Page A page that displays a single item from a catalog

Display Template Used to format the results on search pages in content search web parts and on category pages

Whatrsquos New in Web Content

Management

Easier Page Authoring With Cut and Paste

Drag and Drop Files

Drag and drop files from Windows Explorer into the browser or the other way

Doesnrsquot support folders or document sets

Open in Windows Explorer still works best for this

Requires IE10 or current versions of Chrome Safari or Firefox

IE8 and 9 supported with Office 2013 installed

Image Renditions

Display uploaded images in predefined sizes widths and crops

Multiple renditions stored in document sets

Content author can create renditions (including crops) in the browser

Design Manager

New way to build master

pages and layouts

SharePoint Designer no

longer required

Edit and preview in any HTML

editor

Automatically creates the associated

master page and aspx

layouts

Package into a Design

Package WSP for

deployment

Snippet Gallery

Select components

such as search box or

navigation control

Configure its properties

Paste the snippet into your HTML

master page or layout

Changes synched to

actual master pages and layouts to convert to SharePoint

components

Can be used by any web design

tool

Device Channels

Map channels to mobile devices or browsers

Alternate master pages

can be assigned

Page layouts can include or

exclude content based

on channel

Display Templates

Used to customize the

presentation of search results

No more XSLT

Three templates

bull Control ndash Overall structure of search results

bull Group ndash Show groups of results

bull Item ndash How each result is presented

Navigation and Friendly URLs

Site navigation driven by managed metadata

Term store used for navigation and SEO-friendly URLs

Connect site navigation to business concepts rather than site structure

Server side control outputs HTML for top nav left nav and breadcrumb

Plan is to convert to client-side to support Office 365

Term Store Setup

Two groups used to separate metadata from navigation

Metadata group setup globally

Static GUIDs consistent through all environments

Navigation group setup at the site collection level

Allows multiple copies for multiple sites on the farm

Search

Search is new and different from all previous versions of SharePoint

The platform has been consolidated Built on a combination of FAST Search and SharePoint Search components as well as new development work ndash it is the

same from Foundation to Server

Foundation Search is intended to replace WSS Search Microsoft Search Server and Search Server Express from previous versions of SharePoint

Itrsquos used pervasively throughout the product now in many different ways in different features eDiscovery navigation topic pages Internet facing business sites etc

Search in SharePoint 2013

Single Extensible Platform

FAST Engine

SharePoint Crawler

Best of both

Same Search Platform in both SharePoint and Exchange

Enterprise Search

Search Page Web parts added to a publishing page

Catalogs Cross-site publishing

Library search Executes in place on the library

Site Search _layouts15osssearchresultsaspx Specifies the site and search parameters

Search Centre Basic Search Center - SharePoint Foundation 2013 Enterprise Search Center - SharePoint Server 2013

Content Search Web Part

Similar in concept to the Content Query Web Part

Many advantages

Can go across sites site collections web apps even farms

Leverages the search index -gt very scalable

Query Builder makes it easy to define your results

Use Display Templates to customize the look and feel No more XSLT

Part of the Enterprise CAL

Pre-Configured CSWPs

Popular Items Shows items that have been recently viewed by many users

Recently Changed Items Shows items that have been modified recently This can help site users

track the latest activity on a site or a library

Recommended Items Show content recommendations based on usage patterns for the current

page

All of these can be further configured by editing their properties and changing the search criteria

Search Results Web Part

Similar functionality to the Content Search Web Part

Doesnrsquot allow property mapping in the web part configuration

Mapping is controlled in the Display Template

Part of the Standard CAL

Category Page Item Page

Catalogs

wwwcontosocomproductsAudio-Liware2g

Catalogs

Results

Consistent Displays

Manage content in one place

No need to create

pages

No need to format

Metadata Navigation

Cross-Site Publishing

Reuse content between different sites including site collections and farms

Catalogs can surface lists into publishing sites onto a category page and item pages

Can be surfaced through the Content Search Web Part

No need to create and publish web pages

Create custom friendly URLs

Metadata based navigation base

Cross Site Publishing

Job Posting

Job Posting

Job Posting

Job Posting

Simcoe County District School Board

50000 students

Over 6000 employees

Board office in Barrie

Bordered by the Holland Marsh in the south the Trent-Severn Waterway in the east Grey County in the west and Muskoka in the north

Simcoe County District School Board

119 schools and centres 87 elementary 16 secondary 6 learning centres 10 alternative

Each needs their own web site Being built on SharePoint 2013 Elementary panel first Each has their own unique URL Content authored both at the school and centrally from the board

wwwscdsbonca Pre-existing SharePoint 2010 site Future goal is to rebuild in SharePoint 2013

Business Challenge

100+ public web sites

No standardization on style technology or content

No ability for the board to push content to the school sites

Outdated sites

Not mobile or AODA compliant

Site Features

Fully Adaptivemobile design Robust Search functionality Template makes it fast and efficient to add new school sites News and events can be targeted by the Board to any number of

school sites Target by panel weather zone trustee language Presented in a blended view with the school news and events

Home page rotator links hours content pages all managed by the school staff

SEO-friendly URLs

News

School news entered by school staff

Board news entered in the board site

Rendered using cross-site publishing

High-priority alerts can be flagged to highlight on the site

Bus or school cancellations

Events

Single and multi-day events

School and board managed like news

Adaptive calendar

School Picker

Used to pick which schools to target news and events to

Schools are tagged through the term store

Target by panel weather zone trustee language

Can override and add or remove individual schools

Search

Catalogs

Three main steps

Enabling lists or libraries as catalogs

Creating the catalog connection

Building the page layouts to display the category rollups or item detail pages

Enabling Catalogs

Doesnrsquot have to be a list can be a document Images or Pages library

Experimenting using a Pages library

This gives us draft and published states that lists donrsquot support

Preview and editing is easier

Fairly simple script to do this

Catalog connections are more complex

Create the connection

Fix up the Term Store

Create the Category and Item page layouts and pages

SEO Enhancements

Friendly URLs

Home page redirects

XML sitemaps automatically generated and updated

Custom SEO properties

Usage Analytics

Built for scale from the ground up Detail data rolled up every 15 days amp anonymized Daily events purged every 15 days monthly events after 3 years Lifetime counts always retained

Counts views amp unique itemsday Shows recent (2-weeks) and lifetime count Trims least visited content Pushes aggregate data to reporting database

Drives recommendations capabilities on content Calculations injected into search index as sortable managed properties Deep integration with search engine Can influence search relevance based on content usage

Variations and Multi-Lingual

Export and import content for translation in XLIFF format

Pages

Labels

List items

Navigation

Bing translation service comes with active SharePoint 2013 license

Adaptive Web Design

Adaptive vs Responsive

Adaptive

Fixed breakpoints‒ Desktop gt 980 px

‒ Table portrait gt 768 px

‒ Phone to tablet gt 480 px lt 768 px

‒ Smartphone lt 480 px

Responsive

No fixed breakpoints

Design fluidly adapts to whatever width the browser is

We generally do a hybrid approach with responsive design in the under 768 pixel situation

Design Approaches in SharePoint

Adaptive Design through CSS media queries

Broader standards approach used outside of SharePoint

Keeps a single master page and CSS

Some unnecessary components may still be loaded

Device Channels SharePoint specific approach

Assign different master pages to different device channels

Rules define what devices use which channels

Device Channel Panels can also target content to channels

Hybrid here can also make sense Device channels can be used to remove unnecessary items from the page payload

Our Adaptive Approach

Built using the Twitter Boostrap CSS framework

twittergithubcombootstrap

Provides a responsive design framework for supporting PC Mac tablet and mobile

We enhanced to provide better touch navigation support

Can be leveraged in the master page page layouts and display templates

Incorporated into the SharePoint 2013 Design Master

HTML based master page that can be edited with any tool

SharePoint converts to a master page when uploaded or saved

Additional Open Source Tools and Resources

HTML CSS JavaScript jQuery

httpwwww3schoolscom

httpgetbootstrapcom

httphandlebarsjscom

httpknockoutjscom

httpsangularjsorg

httpmomentjscom

Content Search Web Part

Web part is configured to return search results

Executed as client-side code in the browser

Pair of display templates map the data returned to HTML

Control template for the overall structure

Item template for each item returned

HTML Designer Manager files are compiled to JavaScript

REST Search and Handlebars

Search is accessible through REST calls

httpsiteurl_apisearchquery

Returns results as a JSON array

Handlebars is a templating engine to format that

Conceptually similar to display templates with control and item sections

jQuery glues this all together

Steps to Experiment

F12 to get into Developer Toolbar

Set a breakpoint where the REST URL is determined

Copy the value

Paste into the REST Search test window

Experiment with the query

Adjust the Handlebars template appropriately

Search Setup

Content Sources to define and schedule the crawls

Crawl logs to review success

Search Schema to define the managed properties

Reusable Content

Snippets of HTML that can be reused throughout the site

JavaScript can be intelligent and use the URL to determine its behaviour

Makes it easy for content authors to drop pre-configured dynamic content onto pages

Topic Pages

Shows all items that match a topic

Could be hundreds of virtual pages

Only one template page

Easily customizable and SEO friendly (each topic appears to be its own page)

Content by search web part open search against a query or result source

May be able to surface the topic pages themselves as site search results

Public Health Ontario

httpwwwpublichealthontariocaenBrowseByTopicPagesTopicaspxk=Influenza20InformationByTopic22Influenza22

Ontario Association of Childrens Aid Societies

Application Lifecycle Management

Purpose

How do we build a solid SharePoint development environment for the enterprise

How do a number of developers work together on a SharePoint project

How does code and content move through a dev test and production lifecycle

What is Agile and Continuous Integration and why is it important

Visual Studio and Team Foundation Server

Visual Studio 2010 is the development platform for coding on SharePoint 2010

Team Foundation Server integrates with Visual Studio to provide a repository for code test and other project artifacts

It facilitates teamwork by providing a common place for developers to work together

Provisioning SharePoint Farms

Provisioning SharePoint Farms

Every developer needs their own complete SharePoint farm

Teams need a dev integration farm to bring their work together on

A full architecture needs QA and production farms as well

Envision IT Virtualization Architecture

Developer VM Template

SharePoint Server 2010 Enterprise

SP1 and August CU

Visual Studio 2010 Premium SP1

Office 2010 Professional Plus SP1

SharePoint Designer 2010 SP1

Fiddler

SQL Server 2008 R2 SP1

Creating a new Developer VM

Open System Centre Virtual Machine Manager

Create Virtual Machine

Choose the Developer VM template

Set the virtual machine name and options

Create and start the VM

Creating a new Developer VM - Step 2

Developer RDPs to their new VM Complete the SQL Server installation

Create the default instance Set the service account(s) Set the authentication mode and server administrators

Update the AutoSPInstallerInputxml file Set the machine name for the default sites and database server Set the service account passwords

Run the AutoSPInstallerLaunch batch file Do a Health check review

Creating a new Developer VM - Step 3

Start Visual Studio

Connect to the Team Foundation Server

Setup your workspaces

Use a standard naming convention across your team

CDevelopmentTFSCollection

Other Environments

Dev Integration QA and Production can all be built using AutoSPInstall

Donrsquot need or want the Visual Studio or Office tools on these servers

We have a base template we use for dev integration servers

QA should match the Prod architecture as closely as possible

High availability with load balancing clustered SQL app servers DMZ hardening Internet publishing

Agile Development

Agile with Team Foundation Server

Creating Your TFS Project

Open Visual Studio

Make sure you are connected to the right Team Project Collection

In Team Explorer right-click the top collection and create a new Team Project

Use the Scrum 10 template

Go into the Areas and Iterations Delete the extraneous releases and sprints

Create a product backlog iteration

Start adding your stories and tasks

Continuous Integration

Continuous Integration

Automated Testing

SharePoint Site Elements

Site structure Site columns content types subsites lists libraries

Branding elements Master pages layouts CSS XSLT supporting images

Custom web parts Page and site content Web part instances Search Workflows Business Connectivity Services Managed Metadata

SharePoint Site Elements ndash Part 2

Access Excel Word Visio

PerformancePoint

Document conversions

Timer jobs

Secure Store Service

User profiles

Site Structure

bull Site columns

bull Define the fields that are used by content types

bull Content types

bull Defines collections of site columns for different types of content

bull Subsites

bull The hierarchy of sites that make up the site collection

bull Lists and Libraries

bull The lists and libraries for each subsite

Site Structure ndash Part 2

Site columns and content types can be programmatically or manually created If they are going to be used in multiple site collections they should be

programmatically created

If a single site collection they can be created manually in a master site collection

GUIDs cannot be manually set and code may need them to be consistent

You can create them manually in SharePoint save the site as a template and import them into Visual Studio to create a proper WSP package

Site Structure ndash Part 3

Site structure can also be done either programmatically or manually

Many sites are complex and it is error prone to create manually

We use our own SiteModelBuilder tool to create the site structure

Site Structure ndash Part 4

For all site structure elements changes can also be manual or programmatic It is useful to be able to delete the whole site collection and recreate it

programmatically As soon as content starts being authored in SharePoint it becomes difficult

or impossible to do that

After content authoring has started Site column and content type changes need to be programmed explicitly

(you canrsquot just drop the content type and recreate it) Site structure changes are usually done manually at this point Changes need to be backed up and restored

Change Management

Page and Site Content

Page and site content is entered directly into SharePoint by the content authors Web pages images PDFs list content etc This should be done in the master site separate from where dev integration is

happening Care needs to be taken with this site once authors start working Make sure it is part of your production backup plan

Periodically back it up and restore it to the dev integration and developer VMs

Alternatively script the export and import Ultimately it will be backed up and restored to the QA and production

farms

Change Management

Change Management

Change Management

Change Management

Web part instances

Web parts ultimately get placed on pages

The configuration of the web parts can often get quite complex

You may want to disable editing of web parts for general content authors

They end up in a grey zone between code and content

Web part instances ndash Part 2

We created our own internal tool to export and import web parts

Each web partrsquos configuration can be exported into a webpartfile

We scripted the extraction from the dev integration

webpart files are treated like code and checked into TFS for version control

Script then applies the new webpart files to the target environment

Workflows

Workflows can be built using SharePoint Designer Visual Studio or third-party tools (Nintex or K2 primarily)

Visual Studio workflow projects are automatically packaged as WSP solution files Simply deploy the WSP file to the other environments

SharePoint Designer workflows need to be deployed using SharePoint Designer This means you need SPD access to production which is not always possible

You can load the SPD workflow into Visual Studio to package it but you lose the ability to edit it in SPD

If you use third-party tools yoursquoll need to define the process for that as well

Business Connectivity Services

BCS can be built using either SharePoint Designer or Visual Studio Visual Studio BCS projects are automatically packaged as WSP

solution files Simply deploy the WSP file to the other environments You can also export the BDC metadata model in the BDC service

application

SharePoint Designer doesnrsquot create a WSP and it doesnrsquot make a complete BDC metadata model You need to export and import using SharePoint Designer

In both cases you still need to deal with connection and configuration information

Future Directions

Visual Studio Lab Management

Integrates the management of HyperV environments in with Visual Studio and Team Foundation Server

Can automate the provisioning of lab environments for automated testing

Test failures can snapshot entire environments to make reproduction of errors much easier

Summary

Yoursquore going to have lots of SharePoint environments ndash figure out how to build them quickly and repeatable

Code and content often move in opposite directions through dev QA and Prod PowerShell script and automate to keep this simple

Agile is a great way to run projects

Continuous integration with automated testing is key to its success

There are lots of parts of SharePoint that you donrsquot code through Visual Studio Figure out how you move those through your environment

Other Topics

Site Design

Information architecture

Wireframes

Creative designs ndash Mobile first

Catalogs deep dive

Site build PowerShell scripts

Team Foundation Server and Application Lifecycle Management

Starting a new project

Managing content authoring

Site Improve tool

SEO Optimizations

Analytics options

Retaining Page Ranks with permanent redirects (301)

Azure SharePoint Hosting

Q amp A

Session Evaluations

Go to Evaluations on the home page of wwwcollabconorg

It is important to get your feedback

Please fill out evaluations for all the sessions you attend

Following the conference a random drawing from all completed evaluations will be selected

The winner will receive a $250 Future Shop gift card valid online or in store

Page 5: Web Content Management - CollabCon 2015 - Web... · Performances Complete Works ... Friendly URL An SEO friendly URL defined in the term store for a page, rather than ... What’s

Agenda

Web Site Gallery

Envision Shakespeare Project

Whats New in WCM

Search

Adaptive Web Design

Open Source Tools

REST Search and Handlebars

Web Site Gallery

OMA Insurance

Media Experts

The Travel Corporation

Shakespeare Reference Project

wwwenvisionitcomshakespeare

Download the zip file for all the artifacts MindMap

Axure wireframe

Word Functional Spec

Visual Studio projects

PowerShell deployment scripts

Term store exportimport tool and XML data

Term store navigation control

Content

High Level Overview

Prod httpsshakespeareenvisionitcom

Dev Integration httpsshakespearedevenvisionitcom

News

Events

Productions

Performances

Complete Works Plays

‒ Comedy

‒ History

‒ Tragedy

Poetry

Adaptive Design

Built Using Twitter Bootstrap V3

Smartphone Portrait Tablet and Desktop breakpoints

Switches to fluid responsive design below smartphone resolution

Navigation and Friendly URLs

Term store used for navigation and friendly URLs

Server side control outputs HTML for top nav left nav and breadcrumb

Plan is to convert to client-side to support Office 365

Term Store Setup

Two groups used to separate metadata from navigation

Metadata group setup globally

Static GUIDs consistent through all environments

Navigation group setup at the site collection level

Allows multiple copies for multiple sites on the farm

Open Source Tools and Resources

HTML CSS JavaScript jQuery

httpwwww3schoolscom

httpgetbootstrapcom

httphandlebarsjscom

httpknockoutjscom

httpsangularjsorg

httpmomentjscom

Build Process

Complete script is the master script to setup the site

On a new farm it creates the web app and site collection

If the site collection exists it should not affect any content

Useful for updating branding and web parts

TFS build should run this

Need to explicitly force the full run

General Project Process

Create run and test the scripts on your own developer VM

When ready run on dev integration to setup site

Content authoring can happen on dev integration

Script the extraction of content

Compare to TFS and check in as required

Always back up your content authoring site before re-running a full build

Complete Script

Check and create the web app Check and create the site collection Import the term store Set the term store navigation Build the site structure Populate the content Catalogs Search Branding Web Parts

Other Scripts

Set Environment

Defines parameters for each of the environments

Typically has defaults intended for VM13 developer environment

Export the term store to XML

Export list or library content

Overview of ESC Scripts

ESCBuilder_DeployPackages

ESCBuilder_Helper

ESCBuilder_PopulateStructureContent

ESCBuilder_Search

Design Phase

MindMap Information Architecture

Axure Wireframes

PhotoShop or Illustrator Creative Designs

Site Columns and Content Types

Create directly through the SharePoint UI

Senior Consultant can do this in an initial empty devintegration environment

Export script exports these to XML files

Import into target envionments

Typically need Term Store configured as well for Managed Metadata columns

Branding Files

No longer in a Visual Studio WSP package

Simply a collection of files in the Builder folder

Still managed through TFS

Build script uploads and publishes these to the target site

Can edit directly against SharePoint by opening in Windows Explorer

Need to be careful about updating TFS

Export will export the branding files but has farm information in the files that makes it difficult to compare against TFS

Catalogs

Three main steps

Enabling lists or libraries as catalogs

Creating the catalog connection

Building the page layouts to display the category rollups or item detail pages

Enabling Catalogs

Doesnrsquot have to be a list can be a document Images or Pages library

Experimenting using a Pages library

This gives us draft and published states that lists donrsquot support

Preview and editing is easier

Fairly simple script to do this

Needs a full crawl after doing this

Creating the Catalog Connection

Rishan did some great work here

Scripts establish the connection and also update the term store as required

SharePoint Catalog Page Layouts

Uses the CSWP and Content Reuse web parts

Result sources defined in Search for each catalog connection

GUIDs for the result sources different in each farm and need to be updated as part of the deployment

REST Search Catalog Pages

HTML with data attributes on page layouts or in Reusable HTML

jQuery detects this

Builds a REST Search query based on the attributes and URL

Calls SharePoint

Uses Handlebars to format the results

Product Replacements

Video Player is part of the lib structure

Needs references added to the master page

Any hyperlink to an MP4 file launches the video popup

Image Rotator

Jeff is working on standardizing some jQuery slider options

Photo Viewer

No plans just yet

All of these will be part of the ESC package

Starting a New Project

Copy the five ESC scripts from $Envision Shakespeare CompanyBuilder Do not rename

Copy the ShakespeareBuild scripts Rename to your project Update the steps as required for your project

Create the infrastructure WSP Site columns content types list definitions and instances

Manually create the pages and assets that are needed in SharePoint Manually create the term store for metadata and navigation Script the extraction to TFS of content and term store Create the branding WSP Manually create any required web parts Export to TFS and script the placement of the web parts on the pages

ESC Scripts Next Steps

Incorporate TMX additions Farm property bag instead of webconfig Audiences Subsites Available layouts Permissions Extract folders and lists

Continue reconciling additional projects in OMA TMX Christie Medical

Full header blocks and commenting Version numbers Complete the catalog connection script Office 365 support

Links

wwwenvisionitcom

blogpetercarsonca

wwwenvisionitcomshakespeare

httpsShakespeareenvisionitcom

wwwbgccancom

wwwproblemgamblingca

wwwrusselmetalscom

wwwtarioncom

wwwtransamericaca

wwwcollegeofececa

wwwsamuelcom

wwwthewaterfrontpropertiesca

wwwshopsatdonmillsca

wwwfuturesherwaygardensca

wwwpublichealthontarioca

SharePoint WCM Glossary

SharePoint Glossary

Term Definition

SharePoint Farm A set of SharePoint servers that share a single configuration database

Web Application A top level container and entry-point URLs for site collections

Site Collection A set of Web sites that are in the same content database have the same owner and share administration settings A site collection can be identified by a GUID or the URL of the top-level site for the site collection Each site collection contains a top-level site can contain one or more subsites and can have a shared navigation structure

Path Based Site Collection A site collection under a managed pathhttpwebappsitessitecollection

Host Named Site Collection A site collection with its own unique URL Must be created through PowerShell

Site Subsite under a site collection

Site Template A template for a single site that has been saved from another site Site templates may or may not contain content Templates cannot be created from publishing sites

SharePoint Glossary

Term Definition

Site Column A single field that can store information of a particular typebull Textbull Choicebull Numberbull hellipDefined at the site collection level

Content Type A content type is a reusable collection of Site Columns that can be applied to a certain category of content Content types enable the management of metadata and behaviors of a document or item type in a centralized reusable way Basically content types include the columns (or fields) that are applied to a certain type of content plus other optional settings such as a document template

Document Set New content type in SharePoint 2010 A document set is a container for multiple documents to which you can assign certain metadata and treat as a single entity in many ways In addition a document set can contain one or more different content types

SharePoint Glossary

Term Definition

List A container for list content types or custom list items Columns can be defined via content types or directly in the list

Document Library A SharePoint list that contains documents where you can create collect update and share files with others Like lists columns can be defined via content types or directly in the list

Form Library A special type of library to facilitate the interaction with InfoPath forms

Asset Library A library typically used to store image audio and video files

List Template A template used to define the configuration of a list or library Templates can be saved with or without content

SharePoint Glossary

Term Definition

Term Store An instance of the Managed Metadata Service This can be shared between sites site collections web applications or farms

Group A collection of term sets

Term Set A collection of related terms

Term A word or a phrase that can be associated with a SharePoint item

Friendly URL An SEO friendly URL defined in the term store for a page rather than the physical URL of where the page is stored (Pages)

SharePoint Glossary

Term Definition

Design Manager 2013 feature used to manipulate WCM artifacts

Master Page Defines elements that are common to all pages such as the header navigation and footer

Page Layout Defines the layout of a particular style of page such as news or events Each page content type can have one or more layouts associated with them

Web Parts Functional elements that can be added to pages typically for dynamic content

Apps Similar to web parts but run outside of SharePoint while beinghosted in the SharePoint page

Publishing Site Page Rendering

FileName

Welcomeaspx

PageLayout

PageLayoutaspx

Title

Welcome To News

Body

Lorem ipsum dolor sit

Image

ImagesChairjpg

1 Welcomeaspx page is

requested

2 Page layout associated with

page is retrieved

3 Master page associated with site

is retrieved

4 Controls in page layout render

content from pagersquos fields into the page

MasterPagemaster

PageLayoutaspxTitle

BodyImage

Date

ByLine

Field Control

FieldControl

Field ControlField ControlField Control

Field Control

httpfoocombarpageswelcomeaspx

SharePoint Glossary

Term Definition

Cross-Site Publishing Publishing from an authoring site collection to one or more publishing site collections

Catalog A list that has been published as a catalog

Category Page A page that displays a rollup of catalog items

Catalog Item Page A page that displays a single item from a catalog

Display Template Used to format the results on search pages in content search web parts and on category pages

Whatrsquos New in Web Content

Management

Easier Page Authoring With Cut and Paste

Drag and Drop Files

Drag and drop files from Windows Explorer into the browser or the other way

Doesnrsquot support folders or document sets

Open in Windows Explorer still works best for this

Requires IE10 or current versions of Chrome Safari or Firefox

IE8 and 9 supported with Office 2013 installed

Image Renditions

Display uploaded images in predefined sizes widths and crops

Multiple renditions stored in document sets

Content author can create renditions (including crops) in the browser

Design Manager

New way to build master

pages and layouts

SharePoint Designer no

longer required

Edit and preview in any HTML

editor

Automatically creates the associated

master page and aspx

layouts

Package into a Design

Package WSP for

deployment

Snippet Gallery

Select components

such as search box or

navigation control

Configure its properties

Paste the snippet into your HTML

master page or layout

Changes synched to

actual master pages and layouts to convert to SharePoint

components

Can be used by any web design

tool

Device Channels

Map channels to mobile devices or browsers

Alternate master pages

can be assigned

Page layouts can include or

exclude content based

on channel

Display Templates

Used to customize the

presentation of search results

No more XSLT

Three templates

bull Control ndash Overall structure of search results

bull Group ndash Show groups of results

bull Item ndash How each result is presented

Navigation and Friendly URLs

Site navigation driven by managed metadata

Term store used for navigation and SEO-friendly URLs

Connect site navigation to business concepts rather than site structure

Server side control outputs HTML for top nav left nav and breadcrumb

Plan is to convert to client-side to support Office 365

Term Store Setup

Two groups used to separate metadata from navigation

Metadata group setup globally

Static GUIDs consistent through all environments

Navigation group setup at the site collection level

Allows multiple copies for multiple sites on the farm

Search

Search is new and different from all previous versions of SharePoint

The platform has been consolidated Built on a combination of FAST Search and SharePoint Search components as well as new development work ndash it is the

same from Foundation to Server

Foundation Search is intended to replace WSS Search Microsoft Search Server and Search Server Express from previous versions of SharePoint

Itrsquos used pervasively throughout the product now in many different ways in different features eDiscovery navigation topic pages Internet facing business sites etc

Search in SharePoint 2013

Single Extensible Platform

FAST Engine

SharePoint Crawler

Best of both

Same Search Platform in both SharePoint and Exchange

Enterprise Search

Search Page Web parts added to a publishing page

Catalogs Cross-site publishing

Library search Executes in place on the library

Site Search _layouts15osssearchresultsaspx Specifies the site and search parameters

Search Centre Basic Search Center - SharePoint Foundation 2013 Enterprise Search Center - SharePoint Server 2013

Content Search Web Part

Similar in concept to the Content Query Web Part

Many advantages

Can go across sites site collections web apps even farms

Leverages the search index -gt very scalable

Query Builder makes it easy to define your results

Use Display Templates to customize the look and feel No more XSLT

Part of the Enterprise CAL

Pre-Configured CSWPs

Popular Items Shows items that have been recently viewed by many users

Recently Changed Items Shows items that have been modified recently This can help site users

track the latest activity on a site or a library

Recommended Items Show content recommendations based on usage patterns for the current

page

All of these can be further configured by editing their properties and changing the search criteria

Search Results Web Part

Similar functionality to the Content Search Web Part

Doesnrsquot allow property mapping in the web part configuration

Mapping is controlled in the Display Template

Part of the Standard CAL

Category Page Item Page

Catalogs

wwwcontosocomproductsAudio-Liware2g

Catalogs

Results

Consistent Displays

Manage content in one place

No need to create

pages

No need to format

Metadata Navigation

Cross-Site Publishing

Reuse content between different sites including site collections and farms

Catalogs can surface lists into publishing sites onto a category page and item pages

Can be surfaced through the Content Search Web Part

No need to create and publish web pages

Create custom friendly URLs

Metadata based navigation base

Cross Site Publishing

Job Posting

Job Posting

Job Posting

Job Posting

Simcoe County District School Board

50000 students

Over 6000 employees

Board office in Barrie

Bordered by the Holland Marsh in the south the Trent-Severn Waterway in the east Grey County in the west and Muskoka in the north

Simcoe County District School Board

119 schools and centres 87 elementary 16 secondary 6 learning centres 10 alternative

Each needs their own web site Being built on SharePoint 2013 Elementary panel first Each has their own unique URL Content authored both at the school and centrally from the board

wwwscdsbonca Pre-existing SharePoint 2010 site Future goal is to rebuild in SharePoint 2013

Business Challenge

100+ public web sites

No standardization on style technology or content

No ability for the board to push content to the school sites

Outdated sites

Not mobile or AODA compliant

Site Features

Fully Adaptivemobile design Robust Search functionality Template makes it fast and efficient to add new school sites News and events can be targeted by the Board to any number of

school sites Target by panel weather zone trustee language Presented in a blended view with the school news and events

Home page rotator links hours content pages all managed by the school staff

SEO-friendly URLs

News

School news entered by school staff

Board news entered in the board site

Rendered using cross-site publishing

High-priority alerts can be flagged to highlight on the site

Bus or school cancellations

Events

Single and multi-day events

School and board managed like news

Adaptive calendar

School Picker

Used to pick which schools to target news and events to

Schools are tagged through the term store

Target by panel weather zone trustee language

Can override and add or remove individual schools

Search

Catalogs

Three main steps

Enabling lists or libraries as catalogs

Creating the catalog connection

Building the page layouts to display the category rollups or item detail pages

Enabling Catalogs

Doesnrsquot have to be a list can be a document Images or Pages library

Experimenting using a Pages library

This gives us draft and published states that lists donrsquot support

Preview and editing is easier

Fairly simple script to do this

Catalog connections are more complex

Create the connection

Fix up the Term Store

Create the Category and Item page layouts and pages

SEO Enhancements

Friendly URLs

Home page redirects

XML sitemaps automatically generated and updated

Custom SEO properties

Usage Analytics

Built for scale from the ground up Detail data rolled up every 15 days amp anonymized Daily events purged every 15 days monthly events after 3 years Lifetime counts always retained

Counts views amp unique itemsday Shows recent (2-weeks) and lifetime count Trims least visited content Pushes aggregate data to reporting database

Drives recommendations capabilities on content Calculations injected into search index as sortable managed properties Deep integration with search engine Can influence search relevance based on content usage

Variations and Multi-Lingual

Export and import content for translation in XLIFF format

Pages

Labels

List items

Navigation

Bing translation service comes with active SharePoint 2013 license

Adaptive Web Design

Adaptive vs Responsive

Adaptive

Fixed breakpoints‒ Desktop gt 980 px

‒ Table portrait gt 768 px

‒ Phone to tablet gt 480 px lt 768 px

‒ Smartphone lt 480 px

Responsive

No fixed breakpoints

Design fluidly adapts to whatever width the browser is

We generally do a hybrid approach with responsive design in the under 768 pixel situation

Design Approaches in SharePoint

Adaptive Design through CSS media queries

Broader standards approach used outside of SharePoint

Keeps a single master page and CSS

Some unnecessary components may still be loaded

Device Channels SharePoint specific approach

Assign different master pages to different device channels

Rules define what devices use which channels

Device Channel Panels can also target content to channels

Hybrid here can also make sense Device channels can be used to remove unnecessary items from the page payload

Our Adaptive Approach

Built using the Twitter Boostrap CSS framework

twittergithubcombootstrap

Provides a responsive design framework for supporting PC Mac tablet and mobile

We enhanced to provide better touch navigation support

Can be leveraged in the master page page layouts and display templates

Incorporated into the SharePoint 2013 Design Master

HTML based master page that can be edited with any tool

SharePoint converts to a master page when uploaded or saved

Additional Open Source Tools and Resources

HTML CSS JavaScript jQuery

httpwwww3schoolscom

httpgetbootstrapcom

httphandlebarsjscom

httpknockoutjscom

httpsangularjsorg

httpmomentjscom

Content Search Web Part

Web part is configured to return search results

Executed as client-side code in the browser

Pair of display templates map the data returned to HTML

Control template for the overall structure

Item template for each item returned

HTML Designer Manager files are compiled to JavaScript

REST Search and Handlebars

Search is accessible through REST calls

httpsiteurl_apisearchquery

Returns results as a JSON array

Handlebars is a templating engine to format that

Conceptually similar to display templates with control and item sections

jQuery glues this all together

Steps to Experiment

F12 to get into Developer Toolbar

Set a breakpoint where the REST URL is determined

Copy the value

Paste into the REST Search test window

Experiment with the query

Adjust the Handlebars template appropriately

Search Setup

Content Sources to define and schedule the crawls

Crawl logs to review success

Search Schema to define the managed properties

Reusable Content

Snippets of HTML that can be reused throughout the site

JavaScript can be intelligent and use the URL to determine its behaviour

Makes it easy for content authors to drop pre-configured dynamic content onto pages

Topic Pages

Shows all items that match a topic

Could be hundreds of virtual pages

Only one template page

Easily customizable and SEO friendly (each topic appears to be its own page)

Content by search web part open search against a query or result source

May be able to surface the topic pages themselves as site search results

Public Health Ontario

httpwwwpublichealthontariocaenBrowseByTopicPagesTopicaspxk=Influenza20InformationByTopic22Influenza22

Ontario Association of Childrens Aid Societies

Application Lifecycle Management

Purpose

How do we build a solid SharePoint development environment for the enterprise

How do a number of developers work together on a SharePoint project

How does code and content move through a dev test and production lifecycle

What is Agile and Continuous Integration and why is it important

Visual Studio and Team Foundation Server

Visual Studio 2010 is the development platform for coding on SharePoint 2010

Team Foundation Server integrates with Visual Studio to provide a repository for code test and other project artifacts

It facilitates teamwork by providing a common place for developers to work together

Provisioning SharePoint Farms

Provisioning SharePoint Farms

Every developer needs their own complete SharePoint farm

Teams need a dev integration farm to bring their work together on

A full architecture needs QA and production farms as well

Envision IT Virtualization Architecture

Developer VM Template

SharePoint Server 2010 Enterprise

SP1 and August CU

Visual Studio 2010 Premium SP1

Office 2010 Professional Plus SP1

SharePoint Designer 2010 SP1

Fiddler

SQL Server 2008 R2 SP1

Creating a new Developer VM

Open System Centre Virtual Machine Manager

Create Virtual Machine

Choose the Developer VM template

Set the virtual machine name and options

Create and start the VM

Creating a new Developer VM - Step 2

Developer RDPs to their new VM Complete the SQL Server installation

Create the default instance Set the service account(s) Set the authentication mode and server administrators

Update the AutoSPInstallerInputxml file Set the machine name for the default sites and database server Set the service account passwords

Run the AutoSPInstallerLaunch batch file Do a Health check review

Creating a new Developer VM - Step 3

Start Visual Studio

Connect to the Team Foundation Server

Setup your workspaces

Use a standard naming convention across your team

CDevelopmentTFSCollection

Other Environments

Dev Integration QA and Production can all be built using AutoSPInstall

Donrsquot need or want the Visual Studio or Office tools on these servers

We have a base template we use for dev integration servers

QA should match the Prod architecture as closely as possible

High availability with load balancing clustered SQL app servers DMZ hardening Internet publishing

Agile Development

Agile with Team Foundation Server

Creating Your TFS Project

Open Visual Studio

Make sure you are connected to the right Team Project Collection

In Team Explorer right-click the top collection and create a new Team Project

Use the Scrum 10 template

Go into the Areas and Iterations Delete the extraneous releases and sprints

Create a product backlog iteration

Start adding your stories and tasks

Continuous Integration

Continuous Integration

Automated Testing

SharePoint Site Elements

Site structure Site columns content types subsites lists libraries

Branding elements Master pages layouts CSS XSLT supporting images

Custom web parts Page and site content Web part instances Search Workflows Business Connectivity Services Managed Metadata

SharePoint Site Elements ndash Part 2

Access Excel Word Visio

PerformancePoint

Document conversions

Timer jobs

Secure Store Service

User profiles

Site Structure

bull Site columns

bull Define the fields that are used by content types

bull Content types

bull Defines collections of site columns for different types of content

bull Subsites

bull The hierarchy of sites that make up the site collection

bull Lists and Libraries

bull The lists and libraries for each subsite

Site Structure ndash Part 2

Site columns and content types can be programmatically or manually created If they are going to be used in multiple site collections they should be

programmatically created

If a single site collection they can be created manually in a master site collection

GUIDs cannot be manually set and code may need them to be consistent

You can create them manually in SharePoint save the site as a template and import them into Visual Studio to create a proper WSP package

Site Structure ndash Part 3

Site structure can also be done either programmatically or manually

Many sites are complex and it is error prone to create manually

We use our own SiteModelBuilder tool to create the site structure

Site Structure ndash Part 4

For all site structure elements changes can also be manual or programmatic It is useful to be able to delete the whole site collection and recreate it

programmatically As soon as content starts being authored in SharePoint it becomes difficult

or impossible to do that

After content authoring has started Site column and content type changes need to be programmed explicitly

(you canrsquot just drop the content type and recreate it) Site structure changes are usually done manually at this point Changes need to be backed up and restored

Change Management

Page and Site Content

Page and site content is entered directly into SharePoint by the content authors Web pages images PDFs list content etc This should be done in the master site separate from where dev integration is

happening Care needs to be taken with this site once authors start working Make sure it is part of your production backup plan

Periodically back it up and restore it to the dev integration and developer VMs

Alternatively script the export and import Ultimately it will be backed up and restored to the QA and production

farms

Change Management

Change Management

Change Management

Change Management

Web part instances

Web parts ultimately get placed on pages

The configuration of the web parts can often get quite complex

You may want to disable editing of web parts for general content authors

They end up in a grey zone between code and content

Web part instances ndash Part 2

We created our own internal tool to export and import web parts

Each web partrsquos configuration can be exported into a webpartfile

We scripted the extraction from the dev integration

webpart files are treated like code and checked into TFS for version control

Script then applies the new webpart files to the target environment

Workflows

Workflows can be built using SharePoint Designer Visual Studio or third-party tools (Nintex or K2 primarily)

Visual Studio workflow projects are automatically packaged as WSP solution files Simply deploy the WSP file to the other environments

SharePoint Designer workflows need to be deployed using SharePoint Designer This means you need SPD access to production which is not always possible

You can load the SPD workflow into Visual Studio to package it but you lose the ability to edit it in SPD

If you use third-party tools yoursquoll need to define the process for that as well

Business Connectivity Services

BCS can be built using either SharePoint Designer or Visual Studio Visual Studio BCS projects are automatically packaged as WSP

solution files Simply deploy the WSP file to the other environments You can also export the BDC metadata model in the BDC service

application

SharePoint Designer doesnrsquot create a WSP and it doesnrsquot make a complete BDC metadata model You need to export and import using SharePoint Designer

In both cases you still need to deal with connection and configuration information

Future Directions

Visual Studio Lab Management

Integrates the management of HyperV environments in with Visual Studio and Team Foundation Server

Can automate the provisioning of lab environments for automated testing

Test failures can snapshot entire environments to make reproduction of errors much easier

Summary

Yoursquore going to have lots of SharePoint environments ndash figure out how to build them quickly and repeatable

Code and content often move in opposite directions through dev QA and Prod PowerShell script and automate to keep this simple

Agile is a great way to run projects

Continuous integration with automated testing is key to its success

There are lots of parts of SharePoint that you donrsquot code through Visual Studio Figure out how you move those through your environment

Other Topics

Site Design

Information architecture

Wireframes

Creative designs ndash Mobile first

Catalogs deep dive

Site build PowerShell scripts

Team Foundation Server and Application Lifecycle Management

Starting a new project

Managing content authoring

Site Improve tool

SEO Optimizations

Analytics options

Retaining Page Ranks with permanent redirects (301)

Azure SharePoint Hosting

Q amp A

Session Evaluations

Go to Evaluations on the home page of wwwcollabconorg

It is important to get your feedback

Please fill out evaluations for all the sessions you attend

Following the conference a random drawing from all completed evaluations will be selected

The winner will receive a $250 Future Shop gift card valid online or in store

Page 6: Web Content Management - CollabCon 2015 - Web... · Performances Complete Works ... Friendly URL An SEO friendly URL defined in the term store for a page, rather than ... What’s

Web Site Gallery

OMA Insurance

Media Experts

The Travel Corporation

Shakespeare Reference Project

wwwenvisionitcomshakespeare

Download the zip file for all the artifacts MindMap

Axure wireframe

Word Functional Spec

Visual Studio projects

PowerShell deployment scripts

Term store exportimport tool and XML data

Term store navigation control

Content

High Level Overview

Prod httpsshakespeareenvisionitcom

Dev Integration httpsshakespearedevenvisionitcom

News

Events

Productions

Performances

Complete Works Plays

‒ Comedy

‒ History

‒ Tragedy

Poetry

Adaptive Design

Built Using Twitter Bootstrap V3

Smartphone Portrait Tablet and Desktop breakpoints

Switches to fluid responsive design below smartphone resolution

Navigation and Friendly URLs

Term store used for navigation and friendly URLs

Server side control outputs HTML for top nav left nav and breadcrumb

Plan is to convert to client-side to support Office 365

Term Store Setup

Two groups used to separate metadata from navigation

Metadata group setup globally

Static GUIDs consistent through all environments

Navigation group setup at the site collection level

Allows multiple copies for multiple sites on the farm

Open Source Tools and Resources

HTML CSS JavaScript jQuery

httpwwww3schoolscom

httpgetbootstrapcom

httphandlebarsjscom

httpknockoutjscom

httpsangularjsorg

httpmomentjscom

Build Process

Complete script is the master script to setup the site

On a new farm it creates the web app and site collection

If the site collection exists it should not affect any content

Useful for updating branding and web parts

TFS build should run this

Need to explicitly force the full run

General Project Process

Create run and test the scripts on your own developer VM

When ready run on dev integration to setup site

Content authoring can happen on dev integration

Script the extraction of content

Compare to TFS and check in as required

Always back up your content authoring site before re-running a full build

Complete Script

Check and create the web app Check and create the site collection Import the term store Set the term store navigation Build the site structure Populate the content Catalogs Search Branding Web Parts

Other Scripts

Set Environment

Defines parameters for each of the environments

Typically has defaults intended for VM13 developer environment

Export the term store to XML

Export list or library content

Overview of ESC Scripts

ESCBuilder_DeployPackages

ESCBuilder_Helper

ESCBuilder_PopulateStructureContent

ESCBuilder_Search

Design Phase

MindMap Information Architecture

Axure Wireframes

PhotoShop or Illustrator Creative Designs

Site Columns and Content Types

Create directly through the SharePoint UI

Senior Consultant can do this in an initial empty devintegration environment

Export script exports these to XML files

Import into target envionments

Typically need Term Store configured as well for Managed Metadata columns

Branding Files

No longer in a Visual Studio WSP package

Simply a collection of files in the Builder folder

Still managed through TFS

Build script uploads and publishes these to the target site

Can edit directly against SharePoint by opening in Windows Explorer

Need to be careful about updating TFS

Export will export the branding files but has farm information in the files that makes it difficult to compare against TFS

Catalogs

Three main steps

Enabling lists or libraries as catalogs

Creating the catalog connection

Building the page layouts to display the category rollups or item detail pages

Enabling Catalogs

Doesnrsquot have to be a list can be a document Images or Pages library

Experimenting using a Pages library

This gives us draft and published states that lists donrsquot support

Preview and editing is easier

Fairly simple script to do this

Needs a full crawl after doing this

Creating the Catalog Connection

Rishan did some great work here

Scripts establish the connection and also update the term store as required

SharePoint Catalog Page Layouts

Uses the CSWP and Content Reuse web parts

Result sources defined in Search for each catalog connection

GUIDs for the result sources different in each farm and need to be updated as part of the deployment

REST Search Catalog Pages

HTML with data attributes on page layouts or in Reusable HTML

jQuery detects this

Builds a REST Search query based on the attributes and URL

Calls SharePoint

Uses Handlebars to format the results

Product Replacements

Video Player is part of the lib structure

Needs references added to the master page

Any hyperlink to an MP4 file launches the video popup

Image Rotator

Jeff is working on standardizing some jQuery slider options

Photo Viewer

No plans just yet

All of these will be part of the ESC package

Starting a New Project

Copy the five ESC scripts from $Envision Shakespeare CompanyBuilder Do not rename

Copy the ShakespeareBuild scripts Rename to your project Update the steps as required for your project

Create the infrastructure WSP Site columns content types list definitions and instances

Manually create the pages and assets that are needed in SharePoint Manually create the term store for metadata and navigation Script the extraction to TFS of content and term store Create the branding WSP Manually create any required web parts Export to TFS and script the placement of the web parts on the pages

ESC Scripts Next Steps

Incorporate TMX additions Farm property bag instead of webconfig Audiences Subsites Available layouts Permissions Extract folders and lists

Continue reconciling additional projects in OMA TMX Christie Medical

Full header blocks and commenting Version numbers Complete the catalog connection script Office 365 support

Links

wwwenvisionitcom

blogpetercarsonca

wwwenvisionitcomshakespeare

httpsShakespeareenvisionitcom

wwwbgccancom

wwwproblemgamblingca

wwwrusselmetalscom

wwwtarioncom

wwwtransamericaca

wwwcollegeofececa

wwwsamuelcom

wwwthewaterfrontpropertiesca

wwwshopsatdonmillsca

wwwfuturesherwaygardensca

wwwpublichealthontarioca

SharePoint WCM Glossary

SharePoint Glossary

Term Definition

SharePoint Farm A set of SharePoint servers that share a single configuration database

Web Application A top level container and entry-point URLs for site collections

Site Collection A set of Web sites that are in the same content database have the same owner and share administration settings A site collection can be identified by a GUID or the URL of the top-level site for the site collection Each site collection contains a top-level site can contain one or more subsites and can have a shared navigation structure

Path Based Site Collection A site collection under a managed pathhttpwebappsitessitecollection

Host Named Site Collection A site collection with its own unique URL Must be created through PowerShell

Site Subsite under a site collection

Site Template A template for a single site that has been saved from another site Site templates may or may not contain content Templates cannot be created from publishing sites

SharePoint Glossary

Term Definition

Site Column A single field that can store information of a particular typebull Textbull Choicebull Numberbull hellipDefined at the site collection level

Content Type A content type is a reusable collection of Site Columns that can be applied to a certain category of content Content types enable the management of metadata and behaviors of a document or item type in a centralized reusable way Basically content types include the columns (or fields) that are applied to a certain type of content plus other optional settings such as a document template

Document Set New content type in SharePoint 2010 A document set is a container for multiple documents to which you can assign certain metadata and treat as a single entity in many ways In addition a document set can contain one or more different content types

SharePoint Glossary

Term Definition

List A container for list content types or custom list items Columns can be defined via content types or directly in the list

Document Library A SharePoint list that contains documents where you can create collect update and share files with others Like lists columns can be defined via content types or directly in the list

Form Library A special type of library to facilitate the interaction with InfoPath forms

Asset Library A library typically used to store image audio and video files

List Template A template used to define the configuration of a list or library Templates can be saved with or without content

SharePoint Glossary

Term Definition

Term Store An instance of the Managed Metadata Service This can be shared between sites site collections web applications or farms

Group A collection of term sets

Term Set A collection of related terms

Term A word or a phrase that can be associated with a SharePoint item

Friendly URL An SEO friendly URL defined in the term store for a page rather than the physical URL of where the page is stored (Pages)

SharePoint Glossary

Term Definition

Design Manager 2013 feature used to manipulate WCM artifacts

Master Page Defines elements that are common to all pages such as the header navigation and footer

Page Layout Defines the layout of a particular style of page such as news or events Each page content type can have one or more layouts associated with them

Web Parts Functional elements that can be added to pages typically for dynamic content

Apps Similar to web parts but run outside of SharePoint while beinghosted in the SharePoint page

Publishing Site Page Rendering

FileName

Welcomeaspx

PageLayout

PageLayoutaspx

Title

Welcome To News

Body

Lorem ipsum dolor sit

Image

ImagesChairjpg

1 Welcomeaspx page is

requested

2 Page layout associated with

page is retrieved

3 Master page associated with site

is retrieved

4 Controls in page layout render

content from pagersquos fields into the page

MasterPagemaster

PageLayoutaspxTitle

BodyImage

Date

ByLine

Field Control

FieldControl

Field ControlField ControlField Control

Field Control

httpfoocombarpageswelcomeaspx

SharePoint Glossary

Term Definition

Cross-Site Publishing Publishing from an authoring site collection to one or more publishing site collections

Catalog A list that has been published as a catalog

Category Page A page that displays a rollup of catalog items

Catalog Item Page A page that displays a single item from a catalog

Display Template Used to format the results on search pages in content search web parts and on category pages

Whatrsquos New in Web Content

Management

Easier Page Authoring With Cut and Paste

Drag and Drop Files

Drag and drop files from Windows Explorer into the browser or the other way

Doesnrsquot support folders or document sets

Open in Windows Explorer still works best for this

Requires IE10 or current versions of Chrome Safari or Firefox

IE8 and 9 supported with Office 2013 installed

Image Renditions

Display uploaded images in predefined sizes widths and crops

Multiple renditions stored in document sets

Content author can create renditions (including crops) in the browser

Design Manager

New way to build master

pages and layouts

SharePoint Designer no

longer required

Edit and preview in any HTML

editor

Automatically creates the associated

master page and aspx

layouts

Package into a Design

Package WSP for

deployment

Snippet Gallery

Select components

such as search box or

navigation control

Configure its properties

Paste the snippet into your HTML

master page or layout

Changes synched to

actual master pages and layouts to convert to SharePoint

components

Can be used by any web design

tool

Device Channels

Map channels to mobile devices or browsers

Alternate master pages

can be assigned

Page layouts can include or

exclude content based

on channel

Display Templates

Used to customize the

presentation of search results

No more XSLT

Three templates

bull Control ndash Overall structure of search results

bull Group ndash Show groups of results

bull Item ndash How each result is presented

Navigation and Friendly URLs

Site navigation driven by managed metadata

Term store used for navigation and SEO-friendly URLs

Connect site navigation to business concepts rather than site structure

Server side control outputs HTML for top nav left nav and breadcrumb

Plan is to convert to client-side to support Office 365

Term Store Setup

Two groups used to separate metadata from navigation

Metadata group setup globally

Static GUIDs consistent through all environments

Navigation group setup at the site collection level

Allows multiple copies for multiple sites on the farm

Search

Search is new and different from all previous versions of SharePoint

The platform has been consolidated Built on a combination of FAST Search and SharePoint Search components as well as new development work ndash it is the

same from Foundation to Server

Foundation Search is intended to replace WSS Search Microsoft Search Server and Search Server Express from previous versions of SharePoint

Itrsquos used pervasively throughout the product now in many different ways in different features eDiscovery navigation topic pages Internet facing business sites etc

Search in SharePoint 2013

Single Extensible Platform

FAST Engine

SharePoint Crawler

Best of both

Same Search Platform in both SharePoint and Exchange

Enterprise Search

Search Page Web parts added to a publishing page

Catalogs Cross-site publishing

Library search Executes in place on the library

Site Search _layouts15osssearchresultsaspx Specifies the site and search parameters

Search Centre Basic Search Center - SharePoint Foundation 2013 Enterprise Search Center - SharePoint Server 2013

Content Search Web Part

Similar in concept to the Content Query Web Part

Many advantages

Can go across sites site collections web apps even farms

Leverages the search index -gt very scalable

Query Builder makes it easy to define your results

Use Display Templates to customize the look and feel No more XSLT

Part of the Enterprise CAL

Pre-Configured CSWPs

Popular Items Shows items that have been recently viewed by many users

Recently Changed Items Shows items that have been modified recently This can help site users

track the latest activity on a site or a library

Recommended Items Show content recommendations based on usage patterns for the current

page

All of these can be further configured by editing their properties and changing the search criteria

Search Results Web Part

Similar functionality to the Content Search Web Part

Doesnrsquot allow property mapping in the web part configuration

Mapping is controlled in the Display Template

Part of the Standard CAL

Category Page Item Page

Catalogs

wwwcontosocomproductsAudio-Liware2g

Catalogs

Results

Consistent Displays

Manage content in one place

No need to create

pages

No need to format

Metadata Navigation

Cross-Site Publishing

Reuse content between different sites including site collections and farms

Catalogs can surface lists into publishing sites onto a category page and item pages

Can be surfaced through the Content Search Web Part

No need to create and publish web pages

Create custom friendly URLs

Metadata based navigation base

Cross Site Publishing

Job Posting

Job Posting

Job Posting

Job Posting

Simcoe County District School Board

50000 students

Over 6000 employees

Board office in Barrie

Bordered by the Holland Marsh in the south the Trent-Severn Waterway in the east Grey County in the west and Muskoka in the north

Simcoe County District School Board

119 schools and centres 87 elementary 16 secondary 6 learning centres 10 alternative

Each needs their own web site Being built on SharePoint 2013 Elementary panel first Each has their own unique URL Content authored both at the school and centrally from the board

wwwscdsbonca Pre-existing SharePoint 2010 site Future goal is to rebuild in SharePoint 2013

Business Challenge

100+ public web sites

No standardization on style technology or content

No ability for the board to push content to the school sites

Outdated sites

Not mobile or AODA compliant

Site Features

Fully Adaptivemobile design Robust Search functionality Template makes it fast and efficient to add new school sites News and events can be targeted by the Board to any number of

school sites Target by panel weather zone trustee language Presented in a blended view with the school news and events

Home page rotator links hours content pages all managed by the school staff

SEO-friendly URLs

News

School news entered by school staff

Board news entered in the board site

Rendered using cross-site publishing

High-priority alerts can be flagged to highlight on the site

Bus or school cancellations

Events

Single and multi-day events

School and board managed like news

Adaptive calendar

School Picker

Used to pick which schools to target news and events to

Schools are tagged through the term store

Target by panel weather zone trustee language

Can override and add or remove individual schools

Search

Catalogs

Three main steps

Enabling lists or libraries as catalogs

Creating the catalog connection

Building the page layouts to display the category rollups or item detail pages

Enabling Catalogs

Doesnrsquot have to be a list can be a document Images or Pages library

Experimenting using a Pages library

This gives us draft and published states that lists donrsquot support

Preview and editing is easier

Fairly simple script to do this

Catalog connections are more complex

Create the connection

Fix up the Term Store

Create the Category and Item page layouts and pages

SEO Enhancements

Friendly URLs

Home page redirects

XML sitemaps automatically generated and updated

Custom SEO properties

Usage Analytics

Built for scale from the ground up Detail data rolled up every 15 days amp anonymized Daily events purged every 15 days monthly events after 3 years Lifetime counts always retained

Counts views amp unique itemsday Shows recent (2-weeks) and lifetime count Trims least visited content Pushes aggregate data to reporting database

Drives recommendations capabilities on content Calculations injected into search index as sortable managed properties Deep integration with search engine Can influence search relevance based on content usage

Variations and Multi-Lingual

Export and import content for translation in XLIFF format

Pages

Labels

List items

Navigation

Bing translation service comes with active SharePoint 2013 license

Adaptive Web Design

Adaptive vs Responsive

Adaptive

Fixed breakpoints‒ Desktop gt 980 px

‒ Table portrait gt 768 px

‒ Phone to tablet gt 480 px lt 768 px

‒ Smartphone lt 480 px

Responsive

No fixed breakpoints

Design fluidly adapts to whatever width the browser is

We generally do a hybrid approach with responsive design in the under 768 pixel situation

Design Approaches in SharePoint

Adaptive Design through CSS media queries

Broader standards approach used outside of SharePoint

Keeps a single master page and CSS

Some unnecessary components may still be loaded

Device Channels SharePoint specific approach

Assign different master pages to different device channels

Rules define what devices use which channels

Device Channel Panels can also target content to channels

Hybrid here can also make sense Device channels can be used to remove unnecessary items from the page payload

Our Adaptive Approach

Built using the Twitter Boostrap CSS framework

twittergithubcombootstrap

Provides a responsive design framework for supporting PC Mac tablet and mobile

We enhanced to provide better touch navigation support

Can be leveraged in the master page page layouts and display templates

Incorporated into the SharePoint 2013 Design Master

HTML based master page that can be edited with any tool

SharePoint converts to a master page when uploaded or saved

Additional Open Source Tools and Resources

HTML CSS JavaScript jQuery

httpwwww3schoolscom

httpgetbootstrapcom

httphandlebarsjscom

httpknockoutjscom

httpsangularjsorg

httpmomentjscom

Content Search Web Part

Web part is configured to return search results

Executed as client-side code in the browser

Pair of display templates map the data returned to HTML

Control template for the overall structure

Item template for each item returned

HTML Designer Manager files are compiled to JavaScript

REST Search and Handlebars

Search is accessible through REST calls

httpsiteurl_apisearchquery

Returns results as a JSON array

Handlebars is a templating engine to format that

Conceptually similar to display templates with control and item sections

jQuery glues this all together

Steps to Experiment

F12 to get into Developer Toolbar

Set a breakpoint where the REST URL is determined

Copy the value

Paste into the REST Search test window

Experiment with the query

Adjust the Handlebars template appropriately

Search Setup

Content Sources to define and schedule the crawls

Crawl logs to review success

Search Schema to define the managed properties

Reusable Content

Snippets of HTML that can be reused throughout the site

JavaScript can be intelligent and use the URL to determine its behaviour

Makes it easy for content authors to drop pre-configured dynamic content onto pages

Topic Pages

Shows all items that match a topic

Could be hundreds of virtual pages

Only one template page

Easily customizable and SEO friendly (each topic appears to be its own page)

Content by search web part open search against a query or result source

May be able to surface the topic pages themselves as site search results

Public Health Ontario

httpwwwpublichealthontariocaenBrowseByTopicPagesTopicaspxk=Influenza20InformationByTopic22Influenza22

Ontario Association of Childrens Aid Societies

Application Lifecycle Management

Purpose

How do we build a solid SharePoint development environment for the enterprise

How do a number of developers work together on a SharePoint project

How does code and content move through a dev test and production lifecycle

What is Agile and Continuous Integration and why is it important

Visual Studio and Team Foundation Server

Visual Studio 2010 is the development platform for coding on SharePoint 2010

Team Foundation Server integrates with Visual Studio to provide a repository for code test and other project artifacts

It facilitates teamwork by providing a common place for developers to work together

Provisioning SharePoint Farms

Provisioning SharePoint Farms

Every developer needs their own complete SharePoint farm

Teams need a dev integration farm to bring their work together on

A full architecture needs QA and production farms as well

Envision IT Virtualization Architecture

Developer VM Template

SharePoint Server 2010 Enterprise

SP1 and August CU

Visual Studio 2010 Premium SP1

Office 2010 Professional Plus SP1

SharePoint Designer 2010 SP1

Fiddler

SQL Server 2008 R2 SP1

Creating a new Developer VM

Open System Centre Virtual Machine Manager

Create Virtual Machine

Choose the Developer VM template

Set the virtual machine name and options

Create and start the VM

Creating a new Developer VM - Step 2

Developer RDPs to their new VM Complete the SQL Server installation

Create the default instance Set the service account(s) Set the authentication mode and server administrators

Update the AutoSPInstallerInputxml file Set the machine name for the default sites and database server Set the service account passwords

Run the AutoSPInstallerLaunch batch file Do a Health check review

Creating a new Developer VM - Step 3

Start Visual Studio

Connect to the Team Foundation Server

Setup your workspaces

Use a standard naming convention across your team

CDevelopmentTFSCollection

Other Environments

Dev Integration QA and Production can all be built using AutoSPInstall

Donrsquot need or want the Visual Studio or Office tools on these servers

We have a base template we use for dev integration servers

QA should match the Prod architecture as closely as possible

High availability with load balancing clustered SQL app servers DMZ hardening Internet publishing

Agile Development

Agile with Team Foundation Server

Creating Your TFS Project

Open Visual Studio

Make sure you are connected to the right Team Project Collection

In Team Explorer right-click the top collection and create a new Team Project

Use the Scrum 10 template

Go into the Areas and Iterations Delete the extraneous releases and sprints

Create a product backlog iteration

Start adding your stories and tasks

Continuous Integration

Continuous Integration

Automated Testing

SharePoint Site Elements

Site structure Site columns content types subsites lists libraries

Branding elements Master pages layouts CSS XSLT supporting images

Custom web parts Page and site content Web part instances Search Workflows Business Connectivity Services Managed Metadata

SharePoint Site Elements ndash Part 2

Access Excel Word Visio

PerformancePoint

Document conversions

Timer jobs

Secure Store Service

User profiles

Site Structure

bull Site columns

bull Define the fields that are used by content types

bull Content types

bull Defines collections of site columns for different types of content

bull Subsites

bull The hierarchy of sites that make up the site collection

bull Lists and Libraries

bull The lists and libraries for each subsite

Site Structure ndash Part 2

Site columns and content types can be programmatically or manually created If they are going to be used in multiple site collections they should be

programmatically created

If a single site collection they can be created manually in a master site collection

GUIDs cannot be manually set and code may need them to be consistent

You can create them manually in SharePoint save the site as a template and import them into Visual Studio to create a proper WSP package

Site Structure ndash Part 3

Site structure can also be done either programmatically or manually

Many sites are complex and it is error prone to create manually

We use our own SiteModelBuilder tool to create the site structure

Site Structure ndash Part 4

For all site structure elements changes can also be manual or programmatic It is useful to be able to delete the whole site collection and recreate it

programmatically As soon as content starts being authored in SharePoint it becomes difficult

or impossible to do that

After content authoring has started Site column and content type changes need to be programmed explicitly

(you canrsquot just drop the content type and recreate it) Site structure changes are usually done manually at this point Changes need to be backed up and restored

Change Management

Page and Site Content

Page and site content is entered directly into SharePoint by the content authors Web pages images PDFs list content etc This should be done in the master site separate from where dev integration is

happening Care needs to be taken with this site once authors start working Make sure it is part of your production backup plan

Periodically back it up and restore it to the dev integration and developer VMs

Alternatively script the export and import Ultimately it will be backed up and restored to the QA and production

farms

Change Management

Change Management

Change Management

Change Management

Web part instances

Web parts ultimately get placed on pages

The configuration of the web parts can often get quite complex

You may want to disable editing of web parts for general content authors

They end up in a grey zone between code and content

Web part instances ndash Part 2

We created our own internal tool to export and import web parts

Each web partrsquos configuration can be exported into a webpartfile

We scripted the extraction from the dev integration

webpart files are treated like code and checked into TFS for version control

Script then applies the new webpart files to the target environment

Workflows

Workflows can be built using SharePoint Designer Visual Studio or third-party tools (Nintex or K2 primarily)

Visual Studio workflow projects are automatically packaged as WSP solution files Simply deploy the WSP file to the other environments

SharePoint Designer workflows need to be deployed using SharePoint Designer This means you need SPD access to production which is not always possible

You can load the SPD workflow into Visual Studio to package it but you lose the ability to edit it in SPD

If you use third-party tools yoursquoll need to define the process for that as well

Business Connectivity Services

BCS can be built using either SharePoint Designer or Visual Studio Visual Studio BCS projects are automatically packaged as WSP

solution files Simply deploy the WSP file to the other environments You can also export the BDC metadata model in the BDC service

application

SharePoint Designer doesnrsquot create a WSP and it doesnrsquot make a complete BDC metadata model You need to export and import using SharePoint Designer

In both cases you still need to deal with connection and configuration information

Future Directions

Visual Studio Lab Management

Integrates the management of HyperV environments in with Visual Studio and Team Foundation Server

Can automate the provisioning of lab environments for automated testing

Test failures can snapshot entire environments to make reproduction of errors much easier

Summary

Yoursquore going to have lots of SharePoint environments ndash figure out how to build them quickly and repeatable

Code and content often move in opposite directions through dev QA and Prod PowerShell script and automate to keep this simple

Agile is a great way to run projects

Continuous integration with automated testing is key to its success

There are lots of parts of SharePoint that you donrsquot code through Visual Studio Figure out how you move those through your environment

Other Topics

Site Design

Information architecture

Wireframes

Creative designs ndash Mobile first

Catalogs deep dive

Site build PowerShell scripts

Team Foundation Server and Application Lifecycle Management

Starting a new project

Managing content authoring

Site Improve tool

SEO Optimizations

Analytics options

Retaining Page Ranks with permanent redirects (301)

Azure SharePoint Hosting

Q amp A

Session Evaluations

Go to Evaluations on the home page of wwwcollabconorg

It is important to get your feedback

Please fill out evaluations for all the sessions you attend

Following the conference a random drawing from all completed evaluations will be selected

The winner will receive a $250 Future Shop gift card valid online or in store

Page 7: Web Content Management - CollabCon 2015 - Web... · Performances Complete Works ... Friendly URL An SEO friendly URL defined in the term store for a page, rather than ... What’s

OMA Insurance

Media Experts

The Travel Corporation

Shakespeare Reference Project

wwwenvisionitcomshakespeare

Download the zip file for all the artifacts MindMap

Axure wireframe

Word Functional Spec

Visual Studio projects

PowerShell deployment scripts

Term store exportimport tool and XML data

Term store navigation control

Content

High Level Overview

Prod httpsshakespeareenvisionitcom

Dev Integration httpsshakespearedevenvisionitcom

News

Events

Productions

Performances

Complete Works Plays

‒ Comedy

‒ History

‒ Tragedy

Poetry

Adaptive Design

Built Using Twitter Bootstrap V3

Smartphone Portrait Tablet and Desktop breakpoints

Switches to fluid responsive design below smartphone resolution

Navigation and Friendly URLs

Term store used for navigation and friendly URLs

Server side control outputs HTML for top nav left nav and breadcrumb

Plan is to convert to client-side to support Office 365

Term Store Setup

Two groups used to separate metadata from navigation

Metadata group setup globally

Static GUIDs consistent through all environments

Navigation group setup at the site collection level

Allows multiple copies for multiple sites on the farm

Open Source Tools and Resources

HTML CSS JavaScript jQuery

httpwwww3schoolscom

httpgetbootstrapcom

httphandlebarsjscom

httpknockoutjscom

httpsangularjsorg

httpmomentjscom

Build Process

Complete script is the master script to setup the site

On a new farm it creates the web app and site collection

If the site collection exists it should not affect any content

Useful for updating branding and web parts

TFS build should run this

Need to explicitly force the full run

General Project Process

Create run and test the scripts on your own developer VM

When ready run on dev integration to setup site

Content authoring can happen on dev integration

Script the extraction of content

Compare to TFS and check in as required

Always back up your content authoring site before re-running a full build

Complete Script

Check and create the web app Check and create the site collection Import the term store Set the term store navigation Build the site structure Populate the content Catalogs Search Branding Web Parts

Other Scripts

Set Environment

Defines parameters for each of the environments

Typically has defaults intended for VM13 developer environment

Export the term store to XML

Export list or library content

Overview of ESC Scripts

ESCBuilder_DeployPackages

ESCBuilder_Helper

ESCBuilder_PopulateStructureContent

ESCBuilder_Search

Design Phase

MindMap Information Architecture

Axure Wireframes

PhotoShop or Illustrator Creative Designs

Site Columns and Content Types

Create directly through the SharePoint UI

Senior Consultant can do this in an initial empty devintegration environment

Export script exports these to XML files

Import into target envionments

Typically need Term Store configured as well for Managed Metadata columns

Branding Files

No longer in a Visual Studio WSP package

Simply a collection of files in the Builder folder

Still managed through TFS

Build script uploads and publishes these to the target site

Can edit directly against SharePoint by opening in Windows Explorer

Need to be careful about updating TFS

Export will export the branding files but has farm information in the files that makes it difficult to compare against TFS

Catalogs

Three main steps

Enabling lists or libraries as catalogs

Creating the catalog connection

Building the page layouts to display the category rollups or item detail pages

Enabling Catalogs

Doesnrsquot have to be a list can be a document Images or Pages library

Experimenting using a Pages library

This gives us draft and published states that lists donrsquot support

Preview and editing is easier

Fairly simple script to do this

Needs a full crawl after doing this

Creating the Catalog Connection

Rishan did some great work here

Scripts establish the connection and also update the term store as required

SharePoint Catalog Page Layouts

Uses the CSWP and Content Reuse web parts

Result sources defined in Search for each catalog connection

GUIDs for the result sources different in each farm and need to be updated as part of the deployment

REST Search Catalog Pages

HTML with data attributes on page layouts or in Reusable HTML

jQuery detects this

Builds a REST Search query based on the attributes and URL

Calls SharePoint

Uses Handlebars to format the results

Product Replacements

Video Player is part of the lib structure

Needs references added to the master page

Any hyperlink to an MP4 file launches the video popup

Image Rotator

Jeff is working on standardizing some jQuery slider options

Photo Viewer

No plans just yet

All of these will be part of the ESC package

Starting a New Project

Copy the five ESC scripts from $Envision Shakespeare CompanyBuilder Do not rename

Copy the ShakespeareBuild scripts Rename to your project Update the steps as required for your project

Create the infrastructure WSP Site columns content types list definitions and instances

Manually create the pages and assets that are needed in SharePoint Manually create the term store for metadata and navigation Script the extraction to TFS of content and term store Create the branding WSP Manually create any required web parts Export to TFS and script the placement of the web parts on the pages

ESC Scripts Next Steps

Incorporate TMX additions Farm property bag instead of webconfig Audiences Subsites Available layouts Permissions Extract folders and lists

Continue reconciling additional projects in OMA TMX Christie Medical

Full header blocks and commenting Version numbers Complete the catalog connection script Office 365 support

Links

wwwenvisionitcom

blogpetercarsonca

wwwenvisionitcomshakespeare

httpsShakespeareenvisionitcom

wwwbgccancom

wwwproblemgamblingca

wwwrusselmetalscom

wwwtarioncom

wwwtransamericaca

wwwcollegeofececa

wwwsamuelcom

wwwthewaterfrontpropertiesca

wwwshopsatdonmillsca

wwwfuturesherwaygardensca

wwwpublichealthontarioca

SharePoint WCM Glossary

SharePoint Glossary

Term Definition

SharePoint Farm A set of SharePoint servers that share a single configuration database

Web Application A top level container and entry-point URLs for site collections

Site Collection A set of Web sites that are in the same content database have the same owner and share administration settings A site collection can be identified by a GUID or the URL of the top-level site for the site collection Each site collection contains a top-level site can contain one or more subsites and can have a shared navigation structure

Path Based Site Collection A site collection under a managed pathhttpwebappsitessitecollection

Host Named Site Collection A site collection with its own unique URL Must be created through PowerShell

Site Subsite under a site collection

Site Template A template for a single site that has been saved from another site Site templates may or may not contain content Templates cannot be created from publishing sites

SharePoint Glossary

Term Definition

Site Column A single field that can store information of a particular typebull Textbull Choicebull Numberbull hellipDefined at the site collection level

Content Type A content type is a reusable collection of Site Columns that can be applied to a certain category of content Content types enable the management of metadata and behaviors of a document or item type in a centralized reusable way Basically content types include the columns (or fields) that are applied to a certain type of content plus other optional settings such as a document template

Document Set New content type in SharePoint 2010 A document set is a container for multiple documents to which you can assign certain metadata and treat as a single entity in many ways In addition a document set can contain one or more different content types

SharePoint Glossary

Term Definition

List A container for list content types or custom list items Columns can be defined via content types or directly in the list

Document Library A SharePoint list that contains documents where you can create collect update and share files with others Like lists columns can be defined via content types or directly in the list

Form Library A special type of library to facilitate the interaction with InfoPath forms

Asset Library A library typically used to store image audio and video files

List Template A template used to define the configuration of a list or library Templates can be saved with or without content

SharePoint Glossary

Term Definition

Term Store An instance of the Managed Metadata Service This can be shared between sites site collections web applications or farms

Group A collection of term sets

Term Set A collection of related terms

Term A word or a phrase that can be associated with a SharePoint item

Friendly URL An SEO friendly URL defined in the term store for a page rather than the physical URL of where the page is stored (Pages)

SharePoint Glossary

Term Definition

Design Manager 2013 feature used to manipulate WCM artifacts

Master Page Defines elements that are common to all pages such as the header navigation and footer

Page Layout Defines the layout of a particular style of page such as news or events Each page content type can have one or more layouts associated with them

Web Parts Functional elements that can be added to pages typically for dynamic content

Apps Similar to web parts but run outside of SharePoint while beinghosted in the SharePoint page

Publishing Site Page Rendering

FileName

Welcomeaspx

PageLayout

PageLayoutaspx

Title

Welcome To News

Body

Lorem ipsum dolor sit

Image

ImagesChairjpg

1 Welcomeaspx page is

requested

2 Page layout associated with

page is retrieved

3 Master page associated with site

is retrieved

4 Controls in page layout render

content from pagersquos fields into the page

MasterPagemaster

PageLayoutaspxTitle

BodyImage

Date

ByLine

Field Control

FieldControl

Field ControlField ControlField Control

Field Control

httpfoocombarpageswelcomeaspx

SharePoint Glossary

Term Definition

Cross-Site Publishing Publishing from an authoring site collection to one or more publishing site collections

Catalog A list that has been published as a catalog

Category Page A page that displays a rollup of catalog items

Catalog Item Page A page that displays a single item from a catalog

Display Template Used to format the results on search pages in content search web parts and on category pages

Whatrsquos New in Web Content

Management

Easier Page Authoring With Cut and Paste

Drag and Drop Files

Drag and drop files from Windows Explorer into the browser or the other way

Doesnrsquot support folders or document sets

Open in Windows Explorer still works best for this

Requires IE10 or current versions of Chrome Safari or Firefox

IE8 and 9 supported with Office 2013 installed

Image Renditions

Display uploaded images in predefined sizes widths and crops

Multiple renditions stored in document sets

Content author can create renditions (including crops) in the browser

Design Manager

New way to build master

pages and layouts

SharePoint Designer no

longer required

Edit and preview in any HTML

editor

Automatically creates the associated

master page and aspx

layouts

Package into a Design

Package WSP for

deployment

Snippet Gallery

Select components

such as search box or

navigation control

Configure its properties

Paste the snippet into your HTML

master page or layout

Changes synched to

actual master pages and layouts to convert to SharePoint

components

Can be used by any web design

tool

Device Channels

Map channels to mobile devices or browsers

Alternate master pages

can be assigned

Page layouts can include or

exclude content based

on channel

Display Templates

Used to customize the

presentation of search results

No more XSLT

Three templates

bull Control ndash Overall structure of search results

bull Group ndash Show groups of results

bull Item ndash How each result is presented

Navigation and Friendly URLs

Site navigation driven by managed metadata

Term store used for navigation and SEO-friendly URLs

Connect site navigation to business concepts rather than site structure

Server side control outputs HTML for top nav left nav and breadcrumb

Plan is to convert to client-side to support Office 365

Term Store Setup

Two groups used to separate metadata from navigation

Metadata group setup globally

Static GUIDs consistent through all environments

Navigation group setup at the site collection level

Allows multiple copies for multiple sites on the farm

Search

Search is new and different from all previous versions of SharePoint

The platform has been consolidated Built on a combination of FAST Search and SharePoint Search components as well as new development work ndash it is the

same from Foundation to Server

Foundation Search is intended to replace WSS Search Microsoft Search Server and Search Server Express from previous versions of SharePoint

Itrsquos used pervasively throughout the product now in many different ways in different features eDiscovery navigation topic pages Internet facing business sites etc

Search in SharePoint 2013

Single Extensible Platform

FAST Engine

SharePoint Crawler

Best of both

Same Search Platform in both SharePoint and Exchange

Enterprise Search

Search Page Web parts added to a publishing page

Catalogs Cross-site publishing

Library search Executes in place on the library

Site Search _layouts15osssearchresultsaspx Specifies the site and search parameters

Search Centre Basic Search Center - SharePoint Foundation 2013 Enterprise Search Center - SharePoint Server 2013

Content Search Web Part

Similar in concept to the Content Query Web Part

Many advantages

Can go across sites site collections web apps even farms

Leverages the search index -gt very scalable

Query Builder makes it easy to define your results

Use Display Templates to customize the look and feel No more XSLT

Part of the Enterprise CAL

Pre-Configured CSWPs

Popular Items Shows items that have been recently viewed by many users

Recently Changed Items Shows items that have been modified recently This can help site users

track the latest activity on a site or a library

Recommended Items Show content recommendations based on usage patterns for the current

page

All of these can be further configured by editing their properties and changing the search criteria

Search Results Web Part

Similar functionality to the Content Search Web Part

Doesnrsquot allow property mapping in the web part configuration

Mapping is controlled in the Display Template

Part of the Standard CAL

Category Page Item Page

Catalogs

wwwcontosocomproductsAudio-Liware2g

Catalogs

Results

Consistent Displays

Manage content in one place

No need to create

pages

No need to format

Metadata Navigation

Cross-Site Publishing

Reuse content between different sites including site collections and farms

Catalogs can surface lists into publishing sites onto a category page and item pages

Can be surfaced through the Content Search Web Part

No need to create and publish web pages

Create custom friendly URLs

Metadata based navigation base

Cross Site Publishing

Job Posting

Job Posting

Job Posting

Job Posting

Simcoe County District School Board

50000 students

Over 6000 employees

Board office in Barrie

Bordered by the Holland Marsh in the south the Trent-Severn Waterway in the east Grey County in the west and Muskoka in the north

Simcoe County District School Board

119 schools and centres 87 elementary 16 secondary 6 learning centres 10 alternative

Each needs their own web site Being built on SharePoint 2013 Elementary panel first Each has their own unique URL Content authored both at the school and centrally from the board

wwwscdsbonca Pre-existing SharePoint 2010 site Future goal is to rebuild in SharePoint 2013

Business Challenge

100+ public web sites

No standardization on style technology or content

No ability for the board to push content to the school sites

Outdated sites

Not mobile or AODA compliant

Site Features

Fully Adaptivemobile design Robust Search functionality Template makes it fast and efficient to add new school sites News and events can be targeted by the Board to any number of

school sites Target by panel weather zone trustee language Presented in a blended view with the school news and events

Home page rotator links hours content pages all managed by the school staff

SEO-friendly URLs

News

School news entered by school staff

Board news entered in the board site

Rendered using cross-site publishing

High-priority alerts can be flagged to highlight on the site

Bus or school cancellations

Events

Single and multi-day events

School and board managed like news

Adaptive calendar

School Picker

Used to pick which schools to target news and events to

Schools are tagged through the term store

Target by panel weather zone trustee language

Can override and add or remove individual schools

Search

Catalogs

Three main steps

Enabling lists or libraries as catalogs

Creating the catalog connection

Building the page layouts to display the category rollups or item detail pages

Enabling Catalogs

Doesnrsquot have to be a list can be a document Images or Pages library

Experimenting using a Pages library

This gives us draft and published states that lists donrsquot support

Preview and editing is easier

Fairly simple script to do this

Catalog connections are more complex

Create the connection

Fix up the Term Store

Create the Category and Item page layouts and pages

SEO Enhancements

Friendly URLs

Home page redirects

XML sitemaps automatically generated and updated

Custom SEO properties

Usage Analytics

Built for scale from the ground up Detail data rolled up every 15 days amp anonymized Daily events purged every 15 days monthly events after 3 years Lifetime counts always retained

Counts views amp unique itemsday Shows recent (2-weeks) and lifetime count Trims least visited content Pushes aggregate data to reporting database

Drives recommendations capabilities on content Calculations injected into search index as sortable managed properties Deep integration with search engine Can influence search relevance based on content usage

Variations and Multi-Lingual

Export and import content for translation in XLIFF format

Pages

Labels

List items

Navigation

Bing translation service comes with active SharePoint 2013 license

Adaptive Web Design

Adaptive vs Responsive

Adaptive

Fixed breakpoints‒ Desktop gt 980 px

‒ Table portrait gt 768 px

‒ Phone to tablet gt 480 px lt 768 px

‒ Smartphone lt 480 px

Responsive

No fixed breakpoints

Design fluidly adapts to whatever width the browser is

We generally do a hybrid approach with responsive design in the under 768 pixel situation

Design Approaches in SharePoint

Adaptive Design through CSS media queries

Broader standards approach used outside of SharePoint

Keeps a single master page and CSS

Some unnecessary components may still be loaded

Device Channels SharePoint specific approach

Assign different master pages to different device channels

Rules define what devices use which channels

Device Channel Panels can also target content to channels

Hybrid here can also make sense Device channels can be used to remove unnecessary items from the page payload

Our Adaptive Approach

Built using the Twitter Boostrap CSS framework

twittergithubcombootstrap

Provides a responsive design framework for supporting PC Mac tablet and mobile

We enhanced to provide better touch navigation support

Can be leveraged in the master page page layouts and display templates

Incorporated into the SharePoint 2013 Design Master

HTML based master page that can be edited with any tool

SharePoint converts to a master page when uploaded or saved

Additional Open Source Tools and Resources

HTML CSS JavaScript jQuery

httpwwww3schoolscom

httpgetbootstrapcom

httphandlebarsjscom

httpknockoutjscom

httpsangularjsorg

httpmomentjscom

Content Search Web Part

Web part is configured to return search results

Executed as client-side code in the browser

Pair of display templates map the data returned to HTML

Control template for the overall structure

Item template for each item returned

HTML Designer Manager files are compiled to JavaScript

REST Search and Handlebars

Search is accessible through REST calls

httpsiteurl_apisearchquery

Returns results as a JSON array

Handlebars is a templating engine to format that

Conceptually similar to display templates with control and item sections

jQuery glues this all together

Steps to Experiment

F12 to get into Developer Toolbar

Set a breakpoint where the REST URL is determined

Copy the value

Paste into the REST Search test window

Experiment with the query

Adjust the Handlebars template appropriately

Search Setup

Content Sources to define and schedule the crawls

Crawl logs to review success

Search Schema to define the managed properties

Reusable Content

Snippets of HTML that can be reused throughout the site

JavaScript can be intelligent and use the URL to determine its behaviour

Makes it easy for content authors to drop pre-configured dynamic content onto pages

Topic Pages

Shows all items that match a topic

Could be hundreds of virtual pages

Only one template page

Easily customizable and SEO friendly (each topic appears to be its own page)

Content by search web part open search against a query or result source

May be able to surface the topic pages themselves as site search results

Public Health Ontario

httpwwwpublichealthontariocaenBrowseByTopicPagesTopicaspxk=Influenza20InformationByTopic22Influenza22

Ontario Association of Childrens Aid Societies

Application Lifecycle Management

Purpose

How do we build a solid SharePoint development environment for the enterprise

How do a number of developers work together on a SharePoint project

How does code and content move through a dev test and production lifecycle

What is Agile and Continuous Integration and why is it important

Visual Studio and Team Foundation Server

Visual Studio 2010 is the development platform for coding on SharePoint 2010

Team Foundation Server integrates with Visual Studio to provide a repository for code test and other project artifacts

It facilitates teamwork by providing a common place for developers to work together

Provisioning SharePoint Farms

Provisioning SharePoint Farms

Every developer needs their own complete SharePoint farm

Teams need a dev integration farm to bring their work together on

A full architecture needs QA and production farms as well

Envision IT Virtualization Architecture

Developer VM Template

SharePoint Server 2010 Enterprise

SP1 and August CU

Visual Studio 2010 Premium SP1

Office 2010 Professional Plus SP1

SharePoint Designer 2010 SP1

Fiddler

SQL Server 2008 R2 SP1

Creating a new Developer VM

Open System Centre Virtual Machine Manager

Create Virtual Machine

Choose the Developer VM template

Set the virtual machine name and options

Create and start the VM

Creating a new Developer VM - Step 2

Developer RDPs to their new VM Complete the SQL Server installation

Create the default instance Set the service account(s) Set the authentication mode and server administrators

Update the AutoSPInstallerInputxml file Set the machine name for the default sites and database server Set the service account passwords

Run the AutoSPInstallerLaunch batch file Do a Health check review

Creating a new Developer VM - Step 3

Start Visual Studio

Connect to the Team Foundation Server

Setup your workspaces

Use a standard naming convention across your team

CDevelopmentTFSCollection

Other Environments

Dev Integration QA and Production can all be built using AutoSPInstall

Donrsquot need or want the Visual Studio or Office tools on these servers

We have a base template we use for dev integration servers

QA should match the Prod architecture as closely as possible

High availability with load balancing clustered SQL app servers DMZ hardening Internet publishing

Agile Development

Agile with Team Foundation Server

Creating Your TFS Project

Open Visual Studio

Make sure you are connected to the right Team Project Collection

In Team Explorer right-click the top collection and create a new Team Project

Use the Scrum 10 template

Go into the Areas and Iterations Delete the extraneous releases and sprints

Create a product backlog iteration

Start adding your stories and tasks

Continuous Integration

Continuous Integration

Automated Testing

SharePoint Site Elements

Site structure Site columns content types subsites lists libraries

Branding elements Master pages layouts CSS XSLT supporting images

Custom web parts Page and site content Web part instances Search Workflows Business Connectivity Services Managed Metadata

SharePoint Site Elements ndash Part 2

Access Excel Word Visio

PerformancePoint

Document conversions

Timer jobs

Secure Store Service

User profiles

Site Structure

bull Site columns

bull Define the fields that are used by content types

bull Content types

bull Defines collections of site columns for different types of content

bull Subsites

bull The hierarchy of sites that make up the site collection

bull Lists and Libraries

bull The lists and libraries for each subsite

Site Structure ndash Part 2

Site columns and content types can be programmatically or manually created If they are going to be used in multiple site collections they should be

programmatically created

If a single site collection they can be created manually in a master site collection

GUIDs cannot be manually set and code may need them to be consistent

You can create them manually in SharePoint save the site as a template and import them into Visual Studio to create a proper WSP package

Site Structure ndash Part 3

Site structure can also be done either programmatically or manually

Many sites are complex and it is error prone to create manually

We use our own SiteModelBuilder tool to create the site structure

Site Structure ndash Part 4

For all site structure elements changes can also be manual or programmatic It is useful to be able to delete the whole site collection and recreate it

programmatically As soon as content starts being authored in SharePoint it becomes difficult

or impossible to do that

After content authoring has started Site column and content type changes need to be programmed explicitly

(you canrsquot just drop the content type and recreate it) Site structure changes are usually done manually at this point Changes need to be backed up and restored

Change Management

Page and Site Content

Page and site content is entered directly into SharePoint by the content authors Web pages images PDFs list content etc This should be done in the master site separate from where dev integration is

happening Care needs to be taken with this site once authors start working Make sure it is part of your production backup plan

Periodically back it up and restore it to the dev integration and developer VMs

Alternatively script the export and import Ultimately it will be backed up and restored to the QA and production

farms

Change Management

Change Management

Change Management

Change Management

Web part instances

Web parts ultimately get placed on pages

The configuration of the web parts can often get quite complex

You may want to disable editing of web parts for general content authors

They end up in a grey zone between code and content

Web part instances ndash Part 2

We created our own internal tool to export and import web parts

Each web partrsquos configuration can be exported into a webpartfile

We scripted the extraction from the dev integration

webpart files are treated like code and checked into TFS for version control

Script then applies the new webpart files to the target environment

Workflows

Workflows can be built using SharePoint Designer Visual Studio or third-party tools (Nintex or K2 primarily)

Visual Studio workflow projects are automatically packaged as WSP solution files Simply deploy the WSP file to the other environments

SharePoint Designer workflows need to be deployed using SharePoint Designer This means you need SPD access to production which is not always possible

You can load the SPD workflow into Visual Studio to package it but you lose the ability to edit it in SPD

If you use third-party tools yoursquoll need to define the process for that as well

Business Connectivity Services

BCS can be built using either SharePoint Designer or Visual Studio Visual Studio BCS projects are automatically packaged as WSP

solution files Simply deploy the WSP file to the other environments You can also export the BDC metadata model in the BDC service

application

SharePoint Designer doesnrsquot create a WSP and it doesnrsquot make a complete BDC metadata model You need to export and import using SharePoint Designer

In both cases you still need to deal with connection and configuration information

Future Directions

Visual Studio Lab Management

Integrates the management of HyperV environments in with Visual Studio and Team Foundation Server

Can automate the provisioning of lab environments for automated testing

Test failures can snapshot entire environments to make reproduction of errors much easier

Summary

Yoursquore going to have lots of SharePoint environments ndash figure out how to build them quickly and repeatable

Code and content often move in opposite directions through dev QA and Prod PowerShell script and automate to keep this simple

Agile is a great way to run projects

Continuous integration with automated testing is key to its success

There are lots of parts of SharePoint that you donrsquot code through Visual Studio Figure out how you move those through your environment

Other Topics

Site Design

Information architecture

Wireframes

Creative designs ndash Mobile first

Catalogs deep dive

Site build PowerShell scripts

Team Foundation Server and Application Lifecycle Management

Starting a new project

Managing content authoring

Site Improve tool

SEO Optimizations

Analytics options

Retaining Page Ranks with permanent redirects (301)

Azure SharePoint Hosting

Q amp A

Session Evaluations

Go to Evaluations on the home page of wwwcollabconorg

It is important to get your feedback

Please fill out evaluations for all the sessions you attend

Following the conference a random drawing from all completed evaluations will be selected

The winner will receive a $250 Future Shop gift card valid online or in store

Page 8: Web Content Management - CollabCon 2015 - Web... · Performances Complete Works ... Friendly URL An SEO friendly URL defined in the term store for a page, rather than ... What’s

Media Experts

The Travel Corporation

Shakespeare Reference Project

wwwenvisionitcomshakespeare

Download the zip file for all the artifacts MindMap

Axure wireframe

Word Functional Spec

Visual Studio projects

PowerShell deployment scripts

Term store exportimport tool and XML data

Term store navigation control

Content

High Level Overview

Prod httpsshakespeareenvisionitcom

Dev Integration httpsshakespearedevenvisionitcom

News

Events

Productions

Performances

Complete Works Plays

‒ Comedy

‒ History

‒ Tragedy

Poetry

Adaptive Design

Built Using Twitter Bootstrap V3

Smartphone Portrait Tablet and Desktop breakpoints

Switches to fluid responsive design below smartphone resolution

Navigation and Friendly URLs

Term store used for navigation and friendly URLs

Server side control outputs HTML for top nav left nav and breadcrumb

Plan is to convert to client-side to support Office 365

Term Store Setup

Two groups used to separate metadata from navigation

Metadata group setup globally

Static GUIDs consistent through all environments

Navigation group setup at the site collection level

Allows multiple copies for multiple sites on the farm

Open Source Tools and Resources

HTML CSS JavaScript jQuery

httpwwww3schoolscom

httpgetbootstrapcom

httphandlebarsjscom

httpknockoutjscom

httpsangularjsorg

httpmomentjscom

Build Process

Complete script is the master script to setup the site

On a new farm it creates the web app and site collection

If the site collection exists it should not affect any content

Useful for updating branding and web parts

TFS build should run this

Need to explicitly force the full run

General Project Process

Create run and test the scripts on your own developer VM

When ready run on dev integration to setup site

Content authoring can happen on dev integration

Script the extraction of content

Compare to TFS and check in as required

Always back up your content authoring site before re-running a full build

Complete Script

Check and create the web app Check and create the site collection Import the term store Set the term store navigation Build the site structure Populate the content Catalogs Search Branding Web Parts

Other Scripts

Set Environment

Defines parameters for each of the environments

Typically has defaults intended for VM13 developer environment

Export the term store to XML

Export list or library content

Overview of ESC Scripts

ESCBuilder_DeployPackages

ESCBuilder_Helper

ESCBuilder_PopulateStructureContent

ESCBuilder_Search

Design Phase

MindMap Information Architecture

Axure Wireframes

PhotoShop or Illustrator Creative Designs

Site Columns and Content Types

Create directly through the SharePoint UI

Senior Consultant can do this in an initial empty devintegration environment

Export script exports these to XML files

Import into target envionments

Typically need Term Store configured as well for Managed Metadata columns

Branding Files

No longer in a Visual Studio WSP package

Simply a collection of files in the Builder folder

Still managed through TFS

Build script uploads and publishes these to the target site

Can edit directly against SharePoint by opening in Windows Explorer

Need to be careful about updating TFS

Export will export the branding files but has farm information in the files that makes it difficult to compare against TFS

Catalogs

Three main steps

Enabling lists or libraries as catalogs

Creating the catalog connection

Building the page layouts to display the category rollups or item detail pages

Enabling Catalogs

Doesnrsquot have to be a list can be a document Images or Pages library

Experimenting using a Pages library

This gives us draft and published states that lists donrsquot support

Preview and editing is easier

Fairly simple script to do this

Needs a full crawl after doing this

Creating the Catalog Connection

Rishan did some great work here

Scripts establish the connection and also update the term store as required

SharePoint Catalog Page Layouts

Uses the CSWP and Content Reuse web parts

Result sources defined in Search for each catalog connection

GUIDs for the result sources different in each farm and need to be updated as part of the deployment

REST Search Catalog Pages

HTML with data attributes on page layouts or in Reusable HTML

jQuery detects this

Builds a REST Search query based on the attributes and URL

Calls SharePoint

Uses Handlebars to format the results

Product Replacements

Video Player is part of the lib structure

Needs references added to the master page

Any hyperlink to an MP4 file launches the video popup

Image Rotator

Jeff is working on standardizing some jQuery slider options

Photo Viewer

No plans just yet

All of these will be part of the ESC package

Starting a New Project

Copy the five ESC scripts from $Envision Shakespeare CompanyBuilder Do not rename

Copy the ShakespeareBuild scripts Rename to your project Update the steps as required for your project

Create the infrastructure WSP Site columns content types list definitions and instances

Manually create the pages and assets that are needed in SharePoint Manually create the term store for metadata and navigation Script the extraction to TFS of content and term store Create the branding WSP Manually create any required web parts Export to TFS and script the placement of the web parts on the pages

ESC Scripts Next Steps

Incorporate TMX additions Farm property bag instead of webconfig Audiences Subsites Available layouts Permissions Extract folders and lists

Continue reconciling additional projects in OMA TMX Christie Medical

Full header blocks and commenting Version numbers Complete the catalog connection script Office 365 support

Links

wwwenvisionitcom

blogpetercarsonca

wwwenvisionitcomshakespeare

httpsShakespeareenvisionitcom

wwwbgccancom

wwwproblemgamblingca

wwwrusselmetalscom

wwwtarioncom

wwwtransamericaca

wwwcollegeofececa

wwwsamuelcom

wwwthewaterfrontpropertiesca

wwwshopsatdonmillsca

wwwfuturesherwaygardensca

wwwpublichealthontarioca

SharePoint WCM Glossary

SharePoint Glossary

Term Definition

SharePoint Farm A set of SharePoint servers that share a single configuration database

Web Application A top level container and entry-point URLs for site collections

Site Collection A set of Web sites that are in the same content database have the same owner and share administration settings A site collection can be identified by a GUID or the URL of the top-level site for the site collection Each site collection contains a top-level site can contain one or more subsites and can have a shared navigation structure

Path Based Site Collection A site collection under a managed pathhttpwebappsitessitecollection

Host Named Site Collection A site collection with its own unique URL Must be created through PowerShell

Site Subsite under a site collection

Site Template A template for a single site that has been saved from another site Site templates may or may not contain content Templates cannot be created from publishing sites

SharePoint Glossary

Term Definition

Site Column A single field that can store information of a particular typebull Textbull Choicebull Numberbull hellipDefined at the site collection level

Content Type A content type is a reusable collection of Site Columns that can be applied to a certain category of content Content types enable the management of metadata and behaviors of a document or item type in a centralized reusable way Basically content types include the columns (or fields) that are applied to a certain type of content plus other optional settings such as a document template

Document Set New content type in SharePoint 2010 A document set is a container for multiple documents to which you can assign certain metadata and treat as a single entity in many ways In addition a document set can contain one or more different content types

SharePoint Glossary

Term Definition

List A container for list content types or custom list items Columns can be defined via content types or directly in the list

Document Library A SharePoint list that contains documents where you can create collect update and share files with others Like lists columns can be defined via content types or directly in the list

Form Library A special type of library to facilitate the interaction with InfoPath forms

Asset Library A library typically used to store image audio and video files

List Template A template used to define the configuration of a list or library Templates can be saved with or without content

SharePoint Glossary

Term Definition

Term Store An instance of the Managed Metadata Service This can be shared between sites site collections web applications or farms

Group A collection of term sets

Term Set A collection of related terms

Term A word or a phrase that can be associated with a SharePoint item

Friendly URL An SEO friendly URL defined in the term store for a page rather than the physical URL of where the page is stored (Pages)

SharePoint Glossary

Term Definition

Design Manager 2013 feature used to manipulate WCM artifacts

Master Page Defines elements that are common to all pages such as the header navigation and footer

Page Layout Defines the layout of a particular style of page such as news or events Each page content type can have one or more layouts associated with them

Web Parts Functional elements that can be added to pages typically for dynamic content

Apps Similar to web parts but run outside of SharePoint while beinghosted in the SharePoint page

Publishing Site Page Rendering

FileName

Welcomeaspx

PageLayout

PageLayoutaspx

Title

Welcome To News

Body

Lorem ipsum dolor sit

Image

ImagesChairjpg

1 Welcomeaspx page is

requested

2 Page layout associated with

page is retrieved

3 Master page associated with site

is retrieved

4 Controls in page layout render

content from pagersquos fields into the page

MasterPagemaster

PageLayoutaspxTitle

BodyImage

Date

ByLine

Field Control

FieldControl

Field ControlField ControlField Control

Field Control

httpfoocombarpageswelcomeaspx

SharePoint Glossary

Term Definition

Cross-Site Publishing Publishing from an authoring site collection to one or more publishing site collections

Catalog A list that has been published as a catalog

Category Page A page that displays a rollup of catalog items

Catalog Item Page A page that displays a single item from a catalog

Display Template Used to format the results on search pages in content search web parts and on category pages

Whatrsquos New in Web Content

Management

Easier Page Authoring With Cut and Paste

Drag and Drop Files

Drag and drop files from Windows Explorer into the browser or the other way

Doesnrsquot support folders or document sets

Open in Windows Explorer still works best for this

Requires IE10 or current versions of Chrome Safari or Firefox

IE8 and 9 supported with Office 2013 installed

Image Renditions

Display uploaded images in predefined sizes widths and crops

Multiple renditions stored in document sets

Content author can create renditions (including crops) in the browser

Design Manager

New way to build master

pages and layouts

SharePoint Designer no

longer required

Edit and preview in any HTML

editor

Automatically creates the associated

master page and aspx

layouts

Package into a Design

Package WSP for

deployment

Snippet Gallery

Select components

such as search box or

navigation control

Configure its properties

Paste the snippet into your HTML

master page or layout

Changes synched to

actual master pages and layouts to convert to SharePoint

components

Can be used by any web design

tool

Device Channels

Map channels to mobile devices or browsers

Alternate master pages

can be assigned

Page layouts can include or

exclude content based

on channel

Display Templates

Used to customize the

presentation of search results

No more XSLT

Three templates

bull Control ndash Overall structure of search results

bull Group ndash Show groups of results

bull Item ndash How each result is presented

Navigation and Friendly URLs

Site navigation driven by managed metadata

Term store used for navigation and SEO-friendly URLs

Connect site navigation to business concepts rather than site structure

Server side control outputs HTML for top nav left nav and breadcrumb

Plan is to convert to client-side to support Office 365

Term Store Setup

Two groups used to separate metadata from navigation

Metadata group setup globally

Static GUIDs consistent through all environments

Navigation group setup at the site collection level

Allows multiple copies for multiple sites on the farm

Search

Search is new and different from all previous versions of SharePoint

The platform has been consolidated Built on a combination of FAST Search and SharePoint Search components as well as new development work ndash it is the

same from Foundation to Server

Foundation Search is intended to replace WSS Search Microsoft Search Server and Search Server Express from previous versions of SharePoint

Itrsquos used pervasively throughout the product now in many different ways in different features eDiscovery navigation topic pages Internet facing business sites etc

Search in SharePoint 2013

Single Extensible Platform

FAST Engine

SharePoint Crawler

Best of both

Same Search Platform in both SharePoint and Exchange

Enterprise Search

Search Page Web parts added to a publishing page

Catalogs Cross-site publishing

Library search Executes in place on the library

Site Search _layouts15osssearchresultsaspx Specifies the site and search parameters

Search Centre Basic Search Center - SharePoint Foundation 2013 Enterprise Search Center - SharePoint Server 2013

Content Search Web Part

Similar in concept to the Content Query Web Part

Many advantages

Can go across sites site collections web apps even farms

Leverages the search index -gt very scalable

Query Builder makes it easy to define your results

Use Display Templates to customize the look and feel No more XSLT

Part of the Enterprise CAL

Pre-Configured CSWPs

Popular Items Shows items that have been recently viewed by many users

Recently Changed Items Shows items that have been modified recently This can help site users

track the latest activity on a site or a library

Recommended Items Show content recommendations based on usage patterns for the current

page

All of these can be further configured by editing their properties and changing the search criteria

Search Results Web Part

Similar functionality to the Content Search Web Part

Doesnrsquot allow property mapping in the web part configuration

Mapping is controlled in the Display Template

Part of the Standard CAL

Category Page Item Page

Catalogs

wwwcontosocomproductsAudio-Liware2g

Catalogs

Results

Consistent Displays

Manage content in one place

No need to create

pages

No need to format

Metadata Navigation

Cross-Site Publishing

Reuse content between different sites including site collections and farms

Catalogs can surface lists into publishing sites onto a category page and item pages

Can be surfaced through the Content Search Web Part

No need to create and publish web pages

Create custom friendly URLs

Metadata based navigation base

Cross Site Publishing

Job Posting

Job Posting

Job Posting

Job Posting

Simcoe County District School Board

50000 students

Over 6000 employees

Board office in Barrie

Bordered by the Holland Marsh in the south the Trent-Severn Waterway in the east Grey County in the west and Muskoka in the north

Simcoe County District School Board

119 schools and centres 87 elementary 16 secondary 6 learning centres 10 alternative

Each needs their own web site Being built on SharePoint 2013 Elementary panel first Each has their own unique URL Content authored both at the school and centrally from the board

wwwscdsbonca Pre-existing SharePoint 2010 site Future goal is to rebuild in SharePoint 2013

Business Challenge

100+ public web sites

No standardization on style technology or content

No ability for the board to push content to the school sites

Outdated sites

Not mobile or AODA compliant

Site Features

Fully Adaptivemobile design Robust Search functionality Template makes it fast and efficient to add new school sites News and events can be targeted by the Board to any number of

school sites Target by panel weather zone trustee language Presented in a blended view with the school news and events

Home page rotator links hours content pages all managed by the school staff

SEO-friendly URLs

News

School news entered by school staff

Board news entered in the board site

Rendered using cross-site publishing

High-priority alerts can be flagged to highlight on the site

Bus or school cancellations

Events

Single and multi-day events

School and board managed like news

Adaptive calendar

School Picker

Used to pick which schools to target news and events to

Schools are tagged through the term store

Target by panel weather zone trustee language

Can override and add or remove individual schools

Search

Catalogs

Three main steps

Enabling lists or libraries as catalogs

Creating the catalog connection

Building the page layouts to display the category rollups or item detail pages

Enabling Catalogs

Doesnrsquot have to be a list can be a document Images or Pages library

Experimenting using a Pages library

This gives us draft and published states that lists donrsquot support

Preview and editing is easier

Fairly simple script to do this

Catalog connections are more complex

Create the connection

Fix up the Term Store

Create the Category and Item page layouts and pages

SEO Enhancements

Friendly URLs

Home page redirects

XML sitemaps automatically generated and updated

Custom SEO properties

Usage Analytics

Built for scale from the ground up Detail data rolled up every 15 days amp anonymized Daily events purged every 15 days monthly events after 3 years Lifetime counts always retained

Counts views amp unique itemsday Shows recent (2-weeks) and lifetime count Trims least visited content Pushes aggregate data to reporting database

Drives recommendations capabilities on content Calculations injected into search index as sortable managed properties Deep integration with search engine Can influence search relevance based on content usage

Variations and Multi-Lingual

Export and import content for translation in XLIFF format

Pages

Labels

List items

Navigation

Bing translation service comes with active SharePoint 2013 license

Adaptive Web Design

Adaptive vs Responsive

Adaptive

Fixed breakpoints‒ Desktop gt 980 px

‒ Table portrait gt 768 px

‒ Phone to tablet gt 480 px lt 768 px

‒ Smartphone lt 480 px

Responsive

No fixed breakpoints

Design fluidly adapts to whatever width the browser is

We generally do a hybrid approach with responsive design in the under 768 pixel situation

Design Approaches in SharePoint

Adaptive Design through CSS media queries

Broader standards approach used outside of SharePoint

Keeps a single master page and CSS

Some unnecessary components may still be loaded

Device Channels SharePoint specific approach

Assign different master pages to different device channels

Rules define what devices use which channels

Device Channel Panels can also target content to channels

Hybrid here can also make sense Device channels can be used to remove unnecessary items from the page payload

Our Adaptive Approach

Built using the Twitter Boostrap CSS framework

twittergithubcombootstrap

Provides a responsive design framework for supporting PC Mac tablet and mobile

We enhanced to provide better touch navigation support

Can be leveraged in the master page page layouts and display templates

Incorporated into the SharePoint 2013 Design Master

HTML based master page that can be edited with any tool

SharePoint converts to a master page when uploaded or saved

Additional Open Source Tools and Resources

HTML CSS JavaScript jQuery

httpwwww3schoolscom

httpgetbootstrapcom

httphandlebarsjscom

httpknockoutjscom

httpsangularjsorg

httpmomentjscom

Content Search Web Part

Web part is configured to return search results

Executed as client-side code in the browser

Pair of display templates map the data returned to HTML

Control template for the overall structure

Item template for each item returned

HTML Designer Manager files are compiled to JavaScript

REST Search and Handlebars

Search is accessible through REST calls

httpsiteurl_apisearchquery

Returns results as a JSON array

Handlebars is a templating engine to format that

Conceptually similar to display templates with control and item sections

jQuery glues this all together

Steps to Experiment

F12 to get into Developer Toolbar

Set a breakpoint where the REST URL is determined

Copy the value

Paste into the REST Search test window

Experiment with the query

Adjust the Handlebars template appropriately

Search Setup

Content Sources to define and schedule the crawls

Crawl logs to review success

Search Schema to define the managed properties

Reusable Content

Snippets of HTML that can be reused throughout the site

JavaScript can be intelligent and use the URL to determine its behaviour

Makes it easy for content authors to drop pre-configured dynamic content onto pages

Topic Pages

Shows all items that match a topic

Could be hundreds of virtual pages

Only one template page

Easily customizable and SEO friendly (each topic appears to be its own page)

Content by search web part open search against a query or result source

May be able to surface the topic pages themselves as site search results

Public Health Ontario

httpwwwpublichealthontariocaenBrowseByTopicPagesTopicaspxk=Influenza20InformationByTopic22Influenza22

Ontario Association of Childrens Aid Societies

Application Lifecycle Management

Purpose

How do we build a solid SharePoint development environment for the enterprise

How do a number of developers work together on a SharePoint project

How does code and content move through a dev test and production lifecycle

What is Agile and Continuous Integration and why is it important

Visual Studio and Team Foundation Server

Visual Studio 2010 is the development platform for coding on SharePoint 2010

Team Foundation Server integrates with Visual Studio to provide a repository for code test and other project artifacts

It facilitates teamwork by providing a common place for developers to work together

Provisioning SharePoint Farms

Provisioning SharePoint Farms

Every developer needs their own complete SharePoint farm

Teams need a dev integration farm to bring their work together on

A full architecture needs QA and production farms as well

Envision IT Virtualization Architecture

Developer VM Template

SharePoint Server 2010 Enterprise

SP1 and August CU

Visual Studio 2010 Premium SP1

Office 2010 Professional Plus SP1

SharePoint Designer 2010 SP1

Fiddler

SQL Server 2008 R2 SP1

Creating a new Developer VM

Open System Centre Virtual Machine Manager

Create Virtual Machine

Choose the Developer VM template

Set the virtual machine name and options

Create and start the VM

Creating a new Developer VM - Step 2

Developer RDPs to their new VM Complete the SQL Server installation

Create the default instance Set the service account(s) Set the authentication mode and server administrators

Update the AutoSPInstallerInputxml file Set the machine name for the default sites and database server Set the service account passwords

Run the AutoSPInstallerLaunch batch file Do a Health check review

Creating a new Developer VM - Step 3

Start Visual Studio

Connect to the Team Foundation Server

Setup your workspaces

Use a standard naming convention across your team

CDevelopmentTFSCollection

Other Environments

Dev Integration QA and Production can all be built using AutoSPInstall

Donrsquot need or want the Visual Studio or Office tools on these servers

We have a base template we use for dev integration servers

QA should match the Prod architecture as closely as possible

High availability with load balancing clustered SQL app servers DMZ hardening Internet publishing

Agile Development

Agile with Team Foundation Server

Creating Your TFS Project

Open Visual Studio

Make sure you are connected to the right Team Project Collection

In Team Explorer right-click the top collection and create a new Team Project

Use the Scrum 10 template

Go into the Areas and Iterations Delete the extraneous releases and sprints

Create a product backlog iteration

Start adding your stories and tasks

Continuous Integration

Continuous Integration

Automated Testing

SharePoint Site Elements

Site structure Site columns content types subsites lists libraries

Branding elements Master pages layouts CSS XSLT supporting images

Custom web parts Page and site content Web part instances Search Workflows Business Connectivity Services Managed Metadata

SharePoint Site Elements ndash Part 2

Access Excel Word Visio

PerformancePoint

Document conversions

Timer jobs

Secure Store Service

User profiles

Site Structure

bull Site columns

bull Define the fields that are used by content types

bull Content types

bull Defines collections of site columns for different types of content

bull Subsites

bull The hierarchy of sites that make up the site collection

bull Lists and Libraries

bull The lists and libraries for each subsite

Site Structure ndash Part 2

Site columns and content types can be programmatically or manually created If they are going to be used in multiple site collections they should be

programmatically created

If a single site collection they can be created manually in a master site collection

GUIDs cannot be manually set and code may need them to be consistent

You can create them manually in SharePoint save the site as a template and import them into Visual Studio to create a proper WSP package

Site Structure ndash Part 3

Site structure can also be done either programmatically or manually

Many sites are complex and it is error prone to create manually

We use our own SiteModelBuilder tool to create the site structure

Site Structure ndash Part 4

For all site structure elements changes can also be manual or programmatic It is useful to be able to delete the whole site collection and recreate it

programmatically As soon as content starts being authored in SharePoint it becomes difficult

or impossible to do that

After content authoring has started Site column and content type changes need to be programmed explicitly

(you canrsquot just drop the content type and recreate it) Site structure changes are usually done manually at this point Changes need to be backed up and restored

Change Management

Page and Site Content

Page and site content is entered directly into SharePoint by the content authors Web pages images PDFs list content etc This should be done in the master site separate from where dev integration is

happening Care needs to be taken with this site once authors start working Make sure it is part of your production backup plan

Periodically back it up and restore it to the dev integration and developer VMs

Alternatively script the export and import Ultimately it will be backed up and restored to the QA and production

farms

Change Management

Change Management

Change Management

Change Management

Web part instances

Web parts ultimately get placed on pages

The configuration of the web parts can often get quite complex

You may want to disable editing of web parts for general content authors

They end up in a grey zone between code and content

Web part instances ndash Part 2

We created our own internal tool to export and import web parts

Each web partrsquos configuration can be exported into a webpartfile

We scripted the extraction from the dev integration

webpart files are treated like code and checked into TFS for version control

Script then applies the new webpart files to the target environment

Workflows

Workflows can be built using SharePoint Designer Visual Studio or third-party tools (Nintex or K2 primarily)

Visual Studio workflow projects are automatically packaged as WSP solution files Simply deploy the WSP file to the other environments

SharePoint Designer workflows need to be deployed using SharePoint Designer This means you need SPD access to production which is not always possible

You can load the SPD workflow into Visual Studio to package it but you lose the ability to edit it in SPD

If you use third-party tools yoursquoll need to define the process for that as well

Business Connectivity Services

BCS can be built using either SharePoint Designer or Visual Studio Visual Studio BCS projects are automatically packaged as WSP

solution files Simply deploy the WSP file to the other environments You can also export the BDC metadata model in the BDC service

application

SharePoint Designer doesnrsquot create a WSP and it doesnrsquot make a complete BDC metadata model You need to export and import using SharePoint Designer

In both cases you still need to deal with connection and configuration information

Future Directions

Visual Studio Lab Management

Integrates the management of HyperV environments in with Visual Studio and Team Foundation Server

Can automate the provisioning of lab environments for automated testing

Test failures can snapshot entire environments to make reproduction of errors much easier

Summary

Yoursquore going to have lots of SharePoint environments ndash figure out how to build them quickly and repeatable

Code and content often move in opposite directions through dev QA and Prod PowerShell script and automate to keep this simple

Agile is a great way to run projects

Continuous integration with automated testing is key to its success

There are lots of parts of SharePoint that you donrsquot code through Visual Studio Figure out how you move those through your environment

Other Topics

Site Design

Information architecture

Wireframes

Creative designs ndash Mobile first

Catalogs deep dive

Site build PowerShell scripts

Team Foundation Server and Application Lifecycle Management

Starting a new project

Managing content authoring

Site Improve tool

SEO Optimizations

Analytics options

Retaining Page Ranks with permanent redirects (301)

Azure SharePoint Hosting

Q amp A

Session Evaluations

Go to Evaluations on the home page of wwwcollabconorg

It is important to get your feedback

Please fill out evaluations for all the sessions you attend

Following the conference a random drawing from all completed evaluations will be selected

The winner will receive a $250 Future Shop gift card valid online or in store

Page 9: Web Content Management - CollabCon 2015 - Web... · Performances Complete Works ... Friendly URL An SEO friendly URL defined in the term store for a page, rather than ... What’s

The Travel Corporation

Shakespeare Reference Project

wwwenvisionitcomshakespeare

Download the zip file for all the artifacts MindMap

Axure wireframe

Word Functional Spec

Visual Studio projects

PowerShell deployment scripts

Term store exportimport tool and XML data

Term store navigation control

Content

High Level Overview

Prod httpsshakespeareenvisionitcom

Dev Integration httpsshakespearedevenvisionitcom

News

Events

Productions

Performances

Complete Works Plays

‒ Comedy

‒ History

‒ Tragedy

Poetry

Adaptive Design

Built Using Twitter Bootstrap V3

Smartphone Portrait Tablet and Desktop breakpoints

Switches to fluid responsive design below smartphone resolution

Navigation and Friendly URLs

Term store used for navigation and friendly URLs

Server side control outputs HTML for top nav left nav and breadcrumb

Plan is to convert to client-side to support Office 365

Term Store Setup

Two groups used to separate metadata from navigation

Metadata group setup globally

Static GUIDs consistent through all environments

Navigation group setup at the site collection level

Allows multiple copies for multiple sites on the farm

Open Source Tools and Resources

HTML CSS JavaScript jQuery

httpwwww3schoolscom

httpgetbootstrapcom

httphandlebarsjscom

httpknockoutjscom

httpsangularjsorg

httpmomentjscom

Build Process

Complete script is the master script to setup the site

On a new farm it creates the web app and site collection

If the site collection exists it should not affect any content

Useful for updating branding and web parts

TFS build should run this

Need to explicitly force the full run

General Project Process

Create run and test the scripts on your own developer VM

When ready run on dev integration to setup site

Content authoring can happen on dev integration

Script the extraction of content

Compare to TFS and check in as required

Always back up your content authoring site before re-running a full build

Complete Script

Check and create the web app Check and create the site collection Import the term store Set the term store navigation Build the site structure Populate the content Catalogs Search Branding Web Parts

Other Scripts

Set Environment

Defines parameters for each of the environments

Typically has defaults intended for VM13 developer environment

Export the term store to XML

Export list or library content

Overview of ESC Scripts

ESCBuilder_DeployPackages

ESCBuilder_Helper

ESCBuilder_PopulateStructureContent

ESCBuilder_Search

Design Phase

MindMap Information Architecture

Axure Wireframes

PhotoShop or Illustrator Creative Designs

Site Columns and Content Types

Create directly through the SharePoint UI

Senior Consultant can do this in an initial empty devintegration environment

Export script exports these to XML files

Import into target envionments

Typically need Term Store configured as well for Managed Metadata columns

Branding Files

No longer in a Visual Studio WSP package

Simply a collection of files in the Builder folder

Still managed through TFS

Build script uploads and publishes these to the target site

Can edit directly against SharePoint by opening in Windows Explorer

Need to be careful about updating TFS

Export will export the branding files but has farm information in the files that makes it difficult to compare against TFS

Catalogs

Three main steps

Enabling lists or libraries as catalogs

Creating the catalog connection

Building the page layouts to display the category rollups or item detail pages

Enabling Catalogs

Doesnrsquot have to be a list can be a document Images or Pages library

Experimenting using a Pages library

This gives us draft and published states that lists donrsquot support

Preview and editing is easier

Fairly simple script to do this

Needs a full crawl after doing this

Creating the Catalog Connection

Rishan did some great work here

Scripts establish the connection and also update the term store as required

SharePoint Catalog Page Layouts

Uses the CSWP and Content Reuse web parts

Result sources defined in Search for each catalog connection

GUIDs for the result sources different in each farm and need to be updated as part of the deployment

REST Search Catalog Pages

HTML with data attributes on page layouts or in Reusable HTML

jQuery detects this

Builds a REST Search query based on the attributes and URL

Calls SharePoint

Uses Handlebars to format the results

Product Replacements

Video Player is part of the lib structure

Needs references added to the master page

Any hyperlink to an MP4 file launches the video popup

Image Rotator

Jeff is working on standardizing some jQuery slider options

Photo Viewer

No plans just yet

All of these will be part of the ESC package

Starting a New Project

Copy the five ESC scripts from $Envision Shakespeare CompanyBuilder Do not rename

Copy the ShakespeareBuild scripts Rename to your project Update the steps as required for your project

Create the infrastructure WSP Site columns content types list definitions and instances

Manually create the pages and assets that are needed in SharePoint Manually create the term store for metadata and navigation Script the extraction to TFS of content and term store Create the branding WSP Manually create any required web parts Export to TFS and script the placement of the web parts on the pages

ESC Scripts Next Steps

Incorporate TMX additions Farm property bag instead of webconfig Audiences Subsites Available layouts Permissions Extract folders and lists

Continue reconciling additional projects in OMA TMX Christie Medical

Full header blocks and commenting Version numbers Complete the catalog connection script Office 365 support

Links

wwwenvisionitcom

blogpetercarsonca

wwwenvisionitcomshakespeare

httpsShakespeareenvisionitcom

wwwbgccancom

wwwproblemgamblingca

wwwrusselmetalscom

wwwtarioncom

wwwtransamericaca

wwwcollegeofececa

wwwsamuelcom

wwwthewaterfrontpropertiesca

wwwshopsatdonmillsca

wwwfuturesherwaygardensca

wwwpublichealthontarioca

SharePoint WCM Glossary

SharePoint Glossary

Term Definition

SharePoint Farm A set of SharePoint servers that share a single configuration database

Web Application A top level container and entry-point URLs for site collections

Site Collection A set of Web sites that are in the same content database have the same owner and share administration settings A site collection can be identified by a GUID or the URL of the top-level site for the site collection Each site collection contains a top-level site can contain one or more subsites and can have a shared navigation structure

Path Based Site Collection A site collection under a managed pathhttpwebappsitessitecollection

Host Named Site Collection A site collection with its own unique URL Must be created through PowerShell

Site Subsite under a site collection

Site Template A template for a single site that has been saved from another site Site templates may or may not contain content Templates cannot be created from publishing sites

SharePoint Glossary

Term Definition

Site Column A single field that can store information of a particular typebull Textbull Choicebull Numberbull hellipDefined at the site collection level

Content Type A content type is a reusable collection of Site Columns that can be applied to a certain category of content Content types enable the management of metadata and behaviors of a document or item type in a centralized reusable way Basically content types include the columns (or fields) that are applied to a certain type of content plus other optional settings such as a document template

Document Set New content type in SharePoint 2010 A document set is a container for multiple documents to which you can assign certain metadata and treat as a single entity in many ways In addition a document set can contain one or more different content types

SharePoint Glossary

Term Definition

List A container for list content types or custom list items Columns can be defined via content types or directly in the list

Document Library A SharePoint list that contains documents where you can create collect update and share files with others Like lists columns can be defined via content types or directly in the list

Form Library A special type of library to facilitate the interaction with InfoPath forms

Asset Library A library typically used to store image audio and video files

List Template A template used to define the configuration of a list or library Templates can be saved with or without content

SharePoint Glossary

Term Definition

Term Store An instance of the Managed Metadata Service This can be shared between sites site collections web applications or farms

Group A collection of term sets

Term Set A collection of related terms

Term A word or a phrase that can be associated with a SharePoint item

Friendly URL An SEO friendly URL defined in the term store for a page rather than the physical URL of where the page is stored (Pages)

SharePoint Glossary

Term Definition

Design Manager 2013 feature used to manipulate WCM artifacts

Master Page Defines elements that are common to all pages such as the header navigation and footer

Page Layout Defines the layout of a particular style of page such as news or events Each page content type can have one or more layouts associated with them

Web Parts Functional elements that can be added to pages typically for dynamic content

Apps Similar to web parts but run outside of SharePoint while beinghosted in the SharePoint page

Publishing Site Page Rendering

FileName

Welcomeaspx

PageLayout

PageLayoutaspx

Title

Welcome To News

Body

Lorem ipsum dolor sit

Image

ImagesChairjpg

1 Welcomeaspx page is

requested

2 Page layout associated with

page is retrieved

3 Master page associated with site

is retrieved

4 Controls in page layout render

content from pagersquos fields into the page

MasterPagemaster

PageLayoutaspxTitle

BodyImage

Date

ByLine

Field Control

FieldControl

Field ControlField ControlField Control

Field Control

httpfoocombarpageswelcomeaspx

SharePoint Glossary

Term Definition

Cross-Site Publishing Publishing from an authoring site collection to one or more publishing site collections

Catalog A list that has been published as a catalog

Category Page A page that displays a rollup of catalog items

Catalog Item Page A page that displays a single item from a catalog

Display Template Used to format the results on search pages in content search web parts and on category pages

Whatrsquos New in Web Content

Management

Easier Page Authoring With Cut and Paste

Drag and Drop Files

Drag and drop files from Windows Explorer into the browser or the other way

Doesnrsquot support folders or document sets

Open in Windows Explorer still works best for this

Requires IE10 or current versions of Chrome Safari or Firefox

IE8 and 9 supported with Office 2013 installed

Image Renditions

Display uploaded images in predefined sizes widths and crops

Multiple renditions stored in document sets

Content author can create renditions (including crops) in the browser

Design Manager

New way to build master

pages and layouts

SharePoint Designer no

longer required

Edit and preview in any HTML

editor

Automatically creates the associated

master page and aspx

layouts

Package into a Design

Package WSP for

deployment

Snippet Gallery

Select components

such as search box or

navigation control

Configure its properties

Paste the snippet into your HTML

master page or layout

Changes synched to

actual master pages and layouts to convert to SharePoint

components

Can be used by any web design

tool

Device Channels

Map channels to mobile devices or browsers

Alternate master pages

can be assigned

Page layouts can include or

exclude content based

on channel

Display Templates

Used to customize the

presentation of search results

No more XSLT

Three templates

bull Control ndash Overall structure of search results

bull Group ndash Show groups of results

bull Item ndash How each result is presented

Navigation and Friendly URLs

Site navigation driven by managed metadata

Term store used for navigation and SEO-friendly URLs

Connect site navigation to business concepts rather than site structure

Server side control outputs HTML for top nav left nav and breadcrumb

Plan is to convert to client-side to support Office 365

Term Store Setup

Two groups used to separate metadata from navigation

Metadata group setup globally

Static GUIDs consistent through all environments

Navigation group setup at the site collection level

Allows multiple copies for multiple sites on the farm

Search

Search is new and different from all previous versions of SharePoint

The platform has been consolidated Built on a combination of FAST Search and SharePoint Search components as well as new development work ndash it is the

same from Foundation to Server

Foundation Search is intended to replace WSS Search Microsoft Search Server and Search Server Express from previous versions of SharePoint

Itrsquos used pervasively throughout the product now in many different ways in different features eDiscovery navigation topic pages Internet facing business sites etc

Search in SharePoint 2013

Single Extensible Platform

FAST Engine

SharePoint Crawler

Best of both

Same Search Platform in both SharePoint and Exchange

Enterprise Search

Search Page Web parts added to a publishing page

Catalogs Cross-site publishing

Library search Executes in place on the library

Site Search _layouts15osssearchresultsaspx Specifies the site and search parameters

Search Centre Basic Search Center - SharePoint Foundation 2013 Enterprise Search Center - SharePoint Server 2013

Content Search Web Part

Similar in concept to the Content Query Web Part

Many advantages

Can go across sites site collections web apps even farms

Leverages the search index -gt very scalable

Query Builder makes it easy to define your results

Use Display Templates to customize the look and feel No more XSLT

Part of the Enterprise CAL

Pre-Configured CSWPs

Popular Items Shows items that have been recently viewed by many users

Recently Changed Items Shows items that have been modified recently This can help site users

track the latest activity on a site or a library

Recommended Items Show content recommendations based on usage patterns for the current

page

All of these can be further configured by editing their properties and changing the search criteria

Search Results Web Part

Similar functionality to the Content Search Web Part

Doesnrsquot allow property mapping in the web part configuration

Mapping is controlled in the Display Template

Part of the Standard CAL

Category Page Item Page

Catalogs

wwwcontosocomproductsAudio-Liware2g

Catalogs

Results

Consistent Displays

Manage content in one place

No need to create

pages

No need to format

Metadata Navigation

Cross-Site Publishing

Reuse content between different sites including site collections and farms

Catalogs can surface lists into publishing sites onto a category page and item pages

Can be surfaced through the Content Search Web Part

No need to create and publish web pages

Create custom friendly URLs

Metadata based navigation base

Cross Site Publishing

Job Posting

Job Posting

Job Posting

Job Posting

Simcoe County District School Board

50000 students

Over 6000 employees

Board office in Barrie

Bordered by the Holland Marsh in the south the Trent-Severn Waterway in the east Grey County in the west and Muskoka in the north

Simcoe County District School Board

119 schools and centres 87 elementary 16 secondary 6 learning centres 10 alternative

Each needs their own web site Being built on SharePoint 2013 Elementary panel first Each has their own unique URL Content authored both at the school and centrally from the board

wwwscdsbonca Pre-existing SharePoint 2010 site Future goal is to rebuild in SharePoint 2013

Business Challenge

100+ public web sites

No standardization on style technology or content

No ability for the board to push content to the school sites

Outdated sites

Not mobile or AODA compliant

Site Features

Fully Adaptivemobile design Robust Search functionality Template makes it fast and efficient to add new school sites News and events can be targeted by the Board to any number of

school sites Target by panel weather zone trustee language Presented in a blended view with the school news and events

Home page rotator links hours content pages all managed by the school staff

SEO-friendly URLs

News

School news entered by school staff

Board news entered in the board site

Rendered using cross-site publishing

High-priority alerts can be flagged to highlight on the site

Bus or school cancellations

Events

Single and multi-day events

School and board managed like news

Adaptive calendar

School Picker

Used to pick which schools to target news and events to

Schools are tagged through the term store

Target by panel weather zone trustee language

Can override and add or remove individual schools

Search

Catalogs

Three main steps

Enabling lists or libraries as catalogs

Creating the catalog connection

Building the page layouts to display the category rollups or item detail pages

Enabling Catalogs

Doesnrsquot have to be a list can be a document Images or Pages library

Experimenting using a Pages library

This gives us draft and published states that lists donrsquot support

Preview and editing is easier

Fairly simple script to do this

Catalog connections are more complex

Create the connection

Fix up the Term Store

Create the Category and Item page layouts and pages

SEO Enhancements

Friendly URLs

Home page redirects

XML sitemaps automatically generated and updated

Custom SEO properties

Usage Analytics

Built for scale from the ground up Detail data rolled up every 15 days amp anonymized Daily events purged every 15 days monthly events after 3 years Lifetime counts always retained

Counts views amp unique itemsday Shows recent (2-weeks) and lifetime count Trims least visited content Pushes aggregate data to reporting database

Drives recommendations capabilities on content Calculations injected into search index as sortable managed properties Deep integration with search engine Can influence search relevance based on content usage

Variations and Multi-Lingual

Export and import content for translation in XLIFF format

Pages

Labels

List items

Navigation

Bing translation service comes with active SharePoint 2013 license

Adaptive Web Design

Adaptive vs Responsive

Adaptive

Fixed breakpoints‒ Desktop gt 980 px

‒ Table portrait gt 768 px

‒ Phone to tablet gt 480 px lt 768 px

‒ Smartphone lt 480 px

Responsive

No fixed breakpoints

Design fluidly adapts to whatever width the browser is

We generally do a hybrid approach with responsive design in the under 768 pixel situation

Design Approaches in SharePoint

Adaptive Design through CSS media queries

Broader standards approach used outside of SharePoint

Keeps a single master page and CSS

Some unnecessary components may still be loaded

Device Channels SharePoint specific approach

Assign different master pages to different device channels

Rules define what devices use which channels

Device Channel Panels can also target content to channels

Hybrid here can also make sense Device channels can be used to remove unnecessary items from the page payload

Our Adaptive Approach

Built using the Twitter Boostrap CSS framework

twittergithubcombootstrap

Provides a responsive design framework for supporting PC Mac tablet and mobile

We enhanced to provide better touch navigation support

Can be leveraged in the master page page layouts and display templates

Incorporated into the SharePoint 2013 Design Master

HTML based master page that can be edited with any tool

SharePoint converts to a master page when uploaded or saved

Additional Open Source Tools and Resources

HTML CSS JavaScript jQuery

httpwwww3schoolscom

httpgetbootstrapcom

httphandlebarsjscom

httpknockoutjscom

httpsangularjsorg

httpmomentjscom

Content Search Web Part

Web part is configured to return search results

Executed as client-side code in the browser

Pair of display templates map the data returned to HTML

Control template for the overall structure

Item template for each item returned

HTML Designer Manager files are compiled to JavaScript

REST Search and Handlebars

Search is accessible through REST calls

httpsiteurl_apisearchquery

Returns results as a JSON array

Handlebars is a templating engine to format that

Conceptually similar to display templates with control and item sections

jQuery glues this all together

Steps to Experiment

F12 to get into Developer Toolbar

Set a breakpoint where the REST URL is determined

Copy the value

Paste into the REST Search test window

Experiment with the query

Adjust the Handlebars template appropriately

Search Setup

Content Sources to define and schedule the crawls

Crawl logs to review success

Search Schema to define the managed properties

Reusable Content

Snippets of HTML that can be reused throughout the site

JavaScript can be intelligent and use the URL to determine its behaviour

Makes it easy for content authors to drop pre-configured dynamic content onto pages

Topic Pages

Shows all items that match a topic

Could be hundreds of virtual pages

Only one template page

Easily customizable and SEO friendly (each topic appears to be its own page)

Content by search web part open search against a query or result source

May be able to surface the topic pages themselves as site search results

Public Health Ontario

httpwwwpublichealthontariocaenBrowseByTopicPagesTopicaspxk=Influenza20InformationByTopic22Influenza22

Ontario Association of Childrens Aid Societies

Application Lifecycle Management

Purpose

How do we build a solid SharePoint development environment for the enterprise

How do a number of developers work together on a SharePoint project

How does code and content move through a dev test and production lifecycle

What is Agile and Continuous Integration and why is it important

Visual Studio and Team Foundation Server

Visual Studio 2010 is the development platform for coding on SharePoint 2010

Team Foundation Server integrates with Visual Studio to provide a repository for code test and other project artifacts

It facilitates teamwork by providing a common place for developers to work together

Provisioning SharePoint Farms

Provisioning SharePoint Farms

Every developer needs their own complete SharePoint farm

Teams need a dev integration farm to bring their work together on

A full architecture needs QA and production farms as well

Envision IT Virtualization Architecture

Developer VM Template

SharePoint Server 2010 Enterprise

SP1 and August CU

Visual Studio 2010 Premium SP1

Office 2010 Professional Plus SP1

SharePoint Designer 2010 SP1

Fiddler

SQL Server 2008 R2 SP1

Creating a new Developer VM

Open System Centre Virtual Machine Manager

Create Virtual Machine

Choose the Developer VM template

Set the virtual machine name and options

Create and start the VM

Creating a new Developer VM - Step 2

Developer RDPs to their new VM Complete the SQL Server installation

Create the default instance Set the service account(s) Set the authentication mode and server administrators

Update the AutoSPInstallerInputxml file Set the machine name for the default sites and database server Set the service account passwords

Run the AutoSPInstallerLaunch batch file Do a Health check review

Creating a new Developer VM - Step 3

Start Visual Studio

Connect to the Team Foundation Server

Setup your workspaces

Use a standard naming convention across your team

CDevelopmentTFSCollection

Other Environments

Dev Integration QA and Production can all be built using AutoSPInstall

Donrsquot need or want the Visual Studio or Office tools on these servers

We have a base template we use for dev integration servers

QA should match the Prod architecture as closely as possible

High availability with load balancing clustered SQL app servers DMZ hardening Internet publishing

Agile Development

Agile with Team Foundation Server

Creating Your TFS Project

Open Visual Studio

Make sure you are connected to the right Team Project Collection

In Team Explorer right-click the top collection and create a new Team Project

Use the Scrum 10 template

Go into the Areas and Iterations Delete the extraneous releases and sprints

Create a product backlog iteration

Start adding your stories and tasks

Continuous Integration

Continuous Integration

Automated Testing

SharePoint Site Elements

Site structure Site columns content types subsites lists libraries

Branding elements Master pages layouts CSS XSLT supporting images

Custom web parts Page and site content Web part instances Search Workflows Business Connectivity Services Managed Metadata

SharePoint Site Elements ndash Part 2

Access Excel Word Visio

PerformancePoint

Document conversions

Timer jobs

Secure Store Service

User profiles

Site Structure

bull Site columns

bull Define the fields that are used by content types

bull Content types

bull Defines collections of site columns for different types of content

bull Subsites

bull The hierarchy of sites that make up the site collection

bull Lists and Libraries

bull The lists and libraries for each subsite

Site Structure ndash Part 2

Site columns and content types can be programmatically or manually created If they are going to be used in multiple site collections they should be

programmatically created

If a single site collection they can be created manually in a master site collection

GUIDs cannot be manually set and code may need them to be consistent

You can create them manually in SharePoint save the site as a template and import them into Visual Studio to create a proper WSP package

Site Structure ndash Part 3

Site structure can also be done either programmatically or manually

Many sites are complex and it is error prone to create manually

We use our own SiteModelBuilder tool to create the site structure

Site Structure ndash Part 4

For all site structure elements changes can also be manual or programmatic It is useful to be able to delete the whole site collection and recreate it

programmatically As soon as content starts being authored in SharePoint it becomes difficult

or impossible to do that

After content authoring has started Site column and content type changes need to be programmed explicitly

(you canrsquot just drop the content type and recreate it) Site structure changes are usually done manually at this point Changes need to be backed up and restored

Change Management

Page and Site Content

Page and site content is entered directly into SharePoint by the content authors Web pages images PDFs list content etc This should be done in the master site separate from where dev integration is

happening Care needs to be taken with this site once authors start working Make sure it is part of your production backup plan

Periodically back it up and restore it to the dev integration and developer VMs

Alternatively script the export and import Ultimately it will be backed up and restored to the QA and production

farms

Change Management

Change Management

Change Management

Change Management

Web part instances

Web parts ultimately get placed on pages

The configuration of the web parts can often get quite complex

You may want to disable editing of web parts for general content authors

They end up in a grey zone between code and content

Web part instances ndash Part 2

We created our own internal tool to export and import web parts

Each web partrsquos configuration can be exported into a webpartfile

We scripted the extraction from the dev integration

webpart files are treated like code and checked into TFS for version control

Script then applies the new webpart files to the target environment

Workflows

Workflows can be built using SharePoint Designer Visual Studio or third-party tools (Nintex or K2 primarily)

Visual Studio workflow projects are automatically packaged as WSP solution files Simply deploy the WSP file to the other environments

SharePoint Designer workflows need to be deployed using SharePoint Designer This means you need SPD access to production which is not always possible

You can load the SPD workflow into Visual Studio to package it but you lose the ability to edit it in SPD

If you use third-party tools yoursquoll need to define the process for that as well

Business Connectivity Services

BCS can be built using either SharePoint Designer or Visual Studio Visual Studio BCS projects are automatically packaged as WSP

solution files Simply deploy the WSP file to the other environments You can also export the BDC metadata model in the BDC service

application

SharePoint Designer doesnrsquot create a WSP and it doesnrsquot make a complete BDC metadata model You need to export and import using SharePoint Designer

In both cases you still need to deal with connection and configuration information

Future Directions

Visual Studio Lab Management

Integrates the management of HyperV environments in with Visual Studio and Team Foundation Server

Can automate the provisioning of lab environments for automated testing

Test failures can snapshot entire environments to make reproduction of errors much easier

Summary

Yoursquore going to have lots of SharePoint environments ndash figure out how to build them quickly and repeatable

Code and content often move in opposite directions through dev QA and Prod PowerShell script and automate to keep this simple

Agile is a great way to run projects

Continuous integration with automated testing is key to its success

There are lots of parts of SharePoint that you donrsquot code through Visual Studio Figure out how you move those through your environment

Other Topics

Site Design

Information architecture

Wireframes

Creative designs ndash Mobile first

Catalogs deep dive

Site build PowerShell scripts

Team Foundation Server and Application Lifecycle Management

Starting a new project

Managing content authoring

Site Improve tool

SEO Optimizations

Analytics options

Retaining Page Ranks with permanent redirects (301)

Azure SharePoint Hosting

Q amp A

Session Evaluations

Go to Evaluations on the home page of wwwcollabconorg

It is important to get your feedback

Please fill out evaluations for all the sessions you attend

Following the conference a random drawing from all completed evaluations will be selected

The winner will receive a $250 Future Shop gift card valid online or in store

Page 10: Web Content Management - CollabCon 2015 - Web... · Performances Complete Works ... Friendly URL An SEO friendly URL defined in the term store for a page, rather than ... What’s

Shakespeare Reference Project

wwwenvisionitcomshakespeare

Download the zip file for all the artifacts MindMap

Axure wireframe

Word Functional Spec

Visual Studio projects

PowerShell deployment scripts

Term store exportimport tool and XML data

Term store navigation control

Content

High Level Overview

Prod httpsshakespeareenvisionitcom

Dev Integration httpsshakespearedevenvisionitcom

News

Events

Productions

Performances

Complete Works Plays

‒ Comedy

‒ History

‒ Tragedy

Poetry

Adaptive Design

Built Using Twitter Bootstrap V3

Smartphone Portrait Tablet and Desktop breakpoints

Switches to fluid responsive design below smartphone resolution

Navigation and Friendly URLs

Term store used for navigation and friendly URLs

Server side control outputs HTML for top nav left nav and breadcrumb

Plan is to convert to client-side to support Office 365

Term Store Setup

Two groups used to separate metadata from navigation

Metadata group setup globally

Static GUIDs consistent through all environments

Navigation group setup at the site collection level

Allows multiple copies for multiple sites on the farm

Open Source Tools and Resources

HTML CSS JavaScript jQuery

httpwwww3schoolscom

httpgetbootstrapcom

httphandlebarsjscom

httpknockoutjscom

httpsangularjsorg

httpmomentjscom

Build Process

Complete script is the master script to setup the site

On a new farm it creates the web app and site collection

If the site collection exists it should not affect any content

Useful for updating branding and web parts

TFS build should run this

Need to explicitly force the full run

General Project Process

Create run and test the scripts on your own developer VM

When ready run on dev integration to setup site

Content authoring can happen on dev integration

Script the extraction of content

Compare to TFS and check in as required

Always back up your content authoring site before re-running a full build

Complete Script

Check and create the web app Check and create the site collection Import the term store Set the term store navigation Build the site structure Populate the content Catalogs Search Branding Web Parts

Other Scripts

Set Environment

Defines parameters for each of the environments

Typically has defaults intended for VM13 developer environment

Export the term store to XML

Export list or library content

Overview of ESC Scripts

ESCBuilder_DeployPackages

ESCBuilder_Helper

ESCBuilder_PopulateStructureContent

ESCBuilder_Search

Design Phase

MindMap Information Architecture

Axure Wireframes

PhotoShop or Illustrator Creative Designs

Site Columns and Content Types

Create directly through the SharePoint UI

Senior Consultant can do this in an initial empty devintegration environment

Export script exports these to XML files

Import into target envionments

Typically need Term Store configured as well for Managed Metadata columns

Branding Files

No longer in a Visual Studio WSP package

Simply a collection of files in the Builder folder

Still managed through TFS

Build script uploads and publishes these to the target site

Can edit directly against SharePoint by opening in Windows Explorer

Need to be careful about updating TFS

Export will export the branding files but has farm information in the files that makes it difficult to compare against TFS

Catalogs

Three main steps

Enabling lists or libraries as catalogs

Creating the catalog connection

Building the page layouts to display the category rollups or item detail pages

Enabling Catalogs

Doesnrsquot have to be a list can be a document Images or Pages library

Experimenting using a Pages library

This gives us draft and published states that lists donrsquot support

Preview and editing is easier

Fairly simple script to do this

Needs a full crawl after doing this

Creating the Catalog Connection

Rishan did some great work here

Scripts establish the connection and also update the term store as required

SharePoint Catalog Page Layouts

Uses the CSWP and Content Reuse web parts

Result sources defined in Search for each catalog connection

GUIDs for the result sources different in each farm and need to be updated as part of the deployment

REST Search Catalog Pages

HTML with data attributes on page layouts or in Reusable HTML

jQuery detects this

Builds a REST Search query based on the attributes and URL

Calls SharePoint

Uses Handlebars to format the results

Product Replacements

Video Player is part of the lib structure

Needs references added to the master page

Any hyperlink to an MP4 file launches the video popup

Image Rotator

Jeff is working on standardizing some jQuery slider options

Photo Viewer

No plans just yet

All of these will be part of the ESC package

Starting a New Project

Copy the five ESC scripts from $Envision Shakespeare CompanyBuilder Do not rename

Copy the ShakespeareBuild scripts Rename to your project Update the steps as required for your project

Create the infrastructure WSP Site columns content types list definitions and instances

Manually create the pages and assets that are needed in SharePoint Manually create the term store for metadata and navigation Script the extraction to TFS of content and term store Create the branding WSP Manually create any required web parts Export to TFS and script the placement of the web parts on the pages

ESC Scripts Next Steps

Incorporate TMX additions Farm property bag instead of webconfig Audiences Subsites Available layouts Permissions Extract folders and lists

Continue reconciling additional projects in OMA TMX Christie Medical

Full header blocks and commenting Version numbers Complete the catalog connection script Office 365 support

Links

wwwenvisionitcom

blogpetercarsonca

wwwenvisionitcomshakespeare

httpsShakespeareenvisionitcom

wwwbgccancom

wwwproblemgamblingca

wwwrusselmetalscom

wwwtarioncom

wwwtransamericaca

wwwcollegeofececa

wwwsamuelcom

wwwthewaterfrontpropertiesca

wwwshopsatdonmillsca

wwwfuturesherwaygardensca

wwwpublichealthontarioca

SharePoint WCM Glossary

SharePoint Glossary

Term Definition

SharePoint Farm A set of SharePoint servers that share a single configuration database

Web Application A top level container and entry-point URLs for site collections

Site Collection A set of Web sites that are in the same content database have the same owner and share administration settings A site collection can be identified by a GUID or the URL of the top-level site for the site collection Each site collection contains a top-level site can contain one or more subsites and can have a shared navigation structure

Path Based Site Collection A site collection under a managed pathhttpwebappsitessitecollection

Host Named Site Collection A site collection with its own unique URL Must be created through PowerShell

Site Subsite under a site collection

Site Template A template for a single site that has been saved from another site Site templates may or may not contain content Templates cannot be created from publishing sites

SharePoint Glossary

Term Definition

Site Column A single field that can store information of a particular typebull Textbull Choicebull Numberbull hellipDefined at the site collection level

Content Type A content type is a reusable collection of Site Columns that can be applied to a certain category of content Content types enable the management of metadata and behaviors of a document or item type in a centralized reusable way Basically content types include the columns (or fields) that are applied to a certain type of content plus other optional settings such as a document template

Document Set New content type in SharePoint 2010 A document set is a container for multiple documents to which you can assign certain metadata and treat as a single entity in many ways In addition a document set can contain one or more different content types

SharePoint Glossary

Term Definition

List A container for list content types or custom list items Columns can be defined via content types or directly in the list

Document Library A SharePoint list that contains documents where you can create collect update and share files with others Like lists columns can be defined via content types or directly in the list

Form Library A special type of library to facilitate the interaction with InfoPath forms

Asset Library A library typically used to store image audio and video files

List Template A template used to define the configuration of a list or library Templates can be saved with or without content

SharePoint Glossary

Term Definition

Term Store An instance of the Managed Metadata Service This can be shared between sites site collections web applications or farms

Group A collection of term sets

Term Set A collection of related terms

Term A word or a phrase that can be associated with a SharePoint item

Friendly URL An SEO friendly URL defined in the term store for a page rather than the physical URL of where the page is stored (Pages)

SharePoint Glossary

Term Definition

Design Manager 2013 feature used to manipulate WCM artifacts

Master Page Defines elements that are common to all pages such as the header navigation and footer

Page Layout Defines the layout of a particular style of page such as news or events Each page content type can have one or more layouts associated with them

Web Parts Functional elements that can be added to pages typically for dynamic content

Apps Similar to web parts but run outside of SharePoint while beinghosted in the SharePoint page

Publishing Site Page Rendering

FileName

Welcomeaspx

PageLayout

PageLayoutaspx

Title

Welcome To News

Body

Lorem ipsum dolor sit

Image

ImagesChairjpg

1 Welcomeaspx page is

requested

2 Page layout associated with

page is retrieved

3 Master page associated with site

is retrieved

4 Controls in page layout render

content from pagersquos fields into the page

MasterPagemaster

PageLayoutaspxTitle

BodyImage

Date

ByLine

Field Control

FieldControl

Field ControlField ControlField Control

Field Control

httpfoocombarpageswelcomeaspx

SharePoint Glossary

Term Definition

Cross-Site Publishing Publishing from an authoring site collection to one or more publishing site collections

Catalog A list that has been published as a catalog

Category Page A page that displays a rollup of catalog items

Catalog Item Page A page that displays a single item from a catalog

Display Template Used to format the results on search pages in content search web parts and on category pages

Whatrsquos New in Web Content

Management

Easier Page Authoring With Cut and Paste

Drag and Drop Files

Drag and drop files from Windows Explorer into the browser or the other way

Doesnrsquot support folders or document sets

Open in Windows Explorer still works best for this

Requires IE10 or current versions of Chrome Safari or Firefox

IE8 and 9 supported with Office 2013 installed

Image Renditions

Display uploaded images in predefined sizes widths and crops

Multiple renditions stored in document sets

Content author can create renditions (including crops) in the browser

Design Manager

New way to build master

pages and layouts

SharePoint Designer no

longer required

Edit and preview in any HTML

editor

Automatically creates the associated

master page and aspx

layouts

Package into a Design

Package WSP for

deployment

Snippet Gallery

Select components

such as search box or

navigation control

Configure its properties

Paste the snippet into your HTML

master page or layout

Changes synched to

actual master pages and layouts to convert to SharePoint

components

Can be used by any web design

tool

Device Channels

Map channels to mobile devices or browsers

Alternate master pages

can be assigned

Page layouts can include or

exclude content based

on channel

Display Templates

Used to customize the

presentation of search results

No more XSLT

Three templates

bull Control ndash Overall structure of search results

bull Group ndash Show groups of results

bull Item ndash How each result is presented

Navigation and Friendly URLs

Site navigation driven by managed metadata

Term store used for navigation and SEO-friendly URLs

Connect site navigation to business concepts rather than site structure

Server side control outputs HTML for top nav left nav and breadcrumb

Plan is to convert to client-side to support Office 365

Term Store Setup

Two groups used to separate metadata from navigation

Metadata group setup globally

Static GUIDs consistent through all environments

Navigation group setup at the site collection level

Allows multiple copies for multiple sites on the farm

Search

Search is new and different from all previous versions of SharePoint

The platform has been consolidated Built on a combination of FAST Search and SharePoint Search components as well as new development work ndash it is the

same from Foundation to Server

Foundation Search is intended to replace WSS Search Microsoft Search Server and Search Server Express from previous versions of SharePoint

Itrsquos used pervasively throughout the product now in many different ways in different features eDiscovery navigation topic pages Internet facing business sites etc

Search in SharePoint 2013

Single Extensible Platform

FAST Engine

SharePoint Crawler

Best of both

Same Search Platform in both SharePoint and Exchange

Enterprise Search

Search Page Web parts added to a publishing page

Catalogs Cross-site publishing

Library search Executes in place on the library

Site Search _layouts15osssearchresultsaspx Specifies the site and search parameters

Search Centre Basic Search Center - SharePoint Foundation 2013 Enterprise Search Center - SharePoint Server 2013

Content Search Web Part

Similar in concept to the Content Query Web Part

Many advantages

Can go across sites site collections web apps even farms

Leverages the search index -gt very scalable

Query Builder makes it easy to define your results

Use Display Templates to customize the look and feel No more XSLT

Part of the Enterprise CAL

Pre-Configured CSWPs

Popular Items Shows items that have been recently viewed by many users

Recently Changed Items Shows items that have been modified recently This can help site users

track the latest activity on a site or a library

Recommended Items Show content recommendations based on usage patterns for the current

page

All of these can be further configured by editing their properties and changing the search criteria

Search Results Web Part

Similar functionality to the Content Search Web Part

Doesnrsquot allow property mapping in the web part configuration

Mapping is controlled in the Display Template

Part of the Standard CAL

Category Page Item Page

Catalogs

wwwcontosocomproductsAudio-Liware2g

Catalogs

Results

Consistent Displays

Manage content in one place

No need to create

pages

No need to format

Metadata Navigation

Cross-Site Publishing

Reuse content between different sites including site collections and farms

Catalogs can surface lists into publishing sites onto a category page and item pages

Can be surfaced through the Content Search Web Part

No need to create and publish web pages

Create custom friendly URLs

Metadata based navigation base

Cross Site Publishing

Job Posting

Job Posting

Job Posting

Job Posting

Simcoe County District School Board

50000 students

Over 6000 employees

Board office in Barrie

Bordered by the Holland Marsh in the south the Trent-Severn Waterway in the east Grey County in the west and Muskoka in the north

Simcoe County District School Board

119 schools and centres 87 elementary 16 secondary 6 learning centres 10 alternative

Each needs their own web site Being built on SharePoint 2013 Elementary panel first Each has their own unique URL Content authored both at the school and centrally from the board

wwwscdsbonca Pre-existing SharePoint 2010 site Future goal is to rebuild in SharePoint 2013

Business Challenge

100+ public web sites

No standardization on style technology or content

No ability for the board to push content to the school sites

Outdated sites

Not mobile or AODA compliant

Site Features

Fully Adaptivemobile design Robust Search functionality Template makes it fast and efficient to add new school sites News and events can be targeted by the Board to any number of

school sites Target by panel weather zone trustee language Presented in a blended view with the school news and events

Home page rotator links hours content pages all managed by the school staff

SEO-friendly URLs

News

School news entered by school staff

Board news entered in the board site

Rendered using cross-site publishing

High-priority alerts can be flagged to highlight on the site

Bus or school cancellations

Events

Single and multi-day events

School and board managed like news

Adaptive calendar

School Picker

Used to pick which schools to target news and events to

Schools are tagged through the term store

Target by panel weather zone trustee language

Can override and add or remove individual schools

Search

Catalogs

Three main steps

Enabling lists or libraries as catalogs

Creating the catalog connection

Building the page layouts to display the category rollups or item detail pages

Enabling Catalogs

Doesnrsquot have to be a list can be a document Images or Pages library

Experimenting using a Pages library

This gives us draft and published states that lists donrsquot support

Preview and editing is easier

Fairly simple script to do this

Catalog connections are more complex

Create the connection

Fix up the Term Store

Create the Category and Item page layouts and pages

SEO Enhancements

Friendly URLs

Home page redirects

XML sitemaps automatically generated and updated

Custom SEO properties

Usage Analytics

Built for scale from the ground up Detail data rolled up every 15 days amp anonymized Daily events purged every 15 days monthly events after 3 years Lifetime counts always retained

Counts views amp unique itemsday Shows recent (2-weeks) and lifetime count Trims least visited content Pushes aggregate data to reporting database

Drives recommendations capabilities on content Calculations injected into search index as sortable managed properties Deep integration with search engine Can influence search relevance based on content usage

Variations and Multi-Lingual

Export and import content for translation in XLIFF format

Pages

Labels

List items

Navigation

Bing translation service comes with active SharePoint 2013 license

Adaptive Web Design

Adaptive vs Responsive

Adaptive

Fixed breakpoints‒ Desktop gt 980 px

‒ Table portrait gt 768 px

‒ Phone to tablet gt 480 px lt 768 px

‒ Smartphone lt 480 px

Responsive

No fixed breakpoints

Design fluidly adapts to whatever width the browser is

We generally do a hybrid approach with responsive design in the under 768 pixel situation

Design Approaches in SharePoint

Adaptive Design through CSS media queries

Broader standards approach used outside of SharePoint

Keeps a single master page and CSS

Some unnecessary components may still be loaded

Device Channels SharePoint specific approach

Assign different master pages to different device channels

Rules define what devices use which channels

Device Channel Panels can also target content to channels

Hybrid here can also make sense Device channels can be used to remove unnecessary items from the page payload

Our Adaptive Approach

Built using the Twitter Boostrap CSS framework

twittergithubcombootstrap

Provides a responsive design framework for supporting PC Mac tablet and mobile

We enhanced to provide better touch navigation support

Can be leveraged in the master page page layouts and display templates

Incorporated into the SharePoint 2013 Design Master

HTML based master page that can be edited with any tool

SharePoint converts to a master page when uploaded or saved

Additional Open Source Tools and Resources

HTML CSS JavaScript jQuery

httpwwww3schoolscom

httpgetbootstrapcom

httphandlebarsjscom

httpknockoutjscom

httpsangularjsorg

httpmomentjscom

Content Search Web Part

Web part is configured to return search results

Executed as client-side code in the browser

Pair of display templates map the data returned to HTML

Control template for the overall structure

Item template for each item returned

HTML Designer Manager files are compiled to JavaScript

REST Search and Handlebars

Search is accessible through REST calls

httpsiteurl_apisearchquery

Returns results as a JSON array

Handlebars is a templating engine to format that

Conceptually similar to display templates with control and item sections

jQuery glues this all together

Steps to Experiment

F12 to get into Developer Toolbar

Set a breakpoint where the REST URL is determined

Copy the value

Paste into the REST Search test window

Experiment with the query

Adjust the Handlebars template appropriately

Search Setup

Content Sources to define and schedule the crawls

Crawl logs to review success

Search Schema to define the managed properties

Reusable Content

Snippets of HTML that can be reused throughout the site

JavaScript can be intelligent and use the URL to determine its behaviour

Makes it easy for content authors to drop pre-configured dynamic content onto pages

Topic Pages

Shows all items that match a topic

Could be hundreds of virtual pages

Only one template page

Easily customizable and SEO friendly (each topic appears to be its own page)

Content by search web part open search against a query or result source

May be able to surface the topic pages themselves as site search results

Public Health Ontario

httpwwwpublichealthontariocaenBrowseByTopicPagesTopicaspxk=Influenza20InformationByTopic22Influenza22

Ontario Association of Childrens Aid Societies

Application Lifecycle Management

Purpose

How do we build a solid SharePoint development environment for the enterprise

How do a number of developers work together on a SharePoint project

How does code and content move through a dev test and production lifecycle

What is Agile and Continuous Integration and why is it important

Visual Studio and Team Foundation Server

Visual Studio 2010 is the development platform for coding on SharePoint 2010

Team Foundation Server integrates with Visual Studio to provide a repository for code test and other project artifacts

It facilitates teamwork by providing a common place for developers to work together

Provisioning SharePoint Farms

Provisioning SharePoint Farms

Every developer needs their own complete SharePoint farm

Teams need a dev integration farm to bring their work together on

A full architecture needs QA and production farms as well

Envision IT Virtualization Architecture

Developer VM Template

SharePoint Server 2010 Enterprise

SP1 and August CU

Visual Studio 2010 Premium SP1

Office 2010 Professional Plus SP1

SharePoint Designer 2010 SP1

Fiddler

SQL Server 2008 R2 SP1

Creating a new Developer VM

Open System Centre Virtual Machine Manager

Create Virtual Machine

Choose the Developer VM template

Set the virtual machine name and options

Create and start the VM

Creating a new Developer VM - Step 2

Developer RDPs to their new VM Complete the SQL Server installation

Create the default instance Set the service account(s) Set the authentication mode and server administrators

Update the AutoSPInstallerInputxml file Set the machine name for the default sites and database server Set the service account passwords

Run the AutoSPInstallerLaunch batch file Do a Health check review

Creating a new Developer VM - Step 3

Start Visual Studio

Connect to the Team Foundation Server

Setup your workspaces

Use a standard naming convention across your team

CDevelopmentTFSCollection

Other Environments

Dev Integration QA and Production can all be built using AutoSPInstall

Donrsquot need or want the Visual Studio or Office tools on these servers

We have a base template we use for dev integration servers

QA should match the Prod architecture as closely as possible

High availability with load balancing clustered SQL app servers DMZ hardening Internet publishing

Agile Development

Agile with Team Foundation Server

Creating Your TFS Project

Open Visual Studio

Make sure you are connected to the right Team Project Collection

In Team Explorer right-click the top collection and create a new Team Project

Use the Scrum 10 template

Go into the Areas and Iterations Delete the extraneous releases and sprints

Create a product backlog iteration

Start adding your stories and tasks

Continuous Integration

Continuous Integration

Automated Testing

SharePoint Site Elements

Site structure Site columns content types subsites lists libraries

Branding elements Master pages layouts CSS XSLT supporting images

Custom web parts Page and site content Web part instances Search Workflows Business Connectivity Services Managed Metadata

SharePoint Site Elements ndash Part 2

Access Excel Word Visio

PerformancePoint

Document conversions

Timer jobs

Secure Store Service

User profiles

Site Structure

bull Site columns

bull Define the fields that are used by content types

bull Content types

bull Defines collections of site columns for different types of content

bull Subsites

bull The hierarchy of sites that make up the site collection

bull Lists and Libraries

bull The lists and libraries for each subsite

Site Structure ndash Part 2

Site columns and content types can be programmatically or manually created If they are going to be used in multiple site collections they should be

programmatically created

If a single site collection they can be created manually in a master site collection

GUIDs cannot be manually set and code may need them to be consistent

You can create them manually in SharePoint save the site as a template and import them into Visual Studio to create a proper WSP package

Site Structure ndash Part 3

Site structure can also be done either programmatically or manually

Many sites are complex and it is error prone to create manually

We use our own SiteModelBuilder tool to create the site structure

Site Structure ndash Part 4

For all site structure elements changes can also be manual or programmatic It is useful to be able to delete the whole site collection and recreate it

programmatically As soon as content starts being authored in SharePoint it becomes difficult

or impossible to do that

After content authoring has started Site column and content type changes need to be programmed explicitly

(you canrsquot just drop the content type and recreate it) Site structure changes are usually done manually at this point Changes need to be backed up and restored

Change Management

Page and Site Content

Page and site content is entered directly into SharePoint by the content authors Web pages images PDFs list content etc This should be done in the master site separate from where dev integration is

happening Care needs to be taken with this site once authors start working Make sure it is part of your production backup plan

Periodically back it up and restore it to the dev integration and developer VMs

Alternatively script the export and import Ultimately it will be backed up and restored to the QA and production

farms

Change Management

Change Management

Change Management

Change Management

Web part instances

Web parts ultimately get placed on pages

The configuration of the web parts can often get quite complex

You may want to disable editing of web parts for general content authors

They end up in a grey zone between code and content

Web part instances ndash Part 2

We created our own internal tool to export and import web parts

Each web partrsquos configuration can be exported into a webpartfile

We scripted the extraction from the dev integration

webpart files are treated like code and checked into TFS for version control

Script then applies the new webpart files to the target environment

Workflows

Workflows can be built using SharePoint Designer Visual Studio or third-party tools (Nintex or K2 primarily)

Visual Studio workflow projects are automatically packaged as WSP solution files Simply deploy the WSP file to the other environments

SharePoint Designer workflows need to be deployed using SharePoint Designer This means you need SPD access to production which is not always possible

You can load the SPD workflow into Visual Studio to package it but you lose the ability to edit it in SPD

If you use third-party tools yoursquoll need to define the process for that as well

Business Connectivity Services

BCS can be built using either SharePoint Designer or Visual Studio Visual Studio BCS projects are automatically packaged as WSP

solution files Simply deploy the WSP file to the other environments You can also export the BDC metadata model in the BDC service

application

SharePoint Designer doesnrsquot create a WSP and it doesnrsquot make a complete BDC metadata model You need to export and import using SharePoint Designer

In both cases you still need to deal with connection and configuration information

Future Directions

Visual Studio Lab Management

Integrates the management of HyperV environments in with Visual Studio and Team Foundation Server

Can automate the provisioning of lab environments for automated testing

Test failures can snapshot entire environments to make reproduction of errors much easier

Summary

Yoursquore going to have lots of SharePoint environments ndash figure out how to build them quickly and repeatable

Code and content often move in opposite directions through dev QA and Prod PowerShell script and automate to keep this simple

Agile is a great way to run projects

Continuous integration with automated testing is key to its success

There are lots of parts of SharePoint that you donrsquot code through Visual Studio Figure out how you move those through your environment

Other Topics

Site Design

Information architecture

Wireframes

Creative designs ndash Mobile first

Catalogs deep dive

Site build PowerShell scripts

Team Foundation Server and Application Lifecycle Management

Starting a new project

Managing content authoring

Site Improve tool

SEO Optimizations

Analytics options

Retaining Page Ranks with permanent redirects (301)

Azure SharePoint Hosting

Q amp A

Session Evaluations

Go to Evaluations on the home page of wwwcollabconorg

It is important to get your feedback

Please fill out evaluations for all the sessions you attend

Following the conference a random drawing from all completed evaluations will be selected

The winner will receive a $250 Future Shop gift card valid online or in store

Page 11: Web Content Management - CollabCon 2015 - Web... · Performances Complete Works ... Friendly URL An SEO friendly URL defined in the term store for a page, rather than ... What’s

High Level Overview

Prod httpsshakespeareenvisionitcom

Dev Integration httpsshakespearedevenvisionitcom

News

Events

Productions

Performances

Complete Works Plays

‒ Comedy

‒ History

‒ Tragedy

Poetry

Adaptive Design

Built Using Twitter Bootstrap V3

Smartphone Portrait Tablet and Desktop breakpoints

Switches to fluid responsive design below smartphone resolution

Navigation and Friendly URLs

Term store used for navigation and friendly URLs

Server side control outputs HTML for top nav left nav and breadcrumb

Plan is to convert to client-side to support Office 365

Term Store Setup

Two groups used to separate metadata from navigation

Metadata group setup globally

Static GUIDs consistent through all environments

Navigation group setup at the site collection level

Allows multiple copies for multiple sites on the farm

Open Source Tools and Resources

HTML CSS JavaScript jQuery

httpwwww3schoolscom

httpgetbootstrapcom

httphandlebarsjscom

httpknockoutjscom

httpsangularjsorg

httpmomentjscom

Build Process

Complete script is the master script to setup the site

On a new farm it creates the web app and site collection

If the site collection exists it should not affect any content

Useful for updating branding and web parts

TFS build should run this

Need to explicitly force the full run

General Project Process

Create run and test the scripts on your own developer VM

When ready run on dev integration to setup site

Content authoring can happen on dev integration

Script the extraction of content

Compare to TFS and check in as required

Always back up your content authoring site before re-running a full build

Complete Script

Check and create the web app Check and create the site collection Import the term store Set the term store navigation Build the site structure Populate the content Catalogs Search Branding Web Parts

Other Scripts

Set Environment

Defines parameters for each of the environments

Typically has defaults intended for VM13 developer environment

Export the term store to XML

Export list or library content

Overview of ESC Scripts

ESCBuilder_DeployPackages

ESCBuilder_Helper

ESCBuilder_PopulateStructureContent

ESCBuilder_Search

Design Phase

MindMap Information Architecture

Axure Wireframes

PhotoShop or Illustrator Creative Designs

Site Columns and Content Types

Create directly through the SharePoint UI

Senior Consultant can do this in an initial empty devintegration environment

Export script exports these to XML files

Import into target envionments

Typically need Term Store configured as well for Managed Metadata columns

Branding Files

No longer in a Visual Studio WSP package

Simply a collection of files in the Builder folder

Still managed through TFS

Build script uploads and publishes these to the target site

Can edit directly against SharePoint by opening in Windows Explorer

Need to be careful about updating TFS

Export will export the branding files but has farm information in the files that makes it difficult to compare against TFS

Catalogs

Three main steps

Enabling lists or libraries as catalogs

Creating the catalog connection

Building the page layouts to display the category rollups or item detail pages

Enabling Catalogs

Doesnrsquot have to be a list can be a document Images or Pages library

Experimenting using a Pages library

This gives us draft and published states that lists donrsquot support

Preview and editing is easier

Fairly simple script to do this

Needs a full crawl after doing this

Creating the Catalog Connection

Rishan did some great work here

Scripts establish the connection and also update the term store as required

SharePoint Catalog Page Layouts

Uses the CSWP and Content Reuse web parts

Result sources defined in Search for each catalog connection

GUIDs for the result sources different in each farm and need to be updated as part of the deployment

REST Search Catalog Pages

HTML with data attributes on page layouts or in Reusable HTML

jQuery detects this

Builds a REST Search query based on the attributes and URL

Calls SharePoint

Uses Handlebars to format the results

Product Replacements

Video Player is part of the lib structure

Needs references added to the master page

Any hyperlink to an MP4 file launches the video popup

Image Rotator

Jeff is working on standardizing some jQuery slider options

Photo Viewer

No plans just yet

All of these will be part of the ESC package

Starting a New Project

Copy the five ESC scripts from $Envision Shakespeare CompanyBuilder Do not rename

Copy the ShakespeareBuild scripts Rename to your project Update the steps as required for your project

Create the infrastructure WSP Site columns content types list definitions and instances

Manually create the pages and assets that are needed in SharePoint Manually create the term store for metadata and navigation Script the extraction to TFS of content and term store Create the branding WSP Manually create any required web parts Export to TFS and script the placement of the web parts on the pages

ESC Scripts Next Steps

Incorporate TMX additions Farm property bag instead of webconfig Audiences Subsites Available layouts Permissions Extract folders and lists

Continue reconciling additional projects in OMA TMX Christie Medical

Full header blocks and commenting Version numbers Complete the catalog connection script Office 365 support

Links

wwwenvisionitcom

blogpetercarsonca

wwwenvisionitcomshakespeare

httpsShakespeareenvisionitcom

wwwbgccancom

wwwproblemgamblingca

wwwrusselmetalscom

wwwtarioncom

wwwtransamericaca

wwwcollegeofececa

wwwsamuelcom

wwwthewaterfrontpropertiesca

wwwshopsatdonmillsca

wwwfuturesherwaygardensca

wwwpublichealthontarioca

SharePoint WCM Glossary

SharePoint Glossary

Term Definition

SharePoint Farm A set of SharePoint servers that share a single configuration database

Web Application A top level container and entry-point URLs for site collections

Site Collection A set of Web sites that are in the same content database have the same owner and share administration settings A site collection can be identified by a GUID or the URL of the top-level site for the site collection Each site collection contains a top-level site can contain one or more subsites and can have a shared navigation structure

Path Based Site Collection A site collection under a managed pathhttpwebappsitessitecollection

Host Named Site Collection A site collection with its own unique URL Must be created through PowerShell

Site Subsite under a site collection

Site Template A template for a single site that has been saved from another site Site templates may or may not contain content Templates cannot be created from publishing sites

SharePoint Glossary

Term Definition

Site Column A single field that can store information of a particular typebull Textbull Choicebull Numberbull hellipDefined at the site collection level

Content Type A content type is a reusable collection of Site Columns that can be applied to a certain category of content Content types enable the management of metadata and behaviors of a document or item type in a centralized reusable way Basically content types include the columns (or fields) that are applied to a certain type of content plus other optional settings such as a document template

Document Set New content type in SharePoint 2010 A document set is a container for multiple documents to which you can assign certain metadata and treat as a single entity in many ways In addition a document set can contain one or more different content types

SharePoint Glossary

Term Definition

List A container for list content types or custom list items Columns can be defined via content types or directly in the list

Document Library A SharePoint list that contains documents where you can create collect update and share files with others Like lists columns can be defined via content types or directly in the list

Form Library A special type of library to facilitate the interaction with InfoPath forms

Asset Library A library typically used to store image audio and video files

List Template A template used to define the configuration of a list or library Templates can be saved with or without content

SharePoint Glossary

Term Definition

Term Store An instance of the Managed Metadata Service This can be shared between sites site collections web applications or farms

Group A collection of term sets

Term Set A collection of related terms

Term A word or a phrase that can be associated with a SharePoint item

Friendly URL An SEO friendly URL defined in the term store for a page rather than the physical URL of where the page is stored (Pages)

SharePoint Glossary

Term Definition

Design Manager 2013 feature used to manipulate WCM artifacts

Master Page Defines elements that are common to all pages such as the header navigation and footer

Page Layout Defines the layout of a particular style of page such as news or events Each page content type can have one or more layouts associated with them

Web Parts Functional elements that can be added to pages typically for dynamic content

Apps Similar to web parts but run outside of SharePoint while beinghosted in the SharePoint page

Publishing Site Page Rendering

FileName

Welcomeaspx

PageLayout

PageLayoutaspx

Title

Welcome To News

Body

Lorem ipsum dolor sit

Image

ImagesChairjpg

1 Welcomeaspx page is

requested

2 Page layout associated with

page is retrieved

3 Master page associated with site

is retrieved

4 Controls in page layout render

content from pagersquos fields into the page

MasterPagemaster

PageLayoutaspxTitle

BodyImage

Date

ByLine

Field Control

FieldControl

Field ControlField ControlField Control

Field Control

httpfoocombarpageswelcomeaspx

SharePoint Glossary

Term Definition

Cross-Site Publishing Publishing from an authoring site collection to one or more publishing site collections

Catalog A list that has been published as a catalog

Category Page A page that displays a rollup of catalog items

Catalog Item Page A page that displays a single item from a catalog

Display Template Used to format the results on search pages in content search web parts and on category pages

Whatrsquos New in Web Content

Management

Easier Page Authoring With Cut and Paste

Drag and Drop Files

Drag and drop files from Windows Explorer into the browser or the other way

Doesnrsquot support folders or document sets

Open in Windows Explorer still works best for this

Requires IE10 or current versions of Chrome Safari or Firefox

IE8 and 9 supported with Office 2013 installed

Image Renditions

Display uploaded images in predefined sizes widths and crops

Multiple renditions stored in document sets

Content author can create renditions (including crops) in the browser

Design Manager

New way to build master

pages and layouts

SharePoint Designer no

longer required

Edit and preview in any HTML

editor

Automatically creates the associated

master page and aspx

layouts

Package into a Design

Package WSP for

deployment

Snippet Gallery

Select components

such as search box or

navigation control

Configure its properties

Paste the snippet into your HTML

master page or layout

Changes synched to

actual master pages and layouts to convert to SharePoint

components

Can be used by any web design

tool

Device Channels

Map channels to mobile devices or browsers

Alternate master pages

can be assigned

Page layouts can include or

exclude content based

on channel

Display Templates

Used to customize the

presentation of search results

No more XSLT

Three templates

bull Control ndash Overall structure of search results

bull Group ndash Show groups of results

bull Item ndash How each result is presented

Navigation and Friendly URLs

Site navigation driven by managed metadata

Term store used for navigation and SEO-friendly URLs

Connect site navigation to business concepts rather than site structure

Server side control outputs HTML for top nav left nav and breadcrumb

Plan is to convert to client-side to support Office 365

Term Store Setup

Two groups used to separate metadata from navigation

Metadata group setup globally

Static GUIDs consistent through all environments

Navigation group setup at the site collection level

Allows multiple copies for multiple sites on the farm

Search

Search is new and different from all previous versions of SharePoint

The platform has been consolidated Built on a combination of FAST Search and SharePoint Search components as well as new development work ndash it is the

same from Foundation to Server

Foundation Search is intended to replace WSS Search Microsoft Search Server and Search Server Express from previous versions of SharePoint

Itrsquos used pervasively throughout the product now in many different ways in different features eDiscovery navigation topic pages Internet facing business sites etc

Search in SharePoint 2013

Single Extensible Platform

FAST Engine

SharePoint Crawler

Best of both

Same Search Platform in both SharePoint and Exchange

Enterprise Search

Search Page Web parts added to a publishing page

Catalogs Cross-site publishing

Library search Executes in place on the library

Site Search _layouts15osssearchresultsaspx Specifies the site and search parameters

Search Centre Basic Search Center - SharePoint Foundation 2013 Enterprise Search Center - SharePoint Server 2013

Content Search Web Part

Similar in concept to the Content Query Web Part

Many advantages

Can go across sites site collections web apps even farms

Leverages the search index -gt very scalable

Query Builder makes it easy to define your results

Use Display Templates to customize the look and feel No more XSLT

Part of the Enterprise CAL

Pre-Configured CSWPs

Popular Items Shows items that have been recently viewed by many users

Recently Changed Items Shows items that have been modified recently This can help site users

track the latest activity on a site or a library

Recommended Items Show content recommendations based on usage patterns for the current

page

All of these can be further configured by editing their properties and changing the search criteria

Search Results Web Part

Similar functionality to the Content Search Web Part

Doesnrsquot allow property mapping in the web part configuration

Mapping is controlled in the Display Template

Part of the Standard CAL

Category Page Item Page

Catalogs

wwwcontosocomproductsAudio-Liware2g

Catalogs

Results

Consistent Displays

Manage content in one place

No need to create

pages

No need to format

Metadata Navigation

Cross-Site Publishing

Reuse content between different sites including site collections and farms

Catalogs can surface lists into publishing sites onto a category page and item pages

Can be surfaced through the Content Search Web Part

No need to create and publish web pages

Create custom friendly URLs

Metadata based navigation base

Cross Site Publishing

Job Posting

Job Posting

Job Posting

Job Posting

Simcoe County District School Board

50000 students

Over 6000 employees

Board office in Barrie

Bordered by the Holland Marsh in the south the Trent-Severn Waterway in the east Grey County in the west and Muskoka in the north

Simcoe County District School Board

119 schools and centres 87 elementary 16 secondary 6 learning centres 10 alternative

Each needs their own web site Being built on SharePoint 2013 Elementary panel first Each has their own unique URL Content authored both at the school and centrally from the board

wwwscdsbonca Pre-existing SharePoint 2010 site Future goal is to rebuild in SharePoint 2013

Business Challenge

100+ public web sites

No standardization on style technology or content

No ability for the board to push content to the school sites

Outdated sites

Not mobile or AODA compliant

Site Features

Fully Adaptivemobile design Robust Search functionality Template makes it fast and efficient to add new school sites News and events can be targeted by the Board to any number of

school sites Target by panel weather zone trustee language Presented in a blended view with the school news and events

Home page rotator links hours content pages all managed by the school staff

SEO-friendly URLs

News

School news entered by school staff

Board news entered in the board site

Rendered using cross-site publishing

High-priority alerts can be flagged to highlight on the site

Bus or school cancellations

Events

Single and multi-day events

School and board managed like news

Adaptive calendar

School Picker

Used to pick which schools to target news and events to

Schools are tagged through the term store

Target by panel weather zone trustee language

Can override and add or remove individual schools

Search

Catalogs

Three main steps

Enabling lists or libraries as catalogs

Creating the catalog connection

Building the page layouts to display the category rollups or item detail pages

Enabling Catalogs

Doesnrsquot have to be a list can be a document Images or Pages library

Experimenting using a Pages library

This gives us draft and published states that lists donrsquot support

Preview and editing is easier

Fairly simple script to do this

Catalog connections are more complex

Create the connection

Fix up the Term Store

Create the Category and Item page layouts and pages

SEO Enhancements

Friendly URLs

Home page redirects

XML sitemaps automatically generated and updated

Custom SEO properties

Usage Analytics

Built for scale from the ground up Detail data rolled up every 15 days amp anonymized Daily events purged every 15 days monthly events after 3 years Lifetime counts always retained

Counts views amp unique itemsday Shows recent (2-weeks) and lifetime count Trims least visited content Pushes aggregate data to reporting database

Drives recommendations capabilities on content Calculations injected into search index as sortable managed properties Deep integration with search engine Can influence search relevance based on content usage

Variations and Multi-Lingual

Export and import content for translation in XLIFF format

Pages

Labels

List items

Navigation

Bing translation service comes with active SharePoint 2013 license

Adaptive Web Design

Adaptive vs Responsive

Adaptive

Fixed breakpoints‒ Desktop gt 980 px

‒ Table portrait gt 768 px

‒ Phone to tablet gt 480 px lt 768 px

‒ Smartphone lt 480 px

Responsive

No fixed breakpoints

Design fluidly adapts to whatever width the browser is

We generally do a hybrid approach with responsive design in the under 768 pixel situation

Design Approaches in SharePoint

Adaptive Design through CSS media queries

Broader standards approach used outside of SharePoint

Keeps a single master page and CSS

Some unnecessary components may still be loaded

Device Channels SharePoint specific approach

Assign different master pages to different device channels

Rules define what devices use which channels

Device Channel Panels can also target content to channels

Hybrid here can also make sense Device channels can be used to remove unnecessary items from the page payload

Our Adaptive Approach

Built using the Twitter Boostrap CSS framework

twittergithubcombootstrap

Provides a responsive design framework for supporting PC Mac tablet and mobile

We enhanced to provide better touch navigation support

Can be leveraged in the master page page layouts and display templates

Incorporated into the SharePoint 2013 Design Master

HTML based master page that can be edited with any tool

SharePoint converts to a master page when uploaded or saved

Additional Open Source Tools and Resources

HTML CSS JavaScript jQuery

httpwwww3schoolscom

httpgetbootstrapcom

httphandlebarsjscom

httpknockoutjscom

httpsangularjsorg

httpmomentjscom

Content Search Web Part

Web part is configured to return search results

Executed as client-side code in the browser

Pair of display templates map the data returned to HTML

Control template for the overall structure

Item template for each item returned

HTML Designer Manager files are compiled to JavaScript

REST Search and Handlebars

Search is accessible through REST calls

httpsiteurl_apisearchquery

Returns results as a JSON array

Handlebars is a templating engine to format that

Conceptually similar to display templates with control and item sections

jQuery glues this all together

Steps to Experiment

F12 to get into Developer Toolbar

Set a breakpoint where the REST URL is determined

Copy the value

Paste into the REST Search test window

Experiment with the query

Adjust the Handlebars template appropriately

Search Setup

Content Sources to define and schedule the crawls

Crawl logs to review success

Search Schema to define the managed properties

Reusable Content

Snippets of HTML that can be reused throughout the site

JavaScript can be intelligent and use the URL to determine its behaviour

Makes it easy for content authors to drop pre-configured dynamic content onto pages

Topic Pages

Shows all items that match a topic

Could be hundreds of virtual pages

Only one template page

Easily customizable and SEO friendly (each topic appears to be its own page)

Content by search web part open search against a query or result source

May be able to surface the topic pages themselves as site search results

Public Health Ontario

httpwwwpublichealthontariocaenBrowseByTopicPagesTopicaspxk=Influenza20InformationByTopic22Influenza22

Ontario Association of Childrens Aid Societies

Application Lifecycle Management

Purpose

How do we build a solid SharePoint development environment for the enterprise

How do a number of developers work together on a SharePoint project

How does code and content move through a dev test and production lifecycle

What is Agile and Continuous Integration and why is it important

Visual Studio and Team Foundation Server

Visual Studio 2010 is the development platform for coding on SharePoint 2010

Team Foundation Server integrates with Visual Studio to provide a repository for code test and other project artifacts

It facilitates teamwork by providing a common place for developers to work together

Provisioning SharePoint Farms

Provisioning SharePoint Farms

Every developer needs their own complete SharePoint farm

Teams need a dev integration farm to bring their work together on

A full architecture needs QA and production farms as well

Envision IT Virtualization Architecture

Developer VM Template

SharePoint Server 2010 Enterprise

SP1 and August CU

Visual Studio 2010 Premium SP1

Office 2010 Professional Plus SP1

SharePoint Designer 2010 SP1

Fiddler

SQL Server 2008 R2 SP1

Creating a new Developer VM

Open System Centre Virtual Machine Manager

Create Virtual Machine

Choose the Developer VM template

Set the virtual machine name and options

Create and start the VM

Creating a new Developer VM - Step 2

Developer RDPs to their new VM Complete the SQL Server installation

Create the default instance Set the service account(s) Set the authentication mode and server administrators

Update the AutoSPInstallerInputxml file Set the machine name for the default sites and database server Set the service account passwords

Run the AutoSPInstallerLaunch batch file Do a Health check review

Creating a new Developer VM - Step 3

Start Visual Studio

Connect to the Team Foundation Server

Setup your workspaces

Use a standard naming convention across your team

CDevelopmentTFSCollection

Other Environments

Dev Integration QA and Production can all be built using AutoSPInstall

Donrsquot need or want the Visual Studio or Office tools on these servers

We have a base template we use for dev integration servers

QA should match the Prod architecture as closely as possible

High availability with load balancing clustered SQL app servers DMZ hardening Internet publishing

Agile Development

Agile with Team Foundation Server

Creating Your TFS Project

Open Visual Studio

Make sure you are connected to the right Team Project Collection

In Team Explorer right-click the top collection and create a new Team Project

Use the Scrum 10 template

Go into the Areas and Iterations Delete the extraneous releases and sprints

Create a product backlog iteration

Start adding your stories and tasks

Continuous Integration

Continuous Integration

Automated Testing

SharePoint Site Elements

Site structure Site columns content types subsites lists libraries

Branding elements Master pages layouts CSS XSLT supporting images

Custom web parts Page and site content Web part instances Search Workflows Business Connectivity Services Managed Metadata

SharePoint Site Elements ndash Part 2

Access Excel Word Visio

PerformancePoint

Document conversions

Timer jobs

Secure Store Service

User profiles

Site Structure

bull Site columns

bull Define the fields that are used by content types

bull Content types

bull Defines collections of site columns for different types of content

bull Subsites

bull The hierarchy of sites that make up the site collection

bull Lists and Libraries

bull The lists and libraries for each subsite

Site Structure ndash Part 2

Site columns and content types can be programmatically or manually created If they are going to be used in multiple site collections they should be

programmatically created

If a single site collection they can be created manually in a master site collection

GUIDs cannot be manually set and code may need them to be consistent

You can create them manually in SharePoint save the site as a template and import them into Visual Studio to create a proper WSP package

Site Structure ndash Part 3

Site structure can also be done either programmatically or manually

Many sites are complex and it is error prone to create manually

We use our own SiteModelBuilder tool to create the site structure

Site Structure ndash Part 4

For all site structure elements changes can also be manual or programmatic It is useful to be able to delete the whole site collection and recreate it

programmatically As soon as content starts being authored in SharePoint it becomes difficult

or impossible to do that

After content authoring has started Site column and content type changes need to be programmed explicitly

(you canrsquot just drop the content type and recreate it) Site structure changes are usually done manually at this point Changes need to be backed up and restored

Change Management

Page and Site Content

Page and site content is entered directly into SharePoint by the content authors Web pages images PDFs list content etc This should be done in the master site separate from where dev integration is

happening Care needs to be taken with this site once authors start working Make sure it is part of your production backup plan

Periodically back it up and restore it to the dev integration and developer VMs

Alternatively script the export and import Ultimately it will be backed up and restored to the QA and production

farms

Change Management

Change Management

Change Management

Change Management

Web part instances

Web parts ultimately get placed on pages

The configuration of the web parts can often get quite complex

You may want to disable editing of web parts for general content authors

They end up in a grey zone between code and content

Web part instances ndash Part 2

We created our own internal tool to export and import web parts

Each web partrsquos configuration can be exported into a webpartfile

We scripted the extraction from the dev integration

webpart files are treated like code and checked into TFS for version control

Script then applies the new webpart files to the target environment

Workflows

Workflows can be built using SharePoint Designer Visual Studio or third-party tools (Nintex or K2 primarily)

Visual Studio workflow projects are automatically packaged as WSP solution files Simply deploy the WSP file to the other environments

SharePoint Designer workflows need to be deployed using SharePoint Designer This means you need SPD access to production which is not always possible

You can load the SPD workflow into Visual Studio to package it but you lose the ability to edit it in SPD

If you use third-party tools yoursquoll need to define the process for that as well

Business Connectivity Services

BCS can be built using either SharePoint Designer or Visual Studio Visual Studio BCS projects are automatically packaged as WSP

solution files Simply deploy the WSP file to the other environments You can also export the BDC metadata model in the BDC service

application

SharePoint Designer doesnrsquot create a WSP and it doesnrsquot make a complete BDC metadata model You need to export and import using SharePoint Designer

In both cases you still need to deal with connection and configuration information

Future Directions

Visual Studio Lab Management

Integrates the management of HyperV environments in with Visual Studio and Team Foundation Server

Can automate the provisioning of lab environments for automated testing

Test failures can snapshot entire environments to make reproduction of errors much easier

Summary

Yoursquore going to have lots of SharePoint environments ndash figure out how to build them quickly and repeatable

Code and content often move in opposite directions through dev QA and Prod PowerShell script and automate to keep this simple

Agile is a great way to run projects

Continuous integration with automated testing is key to its success

There are lots of parts of SharePoint that you donrsquot code through Visual Studio Figure out how you move those through your environment

Other Topics

Site Design

Information architecture

Wireframes

Creative designs ndash Mobile first

Catalogs deep dive

Site build PowerShell scripts

Team Foundation Server and Application Lifecycle Management

Starting a new project

Managing content authoring

Site Improve tool

SEO Optimizations

Analytics options

Retaining Page Ranks with permanent redirects (301)

Azure SharePoint Hosting

Q amp A

Session Evaluations

Go to Evaluations on the home page of wwwcollabconorg

It is important to get your feedback

Please fill out evaluations for all the sessions you attend

Following the conference a random drawing from all completed evaluations will be selected

The winner will receive a $250 Future Shop gift card valid online or in store

Page 12: Web Content Management - CollabCon 2015 - Web... · Performances Complete Works ... Friendly URL An SEO friendly URL defined in the term store for a page, rather than ... What’s

Adaptive Design

Built Using Twitter Bootstrap V3

Smartphone Portrait Tablet and Desktop breakpoints

Switches to fluid responsive design below smartphone resolution

Navigation and Friendly URLs

Term store used for navigation and friendly URLs

Server side control outputs HTML for top nav left nav and breadcrumb

Plan is to convert to client-side to support Office 365

Term Store Setup

Two groups used to separate metadata from navigation

Metadata group setup globally

Static GUIDs consistent through all environments

Navigation group setup at the site collection level

Allows multiple copies for multiple sites on the farm

Open Source Tools and Resources

HTML CSS JavaScript jQuery

httpwwww3schoolscom

httpgetbootstrapcom

httphandlebarsjscom

httpknockoutjscom

httpsangularjsorg

httpmomentjscom

Build Process

Complete script is the master script to setup the site

On a new farm it creates the web app and site collection

If the site collection exists it should not affect any content

Useful for updating branding and web parts

TFS build should run this

Need to explicitly force the full run

General Project Process

Create run and test the scripts on your own developer VM

When ready run on dev integration to setup site

Content authoring can happen on dev integration

Script the extraction of content

Compare to TFS and check in as required

Always back up your content authoring site before re-running a full build

Complete Script

Check and create the web app Check and create the site collection Import the term store Set the term store navigation Build the site structure Populate the content Catalogs Search Branding Web Parts

Other Scripts

Set Environment

Defines parameters for each of the environments

Typically has defaults intended for VM13 developer environment

Export the term store to XML

Export list or library content

Overview of ESC Scripts

ESCBuilder_DeployPackages

ESCBuilder_Helper

ESCBuilder_PopulateStructureContent

ESCBuilder_Search

Design Phase

MindMap Information Architecture

Axure Wireframes

PhotoShop or Illustrator Creative Designs

Site Columns and Content Types

Create directly through the SharePoint UI

Senior Consultant can do this in an initial empty devintegration environment

Export script exports these to XML files

Import into target envionments

Typically need Term Store configured as well for Managed Metadata columns

Branding Files

No longer in a Visual Studio WSP package

Simply a collection of files in the Builder folder

Still managed through TFS

Build script uploads and publishes these to the target site

Can edit directly against SharePoint by opening in Windows Explorer

Need to be careful about updating TFS

Export will export the branding files but has farm information in the files that makes it difficult to compare against TFS

Catalogs

Three main steps

Enabling lists or libraries as catalogs

Creating the catalog connection

Building the page layouts to display the category rollups or item detail pages

Enabling Catalogs

Doesnrsquot have to be a list can be a document Images or Pages library

Experimenting using a Pages library

This gives us draft and published states that lists donrsquot support

Preview and editing is easier

Fairly simple script to do this

Needs a full crawl after doing this

Creating the Catalog Connection

Rishan did some great work here

Scripts establish the connection and also update the term store as required

SharePoint Catalog Page Layouts

Uses the CSWP and Content Reuse web parts

Result sources defined in Search for each catalog connection

GUIDs for the result sources different in each farm and need to be updated as part of the deployment

REST Search Catalog Pages

HTML with data attributes on page layouts or in Reusable HTML

jQuery detects this

Builds a REST Search query based on the attributes and URL

Calls SharePoint

Uses Handlebars to format the results

Product Replacements

Video Player is part of the lib structure

Needs references added to the master page

Any hyperlink to an MP4 file launches the video popup

Image Rotator

Jeff is working on standardizing some jQuery slider options

Photo Viewer

No plans just yet

All of these will be part of the ESC package

Starting a New Project

Copy the five ESC scripts from $Envision Shakespeare CompanyBuilder Do not rename

Copy the ShakespeareBuild scripts Rename to your project Update the steps as required for your project

Create the infrastructure WSP Site columns content types list definitions and instances

Manually create the pages and assets that are needed in SharePoint Manually create the term store for metadata and navigation Script the extraction to TFS of content and term store Create the branding WSP Manually create any required web parts Export to TFS and script the placement of the web parts on the pages

ESC Scripts Next Steps

Incorporate TMX additions Farm property bag instead of webconfig Audiences Subsites Available layouts Permissions Extract folders and lists

Continue reconciling additional projects in OMA TMX Christie Medical

Full header blocks and commenting Version numbers Complete the catalog connection script Office 365 support

Links

wwwenvisionitcom

blogpetercarsonca

wwwenvisionitcomshakespeare

httpsShakespeareenvisionitcom

wwwbgccancom

wwwproblemgamblingca

wwwrusselmetalscom

wwwtarioncom

wwwtransamericaca

wwwcollegeofececa

wwwsamuelcom

wwwthewaterfrontpropertiesca

wwwshopsatdonmillsca

wwwfuturesherwaygardensca

wwwpublichealthontarioca

SharePoint WCM Glossary

SharePoint Glossary

Term Definition

SharePoint Farm A set of SharePoint servers that share a single configuration database

Web Application A top level container and entry-point URLs for site collections

Site Collection A set of Web sites that are in the same content database have the same owner and share administration settings A site collection can be identified by a GUID or the URL of the top-level site for the site collection Each site collection contains a top-level site can contain one or more subsites and can have a shared navigation structure

Path Based Site Collection A site collection under a managed pathhttpwebappsitessitecollection

Host Named Site Collection A site collection with its own unique URL Must be created through PowerShell

Site Subsite under a site collection

Site Template A template for a single site that has been saved from another site Site templates may or may not contain content Templates cannot be created from publishing sites

SharePoint Glossary

Term Definition

Site Column A single field that can store information of a particular typebull Textbull Choicebull Numberbull hellipDefined at the site collection level

Content Type A content type is a reusable collection of Site Columns that can be applied to a certain category of content Content types enable the management of metadata and behaviors of a document or item type in a centralized reusable way Basically content types include the columns (or fields) that are applied to a certain type of content plus other optional settings such as a document template

Document Set New content type in SharePoint 2010 A document set is a container for multiple documents to which you can assign certain metadata and treat as a single entity in many ways In addition a document set can contain one or more different content types

SharePoint Glossary

Term Definition

List A container for list content types or custom list items Columns can be defined via content types or directly in the list

Document Library A SharePoint list that contains documents where you can create collect update and share files with others Like lists columns can be defined via content types or directly in the list

Form Library A special type of library to facilitate the interaction with InfoPath forms

Asset Library A library typically used to store image audio and video files

List Template A template used to define the configuration of a list or library Templates can be saved with or without content

SharePoint Glossary

Term Definition

Term Store An instance of the Managed Metadata Service This can be shared between sites site collections web applications or farms

Group A collection of term sets

Term Set A collection of related terms

Term A word or a phrase that can be associated with a SharePoint item

Friendly URL An SEO friendly URL defined in the term store for a page rather than the physical URL of where the page is stored (Pages)

SharePoint Glossary

Term Definition

Design Manager 2013 feature used to manipulate WCM artifacts

Master Page Defines elements that are common to all pages such as the header navigation and footer

Page Layout Defines the layout of a particular style of page such as news or events Each page content type can have one or more layouts associated with them

Web Parts Functional elements that can be added to pages typically for dynamic content

Apps Similar to web parts but run outside of SharePoint while beinghosted in the SharePoint page

Publishing Site Page Rendering

FileName

Welcomeaspx

PageLayout

PageLayoutaspx

Title

Welcome To News

Body

Lorem ipsum dolor sit

Image

ImagesChairjpg

1 Welcomeaspx page is

requested

2 Page layout associated with

page is retrieved

3 Master page associated with site

is retrieved

4 Controls in page layout render

content from pagersquos fields into the page

MasterPagemaster

PageLayoutaspxTitle

BodyImage

Date

ByLine

Field Control

FieldControl

Field ControlField ControlField Control

Field Control

httpfoocombarpageswelcomeaspx

SharePoint Glossary

Term Definition

Cross-Site Publishing Publishing from an authoring site collection to one or more publishing site collections

Catalog A list that has been published as a catalog

Category Page A page that displays a rollup of catalog items

Catalog Item Page A page that displays a single item from a catalog

Display Template Used to format the results on search pages in content search web parts and on category pages

Whatrsquos New in Web Content

Management

Easier Page Authoring With Cut and Paste

Drag and Drop Files

Drag and drop files from Windows Explorer into the browser or the other way

Doesnrsquot support folders or document sets

Open in Windows Explorer still works best for this

Requires IE10 or current versions of Chrome Safari or Firefox

IE8 and 9 supported with Office 2013 installed

Image Renditions

Display uploaded images in predefined sizes widths and crops

Multiple renditions stored in document sets

Content author can create renditions (including crops) in the browser

Design Manager

New way to build master

pages and layouts

SharePoint Designer no

longer required

Edit and preview in any HTML

editor

Automatically creates the associated

master page and aspx

layouts

Package into a Design

Package WSP for

deployment

Snippet Gallery

Select components

such as search box or

navigation control

Configure its properties

Paste the snippet into your HTML

master page or layout

Changes synched to

actual master pages and layouts to convert to SharePoint

components

Can be used by any web design

tool

Device Channels

Map channels to mobile devices or browsers

Alternate master pages

can be assigned

Page layouts can include or

exclude content based

on channel

Display Templates

Used to customize the

presentation of search results

No more XSLT

Three templates

bull Control ndash Overall structure of search results

bull Group ndash Show groups of results

bull Item ndash How each result is presented

Navigation and Friendly URLs

Site navigation driven by managed metadata

Term store used for navigation and SEO-friendly URLs

Connect site navigation to business concepts rather than site structure

Server side control outputs HTML for top nav left nav and breadcrumb

Plan is to convert to client-side to support Office 365

Term Store Setup

Two groups used to separate metadata from navigation

Metadata group setup globally

Static GUIDs consistent through all environments

Navigation group setup at the site collection level

Allows multiple copies for multiple sites on the farm

Search

Search is new and different from all previous versions of SharePoint

The platform has been consolidated Built on a combination of FAST Search and SharePoint Search components as well as new development work ndash it is the

same from Foundation to Server

Foundation Search is intended to replace WSS Search Microsoft Search Server and Search Server Express from previous versions of SharePoint

Itrsquos used pervasively throughout the product now in many different ways in different features eDiscovery navigation topic pages Internet facing business sites etc

Search in SharePoint 2013

Single Extensible Platform

FAST Engine

SharePoint Crawler

Best of both

Same Search Platform in both SharePoint and Exchange

Enterprise Search

Search Page Web parts added to a publishing page

Catalogs Cross-site publishing

Library search Executes in place on the library

Site Search _layouts15osssearchresultsaspx Specifies the site and search parameters

Search Centre Basic Search Center - SharePoint Foundation 2013 Enterprise Search Center - SharePoint Server 2013

Content Search Web Part

Similar in concept to the Content Query Web Part

Many advantages

Can go across sites site collections web apps even farms

Leverages the search index -gt very scalable

Query Builder makes it easy to define your results

Use Display Templates to customize the look and feel No more XSLT

Part of the Enterprise CAL

Pre-Configured CSWPs

Popular Items Shows items that have been recently viewed by many users

Recently Changed Items Shows items that have been modified recently This can help site users

track the latest activity on a site or a library

Recommended Items Show content recommendations based on usage patterns for the current

page

All of these can be further configured by editing their properties and changing the search criteria

Search Results Web Part

Similar functionality to the Content Search Web Part

Doesnrsquot allow property mapping in the web part configuration

Mapping is controlled in the Display Template

Part of the Standard CAL

Category Page Item Page

Catalogs

wwwcontosocomproductsAudio-Liware2g

Catalogs

Results

Consistent Displays

Manage content in one place

No need to create

pages

No need to format

Metadata Navigation

Cross-Site Publishing

Reuse content between different sites including site collections and farms

Catalogs can surface lists into publishing sites onto a category page and item pages

Can be surfaced through the Content Search Web Part

No need to create and publish web pages

Create custom friendly URLs

Metadata based navigation base

Cross Site Publishing

Job Posting

Job Posting

Job Posting

Job Posting

Simcoe County District School Board

50000 students

Over 6000 employees

Board office in Barrie

Bordered by the Holland Marsh in the south the Trent-Severn Waterway in the east Grey County in the west and Muskoka in the north

Simcoe County District School Board

119 schools and centres 87 elementary 16 secondary 6 learning centres 10 alternative

Each needs their own web site Being built on SharePoint 2013 Elementary panel first Each has their own unique URL Content authored both at the school and centrally from the board

wwwscdsbonca Pre-existing SharePoint 2010 site Future goal is to rebuild in SharePoint 2013

Business Challenge

100+ public web sites

No standardization on style technology or content

No ability for the board to push content to the school sites

Outdated sites

Not mobile or AODA compliant

Site Features

Fully Adaptivemobile design Robust Search functionality Template makes it fast and efficient to add new school sites News and events can be targeted by the Board to any number of

school sites Target by panel weather zone trustee language Presented in a blended view with the school news and events

Home page rotator links hours content pages all managed by the school staff

SEO-friendly URLs

News

School news entered by school staff

Board news entered in the board site

Rendered using cross-site publishing

High-priority alerts can be flagged to highlight on the site

Bus or school cancellations

Events

Single and multi-day events

School and board managed like news

Adaptive calendar

School Picker

Used to pick which schools to target news and events to

Schools are tagged through the term store

Target by panel weather zone trustee language

Can override and add or remove individual schools

Search

Catalogs

Three main steps

Enabling lists or libraries as catalogs

Creating the catalog connection

Building the page layouts to display the category rollups or item detail pages

Enabling Catalogs

Doesnrsquot have to be a list can be a document Images or Pages library

Experimenting using a Pages library

This gives us draft and published states that lists donrsquot support

Preview and editing is easier

Fairly simple script to do this

Catalog connections are more complex

Create the connection

Fix up the Term Store

Create the Category and Item page layouts and pages

SEO Enhancements

Friendly URLs

Home page redirects

XML sitemaps automatically generated and updated

Custom SEO properties

Usage Analytics

Built for scale from the ground up Detail data rolled up every 15 days amp anonymized Daily events purged every 15 days monthly events after 3 years Lifetime counts always retained

Counts views amp unique itemsday Shows recent (2-weeks) and lifetime count Trims least visited content Pushes aggregate data to reporting database

Drives recommendations capabilities on content Calculations injected into search index as sortable managed properties Deep integration with search engine Can influence search relevance based on content usage

Variations and Multi-Lingual

Export and import content for translation in XLIFF format

Pages

Labels

List items

Navigation

Bing translation service comes with active SharePoint 2013 license

Adaptive Web Design

Adaptive vs Responsive

Adaptive

Fixed breakpoints‒ Desktop gt 980 px

‒ Table portrait gt 768 px

‒ Phone to tablet gt 480 px lt 768 px

‒ Smartphone lt 480 px

Responsive

No fixed breakpoints

Design fluidly adapts to whatever width the browser is

We generally do a hybrid approach with responsive design in the under 768 pixel situation

Design Approaches in SharePoint

Adaptive Design through CSS media queries

Broader standards approach used outside of SharePoint

Keeps a single master page and CSS

Some unnecessary components may still be loaded

Device Channels SharePoint specific approach

Assign different master pages to different device channels

Rules define what devices use which channels

Device Channel Panels can also target content to channels

Hybrid here can also make sense Device channels can be used to remove unnecessary items from the page payload

Our Adaptive Approach

Built using the Twitter Boostrap CSS framework

twittergithubcombootstrap

Provides a responsive design framework for supporting PC Mac tablet and mobile

We enhanced to provide better touch navigation support

Can be leveraged in the master page page layouts and display templates

Incorporated into the SharePoint 2013 Design Master

HTML based master page that can be edited with any tool

SharePoint converts to a master page when uploaded or saved

Additional Open Source Tools and Resources

HTML CSS JavaScript jQuery

httpwwww3schoolscom

httpgetbootstrapcom

httphandlebarsjscom

httpknockoutjscom

httpsangularjsorg

httpmomentjscom

Content Search Web Part

Web part is configured to return search results

Executed as client-side code in the browser

Pair of display templates map the data returned to HTML

Control template for the overall structure

Item template for each item returned

HTML Designer Manager files are compiled to JavaScript

REST Search and Handlebars

Search is accessible through REST calls

httpsiteurl_apisearchquery

Returns results as a JSON array

Handlebars is a templating engine to format that

Conceptually similar to display templates with control and item sections

jQuery glues this all together

Steps to Experiment

F12 to get into Developer Toolbar

Set a breakpoint where the REST URL is determined

Copy the value

Paste into the REST Search test window

Experiment with the query

Adjust the Handlebars template appropriately

Search Setup

Content Sources to define and schedule the crawls

Crawl logs to review success

Search Schema to define the managed properties

Reusable Content

Snippets of HTML that can be reused throughout the site

JavaScript can be intelligent and use the URL to determine its behaviour

Makes it easy for content authors to drop pre-configured dynamic content onto pages

Topic Pages

Shows all items that match a topic

Could be hundreds of virtual pages

Only one template page

Easily customizable and SEO friendly (each topic appears to be its own page)

Content by search web part open search against a query or result source

May be able to surface the topic pages themselves as site search results

Public Health Ontario

httpwwwpublichealthontariocaenBrowseByTopicPagesTopicaspxk=Influenza20InformationByTopic22Influenza22

Ontario Association of Childrens Aid Societies

Application Lifecycle Management

Purpose

How do we build a solid SharePoint development environment for the enterprise

How do a number of developers work together on a SharePoint project

How does code and content move through a dev test and production lifecycle

What is Agile and Continuous Integration and why is it important

Visual Studio and Team Foundation Server

Visual Studio 2010 is the development platform for coding on SharePoint 2010

Team Foundation Server integrates with Visual Studio to provide a repository for code test and other project artifacts

It facilitates teamwork by providing a common place for developers to work together

Provisioning SharePoint Farms

Provisioning SharePoint Farms

Every developer needs their own complete SharePoint farm

Teams need a dev integration farm to bring their work together on

A full architecture needs QA and production farms as well

Envision IT Virtualization Architecture

Developer VM Template

SharePoint Server 2010 Enterprise

SP1 and August CU

Visual Studio 2010 Premium SP1

Office 2010 Professional Plus SP1

SharePoint Designer 2010 SP1

Fiddler

SQL Server 2008 R2 SP1

Creating a new Developer VM

Open System Centre Virtual Machine Manager

Create Virtual Machine

Choose the Developer VM template

Set the virtual machine name and options

Create and start the VM

Creating a new Developer VM - Step 2

Developer RDPs to their new VM Complete the SQL Server installation

Create the default instance Set the service account(s) Set the authentication mode and server administrators

Update the AutoSPInstallerInputxml file Set the machine name for the default sites and database server Set the service account passwords

Run the AutoSPInstallerLaunch batch file Do a Health check review

Creating a new Developer VM - Step 3

Start Visual Studio

Connect to the Team Foundation Server

Setup your workspaces

Use a standard naming convention across your team

CDevelopmentTFSCollection

Other Environments

Dev Integration QA and Production can all be built using AutoSPInstall

Donrsquot need or want the Visual Studio or Office tools on these servers

We have a base template we use for dev integration servers

QA should match the Prod architecture as closely as possible

High availability with load balancing clustered SQL app servers DMZ hardening Internet publishing

Agile Development

Agile with Team Foundation Server

Creating Your TFS Project

Open Visual Studio

Make sure you are connected to the right Team Project Collection

In Team Explorer right-click the top collection and create a new Team Project

Use the Scrum 10 template

Go into the Areas and Iterations Delete the extraneous releases and sprints

Create a product backlog iteration

Start adding your stories and tasks

Continuous Integration

Continuous Integration

Automated Testing

SharePoint Site Elements

Site structure Site columns content types subsites lists libraries

Branding elements Master pages layouts CSS XSLT supporting images

Custom web parts Page and site content Web part instances Search Workflows Business Connectivity Services Managed Metadata

SharePoint Site Elements ndash Part 2

Access Excel Word Visio

PerformancePoint

Document conversions

Timer jobs

Secure Store Service

User profiles

Site Structure

bull Site columns

bull Define the fields that are used by content types

bull Content types

bull Defines collections of site columns for different types of content

bull Subsites

bull The hierarchy of sites that make up the site collection

bull Lists and Libraries

bull The lists and libraries for each subsite

Site Structure ndash Part 2

Site columns and content types can be programmatically or manually created If they are going to be used in multiple site collections they should be

programmatically created

If a single site collection they can be created manually in a master site collection

GUIDs cannot be manually set and code may need them to be consistent

You can create them manually in SharePoint save the site as a template and import them into Visual Studio to create a proper WSP package

Site Structure ndash Part 3

Site structure can also be done either programmatically or manually

Many sites are complex and it is error prone to create manually

We use our own SiteModelBuilder tool to create the site structure

Site Structure ndash Part 4

For all site structure elements changes can also be manual or programmatic It is useful to be able to delete the whole site collection and recreate it

programmatically As soon as content starts being authored in SharePoint it becomes difficult

or impossible to do that

After content authoring has started Site column and content type changes need to be programmed explicitly

(you canrsquot just drop the content type and recreate it) Site structure changes are usually done manually at this point Changes need to be backed up and restored

Change Management

Page and Site Content

Page and site content is entered directly into SharePoint by the content authors Web pages images PDFs list content etc This should be done in the master site separate from where dev integration is

happening Care needs to be taken with this site once authors start working Make sure it is part of your production backup plan

Periodically back it up and restore it to the dev integration and developer VMs

Alternatively script the export and import Ultimately it will be backed up and restored to the QA and production

farms

Change Management

Change Management

Change Management

Change Management

Web part instances

Web parts ultimately get placed on pages

The configuration of the web parts can often get quite complex

You may want to disable editing of web parts for general content authors

They end up in a grey zone between code and content

Web part instances ndash Part 2

We created our own internal tool to export and import web parts

Each web partrsquos configuration can be exported into a webpartfile

We scripted the extraction from the dev integration

webpart files are treated like code and checked into TFS for version control

Script then applies the new webpart files to the target environment

Workflows

Workflows can be built using SharePoint Designer Visual Studio or third-party tools (Nintex or K2 primarily)

Visual Studio workflow projects are automatically packaged as WSP solution files Simply deploy the WSP file to the other environments

SharePoint Designer workflows need to be deployed using SharePoint Designer This means you need SPD access to production which is not always possible

You can load the SPD workflow into Visual Studio to package it but you lose the ability to edit it in SPD

If you use third-party tools yoursquoll need to define the process for that as well

Business Connectivity Services

BCS can be built using either SharePoint Designer or Visual Studio Visual Studio BCS projects are automatically packaged as WSP

solution files Simply deploy the WSP file to the other environments You can also export the BDC metadata model in the BDC service

application

SharePoint Designer doesnrsquot create a WSP and it doesnrsquot make a complete BDC metadata model You need to export and import using SharePoint Designer

In both cases you still need to deal with connection and configuration information

Future Directions

Visual Studio Lab Management

Integrates the management of HyperV environments in with Visual Studio and Team Foundation Server

Can automate the provisioning of lab environments for automated testing

Test failures can snapshot entire environments to make reproduction of errors much easier

Summary

Yoursquore going to have lots of SharePoint environments ndash figure out how to build them quickly and repeatable

Code and content often move in opposite directions through dev QA and Prod PowerShell script and automate to keep this simple

Agile is a great way to run projects

Continuous integration with automated testing is key to its success

There are lots of parts of SharePoint that you donrsquot code through Visual Studio Figure out how you move those through your environment

Other Topics

Site Design

Information architecture

Wireframes

Creative designs ndash Mobile first

Catalogs deep dive

Site build PowerShell scripts

Team Foundation Server and Application Lifecycle Management

Starting a new project

Managing content authoring

Site Improve tool

SEO Optimizations

Analytics options

Retaining Page Ranks with permanent redirects (301)

Azure SharePoint Hosting

Q amp A

Session Evaluations

Go to Evaluations on the home page of wwwcollabconorg

It is important to get your feedback

Please fill out evaluations for all the sessions you attend

Following the conference a random drawing from all completed evaluations will be selected

The winner will receive a $250 Future Shop gift card valid online or in store

Page 13: Web Content Management - CollabCon 2015 - Web... · Performances Complete Works ... Friendly URL An SEO friendly URL defined in the term store for a page, rather than ... What’s

Navigation and Friendly URLs

Term store used for navigation and friendly URLs

Server side control outputs HTML for top nav left nav and breadcrumb

Plan is to convert to client-side to support Office 365

Term Store Setup

Two groups used to separate metadata from navigation

Metadata group setup globally

Static GUIDs consistent through all environments

Navigation group setup at the site collection level

Allows multiple copies for multiple sites on the farm

Open Source Tools and Resources

HTML CSS JavaScript jQuery

httpwwww3schoolscom

httpgetbootstrapcom

httphandlebarsjscom

httpknockoutjscom

httpsangularjsorg

httpmomentjscom

Build Process

Complete script is the master script to setup the site

On a new farm it creates the web app and site collection

If the site collection exists it should not affect any content

Useful for updating branding and web parts

TFS build should run this

Need to explicitly force the full run

General Project Process

Create run and test the scripts on your own developer VM

When ready run on dev integration to setup site

Content authoring can happen on dev integration

Script the extraction of content

Compare to TFS and check in as required

Always back up your content authoring site before re-running a full build

Complete Script

Check and create the web app Check and create the site collection Import the term store Set the term store navigation Build the site structure Populate the content Catalogs Search Branding Web Parts

Other Scripts

Set Environment

Defines parameters for each of the environments

Typically has defaults intended for VM13 developer environment

Export the term store to XML

Export list or library content

Overview of ESC Scripts

ESCBuilder_DeployPackages

ESCBuilder_Helper

ESCBuilder_PopulateStructureContent

ESCBuilder_Search

Design Phase

MindMap Information Architecture

Axure Wireframes

PhotoShop or Illustrator Creative Designs

Site Columns and Content Types

Create directly through the SharePoint UI

Senior Consultant can do this in an initial empty devintegration environment

Export script exports these to XML files

Import into target envionments

Typically need Term Store configured as well for Managed Metadata columns

Branding Files

No longer in a Visual Studio WSP package

Simply a collection of files in the Builder folder

Still managed through TFS

Build script uploads and publishes these to the target site

Can edit directly against SharePoint by opening in Windows Explorer

Need to be careful about updating TFS

Export will export the branding files but has farm information in the files that makes it difficult to compare against TFS

Catalogs

Three main steps

Enabling lists or libraries as catalogs

Creating the catalog connection

Building the page layouts to display the category rollups or item detail pages

Enabling Catalogs

Doesnrsquot have to be a list can be a document Images or Pages library

Experimenting using a Pages library

This gives us draft and published states that lists donrsquot support

Preview and editing is easier

Fairly simple script to do this

Needs a full crawl after doing this

Creating the Catalog Connection

Rishan did some great work here

Scripts establish the connection and also update the term store as required

SharePoint Catalog Page Layouts

Uses the CSWP and Content Reuse web parts

Result sources defined in Search for each catalog connection

GUIDs for the result sources different in each farm and need to be updated as part of the deployment

REST Search Catalog Pages

HTML with data attributes on page layouts or in Reusable HTML

jQuery detects this

Builds a REST Search query based on the attributes and URL

Calls SharePoint

Uses Handlebars to format the results

Product Replacements

Video Player is part of the lib structure

Needs references added to the master page

Any hyperlink to an MP4 file launches the video popup

Image Rotator

Jeff is working on standardizing some jQuery slider options

Photo Viewer

No plans just yet

All of these will be part of the ESC package

Starting a New Project

Copy the five ESC scripts from $Envision Shakespeare CompanyBuilder Do not rename

Copy the ShakespeareBuild scripts Rename to your project Update the steps as required for your project

Create the infrastructure WSP Site columns content types list definitions and instances

Manually create the pages and assets that are needed in SharePoint Manually create the term store for metadata and navigation Script the extraction to TFS of content and term store Create the branding WSP Manually create any required web parts Export to TFS and script the placement of the web parts on the pages

ESC Scripts Next Steps

Incorporate TMX additions Farm property bag instead of webconfig Audiences Subsites Available layouts Permissions Extract folders and lists

Continue reconciling additional projects in OMA TMX Christie Medical

Full header blocks and commenting Version numbers Complete the catalog connection script Office 365 support

Links

wwwenvisionitcom

blogpetercarsonca

wwwenvisionitcomshakespeare

httpsShakespeareenvisionitcom

wwwbgccancom

wwwproblemgamblingca

wwwrusselmetalscom

wwwtarioncom

wwwtransamericaca

wwwcollegeofececa

wwwsamuelcom

wwwthewaterfrontpropertiesca

wwwshopsatdonmillsca

wwwfuturesherwaygardensca

wwwpublichealthontarioca

SharePoint WCM Glossary

SharePoint Glossary

Term Definition

SharePoint Farm A set of SharePoint servers that share a single configuration database

Web Application A top level container and entry-point URLs for site collections

Site Collection A set of Web sites that are in the same content database have the same owner and share administration settings A site collection can be identified by a GUID or the URL of the top-level site for the site collection Each site collection contains a top-level site can contain one or more subsites and can have a shared navigation structure

Path Based Site Collection A site collection under a managed pathhttpwebappsitessitecollection

Host Named Site Collection A site collection with its own unique URL Must be created through PowerShell

Site Subsite under a site collection

Site Template A template for a single site that has been saved from another site Site templates may or may not contain content Templates cannot be created from publishing sites

SharePoint Glossary

Term Definition

Site Column A single field that can store information of a particular typebull Textbull Choicebull Numberbull hellipDefined at the site collection level

Content Type A content type is a reusable collection of Site Columns that can be applied to a certain category of content Content types enable the management of metadata and behaviors of a document or item type in a centralized reusable way Basically content types include the columns (or fields) that are applied to a certain type of content plus other optional settings such as a document template

Document Set New content type in SharePoint 2010 A document set is a container for multiple documents to which you can assign certain metadata and treat as a single entity in many ways In addition a document set can contain one or more different content types

SharePoint Glossary

Term Definition

List A container for list content types or custom list items Columns can be defined via content types or directly in the list

Document Library A SharePoint list that contains documents where you can create collect update and share files with others Like lists columns can be defined via content types or directly in the list

Form Library A special type of library to facilitate the interaction with InfoPath forms

Asset Library A library typically used to store image audio and video files

List Template A template used to define the configuration of a list or library Templates can be saved with or without content

SharePoint Glossary

Term Definition

Term Store An instance of the Managed Metadata Service This can be shared between sites site collections web applications or farms

Group A collection of term sets

Term Set A collection of related terms

Term A word or a phrase that can be associated with a SharePoint item

Friendly URL An SEO friendly URL defined in the term store for a page rather than the physical URL of where the page is stored (Pages)

SharePoint Glossary

Term Definition

Design Manager 2013 feature used to manipulate WCM artifacts

Master Page Defines elements that are common to all pages such as the header navigation and footer

Page Layout Defines the layout of a particular style of page such as news or events Each page content type can have one or more layouts associated with them

Web Parts Functional elements that can be added to pages typically for dynamic content

Apps Similar to web parts but run outside of SharePoint while beinghosted in the SharePoint page

Publishing Site Page Rendering

FileName

Welcomeaspx

PageLayout

PageLayoutaspx

Title

Welcome To News

Body

Lorem ipsum dolor sit

Image

ImagesChairjpg

1 Welcomeaspx page is

requested

2 Page layout associated with

page is retrieved

3 Master page associated with site

is retrieved

4 Controls in page layout render

content from pagersquos fields into the page

MasterPagemaster

PageLayoutaspxTitle

BodyImage

Date

ByLine

Field Control

FieldControl

Field ControlField ControlField Control

Field Control

httpfoocombarpageswelcomeaspx

SharePoint Glossary

Term Definition

Cross-Site Publishing Publishing from an authoring site collection to one or more publishing site collections

Catalog A list that has been published as a catalog

Category Page A page that displays a rollup of catalog items

Catalog Item Page A page that displays a single item from a catalog

Display Template Used to format the results on search pages in content search web parts and on category pages

Whatrsquos New in Web Content

Management

Easier Page Authoring With Cut and Paste

Drag and Drop Files

Drag and drop files from Windows Explorer into the browser or the other way

Doesnrsquot support folders or document sets

Open in Windows Explorer still works best for this

Requires IE10 or current versions of Chrome Safari or Firefox

IE8 and 9 supported with Office 2013 installed

Image Renditions

Display uploaded images in predefined sizes widths and crops

Multiple renditions stored in document sets

Content author can create renditions (including crops) in the browser

Design Manager

New way to build master

pages and layouts

SharePoint Designer no

longer required

Edit and preview in any HTML

editor

Automatically creates the associated

master page and aspx

layouts

Package into a Design

Package WSP for

deployment

Snippet Gallery

Select components

such as search box or

navigation control

Configure its properties

Paste the snippet into your HTML

master page or layout

Changes synched to

actual master pages and layouts to convert to SharePoint

components

Can be used by any web design

tool

Device Channels

Map channels to mobile devices or browsers

Alternate master pages

can be assigned

Page layouts can include or

exclude content based

on channel

Display Templates

Used to customize the

presentation of search results

No more XSLT

Three templates

bull Control ndash Overall structure of search results

bull Group ndash Show groups of results

bull Item ndash How each result is presented

Navigation and Friendly URLs

Site navigation driven by managed metadata

Term store used for navigation and SEO-friendly URLs

Connect site navigation to business concepts rather than site structure

Server side control outputs HTML for top nav left nav and breadcrumb

Plan is to convert to client-side to support Office 365

Term Store Setup

Two groups used to separate metadata from navigation

Metadata group setup globally

Static GUIDs consistent through all environments

Navigation group setup at the site collection level

Allows multiple copies for multiple sites on the farm

Search

Search is new and different from all previous versions of SharePoint

The platform has been consolidated Built on a combination of FAST Search and SharePoint Search components as well as new development work ndash it is the

same from Foundation to Server

Foundation Search is intended to replace WSS Search Microsoft Search Server and Search Server Express from previous versions of SharePoint

Itrsquos used pervasively throughout the product now in many different ways in different features eDiscovery navigation topic pages Internet facing business sites etc

Search in SharePoint 2013

Single Extensible Platform

FAST Engine

SharePoint Crawler

Best of both

Same Search Platform in both SharePoint and Exchange

Enterprise Search

Search Page Web parts added to a publishing page

Catalogs Cross-site publishing

Library search Executes in place on the library

Site Search _layouts15osssearchresultsaspx Specifies the site and search parameters

Search Centre Basic Search Center - SharePoint Foundation 2013 Enterprise Search Center - SharePoint Server 2013

Content Search Web Part

Similar in concept to the Content Query Web Part

Many advantages

Can go across sites site collections web apps even farms

Leverages the search index -gt very scalable

Query Builder makes it easy to define your results

Use Display Templates to customize the look and feel No more XSLT

Part of the Enterprise CAL

Pre-Configured CSWPs

Popular Items Shows items that have been recently viewed by many users

Recently Changed Items Shows items that have been modified recently This can help site users

track the latest activity on a site or a library

Recommended Items Show content recommendations based on usage patterns for the current

page

All of these can be further configured by editing their properties and changing the search criteria

Search Results Web Part

Similar functionality to the Content Search Web Part

Doesnrsquot allow property mapping in the web part configuration

Mapping is controlled in the Display Template

Part of the Standard CAL

Category Page Item Page

Catalogs

wwwcontosocomproductsAudio-Liware2g

Catalogs

Results

Consistent Displays

Manage content in one place

No need to create

pages

No need to format

Metadata Navigation

Cross-Site Publishing

Reuse content between different sites including site collections and farms

Catalogs can surface lists into publishing sites onto a category page and item pages

Can be surfaced through the Content Search Web Part

No need to create and publish web pages

Create custom friendly URLs

Metadata based navigation base

Cross Site Publishing

Job Posting

Job Posting

Job Posting

Job Posting

Simcoe County District School Board

50000 students

Over 6000 employees

Board office in Barrie

Bordered by the Holland Marsh in the south the Trent-Severn Waterway in the east Grey County in the west and Muskoka in the north

Simcoe County District School Board

119 schools and centres 87 elementary 16 secondary 6 learning centres 10 alternative

Each needs their own web site Being built on SharePoint 2013 Elementary panel first Each has their own unique URL Content authored both at the school and centrally from the board

wwwscdsbonca Pre-existing SharePoint 2010 site Future goal is to rebuild in SharePoint 2013

Business Challenge

100+ public web sites

No standardization on style technology or content

No ability for the board to push content to the school sites

Outdated sites

Not mobile or AODA compliant

Site Features

Fully Adaptivemobile design Robust Search functionality Template makes it fast and efficient to add new school sites News and events can be targeted by the Board to any number of

school sites Target by panel weather zone trustee language Presented in a blended view with the school news and events

Home page rotator links hours content pages all managed by the school staff

SEO-friendly URLs

News

School news entered by school staff

Board news entered in the board site

Rendered using cross-site publishing

High-priority alerts can be flagged to highlight on the site

Bus or school cancellations

Events

Single and multi-day events

School and board managed like news

Adaptive calendar

School Picker

Used to pick which schools to target news and events to

Schools are tagged through the term store

Target by panel weather zone trustee language

Can override and add or remove individual schools

Search

Catalogs

Three main steps

Enabling lists or libraries as catalogs

Creating the catalog connection

Building the page layouts to display the category rollups or item detail pages

Enabling Catalogs

Doesnrsquot have to be a list can be a document Images or Pages library

Experimenting using a Pages library

This gives us draft and published states that lists donrsquot support

Preview and editing is easier

Fairly simple script to do this

Catalog connections are more complex

Create the connection

Fix up the Term Store

Create the Category and Item page layouts and pages

SEO Enhancements

Friendly URLs

Home page redirects

XML sitemaps automatically generated and updated

Custom SEO properties

Usage Analytics

Built for scale from the ground up Detail data rolled up every 15 days amp anonymized Daily events purged every 15 days monthly events after 3 years Lifetime counts always retained

Counts views amp unique itemsday Shows recent (2-weeks) and lifetime count Trims least visited content Pushes aggregate data to reporting database

Drives recommendations capabilities on content Calculations injected into search index as sortable managed properties Deep integration with search engine Can influence search relevance based on content usage

Variations and Multi-Lingual

Export and import content for translation in XLIFF format

Pages

Labels

List items

Navigation

Bing translation service comes with active SharePoint 2013 license

Adaptive Web Design

Adaptive vs Responsive

Adaptive

Fixed breakpoints‒ Desktop gt 980 px

‒ Table portrait gt 768 px

‒ Phone to tablet gt 480 px lt 768 px

‒ Smartphone lt 480 px

Responsive

No fixed breakpoints

Design fluidly adapts to whatever width the browser is

We generally do a hybrid approach with responsive design in the under 768 pixel situation

Design Approaches in SharePoint

Adaptive Design through CSS media queries

Broader standards approach used outside of SharePoint

Keeps a single master page and CSS

Some unnecessary components may still be loaded

Device Channels SharePoint specific approach

Assign different master pages to different device channels

Rules define what devices use which channels

Device Channel Panels can also target content to channels

Hybrid here can also make sense Device channels can be used to remove unnecessary items from the page payload

Our Adaptive Approach

Built using the Twitter Boostrap CSS framework

twittergithubcombootstrap

Provides a responsive design framework for supporting PC Mac tablet and mobile

We enhanced to provide better touch navigation support

Can be leveraged in the master page page layouts and display templates

Incorporated into the SharePoint 2013 Design Master

HTML based master page that can be edited with any tool

SharePoint converts to a master page when uploaded or saved

Additional Open Source Tools and Resources

HTML CSS JavaScript jQuery

httpwwww3schoolscom

httpgetbootstrapcom

httphandlebarsjscom

httpknockoutjscom

httpsangularjsorg

httpmomentjscom

Content Search Web Part

Web part is configured to return search results

Executed as client-side code in the browser

Pair of display templates map the data returned to HTML

Control template for the overall structure

Item template for each item returned

HTML Designer Manager files are compiled to JavaScript

REST Search and Handlebars

Search is accessible through REST calls

httpsiteurl_apisearchquery

Returns results as a JSON array

Handlebars is a templating engine to format that

Conceptually similar to display templates with control and item sections

jQuery glues this all together

Steps to Experiment

F12 to get into Developer Toolbar

Set a breakpoint where the REST URL is determined

Copy the value

Paste into the REST Search test window

Experiment with the query

Adjust the Handlebars template appropriately

Search Setup

Content Sources to define and schedule the crawls

Crawl logs to review success

Search Schema to define the managed properties

Reusable Content

Snippets of HTML that can be reused throughout the site

JavaScript can be intelligent and use the URL to determine its behaviour

Makes it easy for content authors to drop pre-configured dynamic content onto pages

Topic Pages

Shows all items that match a topic

Could be hundreds of virtual pages

Only one template page

Easily customizable and SEO friendly (each topic appears to be its own page)

Content by search web part open search against a query or result source

May be able to surface the topic pages themselves as site search results

Public Health Ontario

httpwwwpublichealthontariocaenBrowseByTopicPagesTopicaspxk=Influenza20InformationByTopic22Influenza22

Ontario Association of Childrens Aid Societies

Application Lifecycle Management

Purpose

How do we build a solid SharePoint development environment for the enterprise

How do a number of developers work together on a SharePoint project

How does code and content move through a dev test and production lifecycle

What is Agile and Continuous Integration and why is it important

Visual Studio and Team Foundation Server

Visual Studio 2010 is the development platform for coding on SharePoint 2010

Team Foundation Server integrates with Visual Studio to provide a repository for code test and other project artifacts

It facilitates teamwork by providing a common place for developers to work together

Provisioning SharePoint Farms

Provisioning SharePoint Farms

Every developer needs their own complete SharePoint farm

Teams need a dev integration farm to bring their work together on

A full architecture needs QA and production farms as well

Envision IT Virtualization Architecture

Developer VM Template

SharePoint Server 2010 Enterprise

SP1 and August CU

Visual Studio 2010 Premium SP1

Office 2010 Professional Plus SP1

SharePoint Designer 2010 SP1

Fiddler

SQL Server 2008 R2 SP1

Creating a new Developer VM

Open System Centre Virtual Machine Manager

Create Virtual Machine

Choose the Developer VM template

Set the virtual machine name and options

Create and start the VM

Creating a new Developer VM - Step 2

Developer RDPs to their new VM Complete the SQL Server installation

Create the default instance Set the service account(s) Set the authentication mode and server administrators

Update the AutoSPInstallerInputxml file Set the machine name for the default sites and database server Set the service account passwords

Run the AutoSPInstallerLaunch batch file Do a Health check review

Creating a new Developer VM - Step 3

Start Visual Studio

Connect to the Team Foundation Server

Setup your workspaces

Use a standard naming convention across your team

CDevelopmentTFSCollection

Other Environments

Dev Integration QA and Production can all be built using AutoSPInstall

Donrsquot need or want the Visual Studio or Office tools on these servers

We have a base template we use for dev integration servers

QA should match the Prod architecture as closely as possible

High availability with load balancing clustered SQL app servers DMZ hardening Internet publishing

Agile Development

Agile with Team Foundation Server

Creating Your TFS Project

Open Visual Studio

Make sure you are connected to the right Team Project Collection

In Team Explorer right-click the top collection and create a new Team Project

Use the Scrum 10 template

Go into the Areas and Iterations Delete the extraneous releases and sprints

Create a product backlog iteration

Start adding your stories and tasks

Continuous Integration

Continuous Integration

Automated Testing

SharePoint Site Elements

Site structure Site columns content types subsites lists libraries

Branding elements Master pages layouts CSS XSLT supporting images

Custom web parts Page and site content Web part instances Search Workflows Business Connectivity Services Managed Metadata

SharePoint Site Elements ndash Part 2

Access Excel Word Visio

PerformancePoint

Document conversions

Timer jobs

Secure Store Service

User profiles

Site Structure

bull Site columns

bull Define the fields that are used by content types

bull Content types

bull Defines collections of site columns for different types of content

bull Subsites

bull The hierarchy of sites that make up the site collection

bull Lists and Libraries

bull The lists and libraries for each subsite

Site Structure ndash Part 2

Site columns and content types can be programmatically or manually created If they are going to be used in multiple site collections they should be

programmatically created

If a single site collection they can be created manually in a master site collection

GUIDs cannot be manually set and code may need them to be consistent

You can create them manually in SharePoint save the site as a template and import them into Visual Studio to create a proper WSP package

Site Structure ndash Part 3

Site structure can also be done either programmatically or manually

Many sites are complex and it is error prone to create manually

We use our own SiteModelBuilder tool to create the site structure

Site Structure ndash Part 4

For all site structure elements changes can also be manual or programmatic It is useful to be able to delete the whole site collection and recreate it

programmatically As soon as content starts being authored in SharePoint it becomes difficult

or impossible to do that

After content authoring has started Site column and content type changes need to be programmed explicitly

(you canrsquot just drop the content type and recreate it) Site structure changes are usually done manually at this point Changes need to be backed up and restored

Change Management

Page and Site Content

Page and site content is entered directly into SharePoint by the content authors Web pages images PDFs list content etc This should be done in the master site separate from where dev integration is

happening Care needs to be taken with this site once authors start working Make sure it is part of your production backup plan

Periodically back it up and restore it to the dev integration and developer VMs

Alternatively script the export and import Ultimately it will be backed up and restored to the QA and production

farms

Change Management

Change Management

Change Management

Change Management

Web part instances

Web parts ultimately get placed on pages

The configuration of the web parts can often get quite complex

You may want to disable editing of web parts for general content authors

They end up in a grey zone between code and content

Web part instances ndash Part 2

We created our own internal tool to export and import web parts

Each web partrsquos configuration can be exported into a webpartfile

We scripted the extraction from the dev integration

webpart files are treated like code and checked into TFS for version control

Script then applies the new webpart files to the target environment

Workflows

Workflows can be built using SharePoint Designer Visual Studio or third-party tools (Nintex or K2 primarily)

Visual Studio workflow projects are automatically packaged as WSP solution files Simply deploy the WSP file to the other environments

SharePoint Designer workflows need to be deployed using SharePoint Designer This means you need SPD access to production which is not always possible

You can load the SPD workflow into Visual Studio to package it but you lose the ability to edit it in SPD

If you use third-party tools yoursquoll need to define the process for that as well

Business Connectivity Services

BCS can be built using either SharePoint Designer or Visual Studio Visual Studio BCS projects are automatically packaged as WSP

solution files Simply deploy the WSP file to the other environments You can also export the BDC metadata model in the BDC service

application

SharePoint Designer doesnrsquot create a WSP and it doesnrsquot make a complete BDC metadata model You need to export and import using SharePoint Designer

In both cases you still need to deal with connection and configuration information

Future Directions

Visual Studio Lab Management

Integrates the management of HyperV environments in with Visual Studio and Team Foundation Server

Can automate the provisioning of lab environments for automated testing

Test failures can snapshot entire environments to make reproduction of errors much easier

Summary

Yoursquore going to have lots of SharePoint environments ndash figure out how to build them quickly and repeatable

Code and content often move in opposite directions through dev QA and Prod PowerShell script and automate to keep this simple

Agile is a great way to run projects

Continuous integration with automated testing is key to its success

There are lots of parts of SharePoint that you donrsquot code through Visual Studio Figure out how you move those through your environment

Other Topics

Site Design

Information architecture

Wireframes

Creative designs ndash Mobile first

Catalogs deep dive

Site build PowerShell scripts

Team Foundation Server and Application Lifecycle Management

Starting a new project

Managing content authoring

Site Improve tool

SEO Optimizations

Analytics options

Retaining Page Ranks with permanent redirects (301)

Azure SharePoint Hosting

Q amp A

Session Evaluations

Go to Evaluations on the home page of wwwcollabconorg

It is important to get your feedback

Please fill out evaluations for all the sessions you attend

Following the conference a random drawing from all completed evaluations will be selected

The winner will receive a $250 Future Shop gift card valid online or in store

Page 14: Web Content Management - CollabCon 2015 - Web... · Performances Complete Works ... Friendly URL An SEO friendly URL defined in the term store for a page, rather than ... What’s

Term Store Setup

Two groups used to separate metadata from navigation

Metadata group setup globally

Static GUIDs consistent through all environments

Navigation group setup at the site collection level

Allows multiple copies for multiple sites on the farm

Open Source Tools and Resources

HTML CSS JavaScript jQuery

httpwwww3schoolscom

httpgetbootstrapcom

httphandlebarsjscom

httpknockoutjscom

httpsangularjsorg

httpmomentjscom

Build Process

Complete script is the master script to setup the site

On a new farm it creates the web app and site collection

If the site collection exists it should not affect any content

Useful for updating branding and web parts

TFS build should run this

Need to explicitly force the full run

General Project Process

Create run and test the scripts on your own developer VM

When ready run on dev integration to setup site

Content authoring can happen on dev integration

Script the extraction of content

Compare to TFS and check in as required

Always back up your content authoring site before re-running a full build

Complete Script

Check and create the web app Check and create the site collection Import the term store Set the term store navigation Build the site structure Populate the content Catalogs Search Branding Web Parts

Other Scripts

Set Environment

Defines parameters for each of the environments

Typically has defaults intended for VM13 developer environment

Export the term store to XML

Export list or library content

Overview of ESC Scripts

ESCBuilder_DeployPackages

ESCBuilder_Helper

ESCBuilder_PopulateStructureContent

ESCBuilder_Search

Design Phase

MindMap Information Architecture

Axure Wireframes

PhotoShop or Illustrator Creative Designs

Site Columns and Content Types

Create directly through the SharePoint UI

Senior Consultant can do this in an initial empty devintegration environment

Export script exports these to XML files

Import into target envionments

Typically need Term Store configured as well for Managed Metadata columns

Branding Files

No longer in a Visual Studio WSP package

Simply a collection of files in the Builder folder

Still managed through TFS

Build script uploads and publishes these to the target site

Can edit directly against SharePoint by opening in Windows Explorer

Need to be careful about updating TFS

Export will export the branding files but has farm information in the files that makes it difficult to compare against TFS

Catalogs

Three main steps

Enabling lists or libraries as catalogs

Creating the catalog connection

Building the page layouts to display the category rollups or item detail pages

Enabling Catalogs

Doesnrsquot have to be a list can be a document Images or Pages library

Experimenting using a Pages library

This gives us draft and published states that lists donrsquot support

Preview and editing is easier

Fairly simple script to do this

Needs a full crawl after doing this

Creating the Catalog Connection

Rishan did some great work here

Scripts establish the connection and also update the term store as required

SharePoint Catalog Page Layouts

Uses the CSWP and Content Reuse web parts

Result sources defined in Search for each catalog connection

GUIDs for the result sources different in each farm and need to be updated as part of the deployment

REST Search Catalog Pages

HTML with data attributes on page layouts or in Reusable HTML

jQuery detects this

Builds a REST Search query based on the attributes and URL

Calls SharePoint

Uses Handlebars to format the results

Product Replacements

Video Player is part of the lib structure

Needs references added to the master page

Any hyperlink to an MP4 file launches the video popup

Image Rotator

Jeff is working on standardizing some jQuery slider options

Photo Viewer

No plans just yet

All of these will be part of the ESC package

Starting a New Project

Copy the five ESC scripts from $Envision Shakespeare CompanyBuilder Do not rename

Copy the ShakespeareBuild scripts Rename to your project Update the steps as required for your project

Create the infrastructure WSP Site columns content types list definitions and instances

Manually create the pages and assets that are needed in SharePoint Manually create the term store for metadata and navigation Script the extraction to TFS of content and term store Create the branding WSP Manually create any required web parts Export to TFS and script the placement of the web parts on the pages

ESC Scripts Next Steps

Incorporate TMX additions Farm property bag instead of webconfig Audiences Subsites Available layouts Permissions Extract folders and lists

Continue reconciling additional projects in OMA TMX Christie Medical

Full header blocks and commenting Version numbers Complete the catalog connection script Office 365 support

Links

wwwenvisionitcom

blogpetercarsonca

wwwenvisionitcomshakespeare

httpsShakespeareenvisionitcom

wwwbgccancom

wwwproblemgamblingca

wwwrusselmetalscom

wwwtarioncom

wwwtransamericaca

wwwcollegeofececa

wwwsamuelcom

wwwthewaterfrontpropertiesca

wwwshopsatdonmillsca

wwwfuturesherwaygardensca

wwwpublichealthontarioca

SharePoint WCM Glossary

SharePoint Glossary

Term Definition

SharePoint Farm A set of SharePoint servers that share a single configuration database

Web Application A top level container and entry-point URLs for site collections

Site Collection A set of Web sites that are in the same content database have the same owner and share administration settings A site collection can be identified by a GUID or the URL of the top-level site for the site collection Each site collection contains a top-level site can contain one or more subsites and can have a shared navigation structure

Path Based Site Collection A site collection under a managed pathhttpwebappsitessitecollection

Host Named Site Collection A site collection with its own unique URL Must be created through PowerShell

Site Subsite under a site collection

Site Template A template for a single site that has been saved from another site Site templates may or may not contain content Templates cannot be created from publishing sites

SharePoint Glossary

Term Definition

Site Column A single field that can store information of a particular typebull Textbull Choicebull Numberbull hellipDefined at the site collection level

Content Type A content type is a reusable collection of Site Columns that can be applied to a certain category of content Content types enable the management of metadata and behaviors of a document or item type in a centralized reusable way Basically content types include the columns (or fields) that are applied to a certain type of content plus other optional settings such as a document template

Document Set New content type in SharePoint 2010 A document set is a container for multiple documents to which you can assign certain metadata and treat as a single entity in many ways In addition a document set can contain one or more different content types

SharePoint Glossary

Term Definition

List A container for list content types or custom list items Columns can be defined via content types or directly in the list

Document Library A SharePoint list that contains documents where you can create collect update and share files with others Like lists columns can be defined via content types or directly in the list

Form Library A special type of library to facilitate the interaction with InfoPath forms

Asset Library A library typically used to store image audio and video files

List Template A template used to define the configuration of a list or library Templates can be saved with or without content

SharePoint Glossary

Term Definition

Term Store An instance of the Managed Metadata Service This can be shared between sites site collections web applications or farms

Group A collection of term sets

Term Set A collection of related terms

Term A word or a phrase that can be associated with a SharePoint item

Friendly URL An SEO friendly URL defined in the term store for a page rather than the physical URL of where the page is stored (Pages)

SharePoint Glossary

Term Definition

Design Manager 2013 feature used to manipulate WCM artifacts

Master Page Defines elements that are common to all pages such as the header navigation and footer

Page Layout Defines the layout of a particular style of page such as news or events Each page content type can have one or more layouts associated with them

Web Parts Functional elements that can be added to pages typically for dynamic content

Apps Similar to web parts but run outside of SharePoint while beinghosted in the SharePoint page

Publishing Site Page Rendering

FileName

Welcomeaspx

PageLayout

PageLayoutaspx

Title

Welcome To News

Body

Lorem ipsum dolor sit

Image

ImagesChairjpg

1 Welcomeaspx page is

requested

2 Page layout associated with

page is retrieved

3 Master page associated with site

is retrieved

4 Controls in page layout render

content from pagersquos fields into the page

MasterPagemaster

PageLayoutaspxTitle

BodyImage

Date

ByLine

Field Control

FieldControl

Field ControlField ControlField Control

Field Control

httpfoocombarpageswelcomeaspx

SharePoint Glossary

Term Definition

Cross-Site Publishing Publishing from an authoring site collection to one or more publishing site collections

Catalog A list that has been published as a catalog

Category Page A page that displays a rollup of catalog items

Catalog Item Page A page that displays a single item from a catalog

Display Template Used to format the results on search pages in content search web parts and on category pages

Whatrsquos New in Web Content

Management

Easier Page Authoring With Cut and Paste

Drag and Drop Files

Drag and drop files from Windows Explorer into the browser or the other way

Doesnrsquot support folders or document sets

Open in Windows Explorer still works best for this

Requires IE10 or current versions of Chrome Safari or Firefox

IE8 and 9 supported with Office 2013 installed

Image Renditions

Display uploaded images in predefined sizes widths and crops

Multiple renditions stored in document sets

Content author can create renditions (including crops) in the browser

Design Manager

New way to build master

pages and layouts

SharePoint Designer no

longer required

Edit and preview in any HTML

editor

Automatically creates the associated

master page and aspx

layouts

Package into a Design

Package WSP for

deployment

Snippet Gallery

Select components

such as search box or

navigation control

Configure its properties

Paste the snippet into your HTML

master page or layout

Changes synched to

actual master pages and layouts to convert to SharePoint

components

Can be used by any web design

tool

Device Channels

Map channels to mobile devices or browsers

Alternate master pages

can be assigned

Page layouts can include or

exclude content based

on channel

Display Templates

Used to customize the

presentation of search results

No more XSLT

Three templates

bull Control ndash Overall structure of search results

bull Group ndash Show groups of results

bull Item ndash How each result is presented

Navigation and Friendly URLs

Site navigation driven by managed metadata

Term store used for navigation and SEO-friendly URLs

Connect site navigation to business concepts rather than site structure

Server side control outputs HTML for top nav left nav and breadcrumb

Plan is to convert to client-side to support Office 365

Term Store Setup

Two groups used to separate metadata from navigation

Metadata group setup globally

Static GUIDs consistent through all environments

Navigation group setup at the site collection level

Allows multiple copies for multiple sites on the farm

Search

Search is new and different from all previous versions of SharePoint

The platform has been consolidated Built on a combination of FAST Search and SharePoint Search components as well as new development work ndash it is the

same from Foundation to Server

Foundation Search is intended to replace WSS Search Microsoft Search Server and Search Server Express from previous versions of SharePoint

Itrsquos used pervasively throughout the product now in many different ways in different features eDiscovery navigation topic pages Internet facing business sites etc

Search in SharePoint 2013

Single Extensible Platform

FAST Engine

SharePoint Crawler

Best of both

Same Search Platform in both SharePoint and Exchange

Enterprise Search

Search Page Web parts added to a publishing page

Catalogs Cross-site publishing

Library search Executes in place on the library

Site Search _layouts15osssearchresultsaspx Specifies the site and search parameters

Search Centre Basic Search Center - SharePoint Foundation 2013 Enterprise Search Center - SharePoint Server 2013

Content Search Web Part

Similar in concept to the Content Query Web Part

Many advantages

Can go across sites site collections web apps even farms

Leverages the search index -gt very scalable

Query Builder makes it easy to define your results

Use Display Templates to customize the look and feel No more XSLT

Part of the Enterprise CAL

Pre-Configured CSWPs

Popular Items Shows items that have been recently viewed by many users

Recently Changed Items Shows items that have been modified recently This can help site users

track the latest activity on a site or a library

Recommended Items Show content recommendations based on usage patterns for the current

page

All of these can be further configured by editing their properties and changing the search criteria

Search Results Web Part

Similar functionality to the Content Search Web Part

Doesnrsquot allow property mapping in the web part configuration

Mapping is controlled in the Display Template

Part of the Standard CAL

Category Page Item Page

Catalogs

wwwcontosocomproductsAudio-Liware2g

Catalogs

Results

Consistent Displays

Manage content in one place

No need to create

pages

No need to format

Metadata Navigation

Cross-Site Publishing

Reuse content between different sites including site collections and farms

Catalogs can surface lists into publishing sites onto a category page and item pages

Can be surfaced through the Content Search Web Part

No need to create and publish web pages

Create custom friendly URLs

Metadata based navigation base

Cross Site Publishing

Job Posting

Job Posting

Job Posting

Job Posting

Simcoe County District School Board

50000 students

Over 6000 employees

Board office in Barrie

Bordered by the Holland Marsh in the south the Trent-Severn Waterway in the east Grey County in the west and Muskoka in the north

Simcoe County District School Board

119 schools and centres 87 elementary 16 secondary 6 learning centres 10 alternative

Each needs their own web site Being built on SharePoint 2013 Elementary panel first Each has their own unique URL Content authored both at the school and centrally from the board

wwwscdsbonca Pre-existing SharePoint 2010 site Future goal is to rebuild in SharePoint 2013

Business Challenge

100+ public web sites

No standardization on style technology or content

No ability for the board to push content to the school sites

Outdated sites

Not mobile or AODA compliant

Site Features

Fully Adaptivemobile design Robust Search functionality Template makes it fast and efficient to add new school sites News and events can be targeted by the Board to any number of

school sites Target by panel weather zone trustee language Presented in a blended view with the school news and events

Home page rotator links hours content pages all managed by the school staff

SEO-friendly URLs

News

School news entered by school staff

Board news entered in the board site

Rendered using cross-site publishing

High-priority alerts can be flagged to highlight on the site

Bus or school cancellations

Events

Single and multi-day events

School and board managed like news

Adaptive calendar

School Picker

Used to pick which schools to target news and events to

Schools are tagged through the term store

Target by panel weather zone trustee language

Can override and add or remove individual schools

Search

Catalogs

Three main steps

Enabling lists or libraries as catalogs

Creating the catalog connection

Building the page layouts to display the category rollups or item detail pages

Enabling Catalogs

Doesnrsquot have to be a list can be a document Images or Pages library

Experimenting using a Pages library

This gives us draft and published states that lists donrsquot support

Preview and editing is easier

Fairly simple script to do this

Catalog connections are more complex

Create the connection

Fix up the Term Store

Create the Category and Item page layouts and pages

SEO Enhancements

Friendly URLs

Home page redirects

XML sitemaps automatically generated and updated

Custom SEO properties

Usage Analytics

Built for scale from the ground up Detail data rolled up every 15 days amp anonymized Daily events purged every 15 days monthly events after 3 years Lifetime counts always retained

Counts views amp unique itemsday Shows recent (2-weeks) and lifetime count Trims least visited content Pushes aggregate data to reporting database

Drives recommendations capabilities on content Calculations injected into search index as sortable managed properties Deep integration with search engine Can influence search relevance based on content usage

Variations and Multi-Lingual

Export and import content for translation in XLIFF format

Pages

Labels

List items

Navigation

Bing translation service comes with active SharePoint 2013 license

Adaptive Web Design

Adaptive vs Responsive

Adaptive

Fixed breakpoints‒ Desktop gt 980 px

‒ Table portrait gt 768 px

‒ Phone to tablet gt 480 px lt 768 px

‒ Smartphone lt 480 px

Responsive

No fixed breakpoints

Design fluidly adapts to whatever width the browser is

We generally do a hybrid approach with responsive design in the under 768 pixel situation

Design Approaches in SharePoint

Adaptive Design through CSS media queries

Broader standards approach used outside of SharePoint

Keeps a single master page and CSS

Some unnecessary components may still be loaded

Device Channels SharePoint specific approach

Assign different master pages to different device channels

Rules define what devices use which channels

Device Channel Panels can also target content to channels

Hybrid here can also make sense Device channels can be used to remove unnecessary items from the page payload

Our Adaptive Approach

Built using the Twitter Boostrap CSS framework

twittergithubcombootstrap

Provides a responsive design framework for supporting PC Mac tablet and mobile

We enhanced to provide better touch navigation support

Can be leveraged in the master page page layouts and display templates

Incorporated into the SharePoint 2013 Design Master

HTML based master page that can be edited with any tool

SharePoint converts to a master page when uploaded or saved

Additional Open Source Tools and Resources

HTML CSS JavaScript jQuery

httpwwww3schoolscom

httpgetbootstrapcom

httphandlebarsjscom

httpknockoutjscom

httpsangularjsorg

httpmomentjscom

Content Search Web Part

Web part is configured to return search results

Executed as client-side code in the browser

Pair of display templates map the data returned to HTML

Control template for the overall structure

Item template for each item returned

HTML Designer Manager files are compiled to JavaScript

REST Search and Handlebars

Search is accessible through REST calls

httpsiteurl_apisearchquery

Returns results as a JSON array

Handlebars is a templating engine to format that

Conceptually similar to display templates with control and item sections

jQuery glues this all together

Steps to Experiment

F12 to get into Developer Toolbar

Set a breakpoint where the REST URL is determined

Copy the value

Paste into the REST Search test window

Experiment with the query

Adjust the Handlebars template appropriately

Search Setup

Content Sources to define and schedule the crawls

Crawl logs to review success

Search Schema to define the managed properties

Reusable Content

Snippets of HTML that can be reused throughout the site

JavaScript can be intelligent and use the URL to determine its behaviour

Makes it easy for content authors to drop pre-configured dynamic content onto pages

Topic Pages

Shows all items that match a topic

Could be hundreds of virtual pages

Only one template page

Easily customizable and SEO friendly (each topic appears to be its own page)

Content by search web part open search against a query or result source

May be able to surface the topic pages themselves as site search results

Public Health Ontario

httpwwwpublichealthontariocaenBrowseByTopicPagesTopicaspxk=Influenza20InformationByTopic22Influenza22

Ontario Association of Childrens Aid Societies

Application Lifecycle Management

Purpose

How do we build a solid SharePoint development environment for the enterprise

How do a number of developers work together on a SharePoint project

How does code and content move through a dev test and production lifecycle

What is Agile and Continuous Integration and why is it important

Visual Studio and Team Foundation Server

Visual Studio 2010 is the development platform for coding on SharePoint 2010

Team Foundation Server integrates with Visual Studio to provide a repository for code test and other project artifacts

It facilitates teamwork by providing a common place for developers to work together

Provisioning SharePoint Farms

Provisioning SharePoint Farms

Every developer needs their own complete SharePoint farm

Teams need a dev integration farm to bring their work together on

A full architecture needs QA and production farms as well

Envision IT Virtualization Architecture

Developer VM Template

SharePoint Server 2010 Enterprise

SP1 and August CU

Visual Studio 2010 Premium SP1

Office 2010 Professional Plus SP1

SharePoint Designer 2010 SP1

Fiddler

SQL Server 2008 R2 SP1

Creating a new Developer VM

Open System Centre Virtual Machine Manager

Create Virtual Machine

Choose the Developer VM template

Set the virtual machine name and options

Create and start the VM

Creating a new Developer VM - Step 2

Developer RDPs to their new VM Complete the SQL Server installation

Create the default instance Set the service account(s) Set the authentication mode and server administrators

Update the AutoSPInstallerInputxml file Set the machine name for the default sites and database server Set the service account passwords

Run the AutoSPInstallerLaunch batch file Do a Health check review

Creating a new Developer VM - Step 3

Start Visual Studio

Connect to the Team Foundation Server

Setup your workspaces

Use a standard naming convention across your team

CDevelopmentTFSCollection

Other Environments

Dev Integration QA and Production can all be built using AutoSPInstall

Donrsquot need or want the Visual Studio or Office tools on these servers

We have a base template we use for dev integration servers

QA should match the Prod architecture as closely as possible

High availability with load balancing clustered SQL app servers DMZ hardening Internet publishing

Agile Development

Agile with Team Foundation Server

Creating Your TFS Project

Open Visual Studio

Make sure you are connected to the right Team Project Collection

In Team Explorer right-click the top collection and create a new Team Project

Use the Scrum 10 template

Go into the Areas and Iterations Delete the extraneous releases and sprints

Create a product backlog iteration

Start adding your stories and tasks

Continuous Integration

Continuous Integration

Automated Testing

SharePoint Site Elements

Site structure Site columns content types subsites lists libraries

Branding elements Master pages layouts CSS XSLT supporting images

Custom web parts Page and site content Web part instances Search Workflows Business Connectivity Services Managed Metadata

SharePoint Site Elements ndash Part 2

Access Excel Word Visio

PerformancePoint

Document conversions

Timer jobs

Secure Store Service

User profiles

Site Structure

bull Site columns

bull Define the fields that are used by content types

bull Content types

bull Defines collections of site columns for different types of content

bull Subsites

bull The hierarchy of sites that make up the site collection

bull Lists and Libraries

bull The lists and libraries for each subsite

Site Structure ndash Part 2

Site columns and content types can be programmatically or manually created If they are going to be used in multiple site collections they should be

programmatically created

If a single site collection they can be created manually in a master site collection

GUIDs cannot be manually set and code may need them to be consistent

You can create them manually in SharePoint save the site as a template and import them into Visual Studio to create a proper WSP package

Site Structure ndash Part 3

Site structure can also be done either programmatically or manually

Many sites are complex and it is error prone to create manually

We use our own SiteModelBuilder tool to create the site structure

Site Structure ndash Part 4

For all site structure elements changes can also be manual or programmatic It is useful to be able to delete the whole site collection and recreate it

programmatically As soon as content starts being authored in SharePoint it becomes difficult

or impossible to do that

After content authoring has started Site column and content type changes need to be programmed explicitly

(you canrsquot just drop the content type and recreate it) Site structure changes are usually done manually at this point Changes need to be backed up and restored

Change Management

Page and Site Content

Page and site content is entered directly into SharePoint by the content authors Web pages images PDFs list content etc This should be done in the master site separate from where dev integration is

happening Care needs to be taken with this site once authors start working Make sure it is part of your production backup plan

Periodically back it up and restore it to the dev integration and developer VMs

Alternatively script the export and import Ultimately it will be backed up and restored to the QA and production

farms

Change Management

Change Management

Change Management

Change Management

Web part instances

Web parts ultimately get placed on pages

The configuration of the web parts can often get quite complex

You may want to disable editing of web parts for general content authors

They end up in a grey zone between code and content

Web part instances ndash Part 2

We created our own internal tool to export and import web parts

Each web partrsquos configuration can be exported into a webpartfile

We scripted the extraction from the dev integration

webpart files are treated like code and checked into TFS for version control

Script then applies the new webpart files to the target environment

Workflows

Workflows can be built using SharePoint Designer Visual Studio or third-party tools (Nintex or K2 primarily)

Visual Studio workflow projects are automatically packaged as WSP solution files Simply deploy the WSP file to the other environments

SharePoint Designer workflows need to be deployed using SharePoint Designer This means you need SPD access to production which is not always possible

You can load the SPD workflow into Visual Studio to package it but you lose the ability to edit it in SPD

If you use third-party tools yoursquoll need to define the process for that as well

Business Connectivity Services

BCS can be built using either SharePoint Designer or Visual Studio Visual Studio BCS projects are automatically packaged as WSP

solution files Simply deploy the WSP file to the other environments You can also export the BDC metadata model in the BDC service

application

SharePoint Designer doesnrsquot create a WSP and it doesnrsquot make a complete BDC metadata model You need to export and import using SharePoint Designer

In both cases you still need to deal with connection and configuration information

Future Directions

Visual Studio Lab Management

Integrates the management of HyperV environments in with Visual Studio and Team Foundation Server

Can automate the provisioning of lab environments for automated testing

Test failures can snapshot entire environments to make reproduction of errors much easier

Summary

Yoursquore going to have lots of SharePoint environments ndash figure out how to build them quickly and repeatable

Code and content often move in opposite directions through dev QA and Prod PowerShell script and automate to keep this simple

Agile is a great way to run projects

Continuous integration with automated testing is key to its success

There are lots of parts of SharePoint that you donrsquot code through Visual Studio Figure out how you move those through your environment

Other Topics

Site Design

Information architecture

Wireframes

Creative designs ndash Mobile first

Catalogs deep dive

Site build PowerShell scripts

Team Foundation Server and Application Lifecycle Management

Starting a new project

Managing content authoring

Site Improve tool

SEO Optimizations

Analytics options

Retaining Page Ranks with permanent redirects (301)

Azure SharePoint Hosting

Q amp A

Session Evaluations

Go to Evaluations on the home page of wwwcollabconorg

It is important to get your feedback

Please fill out evaluations for all the sessions you attend

Following the conference a random drawing from all completed evaluations will be selected

The winner will receive a $250 Future Shop gift card valid online or in store

Page 15: Web Content Management - CollabCon 2015 - Web... · Performances Complete Works ... Friendly URL An SEO friendly URL defined in the term store for a page, rather than ... What’s

Open Source Tools and Resources

HTML CSS JavaScript jQuery

httpwwww3schoolscom

httpgetbootstrapcom

httphandlebarsjscom

httpknockoutjscom

httpsangularjsorg

httpmomentjscom

Build Process

Complete script is the master script to setup the site

On a new farm it creates the web app and site collection

If the site collection exists it should not affect any content

Useful for updating branding and web parts

TFS build should run this

Need to explicitly force the full run

General Project Process

Create run and test the scripts on your own developer VM

When ready run on dev integration to setup site

Content authoring can happen on dev integration

Script the extraction of content

Compare to TFS and check in as required

Always back up your content authoring site before re-running a full build

Complete Script

Check and create the web app Check and create the site collection Import the term store Set the term store navigation Build the site structure Populate the content Catalogs Search Branding Web Parts

Other Scripts

Set Environment

Defines parameters for each of the environments

Typically has defaults intended for VM13 developer environment

Export the term store to XML

Export list or library content

Overview of ESC Scripts

ESCBuilder_DeployPackages

ESCBuilder_Helper

ESCBuilder_PopulateStructureContent

ESCBuilder_Search

Design Phase

MindMap Information Architecture

Axure Wireframes

PhotoShop or Illustrator Creative Designs

Site Columns and Content Types

Create directly through the SharePoint UI

Senior Consultant can do this in an initial empty devintegration environment

Export script exports these to XML files

Import into target envionments

Typically need Term Store configured as well for Managed Metadata columns

Branding Files

No longer in a Visual Studio WSP package

Simply a collection of files in the Builder folder

Still managed through TFS

Build script uploads and publishes these to the target site

Can edit directly against SharePoint by opening in Windows Explorer

Need to be careful about updating TFS

Export will export the branding files but has farm information in the files that makes it difficult to compare against TFS

Catalogs

Three main steps

Enabling lists or libraries as catalogs

Creating the catalog connection

Building the page layouts to display the category rollups or item detail pages

Enabling Catalogs

Doesnrsquot have to be a list can be a document Images or Pages library

Experimenting using a Pages library

This gives us draft and published states that lists donrsquot support

Preview and editing is easier

Fairly simple script to do this

Needs a full crawl after doing this

Creating the Catalog Connection

Rishan did some great work here

Scripts establish the connection and also update the term store as required

SharePoint Catalog Page Layouts

Uses the CSWP and Content Reuse web parts

Result sources defined in Search for each catalog connection

GUIDs for the result sources different in each farm and need to be updated as part of the deployment

REST Search Catalog Pages

HTML with data attributes on page layouts or in Reusable HTML

jQuery detects this

Builds a REST Search query based on the attributes and URL

Calls SharePoint

Uses Handlebars to format the results

Product Replacements

Video Player is part of the lib structure

Needs references added to the master page

Any hyperlink to an MP4 file launches the video popup

Image Rotator

Jeff is working on standardizing some jQuery slider options

Photo Viewer

No plans just yet

All of these will be part of the ESC package

Starting a New Project

Copy the five ESC scripts from $Envision Shakespeare CompanyBuilder Do not rename

Copy the ShakespeareBuild scripts Rename to your project Update the steps as required for your project

Create the infrastructure WSP Site columns content types list definitions and instances

Manually create the pages and assets that are needed in SharePoint Manually create the term store for metadata and navigation Script the extraction to TFS of content and term store Create the branding WSP Manually create any required web parts Export to TFS and script the placement of the web parts on the pages

ESC Scripts Next Steps

Incorporate TMX additions Farm property bag instead of webconfig Audiences Subsites Available layouts Permissions Extract folders and lists

Continue reconciling additional projects in OMA TMX Christie Medical

Full header blocks and commenting Version numbers Complete the catalog connection script Office 365 support

Links

wwwenvisionitcom

blogpetercarsonca

wwwenvisionitcomshakespeare

httpsShakespeareenvisionitcom

wwwbgccancom

wwwproblemgamblingca

wwwrusselmetalscom

wwwtarioncom

wwwtransamericaca

wwwcollegeofececa

wwwsamuelcom

wwwthewaterfrontpropertiesca

wwwshopsatdonmillsca

wwwfuturesherwaygardensca

wwwpublichealthontarioca

SharePoint WCM Glossary

SharePoint Glossary

Term Definition

SharePoint Farm A set of SharePoint servers that share a single configuration database

Web Application A top level container and entry-point URLs for site collections

Site Collection A set of Web sites that are in the same content database have the same owner and share administration settings A site collection can be identified by a GUID or the URL of the top-level site for the site collection Each site collection contains a top-level site can contain one or more subsites and can have a shared navigation structure

Path Based Site Collection A site collection under a managed pathhttpwebappsitessitecollection

Host Named Site Collection A site collection with its own unique URL Must be created through PowerShell

Site Subsite under a site collection

Site Template A template for a single site that has been saved from another site Site templates may or may not contain content Templates cannot be created from publishing sites

SharePoint Glossary

Term Definition

Site Column A single field that can store information of a particular typebull Textbull Choicebull Numberbull hellipDefined at the site collection level

Content Type A content type is a reusable collection of Site Columns that can be applied to a certain category of content Content types enable the management of metadata and behaviors of a document or item type in a centralized reusable way Basically content types include the columns (or fields) that are applied to a certain type of content plus other optional settings such as a document template

Document Set New content type in SharePoint 2010 A document set is a container for multiple documents to which you can assign certain metadata and treat as a single entity in many ways In addition a document set can contain one or more different content types

SharePoint Glossary

Term Definition

List A container for list content types or custom list items Columns can be defined via content types or directly in the list

Document Library A SharePoint list that contains documents where you can create collect update and share files with others Like lists columns can be defined via content types or directly in the list

Form Library A special type of library to facilitate the interaction with InfoPath forms

Asset Library A library typically used to store image audio and video files

List Template A template used to define the configuration of a list or library Templates can be saved with or without content

SharePoint Glossary

Term Definition

Term Store An instance of the Managed Metadata Service This can be shared between sites site collections web applications or farms

Group A collection of term sets

Term Set A collection of related terms

Term A word or a phrase that can be associated with a SharePoint item

Friendly URL An SEO friendly URL defined in the term store for a page rather than the physical URL of where the page is stored (Pages)

SharePoint Glossary

Term Definition

Design Manager 2013 feature used to manipulate WCM artifacts

Master Page Defines elements that are common to all pages such as the header navigation and footer

Page Layout Defines the layout of a particular style of page such as news or events Each page content type can have one or more layouts associated with them

Web Parts Functional elements that can be added to pages typically for dynamic content

Apps Similar to web parts but run outside of SharePoint while beinghosted in the SharePoint page

Publishing Site Page Rendering

FileName

Welcomeaspx

PageLayout

PageLayoutaspx

Title

Welcome To News

Body

Lorem ipsum dolor sit

Image

ImagesChairjpg

1 Welcomeaspx page is

requested

2 Page layout associated with

page is retrieved

3 Master page associated with site

is retrieved

4 Controls in page layout render

content from pagersquos fields into the page

MasterPagemaster

PageLayoutaspxTitle

BodyImage

Date

ByLine

Field Control

FieldControl

Field ControlField ControlField Control

Field Control

httpfoocombarpageswelcomeaspx

SharePoint Glossary

Term Definition

Cross-Site Publishing Publishing from an authoring site collection to one or more publishing site collections

Catalog A list that has been published as a catalog

Category Page A page that displays a rollup of catalog items

Catalog Item Page A page that displays a single item from a catalog

Display Template Used to format the results on search pages in content search web parts and on category pages

Whatrsquos New in Web Content

Management

Easier Page Authoring With Cut and Paste

Drag and Drop Files

Drag and drop files from Windows Explorer into the browser or the other way

Doesnrsquot support folders or document sets

Open in Windows Explorer still works best for this

Requires IE10 or current versions of Chrome Safari or Firefox

IE8 and 9 supported with Office 2013 installed

Image Renditions

Display uploaded images in predefined sizes widths and crops

Multiple renditions stored in document sets

Content author can create renditions (including crops) in the browser

Design Manager

New way to build master

pages and layouts

SharePoint Designer no

longer required

Edit and preview in any HTML

editor

Automatically creates the associated

master page and aspx

layouts

Package into a Design

Package WSP for

deployment

Snippet Gallery

Select components

such as search box or

navigation control

Configure its properties

Paste the snippet into your HTML

master page or layout

Changes synched to

actual master pages and layouts to convert to SharePoint

components

Can be used by any web design

tool

Device Channels

Map channels to mobile devices or browsers

Alternate master pages

can be assigned

Page layouts can include or

exclude content based

on channel

Display Templates

Used to customize the

presentation of search results

No more XSLT

Three templates

bull Control ndash Overall structure of search results

bull Group ndash Show groups of results

bull Item ndash How each result is presented

Navigation and Friendly URLs

Site navigation driven by managed metadata

Term store used for navigation and SEO-friendly URLs

Connect site navigation to business concepts rather than site structure

Server side control outputs HTML for top nav left nav and breadcrumb

Plan is to convert to client-side to support Office 365

Term Store Setup

Two groups used to separate metadata from navigation

Metadata group setup globally

Static GUIDs consistent through all environments

Navigation group setup at the site collection level

Allows multiple copies for multiple sites on the farm

Search

Search is new and different from all previous versions of SharePoint

The platform has been consolidated Built on a combination of FAST Search and SharePoint Search components as well as new development work ndash it is the

same from Foundation to Server

Foundation Search is intended to replace WSS Search Microsoft Search Server and Search Server Express from previous versions of SharePoint

Itrsquos used pervasively throughout the product now in many different ways in different features eDiscovery navigation topic pages Internet facing business sites etc

Search in SharePoint 2013

Single Extensible Platform

FAST Engine

SharePoint Crawler

Best of both

Same Search Platform in both SharePoint and Exchange

Enterprise Search

Search Page Web parts added to a publishing page

Catalogs Cross-site publishing

Library search Executes in place on the library

Site Search _layouts15osssearchresultsaspx Specifies the site and search parameters

Search Centre Basic Search Center - SharePoint Foundation 2013 Enterprise Search Center - SharePoint Server 2013

Content Search Web Part

Similar in concept to the Content Query Web Part

Many advantages

Can go across sites site collections web apps even farms

Leverages the search index -gt very scalable

Query Builder makes it easy to define your results

Use Display Templates to customize the look and feel No more XSLT

Part of the Enterprise CAL

Pre-Configured CSWPs

Popular Items Shows items that have been recently viewed by many users

Recently Changed Items Shows items that have been modified recently This can help site users

track the latest activity on a site or a library

Recommended Items Show content recommendations based on usage patterns for the current

page

All of these can be further configured by editing their properties and changing the search criteria

Search Results Web Part

Similar functionality to the Content Search Web Part

Doesnrsquot allow property mapping in the web part configuration

Mapping is controlled in the Display Template

Part of the Standard CAL

Category Page Item Page

Catalogs

wwwcontosocomproductsAudio-Liware2g

Catalogs

Results

Consistent Displays

Manage content in one place

No need to create

pages

No need to format

Metadata Navigation

Cross-Site Publishing

Reuse content between different sites including site collections and farms

Catalogs can surface lists into publishing sites onto a category page and item pages

Can be surfaced through the Content Search Web Part

No need to create and publish web pages

Create custom friendly URLs

Metadata based navigation base

Cross Site Publishing

Job Posting

Job Posting

Job Posting

Job Posting

Simcoe County District School Board

50000 students

Over 6000 employees

Board office in Barrie

Bordered by the Holland Marsh in the south the Trent-Severn Waterway in the east Grey County in the west and Muskoka in the north

Simcoe County District School Board

119 schools and centres 87 elementary 16 secondary 6 learning centres 10 alternative

Each needs their own web site Being built on SharePoint 2013 Elementary panel first Each has their own unique URL Content authored both at the school and centrally from the board

wwwscdsbonca Pre-existing SharePoint 2010 site Future goal is to rebuild in SharePoint 2013

Business Challenge

100+ public web sites

No standardization on style technology or content

No ability for the board to push content to the school sites

Outdated sites

Not mobile or AODA compliant

Site Features

Fully Adaptivemobile design Robust Search functionality Template makes it fast and efficient to add new school sites News and events can be targeted by the Board to any number of

school sites Target by panel weather zone trustee language Presented in a blended view with the school news and events

Home page rotator links hours content pages all managed by the school staff

SEO-friendly URLs

News

School news entered by school staff

Board news entered in the board site

Rendered using cross-site publishing

High-priority alerts can be flagged to highlight on the site

Bus or school cancellations

Events

Single and multi-day events

School and board managed like news

Adaptive calendar

School Picker

Used to pick which schools to target news and events to

Schools are tagged through the term store

Target by panel weather zone trustee language

Can override and add or remove individual schools

Search

Catalogs

Three main steps

Enabling lists or libraries as catalogs

Creating the catalog connection

Building the page layouts to display the category rollups or item detail pages

Enabling Catalogs

Doesnrsquot have to be a list can be a document Images or Pages library

Experimenting using a Pages library

This gives us draft and published states that lists donrsquot support

Preview and editing is easier

Fairly simple script to do this

Catalog connections are more complex

Create the connection

Fix up the Term Store

Create the Category and Item page layouts and pages

SEO Enhancements

Friendly URLs

Home page redirects

XML sitemaps automatically generated and updated

Custom SEO properties

Usage Analytics

Built for scale from the ground up Detail data rolled up every 15 days amp anonymized Daily events purged every 15 days monthly events after 3 years Lifetime counts always retained

Counts views amp unique itemsday Shows recent (2-weeks) and lifetime count Trims least visited content Pushes aggregate data to reporting database

Drives recommendations capabilities on content Calculations injected into search index as sortable managed properties Deep integration with search engine Can influence search relevance based on content usage

Variations and Multi-Lingual

Export and import content for translation in XLIFF format

Pages

Labels

List items

Navigation

Bing translation service comes with active SharePoint 2013 license

Adaptive Web Design

Adaptive vs Responsive

Adaptive

Fixed breakpoints‒ Desktop gt 980 px

‒ Table portrait gt 768 px

‒ Phone to tablet gt 480 px lt 768 px

‒ Smartphone lt 480 px

Responsive

No fixed breakpoints

Design fluidly adapts to whatever width the browser is

We generally do a hybrid approach with responsive design in the under 768 pixel situation

Design Approaches in SharePoint

Adaptive Design through CSS media queries

Broader standards approach used outside of SharePoint

Keeps a single master page and CSS

Some unnecessary components may still be loaded

Device Channels SharePoint specific approach

Assign different master pages to different device channels

Rules define what devices use which channels

Device Channel Panels can also target content to channels

Hybrid here can also make sense Device channels can be used to remove unnecessary items from the page payload

Our Adaptive Approach

Built using the Twitter Boostrap CSS framework

twittergithubcombootstrap

Provides a responsive design framework for supporting PC Mac tablet and mobile

We enhanced to provide better touch navigation support

Can be leveraged in the master page page layouts and display templates

Incorporated into the SharePoint 2013 Design Master

HTML based master page that can be edited with any tool

SharePoint converts to a master page when uploaded or saved

Additional Open Source Tools and Resources

HTML CSS JavaScript jQuery

httpwwww3schoolscom

httpgetbootstrapcom

httphandlebarsjscom

httpknockoutjscom

httpsangularjsorg

httpmomentjscom

Content Search Web Part

Web part is configured to return search results

Executed as client-side code in the browser

Pair of display templates map the data returned to HTML

Control template for the overall structure

Item template for each item returned

HTML Designer Manager files are compiled to JavaScript

REST Search and Handlebars

Search is accessible through REST calls

httpsiteurl_apisearchquery

Returns results as a JSON array

Handlebars is a templating engine to format that

Conceptually similar to display templates with control and item sections

jQuery glues this all together

Steps to Experiment

F12 to get into Developer Toolbar

Set a breakpoint where the REST URL is determined

Copy the value

Paste into the REST Search test window

Experiment with the query

Adjust the Handlebars template appropriately

Search Setup

Content Sources to define and schedule the crawls

Crawl logs to review success

Search Schema to define the managed properties

Reusable Content

Snippets of HTML that can be reused throughout the site

JavaScript can be intelligent and use the URL to determine its behaviour

Makes it easy for content authors to drop pre-configured dynamic content onto pages

Topic Pages

Shows all items that match a topic

Could be hundreds of virtual pages

Only one template page

Easily customizable and SEO friendly (each topic appears to be its own page)

Content by search web part open search against a query or result source

May be able to surface the topic pages themselves as site search results

Public Health Ontario

httpwwwpublichealthontariocaenBrowseByTopicPagesTopicaspxk=Influenza20InformationByTopic22Influenza22

Ontario Association of Childrens Aid Societies

Application Lifecycle Management

Purpose

How do we build a solid SharePoint development environment for the enterprise

How do a number of developers work together on a SharePoint project

How does code and content move through a dev test and production lifecycle

What is Agile and Continuous Integration and why is it important

Visual Studio and Team Foundation Server

Visual Studio 2010 is the development platform for coding on SharePoint 2010

Team Foundation Server integrates with Visual Studio to provide a repository for code test and other project artifacts

It facilitates teamwork by providing a common place for developers to work together

Provisioning SharePoint Farms

Provisioning SharePoint Farms

Every developer needs their own complete SharePoint farm

Teams need a dev integration farm to bring their work together on

A full architecture needs QA and production farms as well

Envision IT Virtualization Architecture

Developer VM Template

SharePoint Server 2010 Enterprise

SP1 and August CU

Visual Studio 2010 Premium SP1

Office 2010 Professional Plus SP1

SharePoint Designer 2010 SP1

Fiddler

SQL Server 2008 R2 SP1

Creating a new Developer VM

Open System Centre Virtual Machine Manager

Create Virtual Machine

Choose the Developer VM template

Set the virtual machine name and options

Create and start the VM

Creating a new Developer VM - Step 2

Developer RDPs to their new VM Complete the SQL Server installation

Create the default instance Set the service account(s) Set the authentication mode and server administrators

Update the AutoSPInstallerInputxml file Set the machine name for the default sites and database server Set the service account passwords

Run the AutoSPInstallerLaunch batch file Do a Health check review

Creating a new Developer VM - Step 3

Start Visual Studio

Connect to the Team Foundation Server

Setup your workspaces

Use a standard naming convention across your team

CDevelopmentTFSCollection

Other Environments

Dev Integration QA and Production can all be built using AutoSPInstall

Donrsquot need or want the Visual Studio or Office tools on these servers

We have a base template we use for dev integration servers

QA should match the Prod architecture as closely as possible

High availability with load balancing clustered SQL app servers DMZ hardening Internet publishing

Agile Development

Agile with Team Foundation Server

Creating Your TFS Project

Open Visual Studio

Make sure you are connected to the right Team Project Collection

In Team Explorer right-click the top collection and create a new Team Project

Use the Scrum 10 template

Go into the Areas and Iterations Delete the extraneous releases and sprints

Create a product backlog iteration

Start adding your stories and tasks

Continuous Integration

Continuous Integration

Automated Testing

SharePoint Site Elements

Site structure Site columns content types subsites lists libraries

Branding elements Master pages layouts CSS XSLT supporting images

Custom web parts Page and site content Web part instances Search Workflows Business Connectivity Services Managed Metadata

SharePoint Site Elements ndash Part 2

Access Excel Word Visio

PerformancePoint

Document conversions

Timer jobs

Secure Store Service

User profiles

Site Structure

bull Site columns

bull Define the fields that are used by content types

bull Content types

bull Defines collections of site columns for different types of content

bull Subsites

bull The hierarchy of sites that make up the site collection

bull Lists and Libraries

bull The lists and libraries for each subsite

Site Structure ndash Part 2

Site columns and content types can be programmatically or manually created If they are going to be used in multiple site collections they should be

programmatically created

If a single site collection they can be created manually in a master site collection

GUIDs cannot be manually set and code may need them to be consistent

You can create them manually in SharePoint save the site as a template and import them into Visual Studio to create a proper WSP package

Site Structure ndash Part 3

Site structure can also be done either programmatically or manually

Many sites are complex and it is error prone to create manually

We use our own SiteModelBuilder tool to create the site structure

Site Structure ndash Part 4

For all site structure elements changes can also be manual or programmatic It is useful to be able to delete the whole site collection and recreate it

programmatically As soon as content starts being authored in SharePoint it becomes difficult

or impossible to do that

After content authoring has started Site column and content type changes need to be programmed explicitly

(you canrsquot just drop the content type and recreate it) Site structure changes are usually done manually at this point Changes need to be backed up and restored

Change Management

Page and Site Content

Page and site content is entered directly into SharePoint by the content authors Web pages images PDFs list content etc This should be done in the master site separate from where dev integration is

happening Care needs to be taken with this site once authors start working Make sure it is part of your production backup plan

Periodically back it up and restore it to the dev integration and developer VMs

Alternatively script the export and import Ultimately it will be backed up and restored to the QA and production

farms

Change Management

Change Management

Change Management

Change Management

Web part instances

Web parts ultimately get placed on pages

The configuration of the web parts can often get quite complex

You may want to disable editing of web parts for general content authors

They end up in a grey zone between code and content

Web part instances ndash Part 2

We created our own internal tool to export and import web parts

Each web partrsquos configuration can be exported into a webpartfile

We scripted the extraction from the dev integration

webpart files are treated like code and checked into TFS for version control

Script then applies the new webpart files to the target environment

Workflows

Workflows can be built using SharePoint Designer Visual Studio or third-party tools (Nintex or K2 primarily)

Visual Studio workflow projects are automatically packaged as WSP solution files Simply deploy the WSP file to the other environments

SharePoint Designer workflows need to be deployed using SharePoint Designer This means you need SPD access to production which is not always possible

You can load the SPD workflow into Visual Studio to package it but you lose the ability to edit it in SPD

If you use third-party tools yoursquoll need to define the process for that as well

Business Connectivity Services

BCS can be built using either SharePoint Designer or Visual Studio Visual Studio BCS projects are automatically packaged as WSP

solution files Simply deploy the WSP file to the other environments You can also export the BDC metadata model in the BDC service

application

SharePoint Designer doesnrsquot create a WSP and it doesnrsquot make a complete BDC metadata model You need to export and import using SharePoint Designer

In both cases you still need to deal with connection and configuration information

Future Directions

Visual Studio Lab Management

Integrates the management of HyperV environments in with Visual Studio and Team Foundation Server

Can automate the provisioning of lab environments for automated testing

Test failures can snapshot entire environments to make reproduction of errors much easier

Summary

Yoursquore going to have lots of SharePoint environments ndash figure out how to build them quickly and repeatable

Code and content often move in opposite directions through dev QA and Prod PowerShell script and automate to keep this simple

Agile is a great way to run projects

Continuous integration with automated testing is key to its success

There are lots of parts of SharePoint that you donrsquot code through Visual Studio Figure out how you move those through your environment

Other Topics

Site Design

Information architecture

Wireframes

Creative designs ndash Mobile first

Catalogs deep dive

Site build PowerShell scripts

Team Foundation Server and Application Lifecycle Management

Starting a new project

Managing content authoring

Site Improve tool

SEO Optimizations

Analytics options

Retaining Page Ranks with permanent redirects (301)

Azure SharePoint Hosting

Q amp A

Session Evaluations

Go to Evaluations on the home page of wwwcollabconorg

It is important to get your feedback

Please fill out evaluations for all the sessions you attend

Following the conference a random drawing from all completed evaluations will be selected

The winner will receive a $250 Future Shop gift card valid online or in store

Page 16: Web Content Management - CollabCon 2015 - Web... · Performances Complete Works ... Friendly URL An SEO friendly URL defined in the term store for a page, rather than ... What’s

Build Process

Complete script is the master script to setup the site

On a new farm it creates the web app and site collection

If the site collection exists it should not affect any content

Useful for updating branding and web parts

TFS build should run this

Need to explicitly force the full run

General Project Process

Create run and test the scripts on your own developer VM

When ready run on dev integration to setup site

Content authoring can happen on dev integration

Script the extraction of content

Compare to TFS and check in as required

Always back up your content authoring site before re-running a full build

Complete Script

Check and create the web app Check and create the site collection Import the term store Set the term store navigation Build the site structure Populate the content Catalogs Search Branding Web Parts

Other Scripts

Set Environment

Defines parameters for each of the environments

Typically has defaults intended for VM13 developer environment

Export the term store to XML

Export list or library content

Overview of ESC Scripts

ESCBuilder_DeployPackages

ESCBuilder_Helper

ESCBuilder_PopulateStructureContent

ESCBuilder_Search

Design Phase

MindMap Information Architecture

Axure Wireframes

PhotoShop or Illustrator Creative Designs

Site Columns and Content Types

Create directly through the SharePoint UI

Senior Consultant can do this in an initial empty devintegration environment

Export script exports these to XML files

Import into target envionments

Typically need Term Store configured as well for Managed Metadata columns

Branding Files

No longer in a Visual Studio WSP package

Simply a collection of files in the Builder folder

Still managed through TFS

Build script uploads and publishes these to the target site

Can edit directly against SharePoint by opening in Windows Explorer

Need to be careful about updating TFS

Export will export the branding files but has farm information in the files that makes it difficult to compare against TFS

Catalogs

Three main steps

Enabling lists or libraries as catalogs

Creating the catalog connection

Building the page layouts to display the category rollups or item detail pages

Enabling Catalogs

Doesnrsquot have to be a list can be a document Images or Pages library

Experimenting using a Pages library

This gives us draft and published states that lists donrsquot support

Preview and editing is easier

Fairly simple script to do this

Needs a full crawl after doing this

Creating the Catalog Connection

Rishan did some great work here

Scripts establish the connection and also update the term store as required

SharePoint Catalog Page Layouts

Uses the CSWP and Content Reuse web parts

Result sources defined in Search for each catalog connection

GUIDs for the result sources different in each farm and need to be updated as part of the deployment

REST Search Catalog Pages

HTML with data attributes on page layouts or in Reusable HTML

jQuery detects this

Builds a REST Search query based on the attributes and URL

Calls SharePoint

Uses Handlebars to format the results

Product Replacements

Video Player is part of the lib structure

Needs references added to the master page

Any hyperlink to an MP4 file launches the video popup

Image Rotator

Jeff is working on standardizing some jQuery slider options

Photo Viewer

No plans just yet

All of these will be part of the ESC package

Starting a New Project

Copy the five ESC scripts from $Envision Shakespeare CompanyBuilder Do not rename

Copy the ShakespeareBuild scripts Rename to your project Update the steps as required for your project

Create the infrastructure WSP Site columns content types list definitions and instances

Manually create the pages and assets that are needed in SharePoint Manually create the term store for metadata and navigation Script the extraction to TFS of content and term store Create the branding WSP Manually create any required web parts Export to TFS and script the placement of the web parts on the pages

ESC Scripts Next Steps

Incorporate TMX additions Farm property bag instead of webconfig Audiences Subsites Available layouts Permissions Extract folders and lists

Continue reconciling additional projects in OMA TMX Christie Medical

Full header blocks and commenting Version numbers Complete the catalog connection script Office 365 support

Links

wwwenvisionitcom

blogpetercarsonca

wwwenvisionitcomshakespeare

httpsShakespeareenvisionitcom

wwwbgccancom

wwwproblemgamblingca

wwwrusselmetalscom

wwwtarioncom

wwwtransamericaca

wwwcollegeofececa

wwwsamuelcom

wwwthewaterfrontpropertiesca

wwwshopsatdonmillsca

wwwfuturesherwaygardensca

wwwpublichealthontarioca

SharePoint WCM Glossary

SharePoint Glossary

Term Definition

SharePoint Farm A set of SharePoint servers that share a single configuration database

Web Application A top level container and entry-point URLs for site collections

Site Collection A set of Web sites that are in the same content database have the same owner and share administration settings A site collection can be identified by a GUID or the URL of the top-level site for the site collection Each site collection contains a top-level site can contain one or more subsites and can have a shared navigation structure

Path Based Site Collection A site collection under a managed pathhttpwebappsitessitecollection

Host Named Site Collection A site collection with its own unique URL Must be created through PowerShell

Site Subsite under a site collection

Site Template A template for a single site that has been saved from another site Site templates may or may not contain content Templates cannot be created from publishing sites

SharePoint Glossary

Term Definition

Site Column A single field that can store information of a particular typebull Textbull Choicebull Numberbull hellipDefined at the site collection level

Content Type A content type is a reusable collection of Site Columns that can be applied to a certain category of content Content types enable the management of metadata and behaviors of a document or item type in a centralized reusable way Basically content types include the columns (or fields) that are applied to a certain type of content plus other optional settings such as a document template

Document Set New content type in SharePoint 2010 A document set is a container for multiple documents to which you can assign certain metadata and treat as a single entity in many ways In addition a document set can contain one or more different content types

SharePoint Glossary

Term Definition

List A container for list content types or custom list items Columns can be defined via content types or directly in the list

Document Library A SharePoint list that contains documents where you can create collect update and share files with others Like lists columns can be defined via content types or directly in the list

Form Library A special type of library to facilitate the interaction with InfoPath forms

Asset Library A library typically used to store image audio and video files

List Template A template used to define the configuration of a list or library Templates can be saved with or without content

SharePoint Glossary

Term Definition

Term Store An instance of the Managed Metadata Service This can be shared between sites site collections web applications or farms

Group A collection of term sets

Term Set A collection of related terms

Term A word or a phrase that can be associated with a SharePoint item

Friendly URL An SEO friendly URL defined in the term store for a page rather than the physical URL of where the page is stored (Pages)

SharePoint Glossary

Term Definition

Design Manager 2013 feature used to manipulate WCM artifacts

Master Page Defines elements that are common to all pages such as the header navigation and footer

Page Layout Defines the layout of a particular style of page such as news or events Each page content type can have one or more layouts associated with them

Web Parts Functional elements that can be added to pages typically for dynamic content

Apps Similar to web parts but run outside of SharePoint while beinghosted in the SharePoint page

Publishing Site Page Rendering

FileName

Welcomeaspx

PageLayout

PageLayoutaspx

Title

Welcome To News

Body

Lorem ipsum dolor sit

Image

ImagesChairjpg

1 Welcomeaspx page is

requested

2 Page layout associated with

page is retrieved

3 Master page associated with site

is retrieved

4 Controls in page layout render

content from pagersquos fields into the page

MasterPagemaster

PageLayoutaspxTitle

BodyImage

Date

ByLine

Field Control

FieldControl

Field ControlField ControlField Control

Field Control

httpfoocombarpageswelcomeaspx

SharePoint Glossary

Term Definition

Cross-Site Publishing Publishing from an authoring site collection to one or more publishing site collections

Catalog A list that has been published as a catalog

Category Page A page that displays a rollup of catalog items

Catalog Item Page A page that displays a single item from a catalog

Display Template Used to format the results on search pages in content search web parts and on category pages

Whatrsquos New in Web Content

Management

Easier Page Authoring With Cut and Paste

Drag and Drop Files

Drag and drop files from Windows Explorer into the browser or the other way

Doesnrsquot support folders or document sets

Open in Windows Explorer still works best for this

Requires IE10 or current versions of Chrome Safari or Firefox

IE8 and 9 supported with Office 2013 installed

Image Renditions

Display uploaded images in predefined sizes widths and crops

Multiple renditions stored in document sets

Content author can create renditions (including crops) in the browser

Design Manager

New way to build master

pages and layouts

SharePoint Designer no

longer required

Edit and preview in any HTML

editor

Automatically creates the associated

master page and aspx

layouts

Package into a Design

Package WSP for

deployment

Snippet Gallery

Select components

such as search box or

navigation control

Configure its properties

Paste the snippet into your HTML

master page or layout

Changes synched to

actual master pages and layouts to convert to SharePoint

components

Can be used by any web design

tool

Device Channels

Map channels to mobile devices or browsers

Alternate master pages

can be assigned

Page layouts can include or

exclude content based

on channel

Display Templates

Used to customize the

presentation of search results

No more XSLT

Three templates

bull Control ndash Overall structure of search results

bull Group ndash Show groups of results

bull Item ndash How each result is presented

Navigation and Friendly URLs

Site navigation driven by managed metadata

Term store used for navigation and SEO-friendly URLs

Connect site navigation to business concepts rather than site structure

Server side control outputs HTML for top nav left nav and breadcrumb

Plan is to convert to client-side to support Office 365

Term Store Setup

Two groups used to separate metadata from navigation

Metadata group setup globally

Static GUIDs consistent through all environments

Navigation group setup at the site collection level

Allows multiple copies for multiple sites on the farm

Search

Search is new and different from all previous versions of SharePoint

The platform has been consolidated Built on a combination of FAST Search and SharePoint Search components as well as new development work ndash it is the

same from Foundation to Server

Foundation Search is intended to replace WSS Search Microsoft Search Server and Search Server Express from previous versions of SharePoint

Itrsquos used pervasively throughout the product now in many different ways in different features eDiscovery navigation topic pages Internet facing business sites etc

Search in SharePoint 2013

Single Extensible Platform

FAST Engine

SharePoint Crawler

Best of both

Same Search Platform in both SharePoint and Exchange

Enterprise Search

Search Page Web parts added to a publishing page

Catalogs Cross-site publishing

Library search Executes in place on the library

Site Search _layouts15osssearchresultsaspx Specifies the site and search parameters

Search Centre Basic Search Center - SharePoint Foundation 2013 Enterprise Search Center - SharePoint Server 2013

Content Search Web Part

Similar in concept to the Content Query Web Part

Many advantages

Can go across sites site collections web apps even farms

Leverages the search index -gt very scalable

Query Builder makes it easy to define your results

Use Display Templates to customize the look and feel No more XSLT

Part of the Enterprise CAL

Pre-Configured CSWPs

Popular Items Shows items that have been recently viewed by many users

Recently Changed Items Shows items that have been modified recently This can help site users

track the latest activity on a site or a library

Recommended Items Show content recommendations based on usage patterns for the current

page

All of these can be further configured by editing their properties and changing the search criteria

Search Results Web Part

Similar functionality to the Content Search Web Part

Doesnrsquot allow property mapping in the web part configuration

Mapping is controlled in the Display Template

Part of the Standard CAL

Category Page Item Page

Catalogs

wwwcontosocomproductsAudio-Liware2g

Catalogs

Results

Consistent Displays

Manage content in one place

No need to create

pages

No need to format

Metadata Navigation

Cross-Site Publishing

Reuse content between different sites including site collections and farms

Catalogs can surface lists into publishing sites onto a category page and item pages

Can be surfaced through the Content Search Web Part

No need to create and publish web pages

Create custom friendly URLs

Metadata based navigation base

Cross Site Publishing

Job Posting

Job Posting

Job Posting

Job Posting

Simcoe County District School Board

50000 students

Over 6000 employees

Board office in Barrie

Bordered by the Holland Marsh in the south the Trent-Severn Waterway in the east Grey County in the west and Muskoka in the north

Simcoe County District School Board

119 schools and centres 87 elementary 16 secondary 6 learning centres 10 alternative

Each needs their own web site Being built on SharePoint 2013 Elementary panel first Each has their own unique URL Content authored both at the school and centrally from the board

wwwscdsbonca Pre-existing SharePoint 2010 site Future goal is to rebuild in SharePoint 2013

Business Challenge

100+ public web sites

No standardization on style technology or content

No ability for the board to push content to the school sites

Outdated sites

Not mobile or AODA compliant

Site Features

Fully Adaptivemobile design Robust Search functionality Template makes it fast and efficient to add new school sites News and events can be targeted by the Board to any number of

school sites Target by panel weather zone trustee language Presented in a blended view with the school news and events

Home page rotator links hours content pages all managed by the school staff

SEO-friendly URLs

News

School news entered by school staff

Board news entered in the board site

Rendered using cross-site publishing

High-priority alerts can be flagged to highlight on the site

Bus or school cancellations

Events

Single and multi-day events

School and board managed like news

Adaptive calendar

School Picker

Used to pick which schools to target news and events to

Schools are tagged through the term store

Target by panel weather zone trustee language

Can override and add or remove individual schools

Search

Catalogs

Three main steps

Enabling lists or libraries as catalogs

Creating the catalog connection

Building the page layouts to display the category rollups or item detail pages

Enabling Catalogs

Doesnrsquot have to be a list can be a document Images or Pages library

Experimenting using a Pages library

This gives us draft and published states that lists donrsquot support

Preview and editing is easier

Fairly simple script to do this

Catalog connections are more complex

Create the connection

Fix up the Term Store

Create the Category and Item page layouts and pages

SEO Enhancements

Friendly URLs

Home page redirects

XML sitemaps automatically generated and updated

Custom SEO properties

Usage Analytics

Built for scale from the ground up Detail data rolled up every 15 days amp anonymized Daily events purged every 15 days monthly events after 3 years Lifetime counts always retained

Counts views amp unique itemsday Shows recent (2-weeks) and lifetime count Trims least visited content Pushes aggregate data to reporting database

Drives recommendations capabilities on content Calculations injected into search index as sortable managed properties Deep integration with search engine Can influence search relevance based on content usage

Variations and Multi-Lingual

Export and import content for translation in XLIFF format

Pages

Labels

List items

Navigation

Bing translation service comes with active SharePoint 2013 license

Adaptive Web Design

Adaptive vs Responsive

Adaptive

Fixed breakpoints‒ Desktop gt 980 px

‒ Table portrait gt 768 px

‒ Phone to tablet gt 480 px lt 768 px

‒ Smartphone lt 480 px

Responsive

No fixed breakpoints

Design fluidly adapts to whatever width the browser is

We generally do a hybrid approach with responsive design in the under 768 pixel situation

Design Approaches in SharePoint

Adaptive Design through CSS media queries

Broader standards approach used outside of SharePoint

Keeps a single master page and CSS

Some unnecessary components may still be loaded

Device Channels SharePoint specific approach

Assign different master pages to different device channels

Rules define what devices use which channels

Device Channel Panels can also target content to channels

Hybrid here can also make sense Device channels can be used to remove unnecessary items from the page payload

Our Adaptive Approach

Built using the Twitter Boostrap CSS framework

twittergithubcombootstrap

Provides a responsive design framework for supporting PC Mac tablet and mobile

We enhanced to provide better touch navigation support

Can be leveraged in the master page page layouts and display templates

Incorporated into the SharePoint 2013 Design Master

HTML based master page that can be edited with any tool

SharePoint converts to a master page when uploaded or saved

Additional Open Source Tools and Resources

HTML CSS JavaScript jQuery

httpwwww3schoolscom

httpgetbootstrapcom

httphandlebarsjscom

httpknockoutjscom

httpsangularjsorg

httpmomentjscom

Content Search Web Part

Web part is configured to return search results

Executed as client-side code in the browser

Pair of display templates map the data returned to HTML

Control template for the overall structure

Item template for each item returned

HTML Designer Manager files are compiled to JavaScript

REST Search and Handlebars

Search is accessible through REST calls

httpsiteurl_apisearchquery

Returns results as a JSON array

Handlebars is a templating engine to format that

Conceptually similar to display templates with control and item sections

jQuery glues this all together

Steps to Experiment

F12 to get into Developer Toolbar

Set a breakpoint where the REST URL is determined

Copy the value

Paste into the REST Search test window

Experiment with the query

Adjust the Handlebars template appropriately

Search Setup

Content Sources to define and schedule the crawls

Crawl logs to review success

Search Schema to define the managed properties

Reusable Content

Snippets of HTML that can be reused throughout the site

JavaScript can be intelligent and use the URL to determine its behaviour

Makes it easy for content authors to drop pre-configured dynamic content onto pages

Topic Pages

Shows all items that match a topic

Could be hundreds of virtual pages

Only one template page

Easily customizable and SEO friendly (each topic appears to be its own page)

Content by search web part open search against a query or result source

May be able to surface the topic pages themselves as site search results

Public Health Ontario

httpwwwpublichealthontariocaenBrowseByTopicPagesTopicaspxk=Influenza20InformationByTopic22Influenza22

Ontario Association of Childrens Aid Societies

Application Lifecycle Management

Purpose

How do we build a solid SharePoint development environment for the enterprise

How do a number of developers work together on a SharePoint project

How does code and content move through a dev test and production lifecycle

What is Agile and Continuous Integration and why is it important

Visual Studio and Team Foundation Server

Visual Studio 2010 is the development platform for coding on SharePoint 2010

Team Foundation Server integrates with Visual Studio to provide a repository for code test and other project artifacts

It facilitates teamwork by providing a common place for developers to work together

Provisioning SharePoint Farms

Provisioning SharePoint Farms

Every developer needs their own complete SharePoint farm

Teams need a dev integration farm to bring their work together on

A full architecture needs QA and production farms as well

Envision IT Virtualization Architecture

Developer VM Template

SharePoint Server 2010 Enterprise

SP1 and August CU

Visual Studio 2010 Premium SP1

Office 2010 Professional Plus SP1

SharePoint Designer 2010 SP1

Fiddler

SQL Server 2008 R2 SP1

Creating a new Developer VM

Open System Centre Virtual Machine Manager

Create Virtual Machine

Choose the Developer VM template

Set the virtual machine name and options

Create and start the VM

Creating a new Developer VM - Step 2

Developer RDPs to their new VM Complete the SQL Server installation

Create the default instance Set the service account(s) Set the authentication mode and server administrators

Update the AutoSPInstallerInputxml file Set the machine name for the default sites and database server Set the service account passwords

Run the AutoSPInstallerLaunch batch file Do a Health check review

Creating a new Developer VM - Step 3

Start Visual Studio

Connect to the Team Foundation Server

Setup your workspaces

Use a standard naming convention across your team

CDevelopmentTFSCollection

Other Environments

Dev Integration QA and Production can all be built using AutoSPInstall

Donrsquot need or want the Visual Studio or Office tools on these servers

We have a base template we use for dev integration servers

QA should match the Prod architecture as closely as possible

High availability with load balancing clustered SQL app servers DMZ hardening Internet publishing

Agile Development

Agile with Team Foundation Server

Creating Your TFS Project

Open Visual Studio

Make sure you are connected to the right Team Project Collection

In Team Explorer right-click the top collection and create a new Team Project

Use the Scrum 10 template

Go into the Areas and Iterations Delete the extraneous releases and sprints

Create a product backlog iteration

Start adding your stories and tasks

Continuous Integration

Continuous Integration

Automated Testing

SharePoint Site Elements

Site structure Site columns content types subsites lists libraries

Branding elements Master pages layouts CSS XSLT supporting images

Custom web parts Page and site content Web part instances Search Workflows Business Connectivity Services Managed Metadata

SharePoint Site Elements ndash Part 2

Access Excel Word Visio

PerformancePoint

Document conversions

Timer jobs

Secure Store Service

User profiles

Site Structure

bull Site columns

bull Define the fields that are used by content types

bull Content types

bull Defines collections of site columns for different types of content

bull Subsites

bull The hierarchy of sites that make up the site collection

bull Lists and Libraries

bull The lists and libraries for each subsite

Site Structure ndash Part 2

Site columns and content types can be programmatically or manually created If they are going to be used in multiple site collections they should be

programmatically created

If a single site collection they can be created manually in a master site collection

GUIDs cannot be manually set and code may need them to be consistent

You can create them manually in SharePoint save the site as a template and import them into Visual Studio to create a proper WSP package

Site Structure ndash Part 3

Site structure can also be done either programmatically or manually

Many sites are complex and it is error prone to create manually

We use our own SiteModelBuilder tool to create the site structure

Site Structure ndash Part 4

For all site structure elements changes can also be manual or programmatic It is useful to be able to delete the whole site collection and recreate it

programmatically As soon as content starts being authored in SharePoint it becomes difficult

or impossible to do that

After content authoring has started Site column and content type changes need to be programmed explicitly

(you canrsquot just drop the content type and recreate it) Site structure changes are usually done manually at this point Changes need to be backed up and restored

Change Management

Page and Site Content

Page and site content is entered directly into SharePoint by the content authors Web pages images PDFs list content etc This should be done in the master site separate from where dev integration is

happening Care needs to be taken with this site once authors start working Make sure it is part of your production backup plan

Periodically back it up and restore it to the dev integration and developer VMs

Alternatively script the export and import Ultimately it will be backed up and restored to the QA and production

farms

Change Management

Change Management

Change Management

Change Management

Web part instances

Web parts ultimately get placed on pages

The configuration of the web parts can often get quite complex

You may want to disable editing of web parts for general content authors

They end up in a grey zone between code and content

Web part instances ndash Part 2

We created our own internal tool to export and import web parts

Each web partrsquos configuration can be exported into a webpartfile

We scripted the extraction from the dev integration

webpart files are treated like code and checked into TFS for version control

Script then applies the new webpart files to the target environment

Workflows

Workflows can be built using SharePoint Designer Visual Studio or third-party tools (Nintex or K2 primarily)

Visual Studio workflow projects are automatically packaged as WSP solution files Simply deploy the WSP file to the other environments

SharePoint Designer workflows need to be deployed using SharePoint Designer This means you need SPD access to production which is not always possible

You can load the SPD workflow into Visual Studio to package it but you lose the ability to edit it in SPD

If you use third-party tools yoursquoll need to define the process for that as well

Business Connectivity Services

BCS can be built using either SharePoint Designer or Visual Studio Visual Studio BCS projects are automatically packaged as WSP

solution files Simply deploy the WSP file to the other environments You can also export the BDC metadata model in the BDC service

application

SharePoint Designer doesnrsquot create a WSP and it doesnrsquot make a complete BDC metadata model You need to export and import using SharePoint Designer

In both cases you still need to deal with connection and configuration information

Future Directions

Visual Studio Lab Management

Integrates the management of HyperV environments in with Visual Studio and Team Foundation Server

Can automate the provisioning of lab environments for automated testing

Test failures can snapshot entire environments to make reproduction of errors much easier

Summary

Yoursquore going to have lots of SharePoint environments ndash figure out how to build them quickly and repeatable

Code and content often move in opposite directions through dev QA and Prod PowerShell script and automate to keep this simple

Agile is a great way to run projects

Continuous integration with automated testing is key to its success

There are lots of parts of SharePoint that you donrsquot code through Visual Studio Figure out how you move those through your environment

Other Topics

Site Design

Information architecture

Wireframes

Creative designs ndash Mobile first

Catalogs deep dive

Site build PowerShell scripts

Team Foundation Server and Application Lifecycle Management

Starting a new project

Managing content authoring

Site Improve tool

SEO Optimizations

Analytics options

Retaining Page Ranks with permanent redirects (301)

Azure SharePoint Hosting

Q amp A

Session Evaluations

Go to Evaluations on the home page of wwwcollabconorg

It is important to get your feedback

Please fill out evaluations for all the sessions you attend

Following the conference a random drawing from all completed evaluations will be selected

The winner will receive a $250 Future Shop gift card valid online or in store

Page 17: Web Content Management - CollabCon 2015 - Web... · Performances Complete Works ... Friendly URL An SEO friendly URL defined in the term store for a page, rather than ... What’s

General Project Process

Create run and test the scripts on your own developer VM

When ready run on dev integration to setup site

Content authoring can happen on dev integration

Script the extraction of content

Compare to TFS and check in as required

Always back up your content authoring site before re-running a full build

Complete Script

Check and create the web app Check and create the site collection Import the term store Set the term store navigation Build the site structure Populate the content Catalogs Search Branding Web Parts

Other Scripts

Set Environment

Defines parameters for each of the environments

Typically has defaults intended for VM13 developer environment

Export the term store to XML

Export list or library content

Overview of ESC Scripts

ESCBuilder_DeployPackages

ESCBuilder_Helper

ESCBuilder_PopulateStructureContent

ESCBuilder_Search

Design Phase

MindMap Information Architecture

Axure Wireframes

PhotoShop or Illustrator Creative Designs

Site Columns and Content Types

Create directly through the SharePoint UI

Senior Consultant can do this in an initial empty devintegration environment

Export script exports these to XML files

Import into target envionments

Typically need Term Store configured as well for Managed Metadata columns

Branding Files

No longer in a Visual Studio WSP package

Simply a collection of files in the Builder folder

Still managed through TFS

Build script uploads and publishes these to the target site

Can edit directly against SharePoint by opening in Windows Explorer

Need to be careful about updating TFS

Export will export the branding files but has farm information in the files that makes it difficult to compare against TFS

Catalogs

Three main steps

Enabling lists or libraries as catalogs

Creating the catalog connection

Building the page layouts to display the category rollups or item detail pages

Enabling Catalogs

Doesnrsquot have to be a list can be a document Images or Pages library

Experimenting using a Pages library

This gives us draft and published states that lists donrsquot support

Preview and editing is easier

Fairly simple script to do this

Needs a full crawl after doing this

Creating the Catalog Connection

Rishan did some great work here

Scripts establish the connection and also update the term store as required

SharePoint Catalog Page Layouts

Uses the CSWP and Content Reuse web parts

Result sources defined in Search for each catalog connection

GUIDs for the result sources different in each farm and need to be updated as part of the deployment

REST Search Catalog Pages

HTML with data attributes on page layouts or in Reusable HTML

jQuery detects this

Builds a REST Search query based on the attributes and URL

Calls SharePoint

Uses Handlebars to format the results

Product Replacements

Video Player is part of the lib structure

Needs references added to the master page

Any hyperlink to an MP4 file launches the video popup

Image Rotator

Jeff is working on standardizing some jQuery slider options

Photo Viewer

No plans just yet

All of these will be part of the ESC package

Starting a New Project

Copy the five ESC scripts from $Envision Shakespeare CompanyBuilder Do not rename

Copy the ShakespeareBuild scripts Rename to your project Update the steps as required for your project

Create the infrastructure WSP Site columns content types list definitions and instances

Manually create the pages and assets that are needed in SharePoint Manually create the term store for metadata and navigation Script the extraction to TFS of content and term store Create the branding WSP Manually create any required web parts Export to TFS and script the placement of the web parts on the pages

ESC Scripts Next Steps

Incorporate TMX additions Farm property bag instead of webconfig Audiences Subsites Available layouts Permissions Extract folders and lists

Continue reconciling additional projects in OMA TMX Christie Medical

Full header blocks and commenting Version numbers Complete the catalog connection script Office 365 support

Links

wwwenvisionitcom

blogpetercarsonca

wwwenvisionitcomshakespeare

httpsShakespeareenvisionitcom

wwwbgccancom

wwwproblemgamblingca

wwwrusselmetalscom

wwwtarioncom

wwwtransamericaca

wwwcollegeofececa

wwwsamuelcom

wwwthewaterfrontpropertiesca

wwwshopsatdonmillsca

wwwfuturesherwaygardensca

wwwpublichealthontarioca

SharePoint WCM Glossary

SharePoint Glossary

Term Definition

SharePoint Farm A set of SharePoint servers that share a single configuration database

Web Application A top level container and entry-point URLs for site collections

Site Collection A set of Web sites that are in the same content database have the same owner and share administration settings A site collection can be identified by a GUID or the URL of the top-level site for the site collection Each site collection contains a top-level site can contain one or more subsites and can have a shared navigation structure

Path Based Site Collection A site collection under a managed pathhttpwebappsitessitecollection

Host Named Site Collection A site collection with its own unique URL Must be created through PowerShell

Site Subsite under a site collection

Site Template A template for a single site that has been saved from another site Site templates may or may not contain content Templates cannot be created from publishing sites

SharePoint Glossary

Term Definition

Site Column A single field that can store information of a particular typebull Textbull Choicebull Numberbull hellipDefined at the site collection level

Content Type A content type is a reusable collection of Site Columns that can be applied to a certain category of content Content types enable the management of metadata and behaviors of a document or item type in a centralized reusable way Basically content types include the columns (or fields) that are applied to a certain type of content plus other optional settings such as a document template

Document Set New content type in SharePoint 2010 A document set is a container for multiple documents to which you can assign certain metadata and treat as a single entity in many ways In addition a document set can contain one or more different content types

SharePoint Glossary

Term Definition

List A container for list content types or custom list items Columns can be defined via content types or directly in the list

Document Library A SharePoint list that contains documents where you can create collect update and share files with others Like lists columns can be defined via content types or directly in the list

Form Library A special type of library to facilitate the interaction with InfoPath forms

Asset Library A library typically used to store image audio and video files

List Template A template used to define the configuration of a list or library Templates can be saved with or without content

SharePoint Glossary

Term Definition

Term Store An instance of the Managed Metadata Service This can be shared between sites site collections web applications or farms

Group A collection of term sets

Term Set A collection of related terms

Term A word or a phrase that can be associated with a SharePoint item

Friendly URL An SEO friendly URL defined in the term store for a page rather than the physical URL of where the page is stored (Pages)

SharePoint Glossary

Term Definition

Design Manager 2013 feature used to manipulate WCM artifacts

Master Page Defines elements that are common to all pages such as the header navigation and footer

Page Layout Defines the layout of a particular style of page such as news or events Each page content type can have one or more layouts associated with them

Web Parts Functional elements that can be added to pages typically for dynamic content

Apps Similar to web parts but run outside of SharePoint while beinghosted in the SharePoint page

Publishing Site Page Rendering

FileName

Welcomeaspx

PageLayout

PageLayoutaspx

Title

Welcome To News

Body

Lorem ipsum dolor sit

Image

ImagesChairjpg

1 Welcomeaspx page is

requested

2 Page layout associated with

page is retrieved

3 Master page associated with site

is retrieved

4 Controls in page layout render

content from pagersquos fields into the page

MasterPagemaster

PageLayoutaspxTitle

BodyImage

Date

ByLine

Field Control

FieldControl

Field ControlField ControlField Control

Field Control

httpfoocombarpageswelcomeaspx

SharePoint Glossary

Term Definition

Cross-Site Publishing Publishing from an authoring site collection to one or more publishing site collections

Catalog A list that has been published as a catalog

Category Page A page that displays a rollup of catalog items

Catalog Item Page A page that displays a single item from a catalog

Display Template Used to format the results on search pages in content search web parts and on category pages

Whatrsquos New in Web Content

Management

Easier Page Authoring With Cut and Paste

Drag and Drop Files

Drag and drop files from Windows Explorer into the browser or the other way

Doesnrsquot support folders or document sets

Open in Windows Explorer still works best for this

Requires IE10 or current versions of Chrome Safari or Firefox

IE8 and 9 supported with Office 2013 installed

Image Renditions

Display uploaded images in predefined sizes widths and crops

Multiple renditions stored in document sets

Content author can create renditions (including crops) in the browser

Design Manager

New way to build master

pages and layouts

SharePoint Designer no

longer required

Edit and preview in any HTML

editor

Automatically creates the associated

master page and aspx

layouts

Package into a Design

Package WSP for

deployment

Snippet Gallery

Select components

such as search box or

navigation control

Configure its properties

Paste the snippet into your HTML

master page or layout

Changes synched to

actual master pages and layouts to convert to SharePoint

components

Can be used by any web design

tool

Device Channels

Map channels to mobile devices or browsers

Alternate master pages

can be assigned

Page layouts can include or

exclude content based

on channel

Display Templates

Used to customize the

presentation of search results

No more XSLT

Three templates

bull Control ndash Overall structure of search results

bull Group ndash Show groups of results

bull Item ndash How each result is presented

Navigation and Friendly URLs

Site navigation driven by managed metadata

Term store used for navigation and SEO-friendly URLs

Connect site navigation to business concepts rather than site structure

Server side control outputs HTML for top nav left nav and breadcrumb

Plan is to convert to client-side to support Office 365

Term Store Setup

Two groups used to separate metadata from navigation

Metadata group setup globally

Static GUIDs consistent through all environments

Navigation group setup at the site collection level

Allows multiple copies for multiple sites on the farm

Search

Search is new and different from all previous versions of SharePoint

The platform has been consolidated Built on a combination of FAST Search and SharePoint Search components as well as new development work ndash it is the

same from Foundation to Server

Foundation Search is intended to replace WSS Search Microsoft Search Server and Search Server Express from previous versions of SharePoint

Itrsquos used pervasively throughout the product now in many different ways in different features eDiscovery navigation topic pages Internet facing business sites etc

Search in SharePoint 2013

Single Extensible Platform

FAST Engine

SharePoint Crawler

Best of both

Same Search Platform in both SharePoint and Exchange

Enterprise Search

Search Page Web parts added to a publishing page

Catalogs Cross-site publishing

Library search Executes in place on the library

Site Search _layouts15osssearchresultsaspx Specifies the site and search parameters

Search Centre Basic Search Center - SharePoint Foundation 2013 Enterprise Search Center - SharePoint Server 2013

Content Search Web Part

Similar in concept to the Content Query Web Part

Many advantages

Can go across sites site collections web apps even farms

Leverages the search index -gt very scalable

Query Builder makes it easy to define your results

Use Display Templates to customize the look and feel No more XSLT

Part of the Enterprise CAL

Pre-Configured CSWPs

Popular Items Shows items that have been recently viewed by many users

Recently Changed Items Shows items that have been modified recently This can help site users

track the latest activity on a site or a library

Recommended Items Show content recommendations based on usage patterns for the current

page

All of these can be further configured by editing their properties and changing the search criteria

Search Results Web Part

Similar functionality to the Content Search Web Part

Doesnrsquot allow property mapping in the web part configuration

Mapping is controlled in the Display Template

Part of the Standard CAL

Category Page Item Page

Catalogs

wwwcontosocomproductsAudio-Liware2g

Catalogs

Results

Consistent Displays

Manage content in one place

No need to create

pages

No need to format

Metadata Navigation

Cross-Site Publishing

Reuse content between different sites including site collections and farms

Catalogs can surface lists into publishing sites onto a category page and item pages

Can be surfaced through the Content Search Web Part

No need to create and publish web pages

Create custom friendly URLs

Metadata based navigation base

Cross Site Publishing

Job Posting

Job Posting

Job Posting

Job Posting

Simcoe County District School Board

50000 students

Over 6000 employees

Board office in Barrie

Bordered by the Holland Marsh in the south the Trent-Severn Waterway in the east Grey County in the west and Muskoka in the north

Simcoe County District School Board

119 schools and centres 87 elementary 16 secondary 6 learning centres 10 alternative

Each needs their own web site Being built on SharePoint 2013 Elementary panel first Each has their own unique URL Content authored both at the school and centrally from the board

wwwscdsbonca Pre-existing SharePoint 2010 site Future goal is to rebuild in SharePoint 2013

Business Challenge

100+ public web sites

No standardization on style technology or content

No ability for the board to push content to the school sites

Outdated sites

Not mobile or AODA compliant

Site Features

Fully Adaptivemobile design Robust Search functionality Template makes it fast and efficient to add new school sites News and events can be targeted by the Board to any number of

school sites Target by panel weather zone trustee language Presented in a blended view with the school news and events

Home page rotator links hours content pages all managed by the school staff

SEO-friendly URLs

News

School news entered by school staff

Board news entered in the board site

Rendered using cross-site publishing

High-priority alerts can be flagged to highlight on the site

Bus or school cancellations

Events

Single and multi-day events

School and board managed like news

Adaptive calendar

School Picker

Used to pick which schools to target news and events to

Schools are tagged through the term store

Target by panel weather zone trustee language

Can override and add or remove individual schools

Search

Catalogs

Three main steps

Enabling lists or libraries as catalogs

Creating the catalog connection

Building the page layouts to display the category rollups or item detail pages

Enabling Catalogs

Doesnrsquot have to be a list can be a document Images or Pages library

Experimenting using a Pages library

This gives us draft and published states that lists donrsquot support

Preview and editing is easier

Fairly simple script to do this

Catalog connections are more complex

Create the connection

Fix up the Term Store

Create the Category and Item page layouts and pages

SEO Enhancements

Friendly URLs

Home page redirects

XML sitemaps automatically generated and updated

Custom SEO properties

Usage Analytics

Built for scale from the ground up Detail data rolled up every 15 days amp anonymized Daily events purged every 15 days monthly events after 3 years Lifetime counts always retained

Counts views amp unique itemsday Shows recent (2-weeks) and lifetime count Trims least visited content Pushes aggregate data to reporting database

Drives recommendations capabilities on content Calculations injected into search index as sortable managed properties Deep integration with search engine Can influence search relevance based on content usage

Variations and Multi-Lingual

Export and import content for translation in XLIFF format

Pages

Labels

List items

Navigation

Bing translation service comes with active SharePoint 2013 license

Adaptive Web Design

Adaptive vs Responsive

Adaptive

Fixed breakpoints‒ Desktop gt 980 px

‒ Table portrait gt 768 px

‒ Phone to tablet gt 480 px lt 768 px

‒ Smartphone lt 480 px

Responsive

No fixed breakpoints

Design fluidly adapts to whatever width the browser is

We generally do a hybrid approach with responsive design in the under 768 pixel situation

Design Approaches in SharePoint

Adaptive Design through CSS media queries

Broader standards approach used outside of SharePoint

Keeps a single master page and CSS

Some unnecessary components may still be loaded

Device Channels SharePoint specific approach

Assign different master pages to different device channels

Rules define what devices use which channels

Device Channel Panels can also target content to channels

Hybrid here can also make sense Device channels can be used to remove unnecessary items from the page payload

Our Adaptive Approach

Built using the Twitter Boostrap CSS framework

twittergithubcombootstrap

Provides a responsive design framework for supporting PC Mac tablet and mobile

We enhanced to provide better touch navigation support

Can be leveraged in the master page page layouts and display templates

Incorporated into the SharePoint 2013 Design Master

HTML based master page that can be edited with any tool

SharePoint converts to a master page when uploaded or saved

Additional Open Source Tools and Resources

HTML CSS JavaScript jQuery

httpwwww3schoolscom

httpgetbootstrapcom

httphandlebarsjscom

httpknockoutjscom

httpsangularjsorg

httpmomentjscom

Content Search Web Part

Web part is configured to return search results

Executed as client-side code in the browser

Pair of display templates map the data returned to HTML

Control template for the overall structure

Item template for each item returned

HTML Designer Manager files are compiled to JavaScript

REST Search and Handlebars

Search is accessible through REST calls

httpsiteurl_apisearchquery

Returns results as a JSON array

Handlebars is a templating engine to format that

Conceptually similar to display templates with control and item sections

jQuery glues this all together

Steps to Experiment

F12 to get into Developer Toolbar

Set a breakpoint where the REST URL is determined

Copy the value

Paste into the REST Search test window

Experiment with the query

Adjust the Handlebars template appropriately

Search Setup

Content Sources to define and schedule the crawls

Crawl logs to review success

Search Schema to define the managed properties

Reusable Content

Snippets of HTML that can be reused throughout the site

JavaScript can be intelligent and use the URL to determine its behaviour

Makes it easy for content authors to drop pre-configured dynamic content onto pages

Topic Pages

Shows all items that match a topic

Could be hundreds of virtual pages

Only one template page

Easily customizable and SEO friendly (each topic appears to be its own page)

Content by search web part open search against a query or result source

May be able to surface the topic pages themselves as site search results

Public Health Ontario

httpwwwpublichealthontariocaenBrowseByTopicPagesTopicaspxk=Influenza20InformationByTopic22Influenza22

Ontario Association of Childrens Aid Societies

Application Lifecycle Management

Purpose

How do we build a solid SharePoint development environment for the enterprise

How do a number of developers work together on a SharePoint project

How does code and content move through a dev test and production lifecycle

What is Agile and Continuous Integration and why is it important

Visual Studio and Team Foundation Server

Visual Studio 2010 is the development platform for coding on SharePoint 2010

Team Foundation Server integrates with Visual Studio to provide a repository for code test and other project artifacts

It facilitates teamwork by providing a common place for developers to work together

Provisioning SharePoint Farms

Provisioning SharePoint Farms

Every developer needs their own complete SharePoint farm

Teams need a dev integration farm to bring their work together on

A full architecture needs QA and production farms as well

Envision IT Virtualization Architecture

Developer VM Template

SharePoint Server 2010 Enterprise

SP1 and August CU

Visual Studio 2010 Premium SP1

Office 2010 Professional Plus SP1

SharePoint Designer 2010 SP1

Fiddler

SQL Server 2008 R2 SP1

Creating a new Developer VM

Open System Centre Virtual Machine Manager

Create Virtual Machine

Choose the Developer VM template

Set the virtual machine name and options

Create and start the VM

Creating a new Developer VM - Step 2

Developer RDPs to their new VM Complete the SQL Server installation

Create the default instance Set the service account(s) Set the authentication mode and server administrators

Update the AutoSPInstallerInputxml file Set the machine name for the default sites and database server Set the service account passwords

Run the AutoSPInstallerLaunch batch file Do a Health check review

Creating a new Developer VM - Step 3

Start Visual Studio

Connect to the Team Foundation Server

Setup your workspaces

Use a standard naming convention across your team

CDevelopmentTFSCollection

Other Environments

Dev Integration QA and Production can all be built using AutoSPInstall

Donrsquot need or want the Visual Studio or Office tools on these servers

We have a base template we use for dev integration servers

QA should match the Prod architecture as closely as possible

High availability with load balancing clustered SQL app servers DMZ hardening Internet publishing

Agile Development

Agile with Team Foundation Server

Creating Your TFS Project

Open Visual Studio

Make sure you are connected to the right Team Project Collection

In Team Explorer right-click the top collection and create a new Team Project

Use the Scrum 10 template

Go into the Areas and Iterations Delete the extraneous releases and sprints

Create a product backlog iteration

Start adding your stories and tasks

Continuous Integration

Continuous Integration

Automated Testing

SharePoint Site Elements

Site structure Site columns content types subsites lists libraries

Branding elements Master pages layouts CSS XSLT supporting images

Custom web parts Page and site content Web part instances Search Workflows Business Connectivity Services Managed Metadata

SharePoint Site Elements ndash Part 2

Access Excel Word Visio

PerformancePoint

Document conversions

Timer jobs

Secure Store Service

User profiles

Site Structure

bull Site columns

bull Define the fields that are used by content types

bull Content types

bull Defines collections of site columns for different types of content

bull Subsites

bull The hierarchy of sites that make up the site collection

bull Lists and Libraries

bull The lists and libraries for each subsite

Site Structure ndash Part 2

Site columns and content types can be programmatically or manually created If they are going to be used in multiple site collections they should be

programmatically created

If a single site collection they can be created manually in a master site collection

GUIDs cannot be manually set and code may need them to be consistent

You can create them manually in SharePoint save the site as a template and import them into Visual Studio to create a proper WSP package

Site Structure ndash Part 3

Site structure can also be done either programmatically or manually

Many sites are complex and it is error prone to create manually

We use our own SiteModelBuilder tool to create the site structure

Site Structure ndash Part 4

For all site structure elements changes can also be manual or programmatic It is useful to be able to delete the whole site collection and recreate it

programmatically As soon as content starts being authored in SharePoint it becomes difficult

or impossible to do that

After content authoring has started Site column and content type changes need to be programmed explicitly

(you canrsquot just drop the content type and recreate it) Site structure changes are usually done manually at this point Changes need to be backed up and restored

Change Management

Page and Site Content

Page and site content is entered directly into SharePoint by the content authors Web pages images PDFs list content etc This should be done in the master site separate from where dev integration is

happening Care needs to be taken with this site once authors start working Make sure it is part of your production backup plan

Periodically back it up and restore it to the dev integration and developer VMs

Alternatively script the export and import Ultimately it will be backed up and restored to the QA and production

farms

Change Management

Change Management

Change Management

Change Management

Web part instances

Web parts ultimately get placed on pages

The configuration of the web parts can often get quite complex

You may want to disable editing of web parts for general content authors

They end up in a grey zone between code and content

Web part instances ndash Part 2

We created our own internal tool to export and import web parts

Each web partrsquos configuration can be exported into a webpartfile

We scripted the extraction from the dev integration

webpart files are treated like code and checked into TFS for version control

Script then applies the new webpart files to the target environment

Workflows

Workflows can be built using SharePoint Designer Visual Studio or third-party tools (Nintex or K2 primarily)

Visual Studio workflow projects are automatically packaged as WSP solution files Simply deploy the WSP file to the other environments

SharePoint Designer workflows need to be deployed using SharePoint Designer This means you need SPD access to production which is not always possible

You can load the SPD workflow into Visual Studio to package it but you lose the ability to edit it in SPD

If you use third-party tools yoursquoll need to define the process for that as well

Business Connectivity Services

BCS can be built using either SharePoint Designer or Visual Studio Visual Studio BCS projects are automatically packaged as WSP

solution files Simply deploy the WSP file to the other environments You can also export the BDC metadata model in the BDC service

application

SharePoint Designer doesnrsquot create a WSP and it doesnrsquot make a complete BDC metadata model You need to export and import using SharePoint Designer

In both cases you still need to deal with connection and configuration information

Future Directions

Visual Studio Lab Management

Integrates the management of HyperV environments in with Visual Studio and Team Foundation Server

Can automate the provisioning of lab environments for automated testing

Test failures can snapshot entire environments to make reproduction of errors much easier

Summary

Yoursquore going to have lots of SharePoint environments ndash figure out how to build them quickly and repeatable

Code and content often move in opposite directions through dev QA and Prod PowerShell script and automate to keep this simple

Agile is a great way to run projects

Continuous integration with automated testing is key to its success

There are lots of parts of SharePoint that you donrsquot code through Visual Studio Figure out how you move those through your environment

Other Topics

Site Design

Information architecture

Wireframes

Creative designs ndash Mobile first

Catalogs deep dive

Site build PowerShell scripts

Team Foundation Server and Application Lifecycle Management

Starting a new project

Managing content authoring

Site Improve tool

SEO Optimizations

Analytics options

Retaining Page Ranks with permanent redirects (301)

Azure SharePoint Hosting

Q amp A

Session Evaluations

Go to Evaluations on the home page of wwwcollabconorg

It is important to get your feedback

Please fill out evaluations for all the sessions you attend

Following the conference a random drawing from all completed evaluations will be selected

The winner will receive a $250 Future Shop gift card valid online or in store

Page 18: Web Content Management - CollabCon 2015 - Web... · Performances Complete Works ... Friendly URL An SEO friendly URL defined in the term store for a page, rather than ... What’s

Complete Script

Check and create the web app Check and create the site collection Import the term store Set the term store navigation Build the site structure Populate the content Catalogs Search Branding Web Parts

Other Scripts

Set Environment

Defines parameters for each of the environments

Typically has defaults intended for VM13 developer environment

Export the term store to XML

Export list or library content

Overview of ESC Scripts

ESCBuilder_DeployPackages

ESCBuilder_Helper

ESCBuilder_PopulateStructureContent

ESCBuilder_Search

Design Phase

MindMap Information Architecture

Axure Wireframes

PhotoShop or Illustrator Creative Designs

Site Columns and Content Types

Create directly through the SharePoint UI

Senior Consultant can do this in an initial empty devintegration environment

Export script exports these to XML files

Import into target envionments

Typically need Term Store configured as well for Managed Metadata columns

Branding Files

No longer in a Visual Studio WSP package

Simply a collection of files in the Builder folder

Still managed through TFS

Build script uploads and publishes these to the target site

Can edit directly against SharePoint by opening in Windows Explorer

Need to be careful about updating TFS

Export will export the branding files but has farm information in the files that makes it difficult to compare against TFS

Catalogs

Three main steps

Enabling lists or libraries as catalogs

Creating the catalog connection

Building the page layouts to display the category rollups or item detail pages

Enabling Catalogs

Doesnrsquot have to be a list can be a document Images or Pages library

Experimenting using a Pages library

This gives us draft and published states that lists donrsquot support

Preview and editing is easier

Fairly simple script to do this

Needs a full crawl after doing this

Creating the Catalog Connection

Rishan did some great work here

Scripts establish the connection and also update the term store as required

SharePoint Catalog Page Layouts

Uses the CSWP and Content Reuse web parts

Result sources defined in Search for each catalog connection

GUIDs for the result sources different in each farm and need to be updated as part of the deployment

REST Search Catalog Pages

HTML with data attributes on page layouts or in Reusable HTML

jQuery detects this

Builds a REST Search query based on the attributes and URL

Calls SharePoint

Uses Handlebars to format the results

Product Replacements

Video Player is part of the lib structure

Needs references added to the master page

Any hyperlink to an MP4 file launches the video popup

Image Rotator

Jeff is working on standardizing some jQuery slider options

Photo Viewer

No plans just yet

All of these will be part of the ESC package

Starting a New Project

Copy the five ESC scripts from $Envision Shakespeare CompanyBuilder Do not rename

Copy the ShakespeareBuild scripts Rename to your project Update the steps as required for your project

Create the infrastructure WSP Site columns content types list definitions and instances

Manually create the pages and assets that are needed in SharePoint Manually create the term store for metadata and navigation Script the extraction to TFS of content and term store Create the branding WSP Manually create any required web parts Export to TFS and script the placement of the web parts on the pages

ESC Scripts Next Steps

Incorporate TMX additions Farm property bag instead of webconfig Audiences Subsites Available layouts Permissions Extract folders and lists

Continue reconciling additional projects in OMA TMX Christie Medical

Full header blocks and commenting Version numbers Complete the catalog connection script Office 365 support

Links

wwwenvisionitcom

blogpetercarsonca

wwwenvisionitcomshakespeare

httpsShakespeareenvisionitcom

wwwbgccancom

wwwproblemgamblingca

wwwrusselmetalscom

wwwtarioncom

wwwtransamericaca

wwwcollegeofececa

wwwsamuelcom

wwwthewaterfrontpropertiesca

wwwshopsatdonmillsca

wwwfuturesherwaygardensca

wwwpublichealthontarioca

SharePoint WCM Glossary

SharePoint Glossary

Term Definition

SharePoint Farm A set of SharePoint servers that share a single configuration database

Web Application A top level container and entry-point URLs for site collections

Site Collection A set of Web sites that are in the same content database have the same owner and share administration settings A site collection can be identified by a GUID or the URL of the top-level site for the site collection Each site collection contains a top-level site can contain one or more subsites and can have a shared navigation structure

Path Based Site Collection A site collection under a managed pathhttpwebappsitessitecollection

Host Named Site Collection A site collection with its own unique URL Must be created through PowerShell

Site Subsite under a site collection

Site Template A template for a single site that has been saved from another site Site templates may or may not contain content Templates cannot be created from publishing sites

SharePoint Glossary

Term Definition

Site Column A single field that can store information of a particular typebull Textbull Choicebull Numberbull hellipDefined at the site collection level

Content Type A content type is a reusable collection of Site Columns that can be applied to a certain category of content Content types enable the management of metadata and behaviors of a document or item type in a centralized reusable way Basically content types include the columns (or fields) that are applied to a certain type of content plus other optional settings such as a document template

Document Set New content type in SharePoint 2010 A document set is a container for multiple documents to which you can assign certain metadata and treat as a single entity in many ways In addition a document set can contain one or more different content types

SharePoint Glossary

Term Definition

List A container for list content types or custom list items Columns can be defined via content types or directly in the list

Document Library A SharePoint list that contains documents where you can create collect update and share files with others Like lists columns can be defined via content types or directly in the list

Form Library A special type of library to facilitate the interaction with InfoPath forms

Asset Library A library typically used to store image audio and video files

List Template A template used to define the configuration of a list or library Templates can be saved with or without content

SharePoint Glossary

Term Definition

Term Store An instance of the Managed Metadata Service This can be shared between sites site collections web applications or farms

Group A collection of term sets

Term Set A collection of related terms

Term A word or a phrase that can be associated with a SharePoint item

Friendly URL An SEO friendly URL defined in the term store for a page rather than the physical URL of where the page is stored (Pages)

SharePoint Glossary

Term Definition

Design Manager 2013 feature used to manipulate WCM artifacts

Master Page Defines elements that are common to all pages such as the header navigation and footer

Page Layout Defines the layout of a particular style of page such as news or events Each page content type can have one or more layouts associated with them

Web Parts Functional elements that can be added to pages typically for dynamic content

Apps Similar to web parts but run outside of SharePoint while beinghosted in the SharePoint page

Publishing Site Page Rendering

FileName

Welcomeaspx

PageLayout

PageLayoutaspx

Title

Welcome To News

Body

Lorem ipsum dolor sit

Image

ImagesChairjpg

1 Welcomeaspx page is

requested

2 Page layout associated with

page is retrieved

3 Master page associated with site

is retrieved

4 Controls in page layout render

content from pagersquos fields into the page

MasterPagemaster

PageLayoutaspxTitle

BodyImage

Date

ByLine

Field Control

FieldControl

Field ControlField ControlField Control

Field Control

httpfoocombarpageswelcomeaspx

SharePoint Glossary

Term Definition

Cross-Site Publishing Publishing from an authoring site collection to one or more publishing site collections

Catalog A list that has been published as a catalog

Category Page A page that displays a rollup of catalog items

Catalog Item Page A page that displays a single item from a catalog

Display Template Used to format the results on search pages in content search web parts and on category pages

Whatrsquos New in Web Content

Management

Easier Page Authoring With Cut and Paste

Drag and Drop Files

Drag and drop files from Windows Explorer into the browser or the other way

Doesnrsquot support folders or document sets

Open in Windows Explorer still works best for this

Requires IE10 or current versions of Chrome Safari or Firefox

IE8 and 9 supported with Office 2013 installed

Image Renditions

Display uploaded images in predefined sizes widths and crops

Multiple renditions stored in document sets

Content author can create renditions (including crops) in the browser

Design Manager

New way to build master

pages and layouts

SharePoint Designer no

longer required

Edit and preview in any HTML

editor

Automatically creates the associated

master page and aspx

layouts

Package into a Design

Package WSP for

deployment

Snippet Gallery

Select components

such as search box or

navigation control

Configure its properties

Paste the snippet into your HTML

master page or layout

Changes synched to

actual master pages and layouts to convert to SharePoint

components

Can be used by any web design

tool

Device Channels

Map channels to mobile devices or browsers

Alternate master pages

can be assigned

Page layouts can include or

exclude content based

on channel

Display Templates

Used to customize the

presentation of search results

No more XSLT

Three templates

bull Control ndash Overall structure of search results

bull Group ndash Show groups of results

bull Item ndash How each result is presented

Navigation and Friendly URLs

Site navigation driven by managed metadata

Term store used for navigation and SEO-friendly URLs

Connect site navigation to business concepts rather than site structure

Server side control outputs HTML for top nav left nav and breadcrumb

Plan is to convert to client-side to support Office 365

Term Store Setup

Two groups used to separate metadata from navigation

Metadata group setup globally

Static GUIDs consistent through all environments

Navigation group setup at the site collection level

Allows multiple copies for multiple sites on the farm

Search

Search is new and different from all previous versions of SharePoint

The platform has been consolidated Built on a combination of FAST Search and SharePoint Search components as well as new development work ndash it is the

same from Foundation to Server

Foundation Search is intended to replace WSS Search Microsoft Search Server and Search Server Express from previous versions of SharePoint

Itrsquos used pervasively throughout the product now in many different ways in different features eDiscovery navigation topic pages Internet facing business sites etc

Search in SharePoint 2013

Single Extensible Platform

FAST Engine

SharePoint Crawler

Best of both

Same Search Platform in both SharePoint and Exchange

Enterprise Search

Search Page Web parts added to a publishing page

Catalogs Cross-site publishing

Library search Executes in place on the library

Site Search _layouts15osssearchresultsaspx Specifies the site and search parameters

Search Centre Basic Search Center - SharePoint Foundation 2013 Enterprise Search Center - SharePoint Server 2013

Content Search Web Part

Similar in concept to the Content Query Web Part

Many advantages

Can go across sites site collections web apps even farms

Leverages the search index -gt very scalable

Query Builder makes it easy to define your results

Use Display Templates to customize the look and feel No more XSLT

Part of the Enterprise CAL

Pre-Configured CSWPs

Popular Items Shows items that have been recently viewed by many users

Recently Changed Items Shows items that have been modified recently This can help site users

track the latest activity on a site or a library

Recommended Items Show content recommendations based on usage patterns for the current

page

All of these can be further configured by editing their properties and changing the search criteria

Search Results Web Part

Similar functionality to the Content Search Web Part

Doesnrsquot allow property mapping in the web part configuration

Mapping is controlled in the Display Template

Part of the Standard CAL

Category Page Item Page

Catalogs

wwwcontosocomproductsAudio-Liware2g

Catalogs

Results

Consistent Displays

Manage content in one place

No need to create

pages

No need to format

Metadata Navigation

Cross-Site Publishing

Reuse content between different sites including site collections and farms

Catalogs can surface lists into publishing sites onto a category page and item pages

Can be surfaced through the Content Search Web Part

No need to create and publish web pages

Create custom friendly URLs

Metadata based navigation base

Cross Site Publishing

Job Posting

Job Posting

Job Posting

Job Posting

Simcoe County District School Board

50000 students

Over 6000 employees

Board office in Barrie

Bordered by the Holland Marsh in the south the Trent-Severn Waterway in the east Grey County in the west and Muskoka in the north

Simcoe County District School Board

119 schools and centres 87 elementary 16 secondary 6 learning centres 10 alternative

Each needs their own web site Being built on SharePoint 2013 Elementary panel first Each has their own unique URL Content authored both at the school and centrally from the board

wwwscdsbonca Pre-existing SharePoint 2010 site Future goal is to rebuild in SharePoint 2013

Business Challenge

100+ public web sites

No standardization on style technology or content

No ability for the board to push content to the school sites

Outdated sites

Not mobile or AODA compliant

Site Features

Fully Adaptivemobile design Robust Search functionality Template makes it fast and efficient to add new school sites News and events can be targeted by the Board to any number of

school sites Target by panel weather zone trustee language Presented in a blended view with the school news and events

Home page rotator links hours content pages all managed by the school staff

SEO-friendly URLs

News

School news entered by school staff

Board news entered in the board site

Rendered using cross-site publishing

High-priority alerts can be flagged to highlight on the site

Bus or school cancellations

Events

Single and multi-day events

School and board managed like news

Adaptive calendar

School Picker

Used to pick which schools to target news and events to

Schools are tagged through the term store

Target by panel weather zone trustee language

Can override and add or remove individual schools

Search

Catalogs

Three main steps

Enabling lists or libraries as catalogs

Creating the catalog connection

Building the page layouts to display the category rollups or item detail pages

Enabling Catalogs

Doesnrsquot have to be a list can be a document Images or Pages library

Experimenting using a Pages library

This gives us draft and published states that lists donrsquot support

Preview and editing is easier

Fairly simple script to do this

Catalog connections are more complex

Create the connection

Fix up the Term Store

Create the Category and Item page layouts and pages

SEO Enhancements

Friendly URLs

Home page redirects

XML sitemaps automatically generated and updated

Custom SEO properties

Usage Analytics

Built for scale from the ground up Detail data rolled up every 15 days amp anonymized Daily events purged every 15 days monthly events after 3 years Lifetime counts always retained

Counts views amp unique itemsday Shows recent (2-weeks) and lifetime count Trims least visited content Pushes aggregate data to reporting database

Drives recommendations capabilities on content Calculations injected into search index as sortable managed properties Deep integration with search engine Can influence search relevance based on content usage

Variations and Multi-Lingual

Export and import content for translation in XLIFF format

Pages

Labels

List items

Navigation

Bing translation service comes with active SharePoint 2013 license

Adaptive Web Design

Adaptive vs Responsive

Adaptive

Fixed breakpoints‒ Desktop gt 980 px

‒ Table portrait gt 768 px

‒ Phone to tablet gt 480 px lt 768 px

‒ Smartphone lt 480 px

Responsive

No fixed breakpoints

Design fluidly adapts to whatever width the browser is

We generally do a hybrid approach with responsive design in the under 768 pixel situation

Design Approaches in SharePoint

Adaptive Design through CSS media queries

Broader standards approach used outside of SharePoint

Keeps a single master page and CSS

Some unnecessary components may still be loaded

Device Channels SharePoint specific approach

Assign different master pages to different device channels

Rules define what devices use which channels

Device Channel Panels can also target content to channels

Hybrid here can also make sense Device channels can be used to remove unnecessary items from the page payload

Our Adaptive Approach

Built using the Twitter Boostrap CSS framework

twittergithubcombootstrap

Provides a responsive design framework for supporting PC Mac tablet and mobile

We enhanced to provide better touch navigation support

Can be leveraged in the master page page layouts and display templates

Incorporated into the SharePoint 2013 Design Master

HTML based master page that can be edited with any tool

SharePoint converts to a master page when uploaded or saved

Additional Open Source Tools and Resources

HTML CSS JavaScript jQuery

httpwwww3schoolscom

httpgetbootstrapcom

httphandlebarsjscom

httpknockoutjscom

httpsangularjsorg

httpmomentjscom

Content Search Web Part

Web part is configured to return search results

Executed as client-side code in the browser

Pair of display templates map the data returned to HTML

Control template for the overall structure

Item template for each item returned

HTML Designer Manager files are compiled to JavaScript

REST Search and Handlebars

Search is accessible through REST calls

httpsiteurl_apisearchquery

Returns results as a JSON array

Handlebars is a templating engine to format that

Conceptually similar to display templates with control and item sections

jQuery glues this all together

Steps to Experiment

F12 to get into Developer Toolbar

Set a breakpoint where the REST URL is determined

Copy the value

Paste into the REST Search test window

Experiment with the query

Adjust the Handlebars template appropriately

Search Setup

Content Sources to define and schedule the crawls

Crawl logs to review success

Search Schema to define the managed properties

Reusable Content

Snippets of HTML that can be reused throughout the site

JavaScript can be intelligent and use the URL to determine its behaviour

Makes it easy for content authors to drop pre-configured dynamic content onto pages

Topic Pages

Shows all items that match a topic

Could be hundreds of virtual pages

Only one template page

Easily customizable and SEO friendly (each topic appears to be its own page)

Content by search web part open search against a query or result source

May be able to surface the topic pages themselves as site search results

Public Health Ontario

httpwwwpublichealthontariocaenBrowseByTopicPagesTopicaspxk=Influenza20InformationByTopic22Influenza22

Ontario Association of Childrens Aid Societies

Application Lifecycle Management

Purpose

How do we build a solid SharePoint development environment for the enterprise

How do a number of developers work together on a SharePoint project

How does code and content move through a dev test and production lifecycle

What is Agile and Continuous Integration and why is it important

Visual Studio and Team Foundation Server

Visual Studio 2010 is the development platform for coding on SharePoint 2010

Team Foundation Server integrates with Visual Studio to provide a repository for code test and other project artifacts

It facilitates teamwork by providing a common place for developers to work together

Provisioning SharePoint Farms

Provisioning SharePoint Farms

Every developer needs their own complete SharePoint farm

Teams need a dev integration farm to bring their work together on

A full architecture needs QA and production farms as well

Envision IT Virtualization Architecture

Developer VM Template

SharePoint Server 2010 Enterprise

SP1 and August CU

Visual Studio 2010 Premium SP1

Office 2010 Professional Plus SP1

SharePoint Designer 2010 SP1

Fiddler

SQL Server 2008 R2 SP1

Creating a new Developer VM

Open System Centre Virtual Machine Manager

Create Virtual Machine

Choose the Developer VM template

Set the virtual machine name and options

Create and start the VM

Creating a new Developer VM - Step 2

Developer RDPs to their new VM Complete the SQL Server installation

Create the default instance Set the service account(s) Set the authentication mode and server administrators

Update the AutoSPInstallerInputxml file Set the machine name for the default sites and database server Set the service account passwords

Run the AutoSPInstallerLaunch batch file Do a Health check review

Creating a new Developer VM - Step 3

Start Visual Studio

Connect to the Team Foundation Server

Setup your workspaces

Use a standard naming convention across your team

CDevelopmentTFSCollection

Other Environments

Dev Integration QA and Production can all be built using AutoSPInstall

Donrsquot need or want the Visual Studio or Office tools on these servers

We have a base template we use for dev integration servers

QA should match the Prod architecture as closely as possible

High availability with load balancing clustered SQL app servers DMZ hardening Internet publishing

Agile Development

Agile with Team Foundation Server

Creating Your TFS Project

Open Visual Studio

Make sure you are connected to the right Team Project Collection

In Team Explorer right-click the top collection and create a new Team Project

Use the Scrum 10 template

Go into the Areas and Iterations Delete the extraneous releases and sprints

Create a product backlog iteration

Start adding your stories and tasks

Continuous Integration

Continuous Integration

Automated Testing

SharePoint Site Elements

Site structure Site columns content types subsites lists libraries

Branding elements Master pages layouts CSS XSLT supporting images

Custom web parts Page and site content Web part instances Search Workflows Business Connectivity Services Managed Metadata

SharePoint Site Elements ndash Part 2

Access Excel Word Visio

PerformancePoint

Document conversions

Timer jobs

Secure Store Service

User profiles

Site Structure

bull Site columns

bull Define the fields that are used by content types

bull Content types

bull Defines collections of site columns for different types of content

bull Subsites

bull The hierarchy of sites that make up the site collection

bull Lists and Libraries

bull The lists and libraries for each subsite

Site Structure ndash Part 2

Site columns and content types can be programmatically or manually created If they are going to be used in multiple site collections they should be

programmatically created

If a single site collection they can be created manually in a master site collection

GUIDs cannot be manually set and code may need them to be consistent

You can create them manually in SharePoint save the site as a template and import them into Visual Studio to create a proper WSP package

Site Structure ndash Part 3

Site structure can also be done either programmatically or manually

Many sites are complex and it is error prone to create manually

We use our own SiteModelBuilder tool to create the site structure

Site Structure ndash Part 4

For all site structure elements changes can also be manual or programmatic It is useful to be able to delete the whole site collection and recreate it

programmatically As soon as content starts being authored in SharePoint it becomes difficult

or impossible to do that

After content authoring has started Site column and content type changes need to be programmed explicitly

(you canrsquot just drop the content type and recreate it) Site structure changes are usually done manually at this point Changes need to be backed up and restored

Change Management

Page and Site Content

Page and site content is entered directly into SharePoint by the content authors Web pages images PDFs list content etc This should be done in the master site separate from where dev integration is

happening Care needs to be taken with this site once authors start working Make sure it is part of your production backup plan

Periodically back it up and restore it to the dev integration and developer VMs

Alternatively script the export and import Ultimately it will be backed up and restored to the QA and production

farms

Change Management

Change Management

Change Management

Change Management

Web part instances

Web parts ultimately get placed on pages

The configuration of the web parts can often get quite complex

You may want to disable editing of web parts for general content authors

They end up in a grey zone between code and content

Web part instances ndash Part 2

We created our own internal tool to export and import web parts

Each web partrsquos configuration can be exported into a webpartfile

We scripted the extraction from the dev integration

webpart files are treated like code and checked into TFS for version control

Script then applies the new webpart files to the target environment

Workflows

Workflows can be built using SharePoint Designer Visual Studio or third-party tools (Nintex or K2 primarily)

Visual Studio workflow projects are automatically packaged as WSP solution files Simply deploy the WSP file to the other environments

SharePoint Designer workflows need to be deployed using SharePoint Designer This means you need SPD access to production which is not always possible

You can load the SPD workflow into Visual Studio to package it but you lose the ability to edit it in SPD

If you use third-party tools yoursquoll need to define the process for that as well

Business Connectivity Services

BCS can be built using either SharePoint Designer or Visual Studio Visual Studio BCS projects are automatically packaged as WSP

solution files Simply deploy the WSP file to the other environments You can also export the BDC metadata model in the BDC service

application

SharePoint Designer doesnrsquot create a WSP and it doesnrsquot make a complete BDC metadata model You need to export and import using SharePoint Designer

In both cases you still need to deal with connection and configuration information

Future Directions

Visual Studio Lab Management

Integrates the management of HyperV environments in with Visual Studio and Team Foundation Server

Can automate the provisioning of lab environments for automated testing

Test failures can snapshot entire environments to make reproduction of errors much easier

Summary

Yoursquore going to have lots of SharePoint environments ndash figure out how to build them quickly and repeatable

Code and content often move in opposite directions through dev QA and Prod PowerShell script and automate to keep this simple

Agile is a great way to run projects

Continuous integration with automated testing is key to its success

There are lots of parts of SharePoint that you donrsquot code through Visual Studio Figure out how you move those through your environment

Other Topics

Site Design

Information architecture

Wireframes

Creative designs ndash Mobile first

Catalogs deep dive

Site build PowerShell scripts

Team Foundation Server and Application Lifecycle Management

Starting a new project

Managing content authoring

Site Improve tool

SEO Optimizations

Analytics options

Retaining Page Ranks with permanent redirects (301)

Azure SharePoint Hosting

Q amp A

Session Evaluations

Go to Evaluations on the home page of wwwcollabconorg

It is important to get your feedback

Please fill out evaluations for all the sessions you attend

Following the conference a random drawing from all completed evaluations will be selected

The winner will receive a $250 Future Shop gift card valid online or in store

Page 19: Web Content Management - CollabCon 2015 - Web... · Performances Complete Works ... Friendly URL An SEO friendly URL defined in the term store for a page, rather than ... What’s

Other Scripts

Set Environment

Defines parameters for each of the environments

Typically has defaults intended for VM13 developer environment

Export the term store to XML

Export list or library content

Overview of ESC Scripts

ESCBuilder_DeployPackages

ESCBuilder_Helper

ESCBuilder_PopulateStructureContent

ESCBuilder_Search

Design Phase

MindMap Information Architecture

Axure Wireframes

PhotoShop or Illustrator Creative Designs

Site Columns and Content Types

Create directly through the SharePoint UI

Senior Consultant can do this in an initial empty devintegration environment

Export script exports these to XML files

Import into target envionments

Typically need Term Store configured as well for Managed Metadata columns

Branding Files

No longer in a Visual Studio WSP package

Simply a collection of files in the Builder folder

Still managed through TFS

Build script uploads and publishes these to the target site

Can edit directly against SharePoint by opening in Windows Explorer

Need to be careful about updating TFS

Export will export the branding files but has farm information in the files that makes it difficult to compare against TFS

Catalogs

Three main steps

Enabling lists or libraries as catalogs

Creating the catalog connection

Building the page layouts to display the category rollups or item detail pages

Enabling Catalogs

Doesnrsquot have to be a list can be a document Images or Pages library

Experimenting using a Pages library

This gives us draft and published states that lists donrsquot support

Preview and editing is easier

Fairly simple script to do this

Needs a full crawl after doing this

Creating the Catalog Connection

Rishan did some great work here

Scripts establish the connection and also update the term store as required

SharePoint Catalog Page Layouts

Uses the CSWP and Content Reuse web parts

Result sources defined in Search for each catalog connection

GUIDs for the result sources different in each farm and need to be updated as part of the deployment

REST Search Catalog Pages

HTML with data attributes on page layouts or in Reusable HTML

jQuery detects this

Builds a REST Search query based on the attributes and URL

Calls SharePoint

Uses Handlebars to format the results

Product Replacements

Video Player is part of the lib structure

Needs references added to the master page

Any hyperlink to an MP4 file launches the video popup

Image Rotator

Jeff is working on standardizing some jQuery slider options

Photo Viewer

No plans just yet

All of these will be part of the ESC package

Starting a New Project

Copy the five ESC scripts from $Envision Shakespeare CompanyBuilder Do not rename

Copy the ShakespeareBuild scripts Rename to your project Update the steps as required for your project

Create the infrastructure WSP Site columns content types list definitions and instances

Manually create the pages and assets that are needed in SharePoint Manually create the term store for metadata and navigation Script the extraction to TFS of content and term store Create the branding WSP Manually create any required web parts Export to TFS and script the placement of the web parts on the pages

ESC Scripts Next Steps

Incorporate TMX additions Farm property bag instead of webconfig Audiences Subsites Available layouts Permissions Extract folders and lists

Continue reconciling additional projects in OMA TMX Christie Medical

Full header blocks and commenting Version numbers Complete the catalog connection script Office 365 support

Links

wwwenvisionitcom

blogpetercarsonca

wwwenvisionitcomshakespeare

httpsShakespeareenvisionitcom

wwwbgccancom

wwwproblemgamblingca

wwwrusselmetalscom

wwwtarioncom

wwwtransamericaca

wwwcollegeofececa

wwwsamuelcom

wwwthewaterfrontpropertiesca

wwwshopsatdonmillsca

wwwfuturesherwaygardensca

wwwpublichealthontarioca

SharePoint WCM Glossary

SharePoint Glossary

Term Definition

SharePoint Farm A set of SharePoint servers that share a single configuration database

Web Application A top level container and entry-point URLs for site collections

Site Collection A set of Web sites that are in the same content database have the same owner and share administration settings A site collection can be identified by a GUID or the URL of the top-level site for the site collection Each site collection contains a top-level site can contain one or more subsites and can have a shared navigation structure

Path Based Site Collection A site collection under a managed pathhttpwebappsitessitecollection

Host Named Site Collection A site collection with its own unique URL Must be created through PowerShell

Site Subsite under a site collection

Site Template A template for a single site that has been saved from another site Site templates may or may not contain content Templates cannot be created from publishing sites

SharePoint Glossary

Term Definition

Site Column A single field that can store information of a particular typebull Textbull Choicebull Numberbull hellipDefined at the site collection level

Content Type A content type is a reusable collection of Site Columns that can be applied to a certain category of content Content types enable the management of metadata and behaviors of a document or item type in a centralized reusable way Basically content types include the columns (or fields) that are applied to a certain type of content plus other optional settings such as a document template

Document Set New content type in SharePoint 2010 A document set is a container for multiple documents to which you can assign certain metadata and treat as a single entity in many ways In addition a document set can contain one or more different content types

SharePoint Glossary

Term Definition

List A container for list content types or custom list items Columns can be defined via content types or directly in the list

Document Library A SharePoint list that contains documents where you can create collect update and share files with others Like lists columns can be defined via content types or directly in the list

Form Library A special type of library to facilitate the interaction with InfoPath forms

Asset Library A library typically used to store image audio and video files

List Template A template used to define the configuration of a list or library Templates can be saved with or without content

SharePoint Glossary

Term Definition

Term Store An instance of the Managed Metadata Service This can be shared between sites site collections web applications or farms

Group A collection of term sets

Term Set A collection of related terms

Term A word or a phrase that can be associated with a SharePoint item

Friendly URL An SEO friendly URL defined in the term store for a page rather than the physical URL of where the page is stored (Pages)

SharePoint Glossary

Term Definition

Design Manager 2013 feature used to manipulate WCM artifacts

Master Page Defines elements that are common to all pages such as the header navigation and footer

Page Layout Defines the layout of a particular style of page such as news or events Each page content type can have one or more layouts associated with them

Web Parts Functional elements that can be added to pages typically for dynamic content

Apps Similar to web parts but run outside of SharePoint while beinghosted in the SharePoint page

Publishing Site Page Rendering

FileName

Welcomeaspx

PageLayout

PageLayoutaspx

Title

Welcome To News

Body

Lorem ipsum dolor sit

Image

ImagesChairjpg

1 Welcomeaspx page is

requested

2 Page layout associated with

page is retrieved

3 Master page associated with site

is retrieved

4 Controls in page layout render

content from pagersquos fields into the page

MasterPagemaster

PageLayoutaspxTitle

BodyImage

Date

ByLine

Field Control

FieldControl

Field ControlField ControlField Control

Field Control

httpfoocombarpageswelcomeaspx

SharePoint Glossary

Term Definition

Cross-Site Publishing Publishing from an authoring site collection to one or more publishing site collections

Catalog A list that has been published as a catalog

Category Page A page that displays a rollup of catalog items

Catalog Item Page A page that displays a single item from a catalog

Display Template Used to format the results on search pages in content search web parts and on category pages

Whatrsquos New in Web Content

Management

Easier Page Authoring With Cut and Paste

Drag and Drop Files

Drag and drop files from Windows Explorer into the browser or the other way

Doesnrsquot support folders or document sets

Open in Windows Explorer still works best for this

Requires IE10 or current versions of Chrome Safari or Firefox

IE8 and 9 supported with Office 2013 installed

Image Renditions

Display uploaded images in predefined sizes widths and crops

Multiple renditions stored in document sets

Content author can create renditions (including crops) in the browser

Design Manager

New way to build master

pages and layouts

SharePoint Designer no

longer required

Edit and preview in any HTML

editor

Automatically creates the associated

master page and aspx

layouts

Package into a Design

Package WSP for

deployment

Snippet Gallery

Select components

such as search box or

navigation control

Configure its properties

Paste the snippet into your HTML

master page or layout

Changes synched to

actual master pages and layouts to convert to SharePoint

components

Can be used by any web design

tool

Device Channels

Map channels to mobile devices or browsers

Alternate master pages

can be assigned

Page layouts can include or

exclude content based

on channel

Display Templates

Used to customize the

presentation of search results

No more XSLT

Three templates

bull Control ndash Overall structure of search results

bull Group ndash Show groups of results

bull Item ndash How each result is presented

Navigation and Friendly URLs

Site navigation driven by managed metadata

Term store used for navigation and SEO-friendly URLs

Connect site navigation to business concepts rather than site structure

Server side control outputs HTML for top nav left nav and breadcrumb

Plan is to convert to client-side to support Office 365

Term Store Setup

Two groups used to separate metadata from navigation

Metadata group setup globally

Static GUIDs consistent through all environments

Navigation group setup at the site collection level

Allows multiple copies for multiple sites on the farm

Search

Search is new and different from all previous versions of SharePoint

The platform has been consolidated Built on a combination of FAST Search and SharePoint Search components as well as new development work ndash it is the

same from Foundation to Server

Foundation Search is intended to replace WSS Search Microsoft Search Server and Search Server Express from previous versions of SharePoint

Itrsquos used pervasively throughout the product now in many different ways in different features eDiscovery navigation topic pages Internet facing business sites etc

Search in SharePoint 2013

Single Extensible Platform

FAST Engine

SharePoint Crawler

Best of both

Same Search Platform in both SharePoint and Exchange

Enterprise Search

Search Page Web parts added to a publishing page

Catalogs Cross-site publishing

Library search Executes in place on the library

Site Search _layouts15osssearchresultsaspx Specifies the site and search parameters

Search Centre Basic Search Center - SharePoint Foundation 2013 Enterprise Search Center - SharePoint Server 2013

Content Search Web Part

Similar in concept to the Content Query Web Part

Many advantages

Can go across sites site collections web apps even farms

Leverages the search index -gt very scalable

Query Builder makes it easy to define your results

Use Display Templates to customize the look and feel No more XSLT

Part of the Enterprise CAL

Pre-Configured CSWPs

Popular Items Shows items that have been recently viewed by many users

Recently Changed Items Shows items that have been modified recently This can help site users

track the latest activity on a site or a library

Recommended Items Show content recommendations based on usage patterns for the current

page

All of these can be further configured by editing their properties and changing the search criteria

Search Results Web Part

Similar functionality to the Content Search Web Part

Doesnrsquot allow property mapping in the web part configuration

Mapping is controlled in the Display Template

Part of the Standard CAL

Category Page Item Page

Catalogs

wwwcontosocomproductsAudio-Liware2g

Catalogs

Results

Consistent Displays

Manage content in one place

No need to create

pages

No need to format

Metadata Navigation

Cross-Site Publishing

Reuse content between different sites including site collections and farms

Catalogs can surface lists into publishing sites onto a category page and item pages

Can be surfaced through the Content Search Web Part

No need to create and publish web pages

Create custom friendly URLs

Metadata based navigation base

Cross Site Publishing

Job Posting

Job Posting

Job Posting

Job Posting

Simcoe County District School Board

50000 students

Over 6000 employees

Board office in Barrie

Bordered by the Holland Marsh in the south the Trent-Severn Waterway in the east Grey County in the west and Muskoka in the north

Simcoe County District School Board

119 schools and centres 87 elementary 16 secondary 6 learning centres 10 alternative

Each needs their own web site Being built on SharePoint 2013 Elementary panel first Each has their own unique URL Content authored both at the school and centrally from the board

wwwscdsbonca Pre-existing SharePoint 2010 site Future goal is to rebuild in SharePoint 2013

Business Challenge

100+ public web sites

No standardization on style technology or content

No ability for the board to push content to the school sites

Outdated sites

Not mobile or AODA compliant

Site Features

Fully Adaptivemobile design Robust Search functionality Template makes it fast and efficient to add new school sites News and events can be targeted by the Board to any number of

school sites Target by panel weather zone trustee language Presented in a blended view with the school news and events

Home page rotator links hours content pages all managed by the school staff

SEO-friendly URLs

News

School news entered by school staff

Board news entered in the board site

Rendered using cross-site publishing

High-priority alerts can be flagged to highlight on the site

Bus or school cancellations

Events

Single and multi-day events

School and board managed like news

Adaptive calendar

School Picker

Used to pick which schools to target news and events to

Schools are tagged through the term store

Target by panel weather zone trustee language

Can override and add or remove individual schools

Search

Catalogs

Three main steps

Enabling lists or libraries as catalogs

Creating the catalog connection

Building the page layouts to display the category rollups or item detail pages

Enabling Catalogs

Doesnrsquot have to be a list can be a document Images or Pages library

Experimenting using a Pages library

This gives us draft and published states that lists donrsquot support

Preview and editing is easier

Fairly simple script to do this

Catalog connections are more complex

Create the connection

Fix up the Term Store

Create the Category and Item page layouts and pages

SEO Enhancements

Friendly URLs

Home page redirects

XML sitemaps automatically generated and updated

Custom SEO properties

Usage Analytics

Built for scale from the ground up Detail data rolled up every 15 days amp anonymized Daily events purged every 15 days monthly events after 3 years Lifetime counts always retained

Counts views amp unique itemsday Shows recent (2-weeks) and lifetime count Trims least visited content Pushes aggregate data to reporting database

Drives recommendations capabilities on content Calculations injected into search index as sortable managed properties Deep integration with search engine Can influence search relevance based on content usage

Variations and Multi-Lingual

Export and import content for translation in XLIFF format

Pages

Labels

List items

Navigation

Bing translation service comes with active SharePoint 2013 license

Adaptive Web Design

Adaptive vs Responsive

Adaptive

Fixed breakpoints‒ Desktop gt 980 px

‒ Table portrait gt 768 px

‒ Phone to tablet gt 480 px lt 768 px

‒ Smartphone lt 480 px

Responsive

No fixed breakpoints

Design fluidly adapts to whatever width the browser is

We generally do a hybrid approach with responsive design in the under 768 pixel situation

Design Approaches in SharePoint

Adaptive Design through CSS media queries

Broader standards approach used outside of SharePoint

Keeps a single master page and CSS

Some unnecessary components may still be loaded

Device Channels SharePoint specific approach

Assign different master pages to different device channels

Rules define what devices use which channels

Device Channel Panels can also target content to channels

Hybrid here can also make sense Device channels can be used to remove unnecessary items from the page payload

Our Adaptive Approach

Built using the Twitter Boostrap CSS framework

twittergithubcombootstrap

Provides a responsive design framework for supporting PC Mac tablet and mobile

We enhanced to provide better touch navigation support

Can be leveraged in the master page page layouts and display templates

Incorporated into the SharePoint 2013 Design Master

HTML based master page that can be edited with any tool

SharePoint converts to a master page when uploaded or saved

Additional Open Source Tools and Resources

HTML CSS JavaScript jQuery

httpwwww3schoolscom

httpgetbootstrapcom

httphandlebarsjscom

httpknockoutjscom

httpsangularjsorg

httpmomentjscom

Content Search Web Part

Web part is configured to return search results

Executed as client-side code in the browser

Pair of display templates map the data returned to HTML

Control template for the overall structure

Item template for each item returned

HTML Designer Manager files are compiled to JavaScript

REST Search and Handlebars

Search is accessible through REST calls

httpsiteurl_apisearchquery

Returns results as a JSON array

Handlebars is a templating engine to format that

Conceptually similar to display templates with control and item sections

jQuery glues this all together

Steps to Experiment

F12 to get into Developer Toolbar

Set a breakpoint where the REST URL is determined

Copy the value

Paste into the REST Search test window

Experiment with the query

Adjust the Handlebars template appropriately

Search Setup

Content Sources to define and schedule the crawls

Crawl logs to review success

Search Schema to define the managed properties

Reusable Content

Snippets of HTML that can be reused throughout the site

JavaScript can be intelligent and use the URL to determine its behaviour

Makes it easy for content authors to drop pre-configured dynamic content onto pages

Topic Pages

Shows all items that match a topic

Could be hundreds of virtual pages

Only one template page

Easily customizable and SEO friendly (each topic appears to be its own page)

Content by search web part open search against a query or result source

May be able to surface the topic pages themselves as site search results

Public Health Ontario

httpwwwpublichealthontariocaenBrowseByTopicPagesTopicaspxk=Influenza20InformationByTopic22Influenza22

Ontario Association of Childrens Aid Societies

Application Lifecycle Management

Purpose

How do we build a solid SharePoint development environment for the enterprise

How do a number of developers work together on a SharePoint project

How does code and content move through a dev test and production lifecycle

What is Agile and Continuous Integration and why is it important

Visual Studio and Team Foundation Server

Visual Studio 2010 is the development platform for coding on SharePoint 2010

Team Foundation Server integrates with Visual Studio to provide a repository for code test and other project artifacts

It facilitates teamwork by providing a common place for developers to work together

Provisioning SharePoint Farms

Provisioning SharePoint Farms

Every developer needs their own complete SharePoint farm

Teams need a dev integration farm to bring their work together on

A full architecture needs QA and production farms as well

Envision IT Virtualization Architecture

Developer VM Template

SharePoint Server 2010 Enterprise

SP1 and August CU

Visual Studio 2010 Premium SP1

Office 2010 Professional Plus SP1

SharePoint Designer 2010 SP1

Fiddler

SQL Server 2008 R2 SP1

Creating a new Developer VM

Open System Centre Virtual Machine Manager

Create Virtual Machine

Choose the Developer VM template

Set the virtual machine name and options

Create and start the VM

Creating a new Developer VM - Step 2

Developer RDPs to their new VM Complete the SQL Server installation

Create the default instance Set the service account(s) Set the authentication mode and server administrators

Update the AutoSPInstallerInputxml file Set the machine name for the default sites and database server Set the service account passwords

Run the AutoSPInstallerLaunch batch file Do a Health check review

Creating a new Developer VM - Step 3

Start Visual Studio

Connect to the Team Foundation Server

Setup your workspaces

Use a standard naming convention across your team

CDevelopmentTFSCollection

Other Environments

Dev Integration QA and Production can all be built using AutoSPInstall

Donrsquot need or want the Visual Studio or Office tools on these servers

We have a base template we use for dev integration servers

QA should match the Prod architecture as closely as possible

High availability with load balancing clustered SQL app servers DMZ hardening Internet publishing

Agile Development

Agile with Team Foundation Server

Creating Your TFS Project

Open Visual Studio

Make sure you are connected to the right Team Project Collection

In Team Explorer right-click the top collection and create a new Team Project

Use the Scrum 10 template

Go into the Areas and Iterations Delete the extraneous releases and sprints

Create a product backlog iteration

Start adding your stories and tasks

Continuous Integration

Continuous Integration

Automated Testing

SharePoint Site Elements

Site structure Site columns content types subsites lists libraries

Branding elements Master pages layouts CSS XSLT supporting images

Custom web parts Page and site content Web part instances Search Workflows Business Connectivity Services Managed Metadata

SharePoint Site Elements ndash Part 2

Access Excel Word Visio

PerformancePoint

Document conversions

Timer jobs

Secure Store Service

User profiles

Site Structure

bull Site columns

bull Define the fields that are used by content types

bull Content types

bull Defines collections of site columns for different types of content

bull Subsites

bull The hierarchy of sites that make up the site collection

bull Lists and Libraries

bull The lists and libraries for each subsite

Site Structure ndash Part 2

Site columns and content types can be programmatically or manually created If they are going to be used in multiple site collections they should be

programmatically created

If a single site collection they can be created manually in a master site collection

GUIDs cannot be manually set and code may need them to be consistent

You can create them manually in SharePoint save the site as a template and import them into Visual Studio to create a proper WSP package

Site Structure ndash Part 3

Site structure can also be done either programmatically or manually

Many sites are complex and it is error prone to create manually

We use our own SiteModelBuilder tool to create the site structure

Site Structure ndash Part 4

For all site structure elements changes can also be manual or programmatic It is useful to be able to delete the whole site collection and recreate it

programmatically As soon as content starts being authored in SharePoint it becomes difficult

or impossible to do that

After content authoring has started Site column and content type changes need to be programmed explicitly

(you canrsquot just drop the content type and recreate it) Site structure changes are usually done manually at this point Changes need to be backed up and restored

Change Management

Page and Site Content

Page and site content is entered directly into SharePoint by the content authors Web pages images PDFs list content etc This should be done in the master site separate from where dev integration is

happening Care needs to be taken with this site once authors start working Make sure it is part of your production backup plan

Periodically back it up and restore it to the dev integration and developer VMs

Alternatively script the export and import Ultimately it will be backed up and restored to the QA and production

farms

Change Management

Change Management

Change Management

Change Management

Web part instances

Web parts ultimately get placed on pages

The configuration of the web parts can often get quite complex

You may want to disable editing of web parts for general content authors

They end up in a grey zone between code and content

Web part instances ndash Part 2

We created our own internal tool to export and import web parts

Each web partrsquos configuration can be exported into a webpartfile

We scripted the extraction from the dev integration

webpart files are treated like code and checked into TFS for version control

Script then applies the new webpart files to the target environment

Workflows

Workflows can be built using SharePoint Designer Visual Studio or third-party tools (Nintex or K2 primarily)

Visual Studio workflow projects are automatically packaged as WSP solution files Simply deploy the WSP file to the other environments

SharePoint Designer workflows need to be deployed using SharePoint Designer This means you need SPD access to production which is not always possible

You can load the SPD workflow into Visual Studio to package it but you lose the ability to edit it in SPD

If you use third-party tools yoursquoll need to define the process for that as well

Business Connectivity Services

BCS can be built using either SharePoint Designer or Visual Studio Visual Studio BCS projects are automatically packaged as WSP

solution files Simply deploy the WSP file to the other environments You can also export the BDC metadata model in the BDC service

application

SharePoint Designer doesnrsquot create a WSP and it doesnrsquot make a complete BDC metadata model You need to export and import using SharePoint Designer

In both cases you still need to deal with connection and configuration information

Future Directions

Visual Studio Lab Management

Integrates the management of HyperV environments in with Visual Studio and Team Foundation Server

Can automate the provisioning of lab environments for automated testing

Test failures can snapshot entire environments to make reproduction of errors much easier

Summary

Yoursquore going to have lots of SharePoint environments ndash figure out how to build them quickly and repeatable

Code and content often move in opposite directions through dev QA and Prod PowerShell script and automate to keep this simple

Agile is a great way to run projects

Continuous integration with automated testing is key to its success

There are lots of parts of SharePoint that you donrsquot code through Visual Studio Figure out how you move those through your environment

Other Topics

Site Design

Information architecture

Wireframes

Creative designs ndash Mobile first

Catalogs deep dive

Site build PowerShell scripts

Team Foundation Server and Application Lifecycle Management

Starting a new project

Managing content authoring

Site Improve tool

SEO Optimizations

Analytics options

Retaining Page Ranks with permanent redirects (301)

Azure SharePoint Hosting

Q amp A

Session Evaluations

Go to Evaluations on the home page of wwwcollabconorg

It is important to get your feedback

Please fill out evaluations for all the sessions you attend

Following the conference a random drawing from all completed evaluations will be selected

The winner will receive a $250 Future Shop gift card valid online or in store

Page 20: Web Content Management - CollabCon 2015 - Web... · Performances Complete Works ... Friendly URL An SEO friendly URL defined in the term store for a page, rather than ... What’s

Overview of ESC Scripts

ESCBuilder_DeployPackages

ESCBuilder_Helper

ESCBuilder_PopulateStructureContent

ESCBuilder_Search

Design Phase

MindMap Information Architecture

Axure Wireframes

PhotoShop or Illustrator Creative Designs

Site Columns and Content Types

Create directly through the SharePoint UI

Senior Consultant can do this in an initial empty devintegration environment

Export script exports these to XML files

Import into target envionments

Typically need Term Store configured as well for Managed Metadata columns

Branding Files

No longer in a Visual Studio WSP package

Simply a collection of files in the Builder folder

Still managed through TFS

Build script uploads and publishes these to the target site

Can edit directly against SharePoint by opening in Windows Explorer

Need to be careful about updating TFS

Export will export the branding files but has farm information in the files that makes it difficult to compare against TFS

Catalogs

Three main steps

Enabling lists or libraries as catalogs

Creating the catalog connection

Building the page layouts to display the category rollups or item detail pages

Enabling Catalogs

Doesnrsquot have to be a list can be a document Images or Pages library

Experimenting using a Pages library

This gives us draft and published states that lists donrsquot support

Preview and editing is easier

Fairly simple script to do this

Needs a full crawl after doing this

Creating the Catalog Connection

Rishan did some great work here

Scripts establish the connection and also update the term store as required

SharePoint Catalog Page Layouts

Uses the CSWP and Content Reuse web parts

Result sources defined in Search for each catalog connection

GUIDs for the result sources different in each farm and need to be updated as part of the deployment

REST Search Catalog Pages

HTML with data attributes on page layouts or in Reusable HTML

jQuery detects this

Builds a REST Search query based on the attributes and URL

Calls SharePoint

Uses Handlebars to format the results

Product Replacements

Video Player is part of the lib structure

Needs references added to the master page

Any hyperlink to an MP4 file launches the video popup

Image Rotator

Jeff is working on standardizing some jQuery slider options

Photo Viewer

No plans just yet

All of these will be part of the ESC package

Starting a New Project

Copy the five ESC scripts from $Envision Shakespeare CompanyBuilder Do not rename

Copy the ShakespeareBuild scripts Rename to your project Update the steps as required for your project

Create the infrastructure WSP Site columns content types list definitions and instances

Manually create the pages and assets that are needed in SharePoint Manually create the term store for metadata and navigation Script the extraction to TFS of content and term store Create the branding WSP Manually create any required web parts Export to TFS and script the placement of the web parts on the pages

ESC Scripts Next Steps

Incorporate TMX additions Farm property bag instead of webconfig Audiences Subsites Available layouts Permissions Extract folders and lists

Continue reconciling additional projects in OMA TMX Christie Medical

Full header blocks and commenting Version numbers Complete the catalog connection script Office 365 support

Links

wwwenvisionitcom

blogpetercarsonca

wwwenvisionitcomshakespeare

httpsShakespeareenvisionitcom

wwwbgccancom

wwwproblemgamblingca

wwwrusselmetalscom

wwwtarioncom

wwwtransamericaca

wwwcollegeofececa

wwwsamuelcom

wwwthewaterfrontpropertiesca

wwwshopsatdonmillsca

wwwfuturesherwaygardensca

wwwpublichealthontarioca

SharePoint WCM Glossary

SharePoint Glossary

Term Definition

SharePoint Farm A set of SharePoint servers that share a single configuration database

Web Application A top level container and entry-point URLs for site collections

Site Collection A set of Web sites that are in the same content database have the same owner and share administration settings A site collection can be identified by a GUID or the URL of the top-level site for the site collection Each site collection contains a top-level site can contain one or more subsites and can have a shared navigation structure

Path Based Site Collection A site collection under a managed pathhttpwebappsitessitecollection

Host Named Site Collection A site collection with its own unique URL Must be created through PowerShell

Site Subsite under a site collection

Site Template A template for a single site that has been saved from another site Site templates may or may not contain content Templates cannot be created from publishing sites

SharePoint Glossary

Term Definition

Site Column A single field that can store information of a particular typebull Textbull Choicebull Numberbull hellipDefined at the site collection level

Content Type A content type is a reusable collection of Site Columns that can be applied to a certain category of content Content types enable the management of metadata and behaviors of a document or item type in a centralized reusable way Basically content types include the columns (or fields) that are applied to a certain type of content plus other optional settings such as a document template

Document Set New content type in SharePoint 2010 A document set is a container for multiple documents to which you can assign certain metadata and treat as a single entity in many ways In addition a document set can contain one or more different content types

SharePoint Glossary

Term Definition

List A container for list content types or custom list items Columns can be defined via content types or directly in the list

Document Library A SharePoint list that contains documents where you can create collect update and share files with others Like lists columns can be defined via content types or directly in the list

Form Library A special type of library to facilitate the interaction with InfoPath forms

Asset Library A library typically used to store image audio and video files

List Template A template used to define the configuration of a list or library Templates can be saved with or without content

SharePoint Glossary

Term Definition

Term Store An instance of the Managed Metadata Service This can be shared between sites site collections web applications or farms

Group A collection of term sets

Term Set A collection of related terms

Term A word or a phrase that can be associated with a SharePoint item

Friendly URL An SEO friendly URL defined in the term store for a page rather than the physical URL of where the page is stored (Pages)

SharePoint Glossary

Term Definition

Design Manager 2013 feature used to manipulate WCM artifacts

Master Page Defines elements that are common to all pages such as the header navigation and footer

Page Layout Defines the layout of a particular style of page such as news or events Each page content type can have one or more layouts associated with them

Web Parts Functional elements that can be added to pages typically for dynamic content

Apps Similar to web parts but run outside of SharePoint while beinghosted in the SharePoint page

Publishing Site Page Rendering

FileName

Welcomeaspx

PageLayout

PageLayoutaspx

Title

Welcome To News

Body

Lorem ipsum dolor sit

Image

ImagesChairjpg

1 Welcomeaspx page is

requested

2 Page layout associated with

page is retrieved

3 Master page associated with site

is retrieved

4 Controls in page layout render

content from pagersquos fields into the page

MasterPagemaster

PageLayoutaspxTitle

BodyImage

Date

ByLine

Field Control

FieldControl

Field ControlField ControlField Control

Field Control

httpfoocombarpageswelcomeaspx

SharePoint Glossary

Term Definition

Cross-Site Publishing Publishing from an authoring site collection to one or more publishing site collections

Catalog A list that has been published as a catalog

Category Page A page that displays a rollup of catalog items

Catalog Item Page A page that displays a single item from a catalog

Display Template Used to format the results on search pages in content search web parts and on category pages

Whatrsquos New in Web Content

Management

Easier Page Authoring With Cut and Paste

Drag and Drop Files

Drag and drop files from Windows Explorer into the browser or the other way

Doesnrsquot support folders or document sets

Open in Windows Explorer still works best for this

Requires IE10 or current versions of Chrome Safari or Firefox

IE8 and 9 supported with Office 2013 installed

Image Renditions

Display uploaded images in predefined sizes widths and crops

Multiple renditions stored in document sets

Content author can create renditions (including crops) in the browser

Design Manager

New way to build master

pages and layouts

SharePoint Designer no

longer required

Edit and preview in any HTML

editor

Automatically creates the associated

master page and aspx

layouts

Package into a Design

Package WSP for

deployment

Snippet Gallery

Select components

such as search box or

navigation control

Configure its properties

Paste the snippet into your HTML

master page or layout

Changes synched to

actual master pages and layouts to convert to SharePoint

components

Can be used by any web design

tool

Device Channels

Map channels to mobile devices or browsers

Alternate master pages

can be assigned

Page layouts can include or

exclude content based

on channel

Display Templates

Used to customize the

presentation of search results

No more XSLT

Three templates

bull Control ndash Overall structure of search results

bull Group ndash Show groups of results

bull Item ndash How each result is presented

Navigation and Friendly URLs

Site navigation driven by managed metadata

Term store used for navigation and SEO-friendly URLs

Connect site navigation to business concepts rather than site structure

Server side control outputs HTML for top nav left nav and breadcrumb

Plan is to convert to client-side to support Office 365

Term Store Setup

Two groups used to separate metadata from navigation

Metadata group setup globally

Static GUIDs consistent through all environments

Navigation group setup at the site collection level

Allows multiple copies for multiple sites on the farm

Search

Search is new and different from all previous versions of SharePoint

The platform has been consolidated Built on a combination of FAST Search and SharePoint Search components as well as new development work ndash it is the

same from Foundation to Server

Foundation Search is intended to replace WSS Search Microsoft Search Server and Search Server Express from previous versions of SharePoint

Itrsquos used pervasively throughout the product now in many different ways in different features eDiscovery navigation topic pages Internet facing business sites etc

Search in SharePoint 2013

Single Extensible Platform

FAST Engine

SharePoint Crawler

Best of both

Same Search Platform in both SharePoint and Exchange

Enterprise Search

Search Page Web parts added to a publishing page

Catalogs Cross-site publishing

Library search Executes in place on the library

Site Search _layouts15osssearchresultsaspx Specifies the site and search parameters

Search Centre Basic Search Center - SharePoint Foundation 2013 Enterprise Search Center - SharePoint Server 2013

Content Search Web Part

Similar in concept to the Content Query Web Part

Many advantages

Can go across sites site collections web apps even farms

Leverages the search index -gt very scalable

Query Builder makes it easy to define your results

Use Display Templates to customize the look and feel No more XSLT

Part of the Enterprise CAL

Pre-Configured CSWPs

Popular Items Shows items that have been recently viewed by many users

Recently Changed Items Shows items that have been modified recently This can help site users

track the latest activity on a site or a library

Recommended Items Show content recommendations based on usage patterns for the current

page

All of these can be further configured by editing their properties and changing the search criteria

Search Results Web Part

Similar functionality to the Content Search Web Part

Doesnrsquot allow property mapping in the web part configuration

Mapping is controlled in the Display Template

Part of the Standard CAL

Category Page Item Page

Catalogs

wwwcontosocomproductsAudio-Liware2g

Catalogs

Results

Consistent Displays

Manage content in one place

No need to create

pages

No need to format

Metadata Navigation

Cross-Site Publishing

Reuse content between different sites including site collections and farms

Catalogs can surface lists into publishing sites onto a category page and item pages

Can be surfaced through the Content Search Web Part

No need to create and publish web pages

Create custom friendly URLs

Metadata based navigation base

Cross Site Publishing

Job Posting

Job Posting

Job Posting

Job Posting

Simcoe County District School Board

50000 students

Over 6000 employees

Board office in Barrie

Bordered by the Holland Marsh in the south the Trent-Severn Waterway in the east Grey County in the west and Muskoka in the north

Simcoe County District School Board

119 schools and centres 87 elementary 16 secondary 6 learning centres 10 alternative

Each needs their own web site Being built on SharePoint 2013 Elementary panel first Each has their own unique URL Content authored both at the school and centrally from the board

wwwscdsbonca Pre-existing SharePoint 2010 site Future goal is to rebuild in SharePoint 2013

Business Challenge

100+ public web sites

No standardization on style technology or content

No ability for the board to push content to the school sites

Outdated sites

Not mobile or AODA compliant

Site Features

Fully Adaptivemobile design Robust Search functionality Template makes it fast and efficient to add new school sites News and events can be targeted by the Board to any number of

school sites Target by panel weather zone trustee language Presented in a blended view with the school news and events

Home page rotator links hours content pages all managed by the school staff

SEO-friendly URLs

News

School news entered by school staff

Board news entered in the board site

Rendered using cross-site publishing

High-priority alerts can be flagged to highlight on the site

Bus or school cancellations

Events

Single and multi-day events

School and board managed like news

Adaptive calendar

School Picker

Used to pick which schools to target news and events to

Schools are tagged through the term store

Target by panel weather zone trustee language

Can override and add or remove individual schools

Search

Catalogs

Three main steps

Enabling lists or libraries as catalogs

Creating the catalog connection

Building the page layouts to display the category rollups or item detail pages

Enabling Catalogs

Doesnrsquot have to be a list can be a document Images or Pages library

Experimenting using a Pages library

This gives us draft and published states that lists donrsquot support

Preview and editing is easier

Fairly simple script to do this

Catalog connections are more complex

Create the connection

Fix up the Term Store

Create the Category and Item page layouts and pages

SEO Enhancements

Friendly URLs

Home page redirects

XML sitemaps automatically generated and updated

Custom SEO properties

Usage Analytics

Built for scale from the ground up Detail data rolled up every 15 days amp anonymized Daily events purged every 15 days monthly events after 3 years Lifetime counts always retained

Counts views amp unique itemsday Shows recent (2-weeks) and lifetime count Trims least visited content Pushes aggregate data to reporting database

Drives recommendations capabilities on content Calculations injected into search index as sortable managed properties Deep integration with search engine Can influence search relevance based on content usage

Variations and Multi-Lingual

Export and import content for translation in XLIFF format

Pages

Labels

List items

Navigation

Bing translation service comes with active SharePoint 2013 license

Adaptive Web Design

Adaptive vs Responsive

Adaptive

Fixed breakpoints‒ Desktop gt 980 px

‒ Table portrait gt 768 px

‒ Phone to tablet gt 480 px lt 768 px

‒ Smartphone lt 480 px

Responsive

No fixed breakpoints

Design fluidly adapts to whatever width the browser is

We generally do a hybrid approach with responsive design in the under 768 pixel situation

Design Approaches in SharePoint

Adaptive Design through CSS media queries

Broader standards approach used outside of SharePoint

Keeps a single master page and CSS

Some unnecessary components may still be loaded

Device Channels SharePoint specific approach

Assign different master pages to different device channels

Rules define what devices use which channels

Device Channel Panels can also target content to channels

Hybrid here can also make sense Device channels can be used to remove unnecessary items from the page payload

Our Adaptive Approach

Built using the Twitter Boostrap CSS framework

twittergithubcombootstrap

Provides a responsive design framework for supporting PC Mac tablet and mobile

We enhanced to provide better touch navigation support

Can be leveraged in the master page page layouts and display templates

Incorporated into the SharePoint 2013 Design Master

HTML based master page that can be edited with any tool

SharePoint converts to a master page when uploaded or saved

Additional Open Source Tools and Resources

HTML CSS JavaScript jQuery

httpwwww3schoolscom

httpgetbootstrapcom

httphandlebarsjscom

httpknockoutjscom

httpsangularjsorg

httpmomentjscom

Content Search Web Part

Web part is configured to return search results

Executed as client-side code in the browser

Pair of display templates map the data returned to HTML

Control template for the overall structure

Item template for each item returned

HTML Designer Manager files are compiled to JavaScript

REST Search and Handlebars

Search is accessible through REST calls

httpsiteurl_apisearchquery

Returns results as a JSON array

Handlebars is a templating engine to format that

Conceptually similar to display templates with control and item sections

jQuery glues this all together

Steps to Experiment

F12 to get into Developer Toolbar

Set a breakpoint where the REST URL is determined

Copy the value

Paste into the REST Search test window

Experiment with the query

Adjust the Handlebars template appropriately

Search Setup

Content Sources to define and schedule the crawls

Crawl logs to review success

Search Schema to define the managed properties

Reusable Content

Snippets of HTML that can be reused throughout the site

JavaScript can be intelligent and use the URL to determine its behaviour

Makes it easy for content authors to drop pre-configured dynamic content onto pages

Topic Pages

Shows all items that match a topic

Could be hundreds of virtual pages

Only one template page

Easily customizable and SEO friendly (each topic appears to be its own page)

Content by search web part open search against a query or result source

May be able to surface the topic pages themselves as site search results

Public Health Ontario

httpwwwpublichealthontariocaenBrowseByTopicPagesTopicaspxk=Influenza20InformationByTopic22Influenza22

Ontario Association of Childrens Aid Societies

Application Lifecycle Management

Purpose

How do we build a solid SharePoint development environment for the enterprise

How do a number of developers work together on a SharePoint project

How does code and content move through a dev test and production lifecycle

What is Agile and Continuous Integration and why is it important

Visual Studio and Team Foundation Server

Visual Studio 2010 is the development platform for coding on SharePoint 2010

Team Foundation Server integrates with Visual Studio to provide a repository for code test and other project artifacts

It facilitates teamwork by providing a common place for developers to work together

Provisioning SharePoint Farms

Provisioning SharePoint Farms

Every developer needs their own complete SharePoint farm

Teams need a dev integration farm to bring their work together on

A full architecture needs QA and production farms as well

Envision IT Virtualization Architecture

Developer VM Template

SharePoint Server 2010 Enterprise

SP1 and August CU

Visual Studio 2010 Premium SP1

Office 2010 Professional Plus SP1

SharePoint Designer 2010 SP1

Fiddler

SQL Server 2008 R2 SP1

Creating a new Developer VM

Open System Centre Virtual Machine Manager

Create Virtual Machine

Choose the Developer VM template

Set the virtual machine name and options

Create and start the VM

Creating a new Developer VM - Step 2

Developer RDPs to their new VM Complete the SQL Server installation

Create the default instance Set the service account(s) Set the authentication mode and server administrators

Update the AutoSPInstallerInputxml file Set the machine name for the default sites and database server Set the service account passwords

Run the AutoSPInstallerLaunch batch file Do a Health check review

Creating a new Developer VM - Step 3

Start Visual Studio

Connect to the Team Foundation Server

Setup your workspaces

Use a standard naming convention across your team

CDevelopmentTFSCollection

Other Environments

Dev Integration QA and Production can all be built using AutoSPInstall

Donrsquot need or want the Visual Studio or Office tools on these servers

We have a base template we use for dev integration servers

QA should match the Prod architecture as closely as possible

High availability with load balancing clustered SQL app servers DMZ hardening Internet publishing

Agile Development

Agile with Team Foundation Server

Creating Your TFS Project

Open Visual Studio

Make sure you are connected to the right Team Project Collection

In Team Explorer right-click the top collection and create a new Team Project

Use the Scrum 10 template

Go into the Areas and Iterations Delete the extraneous releases and sprints

Create a product backlog iteration

Start adding your stories and tasks

Continuous Integration

Continuous Integration

Automated Testing

SharePoint Site Elements

Site structure Site columns content types subsites lists libraries

Branding elements Master pages layouts CSS XSLT supporting images

Custom web parts Page and site content Web part instances Search Workflows Business Connectivity Services Managed Metadata

SharePoint Site Elements ndash Part 2

Access Excel Word Visio

PerformancePoint

Document conversions

Timer jobs

Secure Store Service

User profiles

Site Structure

bull Site columns

bull Define the fields that are used by content types

bull Content types

bull Defines collections of site columns for different types of content

bull Subsites

bull The hierarchy of sites that make up the site collection

bull Lists and Libraries

bull The lists and libraries for each subsite

Site Structure ndash Part 2

Site columns and content types can be programmatically or manually created If they are going to be used in multiple site collections they should be

programmatically created

If a single site collection they can be created manually in a master site collection

GUIDs cannot be manually set and code may need them to be consistent

You can create them manually in SharePoint save the site as a template and import them into Visual Studio to create a proper WSP package

Site Structure ndash Part 3

Site structure can also be done either programmatically or manually

Many sites are complex and it is error prone to create manually

We use our own SiteModelBuilder tool to create the site structure

Site Structure ndash Part 4

For all site structure elements changes can also be manual or programmatic It is useful to be able to delete the whole site collection and recreate it

programmatically As soon as content starts being authored in SharePoint it becomes difficult

or impossible to do that

After content authoring has started Site column and content type changes need to be programmed explicitly

(you canrsquot just drop the content type and recreate it) Site structure changes are usually done manually at this point Changes need to be backed up and restored

Change Management

Page and Site Content

Page and site content is entered directly into SharePoint by the content authors Web pages images PDFs list content etc This should be done in the master site separate from where dev integration is

happening Care needs to be taken with this site once authors start working Make sure it is part of your production backup plan

Periodically back it up and restore it to the dev integration and developer VMs

Alternatively script the export and import Ultimately it will be backed up and restored to the QA and production

farms

Change Management

Change Management

Change Management

Change Management

Web part instances

Web parts ultimately get placed on pages

The configuration of the web parts can often get quite complex

You may want to disable editing of web parts for general content authors

They end up in a grey zone between code and content

Web part instances ndash Part 2

We created our own internal tool to export and import web parts

Each web partrsquos configuration can be exported into a webpartfile

We scripted the extraction from the dev integration

webpart files are treated like code and checked into TFS for version control

Script then applies the new webpart files to the target environment

Workflows

Workflows can be built using SharePoint Designer Visual Studio or third-party tools (Nintex or K2 primarily)

Visual Studio workflow projects are automatically packaged as WSP solution files Simply deploy the WSP file to the other environments

SharePoint Designer workflows need to be deployed using SharePoint Designer This means you need SPD access to production which is not always possible

You can load the SPD workflow into Visual Studio to package it but you lose the ability to edit it in SPD

If you use third-party tools yoursquoll need to define the process for that as well

Business Connectivity Services

BCS can be built using either SharePoint Designer or Visual Studio Visual Studio BCS projects are automatically packaged as WSP

solution files Simply deploy the WSP file to the other environments You can also export the BDC metadata model in the BDC service

application

SharePoint Designer doesnrsquot create a WSP and it doesnrsquot make a complete BDC metadata model You need to export and import using SharePoint Designer

In both cases you still need to deal with connection and configuration information

Future Directions

Visual Studio Lab Management

Integrates the management of HyperV environments in with Visual Studio and Team Foundation Server

Can automate the provisioning of lab environments for automated testing

Test failures can snapshot entire environments to make reproduction of errors much easier

Summary

Yoursquore going to have lots of SharePoint environments ndash figure out how to build them quickly and repeatable

Code and content often move in opposite directions through dev QA and Prod PowerShell script and automate to keep this simple

Agile is a great way to run projects

Continuous integration with automated testing is key to its success

There are lots of parts of SharePoint that you donrsquot code through Visual Studio Figure out how you move those through your environment

Other Topics

Site Design

Information architecture

Wireframes

Creative designs ndash Mobile first

Catalogs deep dive

Site build PowerShell scripts

Team Foundation Server and Application Lifecycle Management

Starting a new project

Managing content authoring

Site Improve tool

SEO Optimizations

Analytics options

Retaining Page Ranks with permanent redirects (301)

Azure SharePoint Hosting

Q amp A

Session Evaluations

Go to Evaluations on the home page of wwwcollabconorg

It is important to get your feedback

Please fill out evaluations for all the sessions you attend

Following the conference a random drawing from all completed evaluations will be selected

The winner will receive a $250 Future Shop gift card valid online or in store

Page 21: Web Content Management - CollabCon 2015 - Web... · Performances Complete Works ... Friendly URL An SEO friendly URL defined in the term store for a page, rather than ... What’s

Design Phase

MindMap Information Architecture

Axure Wireframes

PhotoShop or Illustrator Creative Designs

Site Columns and Content Types

Create directly through the SharePoint UI

Senior Consultant can do this in an initial empty devintegration environment

Export script exports these to XML files

Import into target envionments

Typically need Term Store configured as well for Managed Metadata columns

Branding Files

No longer in a Visual Studio WSP package

Simply a collection of files in the Builder folder

Still managed through TFS

Build script uploads and publishes these to the target site

Can edit directly against SharePoint by opening in Windows Explorer

Need to be careful about updating TFS

Export will export the branding files but has farm information in the files that makes it difficult to compare against TFS

Catalogs

Three main steps

Enabling lists or libraries as catalogs

Creating the catalog connection

Building the page layouts to display the category rollups or item detail pages

Enabling Catalogs

Doesnrsquot have to be a list can be a document Images or Pages library

Experimenting using a Pages library

This gives us draft and published states that lists donrsquot support

Preview and editing is easier

Fairly simple script to do this

Needs a full crawl after doing this

Creating the Catalog Connection

Rishan did some great work here

Scripts establish the connection and also update the term store as required

SharePoint Catalog Page Layouts

Uses the CSWP and Content Reuse web parts

Result sources defined in Search for each catalog connection

GUIDs for the result sources different in each farm and need to be updated as part of the deployment

REST Search Catalog Pages

HTML with data attributes on page layouts or in Reusable HTML

jQuery detects this

Builds a REST Search query based on the attributes and URL

Calls SharePoint

Uses Handlebars to format the results

Product Replacements

Video Player is part of the lib structure

Needs references added to the master page

Any hyperlink to an MP4 file launches the video popup

Image Rotator

Jeff is working on standardizing some jQuery slider options

Photo Viewer

No plans just yet

All of these will be part of the ESC package

Starting a New Project

Copy the five ESC scripts from $Envision Shakespeare CompanyBuilder Do not rename

Copy the ShakespeareBuild scripts Rename to your project Update the steps as required for your project

Create the infrastructure WSP Site columns content types list definitions and instances

Manually create the pages and assets that are needed in SharePoint Manually create the term store for metadata and navigation Script the extraction to TFS of content and term store Create the branding WSP Manually create any required web parts Export to TFS and script the placement of the web parts on the pages

ESC Scripts Next Steps

Incorporate TMX additions Farm property bag instead of webconfig Audiences Subsites Available layouts Permissions Extract folders and lists

Continue reconciling additional projects in OMA TMX Christie Medical

Full header blocks and commenting Version numbers Complete the catalog connection script Office 365 support

Links

wwwenvisionitcom

blogpetercarsonca

wwwenvisionitcomshakespeare

httpsShakespeareenvisionitcom

wwwbgccancom

wwwproblemgamblingca

wwwrusselmetalscom

wwwtarioncom

wwwtransamericaca

wwwcollegeofececa

wwwsamuelcom

wwwthewaterfrontpropertiesca

wwwshopsatdonmillsca

wwwfuturesherwaygardensca

wwwpublichealthontarioca

SharePoint WCM Glossary

SharePoint Glossary

Term Definition

SharePoint Farm A set of SharePoint servers that share a single configuration database

Web Application A top level container and entry-point URLs for site collections

Site Collection A set of Web sites that are in the same content database have the same owner and share administration settings A site collection can be identified by a GUID or the URL of the top-level site for the site collection Each site collection contains a top-level site can contain one or more subsites and can have a shared navigation structure

Path Based Site Collection A site collection under a managed pathhttpwebappsitessitecollection

Host Named Site Collection A site collection with its own unique URL Must be created through PowerShell

Site Subsite under a site collection

Site Template A template for a single site that has been saved from another site Site templates may or may not contain content Templates cannot be created from publishing sites

SharePoint Glossary

Term Definition

Site Column A single field that can store information of a particular typebull Textbull Choicebull Numberbull hellipDefined at the site collection level

Content Type A content type is a reusable collection of Site Columns that can be applied to a certain category of content Content types enable the management of metadata and behaviors of a document or item type in a centralized reusable way Basically content types include the columns (or fields) that are applied to a certain type of content plus other optional settings such as a document template

Document Set New content type in SharePoint 2010 A document set is a container for multiple documents to which you can assign certain metadata and treat as a single entity in many ways In addition a document set can contain one or more different content types

SharePoint Glossary

Term Definition

List A container for list content types or custom list items Columns can be defined via content types or directly in the list

Document Library A SharePoint list that contains documents where you can create collect update and share files with others Like lists columns can be defined via content types or directly in the list

Form Library A special type of library to facilitate the interaction with InfoPath forms

Asset Library A library typically used to store image audio and video files

List Template A template used to define the configuration of a list or library Templates can be saved with or without content

SharePoint Glossary

Term Definition

Term Store An instance of the Managed Metadata Service This can be shared between sites site collections web applications or farms

Group A collection of term sets

Term Set A collection of related terms

Term A word or a phrase that can be associated with a SharePoint item

Friendly URL An SEO friendly URL defined in the term store for a page rather than the physical URL of where the page is stored (Pages)

SharePoint Glossary

Term Definition

Design Manager 2013 feature used to manipulate WCM artifacts

Master Page Defines elements that are common to all pages such as the header navigation and footer

Page Layout Defines the layout of a particular style of page such as news or events Each page content type can have one or more layouts associated with them

Web Parts Functional elements that can be added to pages typically for dynamic content

Apps Similar to web parts but run outside of SharePoint while beinghosted in the SharePoint page

Publishing Site Page Rendering

FileName

Welcomeaspx

PageLayout

PageLayoutaspx

Title

Welcome To News

Body

Lorem ipsum dolor sit

Image

ImagesChairjpg

1 Welcomeaspx page is

requested

2 Page layout associated with

page is retrieved

3 Master page associated with site

is retrieved

4 Controls in page layout render

content from pagersquos fields into the page

MasterPagemaster

PageLayoutaspxTitle

BodyImage

Date

ByLine

Field Control

FieldControl

Field ControlField ControlField Control

Field Control

httpfoocombarpageswelcomeaspx

SharePoint Glossary

Term Definition

Cross-Site Publishing Publishing from an authoring site collection to one or more publishing site collections

Catalog A list that has been published as a catalog

Category Page A page that displays a rollup of catalog items

Catalog Item Page A page that displays a single item from a catalog

Display Template Used to format the results on search pages in content search web parts and on category pages

Whatrsquos New in Web Content

Management

Easier Page Authoring With Cut and Paste

Drag and Drop Files

Drag and drop files from Windows Explorer into the browser or the other way

Doesnrsquot support folders or document sets

Open in Windows Explorer still works best for this

Requires IE10 or current versions of Chrome Safari or Firefox

IE8 and 9 supported with Office 2013 installed

Image Renditions

Display uploaded images in predefined sizes widths and crops

Multiple renditions stored in document sets

Content author can create renditions (including crops) in the browser

Design Manager

New way to build master

pages and layouts

SharePoint Designer no

longer required

Edit and preview in any HTML

editor

Automatically creates the associated

master page and aspx

layouts

Package into a Design

Package WSP for

deployment

Snippet Gallery

Select components

such as search box or

navigation control

Configure its properties

Paste the snippet into your HTML

master page or layout

Changes synched to

actual master pages and layouts to convert to SharePoint

components

Can be used by any web design

tool

Device Channels

Map channels to mobile devices or browsers

Alternate master pages

can be assigned

Page layouts can include or

exclude content based

on channel

Display Templates

Used to customize the

presentation of search results

No more XSLT

Three templates

bull Control ndash Overall structure of search results

bull Group ndash Show groups of results

bull Item ndash How each result is presented

Navigation and Friendly URLs

Site navigation driven by managed metadata

Term store used for navigation and SEO-friendly URLs

Connect site navigation to business concepts rather than site structure

Server side control outputs HTML for top nav left nav and breadcrumb

Plan is to convert to client-side to support Office 365

Term Store Setup

Two groups used to separate metadata from navigation

Metadata group setup globally

Static GUIDs consistent through all environments

Navigation group setup at the site collection level

Allows multiple copies for multiple sites on the farm

Search

Search is new and different from all previous versions of SharePoint

The platform has been consolidated Built on a combination of FAST Search and SharePoint Search components as well as new development work ndash it is the

same from Foundation to Server

Foundation Search is intended to replace WSS Search Microsoft Search Server and Search Server Express from previous versions of SharePoint

Itrsquos used pervasively throughout the product now in many different ways in different features eDiscovery navigation topic pages Internet facing business sites etc

Search in SharePoint 2013

Single Extensible Platform

FAST Engine

SharePoint Crawler

Best of both

Same Search Platform in both SharePoint and Exchange

Enterprise Search

Search Page Web parts added to a publishing page

Catalogs Cross-site publishing

Library search Executes in place on the library

Site Search _layouts15osssearchresultsaspx Specifies the site and search parameters

Search Centre Basic Search Center - SharePoint Foundation 2013 Enterprise Search Center - SharePoint Server 2013

Content Search Web Part

Similar in concept to the Content Query Web Part

Many advantages

Can go across sites site collections web apps even farms

Leverages the search index -gt very scalable

Query Builder makes it easy to define your results

Use Display Templates to customize the look and feel No more XSLT

Part of the Enterprise CAL

Pre-Configured CSWPs

Popular Items Shows items that have been recently viewed by many users

Recently Changed Items Shows items that have been modified recently This can help site users

track the latest activity on a site or a library

Recommended Items Show content recommendations based on usage patterns for the current

page

All of these can be further configured by editing their properties and changing the search criteria

Search Results Web Part

Similar functionality to the Content Search Web Part

Doesnrsquot allow property mapping in the web part configuration

Mapping is controlled in the Display Template

Part of the Standard CAL

Category Page Item Page

Catalogs

wwwcontosocomproductsAudio-Liware2g

Catalogs

Results

Consistent Displays

Manage content in one place

No need to create

pages

No need to format

Metadata Navigation

Cross-Site Publishing

Reuse content between different sites including site collections and farms

Catalogs can surface lists into publishing sites onto a category page and item pages

Can be surfaced through the Content Search Web Part

No need to create and publish web pages

Create custom friendly URLs

Metadata based navigation base

Cross Site Publishing

Job Posting

Job Posting

Job Posting

Job Posting

Simcoe County District School Board

50000 students

Over 6000 employees

Board office in Barrie

Bordered by the Holland Marsh in the south the Trent-Severn Waterway in the east Grey County in the west and Muskoka in the north

Simcoe County District School Board

119 schools and centres 87 elementary 16 secondary 6 learning centres 10 alternative

Each needs their own web site Being built on SharePoint 2013 Elementary panel first Each has their own unique URL Content authored both at the school and centrally from the board

wwwscdsbonca Pre-existing SharePoint 2010 site Future goal is to rebuild in SharePoint 2013

Business Challenge

100+ public web sites

No standardization on style technology or content

No ability for the board to push content to the school sites

Outdated sites

Not mobile or AODA compliant

Site Features

Fully Adaptivemobile design Robust Search functionality Template makes it fast and efficient to add new school sites News and events can be targeted by the Board to any number of

school sites Target by panel weather zone trustee language Presented in a blended view with the school news and events

Home page rotator links hours content pages all managed by the school staff

SEO-friendly URLs

News

School news entered by school staff

Board news entered in the board site

Rendered using cross-site publishing

High-priority alerts can be flagged to highlight on the site

Bus or school cancellations

Events

Single and multi-day events

School and board managed like news

Adaptive calendar

School Picker

Used to pick which schools to target news and events to

Schools are tagged through the term store

Target by panel weather zone trustee language

Can override and add or remove individual schools

Search

Catalogs

Three main steps

Enabling lists or libraries as catalogs

Creating the catalog connection

Building the page layouts to display the category rollups or item detail pages

Enabling Catalogs

Doesnrsquot have to be a list can be a document Images or Pages library

Experimenting using a Pages library

This gives us draft and published states that lists donrsquot support

Preview and editing is easier

Fairly simple script to do this

Catalog connections are more complex

Create the connection

Fix up the Term Store

Create the Category and Item page layouts and pages

SEO Enhancements

Friendly URLs

Home page redirects

XML sitemaps automatically generated and updated

Custom SEO properties

Usage Analytics

Built for scale from the ground up Detail data rolled up every 15 days amp anonymized Daily events purged every 15 days monthly events after 3 years Lifetime counts always retained

Counts views amp unique itemsday Shows recent (2-weeks) and lifetime count Trims least visited content Pushes aggregate data to reporting database

Drives recommendations capabilities on content Calculations injected into search index as sortable managed properties Deep integration with search engine Can influence search relevance based on content usage

Variations and Multi-Lingual

Export and import content for translation in XLIFF format

Pages

Labels

List items

Navigation

Bing translation service comes with active SharePoint 2013 license

Adaptive Web Design

Adaptive vs Responsive

Adaptive

Fixed breakpoints‒ Desktop gt 980 px

‒ Table portrait gt 768 px

‒ Phone to tablet gt 480 px lt 768 px

‒ Smartphone lt 480 px

Responsive

No fixed breakpoints

Design fluidly adapts to whatever width the browser is

We generally do a hybrid approach with responsive design in the under 768 pixel situation

Design Approaches in SharePoint

Adaptive Design through CSS media queries

Broader standards approach used outside of SharePoint

Keeps a single master page and CSS

Some unnecessary components may still be loaded

Device Channels SharePoint specific approach

Assign different master pages to different device channels

Rules define what devices use which channels

Device Channel Panels can also target content to channels

Hybrid here can also make sense Device channels can be used to remove unnecessary items from the page payload

Our Adaptive Approach

Built using the Twitter Boostrap CSS framework

twittergithubcombootstrap

Provides a responsive design framework for supporting PC Mac tablet and mobile

We enhanced to provide better touch navigation support

Can be leveraged in the master page page layouts and display templates

Incorporated into the SharePoint 2013 Design Master

HTML based master page that can be edited with any tool

SharePoint converts to a master page when uploaded or saved

Additional Open Source Tools and Resources

HTML CSS JavaScript jQuery

httpwwww3schoolscom

httpgetbootstrapcom

httphandlebarsjscom

httpknockoutjscom

httpsangularjsorg

httpmomentjscom

Content Search Web Part

Web part is configured to return search results

Executed as client-side code in the browser

Pair of display templates map the data returned to HTML

Control template for the overall structure

Item template for each item returned

HTML Designer Manager files are compiled to JavaScript

REST Search and Handlebars

Search is accessible through REST calls

httpsiteurl_apisearchquery

Returns results as a JSON array

Handlebars is a templating engine to format that

Conceptually similar to display templates with control and item sections

jQuery glues this all together

Steps to Experiment

F12 to get into Developer Toolbar

Set a breakpoint where the REST URL is determined

Copy the value

Paste into the REST Search test window

Experiment with the query

Adjust the Handlebars template appropriately

Search Setup

Content Sources to define and schedule the crawls

Crawl logs to review success

Search Schema to define the managed properties

Reusable Content

Snippets of HTML that can be reused throughout the site

JavaScript can be intelligent and use the URL to determine its behaviour

Makes it easy for content authors to drop pre-configured dynamic content onto pages

Topic Pages

Shows all items that match a topic

Could be hundreds of virtual pages

Only one template page

Easily customizable and SEO friendly (each topic appears to be its own page)

Content by search web part open search against a query or result source

May be able to surface the topic pages themselves as site search results

Public Health Ontario

httpwwwpublichealthontariocaenBrowseByTopicPagesTopicaspxk=Influenza20InformationByTopic22Influenza22

Ontario Association of Childrens Aid Societies

Application Lifecycle Management

Purpose

How do we build a solid SharePoint development environment for the enterprise

How do a number of developers work together on a SharePoint project

How does code and content move through a dev test and production lifecycle

What is Agile and Continuous Integration and why is it important

Visual Studio and Team Foundation Server

Visual Studio 2010 is the development platform for coding on SharePoint 2010

Team Foundation Server integrates with Visual Studio to provide a repository for code test and other project artifacts

It facilitates teamwork by providing a common place for developers to work together

Provisioning SharePoint Farms

Provisioning SharePoint Farms

Every developer needs their own complete SharePoint farm

Teams need a dev integration farm to bring their work together on

A full architecture needs QA and production farms as well

Envision IT Virtualization Architecture

Developer VM Template

SharePoint Server 2010 Enterprise

SP1 and August CU

Visual Studio 2010 Premium SP1

Office 2010 Professional Plus SP1

SharePoint Designer 2010 SP1

Fiddler

SQL Server 2008 R2 SP1

Creating a new Developer VM

Open System Centre Virtual Machine Manager

Create Virtual Machine

Choose the Developer VM template

Set the virtual machine name and options

Create and start the VM

Creating a new Developer VM - Step 2

Developer RDPs to their new VM Complete the SQL Server installation

Create the default instance Set the service account(s) Set the authentication mode and server administrators

Update the AutoSPInstallerInputxml file Set the machine name for the default sites and database server Set the service account passwords

Run the AutoSPInstallerLaunch batch file Do a Health check review

Creating a new Developer VM - Step 3

Start Visual Studio

Connect to the Team Foundation Server

Setup your workspaces

Use a standard naming convention across your team

CDevelopmentTFSCollection

Other Environments

Dev Integration QA and Production can all be built using AutoSPInstall

Donrsquot need or want the Visual Studio or Office tools on these servers

We have a base template we use for dev integration servers

QA should match the Prod architecture as closely as possible

High availability with load balancing clustered SQL app servers DMZ hardening Internet publishing

Agile Development

Agile with Team Foundation Server

Creating Your TFS Project

Open Visual Studio

Make sure you are connected to the right Team Project Collection

In Team Explorer right-click the top collection and create a new Team Project

Use the Scrum 10 template

Go into the Areas and Iterations Delete the extraneous releases and sprints

Create a product backlog iteration

Start adding your stories and tasks

Continuous Integration

Continuous Integration

Automated Testing

SharePoint Site Elements

Site structure Site columns content types subsites lists libraries

Branding elements Master pages layouts CSS XSLT supporting images

Custom web parts Page and site content Web part instances Search Workflows Business Connectivity Services Managed Metadata

SharePoint Site Elements ndash Part 2

Access Excel Word Visio

PerformancePoint

Document conversions

Timer jobs

Secure Store Service

User profiles

Site Structure

bull Site columns

bull Define the fields that are used by content types

bull Content types

bull Defines collections of site columns for different types of content

bull Subsites

bull The hierarchy of sites that make up the site collection

bull Lists and Libraries

bull The lists and libraries for each subsite

Site Structure ndash Part 2

Site columns and content types can be programmatically or manually created If they are going to be used in multiple site collections they should be

programmatically created

If a single site collection they can be created manually in a master site collection

GUIDs cannot be manually set and code may need them to be consistent

You can create them manually in SharePoint save the site as a template and import them into Visual Studio to create a proper WSP package

Site Structure ndash Part 3

Site structure can also be done either programmatically or manually

Many sites are complex and it is error prone to create manually

We use our own SiteModelBuilder tool to create the site structure

Site Structure ndash Part 4

For all site structure elements changes can also be manual or programmatic It is useful to be able to delete the whole site collection and recreate it

programmatically As soon as content starts being authored in SharePoint it becomes difficult

or impossible to do that

After content authoring has started Site column and content type changes need to be programmed explicitly

(you canrsquot just drop the content type and recreate it) Site structure changes are usually done manually at this point Changes need to be backed up and restored

Change Management

Page and Site Content

Page and site content is entered directly into SharePoint by the content authors Web pages images PDFs list content etc This should be done in the master site separate from where dev integration is

happening Care needs to be taken with this site once authors start working Make sure it is part of your production backup plan

Periodically back it up and restore it to the dev integration and developer VMs

Alternatively script the export and import Ultimately it will be backed up and restored to the QA and production

farms

Change Management

Change Management

Change Management

Change Management

Web part instances

Web parts ultimately get placed on pages

The configuration of the web parts can often get quite complex

You may want to disable editing of web parts for general content authors

They end up in a grey zone between code and content

Web part instances ndash Part 2

We created our own internal tool to export and import web parts

Each web partrsquos configuration can be exported into a webpartfile

We scripted the extraction from the dev integration

webpart files are treated like code and checked into TFS for version control

Script then applies the new webpart files to the target environment

Workflows

Workflows can be built using SharePoint Designer Visual Studio or third-party tools (Nintex or K2 primarily)

Visual Studio workflow projects are automatically packaged as WSP solution files Simply deploy the WSP file to the other environments

SharePoint Designer workflows need to be deployed using SharePoint Designer This means you need SPD access to production which is not always possible

You can load the SPD workflow into Visual Studio to package it but you lose the ability to edit it in SPD

If you use third-party tools yoursquoll need to define the process for that as well

Business Connectivity Services

BCS can be built using either SharePoint Designer or Visual Studio Visual Studio BCS projects are automatically packaged as WSP

solution files Simply deploy the WSP file to the other environments You can also export the BDC metadata model in the BDC service

application

SharePoint Designer doesnrsquot create a WSP and it doesnrsquot make a complete BDC metadata model You need to export and import using SharePoint Designer

In both cases you still need to deal with connection and configuration information

Future Directions

Visual Studio Lab Management

Integrates the management of HyperV environments in with Visual Studio and Team Foundation Server

Can automate the provisioning of lab environments for automated testing

Test failures can snapshot entire environments to make reproduction of errors much easier

Summary

Yoursquore going to have lots of SharePoint environments ndash figure out how to build them quickly and repeatable

Code and content often move in opposite directions through dev QA and Prod PowerShell script and automate to keep this simple

Agile is a great way to run projects

Continuous integration with automated testing is key to its success

There are lots of parts of SharePoint that you donrsquot code through Visual Studio Figure out how you move those through your environment

Other Topics

Site Design

Information architecture

Wireframes

Creative designs ndash Mobile first

Catalogs deep dive

Site build PowerShell scripts

Team Foundation Server and Application Lifecycle Management

Starting a new project

Managing content authoring

Site Improve tool

SEO Optimizations

Analytics options

Retaining Page Ranks with permanent redirects (301)

Azure SharePoint Hosting

Q amp A

Session Evaluations

Go to Evaluations on the home page of wwwcollabconorg

It is important to get your feedback

Please fill out evaluations for all the sessions you attend

Following the conference a random drawing from all completed evaluations will be selected

The winner will receive a $250 Future Shop gift card valid online or in store

Page 22: Web Content Management - CollabCon 2015 - Web... · Performances Complete Works ... Friendly URL An SEO friendly URL defined in the term store for a page, rather than ... What’s

Site Columns and Content Types

Create directly through the SharePoint UI

Senior Consultant can do this in an initial empty devintegration environment

Export script exports these to XML files

Import into target envionments

Typically need Term Store configured as well for Managed Metadata columns

Branding Files

No longer in a Visual Studio WSP package

Simply a collection of files in the Builder folder

Still managed through TFS

Build script uploads and publishes these to the target site

Can edit directly against SharePoint by opening in Windows Explorer

Need to be careful about updating TFS

Export will export the branding files but has farm information in the files that makes it difficult to compare against TFS

Catalogs

Three main steps

Enabling lists or libraries as catalogs

Creating the catalog connection

Building the page layouts to display the category rollups or item detail pages

Enabling Catalogs

Doesnrsquot have to be a list can be a document Images or Pages library

Experimenting using a Pages library

This gives us draft and published states that lists donrsquot support

Preview and editing is easier

Fairly simple script to do this

Needs a full crawl after doing this

Creating the Catalog Connection

Rishan did some great work here

Scripts establish the connection and also update the term store as required

SharePoint Catalog Page Layouts

Uses the CSWP and Content Reuse web parts

Result sources defined in Search for each catalog connection

GUIDs for the result sources different in each farm and need to be updated as part of the deployment

REST Search Catalog Pages

HTML with data attributes on page layouts or in Reusable HTML

jQuery detects this

Builds a REST Search query based on the attributes and URL

Calls SharePoint

Uses Handlebars to format the results

Product Replacements

Video Player is part of the lib structure

Needs references added to the master page

Any hyperlink to an MP4 file launches the video popup

Image Rotator

Jeff is working on standardizing some jQuery slider options

Photo Viewer

No plans just yet

All of these will be part of the ESC package

Starting a New Project

Copy the five ESC scripts from $Envision Shakespeare CompanyBuilder Do not rename

Copy the ShakespeareBuild scripts Rename to your project Update the steps as required for your project

Create the infrastructure WSP Site columns content types list definitions and instances

Manually create the pages and assets that are needed in SharePoint Manually create the term store for metadata and navigation Script the extraction to TFS of content and term store Create the branding WSP Manually create any required web parts Export to TFS and script the placement of the web parts on the pages

ESC Scripts Next Steps

Incorporate TMX additions Farm property bag instead of webconfig Audiences Subsites Available layouts Permissions Extract folders and lists

Continue reconciling additional projects in OMA TMX Christie Medical

Full header blocks and commenting Version numbers Complete the catalog connection script Office 365 support

Links

wwwenvisionitcom

blogpetercarsonca

wwwenvisionitcomshakespeare

httpsShakespeareenvisionitcom

wwwbgccancom

wwwproblemgamblingca

wwwrusselmetalscom

wwwtarioncom

wwwtransamericaca

wwwcollegeofececa

wwwsamuelcom

wwwthewaterfrontpropertiesca

wwwshopsatdonmillsca

wwwfuturesherwaygardensca

wwwpublichealthontarioca

SharePoint WCM Glossary

SharePoint Glossary

Term Definition

SharePoint Farm A set of SharePoint servers that share a single configuration database

Web Application A top level container and entry-point URLs for site collections

Site Collection A set of Web sites that are in the same content database have the same owner and share administration settings A site collection can be identified by a GUID or the URL of the top-level site for the site collection Each site collection contains a top-level site can contain one or more subsites and can have a shared navigation structure

Path Based Site Collection A site collection under a managed pathhttpwebappsitessitecollection

Host Named Site Collection A site collection with its own unique URL Must be created through PowerShell

Site Subsite under a site collection

Site Template A template for a single site that has been saved from another site Site templates may or may not contain content Templates cannot be created from publishing sites

SharePoint Glossary

Term Definition

Site Column A single field that can store information of a particular typebull Textbull Choicebull Numberbull hellipDefined at the site collection level

Content Type A content type is a reusable collection of Site Columns that can be applied to a certain category of content Content types enable the management of metadata and behaviors of a document or item type in a centralized reusable way Basically content types include the columns (or fields) that are applied to a certain type of content plus other optional settings such as a document template

Document Set New content type in SharePoint 2010 A document set is a container for multiple documents to which you can assign certain metadata and treat as a single entity in many ways In addition a document set can contain one or more different content types

SharePoint Glossary

Term Definition

List A container for list content types or custom list items Columns can be defined via content types or directly in the list

Document Library A SharePoint list that contains documents where you can create collect update and share files with others Like lists columns can be defined via content types or directly in the list

Form Library A special type of library to facilitate the interaction with InfoPath forms

Asset Library A library typically used to store image audio and video files

List Template A template used to define the configuration of a list or library Templates can be saved with or without content

SharePoint Glossary

Term Definition

Term Store An instance of the Managed Metadata Service This can be shared between sites site collections web applications or farms

Group A collection of term sets

Term Set A collection of related terms

Term A word or a phrase that can be associated with a SharePoint item

Friendly URL An SEO friendly URL defined in the term store for a page rather than the physical URL of where the page is stored (Pages)

SharePoint Glossary

Term Definition

Design Manager 2013 feature used to manipulate WCM artifacts

Master Page Defines elements that are common to all pages such as the header navigation and footer

Page Layout Defines the layout of a particular style of page such as news or events Each page content type can have one or more layouts associated with them

Web Parts Functional elements that can be added to pages typically for dynamic content

Apps Similar to web parts but run outside of SharePoint while beinghosted in the SharePoint page

Publishing Site Page Rendering

FileName

Welcomeaspx

PageLayout

PageLayoutaspx

Title

Welcome To News

Body

Lorem ipsum dolor sit

Image

ImagesChairjpg

1 Welcomeaspx page is

requested

2 Page layout associated with

page is retrieved

3 Master page associated with site

is retrieved

4 Controls in page layout render

content from pagersquos fields into the page

MasterPagemaster

PageLayoutaspxTitle

BodyImage

Date

ByLine

Field Control

FieldControl

Field ControlField ControlField Control

Field Control

httpfoocombarpageswelcomeaspx

SharePoint Glossary

Term Definition

Cross-Site Publishing Publishing from an authoring site collection to one or more publishing site collections

Catalog A list that has been published as a catalog

Category Page A page that displays a rollup of catalog items

Catalog Item Page A page that displays a single item from a catalog

Display Template Used to format the results on search pages in content search web parts and on category pages

Whatrsquos New in Web Content

Management

Easier Page Authoring With Cut and Paste

Drag and Drop Files

Drag and drop files from Windows Explorer into the browser or the other way

Doesnrsquot support folders or document sets

Open in Windows Explorer still works best for this

Requires IE10 or current versions of Chrome Safari or Firefox

IE8 and 9 supported with Office 2013 installed

Image Renditions

Display uploaded images in predefined sizes widths and crops

Multiple renditions stored in document sets

Content author can create renditions (including crops) in the browser

Design Manager

New way to build master

pages and layouts

SharePoint Designer no

longer required

Edit and preview in any HTML

editor

Automatically creates the associated

master page and aspx

layouts

Package into a Design

Package WSP for

deployment

Snippet Gallery

Select components

such as search box or

navigation control

Configure its properties

Paste the snippet into your HTML

master page or layout

Changes synched to

actual master pages and layouts to convert to SharePoint

components

Can be used by any web design

tool

Device Channels

Map channels to mobile devices or browsers

Alternate master pages

can be assigned

Page layouts can include or

exclude content based

on channel

Display Templates

Used to customize the

presentation of search results

No more XSLT

Three templates

bull Control ndash Overall structure of search results

bull Group ndash Show groups of results

bull Item ndash How each result is presented

Navigation and Friendly URLs

Site navigation driven by managed metadata

Term store used for navigation and SEO-friendly URLs

Connect site navigation to business concepts rather than site structure

Server side control outputs HTML for top nav left nav and breadcrumb

Plan is to convert to client-side to support Office 365

Term Store Setup

Two groups used to separate metadata from navigation

Metadata group setup globally

Static GUIDs consistent through all environments

Navigation group setup at the site collection level

Allows multiple copies for multiple sites on the farm

Search

Search is new and different from all previous versions of SharePoint

The platform has been consolidated Built on a combination of FAST Search and SharePoint Search components as well as new development work ndash it is the

same from Foundation to Server

Foundation Search is intended to replace WSS Search Microsoft Search Server and Search Server Express from previous versions of SharePoint

Itrsquos used pervasively throughout the product now in many different ways in different features eDiscovery navigation topic pages Internet facing business sites etc

Search in SharePoint 2013

Single Extensible Platform

FAST Engine

SharePoint Crawler

Best of both

Same Search Platform in both SharePoint and Exchange

Enterprise Search

Search Page Web parts added to a publishing page

Catalogs Cross-site publishing

Library search Executes in place on the library

Site Search _layouts15osssearchresultsaspx Specifies the site and search parameters

Search Centre Basic Search Center - SharePoint Foundation 2013 Enterprise Search Center - SharePoint Server 2013

Content Search Web Part

Similar in concept to the Content Query Web Part

Many advantages

Can go across sites site collections web apps even farms

Leverages the search index -gt very scalable

Query Builder makes it easy to define your results

Use Display Templates to customize the look and feel No more XSLT

Part of the Enterprise CAL

Pre-Configured CSWPs

Popular Items Shows items that have been recently viewed by many users

Recently Changed Items Shows items that have been modified recently This can help site users

track the latest activity on a site or a library

Recommended Items Show content recommendations based on usage patterns for the current

page

All of these can be further configured by editing their properties and changing the search criteria

Search Results Web Part

Similar functionality to the Content Search Web Part

Doesnrsquot allow property mapping in the web part configuration

Mapping is controlled in the Display Template

Part of the Standard CAL

Category Page Item Page

Catalogs

wwwcontosocomproductsAudio-Liware2g

Catalogs

Results

Consistent Displays

Manage content in one place

No need to create

pages

No need to format

Metadata Navigation

Cross-Site Publishing

Reuse content between different sites including site collections and farms

Catalogs can surface lists into publishing sites onto a category page and item pages

Can be surfaced through the Content Search Web Part

No need to create and publish web pages

Create custom friendly URLs

Metadata based navigation base

Cross Site Publishing

Job Posting

Job Posting

Job Posting

Job Posting

Simcoe County District School Board

50000 students

Over 6000 employees

Board office in Barrie

Bordered by the Holland Marsh in the south the Trent-Severn Waterway in the east Grey County in the west and Muskoka in the north

Simcoe County District School Board

119 schools and centres 87 elementary 16 secondary 6 learning centres 10 alternative

Each needs their own web site Being built on SharePoint 2013 Elementary panel first Each has their own unique URL Content authored both at the school and centrally from the board

wwwscdsbonca Pre-existing SharePoint 2010 site Future goal is to rebuild in SharePoint 2013

Business Challenge

100+ public web sites

No standardization on style technology or content

No ability for the board to push content to the school sites

Outdated sites

Not mobile or AODA compliant

Site Features

Fully Adaptivemobile design Robust Search functionality Template makes it fast and efficient to add new school sites News and events can be targeted by the Board to any number of

school sites Target by panel weather zone trustee language Presented in a blended view with the school news and events

Home page rotator links hours content pages all managed by the school staff

SEO-friendly URLs

News

School news entered by school staff

Board news entered in the board site

Rendered using cross-site publishing

High-priority alerts can be flagged to highlight on the site

Bus or school cancellations

Events

Single and multi-day events

School and board managed like news

Adaptive calendar

School Picker

Used to pick which schools to target news and events to

Schools are tagged through the term store

Target by panel weather zone trustee language

Can override and add or remove individual schools

Search

Catalogs

Three main steps

Enabling lists or libraries as catalogs

Creating the catalog connection

Building the page layouts to display the category rollups or item detail pages

Enabling Catalogs

Doesnrsquot have to be a list can be a document Images or Pages library

Experimenting using a Pages library

This gives us draft and published states that lists donrsquot support

Preview and editing is easier

Fairly simple script to do this

Catalog connections are more complex

Create the connection

Fix up the Term Store

Create the Category and Item page layouts and pages

SEO Enhancements

Friendly URLs

Home page redirects

XML sitemaps automatically generated and updated

Custom SEO properties

Usage Analytics

Built for scale from the ground up Detail data rolled up every 15 days amp anonymized Daily events purged every 15 days monthly events after 3 years Lifetime counts always retained

Counts views amp unique itemsday Shows recent (2-weeks) and lifetime count Trims least visited content Pushes aggregate data to reporting database

Drives recommendations capabilities on content Calculations injected into search index as sortable managed properties Deep integration with search engine Can influence search relevance based on content usage

Variations and Multi-Lingual

Export and import content for translation in XLIFF format

Pages

Labels

List items

Navigation

Bing translation service comes with active SharePoint 2013 license

Adaptive Web Design

Adaptive vs Responsive

Adaptive

Fixed breakpoints‒ Desktop gt 980 px

‒ Table portrait gt 768 px

‒ Phone to tablet gt 480 px lt 768 px

‒ Smartphone lt 480 px

Responsive

No fixed breakpoints

Design fluidly adapts to whatever width the browser is

We generally do a hybrid approach with responsive design in the under 768 pixel situation

Design Approaches in SharePoint

Adaptive Design through CSS media queries

Broader standards approach used outside of SharePoint

Keeps a single master page and CSS

Some unnecessary components may still be loaded

Device Channels SharePoint specific approach

Assign different master pages to different device channels

Rules define what devices use which channels

Device Channel Panels can also target content to channels

Hybrid here can also make sense Device channels can be used to remove unnecessary items from the page payload

Our Adaptive Approach

Built using the Twitter Boostrap CSS framework

twittergithubcombootstrap

Provides a responsive design framework for supporting PC Mac tablet and mobile

We enhanced to provide better touch navigation support

Can be leveraged in the master page page layouts and display templates

Incorporated into the SharePoint 2013 Design Master

HTML based master page that can be edited with any tool

SharePoint converts to a master page when uploaded or saved

Additional Open Source Tools and Resources

HTML CSS JavaScript jQuery

httpwwww3schoolscom

httpgetbootstrapcom

httphandlebarsjscom

httpknockoutjscom

httpsangularjsorg

httpmomentjscom

Content Search Web Part

Web part is configured to return search results

Executed as client-side code in the browser

Pair of display templates map the data returned to HTML

Control template for the overall structure

Item template for each item returned

HTML Designer Manager files are compiled to JavaScript

REST Search and Handlebars

Search is accessible through REST calls

httpsiteurl_apisearchquery

Returns results as a JSON array

Handlebars is a templating engine to format that

Conceptually similar to display templates with control and item sections

jQuery glues this all together

Steps to Experiment

F12 to get into Developer Toolbar

Set a breakpoint where the REST URL is determined

Copy the value

Paste into the REST Search test window

Experiment with the query

Adjust the Handlebars template appropriately

Search Setup

Content Sources to define and schedule the crawls

Crawl logs to review success

Search Schema to define the managed properties

Reusable Content

Snippets of HTML that can be reused throughout the site

JavaScript can be intelligent and use the URL to determine its behaviour

Makes it easy for content authors to drop pre-configured dynamic content onto pages

Topic Pages

Shows all items that match a topic

Could be hundreds of virtual pages

Only one template page

Easily customizable and SEO friendly (each topic appears to be its own page)

Content by search web part open search against a query or result source

May be able to surface the topic pages themselves as site search results

Public Health Ontario

httpwwwpublichealthontariocaenBrowseByTopicPagesTopicaspxk=Influenza20InformationByTopic22Influenza22

Ontario Association of Childrens Aid Societies

Application Lifecycle Management

Purpose

How do we build a solid SharePoint development environment for the enterprise

How do a number of developers work together on a SharePoint project

How does code and content move through a dev test and production lifecycle

What is Agile and Continuous Integration and why is it important

Visual Studio and Team Foundation Server

Visual Studio 2010 is the development platform for coding on SharePoint 2010

Team Foundation Server integrates with Visual Studio to provide a repository for code test and other project artifacts

It facilitates teamwork by providing a common place for developers to work together

Provisioning SharePoint Farms

Provisioning SharePoint Farms

Every developer needs their own complete SharePoint farm

Teams need a dev integration farm to bring their work together on

A full architecture needs QA and production farms as well

Envision IT Virtualization Architecture

Developer VM Template

SharePoint Server 2010 Enterprise

SP1 and August CU

Visual Studio 2010 Premium SP1

Office 2010 Professional Plus SP1

SharePoint Designer 2010 SP1

Fiddler

SQL Server 2008 R2 SP1

Creating a new Developer VM

Open System Centre Virtual Machine Manager

Create Virtual Machine

Choose the Developer VM template

Set the virtual machine name and options

Create and start the VM

Creating a new Developer VM - Step 2

Developer RDPs to their new VM Complete the SQL Server installation

Create the default instance Set the service account(s) Set the authentication mode and server administrators

Update the AutoSPInstallerInputxml file Set the machine name for the default sites and database server Set the service account passwords

Run the AutoSPInstallerLaunch batch file Do a Health check review

Creating a new Developer VM - Step 3

Start Visual Studio

Connect to the Team Foundation Server

Setup your workspaces

Use a standard naming convention across your team

CDevelopmentTFSCollection

Other Environments

Dev Integration QA and Production can all be built using AutoSPInstall

Donrsquot need or want the Visual Studio or Office tools on these servers

We have a base template we use for dev integration servers

QA should match the Prod architecture as closely as possible

High availability with load balancing clustered SQL app servers DMZ hardening Internet publishing

Agile Development

Agile with Team Foundation Server

Creating Your TFS Project

Open Visual Studio

Make sure you are connected to the right Team Project Collection

In Team Explorer right-click the top collection and create a new Team Project

Use the Scrum 10 template

Go into the Areas and Iterations Delete the extraneous releases and sprints

Create a product backlog iteration

Start adding your stories and tasks

Continuous Integration

Continuous Integration

Automated Testing

SharePoint Site Elements

Site structure Site columns content types subsites lists libraries

Branding elements Master pages layouts CSS XSLT supporting images

Custom web parts Page and site content Web part instances Search Workflows Business Connectivity Services Managed Metadata

SharePoint Site Elements ndash Part 2

Access Excel Word Visio

PerformancePoint

Document conversions

Timer jobs

Secure Store Service

User profiles

Site Structure

bull Site columns

bull Define the fields that are used by content types

bull Content types

bull Defines collections of site columns for different types of content

bull Subsites

bull The hierarchy of sites that make up the site collection

bull Lists and Libraries

bull The lists and libraries for each subsite

Site Structure ndash Part 2

Site columns and content types can be programmatically or manually created If they are going to be used in multiple site collections they should be

programmatically created

If a single site collection they can be created manually in a master site collection

GUIDs cannot be manually set and code may need them to be consistent

You can create them manually in SharePoint save the site as a template and import them into Visual Studio to create a proper WSP package

Site Structure ndash Part 3

Site structure can also be done either programmatically or manually

Many sites are complex and it is error prone to create manually

We use our own SiteModelBuilder tool to create the site structure

Site Structure ndash Part 4

For all site structure elements changes can also be manual or programmatic It is useful to be able to delete the whole site collection and recreate it

programmatically As soon as content starts being authored in SharePoint it becomes difficult

or impossible to do that

After content authoring has started Site column and content type changes need to be programmed explicitly

(you canrsquot just drop the content type and recreate it) Site structure changes are usually done manually at this point Changes need to be backed up and restored

Change Management

Page and Site Content

Page and site content is entered directly into SharePoint by the content authors Web pages images PDFs list content etc This should be done in the master site separate from where dev integration is

happening Care needs to be taken with this site once authors start working Make sure it is part of your production backup plan

Periodically back it up and restore it to the dev integration and developer VMs

Alternatively script the export and import Ultimately it will be backed up and restored to the QA and production

farms

Change Management

Change Management

Change Management

Change Management

Web part instances

Web parts ultimately get placed on pages

The configuration of the web parts can often get quite complex

You may want to disable editing of web parts for general content authors

They end up in a grey zone between code and content

Web part instances ndash Part 2

We created our own internal tool to export and import web parts

Each web partrsquos configuration can be exported into a webpartfile

We scripted the extraction from the dev integration

webpart files are treated like code and checked into TFS for version control

Script then applies the new webpart files to the target environment

Workflows

Workflows can be built using SharePoint Designer Visual Studio or third-party tools (Nintex or K2 primarily)

Visual Studio workflow projects are automatically packaged as WSP solution files Simply deploy the WSP file to the other environments

SharePoint Designer workflows need to be deployed using SharePoint Designer This means you need SPD access to production which is not always possible

You can load the SPD workflow into Visual Studio to package it but you lose the ability to edit it in SPD

If you use third-party tools yoursquoll need to define the process for that as well

Business Connectivity Services

BCS can be built using either SharePoint Designer or Visual Studio Visual Studio BCS projects are automatically packaged as WSP

solution files Simply deploy the WSP file to the other environments You can also export the BDC metadata model in the BDC service

application

SharePoint Designer doesnrsquot create a WSP and it doesnrsquot make a complete BDC metadata model You need to export and import using SharePoint Designer

In both cases you still need to deal with connection and configuration information

Future Directions

Visual Studio Lab Management

Integrates the management of HyperV environments in with Visual Studio and Team Foundation Server

Can automate the provisioning of lab environments for automated testing

Test failures can snapshot entire environments to make reproduction of errors much easier

Summary

Yoursquore going to have lots of SharePoint environments ndash figure out how to build them quickly and repeatable

Code and content often move in opposite directions through dev QA and Prod PowerShell script and automate to keep this simple

Agile is a great way to run projects

Continuous integration with automated testing is key to its success

There are lots of parts of SharePoint that you donrsquot code through Visual Studio Figure out how you move those through your environment

Other Topics

Site Design

Information architecture

Wireframes

Creative designs ndash Mobile first

Catalogs deep dive

Site build PowerShell scripts

Team Foundation Server and Application Lifecycle Management

Starting a new project

Managing content authoring

Site Improve tool

SEO Optimizations

Analytics options

Retaining Page Ranks with permanent redirects (301)

Azure SharePoint Hosting

Q amp A

Session Evaluations

Go to Evaluations on the home page of wwwcollabconorg

It is important to get your feedback

Please fill out evaluations for all the sessions you attend

Following the conference a random drawing from all completed evaluations will be selected

The winner will receive a $250 Future Shop gift card valid online or in store

Page 23: Web Content Management - CollabCon 2015 - Web... · Performances Complete Works ... Friendly URL An SEO friendly URL defined in the term store for a page, rather than ... What’s

Branding Files

No longer in a Visual Studio WSP package

Simply a collection of files in the Builder folder

Still managed through TFS

Build script uploads and publishes these to the target site

Can edit directly against SharePoint by opening in Windows Explorer

Need to be careful about updating TFS

Export will export the branding files but has farm information in the files that makes it difficult to compare against TFS

Catalogs

Three main steps

Enabling lists or libraries as catalogs

Creating the catalog connection

Building the page layouts to display the category rollups or item detail pages

Enabling Catalogs

Doesnrsquot have to be a list can be a document Images or Pages library

Experimenting using a Pages library

This gives us draft and published states that lists donrsquot support

Preview and editing is easier

Fairly simple script to do this

Needs a full crawl after doing this

Creating the Catalog Connection

Rishan did some great work here

Scripts establish the connection and also update the term store as required

SharePoint Catalog Page Layouts

Uses the CSWP and Content Reuse web parts

Result sources defined in Search for each catalog connection

GUIDs for the result sources different in each farm and need to be updated as part of the deployment

REST Search Catalog Pages

HTML with data attributes on page layouts or in Reusable HTML

jQuery detects this

Builds a REST Search query based on the attributes and URL

Calls SharePoint

Uses Handlebars to format the results

Product Replacements

Video Player is part of the lib structure

Needs references added to the master page

Any hyperlink to an MP4 file launches the video popup

Image Rotator

Jeff is working on standardizing some jQuery slider options

Photo Viewer

No plans just yet

All of these will be part of the ESC package

Starting a New Project

Copy the five ESC scripts from $Envision Shakespeare CompanyBuilder Do not rename

Copy the ShakespeareBuild scripts Rename to your project Update the steps as required for your project

Create the infrastructure WSP Site columns content types list definitions and instances

Manually create the pages and assets that are needed in SharePoint Manually create the term store for metadata and navigation Script the extraction to TFS of content and term store Create the branding WSP Manually create any required web parts Export to TFS and script the placement of the web parts on the pages

ESC Scripts Next Steps

Incorporate TMX additions Farm property bag instead of webconfig Audiences Subsites Available layouts Permissions Extract folders and lists

Continue reconciling additional projects in OMA TMX Christie Medical

Full header blocks and commenting Version numbers Complete the catalog connection script Office 365 support

Links

wwwenvisionitcom

blogpetercarsonca

wwwenvisionitcomshakespeare

httpsShakespeareenvisionitcom

wwwbgccancom

wwwproblemgamblingca

wwwrusselmetalscom

wwwtarioncom

wwwtransamericaca

wwwcollegeofececa

wwwsamuelcom

wwwthewaterfrontpropertiesca

wwwshopsatdonmillsca

wwwfuturesherwaygardensca

wwwpublichealthontarioca

SharePoint WCM Glossary

SharePoint Glossary

Term Definition

SharePoint Farm A set of SharePoint servers that share a single configuration database

Web Application A top level container and entry-point URLs for site collections

Site Collection A set of Web sites that are in the same content database have the same owner and share administration settings A site collection can be identified by a GUID or the URL of the top-level site for the site collection Each site collection contains a top-level site can contain one or more subsites and can have a shared navigation structure

Path Based Site Collection A site collection under a managed pathhttpwebappsitessitecollection

Host Named Site Collection A site collection with its own unique URL Must be created through PowerShell

Site Subsite under a site collection

Site Template A template for a single site that has been saved from another site Site templates may or may not contain content Templates cannot be created from publishing sites

SharePoint Glossary

Term Definition

Site Column A single field that can store information of a particular typebull Textbull Choicebull Numberbull hellipDefined at the site collection level

Content Type A content type is a reusable collection of Site Columns that can be applied to a certain category of content Content types enable the management of metadata and behaviors of a document or item type in a centralized reusable way Basically content types include the columns (or fields) that are applied to a certain type of content plus other optional settings such as a document template

Document Set New content type in SharePoint 2010 A document set is a container for multiple documents to which you can assign certain metadata and treat as a single entity in many ways In addition a document set can contain one or more different content types

SharePoint Glossary

Term Definition

List A container for list content types or custom list items Columns can be defined via content types or directly in the list

Document Library A SharePoint list that contains documents where you can create collect update and share files with others Like lists columns can be defined via content types or directly in the list

Form Library A special type of library to facilitate the interaction with InfoPath forms

Asset Library A library typically used to store image audio and video files

List Template A template used to define the configuration of a list or library Templates can be saved with or without content

SharePoint Glossary

Term Definition

Term Store An instance of the Managed Metadata Service This can be shared between sites site collections web applications or farms

Group A collection of term sets

Term Set A collection of related terms

Term A word or a phrase that can be associated with a SharePoint item

Friendly URL An SEO friendly URL defined in the term store for a page rather than the physical URL of where the page is stored (Pages)

SharePoint Glossary

Term Definition

Design Manager 2013 feature used to manipulate WCM artifacts

Master Page Defines elements that are common to all pages such as the header navigation and footer

Page Layout Defines the layout of a particular style of page such as news or events Each page content type can have one or more layouts associated with them

Web Parts Functional elements that can be added to pages typically for dynamic content

Apps Similar to web parts but run outside of SharePoint while beinghosted in the SharePoint page

Publishing Site Page Rendering

FileName

Welcomeaspx

PageLayout

PageLayoutaspx

Title

Welcome To News

Body

Lorem ipsum dolor sit

Image

ImagesChairjpg

1 Welcomeaspx page is

requested

2 Page layout associated with

page is retrieved

3 Master page associated with site

is retrieved

4 Controls in page layout render

content from pagersquos fields into the page

MasterPagemaster

PageLayoutaspxTitle

BodyImage

Date

ByLine

Field Control

FieldControl

Field ControlField ControlField Control

Field Control

httpfoocombarpageswelcomeaspx

SharePoint Glossary

Term Definition

Cross-Site Publishing Publishing from an authoring site collection to one or more publishing site collections

Catalog A list that has been published as a catalog

Category Page A page that displays a rollup of catalog items

Catalog Item Page A page that displays a single item from a catalog

Display Template Used to format the results on search pages in content search web parts and on category pages

Whatrsquos New in Web Content

Management

Easier Page Authoring With Cut and Paste

Drag and Drop Files

Drag and drop files from Windows Explorer into the browser or the other way

Doesnrsquot support folders or document sets

Open in Windows Explorer still works best for this

Requires IE10 or current versions of Chrome Safari or Firefox

IE8 and 9 supported with Office 2013 installed

Image Renditions

Display uploaded images in predefined sizes widths and crops

Multiple renditions stored in document sets

Content author can create renditions (including crops) in the browser

Design Manager

New way to build master

pages and layouts

SharePoint Designer no

longer required

Edit and preview in any HTML

editor

Automatically creates the associated

master page and aspx

layouts

Package into a Design

Package WSP for

deployment

Snippet Gallery

Select components

such as search box or

navigation control

Configure its properties

Paste the snippet into your HTML

master page or layout

Changes synched to

actual master pages and layouts to convert to SharePoint

components

Can be used by any web design

tool

Device Channels

Map channels to mobile devices or browsers

Alternate master pages

can be assigned

Page layouts can include or

exclude content based

on channel

Display Templates

Used to customize the

presentation of search results

No more XSLT

Three templates

bull Control ndash Overall structure of search results

bull Group ndash Show groups of results

bull Item ndash How each result is presented

Navigation and Friendly URLs

Site navigation driven by managed metadata

Term store used for navigation and SEO-friendly URLs

Connect site navigation to business concepts rather than site structure

Server side control outputs HTML for top nav left nav and breadcrumb

Plan is to convert to client-side to support Office 365

Term Store Setup

Two groups used to separate metadata from navigation

Metadata group setup globally

Static GUIDs consistent through all environments

Navigation group setup at the site collection level

Allows multiple copies for multiple sites on the farm

Search

Search is new and different from all previous versions of SharePoint

The platform has been consolidated Built on a combination of FAST Search and SharePoint Search components as well as new development work ndash it is the

same from Foundation to Server

Foundation Search is intended to replace WSS Search Microsoft Search Server and Search Server Express from previous versions of SharePoint

Itrsquos used pervasively throughout the product now in many different ways in different features eDiscovery navigation topic pages Internet facing business sites etc

Search in SharePoint 2013

Single Extensible Platform

FAST Engine

SharePoint Crawler

Best of both

Same Search Platform in both SharePoint and Exchange

Enterprise Search

Search Page Web parts added to a publishing page

Catalogs Cross-site publishing

Library search Executes in place on the library

Site Search _layouts15osssearchresultsaspx Specifies the site and search parameters

Search Centre Basic Search Center - SharePoint Foundation 2013 Enterprise Search Center - SharePoint Server 2013

Content Search Web Part

Similar in concept to the Content Query Web Part

Many advantages

Can go across sites site collections web apps even farms

Leverages the search index -gt very scalable

Query Builder makes it easy to define your results

Use Display Templates to customize the look and feel No more XSLT

Part of the Enterprise CAL

Pre-Configured CSWPs

Popular Items Shows items that have been recently viewed by many users

Recently Changed Items Shows items that have been modified recently This can help site users

track the latest activity on a site or a library

Recommended Items Show content recommendations based on usage patterns for the current

page

All of these can be further configured by editing their properties and changing the search criteria

Search Results Web Part

Similar functionality to the Content Search Web Part

Doesnrsquot allow property mapping in the web part configuration

Mapping is controlled in the Display Template

Part of the Standard CAL

Category Page Item Page

Catalogs

wwwcontosocomproductsAudio-Liware2g

Catalogs

Results

Consistent Displays

Manage content in one place

No need to create

pages

No need to format

Metadata Navigation

Cross-Site Publishing

Reuse content between different sites including site collections and farms

Catalogs can surface lists into publishing sites onto a category page and item pages

Can be surfaced through the Content Search Web Part

No need to create and publish web pages

Create custom friendly URLs

Metadata based navigation base

Cross Site Publishing

Job Posting

Job Posting

Job Posting

Job Posting

Simcoe County District School Board

50000 students

Over 6000 employees

Board office in Barrie

Bordered by the Holland Marsh in the south the Trent-Severn Waterway in the east Grey County in the west and Muskoka in the north

Simcoe County District School Board

119 schools and centres 87 elementary 16 secondary 6 learning centres 10 alternative

Each needs their own web site Being built on SharePoint 2013 Elementary panel first Each has their own unique URL Content authored both at the school and centrally from the board

wwwscdsbonca Pre-existing SharePoint 2010 site Future goal is to rebuild in SharePoint 2013

Business Challenge

100+ public web sites

No standardization on style technology or content

No ability for the board to push content to the school sites

Outdated sites

Not mobile or AODA compliant

Site Features

Fully Adaptivemobile design Robust Search functionality Template makes it fast and efficient to add new school sites News and events can be targeted by the Board to any number of

school sites Target by panel weather zone trustee language Presented in a blended view with the school news and events

Home page rotator links hours content pages all managed by the school staff

SEO-friendly URLs

News

School news entered by school staff

Board news entered in the board site

Rendered using cross-site publishing

High-priority alerts can be flagged to highlight on the site

Bus or school cancellations

Events

Single and multi-day events

School and board managed like news

Adaptive calendar

School Picker

Used to pick which schools to target news and events to

Schools are tagged through the term store

Target by panel weather zone trustee language

Can override and add or remove individual schools

Search

Catalogs

Three main steps

Enabling lists or libraries as catalogs

Creating the catalog connection

Building the page layouts to display the category rollups or item detail pages

Enabling Catalogs

Doesnrsquot have to be a list can be a document Images or Pages library

Experimenting using a Pages library

This gives us draft and published states that lists donrsquot support

Preview and editing is easier

Fairly simple script to do this

Catalog connections are more complex

Create the connection

Fix up the Term Store

Create the Category and Item page layouts and pages

SEO Enhancements

Friendly URLs

Home page redirects

XML sitemaps automatically generated and updated

Custom SEO properties

Usage Analytics

Built for scale from the ground up Detail data rolled up every 15 days amp anonymized Daily events purged every 15 days monthly events after 3 years Lifetime counts always retained

Counts views amp unique itemsday Shows recent (2-weeks) and lifetime count Trims least visited content Pushes aggregate data to reporting database

Drives recommendations capabilities on content Calculations injected into search index as sortable managed properties Deep integration with search engine Can influence search relevance based on content usage

Variations and Multi-Lingual

Export and import content for translation in XLIFF format

Pages

Labels

List items

Navigation

Bing translation service comes with active SharePoint 2013 license

Adaptive Web Design

Adaptive vs Responsive

Adaptive

Fixed breakpoints‒ Desktop gt 980 px

‒ Table portrait gt 768 px

‒ Phone to tablet gt 480 px lt 768 px

‒ Smartphone lt 480 px

Responsive

No fixed breakpoints

Design fluidly adapts to whatever width the browser is

We generally do a hybrid approach with responsive design in the under 768 pixel situation

Design Approaches in SharePoint

Adaptive Design through CSS media queries

Broader standards approach used outside of SharePoint

Keeps a single master page and CSS

Some unnecessary components may still be loaded

Device Channels SharePoint specific approach

Assign different master pages to different device channels

Rules define what devices use which channels

Device Channel Panels can also target content to channels

Hybrid here can also make sense Device channels can be used to remove unnecessary items from the page payload

Our Adaptive Approach

Built using the Twitter Boostrap CSS framework

twittergithubcombootstrap

Provides a responsive design framework for supporting PC Mac tablet and mobile

We enhanced to provide better touch navigation support

Can be leveraged in the master page page layouts and display templates

Incorporated into the SharePoint 2013 Design Master

HTML based master page that can be edited with any tool

SharePoint converts to a master page when uploaded or saved

Additional Open Source Tools and Resources

HTML CSS JavaScript jQuery

httpwwww3schoolscom

httpgetbootstrapcom

httphandlebarsjscom

httpknockoutjscom

httpsangularjsorg

httpmomentjscom

Content Search Web Part

Web part is configured to return search results

Executed as client-side code in the browser

Pair of display templates map the data returned to HTML

Control template for the overall structure

Item template for each item returned

HTML Designer Manager files are compiled to JavaScript

REST Search and Handlebars

Search is accessible through REST calls

httpsiteurl_apisearchquery

Returns results as a JSON array

Handlebars is a templating engine to format that

Conceptually similar to display templates with control and item sections

jQuery glues this all together

Steps to Experiment

F12 to get into Developer Toolbar

Set a breakpoint where the REST URL is determined

Copy the value

Paste into the REST Search test window

Experiment with the query

Adjust the Handlebars template appropriately

Search Setup

Content Sources to define and schedule the crawls

Crawl logs to review success

Search Schema to define the managed properties

Reusable Content

Snippets of HTML that can be reused throughout the site

JavaScript can be intelligent and use the URL to determine its behaviour

Makes it easy for content authors to drop pre-configured dynamic content onto pages

Topic Pages

Shows all items that match a topic

Could be hundreds of virtual pages

Only one template page

Easily customizable and SEO friendly (each topic appears to be its own page)

Content by search web part open search against a query or result source

May be able to surface the topic pages themselves as site search results

Public Health Ontario

httpwwwpublichealthontariocaenBrowseByTopicPagesTopicaspxk=Influenza20InformationByTopic22Influenza22

Ontario Association of Childrens Aid Societies

Application Lifecycle Management

Purpose

How do we build a solid SharePoint development environment for the enterprise

How do a number of developers work together on a SharePoint project

How does code and content move through a dev test and production lifecycle

What is Agile and Continuous Integration and why is it important

Visual Studio and Team Foundation Server

Visual Studio 2010 is the development platform for coding on SharePoint 2010

Team Foundation Server integrates with Visual Studio to provide a repository for code test and other project artifacts

It facilitates teamwork by providing a common place for developers to work together

Provisioning SharePoint Farms

Provisioning SharePoint Farms

Every developer needs their own complete SharePoint farm

Teams need a dev integration farm to bring their work together on

A full architecture needs QA and production farms as well

Envision IT Virtualization Architecture

Developer VM Template

SharePoint Server 2010 Enterprise

SP1 and August CU

Visual Studio 2010 Premium SP1

Office 2010 Professional Plus SP1

SharePoint Designer 2010 SP1

Fiddler

SQL Server 2008 R2 SP1

Creating a new Developer VM

Open System Centre Virtual Machine Manager

Create Virtual Machine

Choose the Developer VM template

Set the virtual machine name and options

Create and start the VM

Creating a new Developer VM - Step 2

Developer RDPs to their new VM Complete the SQL Server installation

Create the default instance Set the service account(s) Set the authentication mode and server administrators

Update the AutoSPInstallerInputxml file Set the machine name for the default sites and database server Set the service account passwords

Run the AutoSPInstallerLaunch batch file Do a Health check review

Creating a new Developer VM - Step 3

Start Visual Studio

Connect to the Team Foundation Server

Setup your workspaces

Use a standard naming convention across your team

CDevelopmentTFSCollection

Other Environments

Dev Integration QA and Production can all be built using AutoSPInstall

Donrsquot need or want the Visual Studio or Office tools on these servers

We have a base template we use for dev integration servers

QA should match the Prod architecture as closely as possible

High availability with load balancing clustered SQL app servers DMZ hardening Internet publishing

Agile Development

Agile with Team Foundation Server

Creating Your TFS Project

Open Visual Studio

Make sure you are connected to the right Team Project Collection

In Team Explorer right-click the top collection and create a new Team Project

Use the Scrum 10 template

Go into the Areas and Iterations Delete the extraneous releases and sprints

Create a product backlog iteration

Start adding your stories and tasks

Continuous Integration

Continuous Integration

Automated Testing

SharePoint Site Elements

Site structure Site columns content types subsites lists libraries

Branding elements Master pages layouts CSS XSLT supporting images

Custom web parts Page and site content Web part instances Search Workflows Business Connectivity Services Managed Metadata

SharePoint Site Elements ndash Part 2

Access Excel Word Visio

PerformancePoint

Document conversions

Timer jobs

Secure Store Service

User profiles

Site Structure

bull Site columns

bull Define the fields that are used by content types

bull Content types

bull Defines collections of site columns for different types of content

bull Subsites

bull The hierarchy of sites that make up the site collection

bull Lists and Libraries

bull The lists and libraries for each subsite

Site Structure ndash Part 2

Site columns and content types can be programmatically or manually created If they are going to be used in multiple site collections they should be

programmatically created

If a single site collection they can be created manually in a master site collection

GUIDs cannot be manually set and code may need them to be consistent

You can create them manually in SharePoint save the site as a template and import them into Visual Studio to create a proper WSP package

Site Structure ndash Part 3

Site structure can also be done either programmatically or manually

Many sites are complex and it is error prone to create manually

We use our own SiteModelBuilder tool to create the site structure

Site Structure ndash Part 4

For all site structure elements changes can also be manual or programmatic It is useful to be able to delete the whole site collection and recreate it

programmatically As soon as content starts being authored in SharePoint it becomes difficult

or impossible to do that

After content authoring has started Site column and content type changes need to be programmed explicitly

(you canrsquot just drop the content type and recreate it) Site structure changes are usually done manually at this point Changes need to be backed up and restored

Change Management

Page and Site Content

Page and site content is entered directly into SharePoint by the content authors Web pages images PDFs list content etc This should be done in the master site separate from where dev integration is

happening Care needs to be taken with this site once authors start working Make sure it is part of your production backup plan

Periodically back it up and restore it to the dev integration and developer VMs

Alternatively script the export and import Ultimately it will be backed up and restored to the QA and production

farms

Change Management

Change Management

Change Management

Change Management

Web part instances

Web parts ultimately get placed on pages

The configuration of the web parts can often get quite complex

You may want to disable editing of web parts for general content authors

They end up in a grey zone between code and content

Web part instances ndash Part 2

We created our own internal tool to export and import web parts

Each web partrsquos configuration can be exported into a webpartfile

We scripted the extraction from the dev integration

webpart files are treated like code and checked into TFS for version control

Script then applies the new webpart files to the target environment

Workflows

Workflows can be built using SharePoint Designer Visual Studio or third-party tools (Nintex or K2 primarily)

Visual Studio workflow projects are automatically packaged as WSP solution files Simply deploy the WSP file to the other environments

SharePoint Designer workflows need to be deployed using SharePoint Designer This means you need SPD access to production which is not always possible

You can load the SPD workflow into Visual Studio to package it but you lose the ability to edit it in SPD

If you use third-party tools yoursquoll need to define the process for that as well

Business Connectivity Services

BCS can be built using either SharePoint Designer or Visual Studio Visual Studio BCS projects are automatically packaged as WSP

solution files Simply deploy the WSP file to the other environments You can also export the BDC metadata model in the BDC service

application

SharePoint Designer doesnrsquot create a WSP and it doesnrsquot make a complete BDC metadata model You need to export and import using SharePoint Designer

In both cases you still need to deal with connection and configuration information

Future Directions

Visual Studio Lab Management

Integrates the management of HyperV environments in with Visual Studio and Team Foundation Server

Can automate the provisioning of lab environments for automated testing

Test failures can snapshot entire environments to make reproduction of errors much easier

Summary

Yoursquore going to have lots of SharePoint environments ndash figure out how to build them quickly and repeatable

Code and content often move in opposite directions through dev QA and Prod PowerShell script and automate to keep this simple

Agile is a great way to run projects

Continuous integration with automated testing is key to its success

There are lots of parts of SharePoint that you donrsquot code through Visual Studio Figure out how you move those through your environment

Other Topics

Site Design

Information architecture

Wireframes

Creative designs ndash Mobile first

Catalogs deep dive

Site build PowerShell scripts

Team Foundation Server and Application Lifecycle Management

Starting a new project

Managing content authoring

Site Improve tool

SEO Optimizations

Analytics options

Retaining Page Ranks with permanent redirects (301)

Azure SharePoint Hosting

Q amp A

Session Evaluations

Go to Evaluations on the home page of wwwcollabconorg

It is important to get your feedback

Please fill out evaluations for all the sessions you attend

Following the conference a random drawing from all completed evaluations will be selected

The winner will receive a $250 Future Shop gift card valid online or in store

Page 24: Web Content Management - CollabCon 2015 - Web... · Performances Complete Works ... Friendly URL An SEO friendly URL defined in the term store for a page, rather than ... What’s

Catalogs

Three main steps

Enabling lists or libraries as catalogs

Creating the catalog connection

Building the page layouts to display the category rollups or item detail pages

Enabling Catalogs

Doesnrsquot have to be a list can be a document Images or Pages library

Experimenting using a Pages library

This gives us draft and published states that lists donrsquot support

Preview and editing is easier

Fairly simple script to do this

Needs a full crawl after doing this

Creating the Catalog Connection

Rishan did some great work here

Scripts establish the connection and also update the term store as required

SharePoint Catalog Page Layouts

Uses the CSWP and Content Reuse web parts

Result sources defined in Search for each catalog connection

GUIDs for the result sources different in each farm and need to be updated as part of the deployment

REST Search Catalog Pages

HTML with data attributes on page layouts or in Reusable HTML

jQuery detects this

Builds a REST Search query based on the attributes and URL

Calls SharePoint

Uses Handlebars to format the results

Product Replacements

Video Player is part of the lib structure

Needs references added to the master page

Any hyperlink to an MP4 file launches the video popup

Image Rotator

Jeff is working on standardizing some jQuery slider options

Photo Viewer

No plans just yet

All of these will be part of the ESC package

Starting a New Project

Copy the five ESC scripts from $Envision Shakespeare CompanyBuilder Do not rename

Copy the ShakespeareBuild scripts Rename to your project Update the steps as required for your project

Create the infrastructure WSP Site columns content types list definitions and instances

Manually create the pages and assets that are needed in SharePoint Manually create the term store for metadata and navigation Script the extraction to TFS of content and term store Create the branding WSP Manually create any required web parts Export to TFS and script the placement of the web parts on the pages

ESC Scripts Next Steps

Incorporate TMX additions Farm property bag instead of webconfig Audiences Subsites Available layouts Permissions Extract folders and lists

Continue reconciling additional projects in OMA TMX Christie Medical

Full header blocks and commenting Version numbers Complete the catalog connection script Office 365 support

Links

wwwenvisionitcom

blogpetercarsonca

wwwenvisionitcomshakespeare

httpsShakespeareenvisionitcom

wwwbgccancom

wwwproblemgamblingca

wwwrusselmetalscom

wwwtarioncom

wwwtransamericaca

wwwcollegeofececa

wwwsamuelcom

wwwthewaterfrontpropertiesca

wwwshopsatdonmillsca

wwwfuturesherwaygardensca

wwwpublichealthontarioca

SharePoint WCM Glossary

SharePoint Glossary

Term Definition

SharePoint Farm A set of SharePoint servers that share a single configuration database

Web Application A top level container and entry-point URLs for site collections

Site Collection A set of Web sites that are in the same content database have the same owner and share administration settings A site collection can be identified by a GUID or the URL of the top-level site for the site collection Each site collection contains a top-level site can contain one or more subsites and can have a shared navigation structure

Path Based Site Collection A site collection under a managed pathhttpwebappsitessitecollection

Host Named Site Collection A site collection with its own unique URL Must be created through PowerShell

Site Subsite under a site collection

Site Template A template for a single site that has been saved from another site Site templates may or may not contain content Templates cannot be created from publishing sites

SharePoint Glossary

Term Definition

Site Column A single field that can store information of a particular typebull Textbull Choicebull Numberbull hellipDefined at the site collection level

Content Type A content type is a reusable collection of Site Columns that can be applied to a certain category of content Content types enable the management of metadata and behaviors of a document or item type in a centralized reusable way Basically content types include the columns (or fields) that are applied to a certain type of content plus other optional settings such as a document template

Document Set New content type in SharePoint 2010 A document set is a container for multiple documents to which you can assign certain metadata and treat as a single entity in many ways In addition a document set can contain one or more different content types

SharePoint Glossary

Term Definition

List A container for list content types or custom list items Columns can be defined via content types or directly in the list

Document Library A SharePoint list that contains documents where you can create collect update and share files with others Like lists columns can be defined via content types or directly in the list

Form Library A special type of library to facilitate the interaction with InfoPath forms

Asset Library A library typically used to store image audio and video files

List Template A template used to define the configuration of a list or library Templates can be saved with or without content

SharePoint Glossary

Term Definition

Term Store An instance of the Managed Metadata Service This can be shared between sites site collections web applications or farms

Group A collection of term sets

Term Set A collection of related terms

Term A word or a phrase that can be associated with a SharePoint item

Friendly URL An SEO friendly URL defined in the term store for a page rather than the physical URL of where the page is stored (Pages)

SharePoint Glossary

Term Definition

Design Manager 2013 feature used to manipulate WCM artifacts

Master Page Defines elements that are common to all pages such as the header navigation and footer

Page Layout Defines the layout of a particular style of page such as news or events Each page content type can have one or more layouts associated with them

Web Parts Functional elements that can be added to pages typically for dynamic content

Apps Similar to web parts but run outside of SharePoint while beinghosted in the SharePoint page

Publishing Site Page Rendering

FileName

Welcomeaspx

PageLayout

PageLayoutaspx

Title

Welcome To News

Body

Lorem ipsum dolor sit

Image

ImagesChairjpg

1 Welcomeaspx page is

requested

2 Page layout associated with

page is retrieved

3 Master page associated with site

is retrieved

4 Controls in page layout render

content from pagersquos fields into the page

MasterPagemaster

PageLayoutaspxTitle

BodyImage

Date

ByLine

Field Control

FieldControl

Field ControlField ControlField Control

Field Control

httpfoocombarpageswelcomeaspx

SharePoint Glossary

Term Definition

Cross-Site Publishing Publishing from an authoring site collection to one or more publishing site collections

Catalog A list that has been published as a catalog

Category Page A page that displays a rollup of catalog items

Catalog Item Page A page that displays a single item from a catalog

Display Template Used to format the results on search pages in content search web parts and on category pages

Whatrsquos New in Web Content

Management

Easier Page Authoring With Cut and Paste

Drag and Drop Files

Drag and drop files from Windows Explorer into the browser or the other way

Doesnrsquot support folders or document sets

Open in Windows Explorer still works best for this

Requires IE10 or current versions of Chrome Safari or Firefox

IE8 and 9 supported with Office 2013 installed

Image Renditions

Display uploaded images in predefined sizes widths and crops

Multiple renditions stored in document sets

Content author can create renditions (including crops) in the browser

Design Manager

New way to build master

pages and layouts

SharePoint Designer no

longer required

Edit and preview in any HTML

editor

Automatically creates the associated

master page and aspx

layouts

Package into a Design

Package WSP for

deployment

Snippet Gallery

Select components

such as search box or

navigation control

Configure its properties

Paste the snippet into your HTML

master page or layout

Changes synched to

actual master pages and layouts to convert to SharePoint

components

Can be used by any web design

tool

Device Channels

Map channels to mobile devices or browsers

Alternate master pages

can be assigned

Page layouts can include or

exclude content based

on channel

Display Templates

Used to customize the

presentation of search results

No more XSLT

Three templates

bull Control ndash Overall structure of search results

bull Group ndash Show groups of results

bull Item ndash How each result is presented

Navigation and Friendly URLs

Site navigation driven by managed metadata

Term store used for navigation and SEO-friendly URLs

Connect site navigation to business concepts rather than site structure

Server side control outputs HTML for top nav left nav and breadcrumb

Plan is to convert to client-side to support Office 365

Term Store Setup

Two groups used to separate metadata from navigation

Metadata group setup globally

Static GUIDs consistent through all environments

Navigation group setup at the site collection level

Allows multiple copies for multiple sites on the farm

Search

Search is new and different from all previous versions of SharePoint

The platform has been consolidated Built on a combination of FAST Search and SharePoint Search components as well as new development work ndash it is the

same from Foundation to Server

Foundation Search is intended to replace WSS Search Microsoft Search Server and Search Server Express from previous versions of SharePoint

Itrsquos used pervasively throughout the product now in many different ways in different features eDiscovery navigation topic pages Internet facing business sites etc

Search in SharePoint 2013

Single Extensible Platform

FAST Engine

SharePoint Crawler

Best of both

Same Search Platform in both SharePoint and Exchange

Enterprise Search

Search Page Web parts added to a publishing page

Catalogs Cross-site publishing

Library search Executes in place on the library

Site Search _layouts15osssearchresultsaspx Specifies the site and search parameters

Search Centre Basic Search Center - SharePoint Foundation 2013 Enterprise Search Center - SharePoint Server 2013

Content Search Web Part

Similar in concept to the Content Query Web Part

Many advantages

Can go across sites site collections web apps even farms

Leverages the search index -gt very scalable

Query Builder makes it easy to define your results

Use Display Templates to customize the look and feel No more XSLT

Part of the Enterprise CAL

Pre-Configured CSWPs

Popular Items Shows items that have been recently viewed by many users

Recently Changed Items Shows items that have been modified recently This can help site users

track the latest activity on a site or a library

Recommended Items Show content recommendations based on usage patterns for the current

page

All of these can be further configured by editing their properties and changing the search criteria

Search Results Web Part

Similar functionality to the Content Search Web Part

Doesnrsquot allow property mapping in the web part configuration

Mapping is controlled in the Display Template

Part of the Standard CAL

Category Page Item Page

Catalogs

wwwcontosocomproductsAudio-Liware2g

Catalogs

Results

Consistent Displays

Manage content in one place

No need to create

pages

No need to format

Metadata Navigation

Cross-Site Publishing

Reuse content between different sites including site collections and farms

Catalogs can surface lists into publishing sites onto a category page and item pages

Can be surfaced through the Content Search Web Part

No need to create and publish web pages

Create custom friendly URLs

Metadata based navigation base

Cross Site Publishing

Job Posting

Job Posting

Job Posting

Job Posting

Simcoe County District School Board

50000 students

Over 6000 employees

Board office in Barrie

Bordered by the Holland Marsh in the south the Trent-Severn Waterway in the east Grey County in the west and Muskoka in the north

Simcoe County District School Board

119 schools and centres 87 elementary 16 secondary 6 learning centres 10 alternative

Each needs their own web site Being built on SharePoint 2013 Elementary panel first Each has their own unique URL Content authored both at the school and centrally from the board

wwwscdsbonca Pre-existing SharePoint 2010 site Future goal is to rebuild in SharePoint 2013

Business Challenge

100+ public web sites

No standardization on style technology or content

No ability for the board to push content to the school sites

Outdated sites

Not mobile or AODA compliant

Site Features

Fully Adaptivemobile design Robust Search functionality Template makes it fast and efficient to add new school sites News and events can be targeted by the Board to any number of

school sites Target by panel weather zone trustee language Presented in a blended view with the school news and events

Home page rotator links hours content pages all managed by the school staff

SEO-friendly URLs

News

School news entered by school staff

Board news entered in the board site

Rendered using cross-site publishing

High-priority alerts can be flagged to highlight on the site

Bus or school cancellations

Events

Single and multi-day events

School and board managed like news

Adaptive calendar

School Picker

Used to pick which schools to target news and events to

Schools are tagged through the term store

Target by panel weather zone trustee language

Can override and add or remove individual schools

Search

Catalogs

Three main steps

Enabling lists or libraries as catalogs

Creating the catalog connection

Building the page layouts to display the category rollups or item detail pages

Enabling Catalogs

Doesnrsquot have to be a list can be a document Images or Pages library

Experimenting using a Pages library

This gives us draft and published states that lists donrsquot support

Preview and editing is easier

Fairly simple script to do this

Catalog connections are more complex

Create the connection

Fix up the Term Store

Create the Category and Item page layouts and pages

SEO Enhancements

Friendly URLs

Home page redirects

XML sitemaps automatically generated and updated

Custom SEO properties

Usage Analytics

Built for scale from the ground up Detail data rolled up every 15 days amp anonymized Daily events purged every 15 days monthly events after 3 years Lifetime counts always retained

Counts views amp unique itemsday Shows recent (2-weeks) and lifetime count Trims least visited content Pushes aggregate data to reporting database

Drives recommendations capabilities on content Calculations injected into search index as sortable managed properties Deep integration with search engine Can influence search relevance based on content usage

Variations and Multi-Lingual

Export and import content for translation in XLIFF format

Pages

Labels

List items

Navigation

Bing translation service comes with active SharePoint 2013 license

Adaptive Web Design

Adaptive vs Responsive

Adaptive

Fixed breakpoints‒ Desktop gt 980 px

‒ Table portrait gt 768 px

‒ Phone to tablet gt 480 px lt 768 px

‒ Smartphone lt 480 px

Responsive

No fixed breakpoints

Design fluidly adapts to whatever width the browser is

We generally do a hybrid approach with responsive design in the under 768 pixel situation

Design Approaches in SharePoint

Adaptive Design through CSS media queries

Broader standards approach used outside of SharePoint

Keeps a single master page and CSS

Some unnecessary components may still be loaded

Device Channels SharePoint specific approach

Assign different master pages to different device channels

Rules define what devices use which channels

Device Channel Panels can also target content to channels

Hybrid here can also make sense Device channels can be used to remove unnecessary items from the page payload

Our Adaptive Approach

Built using the Twitter Boostrap CSS framework

twittergithubcombootstrap

Provides a responsive design framework for supporting PC Mac tablet and mobile

We enhanced to provide better touch navigation support

Can be leveraged in the master page page layouts and display templates

Incorporated into the SharePoint 2013 Design Master

HTML based master page that can be edited with any tool

SharePoint converts to a master page when uploaded or saved

Additional Open Source Tools and Resources

HTML CSS JavaScript jQuery

httpwwww3schoolscom

httpgetbootstrapcom

httphandlebarsjscom

httpknockoutjscom

httpsangularjsorg

httpmomentjscom

Content Search Web Part

Web part is configured to return search results

Executed as client-side code in the browser

Pair of display templates map the data returned to HTML

Control template for the overall structure

Item template for each item returned

HTML Designer Manager files are compiled to JavaScript

REST Search and Handlebars

Search is accessible through REST calls

httpsiteurl_apisearchquery

Returns results as a JSON array

Handlebars is a templating engine to format that

Conceptually similar to display templates with control and item sections

jQuery glues this all together

Steps to Experiment

F12 to get into Developer Toolbar

Set a breakpoint where the REST URL is determined

Copy the value

Paste into the REST Search test window

Experiment with the query

Adjust the Handlebars template appropriately

Search Setup

Content Sources to define and schedule the crawls

Crawl logs to review success

Search Schema to define the managed properties

Reusable Content

Snippets of HTML that can be reused throughout the site

JavaScript can be intelligent and use the URL to determine its behaviour

Makes it easy for content authors to drop pre-configured dynamic content onto pages

Topic Pages

Shows all items that match a topic

Could be hundreds of virtual pages

Only one template page

Easily customizable and SEO friendly (each topic appears to be its own page)

Content by search web part open search against a query or result source

May be able to surface the topic pages themselves as site search results

Public Health Ontario

httpwwwpublichealthontariocaenBrowseByTopicPagesTopicaspxk=Influenza20InformationByTopic22Influenza22

Ontario Association of Childrens Aid Societies

Application Lifecycle Management

Purpose

How do we build a solid SharePoint development environment for the enterprise

How do a number of developers work together on a SharePoint project

How does code and content move through a dev test and production lifecycle

What is Agile and Continuous Integration and why is it important

Visual Studio and Team Foundation Server

Visual Studio 2010 is the development platform for coding on SharePoint 2010

Team Foundation Server integrates with Visual Studio to provide a repository for code test and other project artifacts

It facilitates teamwork by providing a common place for developers to work together

Provisioning SharePoint Farms

Provisioning SharePoint Farms

Every developer needs their own complete SharePoint farm

Teams need a dev integration farm to bring their work together on

A full architecture needs QA and production farms as well

Envision IT Virtualization Architecture

Developer VM Template

SharePoint Server 2010 Enterprise

SP1 and August CU

Visual Studio 2010 Premium SP1

Office 2010 Professional Plus SP1

SharePoint Designer 2010 SP1

Fiddler

SQL Server 2008 R2 SP1

Creating a new Developer VM

Open System Centre Virtual Machine Manager

Create Virtual Machine

Choose the Developer VM template

Set the virtual machine name and options

Create and start the VM

Creating a new Developer VM - Step 2

Developer RDPs to their new VM Complete the SQL Server installation

Create the default instance Set the service account(s) Set the authentication mode and server administrators

Update the AutoSPInstallerInputxml file Set the machine name for the default sites and database server Set the service account passwords

Run the AutoSPInstallerLaunch batch file Do a Health check review

Creating a new Developer VM - Step 3

Start Visual Studio

Connect to the Team Foundation Server

Setup your workspaces

Use a standard naming convention across your team

CDevelopmentTFSCollection

Other Environments

Dev Integration QA and Production can all be built using AutoSPInstall

Donrsquot need or want the Visual Studio or Office tools on these servers

We have a base template we use for dev integration servers

QA should match the Prod architecture as closely as possible

High availability with load balancing clustered SQL app servers DMZ hardening Internet publishing

Agile Development

Agile with Team Foundation Server

Creating Your TFS Project

Open Visual Studio

Make sure you are connected to the right Team Project Collection

In Team Explorer right-click the top collection and create a new Team Project

Use the Scrum 10 template

Go into the Areas and Iterations Delete the extraneous releases and sprints

Create a product backlog iteration

Start adding your stories and tasks

Continuous Integration

Continuous Integration

Automated Testing

SharePoint Site Elements

Site structure Site columns content types subsites lists libraries

Branding elements Master pages layouts CSS XSLT supporting images

Custom web parts Page and site content Web part instances Search Workflows Business Connectivity Services Managed Metadata

SharePoint Site Elements ndash Part 2

Access Excel Word Visio

PerformancePoint

Document conversions

Timer jobs

Secure Store Service

User profiles

Site Structure

bull Site columns

bull Define the fields that are used by content types

bull Content types

bull Defines collections of site columns for different types of content

bull Subsites

bull The hierarchy of sites that make up the site collection

bull Lists and Libraries

bull The lists and libraries for each subsite

Site Structure ndash Part 2

Site columns and content types can be programmatically or manually created If they are going to be used in multiple site collections they should be

programmatically created

If a single site collection they can be created manually in a master site collection

GUIDs cannot be manually set and code may need them to be consistent

You can create them manually in SharePoint save the site as a template and import them into Visual Studio to create a proper WSP package

Site Structure ndash Part 3

Site structure can also be done either programmatically or manually

Many sites are complex and it is error prone to create manually

We use our own SiteModelBuilder tool to create the site structure

Site Structure ndash Part 4

For all site structure elements changes can also be manual or programmatic It is useful to be able to delete the whole site collection and recreate it

programmatically As soon as content starts being authored in SharePoint it becomes difficult

or impossible to do that

After content authoring has started Site column and content type changes need to be programmed explicitly

(you canrsquot just drop the content type and recreate it) Site structure changes are usually done manually at this point Changes need to be backed up and restored

Change Management

Page and Site Content

Page and site content is entered directly into SharePoint by the content authors Web pages images PDFs list content etc This should be done in the master site separate from where dev integration is

happening Care needs to be taken with this site once authors start working Make sure it is part of your production backup plan

Periodically back it up and restore it to the dev integration and developer VMs

Alternatively script the export and import Ultimately it will be backed up and restored to the QA and production

farms

Change Management

Change Management

Change Management

Change Management

Web part instances

Web parts ultimately get placed on pages

The configuration of the web parts can often get quite complex

You may want to disable editing of web parts for general content authors

They end up in a grey zone between code and content

Web part instances ndash Part 2

We created our own internal tool to export and import web parts

Each web partrsquos configuration can be exported into a webpartfile

We scripted the extraction from the dev integration

webpart files are treated like code and checked into TFS for version control

Script then applies the new webpart files to the target environment

Workflows

Workflows can be built using SharePoint Designer Visual Studio or third-party tools (Nintex or K2 primarily)

Visual Studio workflow projects are automatically packaged as WSP solution files Simply deploy the WSP file to the other environments

SharePoint Designer workflows need to be deployed using SharePoint Designer This means you need SPD access to production which is not always possible

You can load the SPD workflow into Visual Studio to package it but you lose the ability to edit it in SPD

If you use third-party tools yoursquoll need to define the process for that as well

Business Connectivity Services

BCS can be built using either SharePoint Designer or Visual Studio Visual Studio BCS projects are automatically packaged as WSP

solution files Simply deploy the WSP file to the other environments You can also export the BDC metadata model in the BDC service

application

SharePoint Designer doesnrsquot create a WSP and it doesnrsquot make a complete BDC metadata model You need to export and import using SharePoint Designer

In both cases you still need to deal with connection and configuration information

Future Directions

Visual Studio Lab Management

Integrates the management of HyperV environments in with Visual Studio and Team Foundation Server

Can automate the provisioning of lab environments for automated testing

Test failures can snapshot entire environments to make reproduction of errors much easier

Summary

Yoursquore going to have lots of SharePoint environments ndash figure out how to build them quickly and repeatable

Code and content often move in opposite directions through dev QA and Prod PowerShell script and automate to keep this simple

Agile is a great way to run projects

Continuous integration with automated testing is key to its success

There are lots of parts of SharePoint that you donrsquot code through Visual Studio Figure out how you move those through your environment

Other Topics

Site Design

Information architecture

Wireframes

Creative designs ndash Mobile first

Catalogs deep dive

Site build PowerShell scripts

Team Foundation Server and Application Lifecycle Management

Starting a new project

Managing content authoring

Site Improve tool

SEO Optimizations

Analytics options

Retaining Page Ranks with permanent redirects (301)

Azure SharePoint Hosting

Q amp A

Session Evaluations

Go to Evaluations on the home page of wwwcollabconorg

It is important to get your feedback

Please fill out evaluations for all the sessions you attend

Following the conference a random drawing from all completed evaluations will be selected

The winner will receive a $250 Future Shop gift card valid online or in store

Page 25: Web Content Management - CollabCon 2015 - Web... · Performances Complete Works ... Friendly URL An SEO friendly URL defined in the term store for a page, rather than ... What’s

Enabling Catalogs

Doesnrsquot have to be a list can be a document Images or Pages library

Experimenting using a Pages library

This gives us draft and published states that lists donrsquot support

Preview and editing is easier

Fairly simple script to do this

Needs a full crawl after doing this

Creating the Catalog Connection

Rishan did some great work here

Scripts establish the connection and also update the term store as required

SharePoint Catalog Page Layouts

Uses the CSWP and Content Reuse web parts

Result sources defined in Search for each catalog connection

GUIDs for the result sources different in each farm and need to be updated as part of the deployment

REST Search Catalog Pages

HTML with data attributes on page layouts or in Reusable HTML

jQuery detects this

Builds a REST Search query based on the attributes and URL

Calls SharePoint

Uses Handlebars to format the results

Product Replacements

Video Player is part of the lib structure

Needs references added to the master page

Any hyperlink to an MP4 file launches the video popup

Image Rotator

Jeff is working on standardizing some jQuery slider options

Photo Viewer

No plans just yet

All of these will be part of the ESC package

Starting a New Project

Copy the five ESC scripts from $Envision Shakespeare CompanyBuilder Do not rename

Copy the ShakespeareBuild scripts Rename to your project Update the steps as required for your project

Create the infrastructure WSP Site columns content types list definitions and instances

Manually create the pages and assets that are needed in SharePoint Manually create the term store for metadata and navigation Script the extraction to TFS of content and term store Create the branding WSP Manually create any required web parts Export to TFS and script the placement of the web parts on the pages

ESC Scripts Next Steps

Incorporate TMX additions Farm property bag instead of webconfig Audiences Subsites Available layouts Permissions Extract folders and lists

Continue reconciling additional projects in OMA TMX Christie Medical

Full header blocks and commenting Version numbers Complete the catalog connection script Office 365 support

Links

wwwenvisionitcom

blogpetercarsonca

wwwenvisionitcomshakespeare

httpsShakespeareenvisionitcom

wwwbgccancom

wwwproblemgamblingca

wwwrusselmetalscom

wwwtarioncom

wwwtransamericaca

wwwcollegeofececa

wwwsamuelcom

wwwthewaterfrontpropertiesca

wwwshopsatdonmillsca

wwwfuturesherwaygardensca

wwwpublichealthontarioca

SharePoint WCM Glossary

SharePoint Glossary

Term Definition

SharePoint Farm A set of SharePoint servers that share a single configuration database

Web Application A top level container and entry-point URLs for site collections

Site Collection A set of Web sites that are in the same content database have the same owner and share administration settings A site collection can be identified by a GUID or the URL of the top-level site for the site collection Each site collection contains a top-level site can contain one or more subsites and can have a shared navigation structure

Path Based Site Collection A site collection under a managed pathhttpwebappsitessitecollection

Host Named Site Collection A site collection with its own unique URL Must be created through PowerShell

Site Subsite under a site collection

Site Template A template for a single site that has been saved from another site Site templates may or may not contain content Templates cannot be created from publishing sites

SharePoint Glossary

Term Definition

Site Column A single field that can store information of a particular typebull Textbull Choicebull Numberbull hellipDefined at the site collection level

Content Type A content type is a reusable collection of Site Columns that can be applied to a certain category of content Content types enable the management of metadata and behaviors of a document or item type in a centralized reusable way Basically content types include the columns (or fields) that are applied to a certain type of content plus other optional settings such as a document template

Document Set New content type in SharePoint 2010 A document set is a container for multiple documents to which you can assign certain metadata and treat as a single entity in many ways In addition a document set can contain one or more different content types

SharePoint Glossary

Term Definition

List A container for list content types or custom list items Columns can be defined via content types or directly in the list

Document Library A SharePoint list that contains documents where you can create collect update and share files with others Like lists columns can be defined via content types or directly in the list

Form Library A special type of library to facilitate the interaction with InfoPath forms

Asset Library A library typically used to store image audio and video files

List Template A template used to define the configuration of a list or library Templates can be saved with or without content

SharePoint Glossary

Term Definition

Term Store An instance of the Managed Metadata Service This can be shared between sites site collections web applications or farms

Group A collection of term sets

Term Set A collection of related terms

Term A word or a phrase that can be associated with a SharePoint item

Friendly URL An SEO friendly URL defined in the term store for a page rather than the physical URL of where the page is stored (Pages)

SharePoint Glossary

Term Definition

Design Manager 2013 feature used to manipulate WCM artifacts

Master Page Defines elements that are common to all pages such as the header navigation and footer

Page Layout Defines the layout of a particular style of page such as news or events Each page content type can have one or more layouts associated with them

Web Parts Functional elements that can be added to pages typically for dynamic content

Apps Similar to web parts but run outside of SharePoint while beinghosted in the SharePoint page

Publishing Site Page Rendering

FileName

Welcomeaspx

PageLayout

PageLayoutaspx

Title

Welcome To News

Body

Lorem ipsum dolor sit

Image

ImagesChairjpg

1 Welcomeaspx page is

requested

2 Page layout associated with

page is retrieved

3 Master page associated with site

is retrieved

4 Controls in page layout render

content from pagersquos fields into the page

MasterPagemaster

PageLayoutaspxTitle

BodyImage

Date

ByLine

Field Control

FieldControl

Field ControlField ControlField Control

Field Control

httpfoocombarpageswelcomeaspx

SharePoint Glossary

Term Definition

Cross-Site Publishing Publishing from an authoring site collection to one or more publishing site collections

Catalog A list that has been published as a catalog

Category Page A page that displays a rollup of catalog items

Catalog Item Page A page that displays a single item from a catalog

Display Template Used to format the results on search pages in content search web parts and on category pages

Whatrsquos New in Web Content

Management

Easier Page Authoring With Cut and Paste

Drag and Drop Files

Drag and drop files from Windows Explorer into the browser or the other way

Doesnrsquot support folders or document sets

Open in Windows Explorer still works best for this

Requires IE10 or current versions of Chrome Safari or Firefox

IE8 and 9 supported with Office 2013 installed

Image Renditions

Display uploaded images in predefined sizes widths and crops

Multiple renditions stored in document sets

Content author can create renditions (including crops) in the browser

Design Manager

New way to build master

pages and layouts

SharePoint Designer no

longer required

Edit and preview in any HTML

editor

Automatically creates the associated

master page and aspx

layouts

Package into a Design

Package WSP for

deployment

Snippet Gallery

Select components

such as search box or

navigation control

Configure its properties

Paste the snippet into your HTML

master page or layout

Changes synched to

actual master pages and layouts to convert to SharePoint

components

Can be used by any web design

tool

Device Channels

Map channels to mobile devices or browsers

Alternate master pages

can be assigned

Page layouts can include or

exclude content based

on channel

Display Templates

Used to customize the

presentation of search results

No more XSLT

Three templates

bull Control ndash Overall structure of search results

bull Group ndash Show groups of results

bull Item ndash How each result is presented

Navigation and Friendly URLs

Site navigation driven by managed metadata

Term store used for navigation and SEO-friendly URLs

Connect site navigation to business concepts rather than site structure

Server side control outputs HTML for top nav left nav and breadcrumb

Plan is to convert to client-side to support Office 365

Term Store Setup

Two groups used to separate metadata from navigation

Metadata group setup globally

Static GUIDs consistent through all environments

Navigation group setup at the site collection level

Allows multiple copies for multiple sites on the farm

Search

Search is new and different from all previous versions of SharePoint

The platform has been consolidated Built on a combination of FAST Search and SharePoint Search components as well as new development work ndash it is the

same from Foundation to Server

Foundation Search is intended to replace WSS Search Microsoft Search Server and Search Server Express from previous versions of SharePoint

Itrsquos used pervasively throughout the product now in many different ways in different features eDiscovery navigation topic pages Internet facing business sites etc

Search in SharePoint 2013

Single Extensible Platform

FAST Engine

SharePoint Crawler

Best of both

Same Search Platform in both SharePoint and Exchange

Enterprise Search

Search Page Web parts added to a publishing page

Catalogs Cross-site publishing

Library search Executes in place on the library

Site Search _layouts15osssearchresultsaspx Specifies the site and search parameters

Search Centre Basic Search Center - SharePoint Foundation 2013 Enterprise Search Center - SharePoint Server 2013

Content Search Web Part

Similar in concept to the Content Query Web Part

Many advantages

Can go across sites site collections web apps even farms

Leverages the search index -gt very scalable

Query Builder makes it easy to define your results

Use Display Templates to customize the look and feel No more XSLT

Part of the Enterprise CAL

Pre-Configured CSWPs

Popular Items Shows items that have been recently viewed by many users

Recently Changed Items Shows items that have been modified recently This can help site users

track the latest activity on a site or a library

Recommended Items Show content recommendations based on usage patterns for the current

page

All of these can be further configured by editing their properties and changing the search criteria

Search Results Web Part

Similar functionality to the Content Search Web Part

Doesnrsquot allow property mapping in the web part configuration

Mapping is controlled in the Display Template

Part of the Standard CAL

Category Page Item Page

Catalogs

wwwcontosocomproductsAudio-Liware2g

Catalogs

Results

Consistent Displays

Manage content in one place

No need to create

pages

No need to format

Metadata Navigation

Cross-Site Publishing

Reuse content between different sites including site collections and farms

Catalogs can surface lists into publishing sites onto a category page and item pages

Can be surfaced through the Content Search Web Part

No need to create and publish web pages

Create custom friendly URLs

Metadata based navigation base

Cross Site Publishing

Job Posting

Job Posting

Job Posting

Job Posting

Simcoe County District School Board

50000 students

Over 6000 employees

Board office in Barrie

Bordered by the Holland Marsh in the south the Trent-Severn Waterway in the east Grey County in the west and Muskoka in the north

Simcoe County District School Board

119 schools and centres 87 elementary 16 secondary 6 learning centres 10 alternative

Each needs their own web site Being built on SharePoint 2013 Elementary panel first Each has their own unique URL Content authored both at the school and centrally from the board

wwwscdsbonca Pre-existing SharePoint 2010 site Future goal is to rebuild in SharePoint 2013

Business Challenge

100+ public web sites

No standardization on style technology or content

No ability for the board to push content to the school sites

Outdated sites

Not mobile or AODA compliant

Site Features

Fully Adaptivemobile design Robust Search functionality Template makes it fast and efficient to add new school sites News and events can be targeted by the Board to any number of

school sites Target by panel weather zone trustee language Presented in a blended view with the school news and events

Home page rotator links hours content pages all managed by the school staff

SEO-friendly URLs

News

School news entered by school staff

Board news entered in the board site

Rendered using cross-site publishing

High-priority alerts can be flagged to highlight on the site

Bus or school cancellations

Events

Single and multi-day events

School and board managed like news

Adaptive calendar

School Picker

Used to pick which schools to target news and events to

Schools are tagged through the term store

Target by panel weather zone trustee language

Can override and add or remove individual schools

Search

Catalogs

Three main steps

Enabling lists or libraries as catalogs

Creating the catalog connection

Building the page layouts to display the category rollups or item detail pages

Enabling Catalogs

Doesnrsquot have to be a list can be a document Images or Pages library

Experimenting using a Pages library

This gives us draft and published states that lists donrsquot support

Preview and editing is easier

Fairly simple script to do this

Catalog connections are more complex

Create the connection

Fix up the Term Store

Create the Category and Item page layouts and pages

SEO Enhancements

Friendly URLs

Home page redirects

XML sitemaps automatically generated and updated

Custom SEO properties

Usage Analytics

Built for scale from the ground up Detail data rolled up every 15 days amp anonymized Daily events purged every 15 days monthly events after 3 years Lifetime counts always retained

Counts views amp unique itemsday Shows recent (2-weeks) and lifetime count Trims least visited content Pushes aggregate data to reporting database

Drives recommendations capabilities on content Calculations injected into search index as sortable managed properties Deep integration with search engine Can influence search relevance based on content usage

Variations and Multi-Lingual

Export and import content for translation in XLIFF format

Pages

Labels

List items

Navigation

Bing translation service comes with active SharePoint 2013 license

Adaptive Web Design

Adaptive vs Responsive

Adaptive

Fixed breakpoints‒ Desktop gt 980 px

‒ Table portrait gt 768 px

‒ Phone to tablet gt 480 px lt 768 px

‒ Smartphone lt 480 px

Responsive

No fixed breakpoints

Design fluidly adapts to whatever width the browser is

We generally do a hybrid approach with responsive design in the under 768 pixel situation

Design Approaches in SharePoint

Adaptive Design through CSS media queries

Broader standards approach used outside of SharePoint

Keeps a single master page and CSS

Some unnecessary components may still be loaded

Device Channels SharePoint specific approach

Assign different master pages to different device channels

Rules define what devices use which channels

Device Channel Panels can also target content to channels

Hybrid here can also make sense Device channels can be used to remove unnecessary items from the page payload

Our Adaptive Approach

Built using the Twitter Boostrap CSS framework

twittergithubcombootstrap

Provides a responsive design framework for supporting PC Mac tablet and mobile

We enhanced to provide better touch navigation support

Can be leveraged in the master page page layouts and display templates

Incorporated into the SharePoint 2013 Design Master

HTML based master page that can be edited with any tool

SharePoint converts to a master page when uploaded or saved

Additional Open Source Tools and Resources

HTML CSS JavaScript jQuery

httpwwww3schoolscom

httpgetbootstrapcom

httphandlebarsjscom

httpknockoutjscom

httpsangularjsorg

httpmomentjscom

Content Search Web Part

Web part is configured to return search results

Executed as client-side code in the browser

Pair of display templates map the data returned to HTML

Control template for the overall structure

Item template for each item returned

HTML Designer Manager files are compiled to JavaScript

REST Search and Handlebars

Search is accessible through REST calls

httpsiteurl_apisearchquery

Returns results as a JSON array

Handlebars is a templating engine to format that

Conceptually similar to display templates with control and item sections

jQuery glues this all together

Steps to Experiment

F12 to get into Developer Toolbar

Set a breakpoint where the REST URL is determined

Copy the value

Paste into the REST Search test window

Experiment with the query

Adjust the Handlebars template appropriately

Search Setup

Content Sources to define and schedule the crawls

Crawl logs to review success

Search Schema to define the managed properties

Reusable Content

Snippets of HTML that can be reused throughout the site

JavaScript can be intelligent and use the URL to determine its behaviour

Makes it easy for content authors to drop pre-configured dynamic content onto pages

Topic Pages

Shows all items that match a topic

Could be hundreds of virtual pages

Only one template page

Easily customizable and SEO friendly (each topic appears to be its own page)

Content by search web part open search against a query or result source

May be able to surface the topic pages themselves as site search results

Public Health Ontario

httpwwwpublichealthontariocaenBrowseByTopicPagesTopicaspxk=Influenza20InformationByTopic22Influenza22

Ontario Association of Childrens Aid Societies

Application Lifecycle Management

Purpose

How do we build a solid SharePoint development environment for the enterprise

How do a number of developers work together on a SharePoint project

How does code and content move through a dev test and production lifecycle

What is Agile and Continuous Integration and why is it important

Visual Studio and Team Foundation Server

Visual Studio 2010 is the development platform for coding on SharePoint 2010

Team Foundation Server integrates with Visual Studio to provide a repository for code test and other project artifacts

It facilitates teamwork by providing a common place for developers to work together

Provisioning SharePoint Farms

Provisioning SharePoint Farms

Every developer needs their own complete SharePoint farm

Teams need a dev integration farm to bring their work together on

A full architecture needs QA and production farms as well

Envision IT Virtualization Architecture

Developer VM Template

SharePoint Server 2010 Enterprise

SP1 and August CU

Visual Studio 2010 Premium SP1

Office 2010 Professional Plus SP1

SharePoint Designer 2010 SP1

Fiddler

SQL Server 2008 R2 SP1

Creating a new Developer VM

Open System Centre Virtual Machine Manager

Create Virtual Machine

Choose the Developer VM template

Set the virtual machine name and options

Create and start the VM

Creating a new Developer VM - Step 2

Developer RDPs to their new VM Complete the SQL Server installation

Create the default instance Set the service account(s) Set the authentication mode and server administrators

Update the AutoSPInstallerInputxml file Set the machine name for the default sites and database server Set the service account passwords

Run the AutoSPInstallerLaunch batch file Do a Health check review

Creating a new Developer VM - Step 3

Start Visual Studio

Connect to the Team Foundation Server

Setup your workspaces

Use a standard naming convention across your team

CDevelopmentTFSCollection

Other Environments

Dev Integration QA and Production can all be built using AutoSPInstall

Donrsquot need or want the Visual Studio or Office tools on these servers

We have a base template we use for dev integration servers

QA should match the Prod architecture as closely as possible

High availability with load balancing clustered SQL app servers DMZ hardening Internet publishing

Agile Development

Agile with Team Foundation Server

Creating Your TFS Project

Open Visual Studio

Make sure you are connected to the right Team Project Collection

In Team Explorer right-click the top collection and create a new Team Project

Use the Scrum 10 template

Go into the Areas and Iterations Delete the extraneous releases and sprints

Create a product backlog iteration

Start adding your stories and tasks

Continuous Integration

Continuous Integration

Automated Testing

SharePoint Site Elements

Site structure Site columns content types subsites lists libraries

Branding elements Master pages layouts CSS XSLT supporting images

Custom web parts Page and site content Web part instances Search Workflows Business Connectivity Services Managed Metadata

SharePoint Site Elements ndash Part 2

Access Excel Word Visio

PerformancePoint

Document conversions

Timer jobs

Secure Store Service

User profiles

Site Structure

bull Site columns

bull Define the fields that are used by content types

bull Content types

bull Defines collections of site columns for different types of content

bull Subsites

bull The hierarchy of sites that make up the site collection

bull Lists and Libraries

bull The lists and libraries for each subsite

Site Structure ndash Part 2

Site columns and content types can be programmatically or manually created If they are going to be used in multiple site collections they should be

programmatically created

If a single site collection they can be created manually in a master site collection

GUIDs cannot be manually set and code may need them to be consistent

You can create them manually in SharePoint save the site as a template and import them into Visual Studio to create a proper WSP package

Site Structure ndash Part 3

Site structure can also be done either programmatically or manually

Many sites are complex and it is error prone to create manually

We use our own SiteModelBuilder tool to create the site structure

Site Structure ndash Part 4

For all site structure elements changes can also be manual or programmatic It is useful to be able to delete the whole site collection and recreate it

programmatically As soon as content starts being authored in SharePoint it becomes difficult

or impossible to do that

After content authoring has started Site column and content type changes need to be programmed explicitly

(you canrsquot just drop the content type and recreate it) Site structure changes are usually done manually at this point Changes need to be backed up and restored

Change Management

Page and Site Content

Page and site content is entered directly into SharePoint by the content authors Web pages images PDFs list content etc This should be done in the master site separate from where dev integration is

happening Care needs to be taken with this site once authors start working Make sure it is part of your production backup plan

Periodically back it up and restore it to the dev integration and developer VMs

Alternatively script the export and import Ultimately it will be backed up and restored to the QA and production

farms

Change Management

Change Management

Change Management

Change Management

Web part instances

Web parts ultimately get placed on pages

The configuration of the web parts can often get quite complex

You may want to disable editing of web parts for general content authors

They end up in a grey zone between code and content

Web part instances ndash Part 2

We created our own internal tool to export and import web parts

Each web partrsquos configuration can be exported into a webpartfile

We scripted the extraction from the dev integration

webpart files are treated like code and checked into TFS for version control

Script then applies the new webpart files to the target environment

Workflows

Workflows can be built using SharePoint Designer Visual Studio or third-party tools (Nintex or K2 primarily)

Visual Studio workflow projects are automatically packaged as WSP solution files Simply deploy the WSP file to the other environments

SharePoint Designer workflows need to be deployed using SharePoint Designer This means you need SPD access to production which is not always possible

You can load the SPD workflow into Visual Studio to package it but you lose the ability to edit it in SPD

If you use third-party tools yoursquoll need to define the process for that as well

Business Connectivity Services

BCS can be built using either SharePoint Designer or Visual Studio Visual Studio BCS projects are automatically packaged as WSP

solution files Simply deploy the WSP file to the other environments You can also export the BDC metadata model in the BDC service

application

SharePoint Designer doesnrsquot create a WSP and it doesnrsquot make a complete BDC metadata model You need to export and import using SharePoint Designer

In both cases you still need to deal with connection and configuration information

Future Directions

Visual Studio Lab Management

Integrates the management of HyperV environments in with Visual Studio and Team Foundation Server

Can automate the provisioning of lab environments for automated testing

Test failures can snapshot entire environments to make reproduction of errors much easier

Summary

Yoursquore going to have lots of SharePoint environments ndash figure out how to build them quickly and repeatable

Code and content often move in opposite directions through dev QA and Prod PowerShell script and automate to keep this simple

Agile is a great way to run projects

Continuous integration with automated testing is key to its success

There are lots of parts of SharePoint that you donrsquot code through Visual Studio Figure out how you move those through your environment

Other Topics

Site Design

Information architecture

Wireframes

Creative designs ndash Mobile first

Catalogs deep dive

Site build PowerShell scripts

Team Foundation Server and Application Lifecycle Management

Starting a new project

Managing content authoring

Site Improve tool

SEO Optimizations

Analytics options

Retaining Page Ranks with permanent redirects (301)

Azure SharePoint Hosting

Q amp A

Session Evaluations

Go to Evaluations on the home page of wwwcollabconorg

It is important to get your feedback

Please fill out evaluations for all the sessions you attend

Following the conference a random drawing from all completed evaluations will be selected

The winner will receive a $250 Future Shop gift card valid online or in store

Page 26: Web Content Management - CollabCon 2015 - Web... · Performances Complete Works ... Friendly URL An SEO friendly URL defined in the term store for a page, rather than ... What’s

Creating the Catalog Connection

Rishan did some great work here

Scripts establish the connection and also update the term store as required

SharePoint Catalog Page Layouts

Uses the CSWP and Content Reuse web parts

Result sources defined in Search for each catalog connection

GUIDs for the result sources different in each farm and need to be updated as part of the deployment

REST Search Catalog Pages

HTML with data attributes on page layouts or in Reusable HTML

jQuery detects this

Builds a REST Search query based on the attributes and URL

Calls SharePoint

Uses Handlebars to format the results

Product Replacements

Video Player is part of the lib structure

Needs references added to the master page

Any hyperlink to an MP4 file launches the video popup

Image Rotator

Jeff is working on standardizing some jQuery slider options

Photo Viewer

No plans just yet

All of these will be part of the ESC package

Starting a New Project

Copy the five ESC scripts from $Envision Shakespeare CompanyBuilder Do not rename

Copy the ShakespeareBuild scripts Rename to your project Update the steps as required for your project

Create the infrastructure WSP Site columns content types list definitions and instances

Manually create the pages and assets that are needed in SharePoint Manually create the term store for metadata and navigation Script the extraction to TFS of content and term store Create the branding WSP Manually create any required web parts Export to TFS and script the placement of the web parts on the pages

ESC Scripts Next Steps

Incorporate TMX additions Farm property bag instead of webconfig Audiences Subsites Available layouts Permissions Extract folders and lists

Continue reconciling additional projects in OMA TMX Christie Medical

Full header blocks and commenting Version numbers Complete the catalog connection script Office 365 support

Links

wwwenvisionitcom

blogpetercarsonca

wwwenvisionitcomshakespeare

httpsShakespeareenvisionitcom

wwwbgccancom

wwwproblemgamblingca

wwwrusselmetalscom

wwwtarioncom

wwwtransamericaca

wwwcollegeofececa

wwwsamuelcom

wwwthewaterfrontpropertiesca

wwwshopsatdonmillsca

wwwfuturesherwaygardensca

wwwpublichealthontarioca

SharePoint WCM Glossary

SharePoint Glossary

Term Definition

SharePoint Farm A set of SharePoint servers that share a single configuration database

Web Application A top level container and entry-point URLs for site collections

Site Collection A set of Web sites that are in the same content database have the same owner and share administration settings A site collection can be identified by a GUID or the URL of the top-level site for the site collection Each site collection contains a top-level site can contain one or more subsites and can have a shared navigation structure

Path Based Site Collection A site collection under a managed pathhttpwebappsitessitecollection

Host Named Site Collection A site collection with its own unique URL Must be created through PowerShell

Site Subsite under a site collection

Site Template A template for a single site that has been saved from another site Site templates may or may not contain content Templates cannot be created from publishing sites

SharePoint Glossary

Term Definition

Site Column A single field that can store information of a particular typebull Textbull Choicebull Numberbull hellipDefined at the site collection level

Content Type A content type is a reusable collection of Site Columns that can be applied to a certain category of content Content types enable the management of metadata and behaviors of a document or item type in a centralized reusable way Basically content types include the columns (or fields) that are applied to a certain type of content plus other optional settings such as a document template

Document Set New content type in SharePoint 2010 A document set is a container for multiple documents to which you can assign certain metadata and treat as a single entity in many ways In addition a document set can contain one or more different content types

SharePoint Glossary

Term Definition

List A container for list content types or custom list items Columns can be defined via content types or directly in the list

Document Library A SharePoint list that contains documents where you can create collect update and share files with others Like lists columns can be defined via content types or directly in the list

Form Library A special type of library to facilitate the interaction with InfoPath forms

Asset Library A library typically used to store image audio and video files

List Template A template used to define the configuration of a list or library Templates can be saved with or without content

SharePoint Glossary

Term Definition

Term Store An instance of the Managed Metadata Service This can be shared between sites site collections web applications or farms

Group A collection of term sets

Term Set A collection of related terms

Term A word or a phrase that can be associated with a SharePoint item

Friendly URL An SEO friendly URL defined in the term store for a page rather than the physical URL of where the page is stored (Pages)

SharePoint Glossary

Term Definition

Design Manager 2013 feature used to manipulate WCM artifacts

Master Page Defines elements that are common to all pages such as the header navigation and footer

Page Layout Defines the layout of a particular style of page such as news or events Each page content type can have one or more layouts associated with them

Web Parts Functional elements that can be added to pages typically for dynamic content

Apps Similar to web parts but run outside of SharePoint while beinghosted in the SharePoint page

Publishing Site Page Rendering

FileName

Welcomeaspx

PageLayout

PageLayoutaspx

Title

Welcome To News

Body

Lorem ipsum dolor sit

Image

ImagesChairjpg

1 Welcomeaspx page is

requested

2 Page layout associated with

page is retrieved

3 Master page associated with site

is retrieved

4 Controls in page layout render

content from pagersquos fields into the page

MasterPagemaster

PageLayoutaspxTitle

BodyImage

Date

ByLine

Field Control

FieldControl

Field ControlField ControlField Control

Field Control

httpfoocombarpageswelcomeaspx

SharePoint Glossary

Term Definition

Cross-Site Publishing Publishing from an authoring site collection to one or more publishing site collections

Catalog A list that has been published as a catalog

Category Page A page that displays a rollup of catalog items

Catalog Item Page A page that displays a single item from a catalog

Display Template Used to format the results on search pages in content search web parts and on category pages

Whatrsquos New in Web Content

Management

Easier Page Authoring With Cut and Paste

Drag and Drop Files

Drag and drop files from Windows Explorer into the browser or the other way

Doesnrsquot support folders or document sets

Open in Windows Explorer still works best for this

Requires IE10 or current versions of Chrome Safari or Firefox

IE8 and 9 supported with Office 2013 installed

Image Renditions

Display uploaded images in predefined sizes widths and crops

Multiple renditions stored in document sets

Content author can create renditions (including crops) in the browser

Design Manager

New way to build master

pages and layouts

SharePoint Designer no

longer required

Edit and preview in any HTML

editor

Automatically creates the associated

master page and aspx

layouts

Package into a Design

Package WSP for

deployment

Snippet Gallery

Select components

such as search box or

navigation control

Configure its properties

Paste the snippet into your HTML

master page or layout

Changes synched to

actual master pages and layouts to convert to SharePoint

components

Can be used by any web design

tool

Device Channels

Map channels to mobile devices or browsers

Alternate master pages

can be assigned

Page layouts can include or

exclude content based

on channel

Display Templates

Used to customize the

presentation of search results

No more XSLT

Three templates

bull Control ndash Overall structure of search results

bull Group ndash Show groups of results

bull Item ndash How each result is presented

Navigation and Friendly URLs

Site navigation driven by managed metadata

Term store used for navigation and SEO-friendly URLs

Connect site navigation to business concepts rather than site structure

Server side control outputs HTML for top nav left nav and breadcrumb

Plan is to convert to client-side to support Office 365

Term Store Setup

Two groups used to separate metadata from navigation

Metadata group setup globally

Static GUIDs consistent through all environments

Navigation group setup at the site collection level

Allows multiple copies for multiple sites on the farm

Search

Search is new and different from all previous versions of SharePoint

The platform has been consolidated Built on a combination of FAST Search and SharePoint Search components as well as new development work ndash it is the

same from Foundation to Server

Foundation Search is intended to replace WSS Search Microsoft Search Server and Search Server Express from previous versions of SharePoint

Itrsquos used pervasively throughout the product now in many different ways in different features eDiscovery navigation topic pages Internet facing business sites etc

Search in SharePoint 2013

Single Extensible Platform

FAST Engine

SharePoint Crawler

Best of both

Same Search Platform in both SharePoint and Exchange

Enterprise Search

Search Page Web parts added to a publishing page

Catalogs Cross-site publishing

Library search Executes in place on the library

Site Search _layouts15osssearchresultsaspx Specifies the site and search parameters

Search Centre Basic Search Center - SharePoint Foundation 2013 Enterprise Search Center - SharePoint Server 2013

Content Search Web Part

Similar in concept to the Content Query Web Part

Many advantages

Can go across sites site collections web apps even farms

Leverages the search index -gt very scalable

Query Builder makes it easy to define your results

Use Display Templates to customize the look and feel No more XSLT

Part of the Enterprise CAL

Pre-Configured CSWPs

Popular Items Shows items that have been recently viewed by many users

Recently Changed Items Shows items that have been modified recently This can help site users

track the latest activity on a site or a library

Recommended Items Show content recommendations based on usage patterns for the current

page

All of these can be further configured by editing their properties and changing the search criteria

Search Results Web Part

Similar functionality to the Content Search Web Part

Doesnrsquot allow property mapping in the web part configuration

Mapping is controlled in the Display Template

Part of the Standard CAL

Category Page Item Page

Catalogs

wwwcontosocomproductsAudio-Liware2g

Catalogs

Results

Consistent Displays

Manage content in one place

No need to create

pages

No need to format

Metadata Navigation

Cross-Site Publishing

Reuse content between different sites including site collections and farms

Catalogs can surface lists into publishing sites onto a category page and item pages

Can be surfaced through the Content Search Web Part

No need to create and publish web pages

Create custom friendly URLs

Metadata based navigation base

Cross Site Publishing

Job Posting

Job Posting

Job Posting

Job Posting

Simcoe County District School Board

50000 students

Over 6000 employees

Board office in Barrie

Bordered by the Holland Marsh in the south the Trent-Severn Waterway in the east Grey County in the west and Muskoka in the north

Simcoe County District School Board

119 schools and centres 87 elementary 16 secondary 6 learning centres 10 alternative

Each needs their own web site Being built on SharePoint 2013 Elementary panel first Each has their own unique URL Content authored both at the school and centrally from the board

wwwscdsbonca Pre-existing SharePoint 2010 site Future goal is to rebuild in SharePoint 2013

Business Challenge

100+ public web sites

No standardization on style technology or content

No ability for the board to push content to the school sites

Outdated sites

Not mobile or AODA compliant

Site Features

Fully Adaptivemobile design Robust Search functionality Template makes it fast and efficient to add new school sites News and events can be targeted by the Board to any number of

school sites Target by panel weather zone trustee language Presented in a blended view with the school news and events

Home page rotator links hours content pages all managed by the school staff

SEO-friendly URLs

News

School news entered by school staff

Board news entered in the board site

Rendered using cross-site publishing

High-priority alerts can be flagged to highlight on the site

Bus or school cancellations

Events

Single and multi-day events

School and board managed like news

Adaptive calendar

School Picker

Used to pick which schools to target news and events to

Schools are tagged through the term store

Target by panel weather zone trustee language

Can override and add or remove individual schools

Search

Catalogs

Three main steps

Enabling lists or libraries as catalogs

Creating the catalog connection

Building the page layouts to display the category rollups or item detail pages

Enabling Catalogs

Doesnrsquot have to be a list can be a document Images or Pages library

Experimenting using a Pages library

This gives us draft and published states that lists donrsquot support

Preview and editing is easier

Fairly simple script to do this

Catalog connections are more complex

Create the connection

Fix up the Term Store

Create the Category and Item page layouts and pages

SEO Enhancements

Friendly URLs

Home page redirects

XML sitemaps automatically generated and updated

Custom SEO properties

Usage Analytics

Built for scale from the ground up Detail data rolled up every 15 days amp anonymized Daily events purged every 15 days monthly events after 3 years Lifetime counts always retained

Counts views amp unique itemsday Shows recent (2-weeks) and lifetime count Trims least visited content Pushes aggregate data to reporting database

Drives recommendations capabilities on content Calculations injected into search index as sortable managed properties Deep integration with search engine Can influence search relevance based on content usage

Variations and Multi-Lingual

Export and import content for translation in XLIFF format

Pages

Labels

List items

Navigation

Bing translation service comes with active SharePoint 2013 license

Adaptive Web Design

Adaptive vs Responsive

Adaptive

Fixed breakpoints‒ Desktop gt 980 px

‒ Table portrait gt 768 px

‒ Phone to tablet gt 480 px lt 768 px

‒ Smartphone lt 480 px

Responsive

No fixed breakpoints

Design fluidly adapts to whatever width the browser is

We generally do a hybrid approach with responsive design in the under 768 pixel situation

Design Approaches in SharePoint

Adaptive Design through CSS media queries

Broader standards approach used outside of SharePoint

Keeps a single master page and CSS

Some unnecessary components may still be loaded

Device Channels SharePoint specific approach

Assign different master pages to different device channels

Rules define what devices use which channels

Device Channel Panels can also target content to channels

Hybrid here can also make sense Device channels can be used to remove unnecessary items from the page payload

Our Adaptive Approach

Built using the Twitter Boostrap CSS framework

twittergithubcombootstrap

Provides a responsive design framework for supporting PC Mac tablet and mobile

We enhanced to provide better touch navigation support

Can be leveraged in the master page page layouts and display templates

Incorporated into the SharePoint 2013 Design Master

HTML based master page that can be edited with any tool

SharePoint converts to a master page when uploaded or saved

Additional Open Source Tools and Resources

HTML CSS JavaScript jQuery

httpwwww3schoolscom

httpgetbootstrapcom

httphandlebarsjscom

httpknockoutjscom

httpsangularjsorg

httpmomentjscom

Content Search Web Part

Web part is configured to return search results

Executed as client-side code in the browser

Pair of display templates map the data returned to HTML

Control template for the overall structure

Item template for each item returned

HTML Designer Manager files are compiled to JavaScript

REST Search and Handlebars

Search is accessible through REST calls

httpsiteurl_apisearchquery

Returns results as a JSON array

Handlebars is a templating engine to format that

Conceptually similar to display templates with control and item sections

jQuery glues this all together

Steps to Experiment

F12 to get into Developer Toolbar

Set a breakpoint where the REST URL is determined

Copy the value

Paste into the REST Search test window

Experiment with the query

Adjust the Handlebars template appropriately

Search Setup

Content Sources to define and schedule the crawls

Crawl logs to review success

Search Schema to define the managed properties

Reusable Content

Snippets of HTML that can be reused throughout the site

JavaScript can be intelligent and use the URL to determine its behaviour

Makes it easy for content authors to drop pre-configured dynamic content onto pages

Topic Pages

Shows all items that match a topic

Could be hundreds of virtual pages

Only one template page

Easily customizable and SEO friendly (each topic appears to be its own page)

Content by search web part open search against a query or result source

May be able to surface the topic pages themselves as site search results

Public Health Ontario

httpwwwpublichealthontariocaenBrowseByTopicPagesTopicaspxk=Influenza20InformationByTopic22Influenza22

Ontario Association of Childrens Aid Societies

Application Lifecycle Management

Purpose

How do we build a solid SharePoint development environment for the enterprise

How do a number of developers work together on a SharePoint project

How does code and content move through a dev test and production lifecycle

What is Agile and Continuous Integration and why is it important

Visual Studio and Team Foundation Server

Visual Studio 2010 is the development platform for coding on SharePoint 2010

Team Foundation Server integrates with Visual Studio to provide a repository for code test and other project artifacts

It facilitates teamwork by providing a common place for developers to work together

Provisioning SharePoint Farms

Provisioning SharePoint Farms

Every developer needs their own complete SharePoint farm

Teams need a dev integration farm to bring their work together on

A full architecture needs QA and production farms as well

Envision IT Virtualization Architecture

Developer VM Template

SharePoint Server 2010 Enterprise

SP1 and August CU

Visual Studio 2010 Premium SP1

Office 2010 Professional Plus SP1

SharePoint Designer 2010 SP1

Fiddler

SQL Server 2008 R2 SP1

Creating a new Developer VM

Open System Centre Virtual Machine Manager

Create Virtual Machine

Choose the Developer VM template

Set the virtual machine name and options

Create and start the VM

Creating a new Developer VM - Step 2

Developer RDPs to their new VM Complete the SQL Server installation

Create the default instance Set the service account(s) Set the authentication mode and server administrators

Update the AutoSPInstallerInputxml file Set the machine name for the default sites and database server Set the service account passwords

Run the AutoSPInstallerLaunch batch file Do a Health check review

Creating a new Developer VM - Step 3

Start Visual Studio

Connect to the Team Foundation Server

Setup your workspaces

Use a standard naming convention across your team

CDevelopmentTFSCollection

Other Environments

Dev Integration QA and Production can all be built using AutoSPInstall

Donrsquot need or want the Visual Studio or Office tools on these servers

We have a base template we use for dev integration servers

QA should match the Prod architecture as closely as possible

High availability with load balancing clustered SQL app servers DMZ hardening Internet publishing

Agile Development

Agile with Team Foundation Server

Creating Your TFS Project

Open Visual Studio

Make sure you are connected to the right Team Project Collection

In Team Explorer right-click the top collection and create a new Team Project

Use the Scrum 10 template

Go into the Areas and Iterations Delete the extraneous releases and sprints

Create a product backlog iteration

Start adding your stories and tasks

Continuous Integration

Continuous Integration

Automated Testing

SharePoint Site Elements

Site structure Site columns content types subsites lists libraries

Branding elements Master pages layouts CSS XSLT supporting images

Custom web parts Page and site content Web part instances Search Workflows Business Connectivity Services Managed Metadata

SharePoint Site Elements ndash Part 2

Access Excel Word Visio

PerformancePoint

Document conversions

Timer jobs

Secure Store Service

User profiles

Site Structure

bull Site columns

bull Define the fields that are used by content types

bull Content types

bull Defines collections of site columns for different types of content

bull Subsites

bull The hierarchy of sites that make up the site collection

bull Lists and Libraries

bull The lists and libraries for each subsite

Site Structure ndash Part 2

Site columns and content types can be programmatically or manually created If they are going to be used in multiple site collections they should be

programmatically created

If a single site collection they can be created manually in a master site collection

GUIDs cannot be manually set and code may need them to be consistent

You can create them manually in SharePoint save the site as a template and import them into Visual Studio to create a proper WSP package

Site Structure ndash Part 3

Site structure can also be done either programmatically or manually

Many sites are complex and it is error prone to create manually

We use our own SiteModelBuilder tool to create the site structure

Site Structure ndash Part 4

For all site structure elements changes can also be manual or programmatic It is useful to be able to delete the whole site collection and recreate it

programmatically As soon as content starts being authored in SharePoint it becomes difficult

or impossible to do that

After content authoring has started Site column and content type changes need to be programmed explicitly

(you canrsquot just drop the content type and recreate it) Site structure changes are usually done manually at this point Changes need to be backed up and restored

Change Management

Page and Site Content

Page and site content is entered directly into SharePoint by the content authors Web pages images PDFs list content etc This should be done in the master site separate from where dev integration is

happening Care needs to be taken with this site once authors start working Make sure it is part of your production backup plan

Periodically back it up and restore it to the dev integration and developer VMs

Alternatively script the export and import Ultimately it will be backed up and restored to the QA and production

farms

Change Management

Change Management

Change Management

Change Management

Web part instances

Web parts ultimately get placed on pages

The configuration of the web parts can often get quite complex

You may want to disable editing of web parts for general content authors

They end up in a grey zone between code and content

Web part instances ndash Part 2

We created our own internal tool to export and import web parts

Each web partrsquos configuration can be exported into a webpartfile

We scripted the extraction from the dev integration

webpart files are treated like code and checked into TFS for version control

Script then applies the new webpart files to the target environment

Workflows

Workflows can be built using SharePoint Designer Visual Studio or third-party tools (Nintex or K2 primarily)

Visual Studio workflow projects are automatically packaged as WSP solution files Simply deploy the WSP file to the other environments

SharePoint Designer workflows need to be deployed using SharePoint Designer This means you need SPD access to production which is not always possible

You can load the SPD workflow into Visual Studio to package it but you lose the ability to edit it in SPD

If you use third-party tools yoursquoll need to define the process for that as well

Business Connectivity Services

BCS can be built using either SharePoint Designer or Visual Studio Visual Studio BCS projects are automatically packaged as WSP

solution files Simply deploy the WSP file to the other environments You can also export the BDC metadata model in the BDC service

application

SharePoint Designer doesnrsquot create a WSP and it doesnrsquot make a complete BDC metadata model You need to export and import using SharePoint Designer

In both cases you still need to deal with connection and configuration information

Future Directions

Visual Studio Lab Management

Integrates the management of HyperV environments in with Visual Studio and Team Foundation Server

Can automate the provisioning of lab environments for automated testing

Test failures can snapshot entire environments to make reproduction of errors much easier

Summary

Yoursquore going to have lots of SharePoint environments ndash figure out how to build them quickly and repeatable

Code and content often move in opposite directions through dev QA and Prod PowerShell script and automate to keep this simple

Agile is a great way to run projects

Continuous integration with automated testing is key to its success

There are lots of parts of SharePoint that you donrsquot code through Visual Studio Figure out how you move those through your environment

Other Topics

Site Design

Information architecture

Wireframes

Creative designs ndash Mobile first

Catalogs deep dive

Site build PowerShell scripts

Team Foundation Server and Application Lifecycle Management

Starting a new project

Managing content authoring

Site Improve tool

SEO Optimizations

Analytics options

Retaining Page Ranks with permanent redirects (301)

Azure SharePoint Hosting

Q amp A

Session Evaluations

Go to Evaluations on the home page of wwwcollabconorg

It is important to get your feedback

Please fill out evaluations for all the sessions you attend

Following the conference a random drawing from all completed evaluations will be selected

The winner will receive a $250 Future Shop gift card valid online or in store

Page 27: Web Content Management - CollabCon 2015 - Web... · Performances Complete Works ... Friendly URL An SEO friendly URL defined in the term store for a page, rather than ... What’s

SharePoint Catalog Page Layouts

Uses the CSWP and Content Reuse web parts

Result sources defined in Search for each catalog connection

GUIDs for the result sources different in each farm and need to be updated as part of the deployment

REST Search Catalog Pages

HTML with data attributes on page layouts or in Reusable HTML

jQuery detects this

Builds a REST Search query based on the attributes and URL

Calls SharePoint

Uses Handlebars to format the results

Product Replacements

Video Player is part of the lib structure

Needs references added to the master page

Any hyperlink to an MP4 file launches the video popup

Image Rotator

Jeff is working on standardizing some jQuery slider options

Photo Viewer

No plans just yet

All of these will be part of the ESC package

Starting a New Project

Copy the five ESC scripts from $Envision Shakespeare CompanyBuilder Do not rename

Copy the ShakespeareBuild scripts Rename to your project Update the steps as required for your project

Create the infrastructure WSP Site columns content types list definitions and instances

Manually create the pages and assets that are needed in SharePoint Manually create the term store for metadata and navigation Script the extraction to TFS of content and term store Create the branding WSP Manually create any required web parts Export to TFS and script the placement of the web parts on the pages

ESC Scripts Next Steps

Incorporate TMX additions Farm property bag instead of webconfig Audiences Subsites Available layouts Permissions Extract folders and lists

Continue reconciling additional projects in OMA TMX Christie Medical

Full header blocks and commenting Version numbers Complete the catalog connection script Office 365 support

Links

wwwenvisionitcom

blogpetercarsonca

wwwenvisionitcomshakespeare

httpsShakespeareenvisionitcom

wwwbgccancom

wwwproblemgamblingca

wwwrusselmetalscom

wwwtarioncom

wwwtransamericaca

wwwcollegeofececa

wwwsamuelcom

wwwthewaterfrontpropertiesca

wwwshopsatdonmillsca

wwwfuturesherwaygardensca

wwwpublichealthontarioca

SharePoint WCM Glossary

SharePoint Glossary

Term Definition

SharePoint Farm A set of SharePoint servers that share a single configuration database

Web Application A top level container and entry-point URLs for site collections

Site Collection A set of Web sites that are in the same content database have the same owner and share administration settings A site collection can be identified by a GUID or the URL of the top-level site for the site collection Each site collection contains a top-level site can contain one or more subsites and can have a shared navigation structure

Path Based Site Collection A site collection under a managed pathhttpwebappsitessitecollection

Host Named Site Collection A site collection with its own unique URL Must be created through PowerShell

Site Subsite under a site collection

Site Template A template for a single site that has been saved from another site Site templates may or may not contain content Templates cannot be created from publishing sites

SharePoint Glossary

Term Definition

Site Column A single field that can store information of a particular typebull Textbull Choicebull Numberbull hellipDefined at the site collection level

Content Type A content type is a reusable collection of Site Columns that can be applied to a certain category of content Content types enable the management of metadata and behaviors of a document or item type in a centralized reusable way Basically content types include the columns (or fields) that are applied to a certain type of content plus other optional settings such as a document template

Document Set New content type in SharePoint 2010 A document set is a container for multiple documents to which you can assign certain metadata and treat as a single entity in many ways In addition a document set can contain one or more different content types

SharePoint Glossary

Term Definition

List A container for list content types or custom list items Columns can be defined via content types or directly in the list

Document Library A SharePoint list that contains documents where you can create collect update and share files with others Like lists columns can be defined via content types or directly in the list

Form Library A special type of library to facilitate the interaction with InfoPath forms

Asset Library A library typically used to store image audio and video files

List Template A template used to define the configuration of a list or library Templates can be saved with or without content

SharePoint Glossary

Term Definition

Term Store An instance of the Managed Metadata Service This can be shared between sites site collections web applications or farms

Group A collection of term sets

Term Set A collection of related terms

Term A word or a phrase that can be associated with a SharePoint item

Friendly URL An SEO friendly URL defined in the term store for a page rather than the physical URL of where the page is stored (Pages)

SharePoint Glossary

Term Definition

Design Manager 2013 feature used to manipulate WCM artifacts

Master Page Defines elements that are common to all pages such as the header navigation and footer

Page Layout Defines the layout of a particular style of page such as news or events Each page content type can have one or more layouts associated with them

Web Parts Functional elements that can be added to pages typically for dynamic content

Apps Similar to web parts but run outside of SharePoint while beinghosted in the SharePoint page

Publishing Site Page Rendering

FileName

Welcomeaspx

PageLayout

PageLayoutaspx

Title

Welcome To News

Body

Lorem ipsum dolor sit

Image

ImagesChairjpg

1 Welcomeaspx page is

requested

2 Page layout associated with

page is retrieved

3 Master page associated with site

is retrieved

4 Controls in page layout render

content from pagersquos fields into the page

MasterPagemaster

PageLayoutaspxTitle

BodyImage

Date

ByLine

Field Control

FieldControl

Field ControlField ControlField Control

Field Control

httpfoocombarpageswelcomeaspx

SharePoint Glossary

Term Definition

Cross-Site Publishing Publishing from an authoring site collection to one or more publishing site collections

Catalog A list that has been published as a catalog

Category Page A page that displays a rollup of catalog items

Catalog Item Page A page that displays a single item from a catalog

Display Template Used to format the results on search pages in content search web parts and on category pages

Whatrsquos New in Web Content

Management

Easier Page Authoring With Cut and Paste

Drag and Drop Files

Drag and drop files from Windows Explorer into the browser or the other way

Doesnrsquot support folders or document sets

Open in Windows Explorer still works best for this

Requires IE10 or current versions of Chrome Safari or Firefox

IE8 and 9 supported with Office 2013 installed

Image Renditions

Display uploaded images in predefined sizes widths and crops

Multiple renditions stored in document sets

Content author can create renditions (including crops) in the browser

Design Manager

New way to build master

pages and layouts

SharePoint Designer no

longer required

Edit and preview in any HTML

editor

Automatically creates the associated

master page and aspx

layouts

Package into a Design

Package WSP for

deployment

Snippet Gallery

Select components

such as search box or

navigation control

Configure its properties

Paste the snippet into your HTML

master page or layout

Changes synched to

actual master pages and layouts to convert to SharePoint

components

Can be used by any web design

tool

Device Channels

Map channels to mobile devices or browsers

Alternate master pages

can be assigned

Page layouts can include or

exclude content based

on channel

Display Templates

Used to customize the

presentation of search results

No more XSLT

Three templates

bull Control ndash Overall structure of search results

bull Group ndash Show groups of results

bull Item ndash How each result is presented

Navigation and Friendly URLs

Site navigation driven by managed metadata

Term store used for navigation and SEO-friendly URLs

Connect site navigation to business concepts rather than site structure

Server side control outputs HTML for top nav left nav and breadcrumb

Plan is to convert to client-side to support Office 365

Term Store Setup

Two groups used to separate metadata from navigation

Metadata group setup globally

Static GUIDs consistent through all environments

Navigation group setup at the site collection level

Allows multiple copies for multiple sites on the farm

Search

Search is new and different from all previous versions of SharePoint

The platform has been consolidated Built on a combination of FAST Search and SharePoint Search components as well as new development work ndash it is the

same from Foundation to Server

Foundation Search is intended to replace WSS Search Microsoft Search Server and Search Server Express from previous versions of SharePoint

Itrsquos used pervasively throughout the product now in many different ways in different features eDiscovery navigation topic pages Internet facing business sites etc

Search in SharePoint 2013

Single Extensible Platform

FAST Engine

SharePoint Crawler

Best of both

Same Search Platform in both SharePoint and Exchange

Enterprise Search

Search Page Web parts added to a publishing page

Catalogs Cross-site publishing

Library search Executes in place on the library

Site Search _layouts15osssearchresultsaspx Specifies the site and search parameters

Search Centre Basic Search Center - SharePoint Foundation 2013 Enterprise Search Center - SharePoint Server 2013

Content Search Web Part

Similar in concept to the Content Query Web Part

Many advantages

Can go across sites site collections web apps even farms

Leverages the search index -gt very scalable

Query Builder makes it easy to define your results

Use Display Templates to customize the look and feel No more XSLT

Part of the Enterprise CAL

Pre-Configured CSWPs

Popular Items Shows items that have been recently viewed by many users

Recently Changed Items Shows items that have been modified recently This can help site users

track the latest activity on a site or a library

Recommended Items Show content recommendations based on usage patterns for the current

page

All of these can be further configured by editing their properties and changing the search criteria

Search Results Web Part

Similar functionality to the Content Search Web Part

Doesnrsquot allow property mapping in the web part configuration

Mapping is controlled in the Display Template

Part of the Standard CAL

Category Page Item Page

Catalogs

wwwcontosocomproductsAudio-Liware2g

Catalogs

Results

Consistent Displays

Manage content in one place

No need to create

pages

No need to format

Metadata Navigation

Cross-Site Publishing

Reuse content between different sites including site collections and farms

Catalogs can surface lists into publishing sites onto a category page and item pages

Can be surfaced through the Content Search Web Part

No need to create and publish web pages

Create custom friendly URLs

Metadata based navigation base

Cross Site Publishing

Job Posting

Job Posting

Job Posting

Job Posting

Simcoe County District School Board

50000 students

Over 6000 employees

Board office in Barrie

Bordered by the Holland Marsh in the south the Trent-Severn Waterway in the east Grey County in the west and Muskoka in the north

Simcoe County District School Board

119 schools and centres 87 elementary 16 secondary 6 learning centres 10 alternative

Each needs their own web site Being built on SharePoint 2013 Elementary panel first Each has their own unique URL Content authored both at the school and centrally from the board

wwwscdsbonca Pre-existing SharePoint 2010 site Future goal is to rebuild in SharePoint 2013

Business Challenge

100+ public web sites

No standardization on style technology or content

No ability for the board to push content to the school sites

Outdated sites

Not mobile or AODA compliant

Site Features

Fully Adaptivemobile design Robust Search functionality Template makes it fast and efficient to add new school sites News and events can be targeted by the Board to any number of

school sites Target by panel weather zone trustee language Presented in a blended view with the school news and events

Home page rotator links hours content pages all managed by the school staff

SEO-friendly URLs

News

School news entered by school staff

Board news entered in the board site

Rendered using cross-site publishing

High-priority alerts can be flagged to highlight on the site

Bus or school cancellations

Events

Single and multi-day events

School and board managed like news

Adaptive calendar

School Picker

Used to pick which schools to target news and events to

Schools are tagged through the term store

Target by panel weather zone trustee language

Can override and add or remove individual schools

Search

Catalogs

Three main steps

Enabling lists or libraries as catalogs

Creating the catalog connection

Building the page layouts to display the category rollups or item detail pages

Enabling Catalogs

Doesnrsquot have to be a list can be a document Images or Pages library

Experimenting using a Pages library

This gives us draft and published states that lists donrsquot support

Preview and editing is easier

Fairly simple script to do this

Catalog connections are more complex

Create the connection

Fix up the Term Store

Create the Category and Item page layouts and pages

SEO Enhancements

Friendly URLs

Home page redirects

XML sitemaps automatically generated and updated

Custom SEO properties

Usage Analytics

Built for scale from the ground up Detail data rolled up every 15 days amp anonymized Daily events purged every 15 days monthly events after 3 years Lifetime counts always retained

Counts views amp unique itemsday Shows recent (2-weeks) and lifetime count Trims least visited content Pushes aggregate data to reporting database

Drives recommendations capabilities on content Calculations injected into search index as sortable managed properties Deep integration with search engine Can influence search relevance based on content usage

Variations and Multi-Lingual

Export and import content for translation in XLIFF format

Pages

Labels

List items

Navigation

Bing translation service comes with active SharePoint 2013 license

Adaptive Web Design

Adaptive vs Responsive

Adaptive

Fixed breakpoints‒ Desktop gt 980 px

‒ Table portrait gt 768 px

‒ Phone to tablet gt 480 px lt 768 px

‒ Smartphone lt 480 px

Responsive

No fixed breakpoints

Design fluidly adapts to whatever width the browser is

We generally do a hybrid approach with responsive design in the under 768 pixel situation

Design Approaches in SharePoint

Adaptive Design through CSS media queries

Broader standards approach used outside of SharePoint

Keeps a single master page and CSS

Some unnecessary components may still be loaded

Device Channels SharePoint specific approach

Assign different master pages to different device channels

Rules define what devices use which channels

Device Channel Panels can also target content to channels

Hybrid here can also make sense Device channels can be used to remove unnecessary items from the page payload

Our Adaptive Approach

Built using the Twitter Boostrap CSS framework

twittergithubcombootstrap

Provides a responsive design framework for supporting PC Mac tablet and mobile

We enhanced to provide better touch navigation support

Can be leveraged in the master page page layouts and display templates

Incorporated into the SharePoint 2013 Design Master

HTML based master page that can be edited with any tool

SharePoint converts to a master page when uploaded or saved

Additional Open Source Tools and Resources

HTML CSS JavaScript jQuery

httpwwww3schoolscom

httpgetbootstrapcom

httphandlebarsjscom

httpknockoutjscom

httpsangularjsorg

httpmomentjscom

Content Search Web Part

Web part is configured to return search results

Executed as client-side code in the browser

Pair of display templates map the data returned to HTML

Control template for the overall structure

Item template for each item returned

HTML Designer Manager files are compiled to JavaScript

REST Search and Handlebars

Search is accessible through REST calls

httpsiteurl_apisearchquery

Returns results as a JSON array

Handlebars is a templating engine to format that

Conceptually similar to display templates with control and item sections

jQuery glues this all together

Steps to Experiment

F12 to get into Developer Toolbar

Set a breakpoint where the REST URL is determined

Copy the value

Paste into the REST Search test window

Experiment with the query

Adjust the Handlebars template appropriately

Search Setup

Content Sources to define and schedule the crawls

Crawl logs to review success

Search Schema to define the managed properties

Reusable Content

Snippets of HTML that can be reused throughout the site

JavaScript can be intelligent and use the URL to determine its behaviour

Makes it easy for content authors to drop pre-configured dynamic content onto pages

Topic Pages

Shows all items that match a topic

Could be hundreds of virtual pages

Only one template page

Easily customizable and SEO friendly (each topic appears to be its own page)

Content by search web part open search against a query or result source

May be able to surface the topic pages themselves as site search results

Public Health Ontario

httpwwwpublichealthontariocaenBrowseByTopicPagesTopicaspxk=Influenza20InformationByTopic22Influenza22

Ontario Association of Childrens Aid Societies

Application Lifecycle Management

Purpose

How do we build a solid SharePoint development environment for the enterprise

How do a number of developers work together on a SharePoint project

How does code and content move through a dev test and production lifecycle

What is Agile and Continuous Integration and why is it important

Visual Studio and Team Foundation Server

Visual Studio 2010 is the development platform for coding on SharePoint 2010

Team Foundation Server integrates with Visual Studio to provide a repository for code test and other project artifacts

It facilitates teamwork by providing a common place for developers to work together

Provisioning SharePoint Farms

Provisioning SharePoint Farms

Every developer needs their own complete SharePoint farm

Teams need a dev integration farm to bring their work together on

A full architecture needs QA and production farms as well

Envision IT Virtualization Architecture

Developer VM Template

SharePoint Server 2010 Enterprise

SP1 and August CU

Visual Studio 2010 Premium SP1

Office 2010 Professional Plus SP1

SharePoint Designer 2010 SP1

Fiddler

SQL Server 2008 R2 SP1

Creating a new Developer VM

Open System Centre Virtual Machine Manager

Create Virtual Machine

Choose the Developer VM template

Set the virtual machine name and options

Create and start the VM

Creating a new Developer VM - Step 2

Developer RDPs to their new VM Complete the SQL Server installation

Create the default instance Set the service account(s) Set the authentication mode and server administrators

Update the AutoSPInstallerInputxml file Set the machine name for the default sites and database server Set the service account passwords

Run the AutoSPInstallerLaunch batch file Do a Health check review

Creating a new Developer VM - Step 3

Start Visual Studio

Connect to the Team Foundation Server

Setup your workspaces

Use a standard naming convention across your team

CDevelopmentTFSCollection

Other Environments

Dev Integration QA and Production can all be built using AutoSPInstall

Donrsquot need or want the Visual Studio or Office tools on these servers

We have a base template we use for dev integration servers

QA should match the Prod architecture as closely as possible

High availability with load balancing clustered SQL app servers DMZ hardening Internet publishing

Agile Development

Agile with Team Foundation Server

Creating Your TFS Project

Open Visual Studio

Make sure you are connected to the right Team Project Collection

In Team Explorer right-click the top collection and create a new Team Project

Use the Scrum 10 template

Go into the Areas and Iterations Delete the extraneous releases and sprints

Create a product backlog iteration

Start adding your stories and tasks

Continuous Integration

Continuous Integration

Automated Testing

SharePoint Site Elements

Site structure Site columns content types subsites lists libraries

Branding elements Master pages layouts CSS XSLT supporting images

Custom web parts Page and site content Web part instances Search Workflows Business Connectivity Services Managed Metadata

SharePoint Site Elements ndash Part 2

Access Excel Word Visio

PerformancePoint

Document conversions

Timer jobs

Secure Store Service

User profiles

Site Structure

bull Site columns

bull Define the fields that are used by content types

bull Content types

bull Defines collections of site columns for different types of content

bull Subsites

bull The hierarchy of sites that make up the site collection

bull Lists and Libraries

bull The lists and libraries for each subsite

Site Structure ndash Part 2

Site columns and content types can be programmatically or manually created If they are going to be used in multiple site collections they should be

programmatically created

If a single site collection they can be created manually in a master site collection

GUIDs cannot be manually set and code may need them to be consistent

You can create them manually in SharePoint save the site as a template and import them into Visual Studio to create a proper WSP package

Site Structure ndash Part 3

Site structure can also be done either programmatically or manually

Many sites are complex and it is error prone to create manually

We use our own SiteModelBuilder tool to create the site structure

Site Structure ndash Part 4

For all site structure elements changes can also be manual or programmatic It is useful to be able to delete the whole site collection and recreate it

programmatically As soon as content starts being authored in SharePoint it becomes difficult

or impossible to do that

After content authoring has started Site column and content type changes need to be programmed explicitly

(you canrsquot just drop the content type and recreate it) Site structure changes are usually done manually at this point Changes need to be backed up and restored

Change Management

Page and Site Content

Page and site content is entered directly into SharePoint by the content authors Web pages images PDFs list content etc This should be done in the master site separate from where dev integration is

happening Care needs to be taken with this site once authors start working Make sure it is part of your production backup plan

Periodically back it up and restore it to the dev integration and developer VMs

Alternatively script the export and import Ultimately it will be backed up and restored to the QA and production

farms

Change Management

Change Management

Change Management

Change Management

Web part instances

Web parts ultimately get placed on pages

The configuration of the web parts can often get quite complex

You may want to disable editing of web parts for general content authors

They end up in a grey zone between code and content

Web part instances ndash Part 2

We created our own internal tool to export and import web parts

Each web partrsquos configuration can be exported into a webpartfile

We scripted the extraction from the dev integration

webpart files are treated like code and checked into TFS for version control

Script then applies the new webpart files to the target environment

Workflows

Workflows can be built using SharePoint Designer Visual Studio or third-party tools (Nintex or K2 primarily)

Visual Studio workflow projects are automatically packaged as WSP solution files Simply deploy the WSP file to the other environments

SharePoint Designer workflows need to be deployed using SharePoint Designer This means you need SPD access to production which is not always possible

You can load the SPD workflow into Visual Studio to package it but you lose the ability to edit it in SPD

If you use third-party tools yoursquoll need to define the process for that as well

Business Connectivity Services

BCS can be built using either SharePoint Designer or Visual Studio Visual Studio BCS projects are automatically packaged as WSP

solution files Simply deploy the WSP file to the other environments You can also export the BDC metadata model in the BDC service

application

SharePoint Designer doesnrsquot create a WSP and it doesnrsquot make a complete BDC metadata model You need to export and import using SharePoint Designer

In both cases you still need to deal with connection and configuration information

Future Directions

Visual Studio Lab Management

Integrates the management of HyperV environments in with Visual Studio and Team Foundation Server

Can automate the provisioning of lab environments for automated testing

Test failures can snapshot entire environments to make reproduction of errors much easier

Summary

Yoursquore going to have lots of SharePoint environments ndash figure out how to build them quickly and repeatable

Code and content often move in opposite directions through dev QA and Prod PowerShell script and automate to keep this simple

Agile is a great way to run projects

Continuous integration with automated testing is key to its success

There are lots of parts of SharePoint that you donrsquot code through Visual Studio Figure out how you move those through your environment

Other Topics

Site Design

Information architecture

Wireframes

Creative designs ndash Mobile first

Catalogs deep dive

Site build PowerShell scripts

Team Foundation Server and Application Lifecycle Management

Starting a new project

Managing content authoring

Site Improve tool

SEO Optimizations

Analytics options

Retaining Page Ranks with permanent redirects (301)

Azure SharePoint Hosting

Q amp A

Session Evaluations

Go to Evaluations on the home page of wwwcollabconorg

It is important to get your feedback

Please fill out evaluations for all the sessions you attend

Following the conference a random drawing from all completed evaluations will be selected

The winner will receive a $250 Future Shop gift card valid online or in store

Page 28: Web Content Management - CollabCon 2015 - Web... · Performances Complete Works ... Friendly URL An SEO friendly URL defined in the term store for a page, rather than ... What’s

REST Search Catalog Pages

HTML with data attributes on page layouts or in Reusable HTML

jQuery detects this

Builds a REST Search query based on the attributes and URL

Calls SharePoint

Uses Handlebars to format the results

Product Replacements

Video Player is part of the lib structure

Needs references added to the master page

Any hyperlink to an MP4 file launches the video popup

Image Rotator

Jeff is working on standardizing some jQuery slider options

Photo Viewer

No plans just yet

All of these will be part of the ESC package

Starting a New Project

Copy the five ESC scripts from $Envision Shakespeare CompanyBuilder Do not rename

Copy the ShakespeareBuild scripts Rename to your project Update the steps as required for your project

Create the infrastructure WSP Site columns content types list definitions and instances

Manually create the pages and assets that are needed in SharePoint Manually create the term store for metadata and navigation Script the extraction to TFS of content and term store Create the branding WSP Manually create any required web parts Export to TFS and script the placement of the web parts on the pages

ESC Scripts Next Steps

Incorporate TMX additions Farm property bag instead of webconfig Audiences Subsites Available layouts Permissions Extract folders and lists

Continue reconciling additional projects in OMA TMX Christie Medical

Full header blocks and commenting Version numbers Complete the catalog connection script Office 365 support

Links

wwwenvisionitcom

blogpetercarsonca

wwwenvisionitcomshakespeare

httpsShakespeareenvisionitcom

wwwbgccancom

wwwproblemgamblingca

wwwrusselmetalscom

wwwtarioncom

wwwtransamericaca

wwwcollegeofececa

wwwsamuelcom

wwwthewaterfrontpropertiesca

wwwshopsatdonmillsca

wwwfuturesherwaygardensca

wwwpublichealthontarioca

SharePoint WCM Glossary

SharePoint Glossary

Term Definition

SharePoint Farm A set of SharePoint servers that share a single configuration database

Web Application A top level container and entry-point URLs for site collections

Site Collection A set of Web sites that are in the same content database have the same owner and share administration settings A site collection can be identified by a GUID or the URL of the top-level site for the site collection Each site collection contains a top-level site can contain one or more subsites and can have a shared navigation structure

Path Based Site Collection A site collection under a managed pathhttpwebappsitessitecollection

Host Named Site Collection A site collection with its own unique URL Must be created through PowerShell

Site Subsite under a site collection

Site Template A template for a single site that has been saved from another site Site templates may or may not contain content Templates cannot be created from publishing sites

SharePoint Glossary

Term Definition

Site Column A single field that can store information of a particular typebull Textbull Choicebull Numberbull hellipDefined at the site collection level

Content Type A content type is a reusable collection of Site Columns that can be applied to a certain category of content Content types enable the management of metadata and behaviors of a document or item type in a centralized reusable way Basically content types include the columns (or fields) that are applied to a certain type of content plus other optional settings such as a document template

Document Set New content type in SharePoint 2010 A document set is a container for multiple documents to which you can assign certain metadata and treat as a single entity in many ways In addition a document set can contain one or more different content types

SharePoint Glossary

Term Definition

List A container for list content types or custom list items Columns can be defined via content types or directly in the list

Document Library A SharePoint list that contains documents where you can create collect update and share files with others Like lists columns can be defined via content types or directly in the list

Form Library A special type of library to facilitate the interaction with InfoPath forms

Asset Library A library typically used to store image audio and video files

List Template A template used to define the configuration of a list or library Templates can be saved with or without content

SharePoint Glossary

Term Definition

Term Store An instance of the Managed Metadata Service This can be shared between sites site collections web applications or farms

Group A collection of term sets

Term Set A collection of related terms

Term A word or a phrase that can be associated with a SharePoint item

Friendly URL An SEO friendly URL defined in the term store for a page rather than the physical URL of where the page is stored (Pages)

SharePoint Glossary

Term Definition

Design Manager 2013 feature used to manipulate WCM artifacts

Master Page Defines elements that are common to all pages such as the header navigation and footer

Page Layout Defines the layout of a particular style of page such as news or events Each page content type can have one or more layouts associated with them

Web Parts Functional elements that can be added to pages typically for dynamic content

Apps Similar to web parts but run outside of SharePoint while beinghosted in the SharePoint page

Publishing Site Page Rendering

FileName

Welcomeaspx

PageLayout

PageLayoutaspx

Title

Welcome To News

Body

Lorem ipsum dolor sit

Image

ImagesChairjpg

1 Welcomeaspx page is

requested

2 Page layout associated with

page is retrieved

3 Master page associated with site

is retrieved

4 Controls in page layout render

content from pagersquos fields into the page

MasterPagemaster

PageLayoutaspxTitle

BodyImage

Date

ByLine

Field Control

FieldControl

Field ControlField ControlField Control

Field Control

httpfoocombarpageswelcomeaspx

SharePoint Glossary

Term Definition

Cross-Site Publishing Publishing from an authoring site collection to one or more publishing site collections

Catalog A list that has been published as a catalog

Category Page A page that displays a rollup of catalog items

Catalog Item Page A page that displays a single item from a catalog

Display Template Used to format the results on search pages in content search web parts and on category pages

Whatrsquos New in Web Content

Management

Easier Page Authoring With Cut and Paste

Drag and Drop Files

Drag and drop files from Windows Explorer into the browser or the other way

Doesnrsquot support folders or document sets

Open in Windows Explorer still works best for this

Requires IE10 or current versions of Chrome Safari or Firefox

IE8 and 9 supported with Office 2013 installed

Image Renditions

Display uploaded images in predefined sizes widths and crops

Multiple renditions stored in document sets

Content author can create renditions (including crops) in the browser

Design Manager

New way to build master

pages and layouts

SharePoint Designer no

longer required

Edit and preview in any HTML

editor

Automatically creates the associated

master page and aspx

layouts

Package into a Design

Package WSP for

deployment

Snippet Gallery

Select components

such as search box or

navigation control

Configure its properties

Paste the snippet into your HTML

master page or layout

Changes synched to

actual master pages and layouts to convert to SharePoint

components

Can be used by any web design

tool

Device Channels

Map channels to mobile devices or browsers

Alternate master pages

can be assigned

Page layouts can include or

exclude content based

on channel

Display Templates

Used to customize the

presentation of search results

No more XSLT

Three templates

bull Control ndash Overall structure of search results

bull Group ndash Show groups of results

bull Item ndash How each result is presented

Navigation and Friendly URLs

Site navigation driven by managed metadata

Term store used for navigation and SEO-friendly URLs

Connect site navigation to business concepts rather than site structure

Server side control outputs HTML for top nav left nav and breadcrumb

Plan is to convert to client-side to support Office 365

Term Store Setup

Two groups used to separate metadata from navigation

Metadata group setup globally

Static GUIDs consistent through all environments

Navigation group setup at the site collection level

Allows multiple copies for multiple sites on the farm

Search

Search is new and different from all previous versions of SharePoint

The platform has been consolidated Built on a combination of FAST Search and SharePoint Search components as well as new development work ndash it is the

same from Foundation to Server

Foundation Search is intended to replace WSS Search Microsoft Search Server and Search Server Express from previous versions of SharePoint

Itrsquos used pervasively throughout the product now in many different ways in different features eDiscovery navigation topic pages Internet facing business sites etc

Search in SharePoint 2013

Single Extensible Platform

FAST Engine

SharePoint Crawler

Best of both

Same Search Platform in both SharePoint and Exchange

Enterprise Search

Search Page Web parts added to a publishing page

Catalogs Cross-site publishing

Library search Executes in place on the library

Site Search _layouts15osssearchresultsaspx Specifies the site and search parameters

Search Centre Basic Search Center - SharePoint Foundation 2013 Enterprise Search Center - SharePoint Server 2013

Content Search Web Part

Similar in concept to the Content Query Web Part

Many advantages

Can go across sites site collections web apps even farms

Leverages the search index -gt very scalable

Query Builder makes it easy to define your results

Use Display Templates to customize the look and feel No more XSLT

Part of the Enterprise CAL

Pre-Configured CSWPs

Popular Items Shows items that have been recently viewed by many users

Recently Changed Items Shows items that have been modified recently This can help site users

track the latest activity on a site or a library

Recommended Items Show content recommendations based on usage patterns for the current

page

All of these can be further configured by editing their properties and changing the search criteria

Search Results Web Part

Similar functionality to the Content Search Web Part

Doesnrsquot allow property mapping in the web part configuration

Mapping is controlled in the Display Template

Part of the Standard CAL

Category Page Item Page

Catalogs

wwwcontosocomproductsAudio-Liware2g

Catalogs

Results

Consistent Displays

Manage content in one place

No need to create

pages

No need to format

Metadata Navigation

Cross-Site Publishing

Reuse content between different sites including site collections and farms

Catalogs can surface lists into publishing sites onto a category page and item pages

Can be surfaced through the Content Search Web Part

No need to create and publish web pages

Create custom friendly URLs

Metadata based navigation base

Cross Site Publishing

Job Posting

Job Posting

Job Posting

Job Posting

Simcoe County District School Board

50000 students

Over 6000 employees

Board office in Barrie

Bordered by the Holland Marsh in the south the Trent-Severn Waterway in the east Grey County in the west and Muskoka in the north

Simcoe County District School Board

119 schools and centres 87 elementary 16 secondary 6 learning centres 10 alternative

Each needs their own web site Being built on SharePoint 2013 Elementary panel first Each has their own unique URL Content authored both at the school and centrally from the board

wwwscdsbonca Pre-existing SharePoint 2010 site Future goal is to rebuild in SharePoint 2013

Business Challenge

100+ public web sites

No standardization on style technology or content

No ability for the board to push content to the school sites

Outdated sites

Not mobile or AODA compliant

Site Features

Fully Adaptivemobile design Robust Search functionality Template makes it fast and efficient to add new school sites News and events can be targeted by the Board to any number of

school sites Target by panel weather zone trustee language Presented in a blended view with the school news and events

Home page rotator links hours content pages all managed by the school staff

SEO-friendly URLs

News

School news entered by school staff

Board news entered in the board site

Rendered using cross-site publishing

High-priority alerts can be flagged to highlight on the site

Bus or school cancellations

Events

Single and multi-day events

School and board managed like news

Adaptive calendar

School Picker

Used to pick which schools to target news and events to

Schools are tagged through the term store

Target by panel weather zone trustee language

Can override and add or remove individual schools

Search

Catalogs

Three main steps

Enabling lists or libraries as catalogs

Creating the catalog connection

Building the page layouts to display the category rollups or item detail pages

Enabling Catalogs

Doesnrsquot have to be a list can be a document Images or Pages library

Experimenting using a Pages library

This gives us draft and published states that lists donrsquot support

Preview and editing is easier

Fairly simple script to do this

Catalog connections are more complex

Create the connection

Fix up the Term Store

Create the Category and Item page layouts and pages

SEO Enhancements

Friendly URLs

Home page redirects

XML sitemaps automatically generated and updated

Custom SEO properties

Usage Analytics

Built for scale from the ground up Detail data rolled up every 15 days amp anonymized Daily events purged every 15 days monthly events after 3 years Lifetime counts always retained

Counts views amp unique itemsday Shows recent (2-weeks) and lifetime count Trims least visited content Pushes aggregate data to reporting database

Drives recommendations capabilities on content Calculations injected into search index as sortable managed properties Deep integration with search engine Can influence search relevance based on content usage

Variations and Multi-Lingual

Export and import content for translation in XLIFF format

Pages

Labels

List items

Navigation

Bing translation service comes with active SharePoint 2013 license

Adaptive Web Design

Adaptive vs Responsive

Adaptive

Fixed breakpoints‒ Desktop gt 980 px

‒ Table portrait gt 768 px

‒ Phone to tablet gt 480 px lt 768 px

‒ Smartphone lt 480 px

Responsive

No fixed breakpoints

Design fluidly adapts to whatever width the browser is

We generally do a hybrid approach with responsive design in the under 768 pixel situation

Design Approaches in SharePoint

Adaptive Design through CSS media queries

Broader standards approach used outside of SharePoint

Keeps a single master page and CSS

Some unnecessary components may still be loaded

Device Channels SharePoint specific approach

Assign different master pages to different device channels

Rules define what devices use which channels

Device Channel Panels can also target content to channels

Hybrid here can also make sense Device channels can be used to remove unnecessary items from the page payload

Our Adaptive Approach

Built using the Twitter Boostrap CSS framework

twittergithubcombootstrap

Provides a responsive design framework for supporting PC Mac tablet and mobile

We enhanced to provide better touch navigation support

Can be leveraged in the master page page layouts and display templates

Incorporated into the SharePoint 2013 Design Master

HTML based master page that can be edited with any tool

SharePoint converts to a master page when uploaded or saved

Additional Open Source Tools and Resources

HTML CSS JavaScript jQuery

httpwwww3schoolscom

httpgetbootstrapcom

httphandlebarsjscom

httpknockoutjscom

httpsangularjsorg

httpmomentjscom

Content Search Web Part

Web part is configured to return search results

Executed as client-side code in the browser

Pair of display templates map the data returned to HTML

Control template for the overall structure

Item template for each item returned

HTML Designer Manager files are compiled to JavaScript

REST Search and Handlebars

Search is accessible through REST calls

httpsiteurl_apisearchquery

Returns results as a JSON array

Handlebars is a templating engine to format that

Conceptually similar to display templates with control and item sections

jQuery glues this all together

Steps to Experiment

F12 to get into Developer Toolbar

Set a breakpoint where the REST URL is determined

Copy the value

Paste into the REST Search test window

Experiment with the query

Adjust the Handlebars template appropriately

Search Setup

Content Sources to define and schedule the crawls

Crawl logs to review success

Search Schema to define the managed properties

Reusable Content

Snippets of HTML that can be reused throughout the site

JavaScript can be intelligent and use the URL to determine its behaviour

Makes it easy for content authors to drop pre-configured dynamic content onto pages

Topic Pages

Shows all items that match a topic

Could be hundreds of virtual pages

Only one template page

Easily customizable and SEO friendly (each topic appears to be its own page)

Content by search web part open search against a query or result source

May be able to surface the topic pages themselves as site search results

Public Health Ontario

httpwwwpublichealthontariocaenBrowseByTopicPagesTopicaspxk=Influenza20InformationByTopic22Influenza22

Ontario Association of Childrens Aid Societies

Application Lifecycle Management

Purpose

How do we build a solid SharePoint development environment for the enterprise

How do a number of developers work together on a SharePoint project

How does code and content move through a dev test and production lifecycle

What is Agile and Continuous Integration and why is it important

Visual Studio and Team Foundation Server

Visual Studio 2010 is the development platform for coding on SharePoint 2010

Team Foundation Server integrates with Visual Studio to provide a repository for code test and other project artifacts

It facilitates teamwork by providing a common place for developers to work together

Provisioning SharePoint Farms

Provisioning SharePoint Farms

Every developer needs their own complete SharePoint farm

Teams need a dev integration farm to bring their work together on

A full architecture needs QA and production farms as well

Envision IT Virtualization Architecture

Developer VM Template

SharePoint Server 2010 Enterprise

SP1 and August CU

Visual Studio 2010 Premium SP1

Office 2010 Professional Plus SP1

SharePoint Designer 2010 SP1

Fiddler

SQL Server 2008 R2 SP1

Creating a new Developer VM

Open System Centre Virtual Machine Manager

Create Virtual Machine

Choose the Developer VM template

Set the virtual machine name and options

Create and start the VM

Creating a new Developer VM - Step 2

Developer RDPs to their new VM Complete the SQL Server installation

Create the default instance Set the service account(s) Set the authentication mode and server administrators

Update the AutoSPInstallerInputxml file Set the machine name for the default sites and database server Set the service account passwords

Run the AutoSPInstallerLaunch batch file Do a Health check review

Creating a new Developer VM - Step 3

Start Visual Studio

Connect to the Team Foundation Server

Setup your workspaces

Use a standard naming convention across your team

CDevelopmentTFSCollection

Other Environments

Dev Integration QA and Production can all be built using AutoSPInstall

Donrsquot need or want the Visual Studio or Office tools on these servers

We have a base template we use for dev integration servers

QA should match the Prod architecture as closely as possible

High availability with load balancing clustered SQL app servers DMZ hardening Internet publishing

Agile Development

Agile with Team Foundation Server

Creating Your TFS Project

Open Visual Studio

Make sure you are connected to the right Team Project Collection

In Team Explorer right-click the top collection and create a new Team Project

Use the Scrum 10 template

Go into the Areas and Iterations Delete the extraneous releases and sprints

Create a product backlog iteration

Start adding your stories and tasks

Continuous Integration

Continuous Integration

Automated Testing

SharePoint Site Elements

Site structure Site columns content types subsites lists libraries

Branding elements Master pages layouts CSS XSLT supporting images

Custom web parts Page and site content Web part instances Search Workflows Business Connectivity Services Managed Metadata

SharePoint Site Elements ndash Part 2

Access Excel Word Visio

PerformancePoint

Document conversions

Timer jobs

Secure Store Service

User profiles

Site Structure

bull Site columns

bull Define the fields that are used by content types

bull Content types

bull Defines collections of site columns for different types of content

bull Subsites

bull The hierarchy of sites that make up the site collection

bull Lists and Libraries

bull The lists and libraries for each subsite

Site Structure ndash Part 2

Site columns and content types can be programmatically or manually created If they are going to be used in multiple site collections they should be

programmatically created

If a single site collection they can be created manually in a master site collection

GUIDs cannot be manually set and code may need them to be consistent

You can create them manually in SharePoint save the site as a template and import them into Visual Studio to create a proper WSP package

Site Structure ndash Part 3

Site structure can also be done either programmatically or manually

Many sites are complex and it is error prone to create manually

We use our own SiteModelBuilder tool to create the site structure

Site Structure ndash Part 4

For all site structure elements changes can also be manual or programmatic It is useful to be able to delete the whole site collection and recreate it

programmatically As soon as content starts being authored in SharePoint it becomes difficult

or impossible to do that

After content authoring has started Site column and content type changes need to be programmed explicitly

(you canrsquot just drop the content type and recreate it) Site structure changes are usually done manually at this point Changes need to be backed up and restored

Change Management

Page and Site Content

Page and site content is entered directly into SharePoint by the content authors Web pages images PDFs list content etc This should be done in the master site separate from where dev integration is

happening Care needs to be taken with this site once authors start working Make sure it is part of your production backup plan

Periodically back it up and restore it to the dev integration and developer VMs

Alternatively script the export and import Ultimately it will be backed up and restored to the QA and production

farms

Change Management

Change Management

Change Management

Change Management

Web part instances

Web parts ultimately get placed on pages

The configuration of the web parts can often get quite complex

You may want to disable editing of web parts for general content authors

They end up in a grey zone between code and content

Web part instances ndash Part 2

We created our own internal tool to export and import web parts

Each web partrsquos configuration can be exported into a webpartfile

We scripted the extraction from the dev integration

webpart files are treated like code and checked into TFS for version control

Script then applies the new webpart files to the target environment

Workflows

Workflows can be built using SharePoint Designer Visual Studio or third-party tools (Nintex or K2 primarily)

Visual Studio workflow projects are automatically packaged as WSP solution files Simply deploy the WSP file to the other environments

SharePoint Designer workflows need to be deployed using SharePoint Designer This means you need SPD access to production which is not always possible

You can load the SPD workflow into Visual Studio to package it but you lose the ability to edit it in SPD

If you use third-party tools yoursquoll need to define the process for that as well

Business Connectivity Services

BCS can be built using either SharePoint Designer or Visual Studio Visual Studio BCS projects are automatically packaged as WSP

solution files Simply deploy the WSP file to the other environments You can also export the BDC metadata model in the BDC service

application

SharePoint Designer doesnrsquot create a WSP and it doesnrsquot make a complete BDC metadata model You need to export and import using SharePoint Designer

In both cases you still need to deal with connection and configuration information

Future Directions

Visual Studio Lab Management

Integrates the management of HyperV environments in with Visual Studio and Team Foundation Server

Can automate the provisioning of lab environments for automated testing

Test failures can snapshot entire environments to make reproduction of errors much easier

Summary

Yoursquore going to have lots of SharePoint environments ndash figure out how to build them quickly and repeatable

Code and content often move in opposite directions through dev QA and Prod PowerShell script and automate to keep this simple

Agile is a great way to run projects

Continuous integration with automated testing is key to its success

There are lots of parts of SharePoint that you donrsquot code through Visual Studio Figure out how you move those through your environment

Other Topics

Site Design

Information architecture

Wireframes

Creative designs ndash Mobile first

Catalogs deep dive

Site build PowerShell scripts

Team Foundation Server and Application Lifecycle Management

Starting a new project

Managing content authoring

Site Improve tool

SEO Optimizations

Analytics options

Retaining Page Ranks with permanent redirects (301)

Azure SharePoint Hosting

Q amp A

Session Evaluations

Go to Evaluations on the home page of wwwcollabconorg

It is important to get your feedback

Please fill out evaluations for all the sessions you attend

Following the conference a random drawing from all completed evaluations will be selected

The winner will receive a $250 Future Shop gift card valid online or in store

Page 29: Web Content Management - CollabCon 2015 - Web... · Performances Complete Works ... Friendly URL An SEO friendly URL defined in the term store for a page, rather than ... What’s

Product Replacements

Video Player is part of the lib structure

Needs references added to the master page

Any hyperlink to an MP4 file launches the video popup

Image Rotator

Jeff is working on standardizing some jQuery slider options

Photo Viewer

No plans just yet

All of these will be part of the ESC package

Starting a New Project

Copy the five ESC scripts from $Envision Shakespeare CompanyBuilder Do not rename

Copy the ShakespeareBuild scripts Rename to your project Update the steps as required for your project

Create the infrastructure WSP Site columns content types list definitions and instances

Manually create the pages and assets that are needed in SharePoint Manually create the term store for metadata and navigation Script the extraction to TFS of content and term store Create the branding WSP Manually create any required web parts Export to TFS and script the placement of the web parts on the pages

ESC Scripts Next Steps

Incorporate TMX additions Farm property bag instead of webconfig Audiences Subsites Available layouts Permissions Extract folders and lists

Continue reconciling additional projects in OMA TMX Christie Medical

Full header blocks and commenting Version numbers Complete the catalog connection script Office 365 support

Links

wwwenvisionitcom

blogpetercarsonca

wwwenvisionitcomshakespeare

httpsShakespeareenvisionitcom

wwwbgccancom

wwwproblemgamblingca

wwwrusselmetalscom

wwwtarioncom

wwwtransamericaca

wwwcollegeofececa

wwwsamuelcom

wwwthewaterfrontpropertiesca

wwwshopsatdonmillsca

wwwfuturesherwaygardensca

wwwpublichealthontarioca

SharePoint WCM Glossary

SharePoint Glossary

Term Definition

SharePoint Farm A set of SharePoint servers that share a single configuration database

Web Application A top level container and entry-point URLs for site collections

Site Collection A set of Web sites that are in the same content database have the same owner and share administration settings A site collection can be identified by a GUID or the URL of the top-level site for the site collection Each site collection contains a top-level site can contain one or more subsites and can have a shared navigation structure

Path Based Site Collection A site collection under a managed pathhttpwebappsitessitecollection

Host Named Site Collection A site collection with its own unique URL Must be created through PowerShell

Site Subsite under a site collection

Site Template A template for a single site that has been saved from another site Site templates may or may not contain content Templates cannot be created from publishing sites

SharePoint Glossary

Term Definition

Site Column A single field that can store information of a particular typebull Textbull Choicebull Numberbull hellipDefined at the site collection level

Content Type A content type is a reusable collection of Site Columns that can be applied to a certain category of content Content types enable the management of metadata and behaviors of a document or item type in a centralized reusable way Basically content types include the columns (or fields) that are applied to a certain type of content plus other optional settings such as a document template

Document Set New content type in SharePoint 2010 A document set is a container for multiple documents to which you can assign certain metadata and treat as a single entity in many ways In addition a document set can contain one or more different content types

SharePoint Glossary

Term Definition

List A container for list content types or custom list items Columns can be defined via content types or directly in the list

Document Library A SharePoint list that contains documents where you can create collect update and share files with others Like lists columns can be defined via content types or directly in the list

Form Library A special type of library to facilitate the interaction with InfoPath forms

Asset Library A library typically used to store image audio and video files

List Template A template used to define the configuration of a list or library Templates can be saved with or without content

SharePoint Glossary

Term Definition

Term Store An instance of the Managed Metadata Service This can be shared between sites site collections web applications or farms

Group A collection of term sets

Term Set A collection of related terms

Term A word or a phrase that can be associated with a SharePoint item

Friendly URL An SEO friendly URL defined in the term store for a page rather than the physical URL of where the page is stored (Pages)

SharePoint Glossary

Term Definition

Design Manager 2013 feature used to manipulate WCM artifacts

Master Page Defines elements that are common to all pages such as the header navigation and footer

Page Layout Defines the layout of a particular style of page such as news or events Each page content type can have one or more layouts associated with them

Web Parts Functional elements that can be added to pages typically for dynamic content

Apps Similar to web parts but run outside of SharePoint while beinghosted in the SharePoint page

Publishing Site Page Rendering

FileName

Welcomeaspx

PageLayout

PageLayoutaspx

Title

Welcome To News

Body

Lorem ipsum dolor sit

Image

ImagesChairjpg

1 Welcomeaspx page is

requested

2 Page layout associated with

page is retrieved

3 Master page associated with site

is retrieved

4 Controls in page layout render

content from pagersquos fields into the page

MasterPagemaster

PageLayoutaspxTitle

BodyImage

Date

ByLine

Field Control

FieldControl

Field ControlField ControlField Control

Field Control

httpfoocombarpageswelcomeaspx

SharePoint Glossary

Term Definition

Cross-Site Publishing Publishing from an authoring site collection to one or more publishing site collections

Catalog A list that has been published as a catalog

Category Page A page that displays a rollup of catalog items

Catalog Item Page A page that displays a single item from a catalog

Display Template Used to format the results on search pages in content search web parts and on category pages

Whatrsquos New in Web Content

Management

Easier Page Authoring With Cut and Paste

Drag and Drop Files

Drag and drop files from Windows Explorer into the browser or the other way

Doesnrsquot support folders or document sets

Open in Windows Explorer still works best for this

Requires IE10 or current versions of Chrome Safari or Firefox

IE8 and 9 supported with Office 2013 installed

Image Renditions

Display uploaded images in predefined sizes widths and crops

Multiple renditions stored in document sets

Content author can create renditions (including crops) in the browser

Design Manager

New way to build master

pages and layouts

SharePoint Designer no

longer required

Edit and preview in any HTML

editor

Automatically creates the associated

master page and aspx

layouts

Package into a Design

Package WSP for

deployment

Snippet Gallery

Select components

such as search box or

navigation control

Configure its properties

Paste the snippet into your HTML

master page or layout

Changes synched to

actual master pages and layouts to convert to SharePoint

components

Can be used by any web design

tool

Device Channels

Map channels to mobile devices or browsers

Alternate master pages

can be assigned

Page layouts can include or

exclude content based

on channel

Display Templates

Used to customize the

presentation of search results

No more XSLT

Three templates

bull Control ndash Overall structure of search results

bull Group ndash Show groups of results

bull Item ndash How each result is presented

Navigation and Friendly URLs

Site navigation driven by managed metadata

Term store used for navigation and SEO-friendly URLs

Connect site navigation to business concepts rather than site structure

Server side control outputs HTML for top nav left nav and breadcrumb

Plan is to convert to client-side to support Office 365

Term Store Setup

Two groups used to separate metadata from navigation

Metadata group setup globally

Static GUIDs consistent through all environments

Navigation group setup at the site collection level

Allows multiple copies for multiple sites on the farm

Search

Search is new and different from all previous versions of SharePoint

The platform has been consolidated Built on a combination of FAST Search and SharePoint Search components as well as new development work ndash it is the

same from Foundation to Server

Foundation Search is intended to replace WSS Search Microsoft Search Server and Search Server Express from previous versions of SharePoint

Itrsquos used pervasively throughout the product now in many different ways in different features eDiscovery navigation topic pages Internet facing business sites etc

Search in SharePoint 2013

Single Extensible Platform

FAST Engine

SharePoint Crawler

Best of both

Same Search Platform in both SharePoint and Exchange

Enterprise Search

Search Page Web parts added to a publishing page

Catalogs Cross-site publishing

Library search Executes in place on the library

Site Search _layouts15osssearchresultsaspx Specifies the site and search parameters

Search Centre Basic Search Center - SharePoint Foundation 2013 Enterprise Search Center - SharePoint Server 2013

Content Search Web Part

Similar in concept to the Content Query Web Part

Many advantages

Can go across sites site collections web apps even farms

Leverages the search index -gt very scalable

Query Builder makes it easy to define your results

Use Display Templates to customize the look and feel No more XSLT

Part of the Enterprise CAL

Pre-Configured CSWPs

Popular Items Shows items that have been recently viewed by many users

Recently Changed Items Shows items that have been modified recently This can help site users

track the latest activity on a site or a library

Recommended Items Show content recommendations based on usage patterns for the current

page

All of these can be further configured by editing their properties and changing the search criteria

Search Results Web Part

Similar functionality to the Content Search Web Part

Doesnrsquot allow property mapping in the web part configuration

Mapping is controlled in the Display Template

Part of the Standard CAL

Category Page Item Page

Catalogs

wwwcontosocomproductsAudio-Liware2g

Catalogs

Results

Consistent Displays

Manage content in one place

No need to create

pages

No need to format

Metadata Navigation

Cross-Site Publishing

Reuse content between different sites including site collections and farms

Catalogs can surface lists into publishing sites onto a category page and item pages

Can be surfaced through the Content Search Web Part

No need to create and publish web pages

Create custom friendly URLs

Metadata based navigation base

Cross Site Publishing

Job Posting

Job Posting

Job Posting

Job Posting

Simcoe County District School Board

50000 students

Over 6000 employees

Board office in Barrie

Bordered by the Holland Marsh in the south the Trent-Severn Waterway in the east Grey County in the west and Muskoka in the north

Simcoe County District School Board

119 schools and centres 87 elementary 16 secondary 6 learning centres 10 alternative

Each needs their own web site Being built on SharePoint 2013 Elementary panel first Each has their own unique URL Content authored both at the school and centrally from the board

wwwscdsbonca Pre-existing SharePoint 2010 site Future goal is to rebuild in SharePoint 2013

Business Challenge

100+ public web sites

No standardization on style technology or content

No ability for the board to push content to the school sites

Outdated sites

Not mobile or AODA compliant

Site Features

Fully Adaptivemobile design Robust Search functionality Template makes it fast and efficient to add new school sites News and events can be targeted by the Board to any number of

school sites Target by panel weather zone trustee language Presented in a blended view with the school news and events

Home page rotator links hours content pages all managed by the school staff

SEO-friendly URLs

News

School news entered by school staff

Board news entered in the board site

Rendered using cross-site publishing

High-priority alerts can be flagged to highlight on the site

Bus or school cancellations

Events

Single and multi-day events

School and board managed like news

Adaptive calendar

School Picker

Used to pick which schools to target news and events to

Schools are tagged through the term store

Target by panel weather zone trustee language

Can override and add or remove individual schools

Search

Catalogs

Three main steps

Enabling lists or libraries as catalogs

Creating the catalog connection

Building the page layouts to display the category rollups or item detail pages

Enabling Catalogs

Doesnrsquot have to be a list can be a document Images or Pages library

Experimenting using a Pages library

This gives us draft and published states that lists donrsquot support

Preview and editing is easier

Fairly simple script to do this

Catalog connections are more complex

Create the connection

Fix up the Term Store

Create the Category and Item page layouts and pages

SEO Enhancements

Friendly URLs

Home page redirects

XML sitemaps automatically generated and updated

Custom SEO properties

Usage Analytics

Built for scale from the ground up Detail data rolled up every 15 days amp anonymized Daily events purged every 15 days monthly events after 3 years Lifetime counts always retained

Counts views amp unique itemsday Shows recent (2-weeks) and lifetime count Trims least visited content Pushes aggregate data to reporting database

Drives recommendations capabilities on content Calculations injected into search index as sortable managed properties Deep integration with search engine Can influence search relevance based on content usage

Variations and Multi-Lingual

Export and import content for translation in XLIFF format

Pages

Labels

List items

Navigation

Bing translation service comes with active SharePoint 2013 license

Adaptive Web Design

Adaptive vs Responsive

Adaptive

Fixed breakpoints‒ Desktop gt 980 px

‒ Table portrait gt 768 px

‒ Phone to tablet gt 480 px lt 768 px

‒ Smartphone lt 480 px

Responsive

No fixed breakpoints

Design fluidly adapts to whatever width the browser is

We generally do a hybrid approach with responsive design in the under 768 pixel situation

Design Approaches in SharePoint

Adaptive Design through CSS media queries

Broader standards approach used outside of SharePoint

Keeps a single master page and CSS

Some unnecessary components may still be loaded

Device Channels SharePoint specific approach

Assign different master pages to different device channels

Rules define what devices use which channels

Device Channel Panels can also target content to channels

Hybrid here can also make sense Device channels can be used to remove unnecessary items from the page payload

Our Adaptive Approach

Built using the Twitter Boostrap CSS framework

twittergithubcombootstrap

Provides a responsive design framework for supporting PC Mac tablet and mobile

We enhanced to provide better touch navigation support

Can be leveraged in the master page page layouts and display templates

Incorporated into the SharePoint 2013 Design Master

HTML based master page that can be edited with any tool

SharePoint converts to a master page when uploaded or saved

Additional Open Source Tools and Resources

HTML CSS JavaScript jQuery

httpwwww3schoolscom

httpgetbootstrapcom

httphandlebarsjscom

httpknockoutjscom

httpsangularjsorg

httpmomentjscom

Content Search Web Part

Web part is configured to return search results

Executed as client-side code in the browser

Pair of display templates map the data returned to HTML

Control template for the overall structure

Item template for each item returned

HTML Designer Manager files are compiled to JavaScript

REST Search and Handlebars

Search is accessible through REST calls

httpsiteurl_apisearchquery

Returns results as a JSON array

Handlebars is a templating engine to format that

Conceptually similar to display templates with control and item sections

jQuery glues this all together

Steps to Experiment

F12 to get into Developer Toolbar

Set a breakpoint where the REST URL is determined

Copy the value

Paste into the REST Search test window

Experiment with the query

Adjust the Handlebars template appropriately

Search Setup

Content Sources to define and schedule the crawls

Crawl logs to review success

Search Schema to define the managed properties

Reusable Content

Snippets of HTML that can be reused throughout the site

JavaScript can be intelligent and use the URL to determine its behaviour

Makes it easy for content authors to drop pre-configured dynamic content onto pages

Topic Pages

Shows all items that match a topic

Could be hundreds of virtual pages

Only one template page

Easily customizable and SEO friendly (each topic appears to be its own page)

Content by search web part open search against a query or result source

May be able to surface the topic pages themselves as site search results

Public Health Ontario

httpwwwpublichealthontariocaenBrowseByTopicPagesTopicaspxk=Influenza20InformationByTopic22Influenza22

Ontario Association of Childrens Aid Societies

Application Lifecycle Management

Purpose

How do we build a solid SharePoint development environment for the enterprise

How do a number of developers work together on a SharePoint project

How does code and content move through a dev test and production lifecycle

What is Agile and Continuous Integration and why is it important

Visual Studio and Team Foundation Server

Visual Studio 2010 is the development platform for coding on SharePoint 2010

Team Foundation Server integrates with Visual Studio to provide a repository for code test and other project artifacts

It facilitates teamwork by providing a common place for developers to work together

Provisioning SharePoint Farms

Provisioning SharePoint Farms

Every developer needs their own complete SharePoint farm

Teams need a dev integration farm to bring their work together on

A full architecture needs QA and production farms as well

Envision IT Virtualization Architecture

Developer VM Template

SharePoint Server 2010 Enterprise

SP1 and August CU

Visual Studio 2010 Premium SP1

Office 2010 Professional Plus SP1

SharePoint Designer 2010 SP1

Fiddler

SQL Server 2008 R2 SP1

Creating a new Developer VM

Open System Centre Virtual Machine Manager

Create Virtual Machine

Choose the Developer VM template

Set the virtual machine name and options

Create and start the VM

Creating a new Developer VM - Step 2

Developer RDPs to their new VM Complete the SQL Server installation

Create the default instance Set the service account(s) Set the authentication mode and server administrators

Update the AutoSPInstallerInputxml file Set the machine name for the default sites and database server Set the service account passwords

Run the AutoSPInstallerLaunch batch file Do a Health check review

Creating a new Developer VM - Step 3

Start Visual Studio

Connect to the Team Foundation Server

Setup your workspaces

Use a standard naming convention across your team

CDevelopmentTFSCollection

Other Environments

Dev Integration QA and Production can all be built using AutoSPInstall

Donrsquot need or want the Visual Studio or Office tools on these servers

We have a base template we use for dev integration servers

QA should match the Prod architecture as closely as possible

High availability with load balancing clustered SQL app servers DMZ hardening Internet publishing

Agile Development

Agile with Team Foundation Server

Creating Your TFS Project

Open Visual Studio

Make sure you are connected to the right Team Project Collection

In Team Explorer right-click the top collection and create a new Team Project

Use the Scrum 10 template

Go into the Areas and Iterations Delete the extraneous releases and sprints

Create a product backlog iteration

Start adding your stories and tasks

Continuous Integration

Continuous Integration

Automated Testing

SharePoint Site Elements

Site structure Site columns content types subsites lists libraries

Branding elements Master pages layouts CSS XSLT supporting images

Custom web parts Page and site content Web part instances Search Workflows Business Connectivity Services Managed Metadata

SharePoint Site Elements ndash Part 2

Access Excel Word Visio

PerformancePoint

Document conversions

Timer jobs

Secure Store Service

User profiles

Site Structure

bull Site columns

bull Define the fields that are used by content types

bull Content types

bull Defines collections of site columns for different types of content

bull Subsites

bull The hierarchy of sites that make up the site collection

bull Lists and Libraries

bull The lists and libraries for each subsite

Site Structure ndash Part 2

Site columns and content types can be programmatically or manually created If they are going to be used in multiple site collections they should be

programmatically created

If a single site collection they can be created manually in a master site collection

GUIDs cannot be manually set and code may need them to be consistent

You can create them manually in SharePoint save the site as a template and import them into Visual Studio to create a proper WSP package

Site Structure ndash Part 3

Site structure can also be done either programmatically or manually

Many sites are complex and it is error prone to create manually

We use our own SiteModelBuilder tool to create the site structure

Site Structure ndash Part 4

For all site structure elements changes can also be manual or programmatic It is useful to be able to delete the whole site collection and recreate it

programmatically As soon as content starts being authored in SharePoint it becomes difficult

or impossible to do that

After content authoring has started Site column and content type changes need to be programmed explicitly

(you canrsquot just drop the content type and recreate it) Site structure changes are usually done manually at this point Changes need to be backed up and restored

Change Management

Page and Site Content

Page and site content is entered directly into SharePoint by the content authors Web pages images PDFs list content etc This should be done in the master site separate from where dev integration is

happening Care needs to be taken with this site once authors start working Make sure it is part of your production backup plan

Periodically back it up and restore it to the dev integration and developer VMs

Alternatively script the export and import Ultimately it will be backed up and restored to the QA and production

farms

Change Management

Change Management

Change Management

Change Management

Web part instances

Web parts ultimately get placed on pages

The configuration of the web parts can often get quite complex

You may want to disable editing of web parts for general content authors

They end up in a grey zone between code and content

Web part instances ndash Part 2

We created our own internal tool to export and import web parts

Each web partrsquos configuration can be exported into a webpartfile

We scripted the extraction from the dev integration

webpart files are treated like code and checked into TFS for version control

Script then applies the new webpart files to the target environment

Workflows

Workflows can be built using SharePoint Designer Visual Studio or third-party tools (Nintex or K2 primarily)

Visual Studio workflow projects are automatically packaged as WSP solution files Simply deploy the WSP file to the other environments

SharePoint Designer workflows need to be deployed using SharePoint Designer This means you need SPD access to production which is not always possible

You can load the SPD workflow into Visual Studio to package it but you lose the ability to edit it in SPD

If you use third-party tools yoursquoll need to define the process for that as well

Business Connectivity Services

BCS can be built using either SharePoint Designer or Visual Studio Visual Studio BCS projects are automatically packaged as WSP

solution files Simply deploy the WSP file to the other environments You can also export the BDC metadata model in the BDC service

application

SharePoint Designer doesnrsquot create a WSP and it doesnrsquot make a complete BDC metadata model You need to export and import using SharePoint Designer

In both cases you still need to deal with connection and configuration information

Future Directions

Visual Studio Lab Management

Integrates the management of HyperV environments in with Visual Studio and Team Foundation Server

Can automate the provisioning of lab environments for automated testing

Test failures can snapshot entire environments to make reproduction of errors much easier

Summary

Yoursquore going to have lots of SharePoint environments ndash figure out how to build them quickly and repeatable

Code and content often move in opposite directions through dev QA and Prod PowerShell script and automate to keep this simple

Agile is a great way to run projects

Continuous integration with automated testing is key to its success

There are lots of parts of SharePoint that you donrsquot code through Visual Studio Figure out how you move those through your environment

Other Topics

Site Design

Information architecture

Wireframes

Creative designs ndash Mobile first

Catalogs deep dive

Site build PowerShell scripts

Team Foundation Server and Application Lifecycle Management

Starting a new project

Managing content authoring

Site Improve tool

SEO Optimizations

Analytics options

Retaining Page Ranks with permanent redirects (301)

Azure SharePoint Hosting

Q amp A

Session Evaluations

Go to Evaluations on the home page of wwwcollabconorg

It is important to get your feedback

Please fill out evaluations for all the sessions you attend

Following the conference a random drawing from all completed evaluations will be selected

The winner will receive a $250 Future Shop gift card valid online or in store

Page 30: Web Content Management - CollabCon 2015 - Web... · Performances Complete Works ... Friendly URL An SEO friendly URL defined in the term store for a page, rather than ... What’s

Starting a New Project

Copy the five ESC scripts from $Envision Shakespeare CompanyBuilder Do not rename

Copy the ShakespeareBuild scripts Rename to your project Update the steps as required for your project

Create the infrastructure WSP Site columns content types list definitions and instances

Manually create the pages and assets that are needed in SharePoint Manually create the term store for metadata and navigation Script the extraction to TFS of content and term store Create the branding WSP Manually create any required web parts Export to TFS and script the placement of the web parts on the pages

ESC Scripts Next Steps

Incorporate TMX additions Farm property bag instead of webconfig Audiences Subsites Available layouts Permissions Extract folders and lists

Continue reconciling additional projects in OMA TMX Christie Medical

Full header blocks and commenting Version numbers Complete the catalog connection script Office 365 support

Links

wwwenvisionitcom

blogpetercarsonca

wwwenvisionitcomshakespeare

httpsShakespeareenvisionitcom

wwwbgccancom

wwwproblemgamblingca

wwwrusselmetalscom

wwwtarioncom

wwwtransamericaca

wwwcollegeofececa

wwwsamuelcom

wwwthewaterfrontpropertiesca

wwwshopsatdonmillsca

wwwfuturesherwaygardensca

wwwpublichealthontarioca

SharePoint WCM Glossary

SharePoint Glossary

Term Definition

SharePoint Farm A set of SharePoint servers that share a single configuration database

Web Application A top level container and entry-point URLs for site collections

Site Collection A set of Web sites that are in the same content database have the same owner and share administration settings A site collection can be identified by a GUID or the URL of the top-level site for the site collection Each site collection contains a top-level site can contain one or more subsites and can have a shared navigation structure

Path Based Site Collection A site collection under a managed pathhttpwebappsitessitecollection

Host Named Site Collection A site collection with its own unique URL Must be created through PowerShell

Site Subsite under a site collection

Site Template A template for a single site that has been saved from another site Site templates may or may not contain content Templates cannot be created from publishing sites

SharePoint Glossary

Term Definition

Site Column A single field that can store information of a particular typebull Textbull Choicebull Numberbull hellipDefined at the site collection level

Content Type A content type is a reusable collection of Site Columns that can be applied to a certain category of content Content types enable the management of metadata and behaviors of a document or item type in a centralized reusable way Basically content types include the columns (or fields) that are applied to a certain type of content plus other optional settings such as a document template

Document Set New content type in SharePoint 2010 A document set is a container for multiple documents to which you can assign certain metadata and treat as a single entity in many ways In addition a document set can contain one or more different content types

SharePoint Glossary

Term Definition

List A container for list content types or custom list items Columns can be defined via content types or directly in the list

Document Library A SharePoint list that contains documents where you can create collect update and share files with others Like lists columns can be defined via content types or directly in the list

Form Library A special type of library to facilitate the interaction with InfoPath forms

Asset Library A library typically used to store image audio and video files

List Template A template used to define the configuration of a list or library Templates can be saved with or without content

SharePoint Glossary

Term Definition

Term Store An instance of the Managed Metadata Service This can be shared between sites site collections web applications or farms

Group A collection of term sets

Term Set A collection of related terms

Term A word or a phrase that can be associated with a SharePoint item

Friendly URL An SEO friendly URL defined in the term store for a page rather than the physical URL of where the page is stored (Pages)

SharePoint Glossary

Term Definition

Design Manager 2013 feature used to manipulate WCM artifacts

Master Page Defines elements that are common to all pages such as the header navigation and footer

Page Layout Defines the layout of a particular style of page such as news or events Each page content type can have one or more layouts associated with them

Web Parts Functional elements that can be added to pages typically for dynamic content

Apps Similar to web parts but run outside of SharePoint while beinghosted in the SharePoint page

Publishing Site Page Rendering

FileName

Welcomeaspx

PageLayout

PageLayoutaspx

Title

Welcome To News

Body

Lorem ipsum dolor sit

Image

ImagesChairjpg

1 Welcomeaspx page is

requested

2 Page layout associated with

page is retrieved

3 Master page associated with site

is retrieved

4 Controls in page layout render

content from pagersquos fields into the page

MasterPagemaster

PageLayoutaspxTitle

BodyImage

Date

ByLine

Field Control

FieldControl

Field ControlField ControlField Control

Field Control

httpfoocombarpageswelcomeaspx

SharePoint Glossary

Term Definition

Cross-Site Publishing Publishing from an authoring site collection to one or more publishing site collections

Catalog A list that has been published as a catalog

Category Page A page that displays a rollup of catalog items

Catalog Item Page A page that displays a single item from a catalog

Display Template Used to format the results on search pages in content search web parts and on category pages

Whatrsquos New in Web Content

Management

Easier Page Authoring With Cut and Paste

Drag and Drop Files

Drag and drop files from Windows Explorer into the browser or the other way

Doesnrsquot support folders or document sets

Open in Windows Explorer still works best for this

Requires IE10 or current versions of Chrome Safari or Firefox

IE8 and 9 supported with Office 2013 installed

Image Renditions

Display uploaded images in predefined sizes widths and crops

Multiple renditions stored in document sets

Content author can create renditions (including crops) in the browser

Design Manager

New way to build master

pages and layouts

SharePoint Designer no

longer required

Edit and preview in any HTML

editor

Automatically creates the associated

master page and aspx

layouts

Package into a Design

Package WSP for

deployment

Snippet Gallery

Select components

such as search box or

navigation control

Configure its properties

Paste the snippet into your HTML

master page or layout

Changes synched to

actual master pages and layouts to convert to SharePoint

components

Can be used by any web design

tool

Device Channels

Map channels to mobile devices or browsers

Alternate master pages

can be assigned

Page layouts can include or

exclude content based

on channel

Display Templates

Used to customize the

presentation of search results

No more XSLT

Three templates

bull Control ndash Overall structure of search results

bull Group ndash Show groups of results

bull Item ndash How each result is presented

Navigation and Friendly URLs

Site navigation driven by managed metadata

Term store used for navigation and SEO-friendly URLs

Connect site navigation to business concepts rather than site structure

Server side control outputs HTML for top nav left nav and breadcrumb

Plan is to convert to client-side to support Office 365

Term Store Setup

Two groups used to separate metadata from navigation

Metadata group setup globally

Static GUIDs consistent through all environments

Navigation group setup at the site collection level

Allows multiple copies for multiple sites on the farm

Search

Search is new and different from all previous versions of SharePoint

The platform has been consolidated Built on a combination of FAST Search and SharePoint Search components as well as new development work ndash it is the

same from Foundation to Server

Foundation Search is intended to replace WSS Search Microsoft Search Server and Search Server Express from previous versions of SharePoint

Itrsquos used pervasively throughout the product now in many different ways in different features eDiscovery navigation topic pages Internet facing business sites etc

Search in SharePoint 2013

Single Extensible Platform

FAST Engine

SharePoint Crawler

Best of both

Same Search Platform in both SharePoint and Exchange

Enterprise Search

Search Page Web parts added to a publishing page

Catalogs Cross-site publishing

Library search Executes in place on the library

Site Search _layouts15osssearchresultsaspx Specifies the site and search parameters

Search Centre Basic Search Center - SharePoint Foundation 2013 Enterprise Search Center - SharePoint Server 2013

Content Search Web Part

Similar in concept to the Content Query Web Part

Many advantages

Can go across sites site collections web apps even farms

Leverages the search index -gt very scalable

Query Builder makes it easy to define your results

Use Display Templates to customize the look and feel No more XSLT

Part of the Enterprise CAL

Pre-Configured CSWPs

Popular Items Shows items that have been recently viewed by many users

Recently Changed Items Shows items that have been modified recently This can help site users

track the latest activity on a site or a library

Recommended Items Show content recommendations based on usage patterns for the current

page

All of these can be further configured by editing their properties and changing the search criteria

Search Results Web Part

Similar functionality to the Content Search Web Part

Doesnrsquot allow property mapping in the web part configuration

Mapping is controlled in the Display Template

Part of the Standard CAL

Category Page Item Page

Catalogs

wwwcontosocomproductsAudio-Liware2g

Catalogs

Results

Consistent Displays

Manage content in one place

No need to create

pages

No need to format

Metadata Navigation

Cross-Site Publishing

Reuse content between different sites including site collections and farms

Catalogs can surface lists into publishing sites onto a category page and item pages

Can be surfaced through the Content Search Web Part

No need to create and publish web pages

Create custom friendly URLs

Metadata based navigation base

Cross Site Publishing

Job Posting

Job Posting

Job Posting

Job Posting

Simcoe County District School Board

50000 students

Over 6000 employees

Board office in Barrie

Bordered by the Holland Marsh in the south the Trent-Severn Waterway in the east Grey County in the west and Muskoka in the north

Simcoe County District School Board

119 schools and centres 87 elementary 16 secondary 6 learning centres 10 alternative

Each needs their own web site Being built on SharePoint 2013 Elementary panel first Each has their own unique URL Content authored both at the school and centrally from the board

wwwscdsbonca Pre-existing SharePoint 2010 site Future goal is to rebuild in SharePoint 2013

Business Challenge

100+ public web sites

No standardization on style technology or content

No ability for the board to push content to the school sites

Outdated sites

Not mobile or AODA compliant

Site Features

Fully Adaptivemobile design Robust Search functionality Template makes it fast and efficient to add new school sites News and events can be targeted by the Board to any number of

school sites Target by panel weather zone trustee language Presented in a blended view with the school news and events

Home page rotator links hours content pages all managed by the school staff

SEO-friendly URLs

News

School news entered by school staff

Board news entered in the board site

Rendered using cross-site publishing

High-priority alerts can be flagged to highlight on the site

Bus or school cancellations

Events

Single and multi-day events

School and board managed like news

Adaptive calendar

School Picker

Used to pick which schools to target news and events to

Schools are tagged through the term store

Target by panel weather zone trustee language

Can override and add or remove individual schools

Search

Catalogs

Three main steps

Enabling lists or libraries as catalogs

Creating the catalog connection

Building the page layouts to display the category rollups or item detail pages

Enabling Catalogs

Doesnrsquot have to be a list can be a document Images or Pages library

Experimenting using a Pages library

This gives us draft and published states that lists donrsquot support

Preview and editing is easier

Fairly simple script to do this

Catalog connections are more complex

Create the connection

Fix up the Term Store

Create the Category and Item page layouts and pages

SEO Enhancements

Friendly URLs

Home page redirects

XML sitemaps automatically generated and updated

Custom SEO properties

Usage Analytics

Built for scale from the ground up Detail data rolled up every 15 days amp anonymized Daily events purged every 15 days monthly events after 3 years Lifetime counts always retained

Counts views amp unique itemsday Shows recent (2-weeks) and lifetime count Trims least visited content Pushes aggregate data to reporting database

Drives recommendations capabilities on content Calculations injected into search index as sortable managed properties Deep integration with search engine Can influence search relevance based on content usage

Variations and Multi-Lingual

Export and import content for translation in XLIFF format

Pages

Labels

List items

Navigation

Bing translation service comes with active SharePoint 2013 license

Adaptive Web Design

Adaptive vs Responsive

Adaptive

Fixed breakpoints‒ Desktop gt 980 px

‒ Table portrait gt 768 px

‒ Phone to tablet gt 480 px lt 768 px

‒ Smartphone lt 480 px

Responsive

No fixed breakpoints

Design fluidly adapts to whatever width the browser is

We generally do a hybrid approach with responsive design in the under 768 pixel situation

Design Approaches in SharePoint

Adaptive Design through CSS media queries

Broader standards approach used outside of SharePoint

Keeps a single master page and CSS

Some unnecessary components may still be loaded

Device Channels SharePoint specific approach

Assign different master pages to different device channels

Rules define what devices use which channels

Device Channel Panels can also target content to channels

Hybrid here can also make sense Device channels can be used to remove unnecessary items from the page payload

Our Adaptive Approach

Built using the Twitter Boostrap CSS framework

twittergithubcombootstrap

Provides a responsive design framework for supporting PC Mac tablet and mobile

We enhanced to provide better touch navigation support

Can be leveraged in the master page page layouts and display templates

Incorporated into the SharePoint 2013 Design Master

HTML based master page that can be edited with any tool

SharePoint converts to a master page when uploaded or saved

Additional Open Source Tools and Resources

HTML CSS JavaScript jQuery

httpwwww3schoolscom

httpgetbootstrapcom

httphandlebarsjscom

httpknockoutjscom

httpsangularjsorg

httpmomentjscom

Content Search Web Part

Web part is configured to return search results

Executed as client-side code in the browser

Pair of display templates map the data returned to HTML

Control template for the overall structure

Item template for each item returned

HTML Designer Manager files are compiled to JavaScript

REST Search and Handlebars

Search is accessible through REST calls

httpsiteurl_apisearchquery

Returns results as a JSON array

Handlebars is a templating engine to format that

Conceptually similar to display templates with control and item sections

jQuery glues this all together

Steps to Experiment

F12 to get into Developer Toolbar

Set a breakpoint where the REST URL is determined

Copy the value

Paste into the REST Search test window

Experiment with the query

Adjust the Handlebars template appropriately

Search Setup

Content Sources to define and schedule the crawls

Crawl logs to review success

Search Schema to define the managed properties

Reusable Content

Snippets of HTML that can be reused throughout the site

JavaScript can be intelligent and use the URL to determine its behaviour

Makes it easy for content authors to drop pre-configured dynamic content onto pages

Topic Pages

Shows all items that match a topic

Could be hundreds of virtual pages

Only one template page

Easily customizable and SEO friendly (each topic appears to be its own page)

Content by search web part open search against a query or result source

May be able to surface the topic pages themselves as site search results

Public Health Ontario

httpwwwpublichealthontariocaenBrowseByTopicPagesTopicaspxk=Influenza20InformationByTopic22Influenza22

Ontario Association of Childrens Aid Societies

Application Lifecycle Management

Purpose

How do we build a solid SharePoint development environment for the enterprise

How do a number of developers work together on a SharePoint project

How does code and content move through a dev test and production lifecycle

What is Agile and Continuous Integration and why is it important

Visual Studio and Team Foundation Server

Visual Studio 2010 is the development platform for coding on SharePoint 2010

Team Foundation Server integrates with Visual Studio to provide a repository for code test and other project artifacts

It facilitates teamwork by providing a common place for developers to work together

Provisioning SharePoint Farms

Provisioning SharePoint Farms

Every developer needs their own complete SharePoint farm

Teams need a dev integration farm to bring their work together on

A full architecture needs QA and production farms as well

Envision IT Virtualization Architecture

Developer VM Template

SharePoint Server 2010 Enterprise

SP1 and August CU

Visual Studio 2010 Premium SP1

Office 2010 Professional Plus SP1

SharePoint Designer 2010 SP1

Fiddler

SQL Server 2008 R2 SP1

Creating a new Developer VM

Open System Centre Virtual Machine Manager

Create Virtual Machine

Choose the Developer VM template

Set the virtual machine name and options

Create and start the VM

Creating a new Developer VM - Step 2

Developer RDPs to their new VM Complete the SQL Server installation

Create the default instance Set the service account(s) Set the authentication mode and server administrators

Update the AutoSPInstallerInputxml file Set the machine name for the default sites and database server Set the service account passwords

Run the AutoSPInstallerLaunch batch file Do a Health check review

Creating a new Developer VM - Step 3

Start Visual Studio

Connect to the Team Foundation Server

Setup your workspaces

Use a standard naming convention across your team

CDevelopmentTFSCollection

Other Environments

Dev Integration QA and Production can all be built using AutoSPInstall

Donrsquot need or want the Visual Studio or Office tools on these servers

We have a base template we use for dev integration servers

QA should match the Prod architecture as closely as possible

High availability with load balancing clustered SQL app servers DMZ hardening Internet publishing

Agile Development

Agile with Team Foundation Server

Creating Your TFS Project

Open Visual Studio

Make sure you are connected to the right Team Project Collection

In Team Explorer right-click the top collection and create a new Team Project

Use the Scrum 10 template

Go into the Areas and Iterations Delete the extraneous releases and sprints

Create a product backlog iteration

Start adding your stories and tasks

Continuous Integration

Continuous Integration

Automated Testing

SharePoint Site Elements

Site structure Site columns content types subsites lists libraries

Branding elements Master pages layouts CSS XSLT supporting images

Custom web parts Page and site content Web part instances Search Workflows Business Connectivity Services Managed Metadata

SharePoint Site Elements ndash Part 2

Access Excel Word Visio

PerformancePoint

Document conversions

Timer jobs

Secure Store Service

User profiles

Site Structure

bull Site columns

bull Define the fields that are used by content types

bull Content types

bull Defines collections of site columns for different types of content

bull Subsites

bull The hierarchy of sites that make up the site collection

bull Lists and Libraries

bull The lists and libraries for each subsite

Site Structure ndash Part 2

Site columns and content types can be programmatically or manually created If they are going to be used in multiple site collections they should be

programmatically created

If a single site collection they can be created manually in a master site collection

GUIDs cannot be manually set and code may need them to be consistent

You can create them manually in SharePoint save the site as a template and import them into Visual Studio to create a proper WSP package

Site Structure ndash Part 3

Site structure can also be done either programmatically or manually

Many sites are complex and it is error prone to create manually

We use our own SiteModelBuilder tool to create the site structure

Site Structure ndash Part 4

For all site structure elements changes can also be manual or programmatic It is useful to be able to delete the whole site collection and recreate it

programmatically As soon as content starts being authored in SharePoint it becomes difficult

or impossible to do that

After content authoring has started Site column and content type changes need to be programmed explicitly

(you canrsquot just drop the content type and recreate it) Site structure changes are usually done manually at this point Changes need to be backed up and restored

Change Management

Page and Site Content

Page and site content is entered directly into SharePoint by the content authors Web pages images PDFs list content etc This should be done in the master site separate from where dev integration is

happening Care needs to be taken with this site once authors start working Make sure it is part of your production backup plan

Periodically back it up and restore it to the dev integration and developer VMs

Alternatively script the export and import Ultimately it will be backed up and restored to the QA and production

farms

Change Management

Change Management

Change Management

Change Management

Web part instances

Web parts ultimately get placed on pages

The configuration of the web parts can often get quite complex

You may want to disable editing of web parts for general content authors

They end up in a grey zone between code and content

Web part instances ndash Part 2

We created our own internal tool to export and import web parts

Each web partrsquos configuration can be exported into a webpartfile

We scripted the extraction from the dev integration

webpart files are treated like code and checked into TFS for version control

Script then applies the new webpart files to the target environment

Workflows

Workflows can be built using SharePoint Designer Visual Studio or third-party tools (Nintex or K2 primarily)

Visual Studio workflow projects are automatically packaged as WSP solution files Simply deploy the WSP file to the other environments

SharePoint Designer workflows need to be deployed using SharePoint Designer This means you need SPD access to production which is not always possible

You can load the SPD workflow into Visual Studio to package it but you lose the ability to edit it in SPD

If you use third-party tools yoursquoll need to define the process for that as well

Business Connectivity Services

BCS can be built using either SharePoint Designer or Visual Studio Visual Studio BCS projects are automatically packaged as WSP

solution files Simply deploy the WSP file to the other environments You can also export the BDC metadata model in the BDC service

application

SharePoint Designer doesnrsquot create a WSP and it doesnrsquot make a complete BDC metadata model You need to export and import using SharePoint Designer

In both cases you still need to deal with connection and configuration information

Future Directions

Visual Studio Lab Management

Integrates the management of HyperV environments in with Visual Studio and Team Foundation Server

Can automate the provisioning of lab environments for automated testing

Test failures can snapshot entire environments to make reproduction of errors much easier

Summary

Yoursquore going to have lots of SharePoint environments ndash figure out how to build them quickly and repeatable

Code and content often move in opposite directions through dev QA and Prod PowerShell script and automate to keep this simple

Agile is a great way to run projects

Continuous integration with automated testing is key to its success

There are lots of parts of SharePoint that you donrsquot code through Visual Studio Figure out how you move those through your environment

Other Topics

Site Design

Information architecture

Wireframes

Creative designs ndash Mobile first

Catalogs deep dive

Site build PowerShell scripts

Team Foundation Server and Application Lifecycle Management

Starting a new project

Managing content authoring

Site Improve tool

SEO Optimizations

Analytics options

Retaining Page Ranks with permanent redirects (301)

Azure SharePoint Hosting

Q amp A

Session Evaluations

Go to Evaluations on the home page of wwwcollabconorg

It is important to get your feedback

Please fill out evaluations for all the sessions you attend

Following the conference a random drawing from all completed evaluations will be selected

The winner will receive a $250 Future Shop gift card valid online or in store

Page 31: Web Content Management - CollabCon 2015 - Web... · Performances Complete Works ... Friendly URL An SEO friendly URL defined in the term store for a page, rather than ... What’s

ESC Scripts Next Steps

Incorporate TMX additions Farm property bag instead of webconfig Audiences Subsites Available layouts Permissions Extract folders and lists

Continue reconciling additional projects in OMA TMX Christie Medical

Full header blocks and commenting Version numbers Complete the catalog connection script Office 365 support

Links

wwwenvisionitcom

blogpetercarsonca

wwwenvisionitcomshakespeare

httpsShakespeareenvisionitcom

wwwbgccancom

wwwproblemgamblingca

wwwrusselmetalscom

wwwtarioncom

wwwtransamericaca

wwwcollegeofececa

wwwsamuelcom

wwwthewaterfrontpropertiesca

wwwshopsatdonmillsca

wwwfuturesherwaygardensca

wwwpublichealthontarioca

SharePoint WCM Glossary

SharePoint Glossary

Term Definition

SharePoint Farm A set of SharePoint servers that share a single configuration database

Web Application A top level container and entry-point URLs for site collections

Site Collection A set of Web sites that are in the same content database have the same owner and share administration settings A site collection can be identified by a GUID or the URL of the top-level site for the site collection Each site collection contains a top-level site can contain one or more subsites and can have a shared navigation structure

Path Based Site Collection A site collection under a managed pathhttpwebappsitessitecollection

Host Named Site Collection A site collection with its own unique URL Must be created through PowerShell

Site Subsite under a site collection

Site Template A template for a single site that has been saved from another site Site templates may or may not contain content Templates cannot be created from publishing sites

SharePoint Glossary

Term Definition

Site Column A single field that can store information of a particular typebull Textbull Choicebull Numberbull hellipDefined at the site collection level

Content Type A content type is a reusable collection of Site Columns that can be applied to a certain category of content Content types enable the management of metadata and behaviors of a document or item type in a centralized reusable way Basically content types include the columns (or fields) that are applied to a certain type of content plus other optional settings such as a document template

Document Set New content type in SharePoint 2010 A document set is a container for multiple documents to which you can assign certain metadata and treat as a single entity in many ways In addition a document set can contain one or more different content types

SharePoint Glossary

Term Definition

List A container for list content types or custom list items Columns can be defined via content types or directly in the list

Document Library A SharePoint list that contains documents where you can create collect update and share files with others Like lists columns can be defined via content types or directly in the list

Form Library A special type of library to facilitate the interaction with InfoPath forms

Asset Library A library typically used to store image audio and video files

List Template A template used to define the configuration of a list or library Templates can be saved with or without content

SharePoint Glossary

Term Definition

Term Store An instance of the Managed Metadata Service This can be shared between sites site collections web applications or farms

Group A collection of term sets

Term Set A collection of related terms

Term A word or a phrase that can be associated with a SharePoint item

Friendly URL An SEO friendly URL defined in the term store for a page rather than the physical URL of where the page is stored (Pages)

SharePoint Glossary

Term Definition

Design Manager 2013 feature used to manipulate WCM artifacts

Master Page Defines elements that are common to all pages such as the header navigation and footer

Page Layout Defines the layout of a particular style of page such as news or events Each page content type can have one or more layouts associated with them

Web Parts Functional elements that can be added to pages typically for dynamic content

Apps Similar to web parts but run outside of SharePoint while beinghosted in the SharePoint page

Publishing Site Page Rendering

FileName

Welcomeaspx

PageLayout

PageLayoutaspx

Title

Welcome To News

Body

Lorem ipsum dolor sit

Image

ImagesChairjpg

1 Welcomeaspx page is

requested

2 Page layout associated with

page is retrieved

3 Master page associated with site

is retrieved

4 Controls in page layout render

content from pagersquos fields into the page

MasterPagemaster

PageLayoutaspxTitle

BodyImage

Date

ByLine

Field Control

FieldControl

Field ControlField ControlField Control

Field Control

httpfoocombarpageswelcomeaspx

SharePoint Glossary

Term Definition

Cross-Site Publishing Publishing from an authoring site collection to one or more publishing site collections

Catalog A list that has been published as a catalog

Category Page A page that displays a rollup of catalog items

Catalog Item Page A page that displays a single item from a catalog

Display Template Used to format the results on search pages in content search web parts and on category pages

Whatrsquos New in Web Content

Management

Easier Page Authoring With Cut and Paste

Drag and Drop Files

Drag and drop files from Windows Explorer into the browser or the other way

Doesnrsquot support folders or document sets

Open in Windows Explorer still works best for this

Requires IE10 or current versions of Chrome Safari or Firefox

IE8 and 9 supported with Office 2013 installed

Image Renditions

Display uploaded images in predefined sizes widths and crops

Multiple renditions stored in document sets

Content author can create renditions (including crops) in the browser

Design Manager

New way to build master

pages and layouts

SharePoint Designer no

longer required

Edit and preview in any HTML

editor

Automatically creates the associated

master page and aspx

layouts

Package into a Design

Package WSP for

deployment

Snippet Gallery

Select components

such as search box or

navigation control

Configure its properties

Paste the snippet into your HTML

master page or layout

Changes synched to

actual master pages and layouts to convert to SharePoint

components

Can be used by any web design

tool

Device Channels

Map channels to mobile devices or browsers

Alternate master pages

can be assigned

Page layouts can include or

exclude content based

on channel

Display Templates

Used to customize the

presentation of search results

No more XSLT

Three templates

bull Control ndash Overall structure of search results

bull Group ndash Show groups of results

bull Item ndash How each result is presented

Navigation and Friendly URLs

Site navigation driven by managed metadata

Term store used for navigation and SEO-friendly URLs

Connect site navigation to business concepts rather than site structure

Server side control outputs HTML for top nav left nav and breadcrumb

Plan is to convert to client-side to support Office 365

Term Store Setup

Two groups used to separate metadata from navigation

Metadata group setup globally

Static GUIDs consistent through all environments

Navigation group setup at the site collection level

Allows multiple copies for multiple sites on the farm

Search

Search is new and different from all previous versions of SharePoint

The platform has been consolidated Built on a combination of FAST Search and SharePoint Search components as well as new development work ndash it is the

same from Foundation to Server

Foundation Search is intended to replace WSS Search Microsoft Search Server and Search Server Express from previous versions of SharePoint

Itrsquos used pervasively throughout the product now in many different ways in different features eDiscovery navigation topic pages Internet facing business sites etc

Search in SharePoint 2013

Single Extensible Platform

FAST Engine

SharePoint Crawler

Best of both

Same Search Platform in both SharePoint and Exchange

Enterprise Search

Search Page Web parts added to a publishing page

Catalogs Cross-site publishing

Library search Executes in place on the library

Site Search _layouts15osssearchresultsaspx Specifies the site and search parameters

Search Centre Basic Search Center - SharePoint Foundation 2013 Enterprise Search Center - SharePoint Server 2013

Content Search Web Part

Similar in concept to the Content Query Web Part

Many advantages

Can go across sites site collections web apps even farms

Leverages the search index -gt very scalable

Query Builder makes it easy to define your results

Use Display Templates to customize the look and feel No more XSLT

Part of the Enterprise CAL

Pre-Configured CSWPs

Popular Items Shows items that have been recently viewed by many users

Recently Changed Items Shows items that have been modified recently This can help site users

track the latest activity on a site or a library

Recommended Items Show content recommendations based on usage patterns for the current

page

All of these can be further configured by editing their properties and changing the search criteria

Search Results Web Part

Similar functionality to the Content Search Web Part

Doesnrsquot allow property mapping in the web part configuration

Mapping is controlled in the Display Template

Part of the Standard CAL

Category Page Item Page

Catalogs

wwwcontosocomproductsAudio-Liware2g

Catalogs

Results

Consistent Displays

Manage content in one place

No need to create

pages

No need to format

Metadata Navigation

Cross-Site Publishing

Reuse content between different sites including site collections and farms

Catalogs can surface lists into publishing sites onto a category page and item pages

Can be surfaced through the Content Search Web Part

No need to create and publish web pages

Create custom friendly URLs

Metadata based navigation base

Cross Site Publishing

Job Posting

Job Posting

Job Posting

Job Posting

Simcoe County District School Board

50000 students

Over 6000 employees

Board office in Barrie

Bordered by the Holland Marsh in the south the Trent-Severn Waterway in the east Grey County in the west and Muskoka in the north

Simcoe County District School Board

119 schools and centres 87 elementary 16 secondary 6 learning centres 10 alternative

Each needs their own web site Being built on SharePoint 2013 Elementary panel first Each has their own unique URL Content authored both at the school and centrally from the board

wwwscdsbonca Pre-existing SharePoint 2010 site Future goal is to rebuild in SharePoint 2013

Business Challenge

100+ public web sites

No standardization on style technology or content

No ability for the board to push content to the school sites

Outdated sites

Not mobile or AODA compliant

Site Features

Fully Adaptivemobile design Robust Search functionality Template makes it fast and efficient to add new school sites News and events can be targeted by the Board to any number of

school sites Target by panel weather zone trustee language Presented in a blended view with the school news and events

Home page rotator links hours content pages all managed by the school staff

SEO-friendly URLs

News

School news entered by school staff

Board news entered in the board site

Rendered using cross-site publishing

High-priority alerts can be flagged to highlight on the site

Bus or school cancellations

Events

Single and multi-day events

School and board managed like news

Adaptive calendar

School Picker

Used to pick which schools to target news and events to

Schools are tagged through the term store

Target by panel weather zone trustee language

Can override and add or remove individual schools

Search

Catalogs

Three main steps

Enabling lists or libraries as catalogs

Creating the catalog connection

Building the page layouts to display the category rollups or item detail pages

Enabling Catalogs

Doesnrsquot have to be a list can be a document Images or Pages library

Experimenting using a Pages library

This gives us draft and published states that lists donrsquot support

Preview and editing is easier

Fairly simple script to do this

Catalog connections are more complex

Create the connection

Fix up the Term Store

Create the Category and Item page layouts and pages

SEO Enhancements

Friendly URLs

Home page redirects

XML sitemaps automatically generated and updated

Custom SEO properties

Usage Analytics

Built for scale from the ground up Detail data rolled up every 15 days amp anonymized Daily events purged every 15 days monthly events after 3 years Lifetime counts always retained

Counts views amp unique itemsday Shows recent (2-weeks) and lifetime count Trims least visited content Pushes aggregate data to reporting database

Drives recommendations capabilities on content Calculations injected into search index as sortable managed properties Deep integration with search engine Can influence search relevance based on content usage

Variations and Multi-Lingual

Export and import content for translation in XLIFF format

Pages

Labels

List items

Navigation

Bing translation service comes with active SharePoint 2013 license

Adaptive Web Design

Adaptive vs Responsive

Adaptive

Fixed breakpoints‒ Desktop gt 980 px

‒ Table portrait gt 768 px

‒ Phone to tablet gt 480 px lt 768 px

‒ Smartphone lt 480 px

Responsive

No fixed breakpoints

Design fluidly adapts to whatever width the browser is

We generally do a hybrid approach with responsive design in the under 768 pixel situation

Design Approaches in SharePoint

Adaptive Design through CSS media queries

Broader standards approach used outside of SharePoint

Keeps a single master page and CSS

Some unnecessary components may still be loaded

Device Channels SharePoint specific approach

Assign different master pages to different device channels

Rules define what devices use which channels

Device Channel Panels can also target content to channels

Hybrid here can also make sense Device channels can be used to remove unnecessary items from the page payload

Our Adaptive Approach

Built using the Twitter Boostrap CSS framework

twittergithubcombootstrap

Provides a responsive design framework for supporting PC Mac tablet and mobile

We enhanced to provide better touch navigation support

Can be leveraged in the master page page layouts and display templates

Incorporated into the SharePoint 2013 Design Master

HTML based master page that can be edited with any tool

SharePoint converts to a master page when uploaded or saved

Additional Open Source Tools and Resources

HTML CSS JavaScript jQuery

httpwwww3schoolscom

httpgetbootstrapcom

httphandlebarsjscom

httpknockoutjscom

httpsangularjsorg

httpmomentjscom

Content Search Web Part

Web part is configured to return search results

Executed as client-side code in the browser

Pair of display templates map the data returned to HTML

Control template for the overall structure

Item template for each item returned

HTML Designer Manager files are compiled to JavaScript

REST Search and Handlebars

Search is accessible through REST calls

httpsiteurl_apisearchquery

Returns results as a JSON array

Handlebars is a templating engine to format that

Conceptually similar to display templates with control and item sections

jQuery glues this all together

Steps to Experiment

F12 to get into Developer Toolbar

Set a breakpoint where the REST URL is determined

Copy the value

Paste into the REST Search test window

Experiment with the query

Adjust the Handlebars template appropriately

Search Setup

Content Sources to define and schedule the crawls

Crawl logs to review success

Search Schema to define the managed properties

Reusable Content

Snippets of HTML that can be reused throughout the site

JavaScript can be intelligent and use the URL to determine its behaviour

Makes it easy for content authors to drop pre-configured dynamic content onto pages

Topic Pages

Shows all items that match a topic

Could be hundreds of virtual pages

Only one template page

Easily customizable and SEO friendly (each topic appears to be its own page)

Content by search web part open search against a query or result source

May be able to surface the topic pages themselves as site search results

Public Health Ontario

httpwwwpublichealthontariocaenBrowseByTopicPagesTopicaspxk=Influenza20InformationByTopic22Influenza22

Ontario Association of Childrens Aid Societies

Application Lifecycle Management

Purpose

How do we build a solid SharePoint development environment for the enterprise

How do a number of developers work together on a SharePoint project

How does code and content move through a dev test and production lifecycle

What is Agile and Continuous Integration and why is it important

Visual Studio and Team Foundation Server

Visual Studio 2010 is the development platform for coding on SharePoint 2010

Team Foundation Server integrates with Visual Studio to provide a repository for code test and other project artifacts

It facilitates teamwork by providing a common place for developers to work together

Provisioning SharePoint Farms

Provisioning SharePoint Farms

Every developer needs their own complete SharePoint farm

Teams need a dev integration farm to bring their work together on

A full architecture needs QA and production farms as well

Envision IT Virtualization Architecture

Developer VM Template

SharePoint Server 2010 Enterprise

SP1 and August CU

Visual Studio 2010 Premium SP1

Office 2010 Professional Plus SP1

SharePoint Designer 2010 SP1

Fiddler

SQL Server 2008 R2 SP1

Creating a new Developer VM

Open System Centre Virtual Machine Manager

Create Virtual Machine

Choose the Developer VM template

Set the virtual machine name and options

Create and start the VM

Creating a new Developer VM - Step 2

Developer RDPs to their new VM Complete the SQL Server installation

Create the default instance Set the service account(s) Set the authentication mode and server administrators

Update the AutoSPInstallerInputxml file Set the machine name for the default sites and database server Set the service account passwords

Run the AutoSPInstallerLaunch batch file Do a Health check review

Creating a new Developer VM - Step 3

Start Visual Studio

Connect to the Team Foundation Server

Setup your workspaces

Use a standard naming convention across your team

CDevelopmentTFSCollection

Other Environments

Dev Integration QA and Production can all be built using AutoSPInstall

Donrsquot need or want the Visual Studio or Office tools on these servers

We have a base template we use for dev integration servers

QA should match the Prod architecture as closely as possible

High availability with load balancing clustered SQL app servers DMZ hardening Internet publishing

Agile Development

Agile with Team Foundation Server

Creating Your TFS Project

Open Visual Studio

Make sure you are connected to the right Team Project Collection

In Team Explorer right-click the top collection and create a new Team Project

Use the Scrum 10 template

Go into the Areas and Iterations Delete the extraneous releases and sprints

Create a product backlog iteration

Start adding your stories and tasks

Continuous Integration

Continuous Integration

Automated Testing

SharePoint Site Elements

Site structure Site columns content types subsites lists libraries

Branding elements Master pages layouts CSS XSLT supporting images

Custom web parts Page and site content Web part instances Search Workflows Business Connectivity Services Managed Metadata

SharePoint Site Elements ndash Part 2

Access Excel Word Visio

PerformancePoint

Document conversions

Timer jobs

Secure Store Service

User profiles

Site Structure

bull Site columns

bull Define the fields that are used by content types

bull Content types

bull Defines collections of site columns for different types of content

bull Subsites

bull The hierarchy of sites that make up the site collection

bull Lists and Libraries

bull The lists and libraries for each subsite

Site Structure ndash Part 2

Site columns and content types can be programmatically or manually created If they are going to be used in multiple site collections they should be

programmatically created

If a single site collection they can be created manually in a master site collection

GUIDs cannot be manually set and code may need them to be consistent

You can create them manually in SharePoint save the site as a template and import them into Visual Studio to create a proper WSP package

Site Structure ndash Part 3

Site structure can also be done either programmatically or manually

Many sites are complex and it is error prone to create manually

We use our own SiteModelBuilder tool to create the site structure

Site Structure ndash Part 4

For all site structure elements changes can also be manual or programmatic It is useful to be able to delete the whole site collection and recreate it

programmatically As soon as content starts being authored in SharePoint it becomes difficult

or impossible to do that

After content authoring has started Site column and content type changes need to be programmed explicitly

(you canrsquot just drop the content type and recreate it) Site structure changes are usually done manually at this point Changes need to be backed up and restored

Change Management

Page and Site Content

Page and site content is entered directly into SharePoint by the content authors Web pages images PDFs list content etc This should be done in the master site separate from where dev integration is

happening Care needs to be taken with this site once authors start working Make sure it is part of your production backup plan

Periodically back it up and restore it to the dev integration and developer VMs

Alternatively script the export and import Ultimately it will be backed up and restored to the QA and production

farms

Change Management

Change Management

Change Management

Change Management

Web part instances

Web parts ultimately get placed on pages

The configuration of the web parts can often get quite complex

You may want to disable editing of web parts for general content authors

They end up in a grey zone between code and content

Web part instances ndash Part 2

We created our own internal tool to export and import web parts

Each web partrsquos configuration can be exported into a webpartfile

We scripted the extraction from the dev integration

webpart files are treated like code and checked into TFS for version control

Script then applies the new webpart files to the target environment

Workflows

Workflows can be built using SharePoint Designer Visual Studio or third-party tools (Nintex or K2 primarily)

Visual Studio workflow projects are automatically packaged as WSP solution files Simply deploy the WSP file to the other environments

SharePoint Designer workflows need to be deployed using SharePoint Designer This means you need SPD access to production which is not always possible

You can load the SPD workflow into Visual Studio to package it but you lose the ability to edit it in SPD

If you use third-party tools yoursquoll need to define the process for that as well

Business Connectivity Services

BCS can be built using either SharePoint Designer or Visual Studio Visual Studio BCS projects are automatically packaged as WSP

solution files Simply deploy the WSP file to the other environments You can also export the BDC metadata model in the BDC service

application

SharePoint Designer doesnrsquot create a WSP and it doesnrsquot make a complete BDC metadata model You need to export and import using SharePoint Designer

In both cases you still need to deal with connection and configuration information

Future Directions

Visual Studio Lab Management

Integrates the management of HyperV environments in with Visual Studio and Team Foundation Server

Can automate the provisioning of lab environments for automated testing

Test failures can snapshot entire environments to make reproduction of errors much easier

Summary

Yoursquore going to have lots of SharePoint environments ndash figure out how to build them quickly and repeatable

Code and content often move in opposite directions through dev QA and Prod PowerShell script and automate to keep this simple

Agile is a great way to run projects

Continuous integration with automated testing is key to its success

There are lots of parts of SharePoint that you donrsquot code through Visual Studio Figure out how you move those through your environment

Other Topics

Site Design

Information architecture

Wireframes

Creative designs ndash Mobile first

Catalogs deep dive

Site build PowerShell scripts

Team Foundation Server and Application Lifecycle Management

Starting a new project

Managing content authoring

Site Improve tool

SEO Optimizations

Analytics options

Retaining Page Ranks with permanent redirects (301)

Azure SharePoint Hosting

Q amp A

Session Evaluations

Go to Evaluations on the home page of wwwcollabconorg

It is important to get your feedback

Please fill out evaluations for all the sessions you attend

Following the conference a random drawing from all completed evaluations will be selected

The winner will receive a $250 Future Shop gift card valid online or in store

Page 32: Web Content Management - CollabCon 2015 - Web... · Performances Complete Works ... Friendly URL An SEO friendly URL defined in the term store for a page, rather than ... What’s

Links

wwwenvisionitcom

blogpetercarsonca

wwwenvisionitcomshakespeare

httpsShakespeareenvisionitcom

wwwbgccancom

wwwproblemgamblingca

wwwrusselmetalscom

wwwtarioncom

wwwtransamericaca

wwwcollegeofececa

wwwsamuelcom

wwwthewaterfrontpropertiesca

wwwshopsatdonmillsca

wwwfuturesherwaygardensca

wwwpublichealthontarioca

SharePoint WCM Glossary

SharePoint Glossary

Term Definition

SharePoint Farm A set of SharePoint servers that share a single configuration database

Web Application A top level container and entry-point URLs for site collections

Site Collection A set of Web sites that are in the same content database have the same owner and share administration settings A site collection can be identified by a GUID or the URL of the top-level site for the site collection Each site collection contains a top-level site can contain one or more subsites and can have a shared navigation structure

Path Based Site Collection A site collection under a managed pathhttpwebappsitessitecollection

Host Named Site Collection A site collection with its own unique URL Must be created through PowerShell

Site Subsite under a site collection

Site Template A template for a single site that has been saved from another site Site templates may or may not contain content Templates cannot be created from publishing sites

SharePoint Glossary

Term Definition

Site Column A single field that can store information of a particular typebull Textbull Choicebull Numberbull hellipDefined at the site collection level

Content Type A content type is a reusable collection of Site Columns that can be applied to a certain category of content Content types enable the management of metadata and behaviors of a document or item type in a centralized reusable way Basically content types include the columns (or fields) that are applied to a certain type of content plus other optional settings such as a document template

Document Set New content type in SharePoint 2010 A document set is a container for multiple documents to which you can assign certain metadata and treat as a single entity in many ways In addition a document set can contain one or more different content types

SharePoint Glossary

Term Definition

List A container for list content types or custom list items Columns can be defined via content types or directly in the list

Document Library A SharePoint list that contains documents where you can create collect update and share files with others Like lists columns can be defined via content types or directly in the list

Form Library A special type of library to facilitate the interaction with InfoPath forms

Asset Library A library typically used to store image audio and video files

List Template A template used to define the configuration of a list or library Templates can be saved with or without content

SharePoint Glossary

Term Definition

Term Store An instance of the Managed Metadata Service This can be shared between sites site collections web applications or farms

Group A collection of term sets

Term Set A collection of related terms

Term A word or a phrase that can be associated with a SharePoint item

Friendly URL An SEO friendly URL defined in the term store for a page rather than the physical URL of where the page is stored (Pages)

SharePoint Glossary

Term Definition

Design Manager 2013 feature used to manipulate WCM artifacts

Master Page Defines elements that are common to all pages such as the header navigation and footer

Page Layout Defines the layout of a particular style of page such as news or events Each page content type can have one or more layouts associated with them

Web Parts Functional elements that can be added to pages typically for dynamic content

Apps Similar to web parts but run outside of SharePoint while beinghosted in the SharePoint page

Publishing Site Page Rendering

FileName

Welcomeaspx

PageLayout

PageLayoutaspx

Title

Welcome To News

Body

Lorem ipsum dolor sit

Image

ImagesChairjpg

1 Welcomeaspx page is

requested

2 Page layout associated with

page is retrieved

3 Master page associated with site

is retrieved

4 Controls in page layout render

content from pagersquos fields into the page

MasterPagemaster

PageLayoutaspxTitle

BodyImage

Date

ByLine

Field Control

FieldControl

Field ControlField ControlField Control

Field Control

httpfoocombarpageswelcomeaspx

SharePoint Glossary

Term Definition

Cross-Site Publishing Publishing from an authoring site collection to one or more publishing site collections

Catalog A list that has been published as a catalog

Category Page A page that displays a rollup of catalog items

Catalog Item Page A page that displays a single item from a catalog

Display Template Used to format the results on search pages in content search web parts and on category pages

Whatrsquos New in Web Content

Management

Easier Page Authoring With Cut and Paste

Drag and Drop Files

Drag and drop files from Windows Explorer into the browser or the other way

Doesnrsquot support folders or document sets

Open in Windows Explorer still works best for this

Requires IE10 or current versions of Chrome Safari or Firefox

IE8 and 9 supported with Office 2013 installed

Image Renditions

Display uploaded images in predefined sizes widths and crops

Multiple renditions stored in document sets

Content author can create renditions (including crops) in the browser

Design Manager

New way to build master

pages and layouts

SharePoint Designer no

longer required

Edit and preview in any HTML

editor

Automatically creates the associated

master page and aspx

layouts

Package into a Design

Package WSP for

deployment

Snippet Gallery

Select components

such as search box or

navigation control

Configure its properties

Paste the snippet into your HTML

master page or layout

Changes synched to

actual master pages and layouts to convert to SharePoint

components

Can be used by any web design

tool

Device Channels

Map channels to mobile devices or browsers

Alternate master pages

can be assigned

Page layouts can include or

exclude content based

on channel

Display Templates

Used to customize the

presentation of search results

No more XSLT

Three templates

bull Control ndash Overall structure of search results

bull Group ndash Show groups of results

bull Item ndash How each result is presented

Navigation and Friendly URLs

Site navigation driven by managed metadata

Term store used for navigation and SEO-friendly URLs

Connect site navigation to business concepts rather than site structure

Server side control outputs HTML for top nav left nav and breadcrumb

Plan is to convert to client-side to support Office 365

Term Store Setup

Two groups used to separate metadata from navigation

Metadata group setup globally

Static GUIDs consistent through all environments

Navigation group setup at the site collection level

Allows multiple copies for multiple sites on the farm

Search

Search is new and different from all previous versions of SharePoint

The platform has been consolidated Built on a combination of FAST Search and SharePoint Search components as well as new development work ndash it is the

same from Foundation to Server

Foundation Search is intended to replace WSS Search Microsoft Search Server and Search Server Express from previous versions of SharePoint

Itrsquos used pervasively throughout the product now in many different ways in different features eDiscovery navigation topic pages Internet facing business sites etc

Search in SharePoint 2013

Single Extensible Platform

FAST Engine

SharePoint Crawler

Best of both

Same Search Platform in both SharePoint and Exchange

Enterprise Search

Search Page Web parts added to a publishing page

Catalogs Cross-site publishing

Library search Executes in place on the library

Site Search _layouts15osssearchresultsaspx Specifies the site and search parameters

Search Centre Basic Search Center - SharePoint Foundation 2013 Enterprise Search Center - SharePoint Server 2013

Content Search Web Part

Similar in concept to the Content Query Web Part

Many advantages

Can go across sites site collections web apps even farms

Leverages the search index -gt very scalable

Query Builder makes it easy to define your results

Use Display Templates to customize the look and feel No more XSLT

Part of the Enterprise CAL

Pre-Configured CSWPs

Popular Items Shows items that have been recently viewed by many users

Recently Changed Items Shows items that have been modified recently This can help site users

track the latest activity on a site or a library

Recommended Items Show content recommendations based on usage patterns for the current

page

All of these can be further configured by editing their properties and changing the search criteria

Search Results Web Part

Similar functionality to the Content Search Web Part

Doesnrsquot allow property mapping in the web part configuration

Mapping is controlled in the Display Template

Part of the Standard CAL

Category Page Item Page

Catalogs

wwwcontosocomproductsAudio-Liware2g

Catalogs

Results

Consistent Displays

Manage content in one place

No need to create

pages

No need to format

Metadata Navigation

Cross-Site Publishing

Reuse content between different sites including site collections and farms

Catalogs can surface lists into publishing sites onto a category page and item pages

Can be surfaced through the Content Search Web Part

No need to create and publish web pages

Create custom friendly URLs

Metadata based navigation base

Cross Site Publishing

Job Posting

Job Posting

Job Posting

Job Posting

Simcoe County District School Board

50000 students

Over 6000 employees

Board office in Barrie

Bordered by the Holland Marsh in the south the Trent-Severn Waterway in the east Grey County in the west and Muskoka in the north

Simcoe County District School Board

119 schools and centres 87 elementary 16 secondary 6 learning centres 10 alternative

Each needs their own web site Being built on SharePoint 2013 Elementary panel first Each has their own unique URL Content authored both at the school and centrally from the board

wwwscdsbonca Pre-existing SharePoint 2010 site Future goal is to rebuild in SharePoint 2013

Business Challenge

100+ public web sites

No standardization on style technology or content

No ability for the board to push content to the school sites

Outdated sites

Not mobile or AODA compliant

Site Features

Fully Adaptivemobile design Robust Search functionality Template makes it fast and efficient to add new school sites News and events can be targeted by the Board to any number of

school sites Target by panel weather zone trustee language Presented in a blended view with the school news and events

Home page rotator links hours content pages all managed by the school staff

SEO-friendly URLs

News

School news entered by school staff

Board news entered in the board site

Rendered using cross-site publishing

High-priority alerts can be flagged to highlight on the site

Bus or school cancellations

Events

Single and multi-day events

School and board managed like news

Adaptive calendar

School Picker

Used to pick which schools to target news and events to

Schools are tagged through the term store

Target by panel weather zone trustee language

Can override and add or remove individual schools

Search

Catalogs

Three main steps

Enabling lists or libraries as catalogs

Creating the catalog connection

Building the page layouts to display the category rollups or item detail pages

Enabling Catalogs

Doesnrsquot have to be a list can be a document Images or Pages library

Experimenting using a Pages library

This gives us draft and published states that lists donrsquot support

Preview and editing is easier

Fairly simple script to do this

Catalog connections are more complex

Create the connection

Fix up the Term Store

Create the Category and Item page layouts and pages

SEO Enhancements

Friendly URLs

Home page redirects

XML sitemaps automatically generated and updated

Custom SEO properties

Usage Analytics

Built for scale from the ground up Detail data rolled up every 15 days amp anonymized Daily events purged every 15 days monthly events after 3 years Lifetime counts always retained

Counts views amp unique itemsday Shows recent (2-weeks) and lifetime count Trims least visited content Pushes aggregate data to reporting database

Drives recommendations capabilities on content Calculations injected into search index as sortable managed properties Deep integration with search engine Can influence search relevance based on content usage

Variations and Multi-Lingual

Export and import content for translation in XLIFF format

Pages

Labels

List items

Navigation

Bing translation service comes with active SharePoint 2013 license

Adaptive Web Design

Adaptive vs Responsive

Adaptive

Fixed breakpoints‒ Desktop gt 980 px

‒ Table portrait gt 768 px

‒ Phone to tablet gt 480 px lt 768 px

‒ Smartphone lt 480 px

Responsive

No fixed breakpoints

Design fluidly adapts to whatever width the browser is

We generally do a hybrid approach with responsive design in the under 768 pixel situation

Design Approaches in SharePoint

Adaptive Design through CSS media queries

Broader standards approach used outside of SharePoint

Keeps a single master page and CSS

Some unnecessary components may still be loaded

Device Channels SharePoint specific approach

Assign different master pages to different device channels

Rules define what devices use which channels

Device Channel Panels can also target content to channels

Hybrid here can also make sense Device channels can be used to remove unnecessary items from the page payload

Our Adaptive Approach

Built using the Twitter Boostrap CSS framework

twittergithubcombootstrap

Provides a responsive design framework for supporting PC Mac tablet and mobile

We enhanced to provide better touch navigation support

Can be leveraged in the master page page layouts and display templates

Incorporated into the SharePoint 2013 Design Master

HTML based master page that can be edited with any tool

SharePoint converts to a master page when uploaded or saved

Additional Open Source Tools and Resources

HTML CSS JavaScript jQuery

httpwwww3schoolscom

httpgetbootstrapcom

httphandlebarsjscom

httpknockoutjscom

httpsangularjsorg

httpmomentjscom

Content Search Web Part

Web part is configured to return search results

Executed as client-side code in the browser

Pair of display templates map the data returned to HTML

Control template for the overall structure

Item template for each item returned

HTML Designer Manager files are compiled to JavaScript

REST Search and Handlebars

Search is accessible through REST calls

httpsiteurl_apisearchquery

Returns results as a JSON array

Handlebars is a templating engine to format that

Conceptually similar to display templates with control and item sections

jQuery glues this all together

Steps to Experiment

F12 to get into Developer Toolbar

Set a breakpoint where the REST URL is determined

Copy the value

Paste into the REST Search test window

Experiment with the query

Adjust the Handlebars template appropriately

Search Setup

Content Sources to define and schedule the crawls

Crawl logs to review success

Search Schema to define the managed properties

Reusable Content

Snippets of HTML that can be reused throughout the site

JavaScript can be intelligent and use the URL to determine its behaviour

Makes it easy for content authors to drop pre-configured dynamic content onto pages

Topic Pages

Shows all items that match a topic

Could be hundreds of virtual pages

Only one template page

Easily customizable and SEO friendly (each topic appears to be its own page)

Content by search web part open search against a query or result source

May be able to surface the topic pages themselves as site search results

Public Health Ontario

httpwwwpublichealthontariocaenBrowseByTopicPagesTopicaspxk=Influenza20InformationByTopic22Influenza22

Ontario Association of Childrens Aid Societies

Application Lifecycle Management

Purpose

How do we build a solid SharePoint development environment for the enterprise

How do a number of developers work together on a SharePoint project

How does code and content move through a dev test and production lifecycle

What is Agile and Continuous Integration and why is it important

Visual Studio and Team Foundation Server

Visual Studio 2010 is the development platform for coding on SharePoint 2010

Team Foundation Server integrates with Visual Studio to provide a repository for code test and other project artifacts

It facilitates teamwork by providing a common place for developers to work together

Provisioning SharePoint Farms

Provisioning SharePoint Farms

Every developer needs their own complete SharePoint farm

Teams need a dev integration farm to bring their work together on

A full architecture needs QA and production farms as well

Envision IT Virtualization Architecture

Developer VM Template

SharePoint Server 2010 Enterprise

SP1 and August CU

Visual Studio 2010 Premium SP1

Office 2010 Professional Plus SP1

SharePoint Designer 2010 SP1

Fiddler

SQL Server 2008 R2 SP1

Creating a new Developer VM

Open System Centre Virtual Machine Manager

Create Virtual Machine

Choose the Developer VM template

Set the virtual machine name and options

Create and start the VM

Creating a new Developer VM - Step 2

Developer RDPs to their new VM Complete the SQL Server installation

Create the default instance Set the service account(s) Set the authentication mode and server administrators

Update the AutoSPInstallerInputxml file Set the machine name for the default sites and database server Set the service account passwords

Run the AutoSPInstallerLaunch batch file Do a Health check review

Creating a new Developer VM - Step 3

Start Visual Studio

Connect to the Team Foundation Server

Setup your workspaces

Use a standard naming convention across your team

CDevelopmentTFSCollection

Other Environments

Dev Integration QA and Production can all be built using AutoSPInstall

Donrsquot need or want the Visual Studio or Office tools on these servers

We have a base template we use for dev integration servers

QA should match the Prod architecture as closely as possible

High availability with load balancing clustered SQL app servers DMZ hardening Internet publishing

Agile Development

Agile with Team Foundation Server

Creating Your TFS Project

Open Visual Studio

Make sure you are connected to the right Team Project Collection

In Team Explorer right-click the top collection and create a new Team Project

Use the Scrum 10 template

Go into the Areas and Iterations Delete the extraneous releases and sprints

Create a product backlog iteration

Start adding your stories and tasks

Continuous Integration

Continuous Integration

Automated Testing

SharePoint Site Elements

Site structure Site columns content types subsites lists libraries

Branding elements Master pages layouts CSS XSLT supporting images

Custom web parts Page and site content Web part instances Search Workflows Business Connectivity Services Managed Metadata

SharePoint Site Elements ndash Part 2

Access Excel Word Visio

PerformancePoint

Document conversions

Timer jobs

Secure Store Service

User profiles

Site Structure

bull Site columns

bull Define the fields that are used by content types

bull Content types

bull Defines collections of site columns for different types of content

bull Subsites

bull The hierarchy of sites that make up the site collection

bull Lists and Libraries

bull The lists and libraries for each subsite

Site Structure ndash Part 2

Site columns and content types can be programmatically or manually created If they are going to be used in multiple site collections they should be

programmatically created

If a single site collection they can be created manually in a master site collection

GUIDs cannot be manually set and code may need them to be consistent

You can create them manually in SharePoint save the site as a template and import them into Visual Studio to create a proper WSP package

Site Structure ndash Part 3

Site structure can also be done either programmatically or manually

Many sites are complex and it is error prone to create manually

We use our own SiteModelBuilder tool to create the site structure

Site Structure ndash Part 4

For all site structure elements changes can also be manual or programmatic It is useful to be able to delete the whole site collection and recreate it

programmatically As soon as content starts being authored in SharePoint it becomes difficult

or impossible to do that

After content authoring has started Site column and content type changes need to be programmed explicitly

(you canrsquot just drop the content type and recreate it) Site structure changes are usually done manually at this point Changes need to be backed up and restored

Change Management

Page and Site Content

Page and site content is entered directly into SharePoint by the content authors Web pages images PDFs list content etc This should be done in the master site separate from where dev integration is

happening Care needs to be taken with this site once authors start working Make sure it is part of your production backup plan

Periodically back it up and restore it to the dev integration and developer VMs

Alternatively script the export and import Ultimately it will be backed up and restored to the QA and production

farms

Change Management

Change Management

Change Management

Change Management

Web part instances

Web parts ultimately get placed on pages

The configuration of the web parts can often get quite complex

You may want to disable editing of web parts for general content authors

They end up in a grey zone between code and content

Web part instances ndash Part 2

We created our own internal tool to export and import web parts

Each web partrsquos configuration can be exported into a webpartfile

We scripted the extraction from the dev integration

webpart files are treated like code and checked into TFS for version control

Script then applies the new webpart files to the target environment

Workflows

Workflows can be built using SharePoint Designer Visual Studio or third-party tools (Nintex or K2 primarily)

Visual Studio workflow projects are automatically packaged as WSP solution files Simply deploy the WSP file to the other environments

SharePoint Designer workflows need to be deployed using SharePoint Designer This means you need SPD access to production which is not always possible

You can load the SPD workflow into Visual Studio to package it but you lose the ability to edit it in SPD

If you use third-party tools yoursquoll need to define the process for that as well

Business Connectivity Services

BCS can be built using either SharePoint Designer or Visual Studio Visual Studio BCS projects are automatically packaged as WSP

solution files Simply deploy the WSP file to the other environments You can also export the BDC metadata model in the BDC service

application

SharePoint Designer doesnrsquot create a WSP and it doesnrsquot make a complete BDC metadata model You need to export and import using SharePoint Designer

In both cases you still need to deal with connection and configuration information

Future Directions

Visual Studio Lab Management

Integrates the management of HyperV environments in with Visual Studio and Team Foundation Server

Can automate the provisioning of lab environments for automated testing

Test failures can snapshot entire environments to make reproduction of errors much easier

Summary

Yoursquore going to have lots of SharePoint environments ndash figure out how to build them quickly and repeatable

Code and content often move in opposite directions through dev QA and Prod PowerShell script and automate to keep this simple

Agile is a great way to run projects

Continuous integration with automated testing is key to its success

There are lots of parts of SharePoint that you donrsquot code through Visual Studio Figure out how you move those through your environment

Other Topics

Site Design

Information architecture

Wireframes

Creative designs ndash Mobile first

Catalogs deep dive

Site build PowerShell scripts

Team Foundation Server and Application Lifecycle Management

Starting a new project

Managing content authoring

Site Improve tool

SEO Optimizations

Analytics options

Retaining Page Ranks with permanent redirects (301)

Azure SharePoint Hosting

Q amp A

Session Evaluations

Go to Evaluations on the home page of wwwcollabconorg

It is important to get your feedback

Please fill out evaluations for all the sessions you attend

Following the conference a random drawing from all completed evaluations will be selected

The winner will receive a $250 Future Shop gift card valid online or in store

Page 33: Web Content Management - CollabCon 2015 - Web... · Performances Complete Works ... Friendly URL An SEO friendly URL defined in the term store for a page, rather than ... What’s

SharePoint WCM Glossary

SharePoint Glossary

Term Definition

SharePoint Farm A set of SharePoint servers that share a single configuration database

Web Application A top level container and entry-point URLs for site collections

Site Collection A set of Web sites that are in the same content database have the same owner and share administration settings A site collection can be identified by a GUID or the URL of the top-level site for the site collection Each site collection contains a top-level site can contain one or more subsites and can have a shared navigation structure

Path Based Site Collection A site collection under a managed pathhttpwebappsitessitecollection

Host Named Site Collection A site collection with its own unique URL Must be created through PowerShell

Site Subsite under a site collection

Site Template A template for a single site that has been saved from another site Site templates may or may not contain content Templates cannot be created from publishing sites

SharePoint Glossary

Term Definition

Site Column A single field that can store information of a particular typebull Textbull Choicebull Numberbull hellipDefined at the site collection level

Content Type A content type is a reusable collection of Site Columns that can be applied to a certain category of content Content types enable the management of metadata and behaviors of a document or item type in a centralized reusable way Basically content types include the columns (or fields) that are applied to a certain type of content plus other optional settings such as a document template

Document Set New content type in SharePoint 2010 A document set is a container for multiple documents to which you can assign certain metadata and treat as a single entity in many ways In addition a document set can contain one or more different content types

SharePoint Glossary

Term Definition

List A container for list content types or custom list items Columns can be defined via content types or directly in the list

Document Library A SharePoint list that contains documents where you can create collect update and share files with others Like lists columns can be defined via content types or directly in the list

Form Library A special type of library to facilitate the interaction with InfoPath forms

Asset Library A library typically used to store image audio and video files

List Template A template used to define the configuration of a list or library Templates can be saved with or without content

SharePoint Glossary

Term Definition

Term Store An instance of the Managed Metadata Service This can be shared between sites site collections web applications or farms

Group A collection of term sets

Term Set A collection of related terms

Term A word or a phrase that can be associated with a SharePoint item

Friendly URL An SEO friendly URL defined in the term store for a page rather than the physical URL of where the page is stored (Pages)

SharePoint Glossary

Term Definition

Design Manager 2013 feature used to manipulate WCM artifacts

Master Page Defines elements that are common to all pages such as the header navigation and footer

Page Layout Defines the layout of a particular style of page such as news or events Each page content type can have one or more layouts associated with them

Web Parts Functional elements that can be added to pages typically for dynamic content

Apps Similar to web parts but run outside of SharePoint while beinghosted in the SharePoint page

Publishing Site Page Rendering

FileName

Welcomeaspx

PageLayout

PageLayoutaspx

Title

Welcome To News

Body

Lorem ipsum dolor sit

Image

ImagesChairjpg

1 Welcomeaspx page is

requested

2 Page layout associated with

page is retrieved

3 Master page associated with site

is retrieved

4 Controls in page layout render

content from pagersquos fields into the page

MasterPagemaster

PageLayoutaspxTitle

BodyImage

Date

ByLine

Field Control

FieldControl

Field ControlField ControlField Control

Field Control

httpfoocombarpageswelcomeaspx

SharePoint Glossary

Term Definition

Cross-Site Publishing Publishing from an authoring site collection to one or more publishing site collections

Catalog A list that has been published as a catalog

Category Page A page that displays a rollup of catalog items

Catalog Item Page A page that displays a single item from a catalog

Display Template Used to format the results on search pages in content search web parts and on category pages

Whatrsquos New in Web Content

Management

Easier Page Authoring With Cut and Paste

Drag and Drop Files

Drag and drop files from Windows Explorer into the browser or the other way

Doesnrsquot support folders or document sets

Open in Windows Explorer still works best for this

Requires IE10 or current versions of Chrome Safari or Firefox

IE8 and 9 supported with Office 2013 installed

Image Renditions

Display uploaded images in predefined sizes widths and crops

Multiple renditions stored in document sets

Content author can create renditions (including crops) in the browser

Design Manager

New way to build master

pages and layouts

SharePoint Designer no

longer required

Edit and preview in any HTML

editor

Automatically creates the associated

master page and aspx

layouts

Package into a Design

Package WSP for

deployment

Snippet Gallery

Select components

such as search box or

navigation control

Configure its properties

Paste the snippet into your HTML

master page or layout

Changes synched to

actual master pages and layouts to convert to SharePoint

components

Can be used by any web design

tool

Device Channels

Map channels to mobile devices or browsers

Alternate master pages

can be assigned

Page layouts can include or

exclude content based

on channel

Display Templates

Used to customize the

presentation of search results

No more XSLT

Three templates

bull Control ndash Overall structure of search results

bull Group ndash Show groups of results

bull Item ndash How each result is presented

Navigation and Friendly URLs

Site navigation driven by managed metadata

Term store used for navigation and SEO-friendly URLs

Connect site navigation to business concepts rather than site structure

Server side control outputs HTML for top nav left nav and breadcrumb

Plan is to convert to client-side to support Office 365

Term Store Setup

Two groups used to separate metadata from navigation

Metadata group setup globally

Static GUIDs consistent through all environments

Navigation group setup at the site collection level

Allows multiple copies for multiple sites on the farm

Search

Search is new and different from all previous versions of SharePoint

The platform has been consolidated Built on a combination of FAST Search and SharePoint Search components as well as new development work ndash it is the

same from Foundation to Server

Foundation Search is intended to replace WSS Search Microsoft Search Server and Search Server Express from previous versions of SharePoint

Itrsquos used pervasively throughout the product now in many different ways in different features eDiscovery navigation topic pages Internet facing business sites etc

Search in SharePoint 2013

Single Extensible Platform

FAST Engine

SharePoint Crawler

Best of both

Same Search Platform in both SharePoint and Exchange

Enterprise Search

Search Page Web parts added to a publishing page

Catalogs Cross-site publishing

Library search Executes in place on the library

Site Search _layouts15osssearchresultsaspx Specifies the site and search parameters

Search Centre Basic Search Center - SharePoint Foundation 2013 Enterprise Search Center - SharePoint Server 2013

Content Search Web Part

Similar in concept to the Content Query Web Part

Many advantages

Can go across sites site collections web apps even farms

Leverages the search index -gt very scalable

Query Builder makes it easy to define your results

Use Display Templates to customize the look and feel No more XSLT

Part of the Enterprise CAL

Pre-Configured CSWPs

Popular Items Shows items that have been recently viewed by many users

Recently Changed Items Shows items that have been modified recently This can help site users

track the latest activity on a site or a library

Recommended Items Show content recommendations based on usage patterns for the current

page

All of these can be further configured by editing their properties and changing the search criteria

Search Results Web Part

Similar functionality to the Content Search Web Part

Doesnrsquot allow property mapping in the web part configuration

Mapping is controlled in the Display Template

Part of the Standard CAL

Category Page Item Page

Catalogs

wwwcontosocomproductsAudio-Liware2g

Catalogs

Results

Consistent Displays

Manage content in one place

No need to create

pages

No need to format

Metadata Navigation

Cross-Site Publishing

Reuse content between different sites including site collections and farms

Catalogs can surface lists into publishing sites onto a category page and item pages

Can be surfaced through the Content Search Web Part

No need to create and publish web pages

Create custom friendly URLs

Metadata based navigation base

Cross Site Publishing

Job Posting

Job Posting

Job Posting

Job Posting

Simcoe County District School Board

50000 students

Over 6000 employees

Board office in Barrie

Bordered by the Holland Marsh in the south the Trent-Severn Waterway in the east Grey County in the west and Muskoka in the north

Simcoe County District School Board

119 schools and centres 87 elementary 16 secondary 6 learning centres 10 alternative

Each needs their own web site Being built on SharePoint 2013 Elementary panel first Each has their own unique URL Content authored both at the school and centrally from the board

wwwscdsbonca Pre-existing SharePoint 2010 site Future goal is to rebuild in SharePoint 2013

Business Challenge

100+ public web sites

No standardization on style technology or content

No ability for the board to push content to the school sites

Outdated sites

Not mobile or AODA compliant

Site Features

Fully Adaptivemobile design Robust Search functionality Template makes it fast and efficient to add new school sites News and events can be targeted by the Board to any number of

school sites Target by panel weather zone trustee language Presented in a blended view with the school news and events

Home page rotator links hours content pages all managed by the school staff

SEO-friendly URLs

News

School news entered by school staff

Board news entered in the board site

Rendered using cross-site publishing

High-priority alerts can be flagged to highlight on the site

Bus or school cancellations

Events

Single and multi-day events

School and board managed like news

Adaptive calendar

School Picker

Used to pick which schools to target news and events to

Schools are tagged through the term store

Target by panel weather zone trustee language

Can override and add or remove individual schools

Search

Catalogs

Three main steps

Enabling lists or libraries as catalogs

Creating the catalog connection

Building the page layouts to display the category rollups or item detail pages

Enabling Catalogs

Doesnrsquot have to be a list can be a document Images or Pages library

Experimenting using a Pages library

This gives us draft and published states that lists donrsquot support

Preview and editing is easier

Fairly simple script to do this

Catalog connections are more complex

Create the connection

Fix up the Term Store

Create the Category and Item page layouts and pages

SEO Enhancements

Friendly URLs

Home page redirects

XML sitemaps automatically generated and updated

Custom SEO properties

Usage Analytics

Built for scale from the ground up Detail data rolled up every 15 days amp anonymized Daily events purged every 15 days monthly events after 3 years Lifetime counts always retained

Counts views amp unique itemsday Shows recent (2-weeks) and lifetime count Trims least visited content Pushes aggregate data to reporting database

Drives recommendations capabilities on content Calculations injected into search index as sortable managed properties Deep integration with search engine Can influence search relevance based on content usage

Variations and Multi-Lingual

Export and import content for translation in XLIFF format

Pages

Labels

List items

Navigation

Bing translation service comes with active SharePoint 2013 license

Adaptive Web Design

Adaptive vs Responsive

Adaptive

Fixed breakpoints‒ Desktop gt 980 px

‒ Table portrait gt 768 px

‒ Phone to tablet gt 480 px lt 768 px

‒ Smartphone lt 480 px

Responsive

No fixed breakpoints

Design fluidly adapts to whatever width the browser is

We generally do a hybrid approach with responsive design in the under 768 pixel situation

Design Approaches in SharePoint

Adaptive Design through CSS media queries

Broader standards approach used outside of SharePoint

Keeps a single master page and CSS

Some unnecessary components may still be loaded

Device Channels SharePoint specific approach

Assign different master pages to different device channels

Rules define what devices use which channels

Device Channel Panels can also target content to channels

Hybrid here can also make sense Device channels can be used to remove unnecessary items from the page payload

Our Adaptive Approach

Built using the Twitter Boostrap CSS framework

twittergithubcombootstrap

Provides a responsive design framework for supporting PC Mac tablet and mobile

We enhanced to provide better touch navigation support

Can be leveraged in the master page page layouts and display templates

Incorporated into the SharePoint 2013 Design Master

HTML based master page that can be edited with any tool

SharePoint converts to a master page when uploaded or saved

Additional Open Source Tools and Resources

HTML CSS JavaScript jQuery

httpwwww3schoolscom

httpgetbootstrapcom

httphandlebarsjscom

httpknockoutjscom

httpsangularjsorg

httpmomentjscom

Content Search Web Part

Web part is configured to return search results

Executed as client-side code in the browser

Pair of display templates map the data returned to HTML

Control template for the overall structure

Item template for each item returned

HTML Designer Manager files are compiled to JavaScript

REST Search and Handlebars

Search is accessible through REST calls

httpsiteurl_apisearchquery

Returns results as a JSON array

Handlebars is a templating engine to format that

Conceptually similar to display templates with control and item sections

jQuery glues this all together

Steps to Experiment

F12 to get into Developer Toolbar

Set a breakpoint where the REST URL is determined

Copy the value

Paste into the REST Search test window

Experiment with the query

Adjust the Handlebars template appropriately

Search Setup

Content Sources to define and schedule the crawls

Crawl logs to review success

Search Schema to define the managed properties

Reusable Content

Snippets of HTML that can be reused throughout the site

JavaScript can be intelligent and use the URL to determine its behaviour

Makes it easy for content authors to drop pre-configured dynamic content onto pages

Topic Pages

Shows all items that match a topic

Could be hundreds of virtual pages

Only one template page

Easily customizable and SEO friendly (each topic appears to be its own page)

Content by search web part open search against a query or result source

May be able to surface the topic pages themselves as site search results

Public Health Ontario

httpwwwpublichealthontariocaenBrowseByTopicPagesTopicaspxk=Influenza20InformationByTopic22Influenza22

Ontario Association of Childrens Aid Societies

Application Lifecycle Management

Purpose

How do we build a solid SharePoint development environment for the enterprise

How do a number of developers work together on a SharePoint project

How does code and content move through a dev test and production lifecycle

What is Agile and Continuous Integration and why is it important

Visual Studio and Team Foundation Server

Visual Studio 2010 is the development platform for coding on SharePoint 2010

Team Foundation Server integrates with Visual Studio to provide a repository for code test and other project artifacts

It facilitates teamwork by providing a common place for developers to work together

Provisioning SharePoint Farms

Provisioning SharePoint Farms

Every developer needs their own complete SharePoint farm

Teams need a dev integration farm to bring their work together on

A full architecture needs QA and production farms as well

Envision IT Virtualization Architecture

Developer VM Template

SharePoint Server 2010 Enterprise

SP1 and August CU

Visual Studio 2010 Premium SP1

Office 2010 Professional Plus SP1

SharePoint Designer 2010 SP1

Fiddler

SQL Server 2008 R2 SP1

Creating a new Developer VM

Open System Centre Virtual Machine Manager

Create Virtual Machine

Choose the Developer VM template

Set the virtual machine name and options

Create and start the VM

Creating a new Developer VM - Step 2

Developer RDPs to their new VM Complete the SQL Server installation

Create the default instance Set the service account(s) Set the authentication mode and server administrators

Update the AutoSPInstallerInputxml file Set the machine name for the default sites and database server Set the service account passwords

Run the AutoSPInstallerLaunch batch file Do a Health check review

Creating a new Developer VM - Step 3

Start Visual Studio

Connect to the Team Foundation Server

Setup your workspaces

Use a standard naming convention across your team

CDevelopmentTFSCollection

Other Environments

Dev Integration QA and Production can all be built using AutoSPInstall

Donrsquot need or want the Visual Studio or Office tools on these servers

We have a base template we use for dev integration servers

QA should match the Prod architecture as closely as possible

High availability with load balancing clustered SQL app servers DMZ hardening Internet publishing

Agile Development

Agile with Team Foundation Server

Creating Your TFS Project

Open Visual Studio

Make sure you are connected to the right Team Project Collection

In Team Explorer right-click the top collection and create a new Team Project

Use the Scrum 10 template

Go into the Areas and Iterations Delete the extraneous releases and sprints

Create a product backlog iteration

Start adding your stories and tasks

Continuous Integration

Continuous Integration

Automated Testing

SharePoint Site Elements

Site structure Site columns content types subsites lists libraries

Branding elements Master pages layouts CSS XSLT supporting images

Custom web parts Page and site content Web part instances Search Workflows Business Connectivity Services Managed Metadata

SharePoint Site Elements ndash Part 2

Access Excel Word Visio

PerformancePoint

Document conversions

Timer jobs

Secure Store Service

User profiles

Site Structure

bull Site columns

bull Define the fields that are used by content types

bull Content types

bull Defines collections of site columns for different types of content

bull Subsites

bull The hierarchy of sites that make up the site collection

bull Lists and Libraries

bull The lists and libraries for each subsite

Site Structure ndash Part 2

Site columns and content types can be programmatically or manually created If they are going to be used in multiple site collections they should be

programmatically created

If a single site collection they can be created manually in a master site collection

GUIDs cannot be manually set and code may need them to be consistent

You can create them manually in SharePoint save the site as a template and import them into Visual Studio to create a proper WSP package

Site Structure ndash Part 3

Site structure can also be done either programmatically or manually

Many sites are complex and it is error prone to create manually

We use our own SiteModelBuilder tool to create the site structure

Site Structure ndash Part 4

For all site structure elements changes can also be manual or programmatic It is useful to be able to delete the whole site collection and recreate it

programmatically As soon as content starts being authored in SharePoint it becomes difficult

or impossible to do that

After content authoring has started Site column and content type changes need to be programmed explicitly

(you canrsquot just drop the content type and recreate it) Site structure changes are usually done manually at this point Changes need to be backed up and restored

Change Management

Page and Site Content

Page and site content is entered directly into SharePoint by the content authors Web pages images PDFs list content etc This should be done in the master site separate from where dev integration is

happening Care needs to be taken with this site once authors start working Make sure it is part of your production backup plan

Periodically back it up and restore it to the dev integration and developer VMs

Alternatively script the export and import Ultimately it will be backed up and restored to the QA and production

farms

Change Management

Change Management

Change Management

Change Management

Web part instances

Web parts ultimately get placed on pages

The configuration of the web parts can often get quite complex

You may want to disable editing of web parts for general content authors

They end up in a grey zone between code and content

Web part instances ndash Part 2

We created our own internal tool to export and import web parts

Each web partrsquos configuration can be exported into a webpartfile

We scripted the extraction from the dev integration

webpart files are treated like code and checked into TFS for version control

Script then applies the new webpart files to the target environment

Workflows

Workflows can be built using SharePoint Designer Visual Studio or third-party tools (Nintex or K2 primarily)

Visual Studio workflow projects are automatically packaged as WSP solution files Simply deploy the WSP file to the other environments

SharePoint Designer workflows need to be deployed using SharePoint Designer This means you need SPD access to production which is not always possible

You can load the SPD workflow into Visual Studio to package it but you lose the ability to edit it in SPD

If you use third-party tools yoursquoll need to define the process for that as well

Business Connectivity Services

BCS can be built using either SharePoint Designer or Visual Studio Visual Studio BCS projects are automatically packaged as WSP

solution files Simply deploy the WSP file to the other environments You can also export the BDC metadata model in the BDC service

application

SharePoint Designer doesnrsquot create a WSP and it doesnrsquot make a complete BDC metadata model You need to export and import using SharePoint Designer

In both cases you still need to deal with connection and configuration information

Future Directions

Visual Studio Lab Management

Integrates the management of HyperV environments in with Visual Studio and Team Foundation Server

Can automate the provisioning of lab environments for automated testing

Test failures can snapshot entire environments to make reproduction of errors much easier

Summary

Yoursquore going to have lots of SharePoint environments ndash figure out how to build them quickly and repeatable

Code and content often move in opposite directions through dev QA and Prod PowerShell script and automate to keep this simple

Agile is a great way to run projects

Continuous integration with automated testing is key to its success

There are lots of parts of SharePoint that you donrsquot code through Visual Studio Figure out how you move those through your environment

Other Topics

Site Design

Information architecture

Wireframes

Creative designs ndash Mobile first

Catalogs deep dive

Site build PowerShell scripts

Team Foundation Server and Application Lifecycle Management

Starting a new project

Managing content authoring

Site Improve tool

SEO Optimizations

Analytics options

Retaining Page Ranks with permanent redirects (301)

Azure SharePoint Hosting

Q amp A

Session Evaluations

Go to Evaluations on the home page of wwwcollabconorg

It is important to get your feedback

Please fill out evaluations for all the sessions you attend

Following the conference a random drawing from all completed evaluations will be selected

The winner will receive a $250 Future Shop gift card valid online or in store

Page 34: Web Content Management - CollabCon 2015 - Web... · Performances Complete Works ... Friendly URL An SEO friendly URL defined in the term store for a page, rather than ... What’s

SharePoint Glossary

Term Definition

SharePoint Farm A set of SharePoint servers that share a single configuration database

Web Application A top level container and entry-point URLs for site collections

Site Collection A set of Web sites that are in the same content database have the same owner and share administration settings A site collection can be identified by a GUID or the URL of the top-level site for the site collection Each site collection contains a top-level site can contain one or more subsites and can have a shared navigation structure

Path Based Site Collection A site collection under a managed pathhttpwebappsitessitecollection

Host Named Site Collection A site collection with its own unique URL Must be created through PowerShell

Site Subsite under a site collection

Site Template A template for a single site that has been saved from another site Site templates may or may not contain content Templates cannot be created from publishing sites

SharePoint Glossary

Term Definition

Site Column A single field that can store information of a particular typebull Textbull Choicebull Numberbull hellipDefined at the site collection level

Content Type A content type is a reusable collection of Site Columns that can be applied to a certain category of content Content types enable the management of metadata and behaviors of a document or item type in a centralized reusable way Basically content types include the columns (or fields) that are applied to a certain type of content plus other optional settings such as a document template

Document Set New content type in SharePoint 2010 A document set is a container for multiple documents to which you can assign certain metadata and treat as a single entity in many ways In addition a document set can contain one or more different content types

SharePoint Glossary

Term Definition

List A container for list content types or custom list items Columns can be defined via content types or directly in the list

Document Library A SharePoint list that contains documents where you can create collect update and share files with others Like lists columns can be defined via content types or directly in the list

Form Library A special type of library to facilitate the interaction with InfoPath forms

Asset Library A library typically used to store image audio and video files

List Template A template used to define the configuration of a list or library Templates can be saved with or without content

SharePoint Glossary

Term Definition

Term Store An instance of the Managed Metadata Service This can be shared between sites site collections web applications or farms

Group A collection of term sets

Term Set A collection of related terms

Term A word or a phrase that can be associated with a SharePoint item

Friendly URL An SEO friendly URL defined in the term store for a page rather than the physical URL of where the page is stored (Pages)

SharePoint Glossary

Term Definition

Design Manager 2013 feature used to manipulate WCM artifacts

Master Page Defines elements that are common to all pages such as the header navigation and footer

Page Layout Defines the layout of a particular style of page such as news or events Each page content type can have one or more layouts associated with them

Web Parts Functional elements that can be added to pages typically for dynamic content

Apps Similar to web parts but run outside of SharePoint while beinghosted in the SharePoint page

Publishing Site Page Rendering

FileName

Welcomeaspx

PageLayout

PageLayoutaspx

Title

Welcome To News

Body

Lorem ipsum dolor sit

Image

ImagesChairjpg

1 Welcomeaspx page is

requested

2 Page layout associated with

page is retrieved

3 Master page associated with site

is retrieved

4 Controls in page layout render

content from pagersquos fields into the page

MasterPagemaster

PageLayoutaspxTitle

BodyImage

Date

ByLine

Field Control

FieldControl

Field ControlField ControlField Control

Field Control

httpfoocombarpageswelcomeaspx

SharePoint Glossary

Term Definition

Cross-Site Publishing Publishing from an authoring site collection to one or more publishing site collections

Catalog A list that has been published as a catalog

Category Page A page that displays a rollup of catalog items

Catalog Item Page A page that displays a single item from a catalog

Display Template Used to format the results on search pages in content search web parts and on category pages

Whatrsquos New in Web Content

Management

Easier Page Authoring With Cut and Paste

Drag and Drop Files

Drag and drop files from Windows Explorer into the browser or the other way

Doesnrsquot support folders or document sets

Open in Windows Explorer still works best for this

Requires IE10 or current versions of Chrome Safari or Firefox

IE8 and 9 supported with Office 2013 installed

Image Renditions

Display uploaded images in predefined sizes widths and crops

Multiple renditions stored in document sets

Content author can create renditions (including crops) in the browser

Design Manager

New way to build master

pages and layouts

SharePoint Designer no

longer required

Edit and preview in any HTML

editor

Automatically creates the associated

master page and aspx

layouts

Package into a Design

Package WSP for

deployment

Snippet Gallery

Select components

such as search box or

navigation control

Configure its properties

Paste the snippet into your HTML

master page or layout

Changes synched to

actual master pages and layouts to convert to SharePoint

components

Can be used by any web design

tool

Device Channels

Map channels to mobile devices or browsers

Alternate master pages

can be assigned

Page layouts can include or

exclude content based

on channel

Display Templates

Used to customize the

presentation of search results

No more XSLT

Three templates

bull Control ndash Overall structure of search results

bull Group ndash Show groups of results

bull Item ndash How each result is presented

Navigation and Friendly URLs

Site navigation driven by managed metadata

Term store used for navigation and SEO-friendly URLs

Connect site navigation to business concepts rather than site structure

Server side control outputs HTML for top nav left nav and breadcrumb

Plan is to convert to client-side to support Office 365

Term Store Setup

Two groups used to separate metadata from navigation

Metadata group setup globally

Static GUIDs consistent through all environments

Navigation group setup at the site collection level

Allows multiple copies for multiple sites on the farm

Search

Search is new and different from all previous versions of SharePoint

The platform has been consolidated Built on a combination of FAST Search and SharePoint Search components as well as new development work ndash it is the

same from Foundation to Server

Foundation Search is intended to replace WSS Search Microsoft Search Server and Search Server Express from previous versions of SharePoint

Itrsquos used pervasively throughout the product now in many different ways in different features eDiscovery navigation topic pages Internet facing business sites etc

Search in SharePoint 2013

Single Extensible Platform

FAST Engine

SharePoint Crawler

Best of both

Same Search Platform in both SharePoint and Exchange

Enterprise Search

Search Page Web parts added to a publishing page

Catalogs Cross-site publishing

Library search Executes in place on the library

Site Search _layouts15osssearchresultsaspx Specifies the site and search parameters

Search Centre Basic Search Center - SharePoint Foundation 2013 Enterprise Search Center - SharePoint Server 2013

Content Search Web Part

Similar in concept to the Content Query Web Part

Many advantages

Can go across sites site collections web apps even farms

Leverages the search index -gt very scalable

Query Builder makes it easy to define your results

Use Display Templates to customize the look and feel No more XSLT

Part of the Enterprise CAL

Pre-Configured CSWPs

Popular Items Shows items that have been recently viewed by many users

Recently Changed Items Shows items that have been modified recently This can help site users

track the latest activity on a site or a library

Recommended Items Show content recommendations based on usage patterns for the current

page

All of these can be further configured by editing their properties and changing the search criteria

Search Results Web Part

Similar functionality to the Content Search Web Part

Doesnrsquot allow property mapping in the web part configuration

Mapping is controlled in the Display Template

Part of the Standard CAL

Category Page Item Page

Catalogs

wwwcontosocomproductsAudio-Liware2g

Catalogs

Results

Consistent Displays

Manage content in one place

No need to create

pages

No need to format

Metadata Navigation

Cross-Site Publishing

Reuse content between different sites including site collections and farms

Catalogs can surface lists into publishing sites onto a category page and item pages

Can be surfaced through the Content Search Web Part

No need to create and publish web pages

Create custom friendly URLs

Metadata based navigation base

Cross Site Publishing

Job Posting

Job Posting

Job Posting

Job Posting

Simcoe County District School Board

50000 students

Over 6000 employees

Board office in Barrie

Bordered by the Holland Marsh in the south the Trent-Severn Waterway in the east Grey County in the west and Muskoka in the north

Simcoe County District School Board

119 schools and centres 87 elementary 16 secondary 6 learning centres 10 alternative

Each needs their own web site Being built on SharePoint 2013 Elementary panel first Each has their own unique URL Content authored both at the school and centrally from the board

wwwscdsbonca Pre-existing SharePoint 2010 site Future goal is to rebuild in SharePoint 2013

Business Challenge

100+ public web sites

No standardization on style technology or content

No ability for the board to push content to the school sites

Outdated sites

Not mobile or AODA compliant

Site Features

Fully Adaptivemobile design Robust Search functionality Template makes it fast and efficient to add new school sites News and events can be targeted by the Board to any number of

school sites Target by panel weather zone trustee language Presented in a blended view with the school news and events

Home page rotator links hours content pages all managed by the school staff

SEO-friendly URLs

News

School news entered by school staff

Board news entered in the board site

Rendered using cross-site publishing

High-priority alerts can be flagged to highlight on the site

Bus or school cancellations

Events

Single and multi-day events

School and board managed like news

Adaptive calendar

School Picker

Used to pick which schools to target news and events to

Schools are tagged through the term store

Target by panel weather zone trustee language

Can override and add or remove individual schools

Search

Catalogs

Three main steps

Enabling lists or libraries as catalogs

Creating the catalog connection

Building the page layouts to display the category rollups or item detail pages

Enabling Catalogs

Doesnrsquot have to be a list can be a document Images or Pages library

Experimenting using a Pages library

This gives us draft and published states that lists donrsquot support

Preview and editing is easier

Fairly simple script to do this

Catalog connections are more complex

Create the connection

Fix up the Term Store

Create the Category and Item page layouts and pages

SEO Enhancements

Friendly URLs

Home page redirects

XML sitemaps automatically generated and updated

Custom SEO properties

Usage Analytics

Built for scale from the ground up Detail data rolled up every 15 days amp anonymized Daily events purged every 15 days monthly events after 3 years Lifetime counts always retained

Counts views amp unique itemsday Shows recent (2-weeks) and lifetime count Trims least visited content Pushes aggregate data to reporting database

Drives recommendations capabilities on content Calculations injected into search index as sortable managed properties Deep integration with search engine Can influence search relevance based on content usage

Variations and Multi-Lingual

Export and import content for translation in XLIFF format

Pages

Labels

List items

Navigation

Bing translation service comes with active SharePoint 2013 license

Adaptive Web Design

Adaptive vs Responsive

Adaptive

Fixed breakpoints‒ Desktop gt 980 px

‒ Table portrait gt 768 px

‒ Phone to tablet gt 480 px lt 768 px

‒ Smartphone lt 480 px

Responsive

No fixed breakpoints

Design fluidly adapts to whatever width the browser is

We generally do a hybrid approach with responsive design in the under 768 pixel situation

Design Approaches in SharePoint

Adaptive Design through CSS media queries

Broader standards approach used outside of SharePoint

Keeps a single master page and CSS

Some unnecessary components may still be loaded

Device Channels SharePoint specific approach

Assign different master pages to different device channels

Rules define what devices use which channels

Device Channel Panels can also target content to channels

Hybrid here can also make sense Device channels can be used to remove unnecessary items from the page payload

Our Adaptive Approach

Built using the Twitter Boostrap CSS framework

twittergithubcombootstrap

Provides a responsive design framework for supporting PC Mac tablet and mobile

We enhanced to provide better touch navigation support

Can be leveraged in the master page page layouts and display templates

Incorporated into the SharePoint 2013 Design Master

HTML based master page that can be edited with any tool

SharePoint converts to a master page when uploaded or saved

Additional Open Source Tools and Resources

HTML CSS JavaScript jQuery

httpwwww3schoolscom

httpgetbootstrapcom

httphandlebarsjscom

httpknockoutjscom

httpsangularjsorg

httpmomentjscom

Content Search Web Part

Web part is configured to return search results

Executed as client-side code in the browser

Pair of display templates map the data returned to HTML

Control template for the overall structure

Item template for each item returned

HTML Designer Manager files are compiled to JavaScript

REST Search and Handlebars

Search is accessible through REST calls

httpsiteurl_apisearchquery

Returns results as a JSON array

Handlebars is a templating engine to format that

Conceptually similar to display templates with control and item sections

jQuery glues this all together

Steps to Experiment

F12 to get into Developer Toolbar

Set a breakpoint where the REST URL is determined

Copy the value

Paste into the REST Search test window

Experiment with the query

Adjust the Handlebars template appropriately

Search Setup

Content Sources to define and schedule the crawls

Crawl logs to review success

Search Schema to define the managed properties

Reusable Content

Snippets of HTML that can be reused throughout the site

JavaScript can be intelligent and use the URL to determine its behaviour

Makes it easy for content authors to drop pre-configured dynamic content onto pages

Topic Pages

Shows all items that match a topic

Could be hundreds of virtual pages

Only one template page

Easily customizable and SEO friendly (each topic appears to be its own page)

Content by search web part open search against a query or result source

May be able to surface the topic pages themselves as site search results

Public Health Ontario

httpwwwpublichealthontariocaenBrowseByTopicPagesTopicaspxk=Influenza20InformationByTopic22Influenza22

Ontario Association of Childrens Aid Societies

Application Lifecycle Management

Purpose

How do we build a solid SharePoint development environment for the enterprise

How do a number of developers work together on a SharePoint project

How does code and content move through a dev test and production lifecycle

What is Agile and Continuous Integration and why is it important

Visual Studio and Team Foundation Server

Visual Studio 2010 is the development platform for coding on SharePoint 2010

Team Foundation Server integrates with Visual Studio to provide a repository for code test and other project artifacts

It facilitates teamwork by providing a common place for developers to work together

Provisioning SharePoint Farms

Provisioning SharePoint Farms

Every developer needs their own complete SharePoint farm

Teams need a dev integration farm to bring their work together on

A full architecture needs QA and production farms as well

Envision IT Virtualization Architecture

Developer VM Template

SharePoint Server 2010 Enterprise

SP1 and August CU

Visual Studio 2010 Premium SP1

Office 2010 Professional Plus SP1

SharePoint Designer 2010 SP1

Fiddler

SQL Server 2008 R2 SP1

Creating a new Developer VM

Open System Centre Virtual Machine Manager

Create Virtual Machine

Choose the Developer VM template

Set the virtual machine name and options

Create and start the VM

Creating a new Developer VM - Step 2

Developer RDPs to their new VM Complete the SQL Server installation

Create the default instance Set the service account(s) Set the authentication mode and server administrators

Update the AutoSPInstallerInputxml file Set the machine name for the default sites and database server Set the service account passwords

Run the AutoSPInstallerLaunch batch file Do a Health check review

Creating a new Developer VM - Step 3

Start Visual Studio

Connect to the Team Foundation Server

Setup your workspaces

Use a standard naming convention across your team

CDevelopmentTFSCollection

Other Environments

Dev Integration QA and Production can all be built using AutoSPInstall

Donrsquot need or want the Visual Studio or Office tools on these servers

We have a base template we use for dev integration servers

QA should match the Prod architecture as closely as possible

High availability with load balancing clustered SQL app servers DMZ hardening Internet publishing

Agile Development

Agile with Team Foundation Server

Creating Your TFS Project

Open Visual Studio

Make sure you are connected to the right Team Project Collection

In Team Explorer right-click the top collection and create a new Team Project

Use the Scrum 10 template

Go into the Areas and Iterations Delete the extraneous releases and sprints

Create a product backlog iteration

Start adding your stories and tasks

Continuous Integration

Continuous Integration

Automated Testing

SharePoint Site Elements

Site structure Site columns content types subsites lists libraries

Branding elements Master pages layouts CSS XSLT supporting images

Custom web parts Page and site content Web part instances Search Workflows Business Connectivity Services Managed Metadata

SharePoint Site Elements ndash Part 2

Access Excel Word Visio

PerformancePoint

Document conversions

Timer jobs

Secure Store Service

User profiles

Site Structure

bull Site columns

bull Define the fields that are used by content types

bull Content types

bull Defines collections of site columns for different types of content

bull Subsites

bull The hierarchy of sites that make up the site collection

bull Lists and Libraries

bull The lists and libraries for each subsite

Site Structure ndash Part 2

Site columns and content types can be programmatically or manually created If they are going to be used in multiple site collections they should be

programmatically created

If a single site collection they can be created manually in a master site collection

GUIDs cannot be manually set and code may need them to be consistent

You can create them manually in SharePoint save the site as a template and import them into Visual Studio to create a proper WSP package

Site Structure ndash Part 3

Site structure can also be done either programmatically or manually

Many sites are complex and it is error prone to create manually

We use our own SiteModelBuilder tool to create the site structure

Site Structure ndash Part 4

For all site structure elements changes can also be manual or programmatic It is useful to be able to delete the whole site collection and recreate it

programmatically As soon as content starts being authored in SharePoint it becomes difficult

or impossible to do that

After content authoring has started Site column and content type changes need to be programmed explicitly

(you canrsquot just drop the content type and recreate it) Site structure changes are usually done manually at this point Changes need to be backed up and restored

Change Management

Page and Site Content

Page and site content is entered directly into SharePoint by the content authors Web pages images PDFs list content etc This should be done in the master site separate from where dev integration is

happening Care needs to be taken with this site once authors start working Make sure it is part of your production backup plan

Periodically back it up and restore it to the dev integration and developer VMs

Alternatively script the export and import Ultimately it will be backed up and restored to the QA and production

farms

Change Management

Change Management

Change Management

Change Management

Web part instances

Web parts ultimately get placed on pages

The configuration of the web parts can often get quite complex

You may want to disable editing of web parts for general content authors

They end up in a grey zone between code and content

Web part instances ndash Part 2

We created our own internal tool to export and import web parts

Each web partrsquos configuration can be exported into a webpartfile

We scripted the extraction from the dev integration

webpart files are treated like code and checked into TFS for version control

Script then applies the new webpart files to the target environment

Workflows

Workflows can be built using SharePoint Designer Visual Studio or third-party tools (Nintex or K2 primarily)

Visual Studio workflow projects are automatically packaged as WSP solution files Simply deploy the WSP file to the other environments

SharePoint Designer workflows need to be deployed using SharePoint Designer This means you need SPD access to production which is not always possible

You can load the SPD workflow into Visual Studio to package it but you lose the ability to edit it in SPD

If you use third-party tools yoursquoll need to define the process for that as well

Business Connectivity Services

BCS can be built using either SharePoint Designer or Visual Studio Visual Studio BCS projects are automatically packaged as WSP

solution files Simply deploy the WSP file to the other environments You can also export the BDC metadata model in the BDC service

application

SharePoint Designer doesnrsquot create a WSP and it doesnrsquot make a complete BDC metadata model You need to export and import using SharePoint Designer

In both cases you still need to deal with connection and configuration information

Future Directions

Visual Studio Lab Management

Integrates the management of HyperV environments in with Visual Studio and Team Foundation Server

Can automate the provisioning of lab environments for automated testing

Test failures can snapshot entire environments to make reproduction of errors much easier

Summary

Yoursquore going to have lots of SharePoint environments ndash figure out how to build them quickly and repeatable

Code and content often move in opposite directions through dev QA and Prod PowerShell script and automate to keep this simple

Agile is a great way to run projects

Continuous integration with automated testing is key to its success

There are lots of parts of SharePoint that you donrsquot code through Visual Studio Figure out how you move those through your environment

Other Topics

Site Design

Information architecture

Wireframes

Creative designs ndash Mobile first

Catalogs deep dive

Site build PowerShell scripts

Team Foundation Server and Application Lifecycle Management

Starting a new project

Managing content authoring

Site Improve tool

SEO Optimizations

Analytics options

Retaining Page Ranks with permanent redirects (301)

Azure SharePoint Hosting

Q amp A

Session Evaluations

Go to Evaluations on the home page of wwwcollabconorg

It is important to get your feedback

Please fill out evaluations for all the sessions you attend

Following the conference a random drawing from all completed evaluations will be selected

The winner will receive a $250 Future Shop gift card valid online or in store

Page 35: Web Content Management - CollabCon 2015 - Web... · Performances Complete Works ... Friendly URL An SEO friendly URL defined in the term store for a page, rather than ... What’s

SharePoint Glossary

Term Definition

Site Column A single field that can store information of a particular typebull Textbull Choicebull Numberbull hellipDefined at the site collection level

Content Type A content type is a reusable collection of Site Columns that can be applied to a certain category of content Content types enable the management of metadata and behaviors of a document or item type in a centralized reusable way Basically content types include the columns (or fields) that are applied to a certain type of content plus other optional settings such as a document template

Document Set New content type in SharePoint 2010 A document set is a container for multiple documents to which you can assign certain metadata and treat as a single entity in many ways In addition a document set can contain one or more different content types

SharePoint Glossary

Term Definition

List A container for list content types or custom list items Columns can be defined via content types or directly in the list

Document Library A SharePoint list that contains documents where you can create collect update and share files with others Like lists columns can be defined via content types or directly in the list

Form Library A special type of library to facilitate the interaction with InfoPath forms

Asset Library A library typically used to store image audio and video files

List Template A template used to define the configuration of a list or library Templates can be saved with or without content

SharePoint Glossary

Term Definition

Term Store An instance of the Managed Metadata Service This can be shared between sites site collections web applications or farms

Group A collection of term sets

Term Set A collection of related terms

Term A word or a phrase that can be associated with a SharePoint item

Friendly URL An SEO friendly URL defined in the term store for a page rather than the physical URL of where the page is stored (Pages)

SharePoint Glossary

Term Definition

Design Manager 2013 feature used to manipulate WCM artifacts

Master Page Defines elements that are common to all pages such as the header navigation and footer

Page Layout Defines the layout of a particular style of page such as news or events Each page content type can have one or more layouts associated with them

Web Parts Functional elements that can be added to pages typically for dynamic content

Apps Similar to web parts but run outside of SharePoint while beinghosted in the SharePoint page

Publishing Site Page Rendering

FileName

Welcomeaspx

PageLayout

PageLayoutaspx

Title

Welcome To News

Body

Lorem ipsum dolor sit

Image

ImagesChairjpg

1 Welcomeaspx page is

requested

2 Page layout associated with

page is retrieved

3 Master page associated with site

is retrieved

4 Controls in page layout render

content from pagersquos fields into the page

MasterPagemaster

PageLayoutaspxTitle

BodyImage

Date

ByLine

Field Control

FieldControl

Field ControlField ControlField Control

Field Control

httpfoocombarpageswelcomeaspx

SharePoint Glossary

Term Definition

Cross-Site Publishing Publishing from an authoring site collection to one or more publishing site collections

Catalog A list that has been published as a catalog

Category Page A page that displays a rollup of catalog items

Catalog Item Page A page that displays a single item from a catalog

Display Template Used to format the results on search pages in content search web parts and on category pages

Whatrsquos New in Web Content

Management

Easier Page Authoring With Cut and Paste

Drag and Drop Files

Drag and drop files from Windows Explorer into the browser or the other way

Doesnrsquot support folders or document sets

Open in Windows Explorer still works best for this

Requires IE10 or current versions of Chrome Safari or Firefox

IE8 and 9 supported with Office 2013 installed

Image Renditions

Display uploaded images in predefined sizes widths and crops

Multiple renditions stored in document sets

Content author can create renditions (including crops) in the browser

Design Manager

New way to build master

pages and layouts

SharePoint Designer no

longer required

Edit and preview in any HTML

editor

Automatically creates the associated

master page and aspx

layouts

Package into a Design

Package WSP for

deployment

Snippet Gallery

Select components

such as search box or

navigation control

Configure its properties

Paste the snippet into your HTML

master page or layout

Changes synched to

actual master pages and layouts to convert to SharePoint

components

Can be used by any web design

tool

Device Channels

Map channels to mobile devices or browsers

Alternate master pages

can be assigned

Page layouts can include or

exclude content based

on channel

Display Templates

Used to customize the

presentation of search results

No more XSLT

Three templates

bull Control ndash Overall structure of search results

bull Group ndash Show groups of results

bull Item ndash How each result is presented

Navigation and Friendly URLs

Site navigation driven by managed metadata

Term store used for navigation and SEO-friendly URLs

Connect site navigation to business concepts rather than site structure

Server side control outputs HTML for top nav left nav and breadcrumb

Plan is to convert to client-side to support Office 365

Term Store Setup

Two groups used to separate metadata from navigation

Metadata group setup globally

Static GUIDs consistent through all environments

Navigation group setup at the site collection level

Allows multiple copies for multiple sites on the farm

Search

Search is new and different from all previous versions of SharePoint

The platform has been consolidated Built on a combination of FAST Search and SharePoint Search components as well as new development work ndash it is the

same from Foundation to Server

Foundation Search is intended to replace WSS Search Microsoft Search Server and Search Server Express from previous versions of SharePoint

Itrsquos used pervasively throughout the product now in many different ways in different features eDiscovery navigation topic pages Internet facing business sites etc

Search in SharePoint 2013

Single Extensible Platform

FAST Engine

SharePoint Crawler

Best of both

Same Search Platform in both SharePoint and Exchange

Enterprise Search

Search Page Web parts added to a publishing page

Catalogs Cross-site publishing

Library search Executes in place on the library

Site Search _layouts15osssearchresultsaspx Specifies the site and search parameters

Search Centre Basic Search Center - SharePoint Foundation 2013 Enterprise Search Center - SharePoint Server 2013

Content Search Web Part

Similar in concept to the Content Query Web Part

Many advantages

Can go across sites site collections web apps even farms

Leverages the search index -gt very scalable

Query Builder makes it easy to define your results

Use Display Templates to customize the look and feel No more XSLT

Part of the Enterprise CAL

Pre-Configured CSWPs

Popular Items Shows items that have been recently viewed by many users

Recently Changed Items Shows items that have been modified recently This can help site users

track the latest activity on a site or a library

Recommended Items Show content recommendations based on usage patterns for the current

page

All of these can be further configured by editing their properties and changing the search criteria

Search Results Web Part

Similar functionality to the Content Search Web Part

Doesnrsquot allow property mapping in the web part configuration

Mapping is controlled in the Display Template

Part of the Standard CAL

Category Page Item Page

Catalogs

wwwcontosocomproductsAudio-Liware2g

Catalogs

Results

Consistent Displays

Manage content in one place

No need to create

pages

No need to format

Metadata Navigation

Cross-Site Publishing

Reuse content between different sites including site collections and farms

Catalogs can surface lists into publishing sites onto a category page and item pages

Can be surfaced through the Content Search Web Part

No need to create and publish web pages

Create custom friendly URLs

Metadata based navigation base

Cross Site Publishing

Job Posting

Job Posting

Job Posting

Job Posting

Simcoe County District School Board

50000 students

Over 6000 employees

Board office in Barrie

Bordered by the Holland Marsh in the south the Trent-Severn Waterway in the east Grey County in the west and Muskoka in the north

Simcoe County District School Board

119 schools and centres 87 elementary 16 secondary 6 learning centres 10 alternative

Each needs their own web site Being built on SharePoint 2013 Elementary panel first Each has their own unique URL Content authored both at the school and centrally from the board

wwwscdsbonca Pre-existing SharePoint 2010 site Future goal is to rebuild in SharePoint 2013

Business Challenge

100+ public web sites

No standardization on style technology or content

No ability for the board to push content to the school sites

Outdated sites

Not mobile or AODA compliant

Site Features

Fully Adaptivemobile design Robust Search functionality Template makes it fast and efficient to add new school sites News and events can be targeted by the Board to any number of

school sites Target by panel weather zone trustee language Presented in a blended view with the school news and events

Home page rotator links hours content pages all managed by the school staff

SEO-friendly URLs

News

School news entered by school staff

Board news entered in the board site

Rendered using cross-site publishing

High-priority alerts can be flagged to highlight on the site

Bus or school cancellations

Events

Single and multi-day events

School and board managed like news

Adaptive calendar

School Picker

Used to pick which schools to target news and events to

Schools are tagged through the term store

Target by panel weather zone trustee language

Can override and add or remove individual schools

Search

Catalogs

Three main steps

Enabling lists or libraries as catalogs

Creating the catalog connection

Building the page layouts to display the category rollups or item detail pages

Enabling Catalogs

Doesnrsquot have to be a list can be a document Images or Pages library

Experimenting using a Pages library

This gives us draft and published states that lists donrsquot support

Preview and editing is easier

Fairly simple script to do this

Catalog connections are more complex

Create the connection

Fix up the Term Store

Create the Category and Item page layouts and pages

SEO Enhancements

Friendly URLs

Home page redirects

XML sitemaps automatically generated and updated

Custom SEO properties

Usage Analytics

Built for scale from the ground up Detail data rolled up every 15 days amp anonymized Daily events purged every 15 days monthly events after 3 years Lifetime counts always retained

Counts views amp unique itemsday Shows recent (2-weeks) and lifetime count Trims least visited content Pushes aggregate data to reporting database

Drives recommendations capabilities on content Calculations injected into search index as sortable managed properties Deep integration with search engine Can influence search relevance based on content usage

Variations and Multi-Lingual

Export and import content for translation in XLIFF format

Pages

Labels

List items

Navigation

Bing translation service comes with active SharePoint 2013 license

Adaptive Web Design

Adaptive vs Responsive

Adaptive

Fixed breakpoints‒ Desktop gt 980 px

‒ Table portrait gt 768 px

‒ Phone to tablet gt 480 px lt 768 px

‒ Smartphone lt 480 px

Responsive

No fixed breakpoints

Design fluidly adapts to whatever width the browser is

We generally do a hybrid approach with responsive design in the under 768 pixel situation

Design Approaches in SharePoint

Adaptive Design through CSS media queries

Broader standards approach used outside of SharePoint

Keeps a single master page and CSS

Some unnecessary components may still be loaded

Device Channels SharePoint specific approach

Assign different master pages to different device channels

Rules define what devices use which channels

Device Channel Panels can also target content to channels

Hybrid here can also make sense Device channels can be used to remove unnecessary items from the page payload

Our Adaptive Approach

Built using the Twitter Boostrap CSS framework

twittergithubcombootstrap

Provides a responsive design framework for supporting PC Mac tablet and mobile

We enhanced to provide better touch navigation support

Can be leveraged in the master page page layouts and display templates

Incorporated into the SharePoint 2013 Design Master

HTML based master page that can be edited with any tool

SharePoint converts to a master page when uploaded or saved

Additional Open Source Tools and Resources

HTML CSS JavaScript jQuery

httpwwww3schoolscom

httpgetbootstrapcom

httphandlebarsjscom

httpknockoutjscom

httpsangularjsorg

httpmomentjscom

Content Search Web Part

Web part is configured to return search results

Executed as client-side code in the browser

Pair of display templates map the data returned to HTML

Control template for the overall structure

Item template for each item returned

HTML Designer Manager files are compiled to JavaScript

REST Search and Handlebars

Search is accessible through REST calls

httpsiteurl_apisearchquery

Returns results as a JSON array

Handlebars is a templating engine to format that

Conceptually similar to display templates with control and item sections

jQuery glues this all together

Steps to Experiment

F12 to get into Developer Toolbar

Set a breakpoint where the REST URL is determined

Copy the value

Paste into the REST Search test window

Experiment with the query

Adjust the Handlebars template appropriately

Search Setup

Content Sources to define and schedule the crawls

Crawl logs to review success

Search Schema to define the managed properties

Reusable Content

Snippets of HTML that can be reused throughout the site

JavaScript can be intelligent and use the URL to determine its behaviour

Makes it easy for content authors to drop pre-configured dynamic content onto pages

Topic Pages

Shows all items that match a topic

Could be hundreds of virtual pages

Only one template page

Easily customizable and SEO friendly (each topic appears to be its own page)

Content by search web part open search against a query or result source

May be able to surface the topic pages themselves as site search results

Public Health Ontario

httpwwwpublichealthontariocaenBrowseByTopicPagesTopicaspxk=Influenza20InformationByTopic22Influenza22

Ontario Association of Childrens Aid Societies

Application Lifecycle Management

Purpose

How do we build a solid SharePoint development environment for the enterprise

How do a number of developers work together on a SharePoint project

How does code and content move through a dev test and production lifecycle

What is Agile and Continuous Integration and why is it important

Visual Studio and Team Foundation Server

Visual Studio 2010 is the development platform for coding on SharePoint 2010

Team Foundation Server integrates with Visual Studio to provide a repository for code test and other project artifacts

It facilitates teamwork by providing a common place for developers to work together

Provisioning SharePoint Farms

Provisioning SharePoint Farms

Every developer needs their own complete SharePoint farm

Teams need a dev integration farm to bring their work together on

A full architecture needs QA and production farms as well

Envision IT Virtualization Architecture

Developer VM Template

SharePoint Server 2010 Enterprise

SP1 and August CU

Visual Studio 2010 Premium SP1

Office 2010 Professional Plus SP1

SharePoint Designer 2010 SP1

Fiddler

SQL Server 2008 R2 SP1

Creating a new Developer VM

Open System Centre Virtual Machine Manager

Create Virtual Machine

Choose the Developer VM template

Set the virtual machine name and options

Create and start the VM

Creating a new Developer VM - Step 2

Developer RDPs to their new VM Complete the SQL Server installation

Create the default instance Set the service account(s) Set the authentication mode and server administrators

Update the AutoSPInstallerInputxml file Set the machine name for the default sites and database server Set the service account passwords

Run the AutoSPInstallerLaunch batch file Do a Health check review

Creating a new Developer VM - Step 3

Start Visual Studio

Connect to the Team Foundation Server

Setup your workspaces

Use a standard naming convention across your team

CDevelopmentTFSCollection

Other Environments

Dev Integration QA and Production can all be built using AutoSPInstall

Donrsquot need or want the Visual Studio or Office tools on these servers

We have a base template we use for dev integration servers

QA should match the Prod architecture as closely as possible

High availability with load balancing clustered SQL app servers DMZ hardening Internet publishing

Agile Development

Agile with Team Foundation Server

Creating Your TFS Project

Open Visual Studio

Make sure you are connected to the right Team Project Collection

In Team Explorer right-click the top collection and create a new Team Project

Use the Scrum 10 template

Go into the Areas and Iterations Delete the extraneous releases and sprints

Create a product backlog iteration

Start adding your stories and tasks

Continuous Integration

Continuous Integration

Automated Testing

SharePoint Site Elements

Site structure Site columns content types subsites lists libraries

Branding elements Master pages layouts CSS XSLT supporting images

Custom web parts Page and site content Web part instances Search Workflows Business Connectivity Services Managed Metadata

SharePoint Site Elements ndash Part 2

Access Excel Word Visio

PerformancePoint

Document conversions

Timer jobs

Secure Store Service

User profiles

Site Structure

bull Site columns

bull Define the fields that are used by content types

bull Content types

bull Defines collections of site columns for different types of content

bull Subsites

bull The hierarchy of sites that make up the site collection

bull Lists and Libraries

bull The lists and libraries for each subsite

Site Structure ndash Part 2

Site columns and content types can be programmatically or manually created If they are going to be used in multiple site collections they should be

programmatically created

If a single site collection they can be created manually in a master site collection

GUIDs cannot be manually set and code may need them to be consistent

You can create them manually in SharePoint save the site as a template and import them into Visual Studio to create a proper WSP package

Site Structure ndash Part 3

Site structure can also be done either programmatically or manually

Many sites are complex and it is error prone to create manually

We use our own SiteModelBuilder tool to create the site structure

Site Structure ndash Part 4

For all site structure elements changes can also be manual or programmatic It is useful to be able to delete the whole site collection and recreate it

programmatically As soon as content starts being authored in SharePoint it becomes difficult

or impossible to do that

After content authoring has started Site column and content type changes need to be programmed explicitly

(you canrsquot just drop the content type and recreate it) Site structure changes are usually done manually at this point Changes need to be backed up and restored

Change Management

Page and Site Content

Page and site content is entered directly into SharePoint by the content authors Web pages images PDFs list content etc This should be done in the master site separate from where dev integration is

happening Care needs to be taken with this site once authors start working Make sure it is part of your production backup plan

Periodically back it up and restore it to the dev integration and developer VMs

Alternatively script the export and import Ultimately it will be backed up and restored to the QA and production

farms

Change Management

Change Management

Change Management

Change Management

Web part instances

Web parts ultimately get placed on pages

The configuration of the web parts can often get quite complex

You may want to disable editing of web parts for general content authors

They end up in a grey zone between code and content

Web part instances ndash Part 2

We created our own internal tool to export and import web parts

Each web partrsquos configuration can be exported into a webpartfile

We scripted the extraction from the dev integration

webpart files are treated like code and checked into TFS for version control

Script then applies the new webpart files to the target environment

Workflows

Workflows can be built using SharePoint Designer Visual Studio or third-party tools (Nintex or K2 primarily)

Visual Studio workflow projects are automatically packaged as WSP solution files Simply deploy the WSP file to the other environments

SharePoint Designer workflows need to be deployed using SharePoint Designer This means you need SPD access to production which is not always possible

You can load the SPD workflow into Visual Studio to package it but you lose the ability to edit it in SPD

If you use third-party tools yoursquoll need to define the process for that as well

Business Connectivity Services

BCS can be built using either SharePoint Designer or Visual Studio Visual Studio BCS projects are automatically packaged as WSP

solution files Simply deploy the WSP file to the other environments You can also export the BDC metadata model in the BDC service

application

SharePoint Designer doesnrsquot create a WSP and it doesnrsquot make a complete BDC metadata model You need to export and import using SharePoint Designer

In both cases you still need to deal with connection and configuration information

Future Directions

Visual Studio Lab Management

Integrates the management of HyperV environments in with Visual Studio and Team Foundation Server

Can automate the provisioning of lab environments for automated testing

Test failures can snapshot entire environments to make reproduction of errors much easier

Summary

Yoursquore going to have lots of SharePoint environments ndash figure out how to build them quickly and repeatable

Code and content often move in opposite directions through dev QA and Prod PowerShell script and automate to keep this simple

Agile is a great way to run projects

Continuous integration with automated testing is key to its success

There are lots of parts of SharePoint that you donrsquot code through Visual Studio Figure out how you move those through your environment

Other Topics

Site Design

Information architecture

Wireframes

Creative designs ndash Mobile first

Catalogs deep dive

Site build PowerShell scripts

Team Foundation Server and Application Lifecycle Management

Starting a new project

Managing content authoring

Site Improve tool

SEO Optimizations

Analytics options

Retaining Page Ranks with permanent redirects (301)

Azure SharePoint Hosting

Q amp A

Session Evaluations

Go to Evaluations on the home page of wwwcollabconorg

It is important to get your feedback

Please fill out evaluations for all the sessions you attend

Following the conference a random drawing from all completed evaluations will be selected

The winner will receive a $250 Future Shop gift card valid online or in store

Page 36: Web Content Management - CollabCon 2015 - Web... · Performances Complete Works ... Friendly URL An SEO friendly URL defined in the term store for a page, rather than ... What’s

SharePoint Glossary

Term Definition

List A container for list content types or custom list items Columns can be defined via content types or directly in the list

Document Library A SharePoint list that contains documents where you can create collect update and share files with others Like lists columns can be defined via content types or directly in the list

Form Library A special type of library to facilitate the interaction with InfoPath forms

Asset Library A library typically used to store image audio and video files

List Template A template used to define the configuration of a list or library Templates can be saved with or without content

SharePoint Glossary

Term Definition

Term Store An instance of the Managed Metadata Service This can be shared between sites site collections web applications or farms

Group A collection of term sets

Term Set A collection of related terms

Term A word or a phrase that can be associated with a SharePoint item

Friendly URL An SEO friendly URL defined in the term store for a page rather than the physical URL of where the page is stored (Pages)

SharePoint Glossary

Term Definition

Design Manager 2013 feature used to manipulate WCM artifacts

Master Page Defines elements that are common to all pages such as the header navigation and footer

Page Layout Defines the layout of a particular style of page such as news or events Each page content type can have one or more layouts associated with them

Web Parts Functional elements that can be added to pages typically for dynamic content

Apps Similar to web parts but run outside of SharePoint while beinghosted in the SharePoint page

Publishing Site Page Rendering

FileName

Welcomeaspx

PageLayout

PageLayoutaspx

Title

Welcome To News

Body

Lorem ipsum dolor sit

Image

ImagesChairjpg

1 Welcomeaspx page is

requested

2 Page layout associated with

page is retrieved

3 Master page associated with site

is retrieved

4 Controls in page layout render

content from pagersquos fields into the page

MasterPagemaster

PageLayoutaspxTitle

BodyImage

Date

ByLine

Field Control

FieldControl

Field ControlField ControlField Control

Field Control

httpfoocombarpageswelcomeaspx

SharePoint Glossary

Term Definition

Cross-Site Publishing Publishing from an authoring site collection to one or more publishing site collections

Catalog A list that has been published as a catalog

Category Page A page that displays a rollup of catalog items

Catalog Item Page A page that displays a single item from a catalog

Display Template Used to format the results on search pages in content search web parts and on category pages

Whatrsquos New in Web Content

Management

Easier Page Authoring With Cut and Paste

Drag and Drop Files

Drag and drop files from Windows Explorer into the browser or the other way

Doesnrsquot support folders or document sets

Open in Windows Explorer still works best for this

Requires IE10 or current versions of Chrome Safari or Firefox

IE8 and 9 supported with Office 2013 installed

Image Renditions

Display uploaded images in predefined sizes widths and crops

Multiple renditions stored in document sets

Content author can create renditions (including crops) in the browser

Design Manager

New way to build master

pages and layouts

SharePoint Designer no

longer required

Edit and preview in any HTML

editor

Automatically creates the associated

master page and aspx

layouts

Package into a Design

Package WSP for

deployment

Snippet Gallery

Select components

such as search box or

navigation control

Configure its properties

Paste the snippet into your HTML

master page or layout

Changes synched to

actual master pages and layouts to convert to SharePoint

components

Can be used by any web design

tool

Device Channels

Map channels to mobile devices or browsers

Alternate master pages

can be assigned

Page layouts can include or

exclude content based

on channel

Display Templates

Used to customize the

presentation of search results

No more XSLT

Three templates

bull Control ndash Overall structure of search results

bull Group ndash Show groups of results

bull Item ndash How each result is presented

Navigation and Friendly URLs

Site navigation driven by managed metadata

Term store used for navigation and SEO-friendly URLs

Connect site navigation to business concepts rather than site structure

Server side control outputs HTML for top nav left nav and breadcrumb

Plan is to convert to client-side to support Office 365

Term Store Setup

Two groups used to separate metadata from navigation

Metadata group setup globally

Static GUIDs consistent through all environments

Navigation group setup at the site collection level

Allows multiple copies for multiple sites on the farm

Search

Search is new and different from all previous versions of SharePoint

The platform has been consolidated Built on a combination of FAST Search and SharePoint Search components as well as new development work ndash it is the

same from Foundation to Server

Foundation Search is intended to replace WSS Search Microsoft Search Server and Search Server Express from previous versions of SharePoint

Itrsquos used pervasively throughout the product now in many different ways in different features eDiscovery navigation topic pages Internet facing business sites etc

Search in SharePoint 2013

Single Extensible Platform

FAST Engine

SharePoint Crawler

Best of both

Same Search Platform in both SharePoint and Exchange

Enterprise Search

Search Page Web parts added to a publishing page

Catalogs Cross-site publishing

Library search Executes in place on the library

Site Search _layouts15osssearchresultsaspx Specifies the site and search parameters

Search Centre Basic Search Center - SharePoint Foundation 2013 Enterprise Search Center - SharePoint Server 2013

Content Search Web Part

Similar in concept to the Content Query Web Part

Many advantages

Can go across sites site collections web apps even farms

Leverages the search index -gt very scalable

Query Builder makes it easy to define your results

Use Display Templates to customize the look and feel No more XSLT

Part of the Enterprise CAL

Pre-Configured CSWPs

Popular Items Shows items that have been recently viewed by many users

Recently Changed Items Shows items that have been modified recently This can help site users

track the latest activity on a site or a library

Recommended Items Show content recommendations based on usage patterns for the current

page

All of these can be further configured by editing their properties and changing the search criteria

Search Results Web Part

Similar functionality to the Content Search Web Part

Doesnrsquot allow property mapping in the web part configuration

Mapping is controlled in the Display Template

Part of the Standard CAL

Category Page Item Page

Catalogs

wwwcontosocomproductsAudio-Liware2g

Catalogs

Results

Consistent Displays

Manage content in one place

No need to create

pages

No need to format

Metadata Navigation

Cross-Site Publishing

Reuse content between different sites including site collections and farms

Catalogs can surface lists into publishing sites onto a category page and item pages

Can be surfaced through the Content Search Web Part

No need to create and publish web pages

Create custom friendly URLs

Metadata based navigation base

Cross Site Publishing

Job Posting

Job Posting

Job Posting

Job Posting

Simcoe County District School Board

50000 students

Over 6000 employees

Board office in Barrie

Bordered by the Holland Marsh in the south the Trent-Severn Waterway in the east Grey County in the west and Muskoka in the north

Simcoe County District School Board

119 schools and centres 87 elementary 16 secondary 6 learning centres 10 alternative

Each needs their own web site Being built on SharePoint 2013 Elementary panel first Each has their own unique URL Content authored both at the school and centrally from the board

wwwscdsbonca Pre-existing SharePoint 2010 site Future goal is to rebuild in SharePoint 2013

Business Challenge

100+ public web sites

No standardization on style technology or content

No ability for the board to push content to the school sites

Outdated sites

Not mobile or AODA compliant

Site Features

Fully Adaptivemobile design Robust Search functionality Template makes it fast and efficient to add new school sites News and events can be targeted by the Board to any number of

school sites Target by panel weather zone trustee language Presented in a blended view with the school news and events

Home page rotator links hours content pages all managed by the school staff

SEO-friendly URLs

News

School news entered by school staff

Board news entered in the board site

Rendered using cross-site publishing

High-priority alerts can be flagged to highlight on the site

Bus or school cancellations

Events

Single and multi-day events

School and board managed like news

Adaptive calendar

School Picker

Used to pick which schools to target news and events to

Schools are tagged through the term store

Target by panel weather zone trustee language

Can override and add or remove individual schools

Search

Catalogs

Three main steps

Enabling lists or libraries as catalogs

Creating the catalog connection

Building the page layouts to display the category rollups or item detail pages

Enabling Catalogs

Doesnrsquot have to be a list can be a document Images or Pages library

Experimenting using a Pages library

This gives us draft and published states that lists donrsquot support

Preview and editing is easier

Fairly simple script to do this

Catalog connections are more complex

Create the connection

Fix up the Term Store

Create the Category and Item page layouts and pages

SEO Enhancements

Friendly URLs

Home page redirects

XML sitemaps automatically generated and updated

Custom SEO properties

Usage Analytics

Built for scale from the ground up Detail data rolled up every 15 days amp anonymized Daily events purged every 15 days monthly events after 3 years Lifetime counts always retained

Counts views amp unique itemsday Shows recent (2-weeks) and lifetime count Trims least visited content Pushes aggregate data to reporting database

Drives recommendations capabilities on content Calculations injected into search index as sortable managed properties Deep integration with search engine Can influence search relevance based on content usage

Variations and Multi-Lingual

Export and import content for translation in XLIFF format

Pages

Labels

List items

Navigation

Bing translation service comes with active SharePoint 2013 license

Adaptive Web Design

Adaptive vs Responsive

Adaptive

Fixed breakpoints‒ Desktop gt 980 px

‒ Table portrait gt 768 px

‒ Phone to tablet gt 480 px lt 768 px

‒ Smartphone lt 480 px

Responsive

No fixed breakpoints

Design fluidly adapts to whatever width the browser is

We generally do a hybrid approach with responsive design in the under 768 pixel situation

Design Approaches in SharePoint

Adaptive Design through CSS media queries

Broader standards approach used outside of SharePoint

Keeps a single master page and CSS

Some unnecessary components may still be loaded

Device Channels SharePoint specific approach

Assign different master pages to different device channels

Rules define what devices use which channels

Device Channel Panels can also target content to channels

Hybrid here can also make sense Device channels can be used to remove unnecessary items from the page payload

Our Adaptive Approach

Built using the Twitter Boostrap CSS framework

twittergithubcombootstrap

Provides a responsive design framework for supporting PC Mac tablet and mobile

We enhanced to provide better touch navigation support

Can be leveraged in the master page page layouts and display templates

Incorporated into the SharePoint 2013 Design Master

HTML based master page that can be edited with any tool

SharePoint converts to a master page when uploaded or saved

Additional Open Source Tools and Resources

HTML CSS JavaScript jQuery

httpwwww3schoolscom

httpgetbootstrapcom

httphandlebarsjscom

httpknockoutjscom

httpsangularjsorg

httpmomentjscom

Content Search Web Part

Web part is configured to return search results

Executed as client-side code in the browser

Pair of display templates map the data returned to HTML

Control template for the overall structure

Item template for each item returned

HTML Designer Manager files are compiled to JavaScript

REST Search and Handlebars

Search is accessible through REST calls

httpsiteurl_apisearchquery

Returns results as a JSON array

Handlebars is a templating engine to format that

Conceptually similar to display templates with control and item sections

jQuery glues this all together

Steps to Experiment

F12 to get into Developer Toolbar

Set a breakpoint where the REST URL is determined

Copy the value

Paste into the REST Search test window

Experiment with the query

Adjust the Handlebars template appropriately

Search Setup

Content Sources to define and schedule the crawls

Crawl logs to review success

Search Schema to define the managed properties

Reusable Content

Snippets of HTML that can be reused throughout the site

JavaScript can be intelligent and use the URL to determine its behaviour

Makes it easy for content authors to drop pre-configured dynamic content onto pages

Topic Pages

Shows all items that match a topic

Could be hundreds of virtual pages

Only one template page

Easily customizable and SEO friendly (each topic appears to be its own page)

Content by search web part open search against a query or result source

May be able to surface the topic pages themselves as site search results

Public Health Ontario

httpwwwpublichealthontariocaenBrowseByTopicPagesTopicaspxk=Influenza20InformationByTopic22Influenza22

Ontario Association of Childrens Aid Societies

Application Lifecycle Management

Purpose

How do we build a solid SharePoint development environment for the enterprise

How do a number of developers work together on a SharePoint project

How does code and content move through a dev test and production lifecycle

What is Agile and Continuous Integration and why is it important

Visual Studio and Team Foundation Server

Visual Studio 2010 is the development platform for coding on SharePoint 2010

Team Foundation Server integrates with Visual Studio to provide a repository for code test and other project artifacts

It facilitates teamwork by providing a common place for developers to work together

Provisioning SharePoint Farms

Provisioning SharePoint Farms

Every developer needs their own complete SharePoint farm

Teams need a dev integration farm to bring their work together on

A full architecture needs QA and production farms as well

Envision IT Virtualization Architecture

Developer VM Template

SharePoint Server 2010 Enterprise

SP1 and August CU

Visual Studio 2010 Premium SP1

Office 2010 Professional Plus SP1

SharePoint Designer 2010 SP1

Fiddler

SQL Server 2008 R2 SP1

Creating a new Developer VM

Open System Centre Virtual Machine Manager

Create Virtual Machine

Choose the Developer VM template

Set the virtual machine name and options

Create and start the VM

Creating a new Developer VM - Step 2

Developer RDPs to their new VM Complete the SQL Server installation

Create the default instance Set the service account(s) Set the authentication mode and server administrators

Update the AutoSPInstallerInputxml file Set the machine name for the default sites and database server Set the service account passwords

Run the AutoSPInstallerLaunch batch file Do a Health check review

Creating a new Developer VM - Step 3

Start Visual Studio

Connect to the Team Foundation Server

Setup your workspaces

Use a standard naming convention across your team

CDevelopmentTFSCollection

Other Environments

Dev Integration QA and Production can all be built using AutoSPInstall

Donrsquot need or want the Visual Studio or Office tools on these servers

We have a base template we use for dev integration servers

QA should match the Prod architecture as closely as possible

High availability with load balancing clustered SQL app servers DMZ hardening Internet publishing

Agile Development

Agile with Team Foundation Server

Creating Your TFS Project

Open Visual Studio

Make sure you are connected to the right Team Project Collection

In Team Explorer right-click the top collection and create a new Team Project

Use the Scrum 10 template

Go into the Areas and Iterations Delete the extraneous releases and sprints

Create a product backlog iteration

Start adding your stories and tasks

Continuous Integration

Continuous Integration

Automated Testing

SharePoint Site Elements

Site structure Site columns content types subsites lists libraries

Branding elements Master pages layouts CSS XSLT supporting images

Custom web parts Page and site content Web part instances Search Workflows Business Connectivity Services Managed Metadata

SharePoint Site Elements ndash Part 2

Access Excel Word Visio

PerformancePoint

Document conversions

Timer jobs

Secure Store Service

User profiles

Site Structure

bull Site columns

bull Define the fields that are used by content types

bull Content types

bull Defines collections of site columns for different types of content

bull Subsites

bull The hierarchy of sites that make up the site collection

bull Lists and Libraries

bull The lists and libraries for each subsite

Site Structure ndash Part 2

Site columns and content types can be programmatically or manually created If they are going to be used in multiple site collections they should be

programmatically created

If a single site collection they can be created manually in a master site collection

GUIDs cannot be manually set and code may need them to be consistent

You can create them manually in SharePoint save the site as a template and import them into Visual Studio to create a proper WSP package

Site Structure ndash Part 3

Site structure can also be done either programmatically or manually

Many sites are complex and it is error prone to create manually

We use our own SiteModelBuilder tool to create the site structure

Site Structure ndash Part 4

For all site structure elements changes can also be manual or programmatic It is useful to be able to delete the whole site collection and recreate it

programmatically As soon as content starts being authored in SharePoint it becomes difficult

or impossible to do that

After content authoring has started Site column and content type changes need to be programmed explicitly

(you canrsquot just drop the content type and recreate it) Site structure changes are usually done manually at this point Changes need to be backed up and restored

Change Management

Page and Site Content

Page and site content is entered directly into SharePoint by the content authors Web pages images PDFs list content etc This should be done in the master site separate from where dev integration is

happening Care needs to be taken with this site once authors start working Make sure it is part of your production backup plan

Periodically back it up and restore it to the dev integration and developer VMs

Alternatively script the export and import Ultimately it will be backed up and restored to the QA and production

farms

Change Management

Change Management

Change Management

Change Management

Web part instances

Web parts ultimately get placed on pages

The configuration of the web parts can often get quite complex

You may want to disable editing of web parts for general content authors

They end up in a grey zone between code and content

Web part instances ndash Part 2

We created our own internal tool to export and import web parts

Each web partrsquos configuration can be exported into a webpartfile

We scripted the extraction from the dev integration

webpart files are treated like code and checked into TFS for version control

Script then applies the new webpart files to the target environment

Workflows

Workflows can be built using SharePoint Designer Visual Studio or third-party tools (Nintex or K2 primarily)

Visual Studio workflow projects are automatically packaged as WSP solution files Simply deploy the WSP file to the other environments

SharePoint Designer workflows need to be deployed using SharePoint Designer This means you need SPD access to production which is not always possible

You can load the SPD workflow into Visual Studio to package it but you lose the ability to edit it in SPD

If you use third-party tools yoursquoll need to define the process for that as well

Business Connectivity Services

BCS can be built using either SharePoint Designer or Visual Studio Visual Studio BCS projects are automatically packaged as WSP

solution files Simply deploy the WSP file to the other environments You can also export the BDC metadata model in the BDC service

application

SharePoint Designer doesnrsquot create a WSP and it doesnrsquot make a complete BDC metadata model You need to export and import using SharePoint Designer

In both cases you still need to deal with connection and configuration information

Future Directions

Visual Studio Lab Management

Integrates the management of HyperV environments in with Visual Studio and Team Foundation Server

Can automate the provisioning of lab environments for automated testing

Test failures can snapshot entire environments to make reproduction of errors much easier

Summary

Yoursquore going to have lots of SharePoint environments ndash figure out how to build them quickly and repeatable

Code and content often move in opposite directions through dev QA and Prod PowerShell script and automate to keep this simple

Agile is a great way to run projects

Continuous integration with automated testing is key to its success

There are lots of parts of SharePoint that you donrsquot code through Visual Studio Figure out how you move those through your environment

Other Topics

Site Design

Information architecture

Wireframes

Creative designs ndash Mobile first

Catalogs deep dive

Site build PowerShell scripts

Team Foundation Server and Application Lifecycle Management

Starting a new project

Managing content authoring

Site Improve tool

SEO Optimizations

Analytics options

Retaining Page Ranks with permanent redirects (301)

Azure SharePoint Hosting

Q amp A

Session Evaluations

Go to Evaluations on the home page of wwwcollabconorg

It is important to get your feedback

Please fill out evaluations for all the sessions you attend

Following the conference a random drawing from all completed evaluations will be selected

The winner will receive a $250 Future Shop gift card valid online or in store

Page 37: Web Content Management - CollabCon 2015 - Web... · Performances Complete Works ... Friendly URL An SEO friendly URL defined in the term store for a page, rather than ... What’s

SharePoint Glossary

Term Definition

Term Store An instance of the Managed Metadata Service This can be shared between sites site collections web applications or farms

Group A collection of term sets

Term Set A collection of related terms

Term A word or a phrase that can be associated with a SharePoint item

Friendly URL An SEO friendly URL defined in the term store for a page rather than the physical URL of where the page is stored (Pages)

SharePoint Glossary

Term Definition

Design Manager 2013 feature used to manipulate WCM artifacts

Master Page Defines elements that are common to all pages such as the header navigation and footer

Page Layout Defines the layout of a particular style of page such as news or events Each page content type can have one or more layouts associated with them

Web Parts Functional elements that can be added to pages typically for dynamic content

Apps Similar to web parts but run outside of SharePoint while beinghosted in the SharePoint page

Publishing Site Page Rendering

FileName

Welcomeaspx

PageLayout

PageLayoutaspx

Title

Welcome To News

Body

Lorem ipsum dolor sit

Image

ImagesChairjpg

1 Welcomeaspx page is

requested

2 Page layout associated with

page is retrieved

3 Master page associated with site

is retrieved

4 Controls in page layout render

content from pagersquos fields into the page

MasterPagemaster

PageLayoutaspxTitle

BodyImage

Date

ByLine

Field Control

FieldControl

Field ControlField ControlField Control

Field Control

httpfoocombarpageswelcomeaspx

SharePoint Glossary

Term Definition

Cross-Site Publishing Publishing from an authoring site collection to one or more publishing site collections

Catalog A list that has been published as a catalog

Category Page A page that displays a rollup of catalog items

Catalog Item Page A page that displays a single item from a catalog

Display Template Used to format the results on search pages in content search web parts and on category pages

Whatrsquos New in Web Content

Management

Easier Page Authoring With Cut and Paste

Drag and Drop Files

Drag and drop files from Windows Explorer into the browser or the other way

Doesnrsquot support folders or document sets

Open in Windows Explorer still works best for this

Requires IE10 or current versions of Chrome Safari or Firefox

IE8 and 9 supported with Office 2013 installed

Image Renditions

Display uploaded images in predefined sizes widths and crops

Multiple renditions stored in document sets

Content author can create renditions (including crops) in the browser

Design Manager

New way to build master

pages and layouts

SharePoint Designer no

longer required

Edit and preview in any HTML

editor

Automatically creates the associated

master page and aspx

layouts

Package into a Design

Package WSP for

deployment

Snippet Gallery

Select components

such as search box or

navigation control

Configure its properties

Paste the snippet into your HTML

master page or layout

Changes synched to

actual master pages and layouts to convert to SharePoint

components

Can be used by any web design

tool

Device Channels

Map channels to mobile devices or browsers

Alternate master pages

can be assigned

Page layouts can include or

exclude content based

on channel

Display Templates

Used to customize the

presentation of search results

No more XSLT

Three templates

bull Control ndash Overall structure of search results

bull Group ndash Show groups of results

bull Item ndash How each result is presented

Navigation and Friendly URLs

Site navigation driven by managed metadata

Term store used for navigation and SEO-friendly URLs

Connect site navigation to business concepts rather than site structure

Server side control outputs HTML for top nav left nav and breadcrumb

Plan is to convert to client-side to support Office 365

Term Store Setup

Two groups used to separate metadata from navigation

Metadata group setup globally

Static GUIDs consistent through all environments

Navigation group setup at the site collection level

Allows multiple copies for multiple sites on the farm

Search

Search is new and different from all previous versions of SharePoint

The platform has been consolidated Built on a combination of FAST Search and SharePoint Search components as well as new development work ndash it is the

same from Foundation to Server

Foundation Search is intended to replace WSS Search Microsoft Search Server and Search Server Express from previous versions of SharePoint

Itrsquos used pervasively throughout the product now in many different ways in different features eDiscovery navigation topic pages Internet facing business sites etc

Search in SharePoint 2013

Single Extensible Platform

FAST Engine

SharePoint Crawler

Best of both

Same Search Platform in both SharePoint and Exchange

Enterprise Search

Search Page Web parts added to a publishing page

Catalogs Cross-site publishing

Library search Executes in place on the library

Site Search _layouts15osssearchresultsaspx Specifies the site and search parameters

Search Centre Basic Search Center - SharePoint Foundation 2013 Enterprise Search Center - SharePoint Server 2013

Content Search Web Part

Similar in concept to the Content Query Web Part

Many advantages

Can go across sites site collections web apps even farms

Leverages the search index -gt very scalable

Query Builder makes it easy to define your results

Use Display Templates to customize the look and feel No more XSLT

Part of the Enterprise CAL

Pre-Configured CSWPs

Popular Items Shows items that have been recently viewed by many users

Recently Changed Items Shows items that have been modified recently This can help site users

track the latest activity on a site or a library

Recommended Items Show content recommendations based on usage patterns for the current

page

All of these can be further configured by editing their properties and changing the search criteria

Search Results Web Part

Similar functionality to the Content Search Web Part

Doesnrsquot allow property mapping in the web part configuration

Mapping is controlled in the Display Template

Part of the Standard CAL

Category Page Item Page

Catalogs

wwwcontosocomproductsAudio-Liware2g

Catalogs

Results

Consistent Displays

Manage content in one place

No need to create

pages

No need to format

Metadata Navigation

Cross-Site Publishing

Reuse content between different sites including site collections and farms

Catalogs can surface lists into publishing sites onto a category page and item pages

Can be surfaced through the Content Search Web Part

No need to create and publish web pages

Create custom friendly URLs

Metadata based navigation base

Cross Site Publishing

Job Posting

Job Posting

Job Posting

Job Posting

Simcoe County District School Board

50000 students

Over 6000 employees

Board office in Barrie

Bordered by the Holland Marsh in the south the Trent-Severn Waterway in the east Grey County in the west and Muskoka in the north

Simcoe County District School Board

119 schools and centres 87 elementary 16 secondary 6 learning centres 10 alternative

Each needs their own web site Being built on SharePoint 2013 Elementary panel first Each has their own unique URL Content authored both at the school and centrally from the board

wwwscdsbonca Pre-existing SharePoint 2010 site Future goal is to rebuild in SharePoint 2013

Business Challenge

100+ public web sites

No standardization on style technology or content

No ability for the board to push content to the school sites

Outdated sites

Not mobile or AODA compliant

Site Features

Fully Adaptivemobile design Robust Search functionality Template makes it fast and efficient to add new school sites News and events can be targeted by the Board to any number of

school sites Target by panel weather zone trustee language Presented in a blended view with the school news and events

Home page rotator links hours content pages all managed by the school staff

SEO-friendly URLs

News

School news entered by school staff

Board news entered in the board site

Rendered using cross-site publishing

High-priority alerts can be flagged to highlight on the site

Bus or school cancellations

Events

Single and multi-day events

School and board managed like news

Adaptive calendar

School Picker

Used to pick which schools to target news and events to

Schools are tagged through the term store

Target by panel weather zone trustee language

Can override and add or remove individual schools

Search

Catalogs

Three main steps

Enabling lists or libraries as catalogs

Creating the catalog connection

Building the page layouts to display the category rollups or item detail pages

Enabling Catalogs

Doesnrsquot have to be a list can be a document Images or Pages library

Experimenting using a Pages library

This gives us draft and published states that lists donrsquot support

Preview and editing is easier

Fairly simple script to do this

Catalog connections are more complex

Create the connection

Fix up the Term Store

Create the Category and Item page layouts and pages

SEO Enhancements

Friendly URLs

Home page redirects

XML sitemaps automatically generated and updated

Custom SEO properties

Usage Analytics

Built for scale from the ground up Detail data rolled up every 15 days amp anonymized Daily events purged every 15 days monthly events after 3 years Lifetime counts always retained

Counts views amp unique itemsday Shows recent (2-weeks) and lifetime count Trims least visited content Pushes aggregate data to reporting database

Drives recommendations capabilities on content Calculations injected into search index as sortable managed properties Deep integration with search engine Can influence search relevance based on content usage

Variations and Multi-Lingual

Export and import content for translation in XLIFF format

Pages

Labels

List items

Navigation

Bing translation service comes with active SharePoint 2013 license

Adaptive Web Design

Adaptive vs Responsive

Adaptive

Fixed breakpoints‒ Desktop gt 980 px

‒ Table portrait gt 768 px

‒ Phone to tablet gt 480 px lt 768 px

‒ Smartphone lt 480 px

Responsive

No fixed breakpoints

Design fluidly adapts to whatever width the browser is

We generally do a hybrid approach with responsive design in the under 768 pixel situation

Design Approaches in SharePoint

Adaptive Design through CSS media queries

Broader standards approach used outside of SharePoint

Keeps a single master page and CSS

Some unnecessary components may still be loaded

Device Channels SharePoint specific approach

Assign different master pages to different device channels

Rules define what devices use which channels

Device Channel Panels can also target content to channels

Hybrid here can also make sense Device channels can be used to remove unnecessary items from the page payload

Our Adaptive Approach

Built using the Twitter Boostrap CSS framework

twittergithubcombootstrap

Provides a responsive design framework for supporting PC Mac tablet and mobile

We enhanced to provide better touch navigation support

Can be leveraged in the master page page layouts and display templates

Incorporated into the SharePoint 2013 Design Master

HTML based master page that can be edited with any tool

SharePoint converts to a master page when uploaded or saved

Additional Open Source Tools and Resources

HTML CSS JavaScript jQuery

httpwwww3schoolscom

httpgetbootstrapcom

httphandlebarsjscom

httpknockoutjscom

httpsangularjsorg

httpmomentjscom

Content Search Web Part

Web part is configured to return search results

Executed as client-side code in the browser

Pair of display templates map the data returned to HTML

Control template for the overall structure

Item template for each item returned

HTML Designer Manager files are compiled to JavaScript

REST Search and Handlebars

Search is accessible through REST calls

httpsiteurl_apisearchquery

Returns results as a JSON array

Handlebars is a templating engine to format that

Conceptually similar to display templates with control and item sections

jQuery glues this all together

Steps to Experiment

F12 to get into Developer Toolbar

Set a breakpoint where the REST URL is determined

Copy the value

Paste into the REST Search test window

Experiment with the query

Adjust the Handlebars template appropriately

Search Setup

Content Sources to define and schedule the crawls

Crawl logs to review success

Search Schema to define the managed properties

Reusable Content

Snippets of HTML that can be reused throughout the site

JavaScript can be intelligent and use the URL to determine its behaviour

Makes it easy for content authors to drop pre-configured dynamic content onto pages

Topic Pages

Shows all items that match a topic

Could be hundreds of virtual pages

Only one template page

Easily customizable and SEO friendly (each topic appears to be its own page)

Content by search web part open search against a query or result source

May be able to surface the topic pages themselves as site search results

Public Health Ontario

httpwwwpublichealthontariocaenBrowseByTopicPagesTopicaspxk=Influenza20InformationByTopic22Influenza22

Ontario Association of Childrens Aid Societies

Application Lifecycle Management

Purpose

How do we build a solid SharePoint development environment for the enterprise

How do a number of developers work together on a SharePoint project

How does code and content move through a dev test and production lifecycle

What is Agile and Continuous Integration and why is it important

Visual Studio and Team Foundation Server

Visual Studio 2010 is the development platform for coding on SharePoint 2010

Team Foundation Server integrates with Visual Studio to provide a repository for code test and other project artifacts

It facilitates teamwork by providing a common place for developers to work together

Provisioning SharePoint Farms

Provisioning SharePoint Farms

Every developer needs their own complete SharePoint farm

Teams need a dev integration farm to bring their work together on

A full architecture needs QA and production farms as well

Envision IT Virtualization Architecture

Developer VM Template

SharePoint Server 2010 Enterprise

SP1 and August CU

Visual Studio 2010 Premium SP1

Office 2010 Professional Plus SP1

SharePoint Designer 2010 SP1

Fiddler

SQL Server 2008 R2 SP1

Creating a new Developer VM

Open System Centre Virtual Machine Manager

Create Virtual Machine

Choose the Developer VM template

Set the virtual machine name and options

Create and start the VM

Creating a new Developer VM - Step 2

Developer RDPs to their new VM Complete the SQL Server installation

Create the default instance Set the service account(s) Set the authentication mode and server administrators

Update the AutoSPInstallerInputxml file Set the machine name for the default sites and database server Set the service account passwords

Run the AutoSPInstallerLaunch batch file Do a Health check review

Creating a new Developer VM - Step 3

Start Visual Studio

Connect to the Team Foundation Server

Setup your workspaces

Use a standard naming convention across your team

CDevelopmentTFSCollection

Other Environments

Dev Integration QA and Production can all be built using AutoSPInstall

Donrsquot need or want the Visual Studio or Office tools on these servers

We have a base template we use for dev integration servers

QA should match the Prod architecture as closely as possible

High availability with load balancing clustered SQL app servers DMZ hardening Internet publishing

Agile Development

Agile with Team Foundation Server

Creating Your TFS Project

Open Visual Studio

Make sure you are connected to the right Team Project Collection

In Team Explorer right-click the top collection and create a new Team Project

Use the Scrum 10 template

Go into the Areas and Iterations Delete the extraneous releases and sprints

Create a product backlog iteration

Start adding your stories and tasks

Continuous Integration

Continuous Integration

Automated Testing

SharePoint Site Elements

Site structure Site columns content types subsites lists libraries

Branding elements Master pages layouts CSS XSLT supporting images

Custom web parts Page and site content Web part instances Search Workflows Business Connectivity Services Managed Metadata

SharePoint Site Elements ndash Part 2

Access Excel Word Visio

PerformancePoint

Document conversions

Timer jobs

Secure Store Service

User profiles

Site Structure

bull Site columns

bull Define the fields that are used by content types

bull Content types

bull Defines collections of site columns for different types of content

bull Subsites

bull The hierarchy of sites that make up the site collection

bull Lists and Libraries

bull The lists and libraries for each subsite

Site Structure ndash Part 2

Site columns and content types can be programmatically or manually created If they are going to be used in multiple site collections they should be

programmatically created

If a single site collection they can be created manually in a master site collection

GUIDs cannot be manually set and code may need them to be consistent

You can create them manually in SharePoint save the site as a template and import them into Visual Studio to create a proper WSP package

Site Structure ndash Part 3

Site structure can also be done either programmatically or manually

Many sites are complex and it is error prone to create manually

We use our own SiteModelBuilder tool to create the site structure

Site Structure ndash Part 4

For all site structure elements changes can also be manual or programmatic It is useful to be able to delete the whole site collection and recreate it

programmatically As soon as content starts being authored in SharePoint it becomes difficult

or impossible to do that

After content authoring has started Site column and content type changes need to be programmed explicitly

(you canrsquot just drop the content type and recreate it) Site structure changes are usually done manually at this point Changes need to be backed up and restored

Change Management

Page and Site Content

Page and site content is entered directly into SharePoint by the content authors Web pages images PDFs list content etc This should be done in the master site separate from where dev integration is

happening Care needs to be taken with this site once authors start working Make sure it is part of your production backup plan

Periodically back it up and restore it to the dev integration and developer VMs

Alternatively script the export and import Ultimately it will be backed up and restored to the QA and production

farms

Change Management

Change Management

Change Management

Change Management

Web part instances

Web parts ultimately get placed on pages

The configuration of the web parts can often get quite complex

You may want to disable editing of web parts for general content authors

They end up in a grey zone between code and content

Web part instances ndash Part 2

We created our own internal tool to export and import web parts

Each web partrsquos configuration can be exported into a webpartfile

We scripted the extraction from the dev integration

webpart files are treated like code and checked into TFS for version control

Script then applies the new webpart files to the target environment

Workflows

Workflows can be built using SharePoint Designer Visual Studio or third-party tools (Nintex or K2 primarily)

Visual Studio workflow projects are automatically packaged as WSP solution files Simply deploy the WSP file to the other environments

SharePoint Designer workflows need to be deployed using SharePoint Designer This means you need SPD access to production which is not always possible

You can load the SPD workflow into Visual Studio to package it but you lose the ability to edit it in SPD

If you use third-party tools yoursquoll need to define the process for that as well

Business Connectivity Services

BCS can be built using either SharePoint Designer or Visual Studio Visual Studio BCS projects are automatically packaged as WSP

solution files Simply deploy the WSP file to the other environments You can also export the BDC metadata model in the BDC service

application

SharePoint Designer doesnrsquot create a WSP and it doesnrsquot make a complete BDC metadata model You need to export and import using SharePoint Designer

In both cases you still need to deal with connection and configuration information

Future Directions

Visual Studio Lab Management

Integrates the management of HyperV environments in with Visual Studio and Team Foundation Server

Can automate the provisioning of lab environments for automated testing

Test failures can snapshot entire environments to make reproduction of errors much easier

Summary

Yoursquore going to have lots of SharePoint environments ndash figure out how to build them quickly and repeatable

Code and content often move in opposite directions through dev QA and Prod PowerShell script and automate to keep this simple

Agile is a great way to run projects

Continuous integration with automated testing is key to its success

There are lots of parts of SharePoint that you donrsquot code through Visual Studio Figure out how you move those through your environment

Other Topics

Site Design

Information architecture

Wireframes

Creative designs ndash Mobile first

Catalogs deep dive

Site build PowerShell scripts

Team Foundation Server and Application Lifecycle Management

Starting a new project

Managing content authoring

Site Improve tool

SEO Optimizations

Analytics options

Retaining Page Ranks with permanent redirects (301)

Azure SharePoint Hosting

Q amp A

Session Evaluations

Go to Evaluations on the home page of wwwcollabconorg

It is important to get your feedback

Please fill out evaluations for all the sessions you attend

Following the conference a random drawing from all completed evaluations will be selected

The winner will receive a $250 Future Shop gift card valid online or in store

Page 38: Web Content Management - CollabCon 2015 - Web... · Performances Complete Works ... Friendly URL An SEO friendly URL defined in the term store for a page, rather than ... What’s

SharePoint Glossary

Term Definition

Design Manager 2013 feature used to manipulate WCM artifacts

Master Page Defines elements that are common to all pages such as the header navigation and footer

Page Layout Defines the layout of a particular style of page such as news or events Each page content type can have one or more layouts associated with them

Web Parts Functional elements that can be added to pages typically for dynamic content

Apps Similar to web parts but run outside of SharePoint while beinghosted in the SharePoint page

Publishing Site Page Rendering

FileName

Welcomeaspx

PageLayout

PageLayoutaspx

Title

Welcome To News

Body

Lorem ipsum dolor sit

Image

ImagesChairjpg

1 Welcomeaspx page is

requested

2 Page layout associated with

page is retrieved

3 Master page associated with site

is retrieved

4 Controls in page layout render

content from pagersquos fields into the page

MasterPagemaster

PageLayoutaspxTitle

BodyImage

Date

ByLine

Field Control

FieldControl

Field ControlField ControlField Control

Field Control

httpfoocombarpageswelcomeaspx

SharePoint Glossary

Term Definition

Cross-Site Publishing Publishing from an authoring site collection to one or more publishing site collections

Catalog A list that has been published as a catalog

Category Page A page that displays a rollup of catalog items

Catalog Item Page A page that displays a single item from a catalog

Display Template Used to format the results on search pages in content search web parts and on category pages

Whatrsquos New in Web Content

Management

Easier Page Authoring With Cut and Paste

Drag and Drop Files

Drag and drop files from Windows Explorer into the browser or the other way

Doesnrsquot support folders or document sets

Open in Windows Explorer still works best for this

Requires IE10 or current versions of Chrome Safari or Firefox

IE8 and 9 supported with Office 2013 installed

Image Renditions

Display uploaded images in predefined sizes widths and crops

Multiple renditions stored in document sets

Content author can create renditions (including crops) in the browser

Design Manager

New way to build master

pages and layouts

SharePoint Designer no

longer required

Edit and preview in any HTML

editor

Automatically creates the associated

master page and aspx

layouts

Package into a Design

Package WSP for

deployment

Snippet Gallery

Select components

such as search box or

navigation control

Configure its properties

Paste the snippet into your HTML

master page or layout

Changes synched to

actual master pages and layouts to convert to SharePoint

components

Can be used by any web design

tool

Device Channels

Map channels to mobile devices or browsers

Alternate master pages

can be assigned

Page layouts can include or

exclude content based

on channel

Display Templates

Used to customize the

presentation of search results

No more XSLT

Three templates

bull Control ndash Overall structure of search results

bull Group ndash Show groups of results

bull Item ndash How each result is presented

Navigation and Friendly URLs

Site navigation driven by managed metadata

Term store used for navigation and SEO-friendly URLs

Connect site navigation to business concepts rather than site structure

Server side control outputs HTML for top nav left nav and breadcrumb

Plan is to convert to client-side to support Office 365

Term Store Setup

Two groups used to separate metadata from navigation

Metadata group setup globally

Static GUIDs consistent through all environments

Navigation group setup at the site collection level

Allows multiple copies for multiple sites on the farm

Search

Search is new and different from all previous versions of SharePoint

The platform has been consolidated Built on a combination of FAST Search and SharePoint Search components as well as new development work ndash it is the

same from Foundation to Server

Foundation Search is intended to replace WSS Search Microsoft Search Server and Search Server Express from previous versions of SharePoint

Itrsquos used pervasively throughout the product now in many different ways in different features eDiscovery navigation topic pages Internet facing business sites etc

Search in SharePoint 2013

Single Extensible Platform

FAST Engine

SharePoint Crawler

Best of both

Same Search Platform in both SharePoint and Exchange

Enterprise Search

Search Page Web parts added to a publishing page

Catalogs Cross-site publishing

Library search Executes in place on the library

Site Search _layouts15osssearchresultsaspx Specifies the site and search parameters

Search Centre Basic Search Center - SharePoint Foundation 2013 Enterprise Search Center - SharePoint Server 2013

Content Search Web Part

Similar in concept to the Content Query Web Part

Many advantages

Can go across sites site collections web apps even farms

Leverages the search index -gt very scalable

Query Builder makes it easy to define your results

Use Display Templates to customize the look and feel No more XSLT

Part of the Enterprise CAL

Pre-Configured CSWPs

Popular Items Shows items that have been recently viewed by many users

Recently Changed Items Shows items that have been modified recently This can help site users

track the latest activity on a site or a library

Recommended Items Show content recommendations based on usage patterns for the current

page

All of these can be further configured by editing their properties and changing the search criteria

Search Results Web Part

Similar functionality to the Content Search Web Part

Doesnrsquot allow property mapping in the web part configuration

Mapping is controlled in the Display Template

Part of the Standard CAL

Category Page Item Page

Catalogs

wwwcontosocomproductsAudio-Liware2g

Catalogs

Results

Consistent Displays

Manage content in one place

No need to create

pages

No need to format

Metadata Navigation

Cross-Site Publishing

Reuse content between different sites including site collections and farms

Catalogs can surface lists into publishing sites onto a category page and item pages

Can be surfaced through the Content Search Web Part

No need to create and publish web pages

Create custom friendly URLs

Metadata based navigation base

Cross Site Publishing

Job Posting

Job Posting

Job Posting

Job Posting

Simcoe County District School Board

50000 students

Over 6000 employees

Board office in Barrie

Bordered by the Holland Marsh in the south the Trent-Severn Waterway in the east Grey County in the west and Muskoka in the north

Simcoe County District School Board

119 schools and centres 87 elementary 16 secondary 6 learning centres 10 alternative

Each needs their own web site Being built on SharePoint 2013 Elementary panel first Each has their own unique URL Content authored both at the school and centrally from the board

wwwscdsbonca Pre-existing SharePoint 2010 site Future goal is to rebuild in SharePoint 2013

Business Challenge

100+ public web sites

No standardization on style technology or content

No ability for the board to push content to the school sites

Outdated sites

Not mobile or AODA compliant

Site Features

Fully Adaptivemobile design Robust Search functionality Template makes it fast and efficient to add new school sites News and events can be targeted by the Board to any number of

school sites Target by panel weather zone trustee language Presented in a blended view with the school news and events

Home page rotator links hours content pages all managed by the school staff

SEO-friendly URLs

News

School news entered by school staff

Board news entered in the board site

Rendered using cross-site publishing

High-priority alerts can be flagged to highlight on the site

Bus or school cancellations

Events

Single and multi-day events

School and board managed like news

Adaptive calendar

School Picker

Used to pick which schools to target news and events to

Schools are tagged through the term store

Target by panel weather zone trustee language

Can override and add or remove individual schools

Search

Catalogs

Three main steps

Enabling lists or libraries as catalogs

Creating the catalog connection

Building the page layouts to display the category rollups or item detail pages

Enabling Catalogs

Doesnrsquot have to be a list can be a document Images or Pages library

Experimenting using a Pages library

This gives us draft and published states that lists donrsquot support

Preview and editing is easier

Fairly simple script to do this

Catalog connections are more complex

Create the connection

Fix up the Term Store

Create the Category and Item page layouts and pages

SEO Enhancements

Friendly URLs

Home page redirects

XML sitemaps automatically generated and updated

Custom SEO properties

Usage Analytics

Built for scale from the ground up Detail data rolled up every 15 days amp anonymized Daily events purged every 15 days monthly events after 3 years Lifetime counts always retained

Counts views amp unique itemsday Shows recent (2-weeks) and lifetime count Trims least visited content Pushes aggregate data to reporting database

Drives recommendations capabilities on content Calculations injected into search index as sortable managed properties Deep integration with search engine Can influence search relevance based on content usage

Variations and Multi-Lingual

Export and import content for translation in XLIFF format

Pages

Labels

List items

Navigation

Bing translation service comes with active SharePoint 2013 license

Adaptive Web Design

Adaptive vs Responsive

Adaptive

Fixed breakpoints‒ Desktop gt 980 px

‒ Table portrait gt 768 px

‒ Phone to tablet gt 480 px lt 768 px

‒ Smartphone lt 480 px

Responsive

No fixed breakpoints

Design fluidly adapts to whatever width the browser is

We generally do a hybrid approach with responsive design in the under 768 pixel situation

Design Approaches in SharePoint

Adaptive Design through CSS media queries

Broader standards approach used outside of SharePoint

Keeps a single master page and CSS

Some unnecessary components may still be loaded

Device Channels SharePoint specific approach

Assign different master pages to different device channels

Rules define what devices use which channels

Device Channel Panels can also target content to channels

Hybrid here can also make sense Device channels can be used to remove unnecessary items from the page payload

Our Adaptive Approach

Built using the Twitter Boostrap CSS framework

twittergithubcombootstrap

Provides a responsive design framework for supporting PC Mac tablet and mobile

We enhanced to provide better touch navigation support

Can be leveraged in the master page page layouts and display templates

Incorporated into the SharePoint 2013 Design Master

HTML based master page that can be edited with any tool

SharePoint converts to a master page when uploaded or saved

Additional Open Source Tools and Resources

HTML CSS JavaScript jQuery

httpwwww3schoolscom

httpgetbootstrapcom

httphandlebarsjscom

httpknockoutjscom

httpsangularjsorg

httpmomentjscom

Content Search Web Part

Web part is configured to return search results

Executed as client-side code in the browser

Pair of display templates map the data returned to HTML

Control template for the overall structure

Item template for each item returned

HTML Designer Manager files are compiled to JavaScript

REST Search and Handlebars

Search is accessible through REST calls

httpsiteurl_apisearchquery

Returns results as a JSON array

Handlebars is a templating engine to format that

Conceptually similar to display templates with control and item sections

jQuery glues this all together

Steps to Experiment

F12 to get into Developer Toolbar

Set a breakpoint where the REST URL is determined

Copy the value

Paste into the REST Search test window

Experiment with the query

Adjust the Handlebars template appropriately

Search Setup

Content Sources to define and schedule the crawls

Crawl logs to review success

Search Schema to define the managed properties

Reusable Content

Snippets of HTML that can be reused throughout the site

JavaScript can be intelligent and use the URL to determine its behaviour

Makes it easy for content authors to drop pre-configured dynamic content onto pages

Topic Pages

Shows all items that match a topic

Could be hundreds of virtual pages

Only one template page

Easily customizable and SEO friendly (each topic appears to be its own page)

Content by search web part open search against a query or result source

May be able to surface the topic pages themselves as site search results

Public Health Ontario

httpwwwpublichealthontariocaenBrowseByTopicPagesTopicaspxk=Influenza20InformationByTopic22Influenza22

Ontario Association of Childrens Aid Societies

Application Lifecycle Management

Purpose

How do we build a solid SharePoint development environment for the enterprise

How do a number of developers work together on a SharePoint project

How does code and content move through a dev test and production lifecycle

What is Agile and Continuous Integration and why is it important

Visual Studio and Team Foundation Server

Visual Studio 2010 is the development platform for coding on SharePoint 2010

Team Foundation Server integrates with Visual Studio to provide a repository for code test and other project artifacts

It facilitates teamwork by providing a common place for developers to work together

Provisioning SharePoint Farms

Provisioning SharePoint Farms

Every developer needs their own complete SharePoint farm

Teams need a dev integration farm to bring their work together on

A full architecture needs QA and production farms as well

Envision IT Virtualization Architecture

Developer VM Template

SharePoint Server 2010 Enterprise

SP1 and August CU

Visual Studio 2010 Premium SP1

Office 2010 Professional Plus SP1

SharePoint Designer 2010 SP1

Fiddler

SQL Server 2008 R2 SP1

Creating a new Developer VM

Open System Centre Virtual Machine Manager

Create Virtual Machine

Choose the Developer VM template

Set the virtual machine name and options

Create and start the VM

Creating a new Developer VM - Step 2

Developer RDPs to their new VM Complete the SQL Server installation

Create the default instance Set the service account(s) Set the authentication mode and server administrators

Update the AutoSPInstallerInputxml file Set the machine name for the default sites and database server Set the service account passwords

Run the AutoSPInstallerLaunch batch file Do a Health check review

Creating a new Developer VM - Step 3

Start Visual Studio

Connect to the Team Foundation Server

Setup your workspaces

Use a standard naming convention across your team

CDevelopmentTFSCollection

Other Environments

Dev Integration QA and Production can all be built using AutoSPInstall

Donrsquot need or want the Visual Studio or Office tools on these servers

We have a base template we use for dev integration servers

QA should match the Prod architecture as closely as possible

High availability with load balancing clustered SQL app servers DMZ hardening Internet publishing

Agile Development

Agile with Team Foundation Server

Creating Your TFS Project

Open Visual Studio

Make sure you are connected to the right Team Project Collection

In Team Explorer right-click the top collection and create a new Team Project

Use the Scrum 10 template

Go into the Areas and Iterations Delete the extraneous releases and sprints

Create a product backlog iteration

Start adding your stories and tasks

Continuous Integration

Continuous Integration

Automated Testing

SharePoint Site Elements

Site structure Site columns content types subsites lists libraries

Branding elements Master pages layouts CSS XSLT supporting images

Custom web parts Page and site content Web part instances Search Workflows Business Connectivity Services Managed Metadata

SharePoint Site Elements ndash Part 2

Access Excel Word Visio

PerformancePoint

Document conversions

Timer jobs

Secure Store Service

User profiles

Site Structure

bull Site columns

bull Define the fields that are used by content types

bull Content types

bull Defines collections of site columns for different types of content

bull Subsites

bull The hierarchy of sites that make up the site collection

bull Lists and Libraries

bull The lists and libraries for each subsite

Site Structure ndash Part 2

Site columns and content types can be programmatically or manually created If they are going to be used in multiple site collections they should be

programmatically created

If a single site collection they can be created manually in a master site collection

GUIDs cannot be manually set and code may need them to be consistent

You can create them manually in SharePoint save the site as a template and import them into Visual Studio to create a proper WSP package

Site Structure ndash Part 3

Site structure can also be done either programmatically or manually

Many sites are complex and it is error prone to create manually

We use our own SiteModelBuilder tool to create the site structure

Site Structure ndash Part 4

For all site structure elements changes can also be manual or programmatic It is useful to be able to delete the whole site collection and recreate it

programmatically As soon as content starts being authored in SharePoint it becomes difficult

or impossible to do that

After content authoring has started Site column and content type changes need to be programmed explicitly

(you canrsquot just drop the content type and recreate it) Site structure changes are usually done manually at this point Changes need to be backed up and restored

Change Management

Page and Site Content

Page and site content is entered directly into SharePoint by the content authors Web pages images PDFs list content etc This should be done in the master site separate from where dev integration is

happening Care needs to be taken with this site once authors start working Make sure it is part of your production backup plan

Periodically back it up and restore it to the dev integration and developer VMs

Alternatively script the export and import Ultimately it will be backed up and restored to the QA and production

farms

Change Management

Change Management

Change Management

Change Management

Web part instances

Web parts ultimately get placed on pages

The configuration of the web parts can often get quite complex

You may want to disable editing of web parts for general content authors

They end up in a grey zone between code and content

Web part instances ndash Part 2

We created our own internal tool to export and import web parts

Each web partrsquos configuration can be exported into a webpartfile

We scripted the extraction from the dev integration

webpart files are treated like code and checked into TFS for version control

Script then applies the new webpart files to the target environment

Workflows

Workflows can be built using SharePoint Designer Visual Studio or third-party tools (Nintex or K2 primarily)

Visual Studio workflow projects are automatically packaged as WSP solution files Simply deploy the WSP file to the other environments

SharePoint Designer workflows need to be deployed using SharePoint Designer This means you need SPD access to production which is not always possible

You can load the SPD workflow into Visual Studio to package it but you lose the ability to edit it in SPD

If you use third-party tools yoursquoll need to define the process for that as well

Business Connectivity Services

BCS can be built using either SharePoint Designer or Visual Studio Visual Studio BCS projects are automatically packaged as WSP

solution files Simply deploy the WSP file to the other environments You can also export the BDC metadata model in the BDC service

application

SharePoint Designer doesnrsquot create a WSP and it doesnrsquot make a complete BDC metadata model You need to export and import using SharePoint Designer

In both cases you still need to deal with connection and configuration information

Future Directions

Visual Studio Lab Management

Integrates the management of HyperV environments in with Visual Studio and Team Foundation Server

Can automate the provisioning of lab environments for automated testing

Test failures can snapshot entire environments to make reproduction of errors much easier

Summary

Yoursquore going to have lots of SharePoint environments ndash figure out how to build them quickly and repeatable

Code and content often move in opposite directions through dev QA and Prod PowerShell script and automate to keep this simple

Agile is a great way to run projects

Continuous integration with automated testing is key to its success

There are lots of parts of SharePoint that you donrsquot code through Visual Studio Figure out how you move those through your environment

Other Topics

Site Design

Information architecture

Wireframes

Creative designs ndash Mobile first

Catalogs deep dive

Site build PowerShell scripts

Team Foundation Server and Application Lifecycle Management

Starting a new project

Managing content authoring

Site Improve tool

SEO Optimizations

Analytics options

Retaining Page Ranks with permanent redirects (301)

Azure SharePoint Hosting

Q amp A

Session Evaluations

Go to Evaluations on the home page of wwwcollabconorg

It is important to get your feedback

Please fill out evaluations for all the sessions you attend

Following the conference a random drawing from all completed evaluations will be selected

The winner will receive a $250 Future Shop gift card valid online or in store

Page 39: Web Content Management - CollabCon 2015 - Web... · Performances Complete Works ... Friendly URL An SEO friendly URL defined in the term store for a page, rather than ... What’s

Publishing Site Page Rendering

FileName

Welcomeaspx

PageLayout

PageLayoutaspx

Title

Welcome To News

Body

Lorem ipsum dolor sit

Image

ImagesChairjpg

1 Welcomeaspx page is

requested

2 Page layout associated with

page is retrieved

3 Master page associated with site

is retrieved

4 Controls in page layout render

content from pagersquos fields into the page

MasterPagemaster

PageLayoutaspxTitle

BodyImage

Date

ByLine

Field Control

FieldControl

Field ControlField ControlField Control

Field Control

httpfoocombarpageswelcomeaspx

SharePoint Glossary

Term Definition

Cross-Site Publishing Publishing from an authoring site collection to one or more publishing site collections

Catalog A list that has been published as a catalog

Category Page A page that displays a rollup of catalog items

Catalog Item Page A page that displays a single item from a catalog

Display Template Used to format the results on search pages in content search web parts and on category pages

Whatrsquos New in Web Content

Management

Easier Page Authoring With Cut and Paste

Drag and Drop Files

Drag and drop files from Windows Explorer into the browser or the other way

Doesnrsquot support folders or document sets

Open in Windows Explorer still works best for this

Requires IE10 or current versions of Chrome Safari or Firefox

IE8 and 9 supported with Office 2013 installed

Image Renditions

Display uploaded images in predefined sizes widths and crops

Multiple renditions stored in document sets

Content author can create renditions (including crops) in the browser

Design Manager

New way to build master

pages and layouts

SharePoint Designer no

longer required

Edit and preview in any HTML

editor

Automatically creates the associated

master page and aspx

layouts

Package into a Design

Package WSP for

deployment

Snippet Gallery

Select components

such as search box or

navigation control

Configure its properties

Paste the snippet into your HTML

master page or layout

Changes synched to

actual master pages and layouts to convert to SharePoint

components

Can be used by any web design

tool

Device Channels

Map channels to mobile devices or browsers

Alternate master pages

can be assigned

Page layouts can include or

exclude content based

on channel

Display Templates

Used to customize the

presentation of search results

No more XSLT

Three templates

bull Control ndash Overall structure of search results

bull Group ndash Show groups of results

bull Item ndash How each result is presented

Navigation and Friendly URLs

Site navigation driven by managed metadata

Term store used for navigation and SEO-friendly URLs

Connect site navigation to business concepts rather than site structure

Server side control outputs HTML for top nav left nav and breadcrumb

Plan is to convert to client-side to support Office 365

Term Store Setup

Two groups used to separate metadata from navigation

Metadata group setup globally

Static GUIDs consistent through all environments

Navigation group setup at the site collection level

Allows multiple copies for multiple sites on the farm

Search

Search is new and different from all previous versions of SharePoint

The platform has been consolidated Built on a combination of FAST Search and SharePoint Search components as well as new development work ndash it is the

same from Foundation to Server

Foundation Search is intended to replace WSS Search Microsoft Search Server and Search Server Express from previous versions of SharePoint

Itrsquos used pervasively throughout the product now in many different ways in different features eDiscovery navigation topic pages Internet facing business sites etc

Search in SharePoint 2013

Single Extensible Platform

FAST Engine

SharePoint Crawler

Best of both

Same Search Platform in both SharePoint and Exchange

Enterprise Search

Search Page Web parts added to a publishing page

Catalogs Cross-site publishing

Library search Executes in place on the library

Site Search _layouts15osssearchresultsaspx Specifies the site and search parameters

Search Centre Basic Search Center - SharePoint Foundation 2013 Enterprise Search Center - SharePoint Server 2013

Content Search Web Part

Similar in concept to the Content Query Web Part

Many advantages

Can go across sites site collections web apps even farms

Leverages the search index -gt very scalable

Query Builder makes it easy to define your results

Use Display Templates to customize the look and feel No more XSLT

Part of the Enterprise CAL

Pre-Configured CSWPs

Popular Items Shows items that have been recently viewed by many users

Recently Changed Items Shows items that have been modified recently This can help site users

track the latest activity on a site or a library

Recommended Items Show content recommendations based on usage patterns for the current

page

All of these can be further configured by editing their properties and changing the search criteria

Search Results Web Part

Similar functionality to the Content Search Web Part

Doesnrsquot allow property mapping in the web part configuration

Mapping is controlled in the Display Template

Part of the Standard CAL

Category Page Item Page

Catalogs

wwwcontosocomproductsAudio-Liware2g

Catalogs

Results

Consistent Displays

Manage content in one place

No need to create

pages

No need to format

Metadata Navigation

Cross-Site Publishing

Reuse content between different sites including site collections and farms

Catalogs can surface lists into publishing sites onto a category page and item pages

Can be surfaced through the Content Search Web Part

No need to create and publish web pages

Create custom friendly URLs

Metadata based navigation base

Cross Site Publishing

Job Posting

Job Posting

Job Posting

Job Posting

Simcoe County District School Board

50000 students

Over 6000 employees

Board office in Barrie

Bordered by the Holland Marsh in the south the Trent-Severn Waterway in the east Grey County in the west and Muskoka in the north

Simcoe County District School Board

119 schools and centres 87 elementary 16 secondary 6 learning centres 10 alternative

Each needs their own web site Being built on SharePoint 2013 Elementary panel first Each has their own unique URL Content authored both at the school and centrally from the board

wwwscdsbonca Pre-existing SharePoint 2010 site Future goal is to rebuild in SharePoint 2013

Business Challenge

100+ public web sites

No standardization on style technology or content

No ability for the board to push content to the school sites

Outdated sites

Not mobile or AODA compliant

Site Features

Fully Adaptivemobile design Robust Search functionality Template makes it fast and efficient to add new school sites News and events can be targeted by the Board to any number of

school sites Target by panel weather zone trustee language Presented in a blended view with the school news and events

Home page rotator links hours content pages all managed by the school staff

SEO-friendly URLs

News

School news entered by school staff

Board news entered in the board site

Rendered using cross-site publishing

High-priority alerts can be flagged to highlight on the site

Bus or school cancellations

Events

Single and multi-day events

School and board managed like news

Adaptive calendar

School Picker

Used to pick which schools to target news and events to

Schools are tagged through the term store

Target by panel weather zone trustee language

Can override and add or remove individual schools

Search

Catalogs

Three main steps

Enabling lists or libraries as catalogs

Creating the catalog connection

Building the page layouts to display the category rollups or item detail pages

Enabling Catalogs

Doesnrsquot have to be a list can be a document Images or Pages library

Experimenting using a Pages library

This gives us draft and published states that lists donrsquot support

Preview and editing is easier

Fairly simple script to do this

Catalog connections are more complex

Create the connection

Fix up the Term Store

Create the Category and Item page layouts and pages

SEO Enhancements

Friendly URLs

Home page redirects

XML sitemaps automatically generated and updated

Custom SEO properties

Usage Analytics

Built for scale from the ground up Detail data rolled up every 15 days amp anonymized Daily events purged every 15 days monthly events after 3 years Lifetime counts always retained

Counts views amp unique itemsday Shows recent (2-weeks) and lifetime count Trims least visited content Pushes aggregate data to reporting database

Drives recommendations capabilities on content Calculations injected into search index as sortable managed properties Deep integration with search engine Can influence search relevance based on content usage

Variations and Multi-Lingual

Export and import content for translation in XLIFF format

Pages

Labels

List items

Navigation

Bing translation service comes with active SharePoint 2013 license

Adaptive Web Design

Adaptive vs Responsive

Adaptive

Fixed breakpoints‒ Desktop gt 980 px

‒ Table portrait gt 768 px

‒ Phone to tablet gt 480 px lt 768 px

‒ Smartphone lt 480 px

Responsive

No fixed breakpoints

Design fluidly adapts to whatever width the browser is

We generally do a hybrid approach with responsive design in the under 768 pixel situation

Design Approaches in SharePoint

Adaptive Design through CSS media queries

Broader standards approach used outside of SharePoint

Keeps a single master page and CSS

Some unnecessary components may still be loaded

Device Channels SharePoint specific approach

Assign different master pages to different device channels

Rules define what devices use which channels

Device Channel Panels can also target content to channels

Hybrid here can also make sense Device channels can be used to remove unnecessary items from the page payload

Our Adaptive Approach

Built using the Twitter Boostrap CSS framework

twittergithubcombootstrap

Provides a responsive design framework for supporting PC Mac tablet and mobile

We enhanced to provide better touch navigation support

Can be leveraged in the master page page layouts and display templates

Incorporated into the SharePoint 2013 Design Master

HTML based master page that can be edited with any tool

SharePoint converts to a master page when uploaded or saved

Additional Open Source Tools and Resources

HTML CSS JavaScript jQuery

httpwwww3schoolscom

httpgetbootstrapcom

httphandlebarsjscom

httpknockoutjscom

httpsangularjsorg

httpmomentjscom

Content Search Web Part

Web part is configured to return search results

Executed as client-side code in the browser

Pair of display templates map the data returned to HTML

Control template for the overall structure

Item template for each item returned

HTML Designer Manager files are compiled to JavaScript

REST Search and Handlebars

Search is accessible through REST calls

httpsiteurl_apisearchquery

Returns results as a JSON array

Handlebars is a templating engine to format that

Conceptually similar to display templates with control and item sections

jQuery glues this all together

Steps to Experiment

F12 to get into Developer Toolbar

Set a breakpoint where the REST URL is determined

Copy the value

Paste into the REST Search test window

Experiment with the query

Adjust the Handlebars template appropriately

Search Setup

Content Sources to define and schedule the crawls

Crawl logs to review success

Search Schema to define the managed properties

Reusable Content

Snippets of HTML that can be reused throughout the site

JavaScript can be intelligent and use the URL to determine its behaviour

Makes it easy for content authors to drop pre-configured dynamic content onto pages

Topic Pages

Shows all items that match a topic

Could be hundreds of virtual pages

Only one template page

Easily customizable and SEO friendly (each topic appears to be its own page)

Content by search web part open search against a query or result source

May be able to surface the topic pages themselves as site search results

Public Health Ontario

httpwwwpublichealthontariocaenBrowseByTopicPagesTopicaspxk=Influenza20InformationByTopic22Influenza22

Ontario Association of Childrens Aid Societies

Application Lifecycle Management

Purpose

How do we build a solid SharePoint development environment for the enterprise

How do a number of developers work together on a SharePoint project

How does code and content move through a dev test and production lifecycle

What is Agile and Continuous Integration and why is it important

Visual Studio and Team Foundation Server

Visual Studio 2010 is the development platform for coding on SharePoint 2010

Team Foundation Server integrates with Visual Studio to provide a repository for code test and other project artifacts

It facilitates teamwork by providing a common place for developers to work together

Provisioning SharePoint Farms

Provisioning SharePoint Farms

Every developer needs their own complete SharePoint farm

Teams need a dev integration farm to bring their work together on

A full architecture needs QA and production farms as well

Envision IT Virtualization Architecture

Developer VM Template

SharePoint Server 2010 Enterprise

SP1 and August CU

Visual Studio 2010 Premium SP1

Office 2010 Professional Plus SP1

SharePoint Designer 2010 SP1

Fiddler

SQL Server 2008 R2 SP1

Creating a new Developer VM

Open System Centre Virtual Machine Manager

Create Virtual Machine

Choose the Developer VM template

Set the virtual machine name and options

Create and start the VM

Creating a new Developer VM - Step 2

Developer RDPs to their new VM Complete the SQL Server installation

Create the default instance Set the service account(s) Set the authentication mode and server administrators

Update the AutoSPInstallerInputxml file Set the machine name for the default sites and database server Set the service account passwords

Run the AutoSPInstallerLaunch batch file Do a Health check review

Creating a new Developer VM - Step 3

Start Visual Studio

Connect to the Team Foundation Server

Setup your workspaces

Use a standard naming convention across your team

CDevelopmentTFSCollection

Other Environments

Dev Integration QA and Production can all be built using AutoSPInstall

Donrsquot need or want the Visual Studio or Office tools on these servers

We have a base template we use for dev integration servers

QA should match the Prod architecture as closely as possible

High availability with load balancing clustered SQL app servers DMZ hardening Internet publishing

Agile Development

Agile with Team Foundation Server

Creating Your TFS Project

Open Visual Studio

Make sure you are connected to the right Team Project Collection

In Team Explorer right-click the top collection and create a new Team Project

Use the Scrum 10 template

Go into the Areas and Iterations Delete the extraneous releases and sprints

Create a product backlog iteration

Start adding your stories and tasks

Continuous Integration

Continuous Integration

Automated Testing

SharePoint Site Elements

Site structure Site columns content types subsites lists libraries

Branding elements Master pages layouts CSS XSLT supporting images

Custom web parts Page and site content Web part instances Search Workflows Business Connectivity Services Managed Metadata

SharePoint Site Elements ndash Part 2

Access Excel Word Visio

PerformancePoint

Document conversions

Timer jobs

Secure Store Service

User profiles

Site Structure

bull Site columns

bull Define the fields that are used by content types

bull Content types

bull Defines collections of site columns for different types of content

bull Subsites

bull The hierarchy of sites that make up the site collection

bull Lists and Libraries

bull The lists and libraries for each subsite

Site Structure ndash Part 2

Site columns and content types can be programmatically or manually created If they are going to be used in multiple site collections they should be

programmatically created

If a single site collection they can be created manually in a master site collection

GUIDs cannot be manually set and code may need them to be consistent

You can create them manually in SharePoint save the site as a template and import them into Visual Studio to create a proper WSP package

Site Structure ndash Part 3

Site structure can also be done either programmatically or manually

Many sites are complex and it is error prone to create manually

We use our own SiteModelBuilder tool to create the site structure

Site Structure ndash Part 4

For all site structure elements changes can also be manual or programmatic It is useful to be able to delete the whole site collection and recreate it

programmatically As soon as content starts being authored in SharePoint it becomes difficult

or impossible to do that

After content authoring has started Site column and content type changes need to be programmed explicitly

(you canrsquot just drop the content type and recreate it) Site structure changes are usually done manually at this point Changes need to be backed up and restored

Change Management

Page and Site Content

Page and site content is entered directly into SharePoint by the content authors Web pages images PDFs list content etc This should be done in the master site separate from where dev integration is

happening Care needs to be taken with this site once authors start working Make sure it is part of your production backup plan

Periodically back it up and restore it to the dev integration and developer VMs

Alternatively script the export and import Ultimately it will be backed up and restored to the QA and production

farms

Change Management

Change Management

Change Management

Change Management

Web part instances

Web parts ultimately get placed on pages

The configuration of the web parts can often get quite complex

You may want to disable editing of web parts for general content authors

They end up in a grey zone between code and content

Web part instances ndash Part 2

We created our own internal tool to export and import web parts

Each web partrsquos configuration can be exported into a webpartfile

We scripted the extraction from the dev integration

webpart files are treated like code and checked into TFS for version control

Script then applies the new webpart files to the target environment

Workflows

Workflows can be built using SharePoint Designer Visual Studio or third-party tools (Nintex or K2 primarily)

Visual Studio workflow projects are automatically packaged as WSP solution files Simply deploy the WSP file to the other environments

SharePoint Designer workflows need to be deployed using SharePoint Designer This means you need SPD access to production which is not always possible

You can load the SPD workflow into Visual Studio to package it but you lose the ability to edit it in SPD

If you use third-party tools yoursquoll need to define the process for that as well

Business Connectivity Services

BCS can be built using either SharePoint Designer or Visual Studio Visual Studio BCS projects are automatically packaged as WSP

solution files Simply deploy the WSP file to the other environments You can also export the BDC metadata model in the BDC service

application

SharePoint Designer doesnrsquot create a WSP and it doesnrsquot make a complete BDC metadata model You need to export and import using SharePoint Designer

In both cases you still need to deal with connection and configuration information

Future Directions

Visual Studio Lab Management

Integrates the management of HyperV environments in with Visual Studio and Team Foundation Server

Can automate the provisioning of lab environments for automated testing

Test failures can snapshot entire environments to make reproduction of errors much easier

Summary

Yoursquore going to have lots of SharePoint environments ndash figure out how to build them quickly and repeatable

Code and content often move in opposite directions through dev QA and Prod PowerShell script and automate to keep this simple

Agile is a great way to run projects

Continuous integration with automated testing is key to its success

There are lots of parts of SharePoint that you donrsquot code through Visual Studio Figure out how you move those through your environment

Other Topics

Site Design

Information architecture

Wireframes

Creative designs ndash Mobile first

Catalogs deep dive

Site build PowerShell scripts

Team Foundation Server and Application Lifecycle Management

Starting a new project

Managing content authoring

Site Improve tool

SEO Optimizations

Analytics options

Retaining Page Ranks with permanent redirects (301)

Azure SharePoint Hosting

Q amp A

Session Evaluations

Go to Evaluations on the home page of wwwcollabconorg

It is important to get your feedback

Please fill out evaluations for all the sessions you attend

Following the conference a random drawing from all completed evaluations will be selected

The winner will receive a $250 Future Shop gift card valid online or in store

Page 40: Web Content Management - CollabCon 2015 - Web... · Performances Complete Works ... Friendly URL An SEO friendly URL defined in the term store for a page, rather than ... What’s

SharePoint Glossary

Term Definition

Cross-Site Publishing Publishing from an authoring site collection to one or more publishing site collections

Catalog A list that has been published as a catalog

Category Page A page that displays a rollup of catalog items

Catalog Item Page A page that displays a single item from a catalog

Display Template Used to format the results on search pages in content search web parts and on category pages

Whatrsquos New in Web Content

Management

Easier Page Authoring With Cut and Paste

Drag and Drop Files

Drag and drop files from Windows Explorer into the browser or the other way

Doesnrsquot support folders or document sets

Open in Windows Explorer still works best for this

Requires IE10 or current versions of Chrome Safari or Firefox

IE8 and 9 supported with Office 2013 installed

Image Renditions

Display uploaded images in predefined sizes widths and crops

Multiple renditions stored in document sets

Content author can create renditions (including crops) in the browser

Design Manager

New way to build master

pages and layouts

SharePoint Designer no

longer required

Edit and preview in any HTML

editor

Automatically creates the associated

master page and aspx

layouts

Package into a Design

Package WSP for

deployment

Snippet Gallery

Select components

such as search box or

navigation control

Configure its properties

Paste the snippet into your HTML

master page or layout

Changes synched to

actual master pages and layouts to convert to SharePoint

components

Can be used by any web design

tool

Device Channels

Map channels to mobile devices or browsers

Alternate master pages

can be assigned

Page layouts can include or

exclude content based

on channel

Display Templates

Used to customize the

presentation of search results

No more XSLT

Three templates

bull Control ndash Overall structure of search results

bull Group ndash Show groups of results

bull Item ndash How each result is presented

Navigation and Friendly URLs

Site navigation driven by managed metadata

Term store used for navigation and SEO-friendly URLs

Connect site navigation to business concepts rather than site structure

Server side control outputs HTML for top nav left nav and breadcrumb

Plan is to convert to client-side to support Office 365

Term Store Setup

Two groups used to separate metadata from navigation

Metadata group setup globally

Static GUIDs consistent through all environments

Navigation group setup at the site collection level

Allows multiple copies for multiple sites on the farm

Search

Search is new and different from all previous versions of SharePoint

The platform has been consolidated Built on a combination of FAST Search and SharePoint Search components as well as new development work ndash it is the

same from Foundation to Server

Foundation Search is intended to replace WSS Search Microsoft Search Server and Search Server Express from previous versions of SharePoint

Itrsquos used pervasively throughout the product now in many different ways in different features eDiscovery navigation topic pages Internet facing business sites etc

Search in SharePoint 2013

Single Extensible Platform

FAST Engine

SharePoint Crawler

Best of both

Same Search Platform in both SharePoint and Exchange

Enterprise Search

Search Page Web parts added to a publishing page

Catalogs Cross-site publishing

Library search Executes in place on the library

Site Search _layouts15osssearchresultsaspx Specifies the site and search parameters

Search Centre Basic Search Center - SharePoint Foundation 2013 Enterprise Search Center - SharePoint Server 2013

Content Search Web Part

Similar in concept to the Content Query Web Part

Many advantages

Can go across sites site collections web apps even farms

Leverages the search index -gt very scalable

Query Builder makes it easy to define your results

Use Display Templates to customize the look and feel No more XSLT

Part of the Enterprise CAL

Pre-Configured CSWPs

Popular Items Shows items that have been recently viewed by many users

Recently Changed Items Shows items that have been modified recently This can help site users

track the latest activity on a site or a library

Recommended Items Show content recommendations based on usage patterns for the current

page

All of these can be further configured by editing their properties and changing the search criteria

Search Results Web Part

Similar functionality to the Content Search Web Part

Doesnrsquot allow property mapping in the web part configuration

Mapping is controlled in the Display Template

Part of the Standard CAL

Category Page Item Page

Catalogs

wwwcontosocomproductsAudio-Liware2g

Catalogs

Results

Consistent Displays

Manage content in one place

No need to create

pages

No need to format

Metadata Navigation

Cross-Site Publishing

Reuse content between different sites including site collections and farms

Catalogs can surface lists into publishing sites onto a category page and item pages

Can be surfaced through the Content Search Web Part

No need to create and publish web pages

Create custom friendly URLs

Metadata based navigation base

Cross Site Publishing

Job Posting

Job Posting

Job Posting

Job Posting

Simcoe County District School Board

50000 students

Over 6000 employees

Board office in Barrie

Bordered by the Holland Marsh in the south the Trent-Severn Waterway in the east Grey County in the west and Muskoka in the north

Simcoe County District School Board

119 schools and centres 87 elementary 16 secondary 6 learning centres 10 alternative

Each needs their own web site Being built on SharePoint 2013 Elementary panel first Each has their own unique URL Content authored both at the school and centrally from the board

wwwscdsbonca Pre-existing SharePoint 2010 site Future goal is to rebuild in SharePoint 2013

Business Challenge

100+ public web sites

No standardization on style technology or content

No ability for the board to push content to the school sites

Outdated sites

Not mobile or AODA compliant

Site Features

Fully Adaptivemobile design Robust Search functionality Template makes it fast and efficient to add new school sites News and events can be targeted by the Board to any number of

school sites Target by panel weather zone trustee language Presented in a blended view with the school news and events

Home page rotator links hours content pages all managed by the school staff

SEO-friendly URLs

News

School news entered by school staff

Board news entered in the board site

Rendered using cross-site publishing

High-priority alerts can be flagged to highlight on the site

Bus or school cancellations

Events

Single and multi-day events

School and board managed like news

Adaptive calendar

School Picker

Used to pick which schools to target news and events to

Schools are tagged through the term store

Target by panel weather zone trustee language

Can override and add or remove individual schools

Search

Catalogs

Three main steps

Enabling lists or libraries as catalogs

Creating the catalog connection

Building the page layouts to display the category rollups or item detail pages

Enabling Catalogs

Doesnrsquot have to be a list can be a document Images or Pages library

Experimenting using a Pages library

This gives us draft and published states that lists donrsquot support

Preview and editing is easier

Fairly simple script to do this

Catalog connections are more complex

Create the connection

Fix up the Term Store

Create the Category and Item page layouts and pages

SEO Enhancements

Friendly URLs

Home page redirects

XML sitemaps automatically generated and updated

Custom SEO properties

Usage Analytics

Built for scale from the ground up Detail data rolled up every 15 days amp anonymized Daily events purged every 15 days monthly events after 3 years Lifetime counts always retained

Counts views amp unique itemsday Shows recent (2-weeks) and lifetime count Trims least visited content Pushes aggregate data to reporting database

Drives recommendations capabilities on content Calculations injected into search index as sortable managed properties Deep integration with search engine Can influence search relevance based on content usage

Variations and Multi-Lingual

Export and import content for translation in XLIFF format

Pages

Labels

List items

Navigation

Bing translation service comes with active SharePoint 2013 license

Adaptive Web Design

Adaptive vs Responsive

Adaptive

Fixed breakpoints‒ Desktop gt 980 px

‒ Table portrait gt 768 px

‒ Phone to tablet gt 480 px lt 768 px

‒ Smartphone lt 480 px

Responsive

No fixed breakpoints

Design fluidly adapts to whatever width the browser is

We generally do a hybrid approach with responsive design in the under 768 pixel situation

Design Approaches in SharePoint

Adaptive Design through CSS media queries

Broader standards approach used outside of SharePoint

Keeps a single master page and CSS

Some unnecessary components may still be loaded

Device Channels SharePoint specific approach

Assign different master pages to different device channels

Rules define what devices use which channels

Device Channel Panels can also target content to channels

Hybrid here can also make sense Device channels can be used to remove unnecessary items from the page payload

Our Adaptive Approach

Built using the Twitter Boostrap CSS framework

twittergithubcombootstrap

Provides a responsive design framework for supporting PC Mac tablet and mobile

We enhanced to provide better touch navigation support

Can be leveraged in the master page page layouts and display templates

Incorporated into the SharePoint 2013 Design Master

HTML based master page that can be edited with any tool

SharePoint converts to a master page when uploaded or saved

Additional Open Source Tools and Resources

HTML CSS JavaScript jQuery

httpwwww3schoolscom

httpgetbootstrapcom

httphandlebarsjscom

httpknockoutjscom

httpsangularjsorg

httpmomentjscom

Content Search Web Part

Web part is configured to return search results

Executed as client-side code in the browser

Pair of display templates map the data returned to HTML

Control template for the overall structure

Item template for each item returned

HTML Designer Manager files are compiled to JavaScript

REST Search and Handlebars

Search is accessible through REST calls

httpsiteurl_apisearchquery

Returns results as a JSON array

Handlebars is a templating engine to format that

Conceptually similar to display templates with control and item sections

jQuery glues this all together

Steps to Experiment

F12 to get into Developer Toolbar

Set a breakpoint where the REST URL is determined

Copy the value

Paste into the REST Search test window

Experiment with the query

Adjust the Handlebars template appropriately

Search Setup

Content Sources to define and schedule the crawls

Crawl logs to review success

Search Schema to define the managed properties

Reusable Content

Snippets of HTML that can be reused throughout the site

JavaScript can be intelligent and use the URL to determine its behaviour

Makes it easy for content authors to drop pre-configured dynamic content onto pages

Topic Pages

Shows all items that match a topic

Could be hundreds of virtual pages

Only one template page

Easily customizable and SEO friendly (each topic appears to be its own page)

Content by search web part open search against a query or result source

May be able to surface the topic pages themselves as site search results

Public Health Ontario

httpwwwpublichealthontariocaenBrowseByTopicPagesTopicaspxk=Influenza20InformationByTopic22Influenza22

Ontario Association of Childrens Aid Societies

Application Lifecycle Management

Purpose

How do we build a solid SharePoint development environment for the enterprise

How do a number of developers work together on a SharePoint project

How does code and content move through a dev test and production lifecycle

What is Agile and Continuous Integration and why is it important

Visual Studio and Team Foundation Server

Visual Studio 2010 is the development platform for coding on SharePoint 2010

Team Foundation Server integrates with Visual Studio to provide a repository for code test and other project artifacts

It facilitates teamwork by providing a common place for developers to work together

Provisioning SharePoint Farms

Provisioning SharePoint Farms

Every developer needs their own complete SharePoint farm

Teams need a dev integration farm to bring their work together on

A full architecture needs QA and production farms as well

Envision IT Virtualization Architecture

Developer VM Template

SharePoint Server 2010 Enterprise

SP1 and August CU

Visual Studio 2010 Premium SP1

Office 2010 Professional Plus SP1

SharePoint Designer 2010 SP1

Fiddler

SQL Server 2008 R2 SP1

Creating a new Developer VM

Open System Centre Virtual Machine Manager

Create Virtual Machine

Choose the Developer VM template

Set the virtual machine name and options

Create and start the VM

Creating a new Developer VM - Step 2

Developer RDPs to their new VM Complete the SQL Server installation

Create the default instance Set the service account(s) Set the authentication mode and server administrators

Update the AutoSPInstallerInputxml file Set the machine name for the default sites and database server Set the service account passwords

Run the AutoSPInstallerLaunch batch file Do a Health check review

Creating a new Developer VM - Step 3

Start Visual Studio

Connect to the Team Foundation Server

Setup your workspaces

Use a standard naming convention across your team

CDevelopmentTFSCollection

Other Environments

Dev Integration QA and Production can all be built using AutoSPInstall

Donrsquot need or want the Visual Studio or Office tools on these servers

We have a base template we use for dev integration servers

QA should match the Prod architecture as closely as possible

High availability with load balancing clustered SQL app servers DMZ hardening Internet publishing

Agile Development

Agile with Team Foundation Server

Creating Your TFS Project

Open Visual Studio

Make sure you are connected to the right Team Project Collection

In Team Explorer right-click the top collection and create a new Team Project

Use the Scrum 10 template

Go into the Areas and Iterations Delete the extraneous releases and sprints

Create a product backlog iteration

Start adding your stories and tasks

Continuous Integration

Continuous Integration

Automated Testing

SharePoint Site Elements

Site structure Site columns content types subsites lists libraries

Branding elements Master pages layouts CSS XSLT supporting images

Custom web parts Page and site content Web part instances Search Workflows Business Connectivity Services Managed Metadata

SharePoint Site Elements ndash Part 2

Access Excel Word Visio

PerformancePoint

Document conversions

Timer jobs

Secure Store Service

User profiles

Site Structure

bull Site columns

bull Define the fields that are used by content types

bull Content types

bull Defines collections of site columns for different types of content

bull Subsites

bull The hierarchy of sites that make up the site collection

bull Lists and Libraries

bull The lists and libraries for each subsite

Site Structure ndash Part 2

Site columns and content types can be programmatically or manually created If they are going to be used in multiple site collections they should be

programmatically created

If a single site collection they can be created manually in a master site collection

GUIDs cannot be manually set and code may need them to be consistent

You can create them manually in SharePoint save the site as a template and import them into Visual Studio to create a proper WSP package

Site Structure ndash Part 3

Site structure can also be done either programmatically or manually

Many sites are complex and it is error prone to create manually

We use our own SiteModelBuilder tool to create the site structure

Site Structure ndash Part 4

For all site structure elements changes can also be manual or programmatic It is useful to be able to delete the whole site collection and recreate it

programmatically As soon as content starts being authored in SharePoint it becomes difficult

or impossible to do that

After content authoring has started Site column and content type changes need to be programmed explicitly

(you canrsquot just drop the content type and recreate it) Site structure changes are usually done manually at this point Changes need to be backed up and restored

Change Management

Page and Site Content

Page and site content is entered directly into SharePoint by the content authors Web pages images PDFs list content etc This should be done in the master site separate from where dev integration is

happening Care needs to be taken with this site once authors start working Make sure it is part of your production backup plan

Periodically back it up and restore it to the dev integration and developer VMs

Alternatively script the export and import Ultimately it will be backed up and restored to the QA and production

farms

Change Management

Change Management

Change Management

Change Management

Web part instances

Web parts ultimately get placed on pages

The configuration of the web parts can often get quite complex

You may want to disable editing of web parts for general content authors

They end up in a grey zone between code and content

Web part instances ndash Part 2

We created our own internal tool to export and import web parts

Each web partrsquos configuration can be exported into a webpartfile

We scripted the extraction from the dev integration

webpart files are treated like code and checked into TFS for version control

Script then applies the new webpart files to the target environment

Workflows

Workflows can be built using SharePoint Designer Visual Studio or third-party tools (Nintex or K2 primarily)

Visual Studio workflow projects are automatically packaged as WSP solution files Simply deploy the WSP file to the other environments

SharePoint Designer workflows need to be deployed using SharePoint Designer This means you need SPD access to production which is not always possible

You can load the SPD workflow into Visual Studio to package it but you lose the ability to edit it in SPD

If you use third-party tools yoursquoll need to define the process for that as well

Business Connectivity Services

BCS can be built using either SharePoint Designer or Visual Studio Visual Studio BCS projects are automatically packaged as WSP

solution files Simply deploy the WSP file to the other environments You can also export the BDC metadata model in the BDC service

application

SharePoint Designer doesnrsquot create a WSP and it doesnrsquot make a complete BDC metadata model You need to export and import using SharePoint Designer

In both cases you still need to deal with connection and configuration information

Future Directions

Visual Studio Lab Management

Integrates the management of HyperV environments in with Visual Studio and Team Foundation Server

Can automate the provisioning of lab environments for automated testing

Test failures can snapshot entire environments to make reproduction of errors much easier

Summary

Yoursquore going to have lots of SharePoint environments ndash figure out how to build them quickly and repeatable

Code and content often move in opposite directions through dev QA and Prod PowerShell script and automate to keep this simple

Agile is a great way to run projects

Continuous integration with automated testing is key to its success

There are lots of parts of SharePoint that you donrsquot code through Visual Studio Figure out how you move those through your environment

Other Topics

Site Design

Information architecture

Wireframes

Creative designs ndash Mobile first

Catalogs deep dive

Site build PowerShell scripts

Team Foundation Server and Application Lifecycle Management

Starting a new project

Managing content authoring

Site Improve tool

SEO Optimizations

Analytics options

Retaining Page Ranks with permanent redirects (301)

Azure SharePoint Hosting

Q amp A

Session Evaluations

Go to Evaluations on the home page of wwwcollabconorg

It is important to get your feedback

Please fill out evaluations for all the sessions you attend

Following the conference a random drawing from all completed evaluations will be selected

The winner will receive a $250 Future Shop gift card valid online or in store

Page 41: Web Content Management - CollabCon 2015 - Web... · Performances Complete Works ... Friendly URL An SEO friendly URL defined in the term store for a page, rather than ... What’s

Whatrsquos New in Web Content

Management

Easier Page Authoring With Cut and Paste

Drag and Drop Files

Drag and drop files from Windows Explorer into the browser or the other way

Doesnrsquot support folders or document sets

Open in Windows Explorer still works best for this

Requires IE10 or current versions of Chrome Safari or Firefox

IE8 and 9 supported with Office 2013 installed

Image Renditions

Display uploaded images in predefined sizes widths and crops

Multiple renditions stored in document sets

Content author can create renditions (including crops) in the browser

Design Manager

New way to build master

pages and layouts

SharePoint Designer no

longer required

Edit and preview in any HTML

editor

Automatically creates the associated

master page and aspx

layouts

Package into a Design

Package WSP for

deployment

Snippet Gallery

Select components

such as search box or

navigation control

Configure its properties

Paste the snippet into your HTML

master page or layout

Changes synched to

actual master pages and layouts to convert to SharePoint

components

Can be used by any web design

tool

Device Channels

Map channels to mobile devices or browsers

Alternate master pages

can be assigned

Page layouts can include or

exclude content based

on channel

Display Templates

Used to customize the

presentation of search results

No more XSLT

Three templates

bull Control ndash Overall structure of search results

bull Group ndash Show groups of results

bull Item ndash How each result is presented

Navigation and Friendly URLs

Site navigation driven by managed metadata

Term store used for navigation and SEO-friendly URLs

Connect site navigation to business concepts rather than site structure

Server side control outputs HTML for top nav left nav and breadcrumb

Plan is to convert to client-side to support Office 365

Term Store Setup

Two groups used to separate metadata from navigation

Metadata group setup globally

Static GUIDs consistent through all environments

Navigation group setup at the site collection level

Allows multiple copies for multiple sites on the farm

Search

Search is new and different from all previous versions of SharePoint

The platform has been consolidated Built on a combination of FAST Search and SharePoint Search components as well as new development work ndash it is the

same from Foundation to Server

Foundation Search is intended to replace WSS Search Microsoft Search Server and Search Server Express from previous versions of SharePoint

Itrsquos used pervasively throughout the product now in many different ways in different features eDiscovery navigation topic pages Internet facing business sites etc

Search in SharePoint 2013

Single Extensible Platform

FAST Engine

SharePoint Crawler

Best of both

Same Search Platform in both SharePoint and Exchange

Enterprise Search

Search Page Web parts added to a publishing page

Catalogs Cross-site publishing

Library search Executes in place on the library

Site Search _layouts15osssearchresultsaspx Specifies the site and search parameters

Search Centre Basic Search Center - SharePoint Foundation 2013 Enterprise Search Center - SharePoint Server 2013

Content Search Web Part

Similar in concept to the Content Query Web Part

Many advantages

Can go across sites site collections web apps even farms

Leverages the search index -gt very scalable

Query Builder makes it easy to define your results

Use Display Templates to customize the look and feel No more XSLT

Part of the Enterprise CAL

Pre-Configured CSWPs

Popular Items Shows items that have been recently viewed by many users

Recently Changed Items Shows items that have been modified recently This can help site users

track the latest activity on a site or a library

Recommended Items Show content recommendations based on usage patterns for the current

page

All of these can be further configured by editing their properties and changing the search criteria

Search Results Web Part

Similar functionality to the Content Search Web Part

Doesnrsquot allow property mapping in the web part configuration

Mapping is controlled in the Display Template

Part of the Standard CAL

Category Page Item Page

Catalogs

wwwcontosocomproductsAudio-Liware2g

Catalogs

Results

Consistent Displays

Manage content in one place

No need to create

pages

No need to format

Metadata Navigation

Cross-Site Publishing

Reuse content between different sites including site collections and farms

Catalogs can surface lists into publishing sites onto a category page and item pages

Can be surfaced through the Content Search Web Part

No need to create and publish web pages

Create custom friendly URLs

Metadata based navigation base

Cross Site Publishing

Job Posting

Job Posting

Job Posting

Job Posting

Simcoe County District School Board

50000 students

Over 6000 employees

Board office in Barrie

Bordered by the Holland Marsh in the south the Trent-Severn Waterway in the east Grey County in the west and Muskoka in the north

Simcoe County District School Board

119 schools and centres 87 elementary 16 secondary 6 learning centres 10 alternative

Each needs their own web site Being built on SharePoint 2013 Elementary panel first Each has their own unique URL Content authored both at the school and centrally from the board

wwwscdsbonca Pre-existing SharePoint 2010 site Future goal is to rebuild in SharePoint 2013

Business Challenge

100+ public web sites

No standardization on style technology or content

No ability for the board to push content to the school sites

Outdated sites

Not mobile or AODA compliant

Site Features

Fully Adaptivemobile design Robust Search functionality Template makes it fast and efficient to add new school sites News and events can be targeted by the Board to any number of

school sites Target by panel weather zone trustee language Presented in a blended view with the school news and events

Home page rotator links hours content pages all managed by the school staff

SEO-friendly URLs

News

School news entered by school staff

Board news entered in the board site

Rendered using cross-site publishing

High-priority alerts can be flagged to highlight on the site

Bus or school cancellations

Events

Single and multi-day events

School and board managed like news

Adaptive calendar

School Picker

Used to pick which schools to target news and events to

Schools are tagged through the term store

Target by panel weather zone trustee language

Can override and add or remove individual schools

Search

Catalogs

Three main steps

Enabling lists or libraries as catalogs

Creating the catalog connection

Building the page layouts to display the category rollups or item detail pages

Enabling Catalogs

Doesnrsquot have to be a list can be a document Images or Pages library

Experimenting using a Pages library

This gives us draft and published states that lists donrsquot support

Preview and editing is easier

Fairly simple script to do this

Catalog connections are more complex

Create the connection

Fix up the Term Store

Create the Category and Item page layouts and pages

SEO Enhancements

Friendly URLs

Home page redirects

XML sitemaps automatically generated and updated

Custom SEO properties

Usage Analytics

Built for scale from the ground up Detail data rolled up every 15 days amp anonymized Daily events purged every 15 days monthly events after 3 years Lifetime counts always retained

Counts views amp unique itemsday Shows recent (2-weeks) and lifetime count Trims least visited content Pushes aggregate data to reporting database

Drives recommendations capabilities on content Calculations injected into search index as sortable managed properties Deep integration with search engine Can influence search relevance based on content usage

Variations and Multi-Lingual

Export and import content for translation in XLIFF format

Pages

Labels

List items

Navigation

Bing translation service comes with active SharePoint 2013 license

Adaptive Web Design

Adaptive vs Responsive

Adaptive

Fixed breakpoints‒ Desktop gt 980 px

‒ Table portrait gt 768 px

‒ Phone to tablet gt 480 px lt 768 px

‒ Smartphone lt 480 px

Responsive

No fixed breakpoints

Design fluidly adapts to whatever width the browser is

We generally do a hybrid approach with responsive design in the under 768 pixel situation

Design Approaches in SharePoint

Adaptive Design through CSS media queries

Broader standards approach used outside of SharePoint

Keeps a single master page and CSS

Some unnecessary components may still be loaded

Device Channels SharePoint specific approach

Assign different master pages to different device channels

Rules define what devices use which channels

Device Channel Panels can also target content to channels

Hybrid here can also make sense Device channels can be used to remove unnecessary items from the page payload

Our Adaptive Approach

Built using the Twitter Boostrap CSS framework

twittergithubcombootstrap

Provides a responsive design framework for supporting PC Mac tablet and mobile

We enhanced to provide better touch navigation support

Can be leveraged in the master page page layouts and display templates

Incorporated into the SharePoint 2013 Design Master

HTML based master page that can be edited with any tool

SharePoint converts to a master page when uploaded or saved

Additional Open Source Tools and Resources

HTML CSS JavaScript jQuery

httpwwww3schoolscom

httpgetbootstrapcom

httphandlebarsjscom

httpknockoutjscom

httpsangularjsorg

httpmomentjscom

Content Search Web Part

Web part is configured to return search results

Executed as client-side code in the browser

Pair of display templates map the data returned to HTML

Control template for the overall structure

Item template for each item returned

HTML Designer Manager files are compiled to JavaScript

REST Search and Handlebars

Search is accessible through REST calls

httpsiteurl_apisearchquery

Returns results as a JSON array

Handlebars is a templating engine to format that

Conceptually similar to display templates with control and item sections

jQuery glues this all together

Steps to Experiment

F12 to get into Developer Toolbar

Set a breakpoint where the REST URL is determined

Copy the value

Paste into the REST Search test window

Experiment with the query

Adjust the Handlebars template appropriately

Search Setup

Content Sources to define and schedule the crawls

Crawl logs to review success

Search Schema to define the managed properties

Reusable Content

Snippets of HTML that can be reused throughout the site

JavaScript can be intelligent and use the URL to determine its behaviour

Makes it easy for content authors to drop pre-configured dynamic content onto pages

Topic Pages

Shows all items that match a topic

Could be hundreds of virtual pages

Only one template page

Easily customizable and SEO friendly (each topic appears to be its own page)

Content by search web part open search against a query or result source

May be able to surface the topic pages themselves as site search results

Public Health Ontario

httpwwwpublichealthontariocaenBrowseByTopicPagesTopicaspxk=Influenza20InformationByTopic22Influenza22

Ontario Association of Childrens Aid Societies

Application Lifecycle Management

Purpose

How do we build a solid SharePoint development environment for the enterprise

How do a number of developers work together on a SharePoint project

How does code and content move through a dev test and production lifecycle

What is Agile and Continuous Integration and why is it important

Visual Studio and Team Foundation Server

Visual Studio 2010 is the development platform for coding on SharePoint 2010

Team Foundation Server integrates with Visual Studio to provide a repository for code test and other project artifacts

It facilitates teamwork by providing a common place for developers to work together

Provisioning SharePoint Farms

Provisioning SharePoint Farms

Every developer needs their own complete SharePoint farm

Teams need a dev integration farm to bring their work together on

A full architecture needs QA and production farms as well

Envision IT Virtualization Architecture

Developer VM Template

SharePoint Server 2010 Enterprise

SP1 and August CU

Visual Studio 2010 Premium SP1

Office 2010 Professional Plus SP1

SharePoint Designer 2010 SP1

Fiddler

SQL Server 2008 R2 SP1

Creating a new Developer VM

Open System Centre Virtual Machine Manager

Create Virtual Machine

Choose the Developer VM template

Set the virtual machine name and options

Create and start the VM

Creating a new Developer VM - Step 2

Developer RDPs to their new VM Complete the SQL Server installation

Create the default instance Set the service account(s) Set the authentication mode and server administrators

Update the AutoSPInstallerInputxml file Set the machine name for the default sites and database server Set the service account passwords

Run the AutoSPInstallerLaunch batch file Do a Health check review

Creating a new Developer VM - Step 3

Start Visual Studio

Connect to the Team Foundation Server

Setup your workspaces

Use a standard naming convention across your team

CDevelopmentTFSCollection

Other Environments

Dev Integration QA and Production can all be built using AutoSPInstall

Donrsquot need or want the Visual Studio or Office tools on these servers

We have a base template we use for dev integration servers

QA should match the Prod architecture as closely as possible

High availability with load balancing clustered SQL app servers DMZ hardening Internet publishing

Agile Development

Agile with Team Foundation Server

Creating Your TFS Project

Open Visual Studio

Make sure you are connected to the right Team Project Collection

In Team Explorer right-click the top collection and create a new Team Project

Use the Scrum 10 template

Go into the Areas and Iterations Delete the extraneous releases and sprints

Create a product backlog iteration

Start adding your stories and tasks

Continuous Integration

Continuous Integration

Automated Testing

SharePoint Site Elements

Site structure Site columns content types subsites lists libraries

Branding elements Master pages layouts CSS XSLT supporting images

Custom web parts Page and site content Web part instances Search Workflows Business Connectivity Services Managed Metadata

SharePoint Site Elements ndash Part 2

Access Excel Word Visio

PerformancePoint

Document conversions

Timer jobs

Secure Store Service

User profiles

Site Structure

bull Site columns

bull Define the fields that are used by content types

bull Content types

bull Defines collections of site columns for different types of content

bull Subsites

bull The hierarchy of sites that make up the site collection

bull Lists and Libraries

bull The lists and libraries for each subsite

Site Structure ndash Part 2

Site columns and content types can be programmatically or manually created If they are going to be used in multiple site collections they should be

programmatically created

If a single site collection they can be created manually in a master site collection

GUIDs cannot be manually set and code may need them to be consistent

You can create them manually in SharePoint save the site as a template and import them into Visual Studio to create a proper WSP package

Site Structure ndash Part 3

Site structure can also be done either programmatically or manually

Many sites are complex and it is error prone to create manually

We use our own SiteModelBuilder tool to create the site structure

Site Structure ndash Part 4

For all site structure elements changes can also be manual or programmatic It is useful to be able to delete the whole site collection and recreate it

programmatically As soon as content starts being authored in SharePoint it becomes difficult

or impossible to do that

After content authoring has started Site column and content type changes need to be programmed explicitly

(you canrsquot just drop the content type and recreate it) Site structure changes are usually done manually at this point Changes need to be backed up and restored

Change Management

Page and Site Content

Page and site content is entered directly into SharePoint by the content authors Web pages images PDFs list content etc This should be done in the master site separate from where dev integration is

happening Care needs to be taken with this site once authors start working Make sure it is part of your production backup plan

Periodically back it up and restore it to the dev integration and developer VMs

Alternatively script the export and import Ultimately it will be backed up and restored to the QA and production

farms

Change Management

Change Management

Change Management

Change Management

Web part instances

Web parts ultimately get placed on pages

The configuration of the web parts can often get quite complex

You may want to disable editing of web parts for general content authors

They end up in a grey zone between code and content

Web part instances ndash Part 2

We created our own internal tool to export and import web parts

Each web partrsquos configuration can be exported into a webpartfile

We scripted the extraction from the dev integration

webpart files are treated like code and checked into TFS for version control

Script then applies the new webpart files to the target environment

Workflows

Workflows can be built using SharePoint Designer Visual Studio or third-party tools (Nintex or K2 primarily)

Visual Studio workflow projects are automatically packaged as WSP solution files Simply deploy the WSP file to the other environments

SharePoint Designer workflows need to be deployed using SharePoint Designer This means you need SPD access to production which is not always possible

You can load the SPD workflow into Visual Studio to package it but you lose the ability to edit it in SPD

If you use third-party tools yoursquoll need to define the process for that as well

Business Connectivity Services

BCS can be built using either SharePoint Designer or Visual Studio Visual Studio BCS projects are automatically packaged as WSP

solution files Simply deploy the WSP file to the other environments You can also export the BDC metadata model in the BDC service

application

SharePoint Designer doesnrsquot create a WSP and it doesnrsquot make a complete BDC metadata model You need to export and import using SharePoint Designer

In both cases you still need to deal with connection and configuration information

Future Directions

Visual Studio Lab Management

Integrates the management of HyperV environments in with Visual Studio and Team Foundation Server

Can automate the provisioning of lab environments for automated testing

Test failures can snapshot entire environments to make reproduction of errors much easier

Summary

Yoursquore going to have lots of SharePoint environments ndash figure out how to build them quickly and repeatable

Code and content often move in opposite directions through dev QA and Prod PowerShell script and automate to keep this simple

Agile is a great way to run projects

Continuous integration with automated testing is key to its success

There are lots of parts of SharePoint that you donrsquot code through Visual Studio Figure out how you move those through your environment

Other Topics

Site Design

Information architecture

Wireframes

Creative designs ndash Mobile first

Catalogs deep dive

Site build PowerShell scripts

Team Foundation Server and Application Lifecycle Management

Starting a new project

Managing content authoring

Site Improve tool

SEO Optimizations

Analytics options

Retaining Page Ranks with permanent redirects (301)

Azure SharePoint Hosting

Q amp A

Session Evaluations

Go to Evaluations on the home page of wwwcollabconorg

It is important to get your feedback

Please fill out evaluations for all the sessions you attend

Following the conference a random drawing from all completed evaluations will be selected

The winner will receive a $250 Future Shop gift card valid online or in store

Page 42: Web Content Management - CollabCon 2015 - Web... · Performances Complete Works ... Friendly URL An SEO friendly URL defined in the term store for a page, rather than ... What’s

Easier Page Authoring With Cut and Paste

Drag and Drop Files

Drag and drop files from Windows Explorer into the browser or the other way

Doesnrsquot support folders or document sets

Open in Windows Explorer still works best for this

Requires IE10 or current versions of Chrome Safari or Firefox

IE8 and 9 supported with Office 2013 installed

Image Renditions

Display uploaded images in predefined sizes widths and crops

Multiple renditions stored in document sets

Content author can create renditions (including crops) in the browser

Design Manager

New way to build master

pages and layouts

SharePoint Designer no

longer required

Edit and preview in any HTML

editor

Automatically creates the associated

master page and aspx

layouts

Package into a Design

Package WSP for

deployment

Snippet Gallery

Select components

such as search box or

navigation control

Configure its properties

Paste the snippet into your HTML

master page or layout

Changes synched to

actual master pages and layouts to convert to SharePoint

components

Can be used by any web design

tool

Device Channels

Map channels to mobile devices or browsers

Alternate master pages

can be assigned

Page layouts can include or

exclude content based

on channel

Display Templates

Used to customize the

presentation of search results

No more XSLT

Three templates

bull Control ndash Overall structure of search results

bull Group ndash Show groups of results

bull Item ndash How each result is presented

Navigation and Friendly URLs

Site navigation driven by managed metadata

Term store used for navigation and SEO-friendly URLs

Connect site navigation to business concepts rather than site structure

Server side control outputs HTML for top nav left nav and breadcrumb

Plan is to convert to client-side to support Office 365

Term Store Setup

Two groups used to separate metadata from navigation

Metadata group setup globally

Static GUIDs consistent through all environments

Navigation group setup at the site collection level

Allows multiple copies for multiple sites on the farm

Search

Search is new and different from all previous versions of SharePoint

The platform has been consolidated Built on a combination of FAST Search and SharePoint Search components as well as new development work ndash it is the

same from Foundation to Server

Foundation Search is intended to replace WSS Search Microsoft Search Server and Search Server Express from previous versions of SharePoint

Itrsquos used pervasively throughout the product now in many different ways in different features eDiscovery navigation topic pages Internet facing business sites etc

Search in SharePoint 2013

Single Extensible Platform

FAST Engine

SharePoint Crawler

Best of both

Same Search Platform in both SharePoint and Exchange

Enterprise Search

Search Page Web parts added to a publishing page

Catalogs Cross-site publishing

Library search Executes in place on the library

Site Search _layouts15osssearchresultsaspx Specifies the site and search parameters

Search Centre Basic Search Center - SharePoint Foundation 2013 Enterprise Search Center - SharePoint Server 2013

Content Search Web Part

Similar in concept to the Content Query Web Part

Many advantages

Can go across sites site collections web apps even farms

Leverages the search index -gt very scalable

Query Builder makes it easy to define your results

Use Display Templates to customize the look and feel No more XSLT

Part of the Enterprise CAL

Pre-Configured CSWPs

Popular Items Shows items that have been recently viewed by many users

Recently Changed Items Shows items that have been modified recently This can help site users

track the latest activity on a site or a library

Recommended Items Show content recommendations based on usage patterns for the current

page

All of these can be further configured by editing their properties and changing the search criteria

Search Results Web Part

Similar functionality to the Content Search Web Part

Doesnrsquot allow property mapping in the web part configuration

Mapping is controlled in the Display Template

Part of the Standard CAL

Category Page Item Page

Catalogs

wwwcontosocomproductsAudio-Liware2g

Catalogs

Results

Consistent Displays

Manage content in one place

No need to create

pages

No need to format

Metadata Navigation

Cross-Site Publishing

Reuse content between different sites including site collections and farms

Catalogs can surface lists into publishing sites onto a category page and item pages

Can be surfaced through the Content Search Web Part

No need to create and publish web pages

Create custom friendly URLs

Metadata based navigation base

Cross Site Publishing

Job Posting

Job Posting

Job Posting

Job Posting

Simcoe County District School Board

50000 students

Over 6000 employees

Board office in Barrie

Bordered by the Holland Marsh in the south the Trent-Severn Waterway in the east Grey County in the west and Muskoka in the north

Simcoe County District School Board

119 schools and centres 87 elementary 16 secondary 6 learning centres 10 alternative

Each needs their own web site Being built on SharePoint 2013 Elementary panel first Each has their own unique URL Content authored both at the school and centrally from the board

wwwscdsbonca Pre-existing SharePoint 2010 site Future goal is to rebuild in SharePoint 2013

Business Challenge

100+ public web sites

No standardization on style technology or content

No ability for the board to push content to the school sites

Outdated sites

Not mobile or AODA compliant

Site Features

Fully Adaptivemobile design Robust Search functionality Template makes it fast and efficient to add new school sites News and events can be targeted by the Board to any number of

school sites Target by panel weather zone trustee language Presented in a blended view with the school news and events

Home page rotator links hours content pages all managed by the school staff

SEO-friendly URLs

News

School news entered by school staff

Board news entered in the board site

Rendered using cross-site publishing

High-priority alerts can be flagged to highlight on the site

Bus or school cancellations

Events

Single and multi-day events

School and board managed like news

Adaptive calendar

School Picker

Used to pick which schools to target news and events to

Schools are tagged through the term store

Target by panel weather zone trustee language

Can override and add or remove individual schools

Search

Catalogs

Three main steps

Enabling lists or libraries as catalogs

Creating the catalog connection

Building the page layouts to display the category rollups or item detail pages

Enabling Catalogs

Doesnrsquot have to be a list can be a document Images or Pages library

Experimenting using a Pages library

This gives us draft and published states that lists donrsquot support

Preview and editing is easier

Fairly simple script to do this

Catalog connections are more complex

Create the connection

Fix up the Term Store

Create the Category and Item page layouts and pages

SEO Enhancements

Friendly URLs

Home page redirects

XML sitemaps automatically generated and updated

Custom SEO properties

Usage Analytics

Built for scale from the ground up Detail data rolled up every 15 days amp anonymized Daily events purged every 15 days monthly events after 3 years Lifetime counts always retained

Counts views amp unique itemsday Shows recent (2-weeks) and lifetime count Trims least visited content Pushes aggregate data to reporting database

Drives recommendations capabilities on content Calculations injected into search index as sortable managed properties Deep integration with search engine Can influence search relevance based on content usage

Variations and Multi-Lingual

Export and import content for translation in XLIFF format

Pages

Labels

List items

Navigation

Bing translation service comes with active SharePoint 2013 license

Adaptive Web Design

Adaptive vs Responsive

Adaptive

Fixed breakpoints‒ Desktop gt 980 px

‒ Table portrait gt 768 px

‒ Phone to tablet gt 480 px lt 768 px

‒ Smartphone lt 480 px

Responsive

No fixed breakpoints

Design fluidly adapts to whatever width the browser is

We generally do a hybrid approach with responsive design in the under 768 pixel situation

Design Approaches in SharePoint

Adaptive Design through CSS media queries

Broader standards approach used outside of SharePoint

Keeps a single master page and CSS

Some unnecessary components may still be loaded

Device Channels SharePoint specific approach

Assign different master pages to different device channels

Rules define what devices use which channels

Device Channel Panels can also target content to channels

Hybrid here can also make sense Device channels can be used to remove unnecessary items from the page payload

Our Adaptive Approach

Built using the Twitter Boostrap CSS framework

twittergithubcombootstrap

Provides a responsive design framework for supporting PC Mac tablet and mobile

We enhanced to provide better touch navigation support

Can be leveraged in the master page page layouts and display templates

Incorporated into the SharePoint 2013 Design Master

HTML based master page that can be edited with any tool

SharePoint converts to a master page when uploaded or saved

Additional Open Source Tools and Resources

HTML CSS JavaScript jQuery

httpwwww3schoolscom

httpgetbootstrapcom

httphandlebarsjscom

httpknockoutjscom

httpsangularjsorg

httpmomentjscom

Content Search Web Part

Web part is configured to return search results

Executed as client-side code in the browser

Pair of display templates map the data returned to HTML

Control template for the overall structure

Item template for each item returned

HTML Designer Manager files are compiled to JavaScript

REST Search and Handlebars

Search is accessible through REST calls

httpsiteurl_apisearchquery

Returns results as a JSON array

Handlebars is a templating engine to format that

Conceptually similar to display templates with control and item sections

jQuery glues this all together

Steps to Experiment

F12 to get into Developer Toolbar

Set a breakpoint where the REST URL is determined

Copy the value

Paste into the REST Search test window

Experiment with the query

Adjust the Handlebars template appropriately

Search Setup

Content Sources to define and schedule the crawls

Crawl logs to review success

Search Schema to define the managed properties

Reusable Content

Snippets of HTML that can be reused throughout the site

JavaScript can be intelligent and use the URL to determine its behaviour

Makes it easy for content authors to drop pre-configured dynamic content onto pages

Topic Pages

Shows all items that match a topic

Could be hundreds of virtual pages

Only one template page

Easily customizable and SEO friendly (each topic appears to be its own page)

Content by search web part open search against a query or result source

May be able to surface the topic pages themselves as site search results

Public Health Ontario

httpwwwpublichealthontariocaenBrowseByTopicPagesTopicaspxk=Influenza20InformationByTopic22Influenza22

Ontario Association of Childrens Aid Societies

Application Lifecycle Management

Purpose

How do we build a solid SharePoint development environment for the enterprise

How do a number of developers work together on a SharePoint project

How does code and content move through a dev test and production lifecycle

What is Agile and Continuous Integration and why is it important

Visual Studio and Team Foundation Server

Visual Studio 2010 is the development platform for coding on SharePoint 2010

Team Foundation Server integrates with Visual Studio to provide a repository for code test and other project artifacts

It facilitates teamwork by providing a common place for developers to work together

Provisioning SharePoint Farms

Provisioning SharePoint Farms

Every developer needs their own complete SharePoint farm

Teams need a dev integration farm to bring their work together on

A full architecture needs QA and production farms as well

Envision IT Virtualization Architecture

Developer VM Template

SharePoint Server 2010 Enterprise

SP1 and August CU

Visual Studio 2010 Premium SP1

Office 2010 Professional Plus SP1

SharePoint Designer 2010 SP1

Fiddler

SQL Server 2008 R2 SP1

Creating a new Developer VM

Open System Centre Virtual Machine Manager

Create Virtual Machine

Choose the Developer VM template

Set the virtual machine name and options

Create and start the VM

Creating a new Developer VM - Step 2

Developer RDPs to their new VM Complete the SQL Server installation

Create the default instance Set the service account(s) Set the authentication mode and server administrators

Update the AutoSPInstallerInputxml file Set the machine name for the default sites and database server Set the service account passwords

Run the AutoSPInstallerLaunch batch file Do a Health check review

Creating a new Developer VM - Step 3

Start Visual Studio

Connect to the Team Foundation Server

Setup your workspaces

Use a standard naming convention across your team

CDevelopmentTFSCollection

Other Environments

Dev Integration QA and Production can all be built using AutoSPInstall

Donrsquot need or want the Visual Studio or Office tools on these servers

We have a base template we use for dev integration servers

QA should match the Prod architecture as closely as possible

High availability with load balancing clustered SQL app servers DMZ hardening Internet publishing

Agile Development

Agile with Team Foundation Server

Creating Your TFS Project

Open Visual Studio

Make sure you are connected to the right Team Project Collection

In Team Explorer right-click the top collection and create a new Team Project

Use the Scrum 10 template

Go into the Areas and Iterations Delete the extraneous releases and sprints

Create a product backlog iteration

Start adding your stories and tasks

Continuous Integration

Continuous Integration

Automated Testing

SharePoint Site Elements

Site structure Site columns content types subsites lists libraries

Branding elements Master pages layouts CSS XSLT supporting images

Custom web parts Page and site content Web part instances Search Workflows Business Connectivity Services Managed Metadata

SharePoint Site Elements ndash Part 2

Access Excel Word Visio

PerformancePoint

Document conversions

Timer jobs

Secure Store Service

User profiles

Site Structure

bull Site columns

bull Define the fields that are used by content types

bull Content types

bull Defines collections of site columns for different types of content

bull Subsites

bull The hierarchy of sites that make up the site collection

bull Lists and Libraries

bull The lists and libraries for each subsite

Site Structure ndash Part 2

Site columns and content types can be programmatically or manually created If they are going to be used in multiple site collections they should be

programmatically created

If a single site collection they can be created manually in a master site collection

GUIDs cannot be manually set and code may need them to be consistent

You can create them manually in SharePoint save the site as a template and import them into Visual Studio to create a proper WSP package

Site Structure ndash Part 3

Site structure can also be done either programmatically or manually

Many sites are complex and it is error prone to create manually

We use our own SiteModelBuilder tool to create the site structure

Site Structure ndash Part 4

For all site structure elements changes can also be manual or programmatic It is useful to be able to delete the whole site collection and recreate it

programmatically As soon as content starts being authored in SharePoint it becomes difficult

or impossible to do that

After content authoring has started Site column and content type changes need to be programmed explicitly

(you canrsquot just drop the content type and recreate it) Site structure changes are usually done manually at this point Changes need to be backed up and restored

Change Management

Page and Site Content

Page and site content is entered directly into SharePoint by the content authors Web pages images PDFs list content etc This should be done in the master site separate from where dev integration is

happening Care needs to be taken with this site once authors start working Make sure it is part of your production backup plan

Periodically back it up and restore it to the dev integration and developer VMs

Alternatively script the export and import Ultimately it will be backed up and restored to the QA and production

farms

Change Management

Change Management

Change Management

Change Management

Web part instances

Web parts ultimately get placed on pages

The configuration of the web parts can often get quite complex

You may want to disable editing of web parts for general content authors

They end up in a grey zone between code and content

Web part instances ndash Part 2

We created our own internal tool to export and import web parts

Each web partrsquos configuration can be exported into a webpartfile

We scripted the extraction from the dev integration

webpart files are treated like code and checked into TFS for version control

Script then applies the new webpart files to the target environment

Workflows

Workflows can be built using SharePoint Designer Visual Studio or third-party tools (Nintex or K2 primarily)

Visual Studio workflow projects are automatically packaged as WSP solution files Simply deploy the WSP file to the other environments

SharePoint Designer workflows need to be deployed using SharePoint Designer This means you need SPD access to production which is not always possible

You can load the SPD workflow into Visual Studio to package it but you lose the ability to edit it in SPD

If you use third-party tools yoursquoll need to define the process for that as well

Business Connectivity Services

BCS can be built using either SharePoint Designer or Visual Studio Visual Studio BCS projects are automatically packaged as WSP

solution files Simply deploy the WSP file to the other environments You can also export the BDC metadata model in the BDC service

application

SharePoint Designer doesnrsquot create a WSP and it doesnrsquot make a complete BDC metadata model You need to export and import using SharePoint Designer

In both cases you still need to deal with connection and configuration information

Future Directions

Visual Studio Lab Management

Integrates the management of HyperV environments in with Visual Studio and Team Foundation Server

Can automate the provisioning of lab environments for automated testing

Test failures can snapshot entire environments to make reproduction of errors much easier

Summary

Yoursquore going to have lots of SharePoint environments ndash figure out how to build them quickly and repeatable

Code and content often move in opposite directions through dev QA and Prod PowerShell script and automate to keep this simple

Agile is a great way to run projects

Continuous integration with automated testing is key to its success

There are lots of parts of SharePoint that you donrsquot code through Visual Studio Figure out how you move those through your environment

Other Topics

Site Design

Information architecture

Wireframes

Creative designs ndash Mobile first

Catalogs deep dive

Site build PowerShell scripts

Team Foundation Server and Application Lifecycle Management

Starting a new project

Managing content authoring

Site Improve tool

SEO Optimizations

Analytics options

Retaining Page Ranks with permanent redirects (301)

Azure SharePoint Hosting

Q amp A

Session Evaluations

Go to Evaluations on the home page of wwwcollabconorg

It is important to get your feedback

Please fill out evaluations for all the sessions you attend

Following the conference a random drawing from all completed evaluations will be selected

The winner will receive a $250 Future Shop gift card valid online or in store

Page 43: Web Content Management - CollabCon 2015 - Web... · Performances Complete Works ... Friendly URL An SEO friendly URL defined in the term store for a page, rather than ... What’s

Drag and Drop Files

Drag and drop files from Windows Explorer into the browser or the other way

Doesnrsquot support folders or document sets

Open in Windows Explorer still works best for this

Requires IE10 or current versions of Chrome Safari or Firefox

IE8 and 9 supported with Office 2013 installed

Image Renditions

Display uploaded images in predefined sizes widths and crops

Multiple renditions stored in document sets

Content author can create renditions (including crops) in the browser

Design Manager

New way to build master

pages and layouts

SharePoint Designer no

longer required

Edit and preview in any HTML

editor

Automatically creates the associated

master page and aspx

layouts

Package into a Design

Package WSP for

deployment

Snippet Gallery

Select components

such as search box or

navigation control

Configure its properties

Paste the snippet into your HTML

master page or layout

Changes synched to

actual master pages and layouts to convert to SharePoint

components

Can be used by any web design

tool

Device Channels

Map channels to mobile devices or browsers

Alternate master pages

can be assigned

Page layouts can include or

exclude content based

on channel

Display Templates

Used to customize the

presentation of search results

No more XSLT

Three templates

bull Control ndash Overall structure of search results

bull Group ndash Show groups of results

bull Item ndash How each result is presented

Navigation and Friendly URLs

Site navigation driven by managed metadata

Term store used for navigation and SEO-friendly URLs

Connect site navigation to business concepts rather than site structure

Server side control outputs HTML for top nav left nav and breadcrumb

Plan is to convert to client-side to support Office 365

Term Store Setup

Two groups used to separate metadata from navigation

Metadata group setup globally

Static GUIDs consistent through all environments

Navigation group setup at the site collection level

Allows multiple copies for multiple sites on the farm

Search

Search is new and different from all previous versions of SharePoint

The platform has been consolidated Built on a combination of FAST Search and SharePoint Search components as well as new development work ndash it is the

same from Foundation to Server

Foundation Search is intended to replace WSS Search Microsoft Search Server and Search Server Express from previous versions of SharePoint

Itrsquos used pervasively throughout the product now in many different ways in different features eDiscovery navigation topic pages Internet facing business sites etc

Search in SharePoint 2013

Single Extensible Platform

FAST Engine

SharePoint Crawler

Best of both

Same Search Platform in both SharePoint and Exchange

Enterprise Search

Search Page Web parts added to a publishing page

Catalogs Cross-site publishing

Library search Executes in place on the library

Site Search _layouts15osssearchresultsaspx Specifies the site and search parameters

Search Centre Basic Search Center - SharePoint Foundation 2013 Enterprise Search Center - SharePoint Server 2013

Content Search Web Part

Similar in concept to the Content Query Web Part

Many advantages

Can go across sites site collections web apps even farms

Leverages the search index -gt very scalable

Query Builder makes it easy to define your results

Use Display Templates to customize the look and feel No more XSLT

Part of the Enterprise CAL

Pre-Configured CSWPs

Popular Items Shows items that have been recently viewed by many users

Recently Changed Items Shows items that have been modified recently This can help site users

track the latest activity on a site or a library

Recommended Items Show content recommendations based on usage patterns for the current

page

All of these can be further configured by editing their properties and changing the search criteria

Search Results Web Part

Similar functionality to the Content Search Web Part

Doesnrsquot allow property mapping in the web part configuration

Mapping is controlled in the Display Template

Part of the Standard CAL

Category Page Item Page

Catalogs

wwwcontosocomproductsAudio-Liware2g

Catalogs

Results

Consistent Displays

Manage content in one place

No need to create

pages

No need to format

Metadata Navigation

Cross-Site Publishing

Reuse content between different sites including site collections and farms

Catalogs can surface lists into publishing sites onto a category page and item pages

Can be surfaced through the Content Search Web Part

No need to create and publish web pages

Create custom friendly URLs

Metadata based navigation base

Cross Site Publishing

Job Posting

Job Posting

Job Posting

Job Posting

Simcoe County District School Board

50000 students

Over 6000 employees

Board office in Barrie

Bordered by the Holland Marsh in the south the Trent-Severn Waterway in the east Grey County in the west and Muskoka in the north

Simcoe County District School Board

119 schools and centres 87 elementary 16 secondary 6 learning centres 10 alternative

Each needs their own web site Being built on SharePoint 2013 Elementary panel first Each has their own unique URL Content authored both at the school and centrally from the board

wwwscdsbonca Pre-existing SharePoint 2010 site Future goal is to rebuild in SharePoint 2013

Business Challenge

100+ public web sites

No standardization on style technology or content

No ability for the board to push content to the school sites

Outdated sites

Not mobile or AODA compliant

Site Features

Fully Adaptivemobile design Robust Search functionality Template makes it fast and efficient to add new school sites News and events can be targeted by the Board to any number of

school sites Target by panel weather zone trustee language Presented in a blended view with the school news and events

Home page rotator links hours content pages all managed by the school staff

SEO-friendly URLs

News

School news entered by school staff

Board news entered in the board site

Rendered using cross-site publishing

High-priority alerts can be flagged to highlight on the site

Bus or school cancellations

Events

Single and multi-day events

School and board managed like news

Adaptive calendar

School Picker

Used to pick which schools to target news and events to

Schools are tagged through the term store

Target by panel weather zone trustee language

Can override and add or remove individual schools

Search

Catalogs

Three main steps

Enabling lists or libraries as catalogs

Creating the catalog connection

Building the page layouts to display the category rollups or item detail pages

Enabling Catalogs

Doesnrsquot have to be a list can be a document Images or Pages library

Experimenting using a Pages library

This gives us draft and published states that lists donrsquot support

Preview and editing is easier

Fairly simple script to do this

Catalog connections are more complex

Create the connection

Fix up the Term Store

Create the Category and Item page layouts and pages

SEO Enhancements

Friendly URLs

Home page redirects

XML sitemaps automatically generated and updated

Custom SEO properties

Usage Analytics

Built for scale from the ground up Detail data rolled up every 15 days amp anonymized Daily events purged every 15 days monthly events after 3 years Lifetime counts always retained

Counts views amp unique itemsday Shows recent (2-weeks) and lifetime count Trims least visited content Pushes aggregate data to reporting database

Drives recommendations capabilities on content Calculations injected into search index as sortable managed properties Deep integration with search engine Can influence search relevance based on content usage

Variations and Multi-Lingual

Export and import content for translation in XLIFF format

Pages

Labels

List items

Navigation

Bing translation service comes with active SharePoint 2013 license

Adaptive Web Design

Adaptive vs Responsive

Adaptive

Fixed breakpoints‒ Desktop gt 980 px

‒ Table portrait gt 768 px

‒ Phone to tablet gt 480 px lt 768 px

‒ Smartphone lt 480 px

Responsive

No fixed breakpoints

Design fluidly adapts to whatever width the browser is

We generally do a hybrid approach with responsive design in the under 768 pixel situation

Design Approaches in SharePoint

Adaptive Design through CSS media queries

Broader standards approach used outside of SharePoint

Keeps a single master page and CSS

Some unnecessary components may still be loaded

Device Channels SharePoint specific approach

Assign different master pages to different device channels

Rules define what devices use which channels

Device Channel Panels can also target content to channels

Hybrid here can also make sense Device channels can be used to remove unnecessary items from the page payload

Our Adaptive Approach

Built using the Twitter Boostrap CSS framework

twittergithubcombootstrap

Provides a responsive design framework for supporting PC Mac tablet and mobile

We enhanced to provide better touch navigation support

Can be leveraged in the master page page layouts and display templates

Incorporated into the SharePoint 2013 Design Master

HTML based master page that can be edited with any tool

SharePoint converts to a master page when uploaded or saved

Additional Open Source Tools and Resources

HTML CSS JavaScript jQuery

httpwwww3schoolscom

httpgetbootstrapcom

httphandlebarsjscom

httpknockoutjscom

httpsangularjsorg

httpmomentjscom

Content Search Web Part

Web part is configured to return search results

Executed as client-side code in the browser

Pair of display templates map the data returned to HTML

Control template for the overall structure

Item template for each item returned

HTML Designer Manager files are compiled to JavaScript

REST Search and Handlebars

Search is accessible through REST calls

httpsiteurl_apisearchquery

Returns results as a JSON array

Handlebars is a templating engine to format that

Conceptually similar to display templates with control and item sections

jQuery glues this all together

Steps to Experiment

F12 to get into Developer Toolbar

Set a breakpoint where the REST URL is determined

Copy the value

Paste into the REST Search test window

Experiment with the query

Adjust the Handlebars template appropriately

Search Setup

Content Sources to define and schedule the crawls

Crawl logs to review success

Search Schema to define the managed properties

Reusable Content

Snippets of HTML that can be reused throughout the site

JavaScript can be intelligent and use the URL to determine its behaviour

Makes it easy for content authors to drop pre-configured dynamic content onto pages

Topic Pages

Shows all items that match a topic

Could be hundreds of virtual pages

Only one template page

Easily customizable and SEO friendly (each topic appears to be its own page)

Content by search web part open search against a query or result source

May be able to surface the topic pages themselves as site search results

Public Health Ontario

httpwwwpublichealthontariocaenBrowseByTopicPagesTopicaspxk=Influenza20InformationByTopic22Influenza22

Ontario Association of Childrens Aid Societies

Application Lifecycle Management

Purpose

How do we build a solid SharePoint development environment for the enterprise

How do a number of developers work together on a SharePoint project

How does code and content move through a dev test and production lifecycle

What is Agile and Continuous Integration and why is it important

Visual Studio and Team Foundation Server

Visual Studio 2010 is the development platform for coding on SharePoint 2010

Team Foundation Server integrates with Visual Studio to provide a repository for code test and other project artifacts

It facilitates teamwork by providing a common place for developers to work together

Provisioning SharePoint Farms

Provisioning SharePoint Farms

Every developer needs their own complete SharePoint farm

Teams need a dev integration farm to bring their work together on

A full architecture needs QA and production farms as well

Envision IT Virtualization Architecture

Developer VM Template

SharePoint Server 2010 Enterprise

SP1 and August CU

Visual Studio 2010 Premium SP1

Office 2010 Professional Plus SP1

SharePoint Designer 2010 SP1

Fiddler

SQL Server 2008 R2 SP1

Creating a new Developer VM

Open System Centre Virtual Machine Manager

Create Virtual Machine

Choose the Developer VM template

Set the virtual machine name and options

Create and start the VM

Creating a new Developer VM - Step 2

Developer RDPs to their new VM Complete the SQL Server installation

Create the default instance Set the service account(s) Set the authentication mode and server administrators

Update the AutoSPInstallerInputxml file Set the machine name for the default sites and database server Set the service account passwords

Run the AutoSPInstallerLaunch batch file Do a Health check review

Creating a new Developer VM - Step 3

Start Visual Studio

Connect to the Team Foundation Server

Setup your workspaces

Use a standard naming convention across your team

CDevelopmentTFSCollection

Other Environments

Dev Integration QA and Production can all be built using AutoSPInstall

Donrsquot need or want the Visual Studio or Office tools on these servers

We have a base template we use for dev integration servers

QA should match the Prod architecture as closely as possible

High availability with load balancing clustered SQL app servers DMZ hardening Internet publishing

Agile Development

Agile with Team Foundation Server

Creating Your TFS Project

Open Visual Studio

Make sure you are connected to the right Team Project Collection

In Team Explorer right-click the top collection and create a new Team Project

Use the Scrum 10 template

Go into the Areas and Iterations Delete the extraneous releases and sprints

Create a product backlog iteration

Start adding your stories and tasks

Continuous Integration

Continuous Integration

Automated Testing

SharePoint Site Elements

Site structure Site columns content types subsites lists libraries

Branding elements Master pages layouts CSS XSLT supporting images

Custom web parts Page and site content Web part instances Search Workflows Business Connectivity Services Managed Metadata

SharePoint Site Elements ndash Part 2

Access Excel Word Visio

PerformancePoint

Document conversions

Timer jobs

Secure Store Service

User profiles

Site Structure

bull Site columns

bull Define the fields that are used by content types

bull Content types

bull Defines collections of site columns for different types of content

bull Subsites

bull The hierarchy of sites that make up the site collection

bull Lists and Libraries

bull The lists and libraries for each subsite

Site Structure ndash Part 2

Site columns and content types can be programmatically or manually created If they are going to be used in multiple site collections they should be

programmatically created

If a single site collection they can be created manually in a master site collection

GUIDs cannot be manually set and code may need them to be consistent

You can create them manually in SharePoint save the site as a template and import them into Visual Studio to create a proper WSP package

Site Structure ndash Part 3

Site structure can also be done either programmatically or manually

Many sites are complex and it is error prone to create manually

We use our own SiteModelBuilder tool to create the site structure

Site Structure ndash Part 4

For all site structure elements changes can also be manual or programmatic It is useful to be able to delete the whole site collection and recreate it

programmatically As soon as content starts being authored in SharePoint it becomes difficult

or impossible to do that

After content authoring has started Site column and content type changes need to be programmed explicitly

(you canrsquot just drop the content type and recreate it) Site structure changes are usually done manually at this point Changes need to be backed up and restored

Change Management

Page and Site Content

Page and site content is entered directly into SharePoint by the content authors Web pages images PDFs list content etc This should be done in the master site separate from where dev integration is

happening Care needs to be taken with this site once authors start working Make sure it is part of your production backup plan

Periodically back it up and restore it to the dev integration and developer VMs

Alternatively script the export and import Ultimately it will be backed up and restored to the QA and production

farms

Change Management

Change Management

Change Management

Change Management

Web part instances

Web parts ultimately get placed on pages

The configuration of the web parts can often get quite complex

You may want to disable editing of web parts for general content authors

They end up in a grey zone between code and content

Web part instances ndash Part 2

We created our own internal tool to export and import web parts

Each web partrsquos configuration can be exported into a webpartfile

We scripted the extraction from the dev integration

webpart files are treated like code and checked into TFS for version control

Script then applies the new webpart files to the target environment

Workflows

Workflows can be built using SharePoint Designer Visual Studio or third-party tools (Nintex or K2 primarily)

Visual Studio workflow projects are automatically packaged as WSP solution files Simply deploy the WSP file to the other environments

SharePoint Designer workflows need to be deployed using SharePoint Designer This means you need SPD access to production which is not always possible

You can load the SPD workflow into Visual Studio to package it but you lose the ability to edit it in SPD

If you use third-party tools yoursquoll need to define the process for that as well

Business Connectivity Services

BCS can be built using either SharePoint Designer or Visual Studio Visual Studio BCS projects are automatically packaged as WSP

solution files Simply deploy the WSP file to the other environments You can also export the BDC metadata model in the BDC service

application

SharePoint Designer doesnrsquot create a WSP and it doesnrsquot make a complete BDC metadata model You need to export and import using SharePoint Designer

In both cases you still need to deal with connection and configuration information

Future Directions

Visual Studio Lab Management

Integrates the management of HyperV environments in with Visual Studio and Team Foundation Server

Can automate the provisioning of lab environments for automated testing

Test failures can snapshot entire environments to make reproduction of errors much easier

Summary

Yoursquore going to have lots of SharePoint environments ndash figure out how to build them quickly and repeatable

Code and content often move in opposite directions through dev QA and Prod PowerShell script and automate to keep this simple

Agile is a great way to run projects

Continuous integration with automated testing is key to its success

There are lots of parts of SharePoint that you donrsquot code through Visual Studio Figure out how you move those through your environment

Other Topics

Site Design

Information architecture

Wireframes

Creative designs ndash Mobile first

Catalogs deep dive

Site build PowerShell scripts

Team Foundation Server and Application Lifecycle Management

Starting a new project

Managing content authoring

Site Improve tool

SEO Optimizations

Analytics options

Retaining Page Ranks with permanent redirects (301)

Azure SharePoint Hosting

Q amp A

Session Evaluations

Go to Evaluations on the home page of wwwcollabconorg

It is important to get your feedback

Please fill out evaluations for all the sessions you attend

Following the conference a random drawing from all completed evaluations will be selected

The winner will receive a $250 Future Shop gift card valid online or in store

Page 44: Web Content Management - CollabCon 2015 - Web... · Performances Complete Works ... Friendly URL An SEO friendly URL defined in the term store for a page, rather than ... What’s

Image Renditions

Display uploaded images in predefined sizes widths and crops

Multiple renditions stored in document sets

Content author can create renditions (including crops) in the browser

Design Manager

New way to build master

pages and layouts

SharePoint Designer no

longer required

Edit and preview in any HTML

editor

Automatically creates the associated

master page and aspx

layouts

Package into a Design

Package WSP for

deployment

Snippet Gallery

Select components

such as search box or

navigation control

Configure its properties

Paste the snippet into your HTML

master page or layout

Changes synched to

actual master pages and layouts to convert to SharePoint

components

Can be used by any web design

tool

Device Channels

Map channels to mobile devices or browsers

Alternate master pages

can be assigned

Page layouts can include or

exclude content based

on channel

Display Templates

Used to customize the

presentation of search results

No more XSLT

Three templates

bull Control ndash Overall structure of search results

bull Group ndash Show groups of results

bull Item ndash How each result is presented

Navigation and Friendly URLs

Site navigation driven by managed metadata

Term store used for navigation and SEO-friendly URLs

Connect site navigation to business concepts rather than site structure

Server side control outputs HTML for top nav left nav and breadcrumb

Plan is to convert to client-side to support Office 365

Term Store Setup

Two groups used to separate metadata from navigation

Metadata group setup globally

Static GUIDs consistent through all environments

Navigation group setup at the site collection level

Allows multiple copies for multiple sites on the farm

Search

Search is new and different from all previous versions of SharePoint

The platform has been consolidated Built on a combination of FAST Search and SharePoint Search components as well as new development work ndash it is the

same from Foundation to Server

Foundation Search is intended to replace WSS Search Microsoft Search Server and Search Server Express from previous versions of SharePoint

Itrsquos used pervasively throughout the product now in many different ways in different features eDiscovery navigation topic pages Internet facing business sites etc

Search in SharePoint 2013

Single Extensible Platform

FAST Engine

SharePoint Crawler

Best of both

Same Search Platform in both SharePoint and Exchange

Enterprise Search

Search Page Web parts added to a publishing page

Catalogs Cross-site publishing

Library search Executes in place on the library

Site Search _layouts15osssearchresultsaspx Specifies the site and search parameters

Search Centre Basic Search Center - SharePoint Foundation 2013 Enterprise Search Center - SharePoint Server 2013

Content Search Web Part

Similar in concept to the Content Query Web Part

Many advantages

Can go across sites site collections web apps even farms

Leverages the search index -gt very scalable

Query Builder makes it easy to define your results

Use Display Templates to customize the look and feel No more XSLT

Part of the Enterprise CAL

Pre-Configured CSWPs

Popular Items Shows items that have been recently viewed by many users

Recently Changed Items Shows items that have been modified recently This can help site users

track the latest activity on a site or a library

Recommended Items Show content recommendations based on usage patterns for the current

page

All of these can be further configured by editing their properties and changing the search criteria

Search Results Web Part

Similar functionality to the Content Search Web Part

Doesnrsquot allow property mapping in the web part configuration

Mapping is controlled in the Display Template

Part of the Standard CAL

Category Page Item Page

Catalogs

wwwcontosocomproductsAudio-Liware2g

Catalogs

Results

Consistent Displays

Manage content in one place

No need to create

pages

No need to format

Metadata Navigation

Cross-Site Publishing

Reuse content between different sites including site collections and farms

Catalogs can surface lists into publishing sites onto a category page and item pages

Can be surfaced through the Content Search Web Part

No need to create and publish web pages

Create custom friendly URLs

Metadata based navigation base

Cross Site Publishing

Job Posting

Job Posting

Job Posting

Job Posting

Simcoe County District School Board

50000 students

Over 6000 employees

Board office in Barrie

Bordered by the Holland Marsh in the south the Trent-Severn Waterway in the east Grey County in the west and Muskoka in the north

Simcoe County District School Board

119 schools and centres 87 elementary 16 secondary 6 learning centres 10 alternative

Each needs their own web site Being built on SharePoint 2013 Elementary panel first Each has their own unique URL Content authored both at the school and centrally from the board

wwwscdsbonca Pre-existing SharePoint 2010 site Future goal is to rebuild in SharePoint 2013

Business Challenge

100+ public web sites

No standardization on style technology or content

No ability for the board to push content to the school sites

Outdated sites

Not mobile or AODA compliant

Site Features

Fully Adaptivemobile design Robust Search functionality Template makes it fast and efficient to add new school sites News and events can be targeted by the Board to any number of

school sites Target by panel weather zone trustee language Presented in a blended view with the school news and events

Home page rotator links hours content pages all managed by the school staff

SEO-friendly URLs

News

School news entered by school staff

Board news entered in the board site

Rendered using cross-site publishing

High-priority alerts can be flagged to highlight on the site

Bus or school cancellations

Events

Single and multi-day events

School and board managed like news

Adaptive calendar

School Picker

Used to pick which schools to target news and events to

Schools are tagged through the term store

Target by panel weather zone trustee language

Can override and add or remove individual schools

Search

Catalogs

Three main steps

Enabling lists or libraries as catalogs

Creating the catalog connection

Building the page layouts to display the category rollups or item detail pages

Enabling Catalogs

Doesnrsquot have to be a list can be a document Images or Pages library

Experimenting using a Pages library

This gives us draft and published states that lists donrsquot support

Preview and editing is easier

Fairly simple script to do this

Catalog connections are more complex

Create the connection

Fix up the Term Store

Create the Category and Item page layouts and pages

SEO Enhancements

Friendly URLs

Home page redirects

XML sitemaps automatically generated and updated

Custom SEO properties

Usage Analytics

Built for scale from the ground up Detail data rolled up every 15 days amp anonymized Daily events purged every 15 days monthly events after 3 years Lifetime counts always retained

Counts views amp unique itemsday Shows recent (2-weeks) and lifetime count Trims least visited content Pushes aggregate data to reporting database

Drives recommendations capabilities on content Calculations injected into search index as sortable managed properties Deep integration with search engine Can influence search relevance based on content usage

Variations and Multi-Lingual

Export and import content for translation in XLIFF format

Pages

Labels

List items

Navigation

Bing translation service comes with active SharePoint 2013 license

Adaptive Web Design

Adaptive vs Responsive

Adaptive

Fixed breakpoints‒ Desktop gt 980 px

‒ Table portrait gt 768 px

‒ Phone to tablet gt 480 px lt 768 px

‒ Smartphone lt 480 px

Responsive

No fixed breakpoints

Design fluidly adapts to whatever width the browser is

We generally do a hybrid approach with responsive design in the under 768 pixel situation

Design Approaches in SharePoint

Adaptive Design through CSS media queries

Broader standards approach used outside of SharePoint

Keeps a single master page and CSS

Some unnecessary components may still be loaded

Device Channels SharePoint specific approach

Assign different master pages to different device channels

Rules define what devices use which channels

Device Channel Panels can also target content to channels

Hybrid here can also make sense Device channels can be used to remove unnecessary items from the page payload

Our Adaptive Approach

Built using the Twitter Boostrap CSS framework

twittergithubcombootstrap

Provides a responsive design framework for supporting PC Mac tablet and mobile

We enhanced to provide better touch navigation support

Can be leveraged in the master page page layouts and display templates

Incorporated into the SharePoint 2013 Design Master

HTML based master page that can be edited with any tool

SharePoint converts to a master page when uploaded or saved

Additional Open Source Tools and Resources

HTML CSS JavaScript jQuery

httpwwww3schoolscom

httpgetbootstrapcom

httphandlebarsjscom

httpknockoutjscom

httpsangularjsorg

httpmomentjscom

Content Search Web Part

Web part is configured to return search results

Executed as client-side code in the browser

Pair of display templates map the data returned to HTML

Control template for the overall structure

Item template for each item returned

HTML Designer Manager files are compiled to JavaScript

REST Search and Handlebars

Search is accessible through REST calls

httpsiteurl_apisearchquery

Returns results as a JSON array

Handlebars is a templating engine to format that

Conceptually similar to display templates with control and item sections

jQuery glues this all together

Steps to Experiment

F12 to get into Developer Toolbar

Set a breakpoint where the REST URL is determined

Copy the value

Paste into the REST Search test window

Experiment with the query

Adjust the Handlebars template appropriately

Search Setup

Content Sources to define and schedule the crawls

Crawl logs to review success

Search Schema to define the managed properties

Reusable Content

Snippets of HTML that can be reused throughout the site

JavaScript can be intelligent and use the URL to determine its behaviour

Makes it easy for content authors to drop pre-configured dynamic content onto pages

Topic Pages

Shows all items that match a topic

Could be hundreds of virtual pages

Only one template page

Easily customizable and SEO friendly (each topic appears to be its own page)

Content by search web part open search against a query or result source

May be able to surface the topic pages themselves as site search results

Public Health Ontario

httpwwwpublichealthontariocaenBrowseByTopicPagesTopicaspxk=Influenza20InformationByTopic22Influenza22

Ontario Association of Childrens Aid Societies

Application Lifecycle Management

Purpose

How do we build a solid SharePoint development environment for the enterprise

How do a number of developers work together on a SharePoint project

How does code and content move through a dev test and production lifecycle

What is Agile and Continuous Integration and why is it important

Visual Studio and Team Foundation Server

Visual Studio 2010 is the development platform for coding on SharePoint 2010

Team Foundation Server integrates with Visual Studio to provide a repository for code test and other project artifacts

It facilitates teamwork by providing a common place for developers to work together

Provisioning SharePoint Farms

Provisioning SharePoint Farms

Every developer needs their own complete SharePoint farm

Teams need a dev integration farm to bring their work together on

A full architecture needs QA and production farms as well

Envision IT Virtualization Architecture

Developer VM Template

SharePoint Server 2010 Enterprise

SP1 and August CU

Visual Studio 2010 Premium SP1

Office 2010 Professional Plus SP1

SharePoint Designer 2010 SP1

Fiddler

SQL Server 2008 R2 SP1

Creating a new Developer VM

Open System Centre Virtual Machine Manager

Create Virtual Machine

Choose the Developer VM template

Set the virtual machine name and options

Create and start the VM

Creating a new Developer VM - Step 2

Developer RDPs to their new VM Complete the SQL Server installation

Create the default instance Set the service account(s) Set the authentication mode and server administrators

Update the AutoSPInstallerInputxml file Set the machine name for the default sites and database server Set the service account passwords

Run the AutoSPInstallerLaunch batch file Do a Health check review

Creating a new Developer VM - Step 3

Start Visual Studio

Connect to the Team Foundation Server

Setup your workspaces

Use a standard naming convention across your team

CDevelopmentTFSCollection

Other Environments

Dev Integration QA and Production can all be built using AutoSPInstall

Donrsquot need or want the Visual Studio or Office tools on these servers

We have a base template we use for dev integration servers

QA should match the Prod architecture as closely as possible

High availability with load balancing clustered SQL app servers DMZ hardening Internet publishing

Agile Development

Agile with Team Foundation Server

Creating Your TFS Project

Open Visual Studio

Make sure you are connected to the right Team Project Collection

In Team Explorer right-click the top collection and create a new Team Project

Use the Scrum 10 template

Go into the Areas and Iterations Delete the extraneous releases and sprints

Create a product backlog iteration

Start adding your stories and tasks

Continuous Integration

Continuous Integration

Automated Testing

SharePoint Site Elements

Site structure Site columns content types subsites lists libraries

Branding elements Master pages layouts CSS XSLT supporting images

Custom web parts Page and site content Web part instances Search Workflows Business Connectivity Services Managed Metadata

SharePoint Site Elements ndash Part 2

Access Excel Word Visio

PerformancePoint

Document conversions

Timer jobs

Secure Store Service

User profiles

Site Structure

bull Site columns

bull Define the fields that are used by content types

bull Content types

bull Defines collections of site columns for different types of content

bull Subsites

bull The hierarchy of sites that make up the site collection

bull Lists and Libraries

bull The lists and libraries for each subsite

Site Structure ndash Part 2

Site columns and content types can be programmatically or manually created If they are going to be used in multiple site collections they should be

programmatically created

If a single site collection they can be created manually in a master site collection

GUIDs cannot be manually set and code may need them to be consistent

You can create them manually in SharePoint save the site as a template and import them into Visual Studio to create a proper WSP package

Site Structure ndash Part 3

Site structure can also be done either programmatically or manually

Many sites are complex and it is error prone to create manually

We use our own SiteModelBuilder tool to create the site structure

Site Structure ndash Part 4

For all site structure elements changes can also be manual or programmatic It is useful to be able to delete the whole site collection and recreate it

programmatically As soon as content starts being authored in SharePoint it becomes difficult

or impossible to do that

After content authoring has started Site column and content type changes need to be programmed explicitly

(you canrsquot just drop the content type and recreate it) Site structure changes are usually done manually at this point Changes need to be backed up and restored

Change Management

Page and Site Content

Page and site content is entered directly into SharePoint by the content authors Web pages images PDFs list content etc This should be done in the master site separate from where dev integration is

happening Care needs to be taken with this site once authors start working Make sure it is part of your production backup plan

Periodically back it up and restore it to the dev integration and developer VMs

Alternatively script the export and import Ultimately it will be backed up and restored to the QA and production

farms

Change Management

Change Management

Change Management

Change Management

Web part instances

Web parts ultimately get placed on pages

The configuration of the web parts can often get quite complex

You may want to disable editing of web parts for general content authors

They end up in a grey zone between code and content

Web part instances ndash Part 2

We created our own internal tool to export and import web parts

Each web partrsquos configuration can be exported into a webpartfile

We scripted the extraction from the dev integration

webpart files are treated like code and checked into TFS for version control

Script then applies the new webpart files to the target environment

Workflows

Workflows can be built using SharePoint Designer Visual Studio or third-party tools (Nintex or K2 primarily)

Visual Studio workflow projects are automatically packaged as WSP solution files Simply deploy the WSP file to the other environments

SharePoint Designer workflows need to be deployed using SharePoint Designer This means you need SPD access to production which is not always possible

You can load the SPD workflow into Visual Studio to package it but you lose the ability to edit it in SPD

If you use third-party tools yoursquoll need to define the process for that as well

Business Connectivity Services

BCS can be built using either SharePoint Designer or Visual Studio Visual Studio BCS projects are automatically packaged as WSP

solution files Simply deploy the WSP file to the other environments You can also export the BDC metadata model in the BDC service

application

SharePoint Designer doesnrsquot create a WSP and it doesnrsquot make a complete BDC metadata model You need to export and import using SharePoint Designer

In both cases you still need to deal with connection and configuration information

Future Directions

Visual Studio Lab Management

Integrates the management of HyperV environments in with Visual Studio and Team Foundation Server

Can automate the provisioning of lab environments for automated testing

Test failures can snapshot entire environments to make reproduction of errors much easier

Summary

Yoursquore going to have lots of SharePoint environments ndash figure out how to build them quickly and repeatable

Code and content often move in opposite directions through dev QA and Prod PowerShell script and automate to keep this simple

Agile is a great way to run projects

Continuous integration with automated testing is key to its success

There are lots of parts of SharePoint that you donrsquot code through Visual Studio Figure out how you move those through your environment

Other Topics

Site Design

Information architecture

Wireframes

Creative designs ndash Mobile first

Catalogs deep dive

Site build PowerShell scripts

Team Foundation Server and Application Lifecycle Management

Starting a new project

Managing content authoring

Site Improve tool

SEO Optimizations

Analytics options

Retaining Page Ranks with permanent redirects (301)

Azure SharePoint Hosting

Q amp A

Session Evaluations

Go to Evaluations on the home page of wwwcollabconorg

It is important to get your feedback

Please fill out evaluations for all the sessions you attend

Following the conference a random drawing from all completed evaluations will be selected

The winner will receive a $250 Future Shop gift card valid online or in store

Page 45: Web Content Management - CollabCon 2015 - Web... · Performances Complete Works ... Friendly URL An SEO friendly URL defined in the term store for a page, rather than ... What’s

Design Manager

New way to build master

pages and layouts

SharePoint Designer no

longer required

Edit and preview in any HTML

editor

Automatically creates the associated

master page and aspx

layouts

Package into a Design

Package WSP for

deployment

Snippet Gallery

Select components

such as search box or

navigation control

Configure its properties

Paste the snippet into your HTML

master page or layout

Changes synched to

actual master pages and layouts to convert to SharePoint

components

Can be used by any web design

tool

Device Channels

Map channels to mobile devices or browsers

Alternate master pages

can be assigned

Page layouts can include or

exclude content based

on channel

Display Templates

Used to customize the

presentation of search results

No more XSLT

Three templates

bull Control ndash Overall structure of search results

bull Group ndash Show groups of results

bull Item ndash How each result is presented

Navigation and Friendly URLs

Site navigation driven by managed metadata

Term store used for navigation and SEO-friendly URLs

Connect site navigation to business concepts rather than site structure

Server side control outputs HTML for top nav left nav and breadcrumb

Plan is to convert to client-side to support Office 365

Term Store Setup

Two groups used to separate metadata from navigation

Metadata group setup globally

Static GUIDs consistent through all environments

Navigation group setup at the site collection level

Allows multiple copies for multiple sites on the farm

Search

Search is new and different from all previous versions of SharePoint

The platform has been consolidated Built on a combination of FAST Search and SharePoint Search components as well as new development work ndash it is the

same from Foundation to Server

Foundation Search is intended to replace WSS Search Microsoft Search Server and Search Server Express from previous versions of SharePoint

Itrsquos used pervasively throughout the product now in many different ways in different features eDiscovery navigation topic pages Internet facing business sites etc

Search in SharePoint 2013

Single Extensible Platform

FAST Engine

SharePoint Crawler

Best of both

Same Search Platform in both SharePoint and Exchange

Enterprise Search

Search Page Web parts added to a publishing page

Catalogs Cross-site publishing

Library search Executes in place on the library

Site Search _layouts15osssearchresultsaspx Specifies the site and search parameters

Search Centre Basic Search Center - SharePoint Foundation 2013 Enterprise Search Center - SharePoint Server 2013

Content Search Web Part

Similar in concept to the Content Query Web Part

Many advantages

Can go across sites site collections web apps even farms

Leverages the search index -gt very scalable

Query Builder makes it easy to define your results

Use Display Templates to customize the look and feel No more XSLT

Part of the Enterprise CAL

Pre-Configured CSWPs

Popular Items Shows items that have been recently viewed by many users

Recently Changed Items Shows items that have been modified recently This can help site users

track the latest activity on a site or a library

Recommended Items Show content recommendations based on usage patterns for the current

page

All of these can be further configured by editing their properties and changing the search criteria

Search Results Web Part

Similar functionality to the Content Search Web Part

Doesnrsquot allow property mapping in the web part configuration

Mapping is controlled in the Display Template

Part of the Standard CAL

Category Page Item Page

Catalogs

wwwcontosocomproductsAudio-Liware2g

Catalogs

Results

Consistent Displays

Manage content in one place

No need to create

pages

No need to format

Metadata Navigation

Cross-Site Publishing

Reuse content between different sites including site collections and farms

Catalogs can surface lists into publishing sites onto a category page and item pages

Can be surfaced through the Content Search Web Part

No need to create and publish web pages

Create custom friendly URLs

Metadata based navigation base

Cross Site Publishing

Job Posting

Job Posting

Job Posting

Job Posting

Simcoe County District School Board

50000 students

Over 6000 employees

Board office in Barrie

Bordered by the Holland Marsh in the south the Trent-Severn Waterway in the east Grey County in the west and Muskoka in the north

Simcoe County District School Board

119 schools and centres 87 elementary 16 secondary 6 learning centres 10 alternative

Each needs their own web site Being built on SharePoint 2013 Elementary panel first Each has their own unique URL Content authored both at the school and centrally from the board

wwwscdsbonca Pre-existing SharePoint 2010 site Future goal is to rebuild in SharePoint 2013

Business Challenge

100+ public web sites

No standardization on style technology or content

No ability for the board to push content to the school sites

Outdated sites

Not mobile or AODA compliant

Site Features

Fully Adaptivemobile design Robust Search functionality Template makes it fast and efficient to add new school sites News and events can be targeted by the Board to any number of

school sites Target by panel weather zone trustee language Presented in a blended view with the school news and events

Home page rotator links hours content pages all managed by the school staff

SEO-friendly URLs

News

School news entered by school staff

Board news entered in the board site

Rendered using cross-site publishing

High-priority alerts can be flagged to highlight on the site

Bus or school cancellations

Events

Single and multi-day events

School and board managed like news

Adaptive calendar

School Picker

Used to pick which schools to target news and events to

Schools are tagged through the term store

Target by panel weather zone trustee language

Can override and add or remove individual schools

Search

Catalogs

Three main steps

Enabling lists or libraries as catalogs

Creating the catalog connection

Building the page layouts to display the category rollups or item detail pages

Enabling Catalogs

Doesnrsquot have to be a list can be a document Images or Pages library

Experimenting using a Pages library

This gives us draft and published states that lists donrsquot support

Preview and editing is easier

Fairly simple script to do this

Catalog connections are more complex

Create the connection

Fix up the Term Store

Create the Category and Item page layouts and pages

SEO Enhancements

Friendly URLs

Home page redirects

XML sitemaps automatically generated and updated

Custom SEO properties

Usage Analytics

Built for scale from the ground up Detail data rolled up every 15 days amp anonymized Daily events purged every 15 days monthly events after 3 years Lifetime counts always retained

Counts views amp unique itemsday Shows recent (2-weeks) and lifetime count Trims least visited content Pushes aggregate data to reporting database

Drives recommendations capabilities on content Calculations injected into search index as sortable managed properties Deep integration with search engine Can influence search relevance based on content usage

Variations and Multi-Lingual

Export and import content for translation in XLIFF format

Pages

Labels

List items

Navigation

Bing translation service comes with active SharePoint 2013 license

Adaptive Web Design

Adaptive vs Responsive

Adaptive

Fixed breakpoints‒ Desktop gt 980 px

‒ Table portrait gt 768 px

‒ Phone to tablet gt 480 px lt 768 px

‒ Smartphone lt 480 px

Responsive

No fixed breakpoints

Design fluidly adapts to whatever width the browser is

We generally do a hybrid approach with responsive design in the under 768 pixel situation

Design Approaches in SharePoint

Adaptive Design through CSS media queries

Broader standards approach used outside of SharePoint

Keeps a single master page and CSS

Some unnecessary components may still be loaded

Device Channels SharePoint specific approach

Assign different master pages to different device channels

Rules define what devices use which channels

Device Channel Panels can also target content to channels

Hybrid here can also make sense Device channels can be used to remove unnecessary items from the page payload

Our Adaptive Approach

Built using the Twitter Boostrap CSS framework

twittergithubcombootstrap

Provides a responsive design framework for supporting PC Mac tablet and mobile

We enhanced to provide better touch navigation support

Can be leveraged in the master page page layouts and display templates

Incorporated into the SharePoint 2013 Design Master

HTML based master page that can be edited with any tool

SharePoint converts to a master page when uploaded or saved

Additional Open Source Tools and Resources

HTML CSS JavaScript jQuery

httpwwww3schoolscom

httpgetbootstrapcom

httphandlebarsjscom

httpknockoutjscom

httpsangularjsorg

httpmomentjscom

Content Search Web Part

Web part is configured to return search results

Executed as client-side code in the browser

Pair of display templates map the data returned to HTML

Control template for the overall structure

Item template for each item returned

HTML Designer Manager files are compiled to JavaScript

REST Search and Handlebars

Search is accessible through REST calls

httpsiteurl_apisearchquery

Returns results as a JSON array

Handlebars is a templating engine to format that

Conceptually similar to display templates with control and item sections

jQuery glues this all together

Steps to Experiment

F12 to get into Developer Toolbar

Set a breakpoint where the REST URL is determined

Copy the value

Paste into the REST Search test window

Experiment with the query

Adjust the Handlebars template appropriately

Search Setup

Content Sources to define and schedule the crawls

Crawl logs to review success

Search Schema to define the managed properties

Reusable Content

Snippets of HTML that can be reused throughout the site

JavaScript can be intelligent and use the URL to determine its behaviour

Makes it easy for content authors to drop pre-configured dynamic content onto pages

Topic Pages

Shows all items that match a topic

Could be hundreds of virtual pages

Only one template page

Easily customizable and SEO friendly (each topic appears to be its own page)

Content by search web part open search against a query or result source

May be able to surface the topic pages themselves as site search results

Public Health Ontario

httpwwwpublichealthontariocaenBrowseByTopicPagesTopicaspxk=Influenza20InformationByTopic22Influenza22

Ontario Association of Childrens Aid Societies

Application Lifecycle Management

Purpose

How do we build a solid SharePoint development environment for the enterprise

How do a number of developers work together on a SharePoint project

How does code and content move through a dev test and production lifecycle

What is Agile and Continuous Integration and why is it important

Visual Studio and Team Foundation Server

Visual Studio 2010 is the development platform for coding on SharePoint 2010

Team Foundation Server integrates with Visual Studio to provide a repository for code test and other project artifacts

It facilitates teamwork by providing a common place for developers to work together

Provisioning SharePoint Farms

Provisioning SharePoint Farms

Every developer needs their own complete SharePoint farm

Teams need a dev integration farm to bring their work together on

A full architecture needs QA and production farms as well

Envision IT Virtualization Architecture

Developer VM Template

SharePoint Server 2010 Enterprise

SP1 and August CU

Visual Studio 2010 Premium SP1

Office 2010 Professional Plus SP1

SharePoint Designer 2010 SP1

Fiddler

SQL Server 2008 R2 SP1

Creating a new Developer VM

Open System Centre Virtual Machine Manager

Create Virtual Machine

Choose the Developer VM template

Set the virtual machine name and options

Create and start the VM

Creating a new Developer VM - Step 2

Developer RDPs to their new VM Complete the SQL Server installation

Create the default instance Set the service account(s) Set the authentication mode and server administrators

Update the AutoSPInstallerInputxml file Set the machine name for the default sites and database server Set the service account passwords

Run the AutoSPInstallerLaunch batch file Do a Health check review

Creating a new Developer VM - Step 3

Start Visual Studio

Connect to the Team Foundation Server

Setup your workspaces

Use a standard naming convention across your team

CDevelopmentTFSCollection

Other Environments

Dev Integration QA and Production can all be built using AutoSPInstall

Donrsquot need or want the Visual Studio or Office tools on these servers

We have a base template we use for dev integration servers

QA should match the Prod architecture as closely as possible

High availability with load balancing clustered SQL app servers DMZ hardening Internet publishing

Agile Development

Agile with Team Foundation Server

Creating Your TFS Project

Open Visual Studio

Make sure you are connected to the right Team Project Collection

In Team Explorer right-click the top collection and create a new Team Project

Use the Scrum 10 template

Go into the Areas and Iterations Delete the extraneous releases and sprints

Create a product backlog iteration

Start adding your stories and tasks

Continuous Integration

Continuous Integration

Automated Testing

SharePoint Site Elements

Site structure Site columns content types subsites lists libraries

Branding elements Master pages layouts CSS XSLT supporting images

Custom web parts Page and site content Web part instances Search Workflows Business Connectivity Services Managed Metadata

SharePoint Site Elements ndash Part 2

Access Excel Word Visio

PerformancePoint

Document conversions

Timer jobs

Secure Store Service

User profiles

Site Structure

bull Site columns

bull Define the fields that are used by content types

bull Content types

bull Defines collections of site columns for different types of content

bull Subsites

bull The hierarchy of sites that make up the site collection

bull Lists and Libraries

bull The lists and libraries for each subsite

Site Structure ndash Part 2

Site columns and content types can be programmatically or manually created If they are going to be used in multiple site collections they should be

programmatically created

If a single site collection they can be created manually in a master site collection

GUIDs cannot be manually set and code may need them to be consistent

You can create them manually in SharePoint save the site as a template and import them into Visual Studio to create a proper WSP package

Site Structure ndash Part 3

Site structure can also be done either programmatically or manually

Many sites are complex and it is error prone to create manually

We use our own SiteModelBuilder tool to create the site structure

Site Structure ndash Part 4

For all site structure elements changes can also be manual or programmatic It is useful to be able to delete the whole site collection and recreate it

programmatically As soon as content starts being authored in SharePoint it becomes difficult

or impossible to do that

After content authoring has started Site column and content type changes need to be programmed explicitly

(you canrsquot just drop the content type and recreate it) Site structure changes are usually done manually at this point Changes need to be backed up and restored

Change Management

Page and Site Content

Page and site content is entered directly into SharePoint by the content authors Web pages images PDFs list content etc This should be done in the master site separate from where dev integration is

happening Care needs to be taken with this site once authors start working Make sure it is part of your production backup plan

Periodically back it up and restore it to the dev integration and developer VMs

Alternatively script the export and import Ultimately it will be backed up and restored to the QA and production

farms

Change Management

Change Management

Change Management

Change Management

Web part instances

Web parts ultimately get placed on pages

The configuration of the web parts can often get quite complex

You may want to disable editing of web parts for general content authors

They end up in a grey zone between code and content

Web part instances ndash Part 2

We created our own internal tool to export and import web parts

Each web partrsquos configuration can be exported into a webpartfile

We scripted the extraction from the dev integration

webpart files are treated like code and checked into TFS for version control

Script then applies the new webpart files to the target environment

Workflows

Workflows can be built using SharePoint Designer Visual Studio or third-party tools (Nintex or K2 primarily)

Visual Studio workflow projects are automatically packaged as WSP solution files Simply deploy the WSP file to the other environments

SharePoint Designer workflows need to be deployed using SharePoint Designer This means you need SPD access to production which is not always possible

You can load the SPD workflow into Visual Studio to package it but you lose the ability to edit it in SPD

If you use third-party tools yoursquoll need to define the process for that as well

Business Connectivity Services

BCS can be built using either SharePoint Designer or Visual Studio Visual Studio BCS projects are automatically packaged as WSP

solution files Simply deploy the WSP file to the other environments You can also export the BDC metadata model in the BDC service

application

SharePoint Designer doesnrsquot create a WSP and it doesnrsquot make a complete BDC metadata model You need to export and import using SharePoint Designer

In both cases you still need to deal with connection and configuration information

Future Directions

Visual Studio Lab Management

Integrates the management of HyperV environments in with Visual Studio and Team Foundation Server

Can automate the provisioning of lab environments for automated testing

Test failures can snapshot entire environments to make reproduction of errors much easier

Summary

Yoursquore going to have lots of SharePoint environments ndash figure out how to build them quickly and repeatable

Code and content often move in opposite directions through dev QA and Prod PowerShell script and automate to keep this simple

Agile is a great way to run projects

Continuous integration with automated testing is key to its success

There are lots of parts of SharePoint that you donrsquot code through Visual Studio Figure out how you move those through your environment

Other Topics

Site Design

Information architecture

Wireframes

Creative designs ndash Mobile first

Catalogs deep dive

Site build PowerShell scripts

Team Foundation Server and Application Lifecycle Management

Starting a new project

Managing content authoring

Site Improve tool

SEO Optimizations

Analytics options

Retaining Page Ranks with permanent redirects (301)

Azure SharePoint Hosting

Q amp A

Session Evaluations

Go to Evaluations on the home page of wwwcollabconorg

It is important to get your feedback

Please fill out evaluations for all the sessions you attend

Following the conference a random drawing from all completed evaluations will be selected

The winner will receive a $250 Future Shop gift card valid online or in store

Page 46: Web Content Management - CollabCon 2015 - Web... · Performances Complete Works ... Friendly URL An SEO friendly URL defined in the term store for a page, rather than ... What’s

Snippet Gallery

Select components

such as search box or

navigation control

Configure its properties

Paste the snippet into your HTML

master page or layout

Changes synched to

actual master pages and layouts to convert to SharePoint

components

Can be used by any web design

tool

Device Channels

Map channels to mobile devices or browsers

Alternate master pages

can be assigned

Page layouts can include or

exclude content based

on channel

Display Templates

Used to customize the

presentation of search results

No more XSLT

Three templates

bull Control ndash Overall structure of search results

bull Group ndash Show groups of results

bull Item ndash How each result is presented

Navigation and Friendly URLs

Site navigation driven by managed metadata

Term store used for navigation and SEO-friendly URLs

Connect site navigation to business concepts rather than site structure

Server side control outputs HTML for top nav left nav and breadcrumb

Plan is to convert to client-side to support Office 365

Term Store Setup

Two groups used to separate metadata from navigation

Metadata group setup globally

Static GUIDs consistent through all environments

Navigation group setup at the site collection level

Allows multiple copies for multiple sites on the farm

Search

Search is new and different from all previous versions of SharePoint

The platform has been consolidated Built on a combination of FAST Search and SharePoint Search components as well as new development work ndash it is the

same from Foundation to Server

Foundation Search is intended to replace WSS Search Microsoft Search Server and Search Server Express from previous versions of SharePoint

Itrsquos used pervasively throughout the product now in many different ways in different features eDiscovery navigation topic pages Internet facing business sites etc

Search in SharePoint 2013

Single Extensible Platform

FAST Engine

SharePoint Crawler

Best of both

Same Search Platform in both SharePoint and Exchange

Enterprise Search

Search Page Web parts added to a publishing page

Catalogs Cross-site publishing

Library search Executes in place on the library

Site Search _layouts15osssearchresultsaspx Specifies the site and search parameters

Search Centre Basic Search Center - SharePoint Foundation 2013 Enterprise Search Center - SharePoint Server 2013

Content Search Web Part

Similar in concept to the Content Query Web Part

Many advantages

Can go across sites site collections web apps even farms

Leverages the search index -gt very scalable

Query Builder makes it easy to define your results

Use Display Templates to customize the look and feel No more XSLT

Part of the Enterprise CAL

Pre-Configured CSWPs

Popular Items Shows items that have been recently viewed by many users

Recently Changed Items Shows items that have been modified recently This can help site users

track the latest activity on a site or a library

Recommended Items Show content recommendations based on usage patterns for the current

page

All of these can be further configured by editing their properties and changing the search criteria

Search Results Web Part

Similar functionality to the Content Search Web Part

Doesnrsquot allow property mapping in the web part configuration

Mapping is controlled in the Display Template

Part of the Standard CAL

Category Page Item Page

Catalogs

wwwcontosocomproductsAudio-Liware2g

Catalogs

Results

Consistent Displays

Manage content in one place

No need to create

pages

No need to format

Metadata Navigation

Cross-Site Publishing

Reuse content between different sites including site collections and farms

Catalogs can surface lists into publishing sites onto a category page and item pages

Can be surfaced through the Content Search Web Part

No need to create and publish web pages

Create custom friendly URLs

Metadata based navigation base

Cross Site Publishing

Job Posting

Job Posting

Job Posting

Job Posting

Simcoe County District School Board

50000 students

Over 6000 employees

Board office in Barrie

Bordered by the Holland Marsh in the south the Trent-Severn Waterway in the east Grey County in the west and Muskoka in the north

Simcoe County District School Board

119 schools and centres 87 elementary 16 secondary 6 learning centres 10 alternative

Each needs their own web site Being built on SharePoint 2013 Elementary panel first Each has their own unique URL Content authored both at the school and centrally from the board

wwwscdsbonca Pre-existing SharePoint 2010 site Future goal is to rebuild in SharePoint 2013

Business Challenge

100+ public web sites

No standardization on style technology or content

No ability for the board to push content to the school sites

Outdated sites

Not mobile or AODA compliant

Site Features

Fully Adaptivemobile design Robust Search functionality Template makes it fast and efficient to add new school sites News and events can be targeted by the Board to any number of

school sites Target by panel weather zone trustee language Presented in a blended view with the school news and events

Home page rotator links hours content pages all managed by the school staff

SEO-friendly URLs

News

School news entered by school staff

Board news entered in the board site

Rendered using cross-site publishing

High-priority alerts can be flagged to highlight on the site

Bus or school cancellations

Events

Single and multi-day events

School and board managed like news

Adaptive calendar

School Picker

Used to pick which schools to target news and events to

Schools are tagged through the term store

Target by panel weather zone trustee language

Can override and add or remove individual schools

Search

Catalogs

Three main steps

Enabling lists or libraries as catalogs

Creating the catalog connection

Building the page layouts to display the category rollups or item detail pages

Enabling Catalogs

Doesnrsquot have to be a list can be a document Images or Pages library

Experimenting using a Pages library

This gives us draft and published states that lists donrsquot support

Preview and editing is easier

Fairly simple script to do this

Catalog connections are more complex

Create the connection

Fix up the Term Store

Create the Category and Item page layouts and pages

SEO Enhancements

Friendly URLs

Home page redirects

XML sitemaps automatically generated and updated

Custom SEO properties

Usage Analytics

Built for scale from the ground up Detail data rolled up every 15 days amp anonymized Daily events purged every 15 days monthly events after 3 years Lifetime counts always retained

Counts views amp unique itemsday Shows recent (2-weeks) and lifetime count Trims least visited content Pushes aggregate data to reporting database

Drives recommendations capabilities on content Calculations injected into search index as sortable managed properties Deep integration with search engine Can influence search relevance based on content usage

Variations and Multi-Lingual

Export and import content for translation in XLIFF format

Pages

Labels

List items

Navigation

Bing translation service comes with active SharePoint 2013 license

Adaptive Web Design

Adaptive vs Responsive

Adaptive

Fixed breakpoints‒ Desktop gt 980 px

‒ Table portrait gt 768 px

‒ Phone to tablet gt 480 px lt 768 px

‒ Smartphone lt 480 px

Responsive

No fixed breakpoints

Design fluidly adapts to whatever width the browser is

We generally do a hybrid approach with responsive design in the under 768 pixel situation

Design Approaches in SharePoint

Adaptive Design through CSS media queries

Broader standards approach used outside of SharePoint

Keeps a single master page and CSS

Some unnecessary components may still be loaded

Device Channels SharePoint specific approach

Assign different master pages to different device channels

Rules define what devices use which channels

Device Channel Panels can also target content to channels

Hybrid here can also make sense Device channels can be used to remove unnecessary items from the page payload

Our Adaptive Approach

Built using the Twitter Boostrap CSS framework

twittergithubcombootstrap

Provides a responsive design framework for supporting PC Mac tablet and mobile

We enhanced to provide better touch navigation support

Can be leveraged in the master page page layouts and display templates

Incorporated into the SharePoint 2013 Design Master

HTML based master page that can be edited with any tool

SharePoint converts to a master page when uploaded or saved

Additional Open Source Tools and Resources

HTML CSS JavaScript jQuery

httpwwww3schoolscom

httpgetbootstrapcom

httphandlebarsjscom

httpknockoutjscom

httpsangularjsorg

httpmomentjscom

Content Search Web Part

Web part is configured to return search results

Executed as client-side code in the browser

Pair of display templates map the data returned to HTML

Control template for the overall structure

Item template for each item returned

HTML Designer Manager files are compiled to JavaScript

REST Search and Handlebars

Search is accessible through REST calls

httpsiteurl_apisearchquery

Returns results as a JSON array

Handlebars is a templating engine to format that

Conceptually similar to display templates with control and item sections

jQuery glues this all together

Steps to Experiment

F12 to get into Developer Toolbar

Set a breakpoint where the REST URL is determined

Copy the value

Paste into the REST Search test window

Experiment with the query

Adjust the Handlebars template appropriately

Search Setup

Content Sources to define and schedule the crawls

Crawl logs to review success

Search Schema to define the managed properties

Reusable Content

Snippets of HTML that can be reused throughout the site

JavaScript can be intelligent and use the URL to determine its behaviour

Makes it easy for content authors to drop pre-configured dynamic content onto pages

Topic Pages

Shows all items that match a topic

Could be hundreds of virtual pages

Only one template page

Easily customizable and SEO friendly (each topic appears to be its own page)

Content by search web part open search against a query or result source

May be able to surface the topic pages themselves as site search results

Public Health Ontario

httpwwwpublichealthontariocaenBrowseByTopicPagesTopicaspxk=Influenza20InformationByTopic22Influenza22

Ontario Association of Childrens Aid Societies

Application Lifecycle Management

Purpose

How do we build a solid SharePoint development environment for the enterprise

How do a number of developers work together on a SharePoint project

How does code and content move through a dev test and production lifecycle

What is Agile and Continuous Integration and why is it important

Visual Studio and Team Foundation Server

Visual Studio 2010 is the development platform for coding on SharePoint 2010

Team Foundation Server integrates with Visual Studio to provide a repository for code test and other project artifacts

It facilitates teamwork by providing a common place for developers to work together

Provisioning SharePoint Farms

Provisioning SharePoint Farms

Every developer needs their own complete SharePoint farm

Teams need a dev integration farm to bring their work together on

A full architecture needs QA and production farms as well

Envision IT Virtualization Architecture

Developer VM Template

SharePoint Server 2010 Enterprise

SP1 and August CU

Visual Studio 2010 Premium SP1

Office 2010 Professional Plus SP1

SharePoint Designer 2010 SP1

Fiddler

SQL Server 2008 R2 SP1

Creating a new Developer VM

Open System Centre Virtual Machine Manager

Create Virtual Machine

Choose the Developer VM template

Set the virtual machine name and options

Create and start the VM

Creating a new Developer VM - Step 2

Developer RDPs to their new VM Complete the SQL Server installation

Create the default instance Set the service account(s) Set the authentication mode and server administrators

Update the AutoSPInstallerInputxml file Set the machine name for the default sites and database server Set the service account passwords

Run the AutoSPInstallerLaunch batch file Do a Health check review

Creating a new Developer VM - Step 3

Start Visual Studio

Connect to the Team Foundation Server

Setup your workspaces

Use a standard naming convention across your team

CDevelopmentTFSCollection

Other Environments

Dev Integration QA and Production can all be built using AutoSPInstall

Donrsquot need or want the Visual Studio or Office tools on these servers

We have a base template we use for dev integration servers

QA should match the Prod architecture as closely as possible

High availability with load balancing clustered SQL app servers DMZ hardening Internet publishing

Agile Development

Agile with Team Foundation Server

Creating Your TFS Project

Open Visual Studio

Make sure you are connected to the right Team Project Collection

In Team Explorer right-click the top collection and create a new Team Project

Use the Scrum 10 template

Go into the Areas and Iterations Delete the extraneous releases and sprints

Create a product backlog iteration

Start adding your stories and tasks

Continuous Integration

Continuous Integration

Automated Testing

SharePoint Site Elements

Site structure Site columns content types subsites lists libraries

Branding elements Master pages layouts CSS XSLT supporting images

Custom web parts Page and site content Web part instances Search Workflows Business Connectivity Services Managed Metadata

SharePoint Site Elements ndash Part 2

Access Excel Word Visio

PerformancePoint

Document conversions

Timer jobs

Secure Store Service

User profiles

Site Structure

bull Site columns

bull Define the fields that are used by content types

bull Content types

bull Defines collections of site columns for different types of content

bull Subsites

bull The hierarchy of sites that make up the site collection

bull Lists and Libraries

bull The lists and libraries for each subsite

Site Structure ndash Part 2

Site columns and content types can be programmatically or manually created If they are going to be used in multiple site collections they should be

programmatically created

If a single site collection they can be created manually in a master site collection

GUIDs cannot be manually set and code may need them to be consistent

You can create them manually in SharePoint save the site as a template and import them into Visual Studio to create a proper WSP package

Site Structure ndash Part 3

Site structure can also be done either programmatically or manually

Many sites are complex and it is error prone to create manually

We use our own SiteModelBuilder tool to create the site structure

Site Structure ndash Part 4

For all site structure elements changes can also be manual or programmatic It is useful to be able to delete the whole site collection and recreate it

programmatically As soon as content starts being authored in SharePoint it becomes difficult

or impossible to do that

After content authoring has started Site column and content type changes need to be programmed explicitly

(you canrsquot just drop the content type and recreate it) Site structure changes are usually done manually at this point Changes need to be backed up and restored

Change Management

Page and Site Content

Page and site content is entered directly into SharePoint by the content authors Web pages images PDFs list content etc This should be done in the master site separate from where dev integration is

happening Care needs to be taken with this site once authors start working Make sure it is part of your production backup plan

Periodically back it up and restore it to the dev integration and developer VMs

Alternatively script the export and import Ultimately it will be backed up and restored to the QA and production

farms

Change Management

Change Management

Change Management

Change Management

Web part instances

Web parts ultimately get placed on pages

The configuration of the web parts can often get quite complex

You may want to disable editing of web parts for general content authors

They end up in a grey zone between code and content

Web part instances ndash Part 2

We created our own internal tool to export and import web parts

Each web partrsquos configuration can be exported into a webpartfile

We scripted the extraction from the dev integration

webpart files are treated like code and checked into TFS for version control

Script then applies the new webpart files to the target environment

Workflows

Workflows can be built using SharePoint Designer Visual Studio or third-party tools (Nintex or K2 primarily)

Visual Studio workflow projects are automatically packaged as WSP solution files Simply deploy the WSP file to the other environments

SharePoint Designer workflows need to be deployed using SharePoint Designer This means you need SPD access to production which is not always possible

You can load the SPD workflow into Visual Studio to package it but you lose the ability to edit it in SPD

If you use third-party tools yoursquoll need to define the process for that as well

Business Connectivity Services

BCS can be built using either SharePoint Designer or Visual Studio Visual Studio BCS projects are automatically packaged as WSP

solution files Simply deploy the WSP file to the other environments You can also export the BDC metadata model in the BDC service

application

SharePoint Designer doesnrsquot create a WSP and it doesnrsquot make a complete BDC metadata model You need to export and import using SharePoint Designer

In both cases you still need to deal with connection and configuration information

Future Directions

Visual Studio Lab Management

Integrates the management of HyperV environments in with Visual Studio and Team Foundation Server

Can automate the provisioning of lab environments for automated testing

Test failures can snapshot entire environments to make reproduction of errors much easier

Summary

Yoursquore going to have lots of SharePoint environments ndash figure out how to build them quickly and repeatable

Code and content often move in opposite directions through dev QA and Prod PowerShell script and automate to keep this simple

Agile is a great way to run projects

Continuous integration with automated testing is key to its success

There are lots of parts of SharePoint that you donrsquot code through Visual Studio Figure out how you move those through your environment

Other Topics

Site Design

Information architecture

Wireframes

Creative designs ndash Mobile first

Catalogs deep dive

Site build PowerShell scripts

Team Foundation Server and Application Lifecycle Management

Starting a new project

Managing content authoring

Site Improve tool

SEO Optimizations

Analytics options

Retaining Page Ranks with permanent redirects (301)

Azure SharePoint Hosting

Q amp A

Session Evaluations

Go to Evaluations on the home page of wwwcollabconorg

It is important to get your feedback

Please fill out evaluations for all the sessions you attend

Following the conference a random drawing from all completed evaluations will be selected

The winner will receive a $250 Future Shop gift card valid online or in store

Page 47: Web Content Management - CollabCon 2015 - Web... · Performances Complete Works ... Friendly URL An SEO friendly URL defined in the term store for a page, rather than ... What’s

Device Channels

Map channels to mobile devices or browsers

Alternate master pages

can be assigned

Page layouts can include or

exclude content based

on channel

Display Templates

Used to customize the

presentation of search results

No more XSLT

Three templates

bull Control ndash Overall structure of search results

bull Group ndash Show groups of results

bull Item ndash How each result is presented

Navigation and Friendly URLs

Site navigation driven by managed metadata

Term store used for navigation and SEO-friendly URLs

Connect site navigation to business concepts rather than site structure

Server side control outputs HTML for top nav left nav and breadcrumb

Plan is to convert to client-side to support Office 365

Term Store Setup

Two groups used to separate metadata from navigation

Metadata group setup globally

Static GUIDs consistent through all environments

Navigation group setup at the site collection level

Allows multiple copies for multiple sites on the farm

Search

Search is new and different from all previous versions of SharePoint

The platform has been consolidated Built on a combination of FAST Search and SharePoint Search components as well as new development work ndash it is the

same from Foundation to Server

Foundation Search is intended to replace WSS Search Microsoft Search Server and Search Server Express from previous versions of SharePoint

Itrsquos used pervasively throughout the product now in many different ways in different features eDiscovery navigation topic pages Internet facing business sites etc

Search in SharePoint 2013

Single Extensible Platform

FAST Engine

SharePoint Crawler

Best of both

Same Search Platform in both SharePoint and Exchange

Enterprise Search

Search Page Web parts added to a publishing page

Catalogs Cross-site publishing

Library search Executes in place on the library

Site Search _layouts15osssearchresultsaspx Specifies the site and search parameters

Search Centre Basic Search Center - SharePoint Foundation 2013 Enterprise Search Center - SharePoint Server 2013

Content Search Web Part

Similar in concept to the Content Query Web Part

Many advantages

Can go across sites site collections web apps even farms

Leverages the search index -gt very scalable

Query Builder makes it easy to define your results

Use Display Templates to customize the look and feel No more XSLT

Part of the Enterprise CAL

Pre-Configured CSWPs

Popular Items Shows items that have been recently viewed by many users

Recently Changed Items Shows items that have been modified recently This can help site users

track the latest activity on a site or a library

Recommended Items Show content recommendations based on usage patterns for the current

page

All of these can be further configured by editing their properties and changing the search criteria

Search Results Web Part

Similar functionality to the Content Search Web Part

Doesnrsquot allow property mapping in the web part configuration

Mapping is controlled in the Display Template

Part of the Standard CAL

Category Page Item Page

Catalogs

wwwcontosocomproductsAudio-Liware2g

Catalogs

Results

Consistent Displays

Manage content in one place

No need to create

pages

No need to format

Metadata Navigation

Cross-Site Publishing

Reuse content between different sites including site collections and farms

Catalogs can surface lists into publishing sites onto a category page and item pages

Can be surfaced through the Content Search Web Part

No need to create and publish web pages

Create custom friendly URLs

Metadata based navigation base

Cross Site Publishing

Job Posting

Job Posting

Job Posting

Job Posting

Simcoe County District School Board

50000 students

Over 6000 employees

Board office in Barrie

Bordered by the Holland Marsh in the south the Trent-Severn Waterway in the east Grey County in the west and Muskoka in the north

Simcoe County District School Board

119 schools and centres 87 elementary 16 secondary 6 learning centres 10 alternative

Each needs their own web site Being built on SharePoint 2013 Elementary panel first Each has their own unique URL Content authored both at the school and centrally from the board

wwwscdsbonca Pre-existing SharePoint 2010 site Future goal is to rebuild in SharePoint 2013

Business Challenge

100+ public web sites

No standardization on style technology or content

No ability for the board to push content to the school sites

Outdated sites

Not mobile or AODA compliant

Site Features

Fully Adaptivemobile design Robust Search functionality Template makes it fast and efficient to add new school sites News and events can be targeted by the Board to any number of

school sites Target by panel weather zone trustee language Presented in a blended view with the school news and events

Home page rotator links hours content pages all managed by the school staff

SEO-friendly URLs

News

School news entered by school staff

Board news entered in the board site

Rendered using cross-site publishing

High-priority alerts can be flagged to highlight on the site

Bus or school cancellations

Events

Single and multi-day events

School and board managed like news

Adaptive calendar

School Picker

Used to pick which schools to target news and events to

Schools are tagged through the term store

Target by panel weather zone trustee language

Can override and add or remove individual schools

Search

Catalogs

Three main steps

Enabling lists or libraries as catalogs

Creating the catalog connection

Building the page layouts to display the category rollups or item detail pages

Enabling Catalogs

Doesnrsquot have to be a list can be a document Images or Pages library

Experimenting using a Pages library

This gives us draft and published states that lists donrsquot support

Preview and editing is easier

Fairly simple script to do this

Catalog connections are more complex

Create the connection

Fix up the Term Store

Create the Category and Item page layouts and pages

SEO Enhancements

Friendly URLs

Home page redirects

XML sitemaps automatically generated and updated

Custom SEO properties

Usage Analytics

Built for scale from the ground up Detail data rolled up every 15 days amp anonymized Daily events purged every 15 days monthly events after 3 years Lifetime counts always retained

Counts views amp unique itemsday Shows recent (2-weeks) and lifetime count Trims least visited content Pushes aggregate data to reporting database

Drives recommendations capabilities on content Calculations injected into search index as sortable managed properties Deep integration with search engine Can influence search relevance based on content usage

Variations and Multi-Lingual

Export and import content for translation in XLIFF format

Pages

Labels

List items

Navigation

Bing translation service comes with active SharePoint 2013 license

Adaptive Web Design

Adaptive vs Responsive

Adaptive

Fixed breakpoints‒ Desktop gt 980 px

‒ Table portrait gt 768 px

‒ Phone to tablet gt 480 px lt 768 px

‒ Smartphone lt 480 px

Responsive

No fixed breakpoints

Design fluidly adapts to whatever width the browser is

We generally do a hybrid approach with responsive design in the under 768 pixel situation

Design Approaches in SharePoint

Adaptive Design through CSS media queries

Broader standards approach used outside of SharePoint

Keeps a single master page and CSS

Some unnecessary components may still be loaded

Device Channels SharePoint specific approach

Assign different master pages to different device channels

Rules define what devices use which channels

Device Channel Panels can also target content to channels

Hybrid here can also make sense Device channels can be used to remove unnecessary items from the page payload

Our Adaptive Approach

Built using the Twitter Boostrap CSS framework

twittergithubcombootstrap

Provides a responsive design framework for supporting PC Mac tablet and mobile

We enhanced to provide better touch navigation support

Can be leveraged in the master page page layouts and display templates

Incorporated into the SharePoint 2013 Design Master

HTML based master page that can be edited with any tool

SharePoint converts to a master page when uploaded or saved

Additional Open Source Tools and Resources

HTML CSS JavaScript jQuery

httpwwww3schoolscom

httpgetbootstrapcom

httphandlebarsjscom

httpknockoutjscom

httpsangularjsorg

httpmomentjscom

Content Search Web Part

Web part is configured to return search results

Executed as client-side code in the browser

Pair of display templates map the data returned to HTML

Control template for the overall structure

Item template for each item returned

HTML Designer Manager files are compiled to JavaScript

REST Search and Handlebars

Search is accessible through REST calls

httpsiteurl_apisearchquery

Returns results as a JSON array

Handlebars is a templating engine to format that

Conceptually similar to display templates with control and item sections

jQuery glues this all together

Steps to Experiment

F12 to get into Developer Toolbar

Set a breakpoint where the REST URL is determined

Copy the value

Paste into the REST Search test window

Experiment with the query

Adjust the Handlebars template appropriately

Search Setup

Content Sources to define and schedule the crawls

Crawl logs to review success

Search Schema to define the managed properties

Reusable Content

Snippets of HTML that can be reused throughout the site

JavaScript can be intelligent and use the URL to determine its behaviour

Makes it easy for content authors to drop pre-configured dynamic content onto pages

Topic Pages

Shows all items that match a topic

Could be hundreds of virtual pages

Only one template page

Easily customizable and SEO friendly (each topic appears to be its own page)

Content by search web part open search against a query or result source

May be able to surface the topic pages themselves as site search results

Public Health Ontario

httpwwwpublichealthontariocaenBrowseByTopicPagesTopicaspxk=Influenza20InformationByTopic22Influenza22

Ontario Association of Childrens Aid Societies

Application Lifecycle Management

Purpose

How do we build a solid SharePoint development environment for the enterprise

How do a number of developers work together on a SharePoint project

How does code and content move through a dev test and production lifecycle

What is Agile and Continuous Integration and why is it important

Visual Studio and Team Foundation Server

Visual Studio 2010 is the development platform for coding on SharePoint 2010

Team Foundation Server integrates with Visual Studio to provide a repository for code test and other project artifacts

It facilitates teamwork by providing a common place for developers to work together

Provisioning SharePoint Farms

Provisioning SharePoint Farms

Every developer needs their own complete SharePoint farm

Teams need a dev integration farm to bring their work together on

A full architecture needs QA and production farms as well

Envision IT Virtualization Architecture

Developer VM Template

SharePoint Server 2010 Enterprise

SP1 and August CU

Visual Studio 2010 Premium SP1

Office 2010 Professional Plus SP1

SharePoint Designer 2010 SP1

Fiddler

SQL Server 2008 R2 SP1

Creating a new Developer VM

Open System Centre Virtual Machine Manager

Create Virtual Machine

Choose the Developer VM template

Set the virtual machine name and options

Create and start the VM

Creating a new Developer VM - Step 2

Developer RDPs to their new VM Complete the SQL Server installation

Create the default instance Set the service account(s) Set the authentication mode and server administrators

Update the AutoSPInstallerInputxml file Set the machine name for the default sites and database server Set the service account passwords

Run the AutoSPInstallerLaunch batch file Do a Health check review

Creating a new Developer VM - Step 3

Start Visual Studio

Connect to the Team Foundation Server

Setup your workspaces

Use a standard naming convention across your team

CDevelopmentTFSCollection

Other Environments

Dev Integration QA and Production can all be built using AutoSPInstall

Donrsquot need or want the Visual Studio or Office tools on these servers

We have a base template we use for dev integration servers

QA should match the Prod architecture as closely as possible

High availability with load balancing clustered SQL app servers DMZ hardening Internet publishing

Agile Development

Agile with Team Foundation Server

Creating Your TFS Project

Open Visual Studio

Make sure you are connected to the right Team Project Collection

In Team Explorer right-click the top collection and create a new Team Project

Use the Scrum 10 template

Go into the Areas and Iterations Delete the extraneous releases and sprints

Create a product backlog iteration

Start adding your stories and tasks

Continuous Integration

Continuous Integration

Automated Testing

SharePoint Site Elements

Site structure Site columns content types subsites lists libraries

Branding elements Master pages layouts CSS XSLT supporting images

Custom web parts Page and site content Web part instances Search Workflows Business Connectivity Services Managed Metadata

SharePoint Site Elements ndash Part 2

Access Excel Word Visio

PerformancePoint

Document conversions

Timer jobs

Secure Store Service

User profiles

Site Structure

bull Site columns

bull Define the fields that are used by content types

bull Content types

bull Defines collections of site columns for different types of content

bull Subsites

bull The hierarchy of sites that make up the site collection

bull Lists and Libraries

bull The lists and libraries for each subsite

Site Structure ndash Part 2

Site columns and content types can be programmatically or manually created If they are going to be used in multiple site collections they should be

programmatically created

If a single site collection they can be created manually in a master site collection

GUIDs cannot be manually set and code may need them to be consistent

You can create them manually in SharePoint save the site as a template and import them into Visual Studio to create a proper WSP package

Site Structure ndash Part 3

Site structure can also be done either programmatically or manually

Many sites are complex and it is error prone to create manually

We use our own SiteModelBuilder tool to create the site structure

Site Structure ndash Part 4

For all site structure elements changes can also be manual or programmatic It is useful to be able to delete the whole site collection and recreate it

programmatically As soon as content starts being authored in SharePoint it becomes difficult

or impossible to do that

After content authoring has started Site column and content type changes need to be programmed explicitly

(you canrsquot just drop the content type and recreate it) Site structure changes are usually done manually at this point Changes need to be backed up and restored

Change Management

Page and Site Content

Page and site content is entered directly into SharePoint by the content authors Web pages images PDFs list content etc This should be done in the master site separate from where dev integration is

happening Care needs to be taken with this site once authors start working Make sure it is part of your production backup plan

Periodically back it up and restore it to the dev integration and developer VMs

Alternatively script the export and import Ultimately it will be backed up and restored to the QA and production

farms

Change Management

Change Management

Change Management

Change Management

Web part instances

Web parts ultimately get placed on pages

The configuration of the web parts can often get quite complex

You may want to disable editing of web parts for general content authors

They end up in a grey zone between code and content

Web part instances ndash Part 2

We created our own internal tool to export and import web parts

Each web partrsquos configuration can be exported into a webpartfile

We scripted the extraction from the dev integration

webpart files are treated like code and checked into TFS for version control

Script then applies the new webpart files to the target environment

Workflows

Workflows can be built using SharePoint Designer Visual Studio or third-party tools (Nintex or K2 primarily)

Visual Studio workflow projects are automatically packaged as WSP solution files Simply deploy the WSP file to the other environments

SharePoint Designer workflows need to be deployed using SharePoint Designer This means you need SPD access to production which is not always possible

You can load the SPD workflow into Visual Studio to package it but you lose the ability to edit it in SPD

If you use third-party tools yoursquoll need to define the process for that as well

Business Connectivity Services

BCS can be built using either SharePoint Designer or Visual Studio Visual Studio BCS projects are automatically packaged as WSP

solution files Simply deploy the WSP file to the other environments You can also export the BDC metadata model in the BDC service

application

SharePoint Designer doesnrsquot create a WSP and it doesnrsquot make a complete BDC metadata model You need to export and import using SharePoint Designer

In both cases you still need to deal with connection and configuration information

Future Directions

Visual Studio Lab Management

Integrates the management of HyperV environments in with Visual Studio and Team Foundation Server

Can automate the provisioning of lab environments for automated testing

Test failures can snapshot entire environments to make reproduction of errors much easier

Summary

Yoursquore going to have lots of SharePoint environments ndash figure out how to build them quickly and repeatable

Code and content often move in opposite directions through dev QA and Prod PowerShell script and automate to keep this simple

Agile is a great way to run projects

Continuous integration with automated testing is key to its success

There are lots of parts of SharePoint that you donrsquot code through Visual Studio Figure out how you move those through your environment

Other Topics

Site Design

Information architecture

Wireframes

Creative designs ndash Mobile first

Catalogs deep dive

Site build PowerShell scripts

Team Foundation Server and Application Lifecycle Management

Starting a new project

Managing content authoring

Site Improve tool

SEO Optimizations

Analytics options

Retaining Page Ranks with permanent redirects (301)

Azure SharePoint Hosting

Q amp A

Session Evaluations

Go to Evaluations on the home page of wwwcollabconorg

It is important to get your feedback

Please fill out evaluations for all the sessions you attend

Following the conference a random drawing from all completed evaluations will be selected

The winner will receive a $250 Future Shop gift card valid online or in store

Page 48: Web Content Management - CollabCon 2015 - Web... · Performances Complete Works ... Friendly URL An SEO friendly URL defined in the term store for a page, rather than ... What’s

Display Templates

Used to customize the

presentation of search results

No more XSLT

Three templates

bull Control ndash Overall structure of search results

bull Group ndash Show groups of results

bull Item ndash How each result is presented

Navigation and Friendly URLs

Site navigation driven by managed metadata

Term store used for navigation and SEO-friendly URLs

Connect site navigation to business concepts rather than site structure

Server side control outputs HTML for top nav left nav and breadcrumb

Plan is to convert to client-side to support Office 365

Term Store Setup

Two groups used to separate metadata from navigation

Metadata group setup globally

Static GUIDs consistent through all environments

Navigation group setup at the site collection level

Allows multiple copies for multiple sites on the farm

Search

Search is new and different from all previous versions of SharePoint

The platform has been consolidated Built on a combination of FAST Search and SharePoint Search components as well as new development work ndash it is the

same from Foundation to Server

Foundation Search is intended to replace WSS Search Microsoft Search Server and Search Server Express from previous versions of SharePoint

Itrsquos used pervasively throughout the product now in many different ways in different features eDiscovery navigation topic pages Internet facing business sites etc

Search in SharePoint 2013

Single Extensible Platform

FAST Engine

SharePoint Crawler

Best of both

Same Search Platform in both SharePoint and Exchange

Enterprise Search

Search Page Web parts added to a publishing page

Catalogs Cross-site publishing

Library search Executes in place on the library

Site Search _layouts15osssearchresultsaspx Specifies the site and search parameters

Search Centre Basic Search Center - SharePoint Foundation 2013 Enterprise Search Center - SharePoint Server 2013

Content Search Web Part

Similar in concept to the Content Query Web Part

Many advantages

Can go across sites site collections web apps even farms

Leverages the search index -gt very scalable

Query Builder makes it easy to define your results

Use Display Templates to customize the look and feel No more XSLT

Part of the Enterprise CAL

Pre-Configured CSWPs

Popular Items Shows items that have been recently viewed by many users

Recently Changed Items Shows items that have been modified recently This can help site users

track the latest activity on a site or a library

Recommended Items Show content recommendations based on usage patterns for the current

page

All of these can be further configured by editing their properties and changing the search criteria

Search Results Web Part

Similar functionality to the Content Search Web Part

Doesnrsquot allow property mapping in the web part configuration

Mapping is controlled in the Display Template

Part of the Standard CAL

Category Page Item Page

Catalogs

wwwcontosocomproductsAudio-Liware2g

Catalogs

Results

Consistent Displays

Manage content in one place

No need to create

pages

No need to format

Metadata Navigation

Cross-Site Publishing

Reuse content between different sites including site collections and farms

Catalogs can surface lists into publishing sites onto a category page and item pages

Can be surfaced through the Content Search Web Part

No need to create and publish web pages

Create custom friendly URLs

Metadata based navigation base

Cross Site Publishing

Job Posting

Job Posting

Job Posting

Job Posting

Simcoe County District School Board

50000 students

Over 6000 employees

Board office in Barrie

Bordered by the Holland Marsh in the south the Trent-Severn Waterway in the east Grey County in the west and Muskoka in the north

Simcoe County District School Board

119 schools and centres 87 elementary 16 secondary 6 learning centres 10 alternative

Each needs their own web site Being built on SharePoint 2013 Elementary panel first Each has their own unique URL Content authored both at the school and centrally from the board

wwwscdsbonca Pre-existing SharePoint 2010 site Future goal is to rebuild in SharePoint 2013

Business Challenge

100+ public web sites

No standardization on style technology or content

No ability for the board to push content to the school sites

Outdated sites

Not mobile or AODA compliant

Site Features

Fully Adaptivemobile design Robust Search functionality Template makes it fast and efficient to add new school sites News and events can be targeted by the Board to any number of

school sites Target by panel weather zone trustee language Presented in a blended view with the school news and events

Home page rotator links hours content pages all managed by the school staff

SEO-friendly URLs

News

School news entered by school staff

Board news entered in the board site

Rendered using cross-site publishing

High-priority alerts can be flagged to highlight on the site

Bus or school cancellations

Events

Single and multi-day events

School and board managed like news

Adaptive calendar

School Picker

Used to pick which schools to target news and events to

Schools are tagged through the term store

Target by panel weather zone trustee language

Can override and add or remove individual schools

Search

Catalogs

Three main steps

Enabling lists or libraries as catalogs

Creating the catalog connection

Building the page layouts to display the category rollups or item detail pages

Enabling Catalogs

Doesnrsquot have to be a list can be a document Images or Pages library

Experimenting using a Pages library

This gives us draft and published states that lists donrsquot support

Preview and editing is easier

Fairly simple script to do this

Catalog connections are more complex

Create the connection

Fix up the Term Store

Create the Category and Item page layouts and pages

SEO Enhancements

Friendly URLs

Home page redirects

XML sitemaps automatically generated and updated

Custom SEO properties

Usage Analytics

Built for scale from the ground up Detail data rolled up every 15 days amp anonymized Daily events purged every 15 days monthly events after 3 years Lifetime counts always retained

Counts views amp unique itemsday Shows recent (2-weeks) and lifetime count Trims least visited content Pushes aggregate data to reporting database

Drives recommendations capabilities on content Calculations injected into search index as sortable managed properties Deep integration with search engine Can influence search relevance based on content usage

Variations and Multi-Lingual

Export and import content for translation in XLIFF format

Pages

Labels

List items

Navigation

Bing translation service comes with active SharePoint 2013 license

Adaptive Web Design

Adaptive vs Responsive

Adaptive

Fixed breakpoints‒ Desktop gt 980 px

‒ Table portrait gt 768 px

‒ Phone to tablet gt 480 px lt 768 px

‒ Smartphone lt 480 px

Responsive

No fixed breakpoints

Design fluidly adapts to whatever width the browser is

We generally do a hybrid approach with responsive design in the under 768 pixel situation

Design Approaches in SharePoint

Adaptive Design through CSS media queries

Broader standards approach used outside of SharePoint

Keeps a single master page and CSS

Some unnecessary components may still be loaded

Device Channels SharePoint specific approach

Assign different master pages to different device channels

Rules define what devices use which channels

Device Channel Panels can also target content to channels

Hybrid here can also make sense Device channels can be used to remove unnecessary items from the page payload

Our Adaptive Approach

Built using the Twitter Boostrap CSS framework

twittergithubcombootstrap

Provides a responsive design framework for supporting PC Mac tablet and mobile

We enhanced to provide better touch navigation support

Can be leveraged in the master page page layouts and display templates

Incorporated into the SharePoint 2013 Design Master

HTML based master page that can be edited with any tool

SharePoint converts to a master page when uploaded or saved

Additional Open Source Tools and Resources

HTML CSS JavaScript jQuery

httpwwww3schoolscom

httpgetbootstrapcom

httphandlebarsjscom

httpknockoutjscom

httpsangularjsorg

httpmomentjscom

Content Search Web Part

Web part is configured to return search results

Executed as client-side code in the browser

Pair of display templates map the data returned to HTML

Control template for the overall structure

Item template for each item returned

HTML Designer Manager files are compiled to JavaScript

REST Search and Handlebars

Search is accessible through REST calls

httpsiteurl_apisearchquery

Returns results as a JSON array

Handlebars is a templating engine to format that

Conceptually similar to display templates with control and item sections

jQuery glues this all together

Steps to Experiment

F12 to get into Developer Toolbar

Set a breakpoint where the REST URL is determined

Copy the value

Paste into the REST Search test window

Experiment with the query

Adjust the Handlebars template appropriately

Search Setup

Content Sources to define and schedule the crawls

Crawl logs to review success

Search Schema to define the managed properties

Reusable Content

Snippets of HTML that can be reused throughout the site

JavaScript can be intelligent and use the URL to determine its behaviour

Makes it easy for content authors to drop pre-configured dynamic content onto pages

Topic Pages

Shows all items that match a topic

Could be hundreds of virtual pages

Only one template page

Easily customizable and SEO friendly (each topic appears to be its own page)

Content by search web part open search against a query or result source

May be able to surface the topic pages themselves as site search results

Public Health Ontario

httpwwwpublichealthontariocaenBrowseByTopicPagesTopicaspxk=Influenza20InformationByTopic22Influenza22

Ontario Association of Childrens Aid Societies

Application Lifecycle Management

Purpose

How do we build a solid SharePoint development environment for the enterprise

How do a number of developers work together on a SharePoint project

How does code and content move through a dev test and production lifecycle

What is Agile and Continuous Integration and why is it important

Visual Studio and Team Foundation Server

Visual Studio 2010 is the development platform for coding on SharePoint 2010

Team Foundation Server integrates with Visual Studio to provide a repository for code test and other project artifacts

It facilitates teamwork by providing a common place for developers to work together

Provisioning SharePoint Farms

Provisioning SharePoint Farms

Every developer needs their own complete SharePoint farm

Teams need a dev integration farm to bring their work together on

A full architecture needs QA and production farms as well

Envision IT Virtualization Architecture

Developer VM Template

SharePoint Server 2010 Enterprise

SP1 and August CU

Visual Studio 2010 Premium SP1

Office 2010 Professional Plus SP1

SharePoint Designer 2010 SP1

Fiddler

SQL Server 2008 R2 SP1

Creating a new Developer VM

Open System Centre Virtual Machine Manager

Create Virtual Machine

Choose the Developer VM template

Set the virtual machine name and options

Create and start the VM

Creating a new Developer VM - Step 2

Developer RDPs to their new VM Complete the SQL Server installation

Create the default instance Set the service account(s) Set the authentication mode and server administrators

Update the AutoSPInstallerInputxml file Set the machine name for the default sites and database server Set the service account passwords

Run the AutoSPInstallerLaunch batch file Do a Health check review

Creating a new Developer VM - Step 3

Start Visual Studio

Connect to the Team Foundation Server

Setup your workspaces

Use a standard naming convention across your team

CDevelopmentTFSCollection

Other Environments

Dev Integration QA and Production can all be built using AutoSPInstall

Donrsquot need or want the Visual Studio or Office tools on these servers

We have a base template we use for dev integration servers

QA should match the Prod architecture as closely as possible

High availability with load balancing clustered SQL app servers DMZ hardening Internet publishing

Agile Development

Agile with Team Foundation Server

Creating Your TFS Project

Open Visual Studio

Make sure you are connected to the right Team Project Collection

In Team Explorer right-click the top collection and create a new Team Project

Use the Scrum 10 template

Go into the Areas and Iterations Delete the extraneous releases and sprints

Create a product backlog iteration

Start adding your stories and tasks

Continuous Integration

Continuous Integration

Automated Testing

SharePoint Site Elements

Site structure Site columns content types subsites lists libraries

Branding elements Master pages layouts CSS XSLT supporting images

Custom web parts Page and site content Web part instances Search Workflows Business Connectivity Services Managed Metadata

SharePoint Site Elements ndash Part 2

Access Excel Word Visio

PerformancePoint

Document conversions

Timer jobs

Secure Store Service

User profiles

Site Structure

bull Site columns

bull Define the fields that are used by content types

bull Content types

bull Defines collections of site columns for different types of content

bull Subsites

bull The hierarchy of sites that make up the site collection

bull Lists and Libraries

bull The lists and libraries for each subsite

Site Structure ndash Part 2

Site columns and content types can be programmatically or manually created If they are going to be used in multiple site collections they should be

programmatically created

If a single site collection they can be created manually in a master site collection

GUIDs cannot be manually set and code may need them to be consistent

You can create them manually in SharePoint save the site as a template and import them into Visual Studio to create a proper WSP package

Site Structure ndash Part 3

Site structure can also be done either programmatically or manually

Many sites are complex and it is error prone to create manually

We use our own SiteModelBuilder tool to create the site structure

Site Structure ndash Part 4

For all site structure elements changes can also be manual or programmatic It is useful to be able to delete the whole site collection and recreate it

programmatically As soon as content starts being authored in SharePoint it becomes difficult

or impossible to do that

After content authoring has started Site column and content type changes need to be programmed explicitly

(you canrsquot just drop the content type and recreate it) Site structure changes are usually done manually at this point Changes need to be backed up and restored

Change Management

Page and Site Content

Page and site content is entered directly into SharePoint by the content authors Web pages images PDFs list content etc This should be done in the master site separate from where dev integration is

happening Care needs to be taken with this site once authors start working Make sure it is part of your production backup plan

Periodically back it up and restore it to the dev integration and developer VMs

Alternatively script the export and import Ultimately it will be backed up and restored to the QA and production

farms

Change Management

Change Management

Change Management

Change Management

Web part instances

Web parts ultimately get placed on pages

The configuration of the web parts can often get quite complex

You may want to disable editing of web parts for general content authors

They end up in a grey zone between code and content

Web part instances ndash Part 2

We created our own internal tool to export and import web parts

Each web partrsquos configuration can be exported into a webpartfile

We scripted the extraction from the dev integration

webpart files are treated like code and checked into TFS for version control

Script then applies the new webpart files to the target environment

Workflows

Workflows can be built using SharePoint Designer Visual Studio or third-party tools (Nintex or K2 primarily)

Visual Studio workflow projects are automatically packaged as WSP solution files Simply deploy the WSP file to the other environments

SharePoint Designer workflows need to be deployed using SharePoint Designer This means you need SPD access to production which is not always possible

You can load the SPD workflow into Visual Studio to package it but you lose the ability to edit it in SPD

If you use third-party tools yoursquoll need to define the process for that as well

Business Connectivity Services

BCS can be built using either SharePoint Designer or Visual Studio Visual Studio BCS projects are automatically packaged as WSP

solution files Simply deploy the WSP file to the other environments You can also export the BDC metadata model in the BDC service

application

SharePoint Designer doesnrsquot create a WSP and it doesnrsquot make a complete BDC metadata model You need to export and import using SharePoint Designer

In both cases you still need to deal with connection and configuration information

Future Directions

Visual Studio Lab Management

Integrates the management of HyperV environments in with Visual Studio and Team Foundation Server

Can automate the provisioning of lab environments for automated testing

Test failures can snapshot entire environments to make reproduction of errors much easier

Summary

Yoursquore going to have lots of SharePoint environments ndash figure out how to build them quickly and repeatable

Code and content often move in opposite directions through dev QA and Prod PowerShell script and automate to keep this simple

Agile is a great way to run projects

Continuous integration with automated testing is key to its success

There are lots of parts of SharePoint that you donrsquot code through Visual Studio Figure out how you move those through your environment

Other Topics

Site Design

Information architecture

Wireframes

Creative designs ndash Mobile first

Catalogs deep dive

Site build PowerShell scripts

Team Foundation Server and Application Lifecycle Management

Starting a new project

Managing content authoring

Site Improve tool

SEO Optimizations

Analytics options

Retaining Page Ranks with permanent redirects (301)

Azure SharePoint Hosting

Q amp A

Session Evaluations

Go to Evaluations on the home page of wwwcollabconorg

It is important to get your feedback

Please fill out evaluations for all the sessions you attend

Following the conference a random drawing from all completed evaluations will be selected

The winner will receive a $250 Future Shop gift card valid online or in store

Page 49: Web Content Management - CollabCon 2015 - Web... · Performances Complete Works ... Friendly URL An SEO friendly URL defined in the term store for a page, rather than ... What’s

Navigation and Friendly URLs

Site navigation driven by managed metadata

Term store used for navigation and SEO-friendly URLs

Connect site navigation to business concepts rather than site structure

Server side control outputs HTML for top nav left nav and breadcrumb

Plan is to convert to client-side to support Office 365

Term Store Setup

Two groups used to separate metadata from navigation

Metadata group setup globally

Static GUIDs consistent through all environments

Navigation group setup at the site collection level

Allows multiple copies for multiple sites on the farm

Search

Search is new and different from all previous versions of SharePoint

The platform has been consolidated Built on a combination of FAST Search and SharePoint Search components as well as new development work ndash it is the

same from Foundation to Server

Foundation Search is intended to replace WSS Search Microsoft Search Server and Search Server Express from previous versions of SharePoint

Itrsquos used pervasively throughout the product now in many different ways in different features eDiscovery navigation topic pages Internet facing business sites etc

Search in SharePoint 2013

Single Extensible Platform

FAST Engine

SharePoint Crawler

Best of both

Same Search Platform in both SharePoint and Exchange

Enterprise Search

Search Page Web parts added to a publishing page

Catalogs Cross-site publishing

Library search Executes in place on the library

Site Search _layouts15osssearchresultsaspx Specifies the site and search parameters

Search Centre Basic Search Center - SharePoint Foundation 2013 Enterprise Search Center - SharePoint Server 2013

Content Search Web Part

Similar in concept to the Content Query Web Part

Many advantages

Can go across sites site collections web apps even farms

Leverages the search index -gt very scalable

Query Builder makes it easy to define your results

Use Display Templates to customize the look and feel No more XSLT

Part of the Enterprise CAL

Pre-Configured CSWPs

Popular Items Shows items that have been recently viewed by many users

Recently Changed Items Shows items that have been modified recently This can help site users

track the latest activity on a site or a library

Recommended Items Show content recommendations based on usage patterns for the current

page

All of these can be further configured by editing their properties and changing the search criteria

Search Results Web Part

Similar functionality to the Content Search Web Part

Doesnrsquot allow property mapping in the web part configuration

Mapping is controlled in the Display Template

Part of the Standard CAL

Category Page Item Page

Catalogs

wwwcontosocomproductsAudio-Liware2g

Catalogs

Results

Consistent Displays

Manage content in one place

No need to create

pages

No need to format

Metadata Navigation

Cross-Site Publishing

Reuse content between different sites including site collections and farms

Catalogs can surface lists into publishing sites onto a category page and item pages

Can be surfaced through the Content Search Web Part

No need to create and publish web pages

Create custom friendly URLs

Metadata based navigation base

Cross Site Publishing

Job Posting

Job Posting

Job Posting

Job Posting

Simcoe County District School Board

50000 students

Over 6000 employees

Board office in Barrie

Bordered by the Holland Marsh in the south the Trent-Severn Waterway in the east Grey County in the west and Muskoka in the north

Simcoe County District School Board

119 schools and centres 87 elementary 16 secondary 6 learning centres 10 alternative

Each needs their own web site Being built on SharePoint 2013 Elementary panel first Each has their own unique URL Content authored both at the school and centrally from the board

wwwscdsbonca Pre-existing SharePoint 2010 site Future goal is to rebuild in SharePoint 2013

Business Challenge

100+ public web sites

No standardization on style technology or content

No ability for the board to push content to the school sites

Outdated sites

Not mobile or AODA compliant

Site Features

Fully Adaptivemobile design Robust Search functionality Template makes it fast and efficient to add new school sites News and events can be targeted by the Board to any number of

school sites Target by panel weather zone trustee language Presented in a blended view with the school news and events

Home page rotator links hours content pages all managed by the school staff

SEO-friendly URLs

News

School news entered by school staff

Board news entered in the board site

Rendered using cross-site publishing

High-priority alerts can be flagged to highlight on the site

Bus or school cancellations

Events

Single and multi-day events

School and board managed like news

Adaptive calendar

School Picker

Used to pick which schools to target news and events to

Schools are tagged through the term store

Target by panel weather zone trustee language

Can override and add or remove individual schools

Search

Catalogs

Three main steps

Enabling lists or libraries as catalogs

Creating the catalog connection

Building the page layouts to display the category rollups or item detail pages

Enabling Catalogs

Doesnrsquot have to be a list can be a document Images or Pages library

Experimenting using a Pages library

This gives us draft and published states that lists donrsquot support

Preview and editing is easier

Fairly simple script to do this

Catalog connections are more complex

Create the connection

Fix up the Term Store

Create the Category and Item page layouts and pages

SEO Enhancements

Friendly URLs

Home page redirects

XML sitemaps automatically generated and updated

Custom SEO properties

Usage Analytics

Built for scale from the ground up Detail data rolled up every 15 days amp anonymized Daily events purged every 15 days monthly events after 3 years Lifetime counts always retained

Counts views amp unique itemsday Shows recent (2-weeks) and lifetime count Trims least visited content Pushes aggregate data to reporting database

Drives recommendations capabilities on content Calculations injected into search index as sortable managed properties Deep integration with search engine Can influence search relevance based on content usage

Variations and Multi-Lingual

Export and import content for translation in XLIFF format

Pages

Labels

List items

Navigation

Bing translation service comes with active SharePoint 2013 license

Adaptive Web Design

Adaptive vs Responsive

Adaptive

Fixed breakpoints‒ Desktop gt 980 px

‒ Table portrait gt 768 px

‒ Phone to tablet gt 480 px lt 768 px

‒ Smartphone lt 480 px

Responsive

No fixed breakpoints

Design fluidly adapts to whatever width the browser is

We generally do a hybrid approach with responsive design in the under 768 pixel situation

Design Approaches in SharePoint

Adaptive Design through CSS media queries

Broader standards approach used outside of SharePoint

Keeps a single master page and CSS

Some unnecessary components may still be loaded

Device Channels SharePoint specific approach

Assign different master pages to different device channels

Rules define what devices use which channels

Device Channel Panels can also target content to channels

Hybrid here can also make sense Device channels can be used to remove unnecessary items from the page payload

Our Adaptive Approach

Built using the Twitter Boostrap CSS framework

twittergithubcombootstrap

Provides a responsive design framework for supporting PC Mac tablet and mobile

We enhanced to provide better touch navigation support

Can be leveraged in the master page page layouts and display templates

Incorporated into the SharePoint 2013 Design Master

HTML based master page that can be edited with any tool

SharePoint converts to a master page when uploaded or saved

Additional Open Source Tools and Resources

HTML CSS JavaScript jQuery

httpwwww3schoolscom

httpgetbootstrapcom

httphandlebarsjscom

httpknockoutjscom

httpsangularjsorg

httpmomentjscom

Content Search Web Part

Web part is configured to return search results

Executed as client-side code in the browser

Pair of display templates map the data returned to HTML

Control template for the overall structure

Item template for each item returned

HTML Designer Manager files are compiled to JavaScript

REST Search and Handlebars

Search is accessible through REST calls

httpsiteurl_apisearchquery

Returns results as a JSON array

Handlebars is a templating engine to format that

Conceptually similar to display templates with control and item sections

jQuery glues this all together

Steps to Experiment

F12 to get into Developer Toolbar

Set a breakpoint where the REST URL is determined

Copy the value

Paste into the REST Search test window

Experiment with the query

Adjust the Handlebars template appropriately

Search Setup

Content Sources to define and schedule the crawls

Crawl logs to review success

Search Schema to define the managed properties

Reusable Content

Snippets of HTML that can be reused throughout the site

JavaScript can be intelligent and use the URL to determine its behaviour

Makes it easy for content authors to drop pre-configured dynamic content onto pages

Topic Pages

Shows all items that match a topic

Could be hundreds of virtual pages

Only one template page

Easily customizable and SEO friendly (each topic appears to be its own page)

Content by search web part open search against a query or result source

May be able to surface the topic pages themselves as site search results

Public Health Ontario

httpwwwpublichealthontariocaenBrowseByTopicPagesTopicaspxk=Influenza20InformationByTopic22Influenza22

Ontario Association of Childrens Aid Societies

Application Lifecycle Management

Purpose

How do we build a solid SharePoint development environment for the enterprise

How do a number of developers work together on a SharePoint project

How does code and content move through a dev test and production lifecycle

What is Agile and Continuous Integration and why is it important

Visual Studio and Team Foundation Server

Visual Studio 2010 is the development platform for coding on SharePoint 2010

Team Foundation Server integrates with Visual Studio to provide a repository for code test and other project artifacts

It facilitates teamwork by providing a common place for developers to work together

Provisioning SharePoint Farms

Provisioning SharePoint Farms

Every developer needs their own complete SharePoint farm

Teams need a dev integration farm to bring their work together on

A full architecture needs QA and production farms as well

Envision IT Virtualization Architecture

Developer VM Template

SharePoint Server 2010 Enterprise

SP1 and August CU

Visual Studio 2010 Premium SP1

Office 2010 Professional Plus SP1

SharePoint Designer 2010 SP1

Fiddler

SQL Server 2008 R2 SP1

Creating a new Developer VM

Open System Centre Virtual Machine Manager

Create Virtual Machine

Choose the Developer VM template

Set the virtual machine name and options

Create and start the VM

Creating a new Developer VM - Step 2

Developer RDPs to their new VM Complete the SQL Server installation

Create the default instance Set the service account(s) Set the authentication mode and server administrators

Update the AutoSPInstallerInputxml file Set the machine name for the default sites and database server Set the service account passwords

Run the AutoSPInstallerLaunch batch file Do a Health check review

Creating a new Developer VM - Step 3

Start Visual Studio

Connect to the Team Foundation Server

Setup your workspaces

Use a standard naming convention across your team

CDevelopmentTFSCollection

Other Environments

Dev Integration QA and Production can all be built using AutoSPInstall

Donrsquot need or want the Visual Studio or Office tools on these servers

We have a base template we use for dev integration servers

QA should match the Prod architecture as closely as possible

High availability with load balancing clustered SQL app servers DMZ hardening Internet publishing

Agile Development

Agile with Team Foundation Server

Creating Your TFS Project

Open Visual Studio

Make sure you are connected to the right Team Project Collection

In Team Explorer right-click the top collection and create a new Team Project

Use the Scrum 10 template

Go into the Areas and Iterations Delete the extraneous releases and sprints

Create a product backlog iteration

Start adding your stories and tasks

Continuous Integration

Continuous Integration

Automated Testing

SharePoint Site Elements

Site structure Site columns content types subsites lists libraries

Branding elements Master pages layouts CSS XSLT supporting images

Custom web parts Page and site content Web part instances Search Workflows Business Connectivity Services Managed Metadata

SharePoint Site Elements ndash Part 2

Access Excel Word Visio

PerformancePoint

Document conversions

Timer jobs

Secure Store Service

User profiles

Site Structure

bull Site columns

bull Define the fields that are used by content types

bull Content types

bull Defines collections of site columns for different types of content

bull Subsites

bull The hierarchy of sites that make up the site collection

bull Lists and Libraries

bull The lists and libraries for each subsite

Site Structure ndash Part 2

Site columns and content types can be programmatically or manually created If they are going to be used in multiple site collections they should be

programmatically created

If a single site collection they can be created manually in a master site collection

GUIDs cannot be manually set and code may need them to be consistent

You can create them manually in SharePoint save the site as a template and import them into Visual Studio to create a proper WSP package

Site Structure ndash Part 3

Site structure can also be done either programmatically or manually

Many sites are complex and it is error prone to create manually

We use our own SiteModelBuilder tool to create the site structure

Site Structure ndash Part 4

For all site structure elements changes can also be manual or programmatic It is useful to be able to delete the whole site collection and recreate it

programmatically As soon as content starts being authored in SharePoint it becomes difficult

or impossible to do that

After content authoring has started Site column and content type changes need to be programmed explicitly

(you canrsquot just drop the content type and recreate it) Site structure changes are usually done manually at this point Changes need to be backed up and restored

Change Management

Page and Site Content

Page and site content is entered directly into SharePoint by the content authors Web pages images PDFs list content etc This should be done in the master site separate from where dev integration is

happening Care needs to be taken with this site once authors start working Make sure it is part of your production backup plan

Periodically back it up and restore it to the dev integration and developer VMs

Alternatively script the export and import Ultimately it will be backed up and restored to the QA and production

farms

Change Management

Change Management

Change Management

Change Management

Web part instances

Web parts ultimately get placed on pages

The configuration of the web parts can often get quite complex

You may want to disable editing of web parts for general content authors

They end up in a grey zone between code and content

Web part instances ndash Part 2

We created our own internal tool to export and import web parts

Each web partrsquos configuration can be exported into a webpartfile

We scripted the extraction from the dev integration

webpart files are treated like code and checked into TFS for version control

Script then applies the new webpart files to the target environment

Workflows

Workflows can be built using SharePoint Designer Visual Studio or third-party tools (Nintex or K2 primarily)

Visual Studio workflow projects are automatically packaged as WSP solution files Simply deploy the WSP file to the other environments

SharePoint Designer workflows need to be deployed using SharePoint Designer This means you need SPD access to production which is not always possible

You can load the SPD workflow into Visual Studio to package it but you lose the ability to edit it in SPD

If you use third-party tools yoursquoll need to define the process for that as well

Business Connectivity Services

BCS can be built using either SharePoint Designer or Visual Studio Visual Studio BCS projects are automatically packaged as WSP

solution files Simply deploy the WSP file to the other environments You can also export the BDC metadata model in the BDC service

application

SharePoint Designer doesnrsquot create a WSP and it doesnrsquot make a complete BDC metadata model You need to export and import using SharePoint Designer

In both cases you still need to deal with connection and configuration information

Future Directions

Visual Studio Lab Management

Integrates the management of HyperV environments in with Visual Studio and Team Foundation Server

Can automate the provisioning of lab environments for automated testing

Test failures can snapshot entire environments to make reproduction of errors much easier

Summary

Yoursquore going to have lots of SharePoint environments ndash figure out how to build them quickly and repeatable

Code and content often move in opposite directions through dev QA and Prod PowerShell script and automate to keep this simple

Agile is a great way to run projects

Continuous integration with automated testing is key to its success

There are lots of parts of SharePoint that you donrsquot code through Visual Studio Figure out how you move those through your environment

Other Topics

Site Design

Information architecture

Wireframes

Creative designs ndash Mobile first

Catalogs deep dive

Site build PowerShell scripts

Team Foundation Server and Application Lifecycle Management

Starting a new project

Managing content authoring

Site Improve tool

SEO Optimizations

Analytics options

Retaining Page Ranks with permanent redirects (301)

Azure SharePoint Hosting

Q amp A

Session Evaluations

Go to Evaluations on the home page of wwwcollabconorg

It is important to get your feedback

Please fill out evaluations for all the sessions you attend

Following the conference a random drawing from all completed evaluations will be selected

The winner will receive a $250 Future Shop gift card valid online or in store

Page 50: Web Content Management - CollabCon 2015 - Web... · Performances Complete Works ... Friendly URL An SEO friendly URL defined in the term store for a page, rather than ... What’s

Term Store Setup

Two groups used to separate metadata from navigation

Metadata group setup globally

Static GUIDs consistent through all environments

Navigation group setup at the site collection level

Allows multiple copies for multiple sites on the farm

Search

Search is new and different from all previous versions of SharePoint

The platform has been consolidated Built on a combination of FAST Search and SharePoint Search components as well as new development work ndash it is the

same from Foundation to Server

Foundation Search is intended to replace WSS Search Microsoft Search Server and Search Server Express from previous versions of SharePoint

Itrsquos used pervasively throughout the product now in many different ways in different features eDiscovery navigation topic pages Internet facing business sites etc

Search in SharePoint 2013

Single Extensible Platform

FAST Engine

SharePoint Crawler

Best of both

Same Search Platform in both SharePoint and Exchange

Enterprise Search

Search Page Web parts added to a publishing page

Catalogs Cross-site publishing

Library search Executes in place on the library

Site Search _layouts15osssearchresultsaspx Specifies the site and search parameters

Search Centre Basic Search Center - SharePoint Foundation 2013 Enterprise Search Center - SharePoint Server 2013

Content Search Web Part

Similar in concept to the Content Query Web Part

Many advantages

Can go across sites site collections web apps even farms

Leverages the search index -gt very scalable

Query Builder makes it easy to define your results

Use Display Templates to customize the look and feel No more XSLT

Part of the Enterprise CAL

Pre-Configured CSWPs

Popular Items Shows items that have been recently viewed by many users

Recently Changed Items Shows items that have been modified recently This can help site users

track the latest activity on a site or a library

Recommended Items Show content recommendations based on usage patterns for the current

page

All of these can be further configured by editing their properties and changing the search criteria

Search Results Web Part

Similar functionality to the Content Search Web Part

Doesnrsquot allow property mapping in the web part configuration

Mapping is controlled in the Display Template

Part of the Standard CAL

Category Page Item Page

Catalogs

wwwcontosocomproductsAudio-Liware2g

Catalogs

Results

Consistent Displays

Manage content in one place

No need to create

pages

No need to format

Metadata Navigation

Cross-Site Publishing

Reuse content between different sites including site collections and farms

Catalogs can surface lists into publishing sites onto a category page and item pages

Can be surfaced through the Content Search Web Part

No need to create and publish web pages

Create custom friendly URLs

Metadata based navigation base

Cross Site Publishing

Job Posting

Job Posting

Job Posting

Job Posting

Simcoe County District School Board

50000 students

Over 6000 employees

Board office in Barrie

Bordered by the Holland Marsh in the south the Trent-Severn Waterway in the east Grey County in the west and Muskoka in the north

Simcoe County District School Board

119 schools and centres 87 elementary 16 secondary 6 learning centres 10 alternative

Each needs their own web site Being built on SharePoint 2013 Elementary panel first Each has their own unique URL Content authored both at the school and centrally from the board

wwwscdsbonca Pre-existing SharePoint 2010 site Future goal is to rebuild in SharePoint 2013

Business Challenge

100+ public web sites

No standardization on style technology or content

No ability for the board to push content to the school sites

Outdated sites

Not mobile or AODA compliant

Site Features

Fully Adaptivemobile design Robust Search functionality Template makes it fast and efficient to add new school sites News and events can be targeted by the Board to any number of

school sites Target by panel weather zone trustee language Presented in a blended view with the school news and events

Home page rotator links hours content pages all managed by the school staff

SEO-friendly URLs

News

School news entered by school staff

Board news entered in the board site

Rendered using cross-site publishing

High-priority alerts can be flagged to highlight on the site

Bus or school cancellations

Events

Single and multi-day events

School and board managed like news

Adaptive calendar

School Picker

Used to pick which schools to target news and events to

Schools are tagged through the term store

Target by panel weather zone trustee language

Can override and add or remove individual schools

Search

Catalogs

Three main steps

Enabling lists or libraries as catalogs

Creating the catalog connection

Building the page layouts to display the category rollups or item detail pages

Enabling Catalogs

Doesnrsquot have to be a list can be a document Images or Pages library

Experimenting using a Pages library

This gives us draft and published states that lists donrsquot support

Preview and editing is easier

Fairly simple script to do this

Catalog connections are more complex

Create the connection

Fix up the Term Store

Create the Category and Item page layouts and pages

SEO Enhancements

Friendly URLs

Home page redirects

XML sitemaps automatically generated and updated

Custom SEO properties

Usage Analytics

Built for scale from the ground up Detail data rolled up every 15 days amp anonymized Daily events purged every 15 days monthly events after 3 years Lifetime counts always retained

Counts views amp unique itemsday Shows recent (2-weeks) and lifetime count Trims least visited content Pushes aggregate data to reporting database

Drives recommendations capabilities on content Calculations injected into search index as sortable managed properties Deep integration with search engine Can influence search relevance based on content usage

Variations and Multi-Lingual

Export and import content for translation in XLIFF format

Pages

Labels

List items

Navigation

Bing translation service comes with active SharePoint 2013 license

Adaptive Web Design

Adaptive vs Responsive

Adaptive

Fixed breakpoints‒ Desktop gt 980 px

‒ Table portrait gt 768 px

‒ Phone to tablet gt 480 px lt 768 px

‒ Smartphone lt 480 px

Responsive

No fixed breakpoints

Design fluidly adapts to whatever width the browser is

We generally do a hybrid approach with responsive design in the under 768 pixel situation

Design Approaches in SharePoint

Adaptive Design through CSS media queries

Broader standards approach used outside of SharePoint

Keeps a single master page and CSS

Some unnecessary components may still be loaded

Device Channels SharePoint specific approach

Assign different master pages to different device channels

Rules define what devices use which channels

Device Channel Panels can also target content to channels

Hybrid here can also make sense Device channels can be used to remove unnecessary items from the page payload

Our Adaptive Approach

Built using the Twitter Boostrap CSS framework

twittergithubcombootstrap

Provides a responsive design framework for supporting PC Mac tablet and mobile

We enhanced to provide better touch navigation support

Can be leveraged in the master page page layouts and display templates

Incorporated into the SharePoint 2013 Design Master

HTML based master page that can be edited with any tool

SharePoint converts to a master page when uploaded or saved

Additional Open Source Tools and Resources

HTML CSS JavaScript jQuery

httpwwww3schoolscom

httpgetbootstrapcom

httphandlebarsjscom

httpknockoutjscom

httpsangularjsorg

httpmomentjscom

Content Search Web Part

Web part is configured to return search results

Executed as client-side code in the browser

Pair of display templates map the data returned to HTML

Control template for the overall structure

Item template for each item returned

HTML Designer Manager files are compiled to JavaScript

REST Search and Handlebars

Search is accessible through REST calls

httpsiteurl_apisearchquery

Returns results as a JSON array

Handlebars is a templating engine to format that

Conceptually similar to display templates with control and item sections

jQuery glues this all together

Steps to Experiment

F12 to get into Developer Toolbar

Set a breakpoint where the REST URL is determined

Copy the value

Paste into the REST Search test window

Experiment with the query

Adjust the Handlebars template appropriately

Search Setup

Content Sources to define and schedule the crawls

Crawl logs to review success

Search Schema to define the managed properties

Reusable Content

Snippets of HTML that can be reused throughout the site

JavaScript can be intelligent and use the URL to determine its behaviour

Makes it easy for content authors to drop pre-configured dynamic content onto pages

Topic Pages

Shows all items that match a topic

Could be hundreds of virtual pages

Only one template page

Easily customizable and SEO friendly (each topic appears to be its own page)

Content by search web part open search against a query or result source

May be able to surface the topic pages themselves as site search results

Public Health Ontario

httpwwwpublichealthontariocaenBrowseByTopicPagesTopicaspxk=Influenza20InformationByTopic22Influenza22

Ontario Association of Childrens Aid Societies

Application Lifecycle Management

Purpose

How do we build a solid SharePoint development environment for the enterprise

How do a number of developers work together on a SharePoint project

How does code and content move through a dev test and production lifecycle

What is Agile and Continuous Integration and why is it important

Visual Studio and Team Foundation Server

Visual Studio 2010 is the development platform for coding on SharePoint 2010

Team Foundation Server integrates with Visual Studio to provide a repository for code test and other project artifacts

It facilitates teamwork by providing a common place for developers to work together

Provisioning SharePoint Farms

Provisioning SharePoint Farms

Every developer needs their own complete SharePoint farm

Teams need a dev integration farm to bring their work together on

A full architecture needs QA and production farms as well

Envision IT Virtualization Architecture

Developer VM Template

SharePoint Server 2010 Enterprise

SP1 and August CU

Visual Studio 2010 Premium SP1

Office 2010 Professional Plus SP1

SharePoint Designer 2010 SP1

Fiddler

SQL Server 2008 R2 SP1

Creating a new Developer VM

Open System Centre Virtual Machine Manager

Create Virtual Machine

Choose the Developer VM template

Set the virtual machine name and options

Create and start the VM

Creating a new Developer VM - Step 2

Developer RDPs to their new VM Complete the SQL Server installation

Create the default instance Set the service account(s) Set the authentication mode and server administrators

Update the AutoSPInstallerInputxml file Set the machine name for the default sites and database server Set the service account passwords

Run the AutoSPInstallerLaunch batch file Do a Health check review

Creating a new Developer VM - Step 3

Start Visual Studio

Connect to the Team Foundation Server

Setup your workspaces

Use a standard naming convention across your team

CDevelopmentTFSCollection

Other Environments

Dev Integration QA and Production can all be built using AutoSPInstall

Donrsquot need or want the Visual Studio or Office tools on these servers

We have a base template we use for dev integration servers

QA should match the Prod architecture as closely as possible

High availability with load balancing clustered SQL app servers DMZ hardening Internet publishing

Agile Development

Agile with Team Foundation Server

Creating Your TFS Project

Open Visual Studio

Make sure you are connected to the right Team Project Collection

In Team Explorer right-click the top collection and create a new Team Project

Use the Scrum 10 template

Go into the Areas and Iterations Delete the extraneous releases and sprints

Create a product backlog iteration

Start adding your stories and tasks

Continuous Integration

Continuous Integration

Automated Testing

SharePoint Site Elements

Site structure Site columns content types subsites lists libraries

Branding elements Master pages layouts CSS XSLT supporting images

Custom web parts Page and site content Web part instances Search Workflows Business Connectivity Services Managed Metadata

SharePoint Site Elements ndash Part 2

Access Excel Word Visio

PerformancePoint

Document conversions

Timer jobs

Secure Store Service

User profiles

Site Structure

bull Site columns

bull Define the fields that are used by content types

bull Content types

bull Defines collections of site columns for different types of content

bull Subsites

bull The hierarchy of sites that make up the site collection

bull Lists and Libraries

bull The lists and libraries for each subsite

Site Structure ndash Part 2

Site columns and content types can be programmatically or manually created If they are going to be used in multiple site collections they should be

programmatically created

If a single site collection they can be created manually in a master site collection

GUIDs cannot be manually set and code may need them to be consistent

You can create them manually in SharePoint save the site as a template and import them into Visual Studio to create a proper WSP package

Site Structure ndash Part 3

Site structure can also be done either programmatically or manually

Many sites are complex and it is error prone to create manually

We use our own SiteModelBuilder tool to create the site structure

Site Structure ndash Part 4

For all site structure elements changes can also be manual or programmatic It is useful to be able to delete the whole site collection and recreate it

programmatically As soon as content starts being authored in SharePoint it becomes difficult

or impossible to do that

After content authoring has started Site column and content type changes need to be programmed explicitly

(you canrsquot just drop the content type and recreate it) Site structure changes are usually done manually at this point Changes need to be backed up and restored

Change Management

Page and Site Content

Page and site content is entered directly into SharePoint by the content authors Web pages images PDFs list content etc This should be done in the master site separate from where dev integration is

happening Care needs to be taken with this site once authors start working Make sure it is part of your production backup plan

Periodically back it up and restore it to the dev integration and developer VMs

Alternatively script the export and import Ultimately it will be backed up and restored to the QA and production

farms

Change Management

Change Management

Change Management

Change Management

Web part instances

Web parts ultimately get placed on pages

The configuration of the web parts can often get quite complex

You may want to disable editing of web parts for general content authors

They end up in a grey zone between code and content

Web part instances ndash Part 2

We created our own internal tool to export and import web parts

Each web partrsquos configuration can be exported into a webpartfile

We scripted the extraction from the dev integration

webpart files are treated like code and checked into TFS for version control

Script then applies the new webpart files to the target environment

Workflows

Workflows can be built using SharePoint Designer Visual Studio or third-party tools (Nintex or K2 primarily)

Visual Studio workflow projects are automatically packaged as WSP solution files Simply deploy the WSP file to the other environments

SharePoint Designer workflows need to be deployed using SharePoint Designer This means you need SPD access to production which is not always possible

You can load the SPD workflow into Visual Studio to package it but you lose the ability to edit it in SPD

If you use third-party tools yoursquoll need to define the process for that as well

Business Connectivity Services

BCS can be built using either SharePoint Designer or Visual Studio Visual Studio BCS projects are automatically packaged as WSP

solution files Simply deploy the WSP file to the other environments You can also export the BDC metadata model in the BDC service

application

SharePoint Designer doesnrsquot create a WSP and it doesnrsquot make a complete BDC metadata model You need to export and import using SharePoint Designer

In both cases you still need to deal with connection and configuration information

Future Directions

Visual Studio Lab Management

Integrates the management of HyperV environments in with Visual Studio and Team Foundation Server

Can automate the provisioning of lab environments for automated testing

Test failures can snapshot entire environments to make reproduction of errors much easier

Summary

Yoursquore going to have lots of SharePoint environments ndash figure out how to build them quickly and repeatable

Code and content often move in opposite directions through dev QA and Prod PowerShell script and automate to keep this simple

Agile is a great way to run projects

Continuous integration with automated testing is key to its success

There are lots of parts of SharePoint that you donrsquot code through Visual Studio Figure out how you move those through your environment

Other Topics

Site Design

Information architecture

Wireframes

Creative designs ndash Mobile first

Catalogs deep dive

Site build PowerShell scripts

Team Foundation Server and Application Lifecycle Management

Starting a new project

Managing content authoring

Site Improve tool

SEO Optimizations

Analytics options

Retaining Page Ranks with permanent redirects (301)

Azure SharePoint Hosting

Q amp A

Session Evaluations

Go to Evaluations on the home page of wwwcollabconorg

It is important to get your feedback

Please fill out evaluations for all the sessions you attend

Following the conference a random drawing from all completed evaluations will be selected

The winner will receive a $250 Future Shop gift card valid online or in store

Page 51: Web Content Management - CollabCon 2015 - Web... · Performances Complete Works ... Friendly URL An SEO friendly URL defined in the term store for a page, rather than ... What’s

Search

Search is new and different from all previous versions of SharePoint

The platform has been consolidated Built on a combination of FAST Search and SharePoint Search components as well as new development work ndash it is the

same from Foundation to Server

Foundation Search is intended to replace WSS Search Microsoft Search Server and Search Server Express from previous versions of SharePoint

Itrsquos used pervasively throughout the product now in many different ways in different features eDiscovery navigation topic pages Internet facing business sites etc

Search in SharePoint 2013

Single Extensible Platform

FAST Engine

SharePoint Crawler

Best of both

Same Search Platform in both SharePoint and Exchange

Enterprise Search

Search Page Web parts added to a publishing page

Catalogs Cross-site publishing

Library search Executes in place on the library

Site Search _layouts15osssearchresultsaspx Specifies the site and search parameters

Search Centre Basic Search Center - SharePoint Foundation 2013 Enterprise Search Center - SharePoint Server 2013

Content Search Web Part

Similar in concept to the Content Query Web Part

Many advantages

Can go across sites site collections web apps even farms

Leverages the search index -gt very scalable

Query Builder makes it easy to define your results

Use Display Templates to customize the look and feel No more XSLT

Part of the Enterprise CAL

Pre-Configured CSWPs

Popular Items Shows items that have been recently viewed by many users

Recently Changed Items Shows items that have been modified recently This can help site users

track the latest activity on a site or a library

Recommended Items Show content recommendations based on usage patterns for the current

page

All of these can be further configured by editing their properties and changing the search criteria

Search Results Web Part

Similar functionality to the Content Search Web Part

Doesnrsquot allow property mapping in the web part configuration

Mapping is controlled in the Display Template

Part of the Standard CAL

Category Page Item Page

Catalogs

wwwcontosocomproductsAudio-Liware2g

Catalogs

Results

Consistent Displays

Manage content in one place

No need to create

pages

No need to format

Metadata Navigation

Cross-Site Publishing

Reuse content between different sites including site collections and farms

Catalogs can surface lists into publishing sites onto a category page and item pages

Can be surfaced through the Content Search Web Part

No need to create and publish web pages

Create custom friendly URLs

Metadata based navigation base

Cross Site Publishing

Job Posting

Job Posting

Job Posting

Job Posting

Simcoe County District School Board

50000 students

Over 6000 employees

Board office in Barrie

Bordered by the Holland Marsh in the south the Trent-Severn Waterway in the east Grey County in the west and Muskoka in the north

Simcoe County District School Board

119 schools and centres 87 elementary 16 secondary 6 learning centres 10 alternative

Each needs their own web site Being built on SharePoint 2013 Elementary panel first Each has their own unique URL Content authored both at the school and centrally from the board

wwwscdsbonca Pre-existing SharePoint 2010 site Future goal is to rebuild in SharePoint 2013

Business Challenge

100+ public web sites

No standardization on style technology or content

No ability for the board to push content to the school sites

Outdated sites

Not mobile or AODA compliant

Site Features

Fully Adaptivemobile design Robust Search functionality Template makes it fast and efficient to add new school sites News and events can be targeted by the Board to any number of

school sites Target by panel weather zone trustee language Presented in a blended view with the school news and events

Home page rotator links hours content pages all managed by the school staff

SEO-friendly URLs

News

School news entered by school staff

Board news entered in the board site

Rendered using cross-site publishing

High-priority alerts can be flagged to highlight on the site

Bus or school cancellations

Events

Single and multi-day events

School and board managed like news

Adaptive calendar

School Picker

Used to pick which schools to target news and events to

Schools are tagged through the term store

Target by panel weather zone trustee language

Can override and add or remove individual schools

Search

Catalogs

Three main steps

Enabling lists or libraries as catalogs

Creating the catalog connection

Building the page layouts to display the category rollups or item detail pages

Enabling Catalogs

Doesnrsquot have to be a list can be a document Images or Pages library

Experimenting using a Pages library

This gives us draft and published states that lists donrsquot support

Preview and editing is easier

Fairly simple script to do this

Catalog connections are more complex

Create the connection

Fix up the Term Store

Create the Category and Item page layouts and pages

SEO Enhancements

Friendly URLs

Home page redirects

XML sitemaps automatically generated and updated

Custom SEO properties

Usage Analytics

Built for scale from the ground up Detail data rolled up every 15 days amp anonymized Daily events purged every 15 days monthly events after 3 years Lifetime counts always retained

Counts views amp unique itemsday Shows recent (2-weeks) and lifetime count Trims least visited content Pushes aggregate data to reporting database

Drives recommendations capabilities on content Calculations injected into search index as sortable managed properties Deep integration with search engine Can influence search relevance based on content usage

Variations and Multi-Lingual

Export and import content for translation in XLIFF format

Pages

Labels

List items

Navigation

Bing translation service comes with active SharePoint 2013 license

Adaptive Web Design

Adaptive vs Responsive

Adaptive

Fixed breakpoints‒ Desktop gt 980 px

‒ Table portrait gt 768 px

‒ Phone to tablet gt 480 px lt 768 px

‒ Smartphone lt 480 px

Responsive

No fixed breakpoints

Design fluidly adapts to whatever width the browser is

We generally do a hybrid approach with responsive design in the under 768 pixel situation

Design Approaches in SharePoint

Adaptive Design through CSS media queries

Broader standards approach used outside of SharePoint

Keeps a single master page and CSS

Some unnecessary components may still be loaded

Device Channels SharePoint specific approach

Assign different master pages to different device channels

Rules define what devices use which channels

Device Channel Panels can also target content to channels

Hybrid here can also make sense Device channels can be used to remove unnecessary items from the page payload

Our Adaptive Approach

Built using the Twitter Boostrap CSS framework

twittergithubcombootstrap

Provides a responsive design framework for supporting PC Mac tablet and mobile

We enhanced to provide better touch navigation support

Can be leveraged in the master page page layouts and display templates

Incorporated into the SharePoint 2013 Design Master

HTML based master page that can be edited with any tool

SharePoint converts to a master page when uploaded or saved

Additional Open Source Tools and Resources

HTML CSS JavaScript jQuery

httpwwww3schoolscom

httpgetbootstrapcom

httphandlebarsjscom

httpknockoutjscom

httpsangularjsorg

httpmomentjscom

Content Search Web Part

Web part is configured to return search results

Executed as client-side code in the browser

Pair of display templates map the data returned to HTML

Control template for the overall structure

Item template for each item returned

HTML Designer Manager files are compiled to JavaScript

REST Search and Handlebars

Search is accessible through REST calls

httpsiteurl_apisearchquery

Returns results as a JSON array

Handlebars is a templating engine to format that

Conceptually similar to display templates with control and item sections

jQuery glues this all together

Steps to Experiment

F12 to get into Developer Toolbar

Set a breakpoint where the REST URL is determined

Copy the value

Paste into the REST Search test window

Experiment with the query

Adjust the Handlebars template appropriately

Search Setup

Content Sources to define and schedule the crawls

Crawl logs to review success

Search Schema to define the managed properties

Reusable Content

Snippets of HTML that can be reused throughout the site

JavaScript can be intelligent and use the URL to determine its behaviour

Makes it easy for content authors to drop pre-configured dynamic content onto pages

Topic Pages

Shows all items that match a topic

Could be hundreds of virtual pages

Only one template page

Easily customizable and SEO friendly (each topic appears to be its own page)

Content by search web part open search against a query or result source

May be able to surface the topic pages themselves as site search results

Public Health Ontario

httpwwwpublichealthontariocaenBrowseByTopicPagesTopicaspxk=Influenza20InformationByTopic22Influenza22

Ontario Association of Childrens Aid Societies

Application Lifecycle Management

Purpose

How do we build a solid SharePoint development environment for the enterprise

How do a number of developers work together on a SharePoint project

How does code and content move through a dev test and production lifecycle

What is Agile and Continuous Integration and why is it important

Visual Studio and Team Foundation Server

Visual Studio 2010 is the development platform for coding on SharePoint 2010

Team Foundation Server integrates with Visual Studio to provide a repository for code test and other project artifacts

It facilitates teamwork by providing a common place for developers to work together

Provisioning SharePoint Farms

Provisioning SharePoint Farms

Every developer needs their own complete SharePoint farm

Teams need a dev integration farm to bring their work together on

A full architecture needs QA and production farms as well

Envision IT Virtualization Architecture

Developer VM Template

SharePoint Server 2010 Enterprise

SP1 and August CU

Visual Studio 2010 Premium SP1

Office 2010 Professional Plus SP1

SharePoint Designer 2010 SP1

Fiddler

SQL Server 2008 R2 SP1

Creating a new Developer VM

Open System Centre Virtual Machine Manager

Create Virtual Machine

Choose the Developer VM template

Set the virtual machine name and options

Create and start the VM

Creating a new Developer VM - Step 2

Developer RDPs to their new VM Complete the SQL Server installation

Create the default instance Set the service account(s) Set the authentication mode and server administrators

Update the AutoSPInstallerInputxml file Set the machine name for the default sites and database server Set the service account passwords

Run the AutoSPInstallerLaunch batch file Do a Health check review

Creating a new Developer VM - Step 3

Start Visual Studio

Connect to the Team Foundation Server

Setup your workspaces

Use a standard naming convention across your team

CDevelopmentTFSCollection

Other Environments

Dev Integration QA and Production can all be built using AutoSPInstall

Donrsquot need or want the Visual Studio or Office tools on these servers

We have a base template we use for dev integration servers

QA should match the Prod architecture as closely as possible

High availability with load balancing clustered SQL app servers DMZ hardening Internet publishing

Agile Development

Agile with Team Foundation Server

Creating Your TFS Project

Open Visual Studio

Make sure you are connected to the right Team Project Collection

In Team Explorer right-click the top collection and create a new Team Project

Use the Scrum 10 template

Go into the Areas and Iterations Delete the extraneous releases and sprints

Create a product backlog iteration

Start adding your stories and tasks

Continuous Integration

Continuous Integration

Automated Testing

SharePoint Site Elements

Site structure Site columns content types subsites lists libraries

Branding elements Master pages layouts CSS XSLT supporting images

Custom web parts Page and site content Web part instances Search Workflows Business Connectivity Services Managed Metadata

SharePoint Site Elements ndash Part 2

Access Excel Word Visio

PerformancePoint

Document conversions

Timer jobs

Secure Store Service

User profiles

Site Structure

bull Site columns

bull Define the fields that are used by content types

bull Content types

bull Defines collections of site columns for different types of content

bull Subsites

bull The hierarchy of sites that make up the site collection

bull Lists and Libraries

bull The lists and libraries for each subsite

Site Structure ndash Part 2

Site columns and content types can be programmatically or manually created If they are going to be used in multiple site collections they should be

programmatically created

If a single site collection they can be created manually in a master site collection

GUIDs cannot be manually set and code may need them to be consistent

You can create them manually in SharePoint save the site as a template and import them into Visual Studio to create a proper WSP package

Site Structure ndash Part 3

Site structure can also be done either programmatically or manually

Many sites are complex and it is error prone to create manually

We use our own SiteModelBuilder tool to create the site structure

Site Structure ndash Part 4

For all site structure elements changes can also be manual or programmatic It is useful to be able to delete the whole site collection and recreate it

programmatically As soon as content starts being authored in SharePoint it becomes difficult

or impossible to do that

After content authoring has started Site column and content type changes need to be programmed explicitly

(you canrsquot just drop the content type and recreate it) Site structure changes are usually done manually at this point Changes need to be backed up and restored

Change Management

Page and Site Content

Page and site content is entered directly into SharePoint by the content authors Web pages images PDFs list content etc This should be done in the master site separate from where dev integration is

happening Care needs to be taken with this site once authors start working Make sure it is part of your production backup plan

Periodically back it up and restore it to the dev integration and developer VMs

Alternatively script the export and import Ultimately it will be backed up and restored to the QA and production

farms

Change Management

Change Management

Change Management

Change Management

Web part instances

Web parts ultimately get placed on pages

The configuration of the web parts can often get quite complex

You may want to disable editing of web parts for general content authors

They end up in a grey zone between code and content

Web part instances ndash Part 2

We created our own internal tool to export and import web parts

Each web partrsquos configuration can be exported into a webpartfile

We scripted the extraction from the dev integration

webpart files are treated like code and checked into TFS for version control

Script then applies the new webpart files to the target environment

Workflows

Workflows can be built using SharePoint Designer Visual Studio or third-party tools (Nintex or K2 primarily)

Visual Studio workflow projects are automatically packaged as WSP solution files Simply deploy the WSP file to the other environments

SharePoint Designer workflows need to be deployed using SharePoint Designer This means you need SPD access to production which is not always possible

You can load the SPD workflow into Visual Studio to package it but you lose the ability to edit it in SPD

If you use third-party tools yoursquoll need to define the process for that as well

Business Connectivity Services

BCS can be built using either SharePoint Designer or Visual Studio Visual Studio BCS projects are automatically packaged as WSP

solution files Simply deploy the WSP file to the other environments You can also export the BDC metadata model in the BDC service

application

SharePoint Designer doesnrsquot create a WSP and it doesnrsquot make a complete BDC metadata model You need to export and import using SharePoint Designer

In both cases you still need to deal with connection and configuration information

Future Directions

Visual Studio Lab Management

Integrates the management of HyperV environments in with Visual Studio and Team Foundation Server

Can automate the provisioning of lab environments for automated testing

Test failures can snapshot entire environments to make reproduction of errors much easier

Summary

Yoursquore going to have lots of SharePoint environments ndash figure out how to build them quickly and repeatable

Code and content often move in opposite directions through dev QA and Prod PowerShell script and automate to keep this simple

Agile is a great way to run projects

Continuous integration with automated testing is key to its success

There are lots of parts of SharePoint that you donrsquot code through Visual Studio Figure out how you move those through your environment

Other Topics

Site Design

Information architecture

Wireframes

Creative designs ndash Mobile first

Catalogs deep dive

Site build PowerShell scripts

Team Foundation Server and Application Lifecycle Management

Starting a new project

Managing content authoring

Site Improve tool

SEO Optimizations

Analytics options

Retaining Page Ranks with permanent redirects (301)

Azure SharePoint Hosting

Q amp A

Session Evaluations

Go to Evaluations on the home page of wwwcollabconorg

It is important to get your feedback

Please fill out evaluations for all the sessions you attend

Following the conference a random drawing from all completed evaluations will be selected

The winner will receive a $250 Future Shop gift card valid online or in store

Page 52: Web Content Management - CollabCon 2015 - Web... · Performances Complete Works ... Friendly URL An SEO friendly URL defined in the term store for a page, rather than ... What’s

Search in SharePoint 2013

Single Extensible Platform

FAST Engine

SharePoint Crawler

Best of both

Same Search Platform in both SharePoint and Exchange

Enterprise Search

Search Page Web parts added to a publishing page

Catalogs Cross-site publishing

Library search Executes in place on the library

Site Search _layouts15osssearchresultsaspx Specifies the site and search parameters

Search Centre Basic Search Center - SharePoint Foundation 2013 Enterprise Search Center - SharePoint Server 2013

Content Search Web Part

Similar in concept to the Content Query Web Part

Many advantages

Can go across sites site collections web apps even farms

Leverages the search index -gt very scalable

Query Builder makes it easy to define your results

Use Display Templates to customize the look and feel No more XSLT

Part of the Enterprise CAL

Pre-Configured CSWPs

Popular Items Shows items that have been recently viewed by many users

Recently Changed Items Shows items that have been modified recently This can help site users

track the latest activity on a site or a library

Recommended Items Show content recommendations based on usage patterns for the current

page

All of these can be further configured by editing their properties and changing the search criteria

Search Results Web Part

Similar functionality to the Content Search Web Part

Doesnrsquot allow property mapping in the web part configuration

Mapping is controlled in the Display Template

Part of the Standard CAL

Category Page Item Page

Catalogs

wwwcontosocomproductsAudio-Liware2g

Catalogs

Results

Consistent Displays

Manage content in one place

No need to create

pages

No need to format

Metadata Navigation

Cross-Site Publishing

Reuse content between different sites including site collections and farms

Catalogs can surface lists into publishing sites onto a category page and item pages

Can be surfaced through the Content Search Web Part

No need to create and publish web pages

Create custom friendly URLs

Metadata based navigation base

Cross Site Publishing

Job Posting

Job Posting

Job Posting

Job Posting

Simcoe County District School Board

50000 students

Over 6000 employees

Board office in Barrie

Bordered by the Holland Marsh in the south the Trent-Severn Waterway in the east Grey County in the west and Muskoka in the north

Simcoe County District School Board

119 schools and centres 87 elementary 16 secondary 6 learning centres 10 alternative

Each needs their own web site Being built on SharePoint 2013 Elementary panel first Each has their own unique URL Content authored both at the school and centrally from the board

wwwscdsbonca Pre-existing SharePoint 2010 site Future goal is to rebuild in SharePoint 2013

Business Challenge

100+ public web sites

No standardization on style technology or content

No ability for the board to push content to the school sites

Outdated sites

Not mobile or AODA compliant

Site Features

Fully Adaptivemobile design Robust Search functionality Template makes it fast and efficient to add new school sites News and events can be targeted by the Board to any number of

school sites Target by panel weather zone trustee language Presented in a blended view with the school news and events

Home page rotator links hours content pages all managed by the school staff

SEO-friendly URLs

News

School news entered by school staff

Board news entered in the board site

Rendered using cross-site publishing

High-priority alerts can be flagged to highlight on the site

Bus or school cancellations

Events

Single and multi-day events

School and board managed like news

Adaptive calendar

School Picker

Used to pick which schools to target news and events to

Schools are tagged through the term store

Target by panel weather zone trustee language

Can override and add or remove individual schools

Search

Catalogs

Three main steps

Enabling lists or libraries as catalogs

Creating the catalog connection

Building the page layouts to display the category rollups or item detail pages

Enabling Catalogs

Doesnrsquot have to be a list can be a document Images or Pages library

Experimenting using a Pages library

This gives us draft and published states that lists donrsquot support

Preview and editing is easier

Fairly simple script to do this

Catalog connections are more complex

Create the connection

Fix up the Term Store

Create the Category and Item page layouts and pages

SEO Enhancements

Friendly URLs

Home page redirects

XML sitemaps automatically generated and updated

Custom SEO properties

Usage Analytics

Built for scale from the ground up Detail data rolled up every 15 days amp anonymized Daily events purged every 15 days monthly events after 3 years Lifetime counts always retained

Counts views amp unique itemsday Shows recent (2-weeks) and lifetime count Trims least visited content Pushes aggregate data to reporting database

Drives recommendations capabilities on content Calculations injected into search index as sortable managed properties Deep integration with search engine Can influence search relevance based on content usage

Variations and Multi-Lingual

Export and import content for translation in XLIFF format

Pages

Labels

List items

Navigation

Bing translation service comes with active SharePoint 2013 license

Adaptive Web Design

Adaptive vs Responsive

Adaptive

Fixed breakpoints‒ Desktop gt 980 px

‒ Table portrait gt 768 px

‒ Phone to tablet gt 480 px lt 768 px

‒ Smartphone lt 480 px

Responsive

No fixed breakpoints

Design fluidly adapts to whatever width the browser is

We generally do a hybrid approach with responsive design in the under 768 pixel situation

Design Approaches in SharePoint

Adaptive Design through CSS media queries

Broader standards approach used outside of SharePoint

Keeps a single master page and CSS

Some unnecessary components may still be loaded

Device Channels SharePoint specific approach

Assign different master pages to different device channels

Rules define what devices use which channels

Device Channel Panels can also target content to channels

Hybrid here can also make sense Device channels can be used to remove unnecessary items from the page payload

Our Adaptive Approach

Built using the Twitter Boostrap CSS framework

twittergithubcombootstrap

Provides a responsive design framework for supporting PC Mac tablet and mobile

We enhanced to provide better touch navigation support

Can be leveraged in the master page page layouts and display templates

Incorporated into the SharePoint 2013 Design Master

HTML based master page that can be edited with any tool

SharePoint converts to a master page when uploaded or saved

Additional Open Source Tools and Resources

HTML CSS JavaScript jQuery

httpwwww3schoolscom

httpgetbootstrapcom

httphandlebarsjscom

httpknockoutjscom

httpsangularjsorg

httpmomentjscom

Content Search Web Part

Web part is configured to return search results

Executed as client-side code in the browser

Pair of display templates map the data returned to HTML

Control template for the overall structure

Item template for each item returned

HTML Designer Manager files are compiled to JavaScript

REST Search and Handlebars

Search is accessible through REST calls

httpsiteurl_apisearchquery

Returns results as a JSON array

Handlebars is a templating engine to format that

Conceptually similar to display templates with control and item sections

jQuery glues this all together

Steps to Experiment

F12 to get into Developer Toolbar

Set a breakpoint where the REST URL is determined

Copy the value

Paste into the REST Search test window

Experiment with the query

Adjust the Handlebars template appropriately

Search Setup

Content Sources to define and schedule the crawls

Crawl logs to review success

Search Schema to define the managed properties

Reusable Content

Snippets of HTML that can be reused throughout the site

JavaScript can be intelligent and use the URL to determine its behaviour

Makes it easy for content authors to drop pre-configured dynamic content onto pages

Topic Pages

Shows all items that match a topic

Could be hundreds of virtual pages

Only one template page

Easily customizable and SEO friendly (each topic appears to be its own page)

Content by search web part open search against a query or result source

May be able to surface the topic pages themselves as site search results

Public Health Ontario

httpwwwpublichealthontariocaenBrowseByTopicPagesTopicaspxk=Influenza20InformationByTopic22Influenza22

Ontario Association of Childrens Aid Societies

Application Lifecycle Management

Purpose

How do we build a solid SharePoint development environment for the enterprise

How do a number of developers work together on a SharePoint project

How does code and content move through a dev test and production lifecycle

What is Agile and Continuous Integration and why is it important

Visual Studio and Team Foundation Server

Visual Studio 2010 is the development platform for coding on SharePoint 2010

Team Foundation Server integrates with Visual Studio to provide a repository for code test and other project artifacts

It facilitates teamwork by providing a common place for developers to work together

Provisioning SharePoint Farms

Provisioning SharePoint Farms

Every developer needs their own complete SharePoint farm

Teams need a dev integration farm to bring their work together on

A full architecture needs QA and production farms as well

Envision IT Virtualization Architecture

Developer VM Template

SharePoint Server 2010 Enterprise

SP1 and August CU

Visual Studio 2010 Premium SP1

Office 2010 Professional Plus SP1

SharePoint Designer 2010 SP1

Fiddler

SQL Server 2008 R2 SP1

Creating a new Developer VM

Open System Centre Virtual Machine Manager

Create Virtual Machine

Choose the Developer VM template

Set the virtual machine name and options

Create and start the VM

Creating a new Developer VM - Step 2

Developer RDPs to their new VM Complete the SQL Server installation

Create the default instance Set the service account(s) Set the authentication mode and server administrators

Update the AutoSPInstallerInputxml file Set the machine name for the default sites and database server Set the service account passwords

Run the AutoSPInstallerLaunch batch file Do a Health check review

Creating a new Developer VM - Step 3

Start Visual Studio

Connect to the Team Foundation Server

Setup your workspaces

Use a standard naming convention across your team

CDevelopmentTFSCollection

Other Environments

Dev Integration QA and Production can all be built using AutoSPInstall

Donrsquot need or want the Visual Studio or Office tools on these servers

We have a base template we use for dev integration servers

QA should match the Prod architecture as closely as possible

High availability with load balancing clustered SQL app servers DMZ hardening Internet publishing

Agile Development

Agile with Team Foundation Server

Creating Your TFS Project

Open Visual Studio

Make sure you are connected to the right Team Project Collection

In Team Explorer right-click the top collection and create a new Team Project

Use the Scrum 10 template

Go into the Areas and Iterations Delete the extraneous releases and sprints

Create a product backlog iteration

Start adding your stories and tasks

Continuous Integration

Continuous Integration

Automated Testing

SharePoint Site Elements

Site structure Site columns content types subsites lists libraries

Branding elements Master pages layouts CSS XSLT supporting images

Custom web parts Page and site content Web part instances Search Workflows Business Connectivity Services Managed Metadata

SharePoint Site Elements ndash Part 2

Access Excel Word Visio

PerformancePoint

Document conversions

Timer jobs

Secure Store Service

User profiles

Site Structure

bull Site columns

bull Define the fields that are used by content types

bull Content types

bull Defines collections of site columns for different types of content

bull Subsites

bull The hierarchy of sites that make up the site collection

bull Lists and Libraries

bull The lists and libraries for each subsite

Site Structure ndash Part 2

Site columns and content types can be programmatically or manually created If they are going to be used in multiple site collections they should be

programmatically created

If a single site collection they can be created manually in a master site collection

GUIDs cannot be manually set and code may need them to be consistent

You can create them manually in SharePoint save the site as a template and import them into Visual Studio to create a proper WSP package

Site Structure ndash Part 3

Site structure can also be done either programmatically or manually

Many sites are complex and it is error prone to create manually

We use our own SiteModelBuilder tool to create the site structure

Site Structure ndash Part 4

For all site structure elements changes can also be manual or programmatic It is useful to be able to delete the whole site collection and recreate it

programmatically As soon as content starts being authored in SharePoint it becomes difficult

or impossible to do that

After content authoring has started Site column and content type changes need to be programmed explicitly

(you canrsquot just drop the content type and recreate it) Site structure changes are usually done manually at this point Changes need to be backed up and restored

Change Management

Page and Site Content

Page and site content is entered directly into SharePoint by the content authors Web pages images PDFs list content etc This should be done in the master site separate from where dev integration is

happening Care needs to be taken with this site once authors start working Make sure it is part of your production backup plan

Periodically back it up and restore it to the dev integration and developer VMs

Alternatively script the export and import Ultimately it will be backed up and restored to the QA and production

farms

Change Management

Change Management

Change Management

Change Management

Web part instances

Web parts ultimately get placed on pages

The configuration of the web parts can often get quite complex

You may want to disable editing of web parts for general content authors

They end up in a grey zone between code and content

Web part instances ndash Part 2

We created our own internal tool to export and import web parts

Each web partrsquos configuration can be exported into a webpartfile

We scripted the extraction from the dev integration

webpart files are treated like code and checked into TFS for version control

Script then applies the new webpart files to the target environment

Workflows

Workflows can be built using SharePoint Designer Visual Studio or third-party tools (Nintex or K2 primarily)

Visual Studio workflow projects are automatically packaged as WSP solution files Simply deploy the WSP file to the other environments

SharePoint Designer workflows need to be deployed using SharePoint Designer This means you need SPD access to production which is not always possible

You can load the SPD workflow into Visual Studio to package it but you lose the ability to edit it in SPD

If you use third-party tools yoursquoll need to define the process for that as well

Business Connectivity Services

BCS can be built using either SharePoint Designer or Visual Studio Visual Studio BCS projects are automatically packaged as WSP

solution files Simply deploy the WSP file to the other environments You can also export the BDC metadata model in the BDC service

application

SharePoint Designer doesnrsquot create a WSP and it doesnrsquot make a complete BDC metadata model You need to export and import using SharePoint Designer

In both cases you still need to deal with connection and configuration information

Future Directions

Visual Studio Lab Management

Integrates the management of HyperV environments in with Visual Studio and Team Foundation Server

Can automate the provisioning of lab environments for automated testing

Test failures can snapshot entire environments to make reproduction of errors much easier

Summary

Yoursquore going to have lots of SharePoint environments ndash figure out how to build them quickly and repeatable

Code and content often move in opposite directions through dev QA and Prod PowerShell script and automate to keep this simple

Agile is a great way to run projects

Continuous integration with automated testing is key to its success

There are lots of parts of SharePoint that you donrsquot code through Visual Studio Figure out how you move those through your environment

Other Topics

Site Design

Information architecture

Wireframes

Creative designs ndash Mobile first

Catalogs deep dive

Site build PowerShell scripts

Team Foundation Server and Application Lifecycle Management

Starting a new project

Managing content authoring

Site Improve tool

SEO Optimizations

Analytics options

Retaining Page Ranks with permanent redirects (301)

Azure SharePoint Hosting

Q amp A

Session Evaluations

Go to Evaluations on the home page of wwwcollabconorg

It is important to get your feedback

Please fill out evaluations for all the sessions you attend

Following the conference a random drawing from all completed evaluations will be selected

The winner will receive a $250 Future Shop gift card valid online or in store

Page 53: Web Content Management - CollabCon 2015 - Web... · Performances Complete Works ... Friendly URL An SEO friendly URL defined in the term store for a page, rather than ... What’s

Enterprise Search

Search Page Web parts added to a publishing page

Catalogs Cross-site publishing

Library search Executes in place on the library

Site Search _layouts15osssearchresultsaspx Specifies the site and search parameters

Search Centre Basic Search Center - SharePoint Foundation 2013 Enterprise Search Center - SharePoint Server 2013

Content Search Web Part

Similar in concept to the Content Query Web Part

Many advantages

Can go across sites site collections web apps even farms

Leverages the search index -gt very scalable

Query Builder makes it easy to define your results

Use Display Templates to customize the look and feel No more XSLT

Part of the Enterprise CAL

Pre-Configured CSWPs

Popular Items Shows items that have been recently viewed by many users

Recently Changed Items Shows items that have been modified recently This can help site users

track the latest activity on a site or a library

Recommended Items Show content recommendations based on usage patterns for the current

page

All of these can be further configured by editing their properties and changing the search criteria

Search Results Web Part

Similar functionality to the Content Search Web Part

Doesnrsquot allow property mapping in the web part configuration

Mapping is controlled in the Display Template

Part of the Standard CAL

Category Page Item Page

Catalogs

wwwcontosocomproductsAudio-Liware2g

Catalogs

Results

Consistent Displays

Manage content in one place

No need to create

pages

No need to format

Metadata Navigation

Cross-Site Publishing

Reuse content between different sites including site collections and farms

Catalogs can surface lists into publishing sites onto a category page and item pages

Can be surfaced through the Content Search Web Part

No need to create and publish web pages

Create custom friendly URLs

Metadata based navigation base

Cross Site Publishing

Job Posting

Job Posting

Job Posting

Job Posting

Simcoe County District School Board

50000 students

Over 6000 employees

Board office in Barrie

Bordered by the Holland Marsh in the south the Trent-Severn Waterway in the east Grey County in the west and Muskoka in the north

Simcoe County District School Board

119 schools and centres 87 elementary 16 secondary 6 learning centres 10 alternative

Each needs their own web site Being built on SharePoint 2013 Elementary panel first Each has their own unique URL Content authored both at the school and centrally from the board

wwwscdsbonca Pre-existing SharePoint 2010 site Future goal is to rebuild in SharePoint 2013

Business Challenge

100+ public web sites

No standardization on style technology or content

No ability for the board to push content to the school sites

Outdated sites

Not mobile or AODA compliant

Site Features

Fully Adaptivemobile design Robust Search functionality Template makes it fast and efficient to add new school sites News and events can be targeted by the Board to any number of

school sites Target by panel weather zone trustee language Presented in a blended view with the school news and events

Home page rotator links hours content pages all managed by the school staff

SEO-friendly URLs

News

School news entered by school staff

Board news entered in the board site

Rendered using cross-site publishing

High-priority alerts can be flagged to highlight on the site

Bus or school cancellations

Events

Single and multi-day events

School and board managed like news

Adaptive calendar

School Picker

Used to pick which schools to target news and events to

Schools are tagged through the term store

Target by panel weather zone trustee language

Can override and add or remove individual schools

Search

Catalogs

Three main steps

Enabling lists or libraries as catalogs

Creating the catalog connection

Building the page layouts to display the category rollups or item detail pages

Enabling Catalogs

Doesnrsquot have to be a list can be a document Images or Pages library

Experimenting using a Pages library

This gives us draft and published states that lists donrsquot support

Preview and editing is easier

Fairly simple script to do this

Catalog connections are more complex

Create the connection

Fix up the Term Store

Create the Category and Item page layouts and pages

SEO Enhancements

Friendly URLs

Home page redirects

XML sitemaps automatically generated and updated

Custom SEO properties

Usage Analytics

Built for scale from the ground up Detail data rolled up every 15 days amp anonymized Daily events purged every 15 days monthly events after 3 years Lifetime counts always retained

Counts views amp unique itemsday Shows recent (2-weeks) and lifetime count Trims least visited content Pushes aggregate data to reporting database

Drives recommendations capabilities on content Calculations injected into search index as sortable managed properties Deep integration with search engine Can influence search relevance based on content usage

Variations and Multi-Lingual

Export and import content for translation in XLIFF format

Pages

Labels

List items

Navigation

Bing translation service comes with active SharePoint 2013 license

Adaptive Web Design

Adaptive vs Responsive

Adaptive

Fixed breakpoints‒ Desktop gt 980 px

‒ Table portrait gt 768 px

‒ Phone to tablet gt 480 px lt 768 px

‒ Smartphone lt 480 px

Responsive

No fixed breakpoints

Design fluidly adapts to whatever width the browser is

We generally do a hybrid approach with responsive design in the under 768 pixel situation

Design Approaches in SharePoint

Adaptive Design through CSS media queries

Broader standards approach used outside of SharePoint

Keeps a single master page and CSS

Some unnecessary components may still be loaded

Device Channels SharePoint specific approach

Assign different master pages to different device channels

Rules define what devices use which channels

Device Channel Panels can also target content to channels

Hybrid here can also make sense Device channels can be used to remove unnecessary items from the page payload

Our Adaptive Approach

Built using the Twitter Boostrap CSS framework

twittergithubcombootstrap

Provides a responsive design framework for supporting PC Mac tablet and mobile

We enhanced to provide better touch navigation support

Can be leveraged in the master page page layouts and display templates

Incorporated into the SharePoint 2013 Design Master

HTML based master page that can be edited with any tool

SharePoint converts to a master page when uploaded or saved

Additional Open Source Tools and Resources

HTML CSS JavaScript jQuery

httpwwww3schoolscom

httpgetbootstrapcom

httphandlebarsjscom

httpknockoutjscom

httpsangularjsorg

httpmomentjscom

Content Search Web Part

Web part is configured to return search results

Executed as client-side code in the browser

Pair of display templates map the data returned to HTML

Control template for the overall structure

Item template for each item returned

HTML Designer Manager files are compiled to JavaScript

REST Search and Handlebars

Search is accessible through REST calls

httpsiteurl_apisearchquery

Returns results as a JSON array

Handlebars is a templating engine to format that

Conceptually similar to display templates with control and item sections

jQuery glues this all together

Steps to Experiment

F12 to get into Developer Toolbar

Set a breakpoint where the REST URL is determined

Copy the value

Paste into the REST Search test window

Experiment with the query

Adjust the Handlebars template appropriately

Search Setup

Content Sources to define and schedule the crawls

Crawl logs to review success

Search Schema to define the managed properties

Reusable Content

Snippets of HTML that can be reused throughout the site

JavaScript can be intelligent and use the URL to determine its behaviour

Makes it easy for content authors to drop pre-configured dynamic content onto pages

Topic Pages

Shows all items that match a topic

Could be hundreds of virtual pages

Only one template page

Easily customizable and SEO friendly (each topic appears to be its own page)

Content by search web part open search against a query or result source

May be able to surface the topic pages themselves as site search results

Public Health Ontario

httpwwwpublichealthontariocaenBrowseByTopicPagesTopicaspxk=Influenza20InformationByTopic22Influenza22

Ontario Association of Childrens Aid Societies

Application Lifecycle Management

Purpose

How do we build a solid SharePoint development environment for the enterprise

How do a number of developers work together on a SharePoint project

How does code and content move through a dev test and production lifecycle

What is Agile and Continuous Integration and why is it important

Visual Studio and Team Foundation Server

Visual Studio 2010 is the development platform for coding on SharePoint 2010

Team Foundation Server integrates with Visual Studio to provide a repository for code test and other project artifacts

It facilitates teamwork by providing a common place for developers to work together

Provisioning SharePoint Farms

Provisioning SharePoint Farms

Every developer needs their own complete SharePoint farm

Teams need a dev integration farm to bring their work together on

A full architecture needs QA and production farms as well

Envision IT Virtualization Architecture

Developer VM Template

SharePoint Server 2010 Enterprise

SP1 and August CU

Visual Studio 2010 Premium SP1

Office 2010 Professional Plus SP1

SharePoint Designer 2010 SP1

Fiddler

SQL Server 2008 R2 SP1

Creating a new Developer VM

Open System Centre Virtual Machine Manager

Create Virtual Machine

Choose the Developer VM template

Set the virtual machine name and options

Create and start the VM

Creating a new Developer VM - Step 2

Developer RDPs to their new VM Complete the SQL Server installation

Create the default instance Set the service account(s) Set the authentication mode and server administrators

Update the AutoSPInstallerInputxml file Set the machine name for the default sites and database server Set the service account passwords

Run the AutoSPInstallerLaunch batch file Do a Health check review

Creating a new Developer VM - Step 3

Start Visual Studio

Connect to the Team Foundation Server

Setup your workspaces

Use a standard naming convention across your team

CDevelopmentTFSCollection

Other Environments

Dev Integration QA and Production can all be built using AutoSPInstall

Donrsquot need or want the Visual Studio or Office tools on these servers

We have a base template we use for dev integration servers

QA should match the Prod architecture as closely as possible

High availability with load balancing clustered SQL app servers DMZ hardening Internet publishing

Agile Development

Agile with Team Foundation Server

Creating Your TFS Project

Open Visual Studio

Make sure you are connected to the right Team Project Collection

In Team Explorer right-click the top collection and create a new Team Project

Use the Scrum 10 template

Go into the Areas and Iterations Delete the extraneous releases and sprints

Create a product backlog iteration

Start adding your stories and tasks

Continuous Integration

Continuous Integration

Automated Testing

SharePoint Site Elements

Site structure Site columns content types subsites lists libraries

Branding elements Master pages layouts CSS XSLT supporting images

Custom web parts Page and site content Web part instances Search Workflows Business Connectivity Services Managed Metadata

SharePoint Site Elements ndash Part 2

Access Excel Word Visio

PerformancePoint

Document conversions

Timer jobs

Secure Store Service

User profiles

Site Structure

bull Site columns

bull Define the fields that are used by content types

bull Content types

bull Defines collections of site columns for different types of content

bull Subsites

bull The hierarchy of sites that make up the site collection

bull Lists and Libraries

bull The lists and libraries for each subsite

Site Structure ndash Part 2

Site columns and content types can be programmatically or manually created If they are going to be used in multiple site collections they should be

programmatically created

If a single site collection they can be created manually in a master site collection

GUIDs cannot be manually set and code may need them to be consistent

You can create them manually in SharePoint save the site as a template and import them into Visual Studio to create a proper WSP package

Site Structure ndash Part 3

Site structure can also be done either programmatically or manually

Many sites are complex and it is error prone to create manually

We use our own SiteModelBuilder tool to create the site structure

Site Structure ndash Part 4

For all site structure elements changes can also be manual or programmatic It is useful to be able to delete the whole site collection and recreate it

programmatically As soon as content starts being authored in SharePoint it becomes difficult

or impossible to do that

After content authoring has started Site column and content type changes need to be programmed explicitly

(you canrsquot just drop the content type and recreate it) Site structure changes are usually done manually at this point Changes need to be backed up and restored

Change Management

Page and Site Content

Page and site content is entered directly into SharePoint by the content authors Web pages images PDFs list content etc This should be done in the master site separate from where dev integration is

happening Care needs to be taken with this site once authors start working Make sure it is part of your production backup plan

Periodically back it up and restore it to the dev integration and developer VMs

Alternatively script the export and import Ultimately it will be backed up and restored to the QA and production

farms

Change Management

Change Management

Change Management

Change Management

Web part instances

Web parts ultimately get placed on pages

The configuration of the web parts can often get quite complex

You may want to disable editing of web parts for general content authors

They end up in a grey zone between code and content

Web part instances ndash Part 2

We created our own internal tool to export and import web parts

Each web partrsquos configuration can be exported into a webpartfile

We scripted the extraction from the dev integration

webpart files are treated like code and checked into TFS for version control

Script then applies the new webpart files to the target environment

Workflows

Workflows can be built using SharePoint Designer Visual Studio or third-party tools (Nintex or K2 primarily)

Visual Studio workflow projects are automatically packaged as WSP solution files Simply deploy the WSP file to the other environments

SharePoint Designer workflows need to be deployed using SharePoint Designer This means you need SPD access to production which is not always possible

You can load the SPD workflow into Visual Studio to package it but you lose the ability to edit it in SPD

If you use third-party tools yoursquoll need to define the process for that as well

Business Connectivity Services

BCS can be built using either SharePoint Designer or Visual Studio Visual Studio BCS projects are automatically packaged as WSP

solution files Simply deploy the WSP file to the other environments You can also export the BDC metadata model in the BDC service

application

SharePoint Designer doesnrsquot create a WSP and it doesnrsquot make a complete BDC metadata model You need to export and import using SharePoint Designer

In both cases you still need to deal with connection and configuration information

Future Directions

Visual Studio Lab Management

Integrates the management of HyperV environments in with Visual Studio and Team Foundation Server

Can automate the provisioning of lab environments for automated testing

Test failures can snapshot entire environments to make reproduction of errors much easier

Summary

Yoursquore going to have lots of SharePoint environments ndash figure out how to build them quickly and repeatable

Code and content often move in opposite directions through dev QA and Prod PowerShell script and automate to keep this simple

Agile is a great way to run projects

Continuous integration with automated testing is key to its success

There are lots of parts of SharePoint that you donrsquot code through Visual Studio Figure out how you move those through your environment

Other Topics

Site Design

Information architecture

Wireframes

Creative designs ndash Mobile first

Catalogs deep dive

Site build PowerShell scripts

Team Foundation Server and Application Lifecycle Management

Starting a new project

Managing content authoring

Site Improve tool

SEO Optimizations

Analytics options

Retaining Page Ranks with permanent redirects (301)

Azure SharePoint Hosting

Q amp A

Session Evaluations

Go to Evaluations on the home page of wwwcollabconorg

It is important to get your feedback

Please fill out evaluations for all the sessions you attend

Following the conference a random drawing from all completed evaluations will be selected

The winner will receive a $250 Future Shop gift card valid online or in store

Page 54: Web Content Management - CollabCon 2015 - Web... · Performances Complete Works ... Friendly URL An SEO friendly URL defined in the term store for a page, rather than ... What’s

Content Search Web Part

Similar in concept to the Content Query Web Part

Many advantages

Can go across sites site collections web apps even farms

Leverages the search index -gt very scalable

Query Builder makes it easy to define your results

Use Display Templates to customize the look and feel No more XSLT

Part of the Enterprise CAL

Pre-Configured CSWPs

Popular Items Shows items that have been recently viewed by many users

Recently Changed Items Shows items that have been modified recently This can help site users

track the latest activity on a site or a library

Recommended Items Show content recommendations based on usage patterns for the current

page

All of these can be further configured by editing their properties and changing the search criteria

Search Results Web Part

Similar functionality to the Content Search Web Part

Doesnrsquot allow property mapping in the web part configuration

Mapping is controlled in the Display Template

Part of the Standard CAL

Category Page Item Page

Catalogs

wwwcontosocomproductsAudio-Liware2g

Catalogs

Results

Consistent Displays

Manage content in one place

No need to create

pages

No need to format

Metadata Navigation

Cross-Site Publishing

Reuse content between different sites including site collections and farms

Catalogs can surface lists into publishing sites onto a category page and item pages

Can be surfaced through the Content Search Web Part

No need to create and publish web pages

Create custom friendly URLs

Metadata based navigation base

Cross Site Publishing

Job Posting

Job Posting

Job Posting

Job Posting

Simcoe County District School Board

50000 students

Over 6000 employees

Board office in Barrie

Bordered by the Holland Marsh in the south the Trent-Severn Waterway in the east Grey County in the west and Muskoka in the north

Simcoe County District School Board

119 schools and centres 87 elementary 16 secondary 6 learning centres 10 alternative

Each needs their own web site Being built on SharePoint 2013 Elementary panel first Each has their own unique URL Content authored both at the school and centrally from the board

wwwscdsbonca Pre-existing SharePoint 2010 site Future goal is to rebuild in SharePoint 2013

Business Challenge

100+ public web sites

No standardization on style technology or content

No ability for the board to push content to the school sites

Outdated sites

Not mobile or AODA compliant

Site Features

Fully Adaptivemobile design Robust Search functionality Template makes it fast and efficient to add new school sites News and events can be targeted by the Board to any number of

school sites Target by panel weather zone trustee language Presented in a blended view with the school news and events

Home page rotator links hours content pages all managed by the school staff

SEO-friendly URLs

News

School news entered by school staff

Board news entered in the board site

Rendered using cross-site publishing

High-priority alerts can be flagged to highlight on the site

Bus or school cancellations

Events

Single and multi-day events

School and board managed like news

Adaptive calendar

School Picker

Used to pick which schools to target news and events to

Schools are tagged through the term store

Target by panel weather zone trustee language

Can override and add or remove individual schools

Search

Catalogs

Three main steps

Enabling lists or libraries as catalogs

Creating the catalog connection

Building the page layouts to display the category rollups or item detail pages

Enabling Catalogs

Doesnrsquot have to be a list can be a document Images or Pages library

Experimenting using a Pages library

This gives us draft and published states that lists donrsquot support

Preview and editing is easier

Fairly simple script to do this

Catalog connections are more complex

Create the connection

Fix up the Term Store

Create the Category and Item page layouts and pages

SEO Enhancements

Friendly URLs

Home page redirects

XML sitemaps automatically generated and updated

Custom SEO properties

Usage Analytics

Built for scale from the ground up Detail data rolled up every 15 days amp anonymized Daily events purged every 15 days monthly events after 3 years Lifetime counts always retained

Counts views amp unique itemsday Shows recent (2-weeks) and lifetime count Trims least visited content Pushes aggregate data to reporting database

Drives recommendations capabilities on content Calculations injected into search index as sortable managed properties Deep integration with search engine Can influence search relevance based on content usage

Variations and Multi-Lingual

Export and import content for translation in XLIFF format

Pages

Labels

List items

Navigation

Bing translation service comes with active SharePoint 2013 license

Adaptive Web Design

Adaptive vs Responsive

Adaptive

Fixed breakpoints‒ Desktop gt 980 px

‒ Table portrait gt 768 px

‒ Phone to tablet gt 480 px lt 768 px

‒ Smartphone lt 480 px

Responsive

No fixed breakpoints

Design fluidly adapts to whatever width the browser is

We generally do a hybrid approach with responsive design in the under 768 pixel situation

Design Approaches in SharePoint

Adaptive Design through CSS media queries

Broader standards approach used outside of SharePoint

Keeps a single master page and CSS

Some unnecessary components may still be loaded

Device Channels SharePoint specific approach

Assign different master pages to different device channels

Rules define what devices use which channels

Device Channel Panels can also target content to channels

Hybrid here can also make sense Device channels can be used to remove unnecessary items from the page payload

Our Adaptive Approach

Built using the Twitter Boostrap CSS framework

twittergithubcombootstrap

Provides a responsive design framework for supporting PC Mac tablet and mobile

We enhanced to provide better touch navigation support

Can be leveraged in the master page page layouts and display templates

Incorporated into the SharePoint 2013 Design Master

HTML based master page that can be edited with any tool

SharePoint converts to a master page when uploaded or saved

Additional Open Source Tools and Resources

HTML CSS JavaScript jQuery

httpwwww3schoolscom

httpgetbootstrapcom

httphandlebarsjscom

httpknockoutjscom

httpsangularjsorg

httpmomentjscom

Content Search Web Part

Web part is configured to return search results

Executed as client-side code in the browser

Pair of display templates map the data returned to HTML

Control template for the overall structure

Item template for each item returned

HTML Designer Manager files are compiled to JavaScript

REST Search and Handlebars

Search is accessible through REST calls

httpsiteurl_apisearchquery

Returns results as a JSON array

Handlebars is a templating engine to format that

Conceptually similar to display templates with control and item sections

jQuery glues this all together

Steps to Experiment

F12 to get into Developer Toolbar

Set a breakpoint where the REST URL is determined

Copy the value

Paste into the REST Search test window

Experiment with the query

Adjust the Handlebars template appropriately

Search Setup

Content Sources to define and schedule the crawls

Crawl logs to review success

Search Schema to define the managed properties

Reusable Content

Snippets of HTML that can be reused throughout the site

JavaScript can be intelligent and use the URL to determine its behaviour

Makes it easy for content authors to drop pre-configured dynamic content onto pages

Topic Pages

Shows all items that match a topic

Could be hundreds of virtual pages

Only one template page

Easily customizable and SEO friendly (each topic appears to be its own page)

Content by search web part open search against a query or result source

May be able to surface the topic pages themselves as site search results

Public Health Ontario

httpwwwpublichealthontariocaenBrowseByTopicPagesTopicaspxk=Influenza20InformationByTopic22Influenza22

Ontario Association of Childrens Aid Societies

Application Lifecycle Management

Purpose

How do we build a solid SharePoint development environment for the enterprise

How do a number of developers work together on a SharePoint project

How does code and content move through a dev test and production lifecycle

What is Agile and Continuous Integration and why is it important

Visual Studio and Team Foundation Server

Visual Studio 2010 is the development platform for coding on SharePoint 2010

Team Foundation Server integrates with Visual Studio to provide a repository for code test and other project artifacts

It facilitates teamwork by providing a common place for developers to work together

Provisioning SharePoint Farms

Provisioning SharePoint Farms

Every developer needs their own complete SharePoint farm

Teams need a dev integration farm to bring their work together on

A full architecture needs QA and production farms as well

Envision IT Virtualization Architecture

Developer VM Template

SharePoint Server 2010 Enterprise

SP1 and August CU

Visual Studio 2010 Premium SP1

Office 2010 Professional Plus SP1

SharePoint Designer 2010 SP1

Fiddler

SQL Server 2008 R2 SP1

Creating a new Developer VM

Open System Centre Virtual Machine Manager

Create Virtual Machine

Choose the Developer VM template

Set the virtual machine name and options

Create and start the VM

Creating a new Developer VM - Step 2

Developer RDPs to their new VM Complete the SQL Server installation

Create the default instance Set the service account(s) Set the authentication mode and server administrators

Update the AutoSPInstallerInputxml file Set the machine name for the default sites and database server Set the service account passwords

Run the AutoSPInstallerLaunch batch file Do a Health check review

Creating a new Developer VM - Step 3

Start Visual Studio

Connect to the Team Foundation Server

Setup your workspaces

Use a standard naming convention across your team

CDevelopmentTFSCollection

Other Environments

Dev Integration QA and Production can all be built using AutoSPInstall

Donrsquot need or want the Visual Studio or Office tools on these servers

We have a base template we use for dev integration servers

QA should match the Prod architecture as closely as possible

High availability with load balancing clustered SQL app servers DMZ hardening Internet publishing

Agile Development

Agile with Team Foundation Server

Creating Your TFS Project

Open Visual Studio

Make sure you are connected to the right Team Project Collection

In Team Explorer right-click the top collection and create a new Team Project

Use the Scrum 10 template

Go into the Areas and Iterations Delete the extraneous releases and sprints

Create a product backlog iteration

Start adding your stories and tasks

Continuous Integration

Continuous Integration

Automated Testing

SharePoint Site Elements

Site structure Site columns content types subsites lists libraries

Branding elements Master pages layouts CSS XSLT supporting images

Custom web parts Page and site content Web part instances Search Workflows Business Connectivity Services Managed Metadata

SharePoint Site Elements ndash Part 2

Access Excel Word Visio

PerformancePoint

Document conversions

Timer jobs

Secure Store Service

User profiles

Site Structure

bull Site columns

bull Define the fields that are used by content types

bull Content types

bull Defines collections of site columns for different types of content

bull Subsites

bull The hierarchy of sites that make up the site collection

bull Lists and Libraries

bull The lists and libraries for each subsite

Site Structure ndash Part 2

Site columns and content types can be programmatically or manually created If they are going to be used in multiple site collections they should be

programmatically created

If a single site collection they can be created manually in a master site collection

GUIDs cannot be manually set and code may need them to be consistent

You can create them manually in SharePoint save the site as a template and import them into Visual Studio to create a proper WSP package

Site Structure ndash Part 3

Site structure can also be done either programmatically or manually

Many sites are complex and it is error prone to create manually

We use our own SiteModelBuilder tool to create the site structure

Site Structure ndash Part 4

For all site structure elements changes can also be manual or programmatic It is useful to be able to delete the whole site collection and recreate it

programmatically As soon as content starts being authored in SharePoint it becomes difficult

or impossible to do that

After content authoring has started Site column and content type changes need to be programmed explicitly

(you canrsquot just drop the content type and recreate it) Site structure changes are usually done manually at this point Changes need to be backed up and restored

Change Management

Page and Site Content

Page and site content is entered directly into SharePoint by the content authors Web pages images PDFs list content etc This should be done in the master site separate from where dev integration is

happening Care needs to be taken with this site once authors start working Make sure it is part of your production backup plan

Periodically back it up and restore it to the dev integration and developer VMs

Alternatively script the export and import Ultimately it will be backed up and restored to the QA and production

farms

Change Management

Change Management

Change Management

Change Management

Web part instances

Web parts ultimately get placed on pages

The configuration of the web parts can often get quite complex

You may want to disable editing of web parts for general content authors

They end up in a grey zone between code and content

Web part instances ndash Part 2

We created our own internal tool to export and import web parts

Each web partrsquos configuration can be exported into a webpartfile

We scripted the extraction from the dev integration

webpart files are treated like code and checked into TFS for version control

Script then applies the new webpart files to the target environment

Workflows

Workflows can be built using SharePoint Designer Visual Studio or third-party tools (Nintex or K2 primarily)

Visual Studio workflow projects are automatically packaged as WSP solution files Simply deploy the WSP file to the other environments

SharePoint Designer workflows need to be deployed using SharePoint Designer This means you need SPD access to production which is not always possible

You can load the SPD workflow into Visual Studio to package it but you lose the ability to edit it in SPD

If you use third-party tools yoursquoll need to define the process for that as well

Business Connectivity Services

BCS can be built using either SharePoint Designer or Visual Studio Visual Studio BCS projects are automatically packaged as WSP

solution files Simply deploy the WSP file to the other environments You can also export the BDC metadata model in the BDC service

application

SharePoint Designer doesnrsquot create a WSP and it doesnrsquot make a complete BDC metadata model You need to export and import using SharePoint Designer

In both cases you still need to deal with connection and configuration information

Future Directions

Visual Studio Lab Management

Integrates the management of HyperV environments in with Visual Studio and Team Foundation Server

Can automate the provisioning of lab environments for automated testing

Test failures can snapshot entire environments to make reproduction of errors much easier

Summary

Yoursquore going to have lots of SharePoint environments ndash figure out how to build them quickly and repeatable

Code and content often move in opposite directions through dev QA and Prod PowerShell script and automate to keep this simple

Agile is a great way to run projects

Continuous integration with automated testing is key to its success

There are lots of parts of SharePoint that you donrsquot code through Visual Studio Figure out how you move those through your environment

Other Topics

Site Design

Information architecture

Wireframes

Creative designs ndash Mobile first

Catalogs deep dive

Site build PowerShell scripts

Team Foundation Server and Application Lifecycle Management

Starting a new project

Managing content authoring

Site Improve tool

SEO Optimizations

Analytics options

Retaining Page Ranks with permanent redirects (301)

Azure SharePoint Hosting

Q amp A

Session Evaluations

Go to Evaluations on the home page of wwwcollabconorg

It is important to get your feedback

Please fill out evaluations for all the sessions you attend

Following the conference a random drawing from all completed evaluations will be selected

The winner will receive a $250 Future Shop gift card valid online or in store

Page 55: Web Content Management - CollabCon 2015 - Web... · Performances Complete Works ... Friendly URL An SEO friendly URL defined in the term store for a page, rather than ... What’s

Pre-Configured CSWPs

Popular Items Shows items that have been recently viewed by many users

Recently Changed Items Shows items that have been modified recently This can help site users

track the latest activity on a site or a library

Recommended Items Show content recommendations based on usage patterns for the current

page

All of these can be further configured by editing their properties and changing the search criteria

Search Results Web Part

Similar functionality to the Content Search Web Part

Doesnrsquot allow property mapping in the web part configuration

Mapping is controlled in the Display Template

Part of the Standard CAL

Category Page Item Page

Catalogs

wwwcontosocomproductsAudio-Liware2g

Catalogs

Results

Consistent Displays

Manage content in one place

No need to create

pages

No need to format

Metadata Navigation

Cross-Site Publishing

Reuse content between different sites including site collections and farms

Catalogs can surface lists into publishing sites onto a category page and item pages

Can be surfaced through the Content Search Web Part

No need to create and publish web pages

Create custom friendly URLs

Metadata based navigation base

Cross Site Publishing

Job Posting

Job Posting

Job Posting

Job Posting

Simcoe County District School Board

50000 students

Over 6000 employees

Board office in Barrie

Bordered by the Holland Marsh in the south the Trent-Severn Waterway in the east Grey County in the west and Muskoka in the north

Simcoe County District School Board

119 schools and centres 87 elementary 16 secondary 6 learning centres 10 alternative

Each needs their own web site Being built on SharePoint 2013 Elementary panel first Each has their own unique URL Content authored both at the school and centrally from the board

wwwscdsbonca Pre-existing SharePoint 2010 site Future goal is to rebuild in SharePoint 2013

Business Challenge

100+ public web sites

No standardization on style technology or content

No ability for the board to push content to the school sites

Outdated sites

Not mobile or AODA compliant

Site Features

Fully Adaptivemobile design Robust Search functionality Template makes it fast and efficient to add new school sites News and events can be targeted by the Board to any number of

school sites Target by panel weather zone trustee language Presented in a blended view with the school news and events

Home page rotator links hours content pages all managed by the school staff

SEO-friendly URLs

News

School news entered by school staff

Board news entered in the board site

Rendered using cross-site publishing

High-priority alerts can be flagged to highlight on the site

Bus or school cancellations

Events

Single and multi-day events

School and board managed like news

Adaptive calendar

School Picker

Used to pick which schools to target news and events to

Schools are tagged through the term store

Target by panel weather zone trustee language

Can override and add or remove individual schools

Search

Catalogs

Three main steps

Enabling lists or libraries as catalogs

Creating the catalog connection

Building the page layouts to display the category rollups or item detail pages

Enabling Catalogs

Doesnrsquot have to be a list can be a document Images or Pages library

Experimenting using a Pages library

This gives us draft and published states that lists donrsquot support

Preview and editing is easier

Fairly simple script to do this

Catalog connections are more complex

Create the connection

Fix up the Term Store

Create the Category and Item page layouts and pages

SEO Enhancements

Friendly URLs

Home page redirects

XML sitemaps automatically generated and updated

Custom SEO properties

Usage Analytics

Built for scale from the ground up Detail data rolled up every 15 days amp anonymized Daily events purged every 15 days monthly events after 3 years Lifetime counts always retained

Counts views amp unique itemsday Shows recent (2-weeks) and lifetime count Trims least visited content Pushes aggregate data to reporting database

Drives recommendations capabilities on content Calculations injected into search index as sortable managed properties Deep integration with search engine Can influence search relevance based on content usage

Variations and Multi-Lingual

Export and import content for translation in XLIFF format

Pages

Labels

List items

Navigation

Bing translation service comes with active SharePoint 2013 license

Adaptive Web Design

Adaptive vs Responsive

Adaptive

Fixed breakpoints‒ Desktop gt 980 px

‒ Table portrait gt 768 px

‒ Phone to tablet gt 480 px lt 768 px

‒ Smartphone lt 480 px

Responsive

No fixed breakpoints

Design fluidly adapts to whatever width the browser is

We generally do a hybrid approach with responsive design in the under 768 pixel situation

Design Approaches in SharePoint

Adaptive Design through CSS media queries

Broader standards approach used outside of SharePoint

Keeps a single master page and CSS

Some unnecessary components may still be loaded

Device Channels SharePoint specific approach

Assign different master pages to different device channels

Rules define what devices use which channels

Device Channel Panels can also target content to channels

Hybrid here can also make sense Device channels can be used to remove unnecessary items from the page payload

Our Adaptive Approach

Built using the Twitter Boostrap CSS framework

twittergithubcombootstrap

Provides a responsive design framework for supporting PC Mac tablet and mobile

We enhanced to provide better touch navigation support

Can be leveraged in the master page page layouts and display templates

Incorporated into the SharePoint 2013 Design Master

HTML based master page that can be edited with any tool

SharePoint converts to a master page when uploaded or saved

Additional Open Source Tools and Resources

HTML CSS JavaScript jQuery

httpwwww3schoolscom

httpgetbootstrapcom

httphandlebarsjscom

httpknockoutjscom

httpsangularjsorg

httpmomentjscom

Content Search Web Part

Web part is configured to return search results

Executed as client-side code in the browser

Pair of display templates map the data returned to HTML

Control template for the overall structure

Item template for each item returned

HTML Designer Manager files are compiled to JavaScript

REST Search and Handlebars

Search is accessible through REST calls

httpsiteurl_apisearchquery

Returns results as a JSON array

Handlebars is a templating engine to format that

Conceptually similar to display templates with control and item sections

jQuery glues this all together

Steps to Experiment

F12 to get into Developer Toolbar

Set a breakpoint where the REST URL is determined

Copy the value

Paste into the REST Search test window

Experiment with the query

Adjust the Handlebars template appropriately

Search Setup

Content Sources to define and schedule the crawls

Crawl logs to review success

Search Schema to define the managed properties

Reusable Content

Snippets of HTML that can be reused throughout the site

JavaScript can be intelligent and use the URL to determine its behaviour

Makes it easy for content authors to drop pre-configured dynamic content onto pages

Topic Pages

Shows all items that match a topic

Could be hundreds of virtual pages

Only one template page

Easily customizable and SEO friendly (each topic appears to be its own page)

Content by search web part open search against a query or result source

May be able to surface the topic pages themselves as site search results

Public Health Ontario

httpwwwpublichealthontariocaenBrowseByTopicPagesTopicaspxk=Influenza20InformationByTopic22Influenza22

Ontario Association of Childrens Aid Societies

Application Lifecycle Management

Purpose

How do we build a solid SharePoint development environment for the enterprise

How do a number of developers work together on a SharePoint project

How does code and content move through a dev test and production lifecycle

What is Agile and Continuous Integration and why is it important

Visual Studio and Team Foundation Server

Visual Studio 2010 is the development platform for coding on SharePoint 2010

Team Foundation Server integrates with Visual Studio to provide a repository for code test and other project artifacts

It facilitates teamwork by providing a common place for developers to work together

Provisioning SharePoint Farms

Provisioning SharePoint Farms

Every developer needs their own complete SharePoint farm

Teams need a dev integration farm to bring their work together on

A full architecture needs QA and production farms as well

Envision IT Virtualization Architecture

Developer VM Template

SharePoint Server 2010 Enterprise

SP1 and August CU

Visual Studio 2010 Premium SP1

Office 2010 Professional Plus SP1

SharePoint Designer 2010 SP1

Fiddler

SQL Server 2008 R2 SP1

Creating a new Developer VM

Open System Centre Virtual Machine Manager

Create Virtual Machine

Choose the Developer VM template

Set the virtual machine name and options

Create and start the VM

Creating a new Developer VM - Step 2

Developer RDPs to their new VM Complete the SQL Server installation

Create the default instance Set the service account(s) Set the authentication mode and server administrators

Update the AutoSPInstallerInputxml file Set the machine name for the default sites and database server Set the service account passwords

Run the AutoSPInstallerLaunch batch file Do a Health check review

Creating a new Developer VM - Step 3

Start Visual Studio

Connect to the Team Foundation Server

Setup your workspaces

Use a standard naming convention across your team

CDevelopmentTFSCollection

Other Environments

Dev Integration QA and Production can all be built using AutoSPInstall

Donrsquot need or want the Visual Studio or Office tools on these servers

We have a base template we use for dev integration servers

QA should match the Prod architecture as closely as possible

High availability with load balancing clustered SQL app servers DMZ hardening Internet publishing

Agile Development

Agile with Team Foundation Server

Creating Your TFS Project

Open Visual Studio

Make sure you are connected to the right Team Project Collection

In Team Explorer right-click the top collection and create a new Team Project

Use the Scrum 10 template

Go into the Areas and Iterations Delete the extraneous releases and sprints

Create a product backlog iteration

Start adding your stories and tasks

Continuous Integration

Continuous Integration

Automated Testing

SharePoint Site Elements

Site structure Site columns content types subsites lists libraries

Branding elements Master pages layouts CSS XSLT supporting images

Custom web parts Page and site content Web part instances Search Workflows Business Connectivity Services Managed Metadata

SharePoint Site Elements ndash Part 2

Access Excel Word Visio

PerformancePoint

Document conversions

Timer jobs

Secure Store Service

User profiles

Site Structure

bull Site columns

bull Define the fields that are used by content types

bull Content types

bull Defines collections of site columns for different types of content

bull Subsites

bull The hierarchy of sites that make up the site collection

bull Lists and Libraries

bull The lists and libraries for each subsite

Site Structure ndash Part 2

Site columns and content types can be programmatically or manually created If they are going to be used in multiple site collections they should be

programmatically created

If a single site collection they can be created manually in a master site collection

GUIDs cannot be manually set and code may need them to be consistent

You can create them manually in SharePoint save the site as a template and import them into Visual Studio to create a proper WSP package

Site Structure ndash Part 3

Site structure can also be done either programmatically or manually

Many sites are complex and it is error prone to create manually

We use our own SiteModelBuilder tool to create the site structure

Site Structure ndash Part 4

For all site structure elements changes can also be manual or programmatic It is useful to be able to delete the whole site collection and recreate it

programmatically As soon as content starts being authored in SharePoint it becomes difficult

or impossible to do that

After content authoring has started Site column and content type changes need to be programmed explicitly

(you canrsquot just drop the content type and recreate it) Site structure changes are usually done manually at this point Changes need to be backed up and restored

Change Management

Page and Site Content

Page and site content is entered directly into SharePoint by the content authors Web pages images PDFs list content etc This should be done in the master site separate from where dev integration is

happening Care needs to be taken with this site once authors start working Make sure it is part of your production backup plan

Periodically back it up and restore it to the dev integration and developer VMs

Alternatively script the export and import Ultimately it will be backed up and restored to the QA and production

farms

Change Management

Change Management

Change Management

Change Management

Web part instances

Web parts ultimately get placed on pages

The configuration of the web parts can often get quite complex

You may want to disable editing of web parts for general content authors

They end up in a grey zone between code and content

Web part instances ndash Part 2

We created our own internal tool to export and import web parts

Each web partrsquos configuration can be exported into a webpartfile

We scripted the extraction from the dev integration

webpart files are treated like code and checked into TFS for version control

Script then applies the new webpart files to the target environment

Workflows

Workflows can be built using SharePoint Designer Visual Studio or third-party tools (Nintex or K2 primarily)

Visual Studio workflow projects are automatically packaged as WSP solution files Simply deploy the WSP file to the other environments

SharePoint Designer workflows need to be deployed using SharePoint Designer This means you need SPD access to production which is not always possible

You can load the SPD workflow into Visual Studio to package it but you lose the ability to edit it in SPD

If you use third-party tools yoursquoll need to define the process for that as well

Business Connectivity Services

BCS can be built using either SharePoint Designer or Visual Studio Visual Studio BCS projects are automatically packaged as WSP

solution files Simply deploy the WSP file to the other environments You can also export the BDC metadata model in the BDC service

application

SharePoint Designer doesnrsquot create a WSP and it doesnrsquot make a complete BDC metadata model You need to export and import using SharePoint Designer

In both cases you still need to deal with connection and configuration information

Future Directions

Visual Studio Lab Management

Integrates the management of HyperV environments in with Visual Studio and Team Foundation Server

Can automate the provisioning of lab environments for automated testing

Test failures can snapshot entire environments to make reproduction of errors much easier

Summary

Yoursquore going to have lots of SharePoint environments ndash figure out how to build them quickly and repeatable

Code and content often move in opposite directions through dev QA and Prod PowerShell script and automate to keep this simple

Agile is a great way to run projects

Continuous integration with automated testing is key to its success

There are lots of parts of SharePoint that you donrsquot code through Visual Studio Figure out how you move those through your environment

Other Topics

Site Design

Information architecture

Wireframes

Creative designs ndash Mobile first

Catalogs deep dive

Site build PowerShell scripts

Team Foundation Server and Application Lifecycle Management

Starting a new project

Managing content authoring

Site Improve tool

SEO Optimizations

Analytics options

Retaining Page Ranks with permanent redirects (301)

Azure SharePoint Hosting

Q amp A

Session Evaluations

Go to Evaluations on the home page of wwwcollabconorg

It is important to get your feedback

Please fill out evaluations for all the sessions you attend

Following the conference a random drawing from all completed evaluations will be selected

The winner will receive a $250 Future Shop gift card valid online or in store

Page 56: Web Content Management - CollabCon 2015 - Web... · Performances Complete Works ... Friendly URL An SEO friendly URL defined in the term store for a page, rather than ... What’s

Search Results Web Part

Similar functionality to the Content Search Web Part

Doesnrsquot allow property mapping in the web part configuration

Mapping is controlled in the Display Template

Part of the Standard CAL

Category Page Item Page

Catalogs

wwwcontosocomproductsAudio-Liware2g

Catalogs

Results

Consistent Displays

Manage content in one place

No need to create

pages

No need to format

Metadata Navigation

Cross-Site Publishing

Reuse content between different sites including site collections and farms

Catalogs can surface lists into publishing sites onto a category page and item pages

Can be surfaced through the Content Search Web Part

No need to create and publish web pages

Create custom friendly URLs

Metadata based navigation base

Cross Site Publishing

Job Posting

Job Posting

Job Posting

Job Posting

Simcoe County District School Board

50000 students

Over 6000 employees

Board office in Barrie

Bordered by the Holland Marsh in the south the Trent-Severn Waterway in the east Grey County in the west and Muskoka in the north

Simcoe County District School Board

119 schools and centres 87 elementary 16 secondary 6 learning centres 10 alternative

Each needs their own web site Being built on SharePoint 2013 Elementary panel first Each has their own unique URL Content authored both at the school and centrally from the board

wwwscdsbonca Pre-existing SharePoint 2010 site Future goal is to rebuild in SharePoint 2013

Business Challenge

100+ public web sites

No standardization on style technology or content

No ability for the board to push content to the school sites

Outdated sites

Not mobile or AODA compliant

Site Features

Fully Adaptivemobile design Robust Search functionality Template makes it fast and efficient to add new school sites News and events can be targeted by the Board to any number of

school sites Target by panel weather zone trustee language Presented in a blended view with the school news and events

Home page rotator links hours content pages all managed by the school staff

SEO-friendly URLs

News

School news entered by school staff

Board news entered in the board site

Rendered using cross-site publishing

High-priority alerts can be flagged to highlight on the site

Bus or school cancellations

Events

Single and multi-day events

School and board managed like news

Adaptive calendar

School Picker

Used to pick which schools to target news and events to

Schools are tagged through the term store

Target by panel weather zone trustee language

Can override and add or remove individual schools

Search

Catalogs

Three main steps

Enabling lists or libraries as catalogs

Creating the catalog connection

Building the page layouts to display the category rollups or item detail pages

Enabling Catalogs

Doesnrsquot have to be a list can be a document Images or Pages library

Experimenting using a Pages library

This gives us draft and published states that lists donrsquot support

Preview and editing is easier

Fairly simple script to do this

Catalog connections are more complex

Create the connection

Fix up the Term Store

Create the Category and Item page layouts and pages

SEO Enhancements

Friendly URLs

Home page redirects

XML sitemaps automatically generated and updated

Custom SEO properties

Usage Analytics

Built for scale from the ground up Detail data rolled up every 15 days amp anonymized Daily events purged every 15 days monthly events after 3 years Lifetime counts always retained

Counts views amp unique itemsday Shows recent (2-weeks) and lifetime count Trims least visited content Pushes aggregate data to reporting database

Drives recommendations capabilities on content Calculations injected into search index as sortable managed properties Deep integration with search engine Can influence search relevance based on content usage

Variations and Multi-Lingual

Export and import content for translation in XLIFF format

Pages

Labels

List items

Navigation

Bing translation service comes with active SharePoint 2013 license

Adaptive Web Design

Adaptive vs Responsive

Adaptive

Fixed breakpoints‒ Desktop gt 980 px

‒ Table portrait gt 768 px

‒ Phone to tablet gt 480 px lt 768 px

‒ Smartphone lt 480 px

Responsive

No fixed breakpoints

Design fluidly adapts to whatever width the browser is

We generally do a hybrid approach with responsive design in the under 768 pixel situation

Design Approaches in SharePoint

Adaptive Design through CSS media queries

Broader standards approach used outside of SharePoint

Keeps a single master page and CSS

Some unnecessary components may still be loaded

Device Channels SharePoint specific approach

Assign different master pages to different device channels

Rules define what devices use which channels

Device Channel Panels can also target content to channels

Hybrid here can also make sense Device channels can be used to remove unnecessary items from the page payload

Our Adaptive Approach

Built using the Twitter Boostrap CSS framework

twittergithubcombootstrap

Provides a responsive design framework for supporting PC Mac tablet and mobile

We enhanced to provide better touch navigation support

Can be leveraged in the master page page layouts and display templates

Incorporated into the SharePoint 2013 Design Master

HTML based master page that can be edited with any tool

SharePoint converts to a master page when uploaded or saved

Additional Open Source Tools and Resources

HTML CSS JavaScript jQuery

httpwwww3schoolscom

httpgetbootstrapcom

httphandlebarsjscom

httpknockoutjscom

httpsangularjsorg

httpmomentjscom

Content Search Web Part

Web part is configured to return search results

Executed as client-side code in the browser

Pair of display templates map the data returned to HTML

Control template for the overall structure

Item template for each item returned

HTML Designer Manager files are compiled to JavaScript

REST Search and Handlebars

Search is accessible through REST calls

httpsiteurl_apisearchquery

Returns results as a JSON array

Handlebars is a templating engine to format that

Conceptually similar to display templates with control and item sections

jQuery glues this all together

Steps to Experiment

F12 to get into Developer Toolbar

Set a breakpoint where the REST URL is determined

Copy the value

Paste into the REST Search test window

Experiment with the query

Adjust the Handlebars template appropriately

Search Setup

Content Sources to define and schedule the crawls

Crawl logs to review success

Search Schema to define the managed properties

Reusable Content

Snippets of HTML that can be reused throughout the site

JavaScript can be intelligent and use the URL to determine its behaviour

Makes it easy for content authors to drop pre-configured dynamic content onto pages

Topic Pages

Shows all items that match a topic

Could be hundreds of virtual pages

Only one template page

Easily customizable and SEO friendly (each topic appears to be its own page)

Content by search web part open search against a query or result source

May be able to surface the topic pages themselves as site search results

Public Health Ontario

httpwwwpublichealthontariocaenBrowseByTopicPagesTopicaspxk=Influenza20InformationByTopic22Influenza22

Ontario Association of Childrens Aid Societies

Application Lifecycle Management

Purpose

How do we build a solid SharePoint development environment for the enterprise

How do a number of developers work together on a SharePoint project

How does code and content move through a dev test and production lifecycle

What is Agile and Continuous Integration and why is it important

Visual Studio and Team Foundation Server

Visual Studio 2010 is the development platform for coding on SharePoint 2010

Team Foundation Server integrates with Visual Studio to provide a repository for code test and other project artifacts

It facilitates teamwork by providing a common place for developers to work together

Provisioning SharePoint Farms

Provisioning SharePoint Farms

Every developer needs their own complete SharePoint farm

Teams need a dev integration farm to bring their work together on

A full architecture needs QA and production farms as well

Envision IT Virtualization Architecture

Developer VM Template

SharePoint Server 2010 Enterprise

SP1 and August CU

Visual Studio 2010 Premium SP1

Office 2010 Professional Plus SP1

SharePoint Designer 2010 SP1

Fiddler

SQL Server 2008 R2 SP1

Creating a new Developer VM

Open System Centre Virtual Machine Manager

Create Virtual Machine

Choose the Developer VM template

Set the virtual machine name and options

Create and start the VM

Creating a new Developer VM - Step 2

Developer RDPs to their new VM Complete the SQL Server installation

Create the default instance Set the service account(s) Set the authentication mode and server administrators

Update the AutoSPInstallerInputxml file Set the machine name for the default sites and database server Set the service account passwords

Run the AutoSPInstallerLaunch batch file Do a Health check review

Creating a new Developer VM - Step 3

Start Visual Studio

Connect to the Team Foundation Server

Setup your workspaces

Use a standard naming convention across your team

CDevelopmentTFSCollection

Other Environments

Dev Integration QA and Production can all be built using AutoSPInstall

Donrsquot need or want the Visual Studio or Office tools on these servers

We have a base template we use for dev integration servers

QA should match the Prod architecture as closely as possible

High availability with load balancing clustered SQL app servers DMZ hardening Internet publishing

Agile Development

Agile with Team Foundation Server

Creating Your TFS Project

Open Visual Studio

Make sure you are connected to the right Team Project Collection

In Team Explorer right-click the top collection and create a new Team Project

Use the Scrum 10 template

Go into the Areas and Iterations Delete the extraneous releases and sprints

Create a product backlog iteration

Start adding your stories and tasks

Continuous Integration

Continuous Integration

Automated Testing

SharePoint Site Elements

Site structure Site columns content types subsites lists libraries

Branding elements Master pages layouts CSS XSLT supporting images

Custom web parts Page and site content Web part instances Search Workflows Business Connectivity Services Managed Metadata

SharePoint Site Elements ndash Part 2

Access Excel Word Visio

PerformancePoint

Document conversions

Timer jobs

Secure Store Service

User profiles

Site Structure

bull Site columns

bull Define the fields that are used by content types

bull Content types

bull Defines collections of site columns for different types of content

bull Subsites

bull The hierarchy of sites that make up the site collection

bull Lists and Libraries

bull The lists and libraries for each subsite

Site Structure ndash Part 2

Site columns and content types can be programmatically or manually created If they are going to be used in multiple site collections they should be

programmatically created

If a single site collection they can be created manually in a master site collection

GUIDs cannot be manually set and code may need them to be consistent

You can create them manually in SharePoint save the site as a template and import them into Visual Studio to create a proper WSP package

Site Structure ndash Part 3

Site structure can also be done either programmatically or manually

Many sites are complex and it is error prone to create manually

We use our own SiteModelBuilder tool to create the site structure

Site Structure ndash Part 4

For all site structure elements changes can also be manual or programmatic It is useful to be able to delete the whole site collection and recreate it

programmatically As soon as content starts being authored in SharePoint it becomes difficult

or impossible to do that

After content authoring has started Site column and content type changes need to be programmed explicitly

(you canrsquot just drop the content type and recreate it) Site structure changes are usually done manually at this point Changes need to be backed up and restored

Change Management

Page and Site Content

Page and site content is entered directly into SharePoint by the content authors Web pages images PDFs list content etc This should be done in the master site separate from where dev integration is

happening Care needs to be taken with this site once authors start working Make sure it is part of your production backup plan

Periodically back it up and restore it to the dev integration and developer VMs

Alternatively script the export and import Ultimately it will be backed up and restored to the QA and production

farms

Change Management

Change Management

Change Management

Change Management

Web part instances

Web parts ultimately get placed on pages

The configuration of the web parts can often get quite complex

You may want to disable editing of web parts for general content authors

They end up in a grey zone between code and content

Web part instances ndash Part 2

We created our own internal tool to export and import web parts

Each web partrsquos configuration can be exported into a webpartfile

We scripted the extraction from the dev integration

webpart files are treated like code and checked into TFS for version control

Script then applies the new webpart files to the target environment

Workflows

Workflows can be built using SharePoint Designer Visual Studio or third-party tools (Nintex or K2 primarily)

Visual Studio workflow projects are automatically packaged as WSP solution files Simply deploy the WSP file to the other environments

SharePoint Designer workflows need to be deployed using SharePoint Designer This means you need SPD access to production which is not always possible

You can load the SPD workflow into Visual Studio to package it but you lose the ability to edit it in SPD

If you use third-party tools yoursquoll need to define the process for that as well

Business Connectivity Services

BCS can be built using either SharePoint Designer or Visual Studio Visual Studio BCS projects are automatically packaged as WSP

solution files Simply deploy the WSP file to the other environments You can also export the BDC metadata model in the BDC service

application

SharePoint Designer doesnrsquot create a WSP and it doesnrsquot make a complete BDC metadata model You need to export and import using SharePoint Designer

In both cases you still need to deal with connection and configuration information

Future Directions

Visual Studio Lab Management

Integrates the management of HyperV environments in with Visual Studio and Team Foundation Server

Can automate the provisioning of lab environments for automated testing

Test failures can snapshot entire environments to make reproduction of errors much easier

Summary

Yoursquore going to have lots of SharePoint environments ndash figure out how to build them quickly and repeatable

Code and content often move in opposite directions through dev QA and Prod PowerShell script and automate to keep this simple

Agile is a great way to run projects

Continuous integration with automated testing is key to its success

There are lots of parts of SharePoint that you donrsquot code through Visual Studio Figure out how you move those through your environment

Other Topics

Site Design

Information architecture

Wireframes

Creative designs ndash Mobile first

Catalogs deep dive

Site build PowerShell scripts

Team Foundation Server and Application Lifecycle Management

Starting a new project

Managing content authoring

Site Improve tool

SEO Optimizations

Analytics options

Retaining Page Ranks with permanent redirects (301)

Azure SharePoint Hosting

Q amp A

Session Evaluations

Go to Evaluations on the home page of wwwcollabconorg

It is important to get your feedback

Please fill out evaluations for all the sessions you attend

Following the conference a random drawing from all completed evaluations will be selected

The winner will receive a $250 Future Shop gift card valid online or in store

Page 57: Web Content Management - CollabCon 2015 - Web... · Performances Complete Works ... Friendly URL An SEO friendly URL defined in the term store for a page, rather than ... What’s

Category Page Item Page

Catalogs

wwwcontosocomproductsAudio-Liware2g

Catalogs

Results

Consistent Displays

Manage content in one place

No need to create

pages

No need to format

Metadata Navigation

Cross-Site Publishing

Reuse content between different sites including site collections and farms

Catalogs can surface lists into publishing sites onto a category page and item pages

Can be surfaced through the Content Search Web Part

No need to create and publish web pages

Create custom friendly URLs

Metadata based navigation base

Cross Site Publishing

Job Posting

Job Posting

Job Posting

Job Posting

Simcoe County District School Board

50000 students

Over 6000 employees

Board office in Barrie

Bordered by the Holland Marsh in the south the Trent-Severn Waterway in the east Grey County in the west and Muskoka in the north

Simcoe County District School Board

119 schools and centres 87 elementary 16 secondary 6 learning centres 10 alternative

Each needs their own web site Being built on SharePoint 2013 Elementary panel first Each has their own unique URL Content authored both at the school and centrally from the board

wwwscdsbonca Pre-existing SharePoint 2010 site Future goal is to rebuild in SharePoint 2013

Business Challenge

100+ public web sites

No standardization on style technology or content

No ability for the board to push content to the school sites

Outdated sites

Not mobile or AODA compliant

Site Features

Fully Adaptivemobile design Robust Search functionality Template makes it fast and efficient to add new school sites News and events can be targeted by the Board to any number of

school sites Target by panel weather zone trustee language Presented in a blended view with the school news and events

Home page rotator links hours content pages all managed by the school staff

SEO-friendly URLs

News

School news entered by school staff

Board news entered in the board site

Rendered using cross-site publishing

High-priority alerts can be flagged to highlight on the site

Bus or school cancellations

Events

Single and multi-day events

School and board managed like news

Adaptive calendar

School Picker

Used to pick which schools to target news and events to

Schools are tagged through the term store

Target by panel weather zone trustee language

Can override and add or remove individual schools

Search

Catalogs

Three main steps

Enabling lists or libraries as catalogs

Creating the catalog connection

Building the page layouts to display the category rollups or item detail pages

Enabling Catalogs

Doesnrsquot have to be a list can be a document Images or Pages library

Experimenting using a Pages library

This gives us draft and published states that lists donrsquot support

Preview and editing is easier

Fairly simple script to do this

Catalog connections are more complex

Create the connection

Fix up the Term Store

Create the Category and Item page layouts and pages

SEO Enhancements

Friendly URLs

Home page redirects

XML sitemaps automatically generated and updated

Custom SEO properties

Usage Analytics

Built for scale from the ground up Detail data rolled up every 15 days amp anonymized Daily events purged every 15 days monthly events after 3 years Lifetime counts always retained

Counts views amp unique itemsday Shows recent (2-weeks) and lifetime count Trims least visited content Pushes aggregate data to reporting database

Drives recommendations capabilities on content Calculations injected into search index as sortable managed properties Deep integration with search engine Can influence search relevance based on content usage

Variations and Multi-Lingual

Export and import content for translation in XLIFF format

Pages

Labels

List items

Navigation

Bing translation service comes with active SharePoint 2013 license

Adaptive Web Design

Adaptive vs Responsive

Adaptive

Fixed breakpoints‒ Desktop gt 980 px

‒ Table portrait gt 768 px

‒ Phone to tablet gt 480 px lt 768 px

‒ Smartphone lt 480 px

Responsive

No fixed breakpoints

Design fluidly adapts to whatever width the browser is

We generally do a hybrid approach with responsive design in the under 768 pixel situation

Design Approaches in SharePoint

Adaptive Design through CSS media queries

Broader standards approach used outside of SharePoint

Keeps a single master page and CSS

Some unnecessary components may still be loaded

Device Channels SharePoint specific approach

Assign different master pages to different device channels

Rules define what devices use which channels

Device Channel Panels can also target content to channels

Hybrid here can also make sense Device channels can be used to remove unnecessary items from the page payload

Our Adaptive Approach

Built using the Twitter Boostrap CSS framework

twittergithubcombootstrap

Provides a responsive design framework for supporting PC Mac tablet and mobile

We enhanced to provide better touch navigation support

Can be leveraged in the master page page layouts and display templates

Incorporated into the SharePoint 2013 Design Master

HTML based master page that can be edited with any tool

SharePoint converts to a master page when uploaded or saved

Additional Open Source Tools and Resources

HTML CSS JavaScript jQuery

httpwwww3schoolscom

httpgetbootstrapcom

httphandlebarsjscom

httpknockoutjscom

httpsangularjsorg

httpmomentjscom

Content Search Web Part

Web part is configured to return search results

Executed as client-side code in the browser

Pair of display templates map the data returned to HTML

Control template for the overall structure

Item template for each item returned

HTML Designer Manager files are compiled to JavaScript

REST Search and Handlebars

Search is accessible through REST calls

httpsiteurl_apisearchquery

Returns results as a JSON array

Handlebars is a templating engine to format that

Conceptually similar to display templates with control and item sections

jQuery glues this all together

Steps to Experiment

F12 to get into Developer Toolbar

Set a breakpoint where the REST URL is determined

Copy the value

Paste into the REST Search test window

Experiment with the query

Adjust the Handlebars template appropriately

Search Setup

Content Sources to define and schedule the crawls

Crawl logs to review success

Search Schema to define the managed properties

Reusable Content

Snippets of HTML that can be reused throughout the site

JavaScript can be intelligent and use the URL to determine its behaviour

Makes it easy for content authors to drop pre-configured dynamic content onto pages

Topic Pages

Shows all items that match a topic

Could be hundreds of virtual pages

Only one template page

Easily customizable and SEO friendly (each topic appears to be its own page)

Content by search web part open search against a query or result source

May be able to surface the topic pages themselves as site search results

Public Health Ontario

httpwwwpublichealthontariocaenBrowseByTopicPagesTopicaspxk=Influenza20InformationByTopic22Influenza22

Ontario Association of Childrens Aid Societies

Application Lifecycle Management

Purpose

How do we build a solid SharePoint development environment for the enterprise

How do a number of developers work together on a SharePoint project

How does code and content move through a dev test and production lifecycle

What is Agile and Continuous Integration and why is it important

Visual Studio and Team Foundation Server

Visual Studio 2010 is the development platform for coding on SharePoint 2010

Team Foundation Server integrates with Visual Studio to provide a repository for code test and other project artifacts

It facilitates teamwork by providing a common place for developers to work together

Provisioning SharePoint Farms

Provisioning SharePoint Farms

Every developer needs their own complete SharePoint farm

Teams need a dev integration farm to bring their work together on

A full architecture needs QA and production farms as well

Envision IT Virtualization Architecture

Developer VM Template

SharePoint Server 2010 Enterprise

SP1 and August CU

Visual Studio 2010 Premium SP1

Office 2010 Professional Plus SP1

SharePoint Designer 2010 SP1

Fiddler

SQL Server 2008 R2 SP1

Creating a new Developer VM

Open System Centre Virtual Machine Manager

Create Virtual Machine

Choose the Developer VM template

Set the virtual machine name and options

Create and start the VM

Creating a new Developer VM - Step 2

Developer RDPs to their new VM Complete the SQL Server installation

Create the default instance Set the service account(s) Set the authentication mode and server administrators

Update the AutoSPInstallerInputxml file Set the machine name for the default sites and database server Set the service account passwords

Run the AutoSPInstallerLaunch batch file Do a Health check review

Creating a new Developer VM - Step 3

Start Visual Studio

Connect to the Team Foundation Server

Setup your workspaces

Use a standard naming convention across your team

CDevelopmentTFSCollection

Other Environments

Dev Integration QA and Production can all be built using AutoSPInstall

Donrsquot need or want the Visual Studio or Office tools on these servers

We have a base template we use for dev integration servers

QA should match the Prod architecture as closely as possible

High availability with load balancing clustered SQL app servers DMZ hardening Internet publishing

Agile Development

Agile with Team Foundation Server

Creating Your TFS Project

Open Visual Studio

Make sure you are connected to the right Team Project Collection

In Team Explorer right-click the top collection and create a new Team Project

Use the Scrum 10 template

Go into the Areas and Iterations Delete the extraneous releases and sprints

Create a product backlog iteration

Start adding your stories and tasks

Continuous Integration

Continuous Integration

Automated Testing

SharePoint Site Elements

Site structure Site columns content types subsites lists libraries

Branding elements Master pages layouts CSS XSLT supporting images

Custom web parts Page and site content Web part instances Search Workflows Business Connectivity Services Managed Metadata

SharePoint Site Elements ndash Part 2

Access Excel Word Visio

PerformancePoint

Document conversions

Timer jobs

Secure Store Service

User profiles

Site Structure

bull Site columns

bull Define the fields that are used by content types

bull Content types

bull Defines collections of site columns for different types of content

bull Subsites

bull The hierarchy of sites that make up the site collection

bull Lists and Libraries

bull The lists and libraries for each subsite

Site Structure ndash Part 2

Site columns and content types can be programmatically or manually created If they are going to be used in multiple site collections they should be

programmatically created

If a single site collection they can be created manually in a master site collection

GUIDs cannot be manually set and code may need them to be consistent

You can create them manually in SharePoint save the site as a template and import them into Visual Studio to create a proper WSP package

Site Structure ndash Part 3

Site structure can also be done either programmatically or manually

Many sites are complex and it is error prone to create manually

We use our own SiteModelBuilder tool to create the site structure

Site Structure ndash Part 4

For all site structure elements changes can also be manual or programmatic It is useful to be able to delete the whole site collection and recreate it

programmatically As soon as content starts being authored in SharePoint it becomes difficult

or impossible to do that

After content authoring has started Site column and content type changes need to be programmed explicitly

(you canrsquot just drop the content type and recreate it) Site structure changes are usually done manually at this point Changes need to be backed up and restored

Change Management

Page and Site Content

Page and site content is entered directly into SharePoint by the content authors Web pages images PDFs list content etc This should be done in the master site separate from where dev integration is

happening Care needs to be taken with this site once authors start working Make sure it is part of your production backup plan

Periodically back it up and restore it to the dev integration and developer VMs

Alternatively script the export and import Ultimately it will be backed up and restored to the QA and production

farms

Change Management

Change Management

Change Management

Change Management

Web part instances

Web parts ultimately get placed on pages

The configuration of the web parts can often get quite complex

You may want to disable editing of web parts for general content authors

They end up in a grey zone between code and content

Web part instances ndash Part 2

We created our own internal tool to export and import web parts

Each web partrsquos configuration can be exported into a webpartfile

We scripted the extraction from the dev integration

webpart files are treated like code and checked into TFS for version control

Script then applies the new webpart files to the target environment

Workflows

Workflows can be built using SharePoint Designer Visual Studio or third-party tools (Nintex or K2 primarily)

Visual Studio workflow projects are automatically packaged as WSP solution files Simply deploy the WSP file to the other environments

SharePoint Designer workflows need to be deployed using SharePoint Designer This means you need SPD access to production which is not always possible

You can load the SPD workflow into Visual Studio to package it but you lose the ability to edit it in SPD

If you use third-party tools yoursquoll need to define the process for that as well

Business Connectivity Services

BCS can be built using either SharePoint Designer or Visual Studio Visual Studio BCS projects are automatically packaged as WSP

solution files Simply deploy the WSP file to the other environments You can also export the BDC metadata model in the BDC service

application

SharePoint Designer doesnrsquot create a WSP and it doesnrsquot make a complete BDC metadata model You need to export and import using SharePoint Designer

In both cases you still need to deal with connection and configuration information

Future Directions

Visual Studio Lab Management

Integrates the management of HyperV environments in with Visual Studio and Team Foundation Server

Can automate the provisioning of lab environments for automated testing

Test failures can snapshot entire environments to make reproduction of errors much easier

Summary

Yoursquore going to have lots of SharePoint environments ndash figure out how to build them quickly and repeatable

Code and content often move in opposite directions through dev QA and Prod PowerShell script and automate to keep this simple

Agile is a great way to run projects

Continuous integration with automated testing is key to its success

There are lots of parts of SharePoint that you donrsquot code through Visual Studio Figure out how you move those through your environment

Other Topics

Site Design

Information architecture

Wireframes

Creative designs ndash Mobile first

Catalogs deep dive

Site build PowerShell scripts

Team Foundation Server and Application Lifecycle Management

Starting a new project

Managing content authoring

Site Improve tool

SEO Optimizations

Analytics options

Retaining Page Ranks with permanent redirects (301)

Azure SharePoint Hosting

Q amp A

Session Evaluations

Go to Evaluations on the home page of wwwcollabconorg

It is important to get your feedback

Please fill out evaluations for all the sessions you attend

Following the conference a random drawing from all completed evaluations will be selected

The winner will receive a $250 Future Shop gift card valid online or in store

Page 58: Web Content Management - CollabCon 2015 - Web... · Performances Complete Works ... Friendly URL An SEO friendly URL defined in the term store for a page, rather than ... What’s

Catalogs

Results

Consistent Displays

Manage content in one place

No need to create

pages

No need to format

Metadata Navigation

Cross-Site Publishing

Reuse content between different sites including site collections and farms

Catalogs can surface lists into publishing sites onto a category page and item pages

Can be surfaced through the Content Search Web Part

No need to create and publish web pages

Create custom friendly URLs

Metadata based navigation base

Cross Site Publishing

Job Posting

Job Posting

Job Posting

Job Posting

Simcoe County District School Board

50000 students

Over 6000 employees

Board office in Barrie

Bordered by the Holland Marsh in the south the Trent-Severn Waterway in the east Grey County in the west and Muskoka in the north

Simcoe County District School Board

119 schools and centres 87 elementary 16 secondary 6 learning centres 10 alternative

Each needs their own web site Being built on SharePoint 2013 Elementary panel first Each has their own unique URL Content authored both at the school and centrally from the board

wwwscdsbonca Pre-existing SharePoint 2010 site Future goal is to rebuild in SharePoint 2013

Business Challenge

100+ public web sites

No standardization on style technology or content

No ability for the board to push content to the school sites

Outdated sites

Not mobile or AODA compliant

Site Features

Fully Adaptivemobile design Robust Search functionality Template makes it fast and efficient to add new school sites News and events can be targeted by the Board to any number of

school sites Target by panel weather zone trustee language Presented in a blended view with the school news and events

Home page rotator links hours content pages all managed by the school staff

SEO-friendly URLs

News

School news entered by school staff

Board news entered in the board site

Rendered using cross-site publishing

High-priority alerts can be flagged to highlight on the site

Bus or school cancellations

Events

Single and multi-day events

School and board managed like news

Adaptive calendar

School Picker

Used to pick which schools to target news and events to

Schools are tagged through the term store

Target by panel weather zone trustee language

Can override and add or remove individual schools

Search

Catalogs

Three main steps

Enabling lists or libraries as catalogs

Creating the catalog connection

Building the page layouts to display the category rollups or item detail pages

Enabling Catalogs

Doesnrsquot have to be a list can be a document Images or Pages library

Experimenting using a Pages library

This gives us draft and published states that lists donrsquot support

Preview and editing is easier

Fairly simple script to do this

Catalog connections are more complex

Create the connection

Fix up the Term Store

Create the Category and Item page layouts and pages

SEO Enhancements

Friendly URLs

Home page redirects

XML sitemaps automatically generated and updated

Custom SEO properties

Usage Analytics

Built for scale from the ground up Detail data rolled up every 15 days amp anonymized Daily events purged every 15 days monthly events after 3 years Lifetime counts always retained

Counts views amp unique itemsday Shows recent (2-weeks) and lifetime count Trims least visited content Pushes aggregate data to reporting database

Drives recommendations capabilities on content Calculations injected into search index as sortable managed properties Deep integration with search engine Can influence search relevance based on content usage

Variations and Multi-Lingual

Export and import content for translation in XLIFF format

Pages

Labels

List items

Navigation

Bing translation service comes with active SharePoint 2013 license

Adaptive Web Design

Adaptive vs Responsive

Adaptive

Fixed breakpoints‒ Desktop gt 980 px

‒ Table portrait gt 768 px

‒ Phone to tablet gt 480 px lt 768 px

‒ Smartphone lt 480 px

Responsive

No fixed breakpoints

Design fluidly adapts to whatever width the browser is

We generally do a hybrid approach with responsive design in the under 768 pixel situation

Design Approaches in SharePoint

Adaptive Design through CSS media queries

Broader standards approach used outside of SharePoint

Keeps a single master page and CSS

Some unnecessary components may still be loaded

Device Channels SharePoint specific approach

Assign different master pages to different device channels

Rules define what devices use which channels

Device Channel Panels can also target content to channels

Hybrid here can also make sense Device channels can be used to remove unnecessary items from the page payload

Our Adaptive Approach

Built using the Twitter Boostrap CSS framework

twittergithubcombootstrap

Provides a responsive design framework for supporting PC Mac tablet and mobile

We enhanced to provide better touch navigation support

Can be leveraged in the master page page layouts and display templates

Incorporated into the SharePoint 2013 Design Master

HTML based master page that can be edited with any tool

SharePoint converts to a master page when uploaded or saved

Additional Open Source Tools and Resources

HTML CSS JavaScript jQuery

httpwwww3schoolscom

httpgetbootstrapcom

httphandlebarsjscom

httpknockoutjscom

httpsangularjsorg

httpmomentjscom

Content Search Web Part

Web part is configured to return search results

Executed as client-side code in the browser

Pair of display templates map the data returned to HTML

Control template for the overall structure

Item template for each item returned

HTML Designer Manager files are compiled to JavaScript

REST Search and Handlebars

Search is accessible through REST calls

httpsiteurl_apisearchquery

Returns results as a JSON array

Handlebars is a templating engine to format that

Conceptually similar to display templates with control and item sections

jQuery glues this all together

Steps to Experiment

F12 to get into Developer Toolbar

Set a breakpoint where the REST URL is determined

Copy the value

Paste into the REST Search test window

Experiment with the query

Adjust the Handlebars template appropriately

Search Setup

Content Sources to define and schedule the crawls

Crawl logs to review success

Search Schema to define the managed properties

Reusable Content

Snippets of HTML that can be reused throughout the site

JavaScript can be intelligent and use the URL to determine its behaviour

Makes it easy for content authors to drop pre-configured dynamic content onto pages

Topic Pages

Shows all items that match a topic

Could be hundreds of virtual pages

Only one template page

Easily customizable and SEO friendly (each topic appears to be its own page)

Content by search web part open search against a query or result source

May be able to surface the topic pages themselves as site search results

Public Health Ontario

httpwwwpublichealthontariocaenBrowseByTopicPagesTopicaspxk=Influenza20InformationByTopic22Influenza22

Ontario Association of Childrens Aid Societies

Application Lifecycle Management

Purpose

How do we build a solid SharePoint development environment for the enterprise

How do a number of developers work together on a SharePoint project

How does code and content move through a dev test and production lifecycle

What is Agile and Continuous Integration and why is it important

Visual Studio and Team Foundation Server

Visual Studio 2010 is the development platform for coding on SharePoint 2010

Team Foundation Server integrates with Visual Studio to provide a repository for code test and other project artifacts

It facilitates teamwork by providing a common place for developers to work together

Provisioning SharePoint Farms

Provisioning SharePoint Farms

Every developer needs their own complete SharePoint farm

Teams need a dev integration farm to bring their work together on

A full architecture needs QA and production farms as well

Envision IT Virtualization Architecture

Developer VM Template

SharePoint Server 2010 Enterprise

SP1 and August CU

Visual Studio 2010 Premium SP1

Office 2010 Professional Plus SP1

SharePoint Designer 2010 SP1

Fiddler

SQL Server 2008 R2 SP1

Creating a new Developer VM

Open System Centre Virtual Machine Manager

Create Virtual Machine

Choose the Developer VM template

Set the virtual machine name and options

Create and start the VM

Creating a new Developer VM - Step 2

Developer RDPs to their new VM Complete the SQL Server installation

Create the default instance Set the service account(s) Set the authentication mode and server administrators

Update the AutoSPInstallerInputxml file Set the machine name for the default sites and database server Set the service account passwords

Run the AutoSPInstallerLaunch batch file Do a Health check review

Creating a new Developer VM - Step 3

Start Visual Studio

Connect to the Team Foundation Server

Setup your workspaces

Use a standard naming convention across your team

CDevelopmentTFSCollection

Other Environments

Dev Integration QA and Production can all be built using AutoSPInstall

Donrsquot need or want the Visual Studio or Office tools on these servers

We have a base template we use for dev integration servers

QA should match the Prod architecture as closely as possible

High availability with load balancing clustered SQL app servers DMZ hardening Internet publishing

Agile Development

Agile with Team Foundation Server

Creating Your TFS Project

Open Visual Studio

Make sure you are connected to the right Team Project Collection

In Team Explorer right-click the top collection and create a new Team Project

Use the Scrum 10 template

Go into the Areas and Iterations Delete the extraneous releases and sprints

Create a product backlog iteration

Start adding your stories and tasks

Continuous Integration

Continuous Integration

Automated Testing

SharePoint Site Elements

Site structure Site columns content types subsites lists libraries

Branding elements Master pages layouts CSS XSLT supporting images

Custom web parts Page and site content Web part instances Search Workflows Business Connectivity Services Managed Metadata

SharePoint Site Elements ndash Part 2

Access Excel Word Visio

PerformancePoint

Document conversions

Timer jobs

Secure Store Service

User profiles

Site Structure

bull Site columns

bull Define the fields that are used by content types

bull Content types

bull Defines collections of site columns for different types of content

bull Subsites

bull The hierarchy of sites that make up the site collection

bull Lists and Libraries

bull The lists and libraries for each subsite

Site Structure ndash Part 2

Site columns and content types can be programmatically or manually created If they are going to be used in multiple site collections they should be

programmatically created

If a single site collection they can be created manually in a master site collection

GUIDs cannot be manually set and code may need them to be consistent

You can create them manually in SharePoint save the site as a template and import them into Visual Studio to create a proper WSP package

Site Structure ndash Part 3

Site structure can also be done either programmatically or manually

Many sites are complex and it is error prone to create manually

We use our own SiteModelBuilder tool to create the site structure

Site Structure ndash Part 4

For all site structure elements changes can also be manual or programmatic It is useful to be able to delete the whole site collection and recreate it

programmatically As soon as content starts being authored in SharePoint it becomes difficult

or impossible to do that

After content authoring has started Site column and content type changes need to be programmed explicitly

(you canrsquot just drop the content type and recreate it) Site structure changes are usually done manually at this point Changes need to be backed up and restored

Change Management

Page and Site Content

Page and site content is entered directly into SharePoint by the content authors Web pages images PDFs list content etc This should be done in the master site separate from where dev integration is

happening Care needs to be taken with this site once authors start working Make sure it is part of your production backup plan

Periodically back it up and restore it to the dev integration and developer VMs

Alternatively script the export and import Ultimately it will be backed up and restored to the QA and production

farms

Change Management

Change Management

Change Management

Change Management

Web part instances

Web parts ultimately get placed on pages

The configuration of the web parts can often get quite complex

You may want to disable editing of web parts for general content authors

They end up in a grey zone between code and content

Web part instances ndash Part 2

We created our own internal tool to export and import web parts

Each web partrsquos configuration can be exported into a webpartfile

We scripted the extraction from the dev integration

webpart files are treated like code and checked into TFS for version control

Script then applies the new webpart files to the target environment

Workflows

Workflows can be built using SharePoint Designer Visual Studio or third-party tools (Nintex or K2 primarily)

Visual Studio workflow projects are automatically packaged as WSP solution files Simply deploy the WSP file to the other environments

SharePoint Designer workflows need to be deployed using SharePoint Designer This means you need SPD access to production which is not always possible

You can load the SPD workflow into Visual Studio to package it but you lose the ability to edit it in SPD

If you use third-party tools yoursquoll need to define the process for that as well

Business Connectivity Services

BCS can be built using either SharePoint Designer or Visual Studio Visual Studio BCS projects are automatically packaged as WSP

solution files Simply deploy the WSP file to the other environments You can also export the BDC metadata model in the BDC service

application

SharePoint Designer doesnrsquot create a WSP and it doesnrsquot make a complete BDC metadata model You need to export and import using SharePoint Designer

In both cases you still need to deal with connection and configuration information

Future Directions

Visual Studio Lab Management

Integrates the management of HyperV environments in with Visual Studio and Team Foundation Server

Can automate the provisioning of lab environments for automated testing

Test failures can snapshot entire environments to make reproduction of errors much easier

Summary

Yoursquore going to have lots of SharePoint environments ndash figure out how to build them quickly and repeatable

Code and content often move in opposite directions through dev QA and Prod PowerShell script and automate to keep this simple

Agile is a great way to run projects

Continuous integration with automated testing is key to its success

There are lots of parts of SharePoint that you donrsquot code through Visual Studio Figure out how you move those through your environment

Other Topics

Site Design

Information architecture

Wireframes

Creative designs ndash Mobile first

Catalogs deep dive

Site build PowerShell scripts

Team Foundation Server and Application Lifecycle Management

Starting a new project

Managing content authoring

Site Improve tool

SEO Optimizations

Analytics options

Retaining Page Ranks with permanent redirects (301)

Azure SharePoint Hosting

Q amp A

Session Evaluations

Go to Evaluations on the home page of wwwcollabconorg

It is important to get your feedback

Please fill out evaluations for all the sessions you attend

Following the conference a random drawing from all completed evaluations will be selected

The winner will receive a $250 Future Shop gift card valid online or in store

Page 59: Web Content Management - CollabCon 2015 - Web... · Performances Complete Works ... Friendly URL An SEO friendly URL defined in the term store for a page, rather than ... What’s

Cross-Site Publishing

Reuse content between different sites including site collections and farms

Catalogs can surface lists into publishing sites onto a category page and item pages

Can be surfaced through the Content Search Web Part

No need to create and publish web pages

Create custom friendly URLs

Metadata based navigation base

Cross Site Publishing

Job Posting

Job Posting

Job Posting

Job Posting

Simcoe County District School Board

50000 students

Over 6000 employees

Board office in Barrie

Bordered by the Holland Marsh in the south the Trent-Severn Waterway in the east Grey County in the west and Muskoka in the north

Simcoe County District School Board

119 schools and centres 87 elementary 16 secondary 6 learning centres 10 alternative

Each needs their own web site Being built on SharePoint 2013 Elementary panel first Each has their own unique URL Content authored both at the school and centrally from the board

wwwscdsbonca Pre-existing SharePoint 2010 site Future goal is to rebuild in SharePoint 2013

Business Challenge

100+ public web sites

No standardization on style technology or content

No ability for the board to push content to the school sites

Outdated sites

Not mobile or AODA compliant

Site Features

Fully Adaptivemobile design Robust Search functionality Template makes it fast and efficient to add new school sites News and events can be targeted by the Board to any number of

school sites Target by panel weather zone trustee language Presented in a blended view with the school news and events

Home page rotator links hours content pages all managed by the school staff

SEO-friendly URLs

News

School news entered by school staff

Board news entered in the board site

Rendered using cross-site publishing

High-priority alerts can be flagged to highlight on the site

Bus or school cancellations

Events

Single and multi-day events

School and board managed like news

Adaptive calendar

School Picker

Used to pick which schools to target news and events to

Schools are tagged through the term store

Target by panel weather zone trustee language

Can override and add or remove individual schools

Search

Catalogs

Three main steps

Enabling lists or libraries as catalogs

Creating the catalog connection

Building the page layouts to display the category rollups or item detail pages

Enabling Catalogs

Doesnrsquot have to be a list can be a document Images or Pages library

Experimenting using a Pages library

This gives us draft and published states that lists donrsquot support

Preview and editing is easier

Fairly simple script to do this

Catalog connections are more complex

Create the connection

Fix up the Term Store

Create the Category and Item page layouts and pages

SEO Enhancements

Friendly URLs

Home page redirects

XML sitemaps automatically generated and updated

Custom SEO properties

Usage Analytics

Built for scale from the ground up Detail data rolled up every 15 days amp anonymized Daily events purged every 15 days monthly events after 3 years Lifetime counts always retained

Counts views amp unique itemsday Shows recent (2-weeks) and lifetime count Trims least visited content Pushes aggregate data to reporting database

Drives recommendations capabilities on content Calculations injected into search index as sortable managed properties Deep integration with search engine Can influence search relevance based on content usage

Variations and Multi-Lingual

Export and import content for translation in XLIFF format

Pages

Labels

List items

Navigation

Bing translation service comes with active SharePoint 2013 license

Adaptive Web Design

Adaptive vs Responsive

Adaptive

Fixed breakpoints‒ Desktop gt 980 px

‒ Table portrait gt 768 px

‒ Phone to tablet gt 480 px lt 768 px

‒ Smartphone lt 480 px

Responsive

No fixed breakpoints

Design fluidly adapts to whatever width the browser is

We generally do a hybrid approach with responsive design in the under 768 pixel situation

Design Approaches in SharePoint

Adaptive Design through CSS media queries

Broader standards approach used outside of SharePoint

Keeps a single master page and CSS

Some unnecessary components may still be loaded

Device Channels SharePoint specific approach

Assign different master pages to different device channels

Rules define what devices use which channels

Device Channel Panels can also target content to channels

Hybrid here can also make sense Device channels can be used to remove unnecessary items from the page payload

Our Adaptive Approach

Built using the Twitter Boostrap CSS framework

twittergithubcombootstrap

Provides a responsive design framework for supporting PC Mac tablet and mobile

We enhanced to provide better touch navigation support

Can be leveraged in the master page page layouts and display templates

Incorporated into the SharePoint 2013 Design Master

HTML based master page that can be edited with any tool

SharePoint converts to a master page when uploaded or saved

Additional Open Source Tools and Resources

HTML CSS JavaScript jQuery

httpwwww3schoolscom

httpgetbootstrapcom

httphandlebarsjscom

httpknockoutjscom

httpsangularjsorg

httpmomentjscom

Content Search Web Part

Web part is configured to return search results

Executed as client-side code in the browser

Pair of display templates map the data returned to HTML

Control template for the overall structure

Item template for each item returned

HTML Designer Manager files are compiled to JavaScript

REST Search and Handlebars

Search is accessible through REST calls

httpsiteurl_apisearchquery

Returns results as a JSON array

Handlebars is a templating engine to format that

Conceptually similar to display templates with control and item sections

jQuery glues this all together

Steps to Experiment

F12 to get into Developer Toolbar

Set a breakpoint where the REST URL is determined

Copy the value

Paste into the REST Search test window

Experiment with the query

Adjust the Handlebars template appropriately

Search Setup

Content Sources to define and schedule the crawls

Crawl logs to review success

Search Schema to define the managed properties

Reusable Content

Snippets of HTML that can be reused throughout the site

JavaScript can be intelligent and use the URL to determine its behaviour

Makes it easy for content authors to drop pre-configured dynamic content onto pages

Topic Pages

Shows all items that match a topic

Could be hundreds of virtual pages

Only one template page

Easily customizable and SEO friendly (each topic appears to be its own page)

Content by search web part open search against a query or result source

May be able to surface the topic pages themselves as site search results

Public Health Ontario

httpwwwpublichealthontariocaenBrowseByTopicPagesTopicaspxk=Influenza20InformationByTopic22Influenza22

Ontario Association of Childrens Aid Societies

Application Lifecycle Management

Purpose

How do we build a solid SharePoint development environment for the enterprise

How do a number of developers work together on a SharePoint project

How does code and content move through a dev test and production lifecycle

What is Agile and Continuous Integration and why is it important

Visual Studio and Team Foundation Server

Visual Studio 2010 is the development platform for coding on SharePoint 2010

Team Foundation Server integrates with Visual Studio to provide a repository for code test and other project artifacts

It facilitates teamwork by providing a common place for developers to work together

Provisioning SharePoint Farms

Provisioning SharePoint Farms

Every developer needs their own complete SharePoint farm

Teams need a dev integration farm to bring their work together on

A full architecture needs QA and production farms as well

Envision IT Virtualization Architecture

Developer VM Template

SharePoint Server 2010 Enterprise

SP1 and August CU

Visual Studio 2010 Premium SP1

Office 2010 Professional Plus SP1

SharePoint Designer 2010 SP1

Fiddler

SQL Server 2008 R2 SP1

Creating a new Developer VM

Open System Centre Virtual Machine Manager

Create Virtual Machine

Choose the Developer VM template

Set the virtual machine name and options

Create and start the VM

Creating a new Developer VM - Step 2

Developer RDPs to their new VM Complete the SQL Server installation

Create the default instance Set the service account(s) Set the authentication mode and server administrators

Update the AutoSPInstallerInputxml file Set the machine name for the default sites and database server Set the service account passwords

Run the AutoSPInstallerLaunch batch file Do a Health check review

Creating a new Developer VM - Step 3

Start Visual Studio

Connect to the Team Foundation Server

Setup your workspaces

Use a standard naming convention across your team

CDevelopmentTFSCollection

Other Environments

Dev Integration QA and Production can all be built using AutoSPInstall

Donrsquot need or want the Visual Studio or Office tools on these servers

We have a base template we use for dev integration servers

QA should match the Prod architecture as closely as possible

High availability with load balancing clustered SQL app servers DMZ hardening Internet publishing

Agile Development

Agile with Team Foundation Server

Creating Your TFS Project

Open Visual Studio

Make sure you are connected to the right Team Project Collection

In Team Explorer right-click the top collection and create a new Team Project

Use the Scrum 10 template

Go into the Areas and Iterations Delete the extraneous releases and sprints

Create a product backlog iteration

Start adding your stories and tasks

Continuous Integration

Continuous Integration

Automated Testing

SharePoint Site Elements

Site structure Site columns content types subsites lists libraries

Branding elements Master pages layouts CSS XSLT supporting images

Custom web parts Page and site content Web part instances Search Workflows Business Connectivity Services Managed Metadata

SharePoint Site Elements ndash Part 2

Access Excel Word Visio

PerformancePoint

Document conversions

Timer jobs

Secure Store Service

User profiles

Site Structure

bull Site columns

bull Define the fields that are used by content types

bull Content types

bull Defines collections of site columns for different types of content

bull Subsites

bull The hierarchy of sites that make up the site collection

bull Lists and Libraries

bull The lists and libraries for each subsite

Site Structure ndash Part 2

Site columns and content types can be programmatically or manually created If they are going to be used in multiple site collections they should be

programmatically created

If a single site collection they can be created manually in a master site collection

GUIDs cannot be manually set and code may need them to be consistent

You can create them manually in SharePoint save the site as a template and import them into Visual Studio to create a proper WSP package

Site Structure ndash Part 3

Site structure can also be done either programmatically or manually

Many sites are complex and it is error prone to create manually

We use our own SiteModelBuilder tool to create the site structure

Site Structure ndash Part 4

For all site structure elements changes can also be manual or programmatic It is useful to be able to delete the whole site collection and recreate it

programmatically As soon as content starts being authored in SharePoint it becomes difficult

or impossible to do that

After content authoring has started Site column and content type changes need to be programmed explicitly

(you canrsquot just drop the content type and recreate it) Site structure changes are usually done manually at this point Changes need to be backed up and restored

Change Management

Page and Site Content

Page and site content is entered directly into SharePoint by the content authors Web pages images PDFs list content etc This should be done in the master site separate from where dev integration is

happening Care needs to be taken with this site once authors start working Make sure it is part of your production backup plan

Periodically back it up and restore it to the dev integration and developer VMs

Alternatively script the export and import Ultimately it will be backed up and restored to the QA and production

farms

Change Management

Change Management

Change Management

Change Management

Web part instances

Web parts ultimately get placed on pages

The configuration of the web parts can often get quite complex

You may want to disable editing of web parts for general content authors

They end up in a grey zone between code and content

Web part instances ndash Part 2

We created our own internal tool to export and import web parts

Each web partrsquos configuration can be exported into a webpartfile

We scripted the extraction from the dev integration

webpart files are treated like code and checked into TFS for version control

Script then applies the new webpart files to the target environment

Workflows

Workflows can be built using SharePoint Designer Visual Studio or third-party tools (Nintex or K2 primarily)

Visual Studio workflow projects are automatically packaged as WSP solution files Simply deploy the WSP file to the other environments

SharePoint Designer workflows need to be deployed using SharePoint Designer This means you need SPD access to production which is not always possible

You can load the SPD workflow into Visual Studio to package it but you lose the ability to edit it in SPD

If you use third-party tools yoursquoll need to define the process for that as well

Business Connectivity Services

BCS can be built using either SharePoint Designer or Visual Studio Visual Studio BCS projects are automatically packaged as WSP

solution files Simply deploy the WSP file to the other environments You can also export the BDC metadata model in the BDC service

application

SharePoint Designer doesnrsquot create a WSP and it doesnrsquot make a complete BDC metadata model You need to export and import using SharePoint Designer

In both cases you still need to deal with connection and configuration information

Future Directions

Visual Studio Lab Management

Integrates the management of HyperV environments in with Visual Studio and Team Foundation Server

Can automate the provisioning of lab environments for automated testing

Test failures can snapshot entire environments to make reproduction of errors much easier

Summary

Yoursquore going to have lots of SharePoint environments ndash figure out how to build them quickly and repeatable

Code and content often move in opposite directions through dev QA and Prod PowerShell script and automate to keep this simple

Agile is a great way to run projects

Continuous integration with automated testing is key to its success

There are lots of parts of SharePoint that you donrsquot code through Visual Studio Figure out how you move those through your environment

Other Topics

Site Design

Information architecture

Wireframes

Creative designs ndash Mobile first

Catalogs deep dive

Site build PowerShell scripts

Team Foundation Server and Application Lifecycle Management

Starting a new project

Managing content authoring

Site Improve tool

SEO Optimizations

Analytics options

Retaining Page Ranks with permanent redirects (301)

Azure SharePoint Hosting

Q amp A

Session Evaluations

Go to Evaluations on the home page of wwwcollabconorg

It is important to get your feedback

Please fill out evaluations for all the sessions you attend

Following the conference a random drawing from all completed evaluations will be selected

The winner will receive a $250 Future Shop gift card valid online or in store

Page 60: Web Content Management - CollabCon 2015 - Web... · Performances Complete Works ... Friendly URL An SEO friendly URL defined in the term store for a page, rather than ... What’s

Cross Site Publishing

Job Posting

Job Posting

Job Posting

Job Posting

Simcoe County District School Board

50000 students

Over 6000 employees

Board office in Barrie

Bordered by the Holland Marsh in the south the Trent-Severn Waterway in the east Grey County in the west and Muskoka in the north

Simcoe County District School Board

119 schools and centres 87 elementary 16 secondary 6 learning centres 10 alternative

Each needs their own web site Being built on SharePoint 2013 Elementary panel first Each has their own unique URL Content authored both at the school and centrally from the board

wwwscdsbonca Pre-existing SharePoint 2010 site Future goal is to rebuild in SharePoint 2013

Business Challenge

100+ public web sites

No standardization on style technology or content

No ability for the board to push content to the school sites

Outdated sites

Not mobile or AODA compliant

Site Features

Fully Adaptivemobile design Robust Search functionality Template makes it fast and efficient to add new school sites News and events can be targeted by the Board to any number of

school sites Target by panel weather zone trustee language Presented in a blended view with the school news and events

Home page rotator links hours content pages all managed by the school staff

SEO-friendly URLs

News

School news entered by school staff

Board news entered in the board site

Rendered using cross-site publishing

High-priority alerts can be flagged to highlight on the site

Bus or school cancellations

Events

Single and multi-day events

School and board managed like news

Adaptive calendar

School Picker

Used to pick which schools to target news and events to

Schools are tagged through the term store

Target by panel weather zone trustee language

Can override and add or remove individual schools

Search

Catalogs

Three main steps

Enabling lists or libraries as catalogs

Creating the catalog connection

Building the page layouts to display the category rollups or item detail pages

Enabling Catalogs

Doesnrsquot have to be a list can be a document Images or Pages library

Experimenting using a Pages library

This gives us draft and published states that lists donrsquot support

Preview and editing is easier

Fairly simple script to do this

Catalog connections are more complex

Create the connection

Fix up the Term Store

Create the Category and Item page layouts and pages

SEO Enhancements

Friendly URLs

Home page redirects

XML sitemaps automatically generated and updated

Custom SEO properties

Usage Analytics

Built for scale from the ground up Detail data rolled up every 15 days amp anonymized Daily events purged every 15 days monthly events after 3 years Lifetime counts always retained

Counts views amp unique itemsday Shows recent (2-weeks) and lifetime count Trims least visited content Pushes aggregate data to reporting database

Drives recommendations capabilities on content Calculations injected into search index as sortable managed properties Deep integration with search engine Can influence search relevance based on content usage

Variations and Multi-Lingual

Export and import content for translation in XLIFF format

Pages

Labels

List items

Navigation

Bing translation service comes with active SharePoint 2013 license

Adaptive Web Design

Adaptive vs Responsive

Adaptive

Fixed breakpoints‒ Desktop gt 980 px

‒ Table portrait gt 768 px

‒ Phone to tablet gt 480 px lt 768 px

‒ Smartphone lt 480 px

Responsive

No fixed breakpoints

Design fluidly adapts to whatever width the browser is

We generally do a hybrid approach with responsive design in the under 768 pixel situation

Design Approaches in SharePoint

Adaptive Design through CSS media queries

Broader standards approach used outside of SharePoint

Keeps a single master page and CSS

Some unnecessary components may still be loaded

Device Channels SharePoint specific approach

Assign different master pages to different device channels

Rules define what devices use which channels

Device Channel Panels can also target content to channels

Hybrid here can also make sense Device channels can be used to remove unnecessary items from the page payload

Our Adaptive Approach

Built using the Twitter Boostrap CSS framework

twittergithubcombootstrap

Provides a responsive design framework for supporting PC Mac tablet and mobile

We enhanced to provide better touch navigation support

Can be leveraged in the master page page layouts and display templates

Incorporated into the SharePoint 2013 Design Master

HTML based master page that can be edited with any tool

SharePoint converts to a master page when uploaded or saved

Additional Open Source Tools and Resources

HTML CSS JavaScript jQuery

httpwwww3schoolscom

httpgetbootstrapcom

httphandlebarsjscom

httpknockoutjscom

httpsangularjsorg

httpmomentjscom

Content Search Web Part

Web part is configured to return search results

Executed as client-side code in the browser

Pair of display templates map the data returned to HTML

Control template for the overall structure

Item template for each item returned

HTML Designer Manager files are compiled to JavaScript

REST Search and Handlebars

Search is accessible through REST calls

httpsiteurl_apisearchquery

Returns results as a JSON array

Handlebars is a templating engine to format that

Conceptually similar to display templates with control and item sections

jQuery glues this all together

Steps to Experiment

F12 to get into Developer Toolbar

Set a breakpoint where the REST URL is determined

Copy the value

Paste into the REST Search test window

Experiment with the query

Adjust the Handlebars template appropriately

Search Setup

Content Sources to define and schedule the crawls

Crawl logs to review success

Search Schema to define the managed properties

Reusable Content

Snippets of HTML that can be reused throughout the site

JavaScript can be intelligent and use the URL to determine its behaviour

Makes it easy for content authors to drop pre-configured dynamic content onto pages

Topic Pages

Shows all items that match a topic

Could be hundreds of virtual pages

Only one template page

Easily customizable and SEO friendly (each topic appears to be its own page)

Content by search web part open search against a query or result source

May be able to surface the topic pages themselves as site search results

Public Health Ontario

httpwwwpublichealthontariocaenBrowseByTopicPagesTopicaspxk=Influenza20InformationByTopic22Influenza22

Ontario Association of Childrens Aid Societies

Application Lifecycle Management

Purpose

How do we build a solid SharePoint development environment for the enterprise

How do a number of developers work together on a SharePoint project

How does code and content move through a dev test and production lifecycle

What is Agile and Continuous Integration and why is it important

Visual Studio and Team Foundation Server

Visual Studio 2010 is the development platform for coding on SharePoint 2010

Team Foundation Server integrates with Visual Studio to provide a repository for code test and other project artifacts

It facilitates teamwork by providing a common place for developers to work together

Provisioning SharePoint Farms

Provisioning SharePoint Farms

Every developer needs their own complete SharePoint farm

Teams need a dev integration farm to bring their work together on

A full architecture needs QA and production farms as well

Envision IT Virtualization Architecture

Developer VM Template

SharePoint Server 2010 Enterprise

SP1 and August CU

Visual Studio 2010 Premium SP1

Office 2010 Professional Plus SP1

SharePoint Designer 2010 SP1

Fiddler

SQL Server 2008 R2 SP1

Creating a new Developer VM

Open System Centre Virtual Machine Manager

Create Virtual Machine

Choose the Developer VM template

Set the virtual machine name and options

Create and start the VM

Creating a new Developer VM - Step 2

Developer RDPs to their new VM Complete the SQL Server installation

Create the default instance Set the service account(s) Set the authentication mode and server administrators

Update the AutoSPInstallerInputxml file Set the machine name for the default sites and database server Set the service account passwords

Run the AutoSPInstallerLaunch batch file Do a Health check review

Creating a new Developer VM - Step 3

Start Visual Studio

Connect to the Team Foundation Server

Setup your workspaces

Use a standard naming convention across your team

CDevelopmentTFSCollection

Other Environments

Dev Integration QA and Production can all be built using AutoSPInstall

Donrsquot need or want the Visual Studio or Office tools on these servers

We have a base template we use for dev integration servers

QA should match the Prod architecture as closely as possible

High availability with load balancing clustered SQL app servers DMZ hardening Internet publishing

Agile Development

Agile with Team Foundation Server

Creating Your TFS Project

Open Visual Studio

Make sure you are connected to the right Team Project Collection

In Team Explorer right-click the top collection and create a new Team Project

Use the Scrum 10 template

Go into the Areas and Iterations Delete the extraneous releases and sprints

Create a product backlog iteration

Start adding your stories and tasks

Continuous Integration

Continuous Integration

Automated Testing

SharePoint Site Elements

Site structure Site columns content types subsites lists libraries

Branding elements Master pages layouts CSS XSLT supporting images

Custom web parts Page and site content Web part instances Search Workflows Business Connectivity Services Managed Metadata

SharePoint Site Elements ndash Part 2

Access Excel Word Visio

PerformancePoint

Document conversions

Timer jobs

Secure Store Service

User profiles

Site Structure

bull Site columns

bull Define the fields that are used by content types

bull Content types

bull Defines collections of site columns for different types of content

bull Subsites

bull The hierarchy of sites that make up the site collection

bull Lists and Libraries

bull The lists and libraries for each subsite

Site Structure ndash Part 2

Site columns and content types can be programmatically or manually created If they are going to be used in multiple site collections they should be

programmatically created

If a single site collection they can be created manually in a master site collection

GUIDs cannot be manually set and code may need them to be consistent

You can create them manually in SharePoint save the site as a template and import them into Visual Studio to create a proper WSP package

Site Structure ndash Part 3

Site structure can also be done either programmatically or manually

Many sites are complex and it is error prone to create manually

We use our own SiteModelBuilder tool to create the site structure

Site Structure ndash Part 4

For all site structure elements changes can also be manual or programmatic It is useful to be able to delete the whole site collection and recreate it

programmatically As soon as content starts being authored in SharePoint it becomes difficult

or impossible to do that

After content authoring has started Site column and content type changes need to be programmed explicitly

(you canrsquot just drop the content type and recreate it) Site structure changes are usually done manually at this point Changes need to be backed up and restored

Change Management

Page and Site Content

Page and site content is entered directly into SharePoint by the content authors Web pages images PDFs list content etc This should be done in the master site separate from where dev integration is

happening Care needs to be taken with this site once authors start working Make sure it is part of your production backup plan

Periodically back it up and restore it to the dev integration and developer VMs

Alternatively script the export and import Ultimately it will be backed up and restored to the QA and production

farms

Change Management

Change Management

Change Management

Change Management

Web part instances

Web parts ultimately get placed on pages

The configuration of the web parts can often get quite complex

You may want to disable editing of web parts for general content authors

They end up in a grey zone between code and content

Web part instances ndash Part 2

We created our own internal tool to export and import web parts

Each web partrsquos configuration can be exported into a webpartfile

We scripted the extraction from the dev integration

webpart files are treated like code and checked into TFS for version control

Script then applies the new webpart files to the target environment

Workflows

Workflows can be built using SharePoint Designer Visual Studio or third-party tools (Nintex or K2 primarily)

Visual Studio workflow projects are automatically packaged as WSP solution files Simply deploy the WSP file to the other environments

SharePoint Designer workflows need to be deployed using SharePoint Designer This means you need SPD access to production which is not always possible

You can load the SPD workflow into Visual Studio to package it but you lose the ability to edit it in SPD

If you use third-party tools yoursquoll need to define the process for that as well

Business Connectivity Services

BCS can be built using either SharePoint Designer or Visual Studio Visual Studio BCS projects are automatically packaged as WSP

solution files Simply deploy the WSP file to the other environments You can also export the BDC metadata model in the BDC service

application

SharePoint Designer doesnrsquot create a WSP and it doesnrsquot make a complete BDC metadata model You need to export and import using SharePoint Designer

In both cases you still need to deal with connection and configuration information

Future Directions

Visual Studio Lab Management

Integrates the management of HyperV environments in with Visual Studio and Team Foundation Server

Can automate the provisioning of lab environments for automated testing

Test failures can snapshot entire environments to make reproduction of errors much easier

Summary

Yoursquore going to have lots of SharePoint environments ndash figure out how to build them quickly and repeatable

Code and content often move in opposite directions through dev QA and Prod PowerShell script and automate to keep this simple

Agile is a great way to run projects

Continuous integration with automated testing is key to its success

There are lots of parts of SharePoint that you donrsquot code through Visual Studio Figure out how you move those through your environment

Other Topics

Site Design

Information architecture

Wireframes

Creative designs ndash Mobile first

Catalogs deep dive

Site build PowerShell scripts

Team Foundation Server and Application Lifecycle Management

Starting a new project

Managing content authoring

Site Improve tool

SEO Optimizations

Analytics options

Retaining Page Ranks with permanent redirects (301)

Azure SharePoint Hosting

Q amp A

Session Evaluations

Go to Evaluations on the home page of wwwcollabconorg

It is important to get your feedback

Please fill out evaluations for all the sessions you attend

Following the conference a random drawing from all completed evaluations will be selected

The winner will receive a $250 Future Shop gift card valid online or in store

Page 61: Web Content Management - CollabCon 2015 - Web... · Performances Complete Works ... Friendly URL An SEO friendly URL defined in the term store for a page, rather than ... What’s

Simcoe County District School Board

50000 students

Over 6000 employees

Board office in Barrie

Bordered by the Holland Marsh in the south the Trent-Severn Waterway in the east Grey County in the west and Muskoka in the north

Simcoe County District School Board

119 schools and centres 87 elementary 16 secondary 6 learning centres 10 alternative

Each needs their own web site Being built on SharePoint 2013 Elementary panel first Each has their own unique URL Content authored both at the school and centrally from the board

wwwscdsbonca Pre-existing SharePoint 2010 site Future goal is to rebuild in SharePoint 2013

Business Challenge

100+ public web sites

No standardization on style technology or content

No ability for the board to push content to the school sites

Outdated sites

Not mobile or AODA compliant

Site Features

Fully Adaptivemobile design Robust Search functionality Template makes it fast and efficient to add new school sites News and events can be targeted by the Board to any number of

school sites Target by panel weather zone trustee language Presented in a blended view with the school news and events

Home page rotator links hours content pages all managed by the school staff

SEO-friendly URLs

News

School news entered by school staff

Board news entered in the board site

Rendered using cross-site publishing

High-priority alerts can be flagged to highlight on the site

Bus or school cancellations

Events

Single and multi-day events

School and board managed like news

Adaptive calendar

School Picker

Used to pick which schools to target news and events to

Schools are tagged through the term store

Target by panel weather zone trustee language

Can override and add or remove individual schools

Search

Catalogs

Three main steps

Enabling lists or libraries as catalogs

Creating the catalog connection

Building the page layouts to display the category rollups or item detail pages

Enabling Catalogs

Doesnrsquot have to be a list can be a document Images or Pages library

Experimenting using a Pages library

This gives us draft and published states that lists donrsquot support

Preview and editing is easier

Fairly simple script to do this

Catalog connections are more complex

Create the connection

Fix up the Term Store

Create the Category and Item page layouts and pages

SEO Enhancements

Friendly URLs

Home page redirects

XML sitemaps automatically generated and updated

Custom SEO properties

Usage Analytics

Built for scale from the ground up Detail data rolled up every 15 days amp anonymized Daily events purged every 15 days monthly events after 3 years Lifetime counts always retained

Counts views amp unique itemsday Shows recent (2-weeks) and lifetime count Trims least visited content Pushes aggregate data to reporting database

Drives recommendations capabilities on content Calculations injected into search index as sortable managed properties Deep integration with search engine Can influence search relevance based on content usage

Variations and Multi-Lingual

Export and import content for translation in XLIFF format

Pages

Labels

List items

Navigation

Bing translation service comes with active SharePoint 2013 license

Adaptive Web Design

Adaptive vs Responsive

Adaptive

Fixed breakpoints‒ Desktop gt 980 px

‒ Table portrait gt 768 px

‒ Phone to tablet gt 480 px lt 768 px

‒ Smartphone lt 480 px

Responsive

No fixed breakpoints

Design fluidly adapts to whatever width the browser is

We generally do a hybrid approach with responsive design in the under 768 pixel situation

Design Approaches in SharePoint

Adaptive Design through CSS media queries

Broader standards approach used outside of SharePoint

Keeps a single master page and CSS

Some unnecessary components may still be loaded

Device Channels SharePoint specific approach

Assign different master pages to different device channels

Rules define what devices use which channels

Device Channel Panels can also target content to channels

Hybrid here can also make sense Device channels can be used to remove unnecessary items from the page payload

Our Adaptive Approach

Built using the Twitter Boostrap CSS framework

twittergithubcombootstrap

Provides a responsive design framework for supporting PC Mac tablet and mobile

We enhanced to provide better touch navigation support

Can be leveraged in the master page page layouts and display templates

Incorporated into the SharePoint 2013 Design Master

HTML based master page that can be edited with any tool

SharePoint converts to a master page when uploaded or saved

Additional Open Source Tools and Resources

HTML CSS JavaScript jQuery

httpwwww3schoolscom

httpgetbootstrapcom

httphandlebarsjscom

httpknockoutjscom

httpsangularjsorg

httpmomentjscom

Content Search Web Part

Web part is configured to return search results

Executed as client-side code in the browser

Pair of display templates map the data returned to HTML

Control template for the overall structure

Item template for each item returned

HTML Designer Manager files are compiled to JavaScript

REST Search and Handlebars

Search is accessible through REST calls

httpsiteurl_apisearchquery

Returns results as a JSON array

Handlebars is a templating engine to format that

Conceptually similar to display templates with control and item sections

jQuery glues this all together

Steps to Experiment

F12 to get into Developer Toolbar

Set a breakpoint where the REST URL is determined

Copy the value

Paste into the REST Search test window

Experiment with the query

Adjust the Handlebars template appropriately

Search Setup

Content Sources to define and schedule the crawls

Crawl logs to review success

Search Schema to define the managed properties

Reusable Content

Snippets of HTML that can be reused throughout the site

JavaScript can be intelligent and use the URL to determine its behaviour

Makes it easy for content authors to drop pre-configured dynamic content onto pages

Topic Pages

Shows all items that match a topic

Could be hundreds of virtual pages

Only one template page

Easily customizable and SEO friendly (each topic appears to be its own page)

Content by search web part open search against a query or result source

May be able to surface the topic pages themselves as site search results

Public Health Ontario

httpwwwpublichealthontariocaenBrowseByTopicPagesTopicaspxk=Influenza20InformationByTopic22Influenza22

Ontario Association of Childrens Aid Societies

Application Lifecycle Management

Purpose

How do we build a solid SharePoint development environment for the enterprise

How do a number of developers work together on a SharePoint project

How does code and content move through a dev test and production lifecycle

What is Agile and Continuous Integration and why is it important

Visual Studio and Team Foundation Server

Visual Studio 2010 is the development platform for coding on SharePoint 2010

Team Foundation Server integrates with Visual Studio to provide a repository for code test and other project artifacts

It facilitates teamwork by providing a common place for developers to work together

Provisioning SharePoint Farms

Provisioning SharePoint Farms

Every developer needs their own complete SharePoint farm

Teams need a dev integration farm to bring their work together on

A full architecture needs QA and production farms as well

Envision IT Virtualization Architecture

Developer VM Template

SharePoint Server 2010 Enterprise

SP1 and August CU

Visual Studio 2010 Premium SP1

Office 2010 Professional Plus SP1

SharePoint Designer 2010 SP1

Fiddler

SQL Server 2008 R2 SP1

Creating a new Developer VM

Open System Centre Virtual Machine Manager

Create Virtual Machine

Choose the Developer VM template

Set the virtual machine name and options

Create and start the VM

Creating a new Developer VM - Step 2

Developer RDPs to their new VM Complete the SQL Server installation

Create the default instance Set the service account(s) Set the authentication mode and server administrators

Update the AutoSPInstallerInputxml file Set the machine name for the default sites and database server Set the service account passwords

Run the AutoSPInstallerLaunch batch file Do a Health check review

Creating a new Developer VM - Step 3

Start Visual Studio

Connect to the Team Foundation Server

Setup your workspaces

Use a standard naming convention across your team

CDevelopmentTFSCollection

Other Environments

Dev Integration QA and Production can all be built using AutoSPInstall

Donrsquot need or want the Visual Studio or Office tools on these servers

We have a base template we use for dev integration servers

QA should match the Prod architecture as closely as possible

High availability with load balancing clustered SQL app servers DMZ hardening Internet publishing

Agile Development

Agile with Team Foundation Server

Creating Your TFS Project

Open Visual Studio

Make sure you are connected to the right Team Project Collection

In Team Explorer right-click the top collection and create a new Team Project

Use the Scrum 10 template

Go into the Areas and Iterations Delete the extraneous releases and sprints

Create a product backlog iteration

Start adding your stories and tasks

Continuous Integration

Continuous Integration

Automated Testing

SharePoint Site Elements

Site structure Site columns content types subsites lists libraries

Branding elements Master pages layouts CSS XSLT supporting images

Custom web parts Page and site content Web part instances Search Workflows Business Connectivity Services Managed Metadata

SharePoint Site Elements ndash Part 2

Access Excel Word Visio

PerformancePoint

Document conversions

Timer jobs

Secure Store Service

User profiles

Site Structure

bull Site columns

bull Define the fields that are used by content types

bull Content types

bull Defines collections of site columns for different types of content

bull Subsites

bull The hierarchy of sites that make up the site collection

bull Lists and Libraries

bull The lists and libraries for each subsite

Site Structure ndash Part 2

Site columns and content types can be programmatically or manually created If they are going to be used in multiple site collections they should be

programmatically created

If a single site collection they can be created manually in a master site collection

GUIDs cannot be manually set and code may need them to be consistent

You can create them manually in SharePoint save the site as a template and import them into Visual Studio to create a proper WSP package

Site Structure ndash Part 3

Site structure can also be done either programmatically or manually

Many sites are complex and it is error prone to create manually

We use our own SiteModelBuilder tool to create the site structure

Site Structure ndash Part 4

For all site structure elements changes can also be manual or programmatic It is useful to be able to delete the whole site collection and recreate it

programmatically As soon as content starts being authored in SharePoint it becomes difficult

or impossible to do that

After content authoring has started Site column and content type changes need to be programmed explicitly

(you canrsquot just drop the content type and recreate it) Site structure changes are usually done manually at this point Changes need to be backed up and restored

Change Management

Page and Site Content

Page and site content is entered directly into SharePoint by the content authors Web pages images PDFs list content etc This should be done in the master site separate from where dev integration is

happening Care needs to be taken with this site once authors start working Make sure it is part of your production backup plan

Periodically back it up and restore it to the dev integration and developer VMs

Alternatively script the export and import Ultimately it will be backed up and restored to the QA and production

farms

Change Management

Change Management

Change Management

Change Management

Web part instances

Web parts ultimately get placed on pages

The configuration of the web parts can often get quite complex

You may want to disable editing of web parts for general content authors

They end up in a grey zone between code and content

Web part instances ndash Part 2

We created our own internal tool to export and import web parts

Each web partrsquos configuration can be exported into a webpartfile

We scripted the extraction from the dev integration

webpart files are treated like code and checked into TFS for version control

Script then applies the new webpart files to the target environment

Workflows

Workflows can be built using SharePoint Designer Visual Studio or third-party tools (Nintex or K2 primarily)

Visual Studio workflow projects are automatically packaged as WSP solution files Simply deploy the WSP file to the other environments

SharePoint Designer workflows need to be deployed using SharePoint Designer This means you need SPD access to production which is not always possible

You can load the SPD workflow into Visual Studio to package it but you lose the ability to edit it in SPD

If you use third-party tools yoursquoll need to define the process for that as well

Business Connectivity Services

BCS can be built using either SharePoint Designer or Visual Studio Visual Studio BCS projects are automatically packaged as WSP

solution files Simply deploy the WSP file to the other environments You can also export the BDC metadata model in the BDC service

application

SharePoint Designer doesnrsquot create a WSP and it doesnrsquot make a complete BDC metadata model You need to export and import using SharePoint Designer

In both cases you still need to deal with connection and configuration information

Future Directions

Visual Studio Lab Management

Integrates the management of HyperV environments in with Visual Studio and Team Foundation Server

Can automate the provisioning of lab environments for automated testing

Test failures can snapshot entire environments to make reproduction of errors much easier

Summary

Yoursquore going to have lots of SharePoint environments ndash figure out how to build them quickly and repeatable

Code and content often move in opposite directions through dev QA and Prod PowerShell script and automate to keep this simple

Agile is a great way to run projects

Continuous integration with automated testing is key to its success

There are lots of parts of SharePoint that you donrsquot code through Visual Studio Figure out how you move those through your environment

Other Topics

Site Design

Information architecture

Wireframes

Creative designs ndash Mobile first

Catalogs deep dive

Site build PowerShell scripts

Team Foundation Server and Application Lifecycle Management

Starting a new project

Managing content authoring

Site Improve tool

SEO Optimizations

Analytics options

Retaining Page Ranks with permanent redirects (301)

Azure SharePoint Hosting

Q amp A

Session Evaluations

Go to Evaluations on the home page of wwwcollabconorg

It is important to get your feedback

Please fill out evaluations for all the sessions you attend

Following the conference a random drawing from all completed evaluations will be selected

The winner will receive a $250 Future Shop gift card valid online or in store

Page 62: Web Content Management - CollabCon 2015 - Web... · Performances Complete Works ... Friendly URL An SEO friendly URL defined in the term store for a page, rather than ... What’s

Simcoe County District School Board

119 schools and centres 87 elementary 16 secondary 6 learning centres 10 alternative

Each needs their own web site Being built on SharePoint 2013 Elementary panel first Each has their own unique URL Content authored both at the school and centrally from the board

wwwscdsbonca Pre-existing SharePoint 2010 site Future goal is to rebuild in SharePoint 2013

Business Challenge

100+ public web sites

No standardization on style technology or content

No ability for the board to push content to the school sites

Outdated sites

Not mobile or AODA compliant

Site Features

Fully Adaptivemobile design Robust Search functionality Template makes it fast and efficient to add new school sites News and events can be targeted by the Board to any number of

school sites Target by panel weather zone trustee language Presented in a blended view with the school news and events

Home page rotator links hours content pages all managed by the school staff

SEO-friendly URLs

News

School news entered by school staff

Board news entered in the board site

Rendered using cross-site publishing

High-priority alerts can be flagged to highlight on the site

Bus or school cancellations

Events

Single and multi-day events

School and board managed like news

Adaptive calendar

School Picker

Used to pick which schools to target news and events to

Schools are tagged through the term store

Target by panel weather zone trustee language

Can override and add or remove individual schools

Search

Catalogs

Three main steps

Enabling lists or libraries as catalogs

Creating the catalog connection

Building the page layouts to display the category rollups or item detail pages

Enabling Catalogs

Doesnrsquot have to be a list can be a document Images or Pages library

Experimenting using a Pages library

This gives us draft and published states that lists donrsquot support

Preview and editing is easier

Fairly simple script to do this

Catalog connections are more complex

Create the connection

Fix up the Term Store

Create the Category and Item page layouts and pages

SEO Enhancements

Friendly URLs

Home page redirects

XML sitemaps automatically generated and updated

Custom SEO properties

Usage Analytics

Built for scale from the ground up Detail data rolled up every 15 days amp anonymized Daily events purged every 15 days monthly events after 3 years Lifetime counts always retained

Counts views amp unique itemsday Shows recent (2-weeks) and lifetime count Trims least visited content Pushes aggregate data to reporting database

Drives recommendations capabilities on content Calculations injected into search index as sortable managed properties Deep integration with search engine Can influence search relevance based on content usage

Variations and Multi-Lingual

Export and import content for translation in XLIFF format

Pages

Labels

List items

Navigation

Bing translation service comes with active SharePoint 2013 license

Adaptive Web Design

Adaptive vs Responsive

Adaptive

Fixed breakpoints‒ Desktop gt 980 px

‒ Table portrait gt 768 px

‒ Phone to tablet gt 480 px lt 768 px

‒ Smartphone lt 480 px

Responsive

No fixed breakpoints

Design fluidly adapts to whatever width the browser is

We generally do a hybrid approach with responsive design in the under 768 pixel situation

Design Approaches in SharePoint

Adaptive Design through CSS media queries

Broader standards approach used outside of SharePoint

Keeps a single master page and CSS

Some unnecessary components may still be loaded

Device Channels SharePoint specific approach

Assign different master pages to different device channels

Rules define what devices use which channels

Device Channel Panels can also target content to channels

Hybrid here can also make sense Device channels can be used to remove unnecessary items from the page payload

Our Adaptive Approach

Built using the Twitter Boostrap CSS framework

twittergithubcombootstrap

Provides a responsive design framework for supporting PC Mac tablet and mobile

We enhanced to provide better touch navigation support

Can be leveraged in the master page page layouts and display templates

Incorporated into the SharePoint 2013 Design Master

HTML based master page that can be edited with any tool

SharePoint converts to a master page when uploaded or saved

Additional Open Source Tools and Resources

HTML CSS JavaScript jQuery

httpwwww3schoolscom

httpgetbootstrapcom

httphandlebarsjscom

httpknockoutjscom

httpsangularjsorg

httpmomentjscom

Content Search Web Part

Web part is configured to return search results

Executed as client-side code in the browser

Pair of display templates map the data returned to HTML

Control template for the overall structure

Item template for each item returned

HTML Designer Manager files are compiled to JavaScript

REST Search and Handlebars

Search is accessible through REST calls

httpsiteurl_apisearchquery

Returns results as a JSON array

Handlebars is a templating engine to format that

Conceptually similar to display templates with control and item sections

jQuery glues this all together

Steps to Experiment

F12 to get into Developer Toolbar

Set a breakpoint where the REST URL is determined

Copy the value

Paste into the REST Search test window

Experiment with the query

Adjust the Handlebars template appropriately

Search Setup

Content Sources to define and schedule the crawls

Crawl logs to review success

Search Schema to define the managed properties

Reusable Content

Snippets of HTML that can be reused throughout the site

JavaScript can be intelligent and use the URL to determine its behaviour

Makes it easy for content authors to drop pre-configured dynamic content onto pages

Topic Pages

Shows all items that match a topic

Could be hundreds of virtual pages

Only one template page

Easily customizable and SEO friendly (each topic appears to be its own page)

Content by search web part open search against a query or result source

May be able to surface the topic pages themselves as site search results

Public Health Ontario

httpwwwpublichealthontariocaenBrowseByTopicPagesTopicaspxk=Influenza20InformationByTopic22Influenza22

Ontario Association of Childrens Aid Societies

Application Lifecycle Management

Purpose

How do we build a solid SharePoint development environment for the enterprise

How do a number of developers work together on a SharePoint project

How does code and content move through a dev test and production lifecycle

What is Agile and Continuous Integration and why is it important

Visual Studio and Team Foundation Server

Visual Studio 2010 is the development platform for coding on SharePoint 2010

Team Foundation Server integrates with Visual Studio to provide a repository for code test and other project artifacts

It facilitates teamwork by providing a common place for developers to work together

Provisioning SharePoint Farms

Provisioning SharePoint Farms

Every developer needs their own complete SharePoint farm

Teams need a dev integration farm to bring their work together on

A full architecture needs QA and production farms as well

Envision IT Virtualization Architecture

Developer VM Template

SharePoint Server 2010 Enterprise

SP1 and August CU

Visual Studio 2010 Premium SP1

Office 2010 Professional Plus SP1

SharePoint Designer 2010 SP1

Fiddler

SQL Server 2008 R2 SP1

Creating a new Developer VM

Open System Centre Virtual Machine Manager

Create Virtual Machine

Choose the Developer VM template

Set the virtual machine name and options

Create and start the VM

Creating a new Developer VM - Step 2

Developer RDPs to their new VM Complete the SQL Server installation

Create the default instance Set the service account(s) Set the authentication mode and server administrators

Update the AutoSPInstallerInputxml file Set the machine name for the default sites and database server Set the service account passwords

Run the AutoSPInstallerLaunch batch file Do a Health check review

Creating a new Developer VM - Step 3

Start Visual Studio

Connect to the Team Foundation Server

Setup your workspaces

Use a standard naming convention across your team

CDevelopmentTFSCollection

Other Environments

Dev Integration QA and Production can all be built using AutoSPInstall

Donrsquot need or want the Visual Studio or Office tools on these servers

We have a base template we use for dev integration servers

QA should match the Prod architecture as closely as possible

High availability with load balancing clustered SQL app servers DMZ hardening Internet publishing

Agile Development

Agile with Team Foundation Server

Creating Your TFS Project

Open Visual Studio

Make sure you are connected to the right Team Project Collection

In Team Explorer right-click the top collection and create a new Team Project

Use the Scrum 10 template

Go into the Areas and Iterations Delete the extraneous releases and sprints

Create a product backlog iteration

Start adding your stories and tasks

Continuous Integration

Continuous Integration

Automated Testing

SharePoint Site Elements

Site structure Site columns content types subsites lists libraries

Branding elements Master pages layouts CSS XSLT supporting images

Custom web parts Page and site content Web part instances Search Workflows Business Connectivity Services Managed Metadata

SharePoint Site Elements ndash Part 2

Access Excel Word Visio

PerformancePoint

Document conversions

Timer jobs

Secure Store Service

User profiles

Site Structure

bull Site columns

bull Define the fields that are used by content types

bull Content types

bull Defines collections of site columns for different types of content

bull Subsites

bull The hierarchy of sites that make up the site collection

bull Lists and Libraries

bull The lists and libraries for each subsite

Site Structure ndash Part 2

Site columns and content types can be programmatically or manually created If they are going to be used in multiple site collections they should be

programmatically created

If a single site collection they can be created manually in a master site collection

GUIDs cannot be manually set and code may need them to be consistent

You can create them manually in SharePoint save the site as a template and import them into Visual Studio to create a proper WSP package

Site Structure ndash Part 3

Site structure can also be done either programmatically or manually

Many sites are complex and it is error prone to create manually

We use our own SiteModelBuilder tool to create the site structure

Site Structure ndash Part 4

For all site structure elements changes can also be manual or programmatic It is useful to be able to delete the whole site collection and recreate it

programmatically As soon as content starts being authored in SharePoint it becomes difficult

or impossible to do that

After content authoring has started Site column and content type changes need to be programmed explicitly

(you canrsquot just drop the content type and recreate it) Site structure changes are usually done manually at this point Changes need to be backed up and restored

Change Management

Page and Site Content

Page and site content is entered directly into SharePoint by the content authors Web pages images PDFs list content etc This should be done in the master site separate from where dev integration is

happening Care needs to be taken with this site once authors start working Make sure it is part of your production backup plan

Periodically back it up and restore it to the dev integration and developer VMs

Alternatively script the export and import Ultimately it will be backed up and restored to the QA and production

farms

Change Management

Change Management

Change Management

Change Management

Web part instances

Web parts ultimately get placed on pages

The configuration of the web parts can often get quite complex

You may want to disable editing of web parts for general content authors

They end up in a grey zone between code and content

Web part instances ndash Part 2

We created our own internal tool to export and import web parts

Each web partrsquos configuration can be exported into a webpartfile

We scripted the extraction from the dev integration

webpart files are treated like code and checked into TFS for version control

Script then applies the new webpart files to the target environment

Workflows

Workflows can be built using SharePoint Designer Visual Studio or third-party tools (Nintex or K2 primarily)

Visual Studio workflow projects are automatically packaged as WSP solution files Simply deploy the WSP file to the other environments

SharePoint Designer workflows need to be deployed using SharePoint Designer This means you need SPD access to production which is not always possible

You can load the SPD workflow into Visual Studio to package it but you lose the ability to edit it in SPD

If you use third-party tools yoursquoll need to define the process for that as well

Business Connectivity Services

BCS can be built using either SharePoint Designer or Visual Studio Visual Studio BCS projects are automatically packaged as WSP

solution files Simply deploy the WSP file to the other environments You can also export the BDC metadata model in the BDC service

application

SharePoint Designer doesnrsquot create a WSP and it doesnrsquot make a complete BDC metadata model You need to export and import using SharePoint Designer

In both cases you still need to deal with connection and configuration information

Future Directions

Visual Studio Lab Management

Integrates the management of HyperV environments in with Visual Studio and Team Foundation Server

Can automate the provisioning of lab environments for automated testing

Test failures can snapshot entire environments to make reproduction of errors much easier

Summary

Yoursquore going to have lots of SharePoint environments ndash figure out how to build them quickly and repeatable

Code and content often move in opposite directions through dev QA and Prod PowerShell script and automate to keep this simple

Agile is a great way to run projects

Continuous integration with automated testing is key to its success

There are lots of parts of SharePoint that you donrsquot code through Visual Studio Figure out how you move those through your environment

Other Topics

Site Design

Information architecture

Wireframes

Creative designs ndash Mobile first

Catalogs deep dive

Site build PowerShell scripts

Team Foundation Server and Application Lifecycle Management

Starting a new project

Managing content authoring

Site Improve tool

SEO Optimizations

Analytics options

Retaining Page Ranks with permanent redirects (301)

Azure SharePoint Hosting

Q amp A

Session Evaluations

Go to Evaluations on the home page of wwwcollabconorg

It is important to get your feedback

Please fill out evaluations for all the sessions you attend

Following the conference a random drawing from all completed evaluations will be selected

The winner will receive a $250 Future Shop gift card valid online or in store

Page 63: Web Content Management - CollabCon 2015 - Web... · Performances Complete Works ... Friendly URL An SEO friendly URL defined in the term store for a page, rather than ... What’s

Business Challenge

100+ public web sites

No standardization on style technology or content

No ability for the board to push content to the school sites

Outdated sites

Not mobile or AODA compliant

Site Features

Fully Adaptivemobile design Robust Search functionality Template makes it fast and efficient to add new school sites News and events can be targeted by the Board to any number of

school sites Target by panel weather zone trustee language Presented in a blended view with the school news and events

Home page rotator links hours content pages all managed by the school staff

SEO-friendly URLs

News

School news entered by school staff

Board news entered in the board site

Rendered using cross-site publishing

High-priority alerts can be flagged to highlight on the site

Bus or school cancellations

Events

Single and multi-day events

School and board managed like news

Adaptive calendar

School Picker

Used to pick which schools to target news and events to

Schools are tagged through the term store

Target by panel weather zone trustee language

Can override and add or remove individual schools

Search

Catalogs

Three main steps

Enabling lists or libraries as catalogs

Creating the catalog connection

Building the page layouts to display the category rollups or item detail pages

Enabling Catalogs

Doesnrsquot have to be a list can be a document Images or Pages library

Experimenting using a Pages library

This gives us draft and published states that lists donrsquot support

Preview and editing is easier

Fairly simple script to do this

Catalog connections are more complex

Create the connection

Fix up the Term Store

Create the Category and Item page layouts and pages

SEO Enhancements

Friendly URLs

Home page redirects

XML sitemaps automatically generated and updated

Custom SEO properties

Usage Analytics

Built for scale from the ground up Detail data rolled up every 15 days amp anonymized Daily events purged every 15 days monthly events after 3 years Lifetime counts always retained

Counts views amp unique itemsday Shows recent (2-weeks) and lifetime count Trims least visited content Pushes aggregate data to reporting database

Drives recommendations capabilities on content Calculations injected into search index as sortable managed properties Deep integration with search engine Can influence search relevance based on content usage

Variations and Multi-Lingual

Export and import content for translation in XLIFF format

Pages

Labels

List items

Navigation

Bing translation service comes with active SharePoint 2013 license

Adaptive Web Design

Adaptive vs Responsive

Adaptive

Fixed breakpoints‒ Desktop gt 980 px

‒ Table portrait gt 768 px

‒ Phone to tablet gt 480 px lt 768 px

‒ Smartphone lt 480 px

Responsive

No fixed breakpoints

Design fluidly adapts to whatever width the browser is

We generally do a hybrid approach with responsive design in the under 768 pixel situation

Design Approaches in SharePoint

Adaptive Design through CSS media queries

Broader standards approach used outside of SharePoint

Keeps a single master page and CSS

Some unnecessary components may still be loaded

Device Channels SharePoint specific approach

Assign different master pages to different device channels

Rules define what devices use which channels

Device Channel Panels can also target content to channels

Hybrid here can also make sense Device channels can be used to remove unnecessary items from the page payload

Our Adaptive Approach

Built using the Twitter Boostrap CSS framework

twittergithubcombootstrap

Provides a responsive design framework for supporting PC Mac tablet and mobile

We enhanced to provide better touch navigation support

Can be leveraged in the master page page layouts and display templates

Incorporated into the SharePoint 2013 Design Master

HTML based master page that can be edited with any tool

SharePoint converts to a master page when uploaded or saved

Additional Open Source Tools and Resources

HTML CSS JavaScript jQuery

httpwwww3schoolscom

httpgetbootstrapcom

httphandlebarsjscom

httpknockoutjscom

httpsangularjsorg

httpmomentjscom

Content Search Web Part

Web part is configured to return search results

Executed as client-side code in the browser

Pair of display templates map the data returned to HTML

Control template for the overall structure

Item template for each item returned

HTML Designer Manager files are compiled to JavaScript

REST Search and Handlebars

Search is accessible through REST calls

httpsiteurl_apisearchquery

Returns results as a JSON array

Handlebars is a templating engine to format that

Conceptually similar to display templates with control and item sections

jQuery glues this all together

Steps to Experiment

F12 to get into Developer Toolbar

Set a breakpoint where the REST URL is determined

Copy the value

Paste into the REST Search test window

Experiment with the query

Adjust the Handlebars template appropriately

Search Setup

Content Sources to define and schedule the crawls

Crawl logs to review success

Search Schema to define the managed properties

Reusable Content

Snippets of HTML that can be reused throughout the site

JavaScript can be intelligent and use the URL to determine its behaviour

Makes it easy for content authors to drop pre-configured dynamic content onto pages

Topic Pages

Shows all items that match a topic

Could be hundreds of virtual pages

Only one template page

Easily customizable and SEO friendly (each topic appears to be its own page)

Content by search web part open search against a query or result source

May be able to surface the topic pages themselves as site search results

Public Health Ontario

httpwwwpublichealthontariocaenBrowseByTopicPagesTopicaspxk=Influenza20InformationByTopic22Influenza22

Ontario Association of Childrens Aid Societies

Application Lifecycle Management

Purpose

How do we build a solid SharePoint development environment for the enterprise

How do a number of developers work together on a SharePoint project

How does code and content move through a dev test and production lifecycle

What is Agile and Continuous Integration and why is it important

Visual Studio and Team Foundation Server

Visual Studio 2010 is the development platform for coding on SharePoint 2010

Team Foundation Server integrates with Visual Studio to provide a repository for code test and other project artifacts

It facilitates teamwork by providing a common place for developers to work together

Provisioning SharePoint Farms

Provisioning SharePoint Farms

Every developer needs their own complete SharePoint farm

Teams need a dev integration farm to bring their work together on

A full architecture needs QA and production farms as well

Envision IT Virtualization Architecture

Developer VM Template

SharePoint Server 2010 Enterprise

SP1 and August CU

Visual Studio 2010 Premium SP1

Office 2010 Professional Plus SP1

SharePoint Designer 2010 SP1

Fiddler

SQL Server 2008 R2 SP1

Creating a new Developer VM

Open System Centre Virtual Machine Manager

Create Virtual Machine

Choose the Developer VM template

Set the virtual machine name and options

Create and start the VM

Creating a new Developer VM - Step 2

Developer RDPs to their new VM Complete the SQL Server installation

Create the default instance Set the service account(s) Set the authentication mode and server administrators

Update the AutoSPInstallerInputxml file Set the machine name for the default sites and database server Set the service account passwords

Run the AutoSPInstallerLaunch batch file Do a Health check review

Creating a new Developer VM - Step 3

Start Visual Studio

Connect to the Team Foundation Server

Setup your workspaces

Use a standard naming convention across your team

CDevelopmentTFSCollection

Other Environments

Dev Integration QA and Production can all be built using AutoSPInstall

Donrsquot need or want the Visual Studio or Office tools on these servers

We have a base template we use for dev integration servers

QA should match the Prod architecture as closely as possible

High availability with load balancing clustered SQL app servers DMZ hardening Internet publishing

Agile Development

Agile with Team Foundation Server

Creating Your TFS Project

Open Visual Studio

Make sure you are connected to the right Team Project Collection

In Team Explorer right-click the top collection and create a new Team Project

Use the Scrum 10 template

Go into the Areas and Iterations Delete the extraneous releases and sprints

Create a product backlog iteration

Start adding your stories and tasks

Continuous Integration

Continuous Integration

Automated Testing

SharePoint Site Elements

Site structure Site columns content types subsites lists libraries

Branding elements Master pages layouts CSS XSLT supporting images

Custom web parts Page and site content Web part instances Search Workflows Business Connectivity Services Managed Metadata

SharePoint Site Elements ndash Part 2

Access Excel Word Visio

PerformancePoint

Document conversions

Timer jobs

Secure Store Service

User profiles

Site Structure

bull Site columns

bull Define the fields that are used by content types

bull Content types

bull Defines collections of site columns for different types of content

bull Subsites

bull The hierarchy of sites that make up the site collection

bull Lists and Libraries

bull The lists and libraries for each subsite

Site Structure ndash Part 2

Site columns and content types can be programmatically or manually created If they are going to be used in multiple site collections they should be

programmatically created

If a single site collection they can be created manually in a master site collection

GUIDs cannot be manually set and code may need them to be consistent

You can create them manually in SharePoint save the site as a template and import them into Visual Studio to create a proper WSP package

Site Structure ndash Part 3

Site structure can also be done either programmatically or manually

Many sites are complex and it is error prone to create manually

We use our own SiteModelBuilder tool to create the site structure

Site Structure ndash Part 4

For all site structure elements changes can also be manual or programmatic It is useful to be able to delete the whole site collection and recreate it

programmatically As soon as content starts being authored in SharePoint it becomes difficult

or impossible to do that

After content authoring has started Site column and content type changes need to be programmed explicitly

(you canrsquot just drop the content type and recreate it) Site structure changes are usually done manually at this point Changes need to be backed up and restored

Change Management

Page and Site Content

Page and site content is entered directly into SharePoint by the content authors Web pages images PDFs list content etc This should be done in the master site separate from where dev integration is

happening Care needs to be taken with this site once authors start working Make sure it is part of your production backup plan

Periodically back it up and restore it to the dev integration and developer VMs

Alternatively script the export and import Ultimately it will be backed up and restored to the QA and production

farms

Change Management

Change Management

Change Management

Change Management

Web part instances

Web parts ultimately get placed on pages

The configuration of the web parts can often get quite complex

You may want to disable editing of web parts for general content authors

They end up in a grey zone between code and content

Web part instances ndash Part 2

We created our own internal tool to export and import web parts

Each web partrsquos configuration can be exported into a webpartfile

We scripted the extraction from the dev integration

webpart files are treated like code and checked into TFS for version control

Script then applies the new webpart files to the target environment

Workflows

Workflows can be built using SharePoint Designer Visual Studio or third-party tools (Nintex or K2 primarily)

Visual Studio workflow projects are automatically packaged as WSP solution files Simply deploy the WSP file to the other environments

SharePoint Designer workflows need to be deployed using SharePoint Designer This means you need SPD access to production which is not always possible

You can load the SPD workflow into Visual Studio to package it but you lose the ability to edit it in SPD

If you use third-party tools yoursquoll need to define the process for that as well

Business Connectivity Services

BCS can be built using either SharePoint Designer or Visual Studio Visual Studio BCS projects are automatically packaged as WSP

solution files Simply deploy the WSP file to the other environments You can also export the BDC metadata model in the BDC service

application

SharePoint Designer doesnrsquot create a WSP and it doesnrsquot make a complete BDC metadata model You need to export and import using SharePoint Designer

In both cases you still need to deal with connection and configuration information

Future Directions

Visual Studio Lab Management

Integrates the management of HyperV environments in with Visual Studio and Team Foundation Server

Can automate the provisioning of lab environments for automated testing

Test failures can snapshot entire environments to make reproduction of errors much easier

Summary

Yoursquore going to have lots of SharePoint environments ndash figure out how to build them quickly and repeatable

Code and content often move in opposite directions through dev QA and Prod PowerShell script and automate to keep this simple

Agile is a great way to run projects

Continuous integration with automated testing is key to its success

There are lots of parts of SharePoint that you donrsquot code through Visual Studio Figure out how you move those through your environment

Other Topics

Site Design

Information architecture

Wireframes

Creative designs ndash Mobile first

Catalogs deep dive

Site build PowerShell scripts

Team Foundation Server and Application Lifecycle Management

Starting a new project

Managing content authoring

Site Improve tool

SEO Optimizations

Analytics options

Retaining Page Ranks with permanent redirects (301)

Azure SharePoint Hosting

Q amp A

Session Evaluations

Go to Evaluations on the home page of wwwcollabconorg

It is important to get your feedback

Please fill out evaluations for all the sessions you attend

Following the conference a random drawing from all completed evaluations will be selected

The winner will receive a $250 Future Shop gift card valid online or in store

Page 64: Web Content Management - CollabCon 2015 - Web... · Performances Complete Works ... Friendly URL An SEO friendly URL defined in the term store for a page, rather than ... What’s

Site Features

Fully Adaptivemobile design Robust Search functionality Template makes it fast and efficient to add new school sites News and events can be targeted by the Board to any number of

school sites Target by panel weather zone trustee language Presented in a blended view with the school news and events

Home page rotator links hours content pages all managed by the school staff

SEO-friendly URLs

News

School news entered by school staff

Board news entered in the board site

Rendered using cross-site publishing

High-priority alerts can be flagged to highlight on the site

Bus or school cancellations

Events

Single and multi-day events

School and board managed like news

Adaptive calendar

School Picker

Used to pick which schools to target news and events to

Schools are tagged through the term store

Target by panel weather zone trustee language

Can override and add or remove individual schools

Search

Catalogs

Three main steps

Enabling lists or libraries as catalogs

Creating the catalog connection

Building the page layouts to display the category rollups or item detail pages

Enabling Catalogs

Doesnrsquot have to be a list can be a document Images or Pages library

Experimenting using a Pages library

This gives us draft and published states that lists donrsquot support

Preview and editing is easier

Fairly simple script to do this

Catalog connections are more complex

Create the connection

Fix up the Term Store

Create the Category and Item page layouts and pages

SEO Enhancements

Friendly URLs

Home page redirects

XML sitemaps automatically generated and updated

Custom SEO properties

Usage Analytics

Built for scale from the ground up Detail data rolled up every 15 days amp anonymized Daily events purged every 15 days monthly events after 3 years Lifetime counts always retained

Counts views amp unique itemsday Shows recent (2-weeks) and lifetime count Trims least visited content Pushes aggregate data to reporting database

Drives recommendations capabilities on content Calculations injected into search index as sortable managed properties Deep integration with search engine Can influence search relevance based on content usage

Variations and Multi-Lingual

Export and import content for translation in XLIFF format

Pages

Labels

List items

Navigation

Bing translation service comes with active SharePoint 2013 license

Adaptive Web Design

Adaptive vs Responsive

Adaptive

Fixed breakpoints‒ Desktop gt 980 px

‒ Table portrait gt 768 px

‒ Phone to tablet gt 480 px lt 768 px

‒ Smartphone lt 480 px

Responsive

No fixed breakpoints

Design fluidly adapts to whatever width the browser is

We generally do a hybrid approach with responsive design in the under 768 pixel situation

Design Approaches in SharePoint

Adaptive Design through CSS media queries

Broader standards approach used outside of SharePoint

Keeps a single master page and CSS

Some unnecessary components may still be loaded

Device Channels SharePoint specific approach

Assign different master pages to different device channels

Rules define what devices use which channels

Device Channel Panels can also target content to channels

Hybrid here can also make sense Device channels can be used to remove unnecessary items from the page payload

Our Adaptive Approach

Built using the Twitter Boostrap CSS framework

twittergithubcombootstrap

Provides a responsive design framework for supporting PC Mac tablet and mobile

We enhanced to provide better touch navigation support

Can be leveraged in the master page page layouts and display templates

Incorporated into the SharePoint 2013 Design Master

HTML based master page that can be edited with any tool

SharePoint converts to a master page when uploaded or saved

Additional Open Source Tools and Resources

HTML CSS JavaScript jQuery

httpwwww3schoolscom

httpgetbootstrapcom

httphandlebarsjscom

httpknockoutjscom

httpsangularjsorg

httpmomentjscom

Content Search Web Part

Web part is configured to return search results

Executed as client-side code in the browser

Pair of display templates map the data returned to HTML

Control template for the overall structure

Item template for each item returned

HTML Designer Manager files are compiled to JavaScript

REST Search and Handlebars

Search is accessible through REST calls

httpsiteurl_apisearchquery

Returns results as a JSON array

Handlebars is a templating engine to format that

Conceptually similar to display templates with control and item sections

jQuery glues this all together

Steps to Experiment

F12 to get into Developer Toolbar

Set a breakpoint where the REST URL is determined

Copy the value

Paste into the REST Search test window

Experiment with the query

Adjust the Handlebars template appropriately

Search Setup

Content Sources to define and schedule the crawls

Crawl logs to review success

Search Schema to define the managed properties

Reusable Content

Snippets of HTML that can be reused throughout the site

JavaScript can be intelligent and use the URL to determine its behaviour

Makes it easy for content authors to drop pre-configured dynamic content onto pages

Topic Pages

Shows all items that match a topic

Could be hundreds of virtual pages

Only one template page

Easily customizable and SEO friendly (each topic appears to be its own page)

Content by search web part open search against a query or result source

May be able to surface the topic pages themselves as site search results

Public Health Ontario

httpwwwpublichealthontariocaenBrowseByTopicPagesTopicaspxk=Influenza20InformationByTopic22Influenza22

Ontario Association of Childrens Aid Societies

Application Lifecycle Management

Purpose

How do we build a solid SharePoint development environment for the enterprise

How do a number of developers work together on a SharePoint project

How does code and content move through a dev test and production lifecycle

What is Agile and Continuous Integration and why is it important

Visual Studio and Team Foundation Server

Visual Studio 2010 is the development platform for coding on SharePoint 2010

Team Foundation Server integrates with Visual Studio to provide a repository for code test and other project artifacts

It facilitates teamwork by providing a common place for developers to work together

Provisioning SharePoint Farms

Provisioning SharePoint Farms

Every developer needs their own complete SharePoint farm

Teams need a dev integration farm to bring their work together on

A full architecture needs QA and production farms as well

Envision IT Virtualization Architecture

Developer VM Template

SharePoint Server 2010 Enterprise

SP1 and August CU

Visual Studio 2010 Premium SP1

Office 2010 Professional Plus SP1

SharePoint Designer 2010 SP1

Fiddler

SQL Server 2008 R2 SP1

Creating a new Developer VM

Open System Centre Virtual Machine Manager

Create Virtual Machine

Choose the Developer VM template

Set the virtual machine name and options

Create and start the VM

Creating a new Developer VM - Step 2

Developer RDPs to their new VM Complete the SQL Server installation

Create the default instance Set the service account(s) Set the authentication mode and server administrators

Update the AutoSPInstallerInputxml file Set the machine name for the default sites and database server Set the service account passwords

Run the AutoSPInstallerLaunch batch file Do a Health check review

Creating a new Developer VM - Step 3

Start Visual Studio

Connect to the Team Foundation Server

Setup your workspaces

Use a standard naming convention across your team

CDevelopmentTFSCollection

Other Environments

Dev Integration QA and Production can all be built using AutoSPInstall

Donrsquot need or want the Visual Studio or Office tools on these servers

We have a base template we use for dev integration servers

QA should match the Prod architecture as closely as possible

High availability with load balancing clustered SQL app servers DMZ hardening Internet publishing

Agile Development

Agile with Team Foundation Server

Creating Your TFS Project

Open Visual Studio

Make sure you are connected to the right Team Project Collection

In Team Explorer right-click the top collection and create a new Team Project

Use the Scrum 10 template

Go into the Areas and Iterations Delete the extraneous releases and sprints

Create a product backlog iteration

Start adding your stories and tasks

Continuous Integration

Continuous Integration

Automated Testing

SharePoint Site Elements

Site structure Site columns content types subsites lists libraries

Branding elements Master pages layouts CSS XSLT supporting images

Custom web parts Page and site content Web part instances Search Workflows Business Connectivity Services Managed Metadata

SharePoint Site Elements ndash Part 2

Access Excel Word Visio

PerformancePoint

Document conversions

Timer jobs

Secure Store Service

User profiles

Site Structure

bull Site columns

bull Define the fields that are used by content types

bull Content types

bull Defines collections of site columns for different types of content

bull Subsites

bull The hierarchy of sites that make up the site collection

bull Lists and Libraries

bull The lists and libraries for each subsite

Site Structure ndash Part 2

Site columns and content types can be programmatically or manually created If they are going to be used in multiple site collections they should be

programmatically created

If a single site collection they can be created manually in a master site collection

GUIDs cannot be manually set and code may need them to be consistent

You can create them manually in SharePoint save the site as a template and import them into Visual Studio to create a proper WSP package

Site Structure ndash Part 3

Site structure can also be done either programmatically or manually

Many sites are complex and it is error prone to create manually

We use our own SiteModelBuilder tool to create the site structure

Site Structure ndash Part 4

For all site structure elements changes can also be manual or programmatic It is useful to be able to delete the whole site collection and recreate it

programmatically As soon as content starts being authored in SharePoint it becomes difficult

or impossible to do that

After content authoring has started Site column and content type changes need to be programmed explicitly

(you canrsquot just drop the content type and recreate it) Site structure changes are usually done manually at this point Changes need to be backed up and restored

Change Management

Page and Site Content

Page and site content is entered directly into SharePoint by the content authors Web pages images PDFs list content etc This should be done in the master site separate from where dev integration is

happening Care needs to be taken with this site once authors start working Make sure it is part of your production backup plan

Periodically back it up and restore it to the dev integration and developer VMs

Alternatively script the export and import Ultimately it will be backed up and restored to the QA and production

farms

Change Management

Change Management

Change Management

Change Management

Web part instances

Web parts ultimately get placed on pages

The configuration of the web parts can often get quite complex

You may want to disable editing of web parts for general content authors

They end up in a grey zone between code and content

Web part instances ndash Part 2

We created our own internal tool to export and import web parts

Each web partrsquos configuration can be exported into a webpartfile

We scripted the extraction from the dev integration

webpart files are treated like code and checked into TFS for version control

Script then applies the new webpart files to the target environment

Workflows

Workflows can be built using SharePoint Designer Visual Studio or third-party tools (Nintex or K2 primarily)

Visual Studio workflow projects are automatically packaged as WSP solution files Simply deploy the WSP file to the other environments

SharePoint Designer workflows need to be deployed using SharePoint Designer This means you need SPD access to production which is not always possible

You can load the SPD workflow into Visual Studio to package it but you lose the ability to edit it in SPD

If you use third-party tools yoursquoll need to define the process for that as well

Business Connectivity Services

BCS can be built using either SharePoint Designer or Visual Studio Visual Studio BCS projects are automatically packaged as WSP

solution files Simply deploy the WSP file to the other environments You can also export the BDC metadata model in the BDC service

application

SharePoint Designer doesnrsquot create a WSP and it doesnrsquot make a complete BDC metadata model You need to export and import using SharePoint Designer

In both cases you still need to deal with connection and configuration information

Future Directions

Visual Studio Lab Management

Integrates the management of HyperV environments in with Visual Studio and Team Foundation Server

Can automate the provisioning of lab environments for automated testing

Test failures can snapshot entire environments to make reproduction of errors much easier

Summary

Yoursquore going to have lots of SharePoint environments ndash figure out how to build them quickly and repeatable

Code and content often move in opposite directions through dev QA and Prod PowerShell script and automate to keep this simple

Agile is a great way to run projects

Continuous integration with automated testing is key to its success

There are lots of parts of SharePoint that you donrsquot code through Visual Studio Figure out how you move those through your environment

Other Topics

Site Design

Information architecture

Wireframes

Creative designs ndash Mobile first

Catalogs deep dive

Site build PowerShell scripts

Team Foundation Server and Application Lifecycle Management

Starting a new project

Managing content authoring

Site Improve tool

SEO Optimizations

Analytics options

Retaining Page Ranks with permanent redirects (301)

Azure SharePoint Hosting

Q amp A

Session Evaluations

Go to Evaluations on the home page of wwwcollabconorg

It is important to get your feedback

Please fill out evaluations for all the sessions you attend

Following the conference a random drawing from all completed evaluations will be selected

The winner will receive a $250 Future Shop gift card valid online or in store

Page 65: Web Content Management - CollabCon 2015 - Web... · Performances Complete Works ... Friendly URL An SEO friendly URL defined in the term store for a page, rather than ... What’s

News

School news entered by school staff

Board news entered in the board site

Rendered using cross-site publishing

High-priority alerts can be flagged to highlight on the site

Bus or school cancellations

Events

Single and multi-day events

School and board managed like news

Adaptive calendar

School Picker

Used to pick which schools to target news and events to

Schools are tagged through the term store

Target by panel weather zone trustee language

Can override and add or remove individual schools

Search

Catalogs

Three main steps

Enabling lists or libraries as catalogs

Creating the catalog connection

Building the page layouts to display the category rollups or item detail pages

Enabling Catalogs

Doesnrsquot have to be a list can be a document Images or Pages library

Experimenting using a Pages library

This gives us draft and published states that lists donrsquot support

Preview and editing is easier

Fairly simple script to do this

Catalog connections are more complex

Create the connection

Fix up the Term Store

Create the Category and Item page layouts and pages

SEO Enhancements

Friendly URLs

Home page redirects

XML sitemaps automatically generated and updated

Custom SEO properties

Usage Analytics

Built for scale from the ground up Detail data rolled up every 15 days amp anonymized Daily events purged every 15 days monthly events after 3 years Lifetime counts always retained

Counts views amp unique itemsday Shows recent (2-weeks) and lifetime count Trims least visited content Pushes aggregate data to reporting database

Drives recommendations capabilities on content Calculations injected into search index as sortable managed properties Deep integration with search engine Can influence search relevance based on content usage

Variations and Multi-Lingual

Export and import content for translation in XLIFF format

Pages

Labels

List items

Navigation

Bing translation service comes with active SharePoint 2013 license

Adaptive Web Design

Adaptive vs Responsive

Adaptive

Fixed breakpoints‒ Desktop gt 980 px

‒ Table portrait gt 768 px

‒ Phone to tablet gt 480 px lt 768 px

‒ Smartphone lt 480 px

Responsive

No fixed breakpoints

Design fluidly adapts to whatever width the browser is

We generally do a hybrid approach with responsive design in the under 768 pixel situation

Design Approaches in SharePoint

Adaptive Design through CSS media queries

Broader standards approach used outside of SharePoint

Keeps a single master page and CSS

Some unnecessary components may still be loaded

Device Channels SharePoint specific approach

Assign different master pages to different device channels

Rules define what devices use which channels

Device Channel Panels can also target content to channels

Hybrid here can also make sense Device channels can be used to remove unnecessary items from the page payload

Our Adaptive Approach

Built using the Twitter Boostrap CSS framework

twittergithubcombootstrap

Provides a responsive design framework for supporting PC Mac tablet and mobile

We enhanced to provide better touch navigation support

Can be leveraged in the master page page layouts and display templates

Incorporated into the SharePoint 2013 Design Master

HTML based master page that can be edited with any tool

SharePoint converts to a master page when uploaded or saved

Additional Open Source Tools and Resources

HTML CSS JavaScript jQuery

httpwwww3schoolscom

httpgetbootstrapcom

httphandlebarsjscom

httpknockoutjscom

httpsangularjsorg

httpmomentjscom

Content Search Web Part

Web part is configured to return search results

Executed as client-side code in the browser

Pair of display templates map the data returned to HTML

Control template for the overall structure

Item template for each item returned

HTML Designer Manager files are compiled to JavaScript

REST Search and Handlebars

Search is accessible through REST calls

httpsiteurl_apisearchquery

Returns results as a JSON array

Handlebars is a templating engine to format that

Conceptually similar to display templates with control and item sections

jQuery glues this all together

Steps to Experiment

F12 to get into Developer Toolbar

Set a breakpoint where the REST URL is determined

Copy the value

Paste into the REST Search test window

Experiment with the query

Adjust the Handlebars template appropriately

Search Setup

Content Sources to define and schedule the crawls

Crawl logs to review success

Search Schema to define the managed properties

Reusable Content

Snippets of HTML that can be reused throughout the site

JavaScript can be intelligent and use the URL to determine its behaviour

Makes it easy for content authors to drop pre-configured dynamic content onto pages

Topic Pages

Shows all items that match a topic

Could be hundreds of virtual pages

Only one template page

Easily customizable and SEO friendly (each topic appears to be its own page)

Content by search web part open search against a query or result source

May be able to surface the topic pages themselves as site search results

Public Health Ontario

httpwwwpublichealthontariocaenBrowseByTopicPagesTopicaspxk=Influenza20InformationByTopic22Influenza22

Ontario Association of Childrens Aid Societies

Application Lifecycle Management

Purpose

How do we build a solid SharePoint development environment for the enterprise

How do a number of developers work together on a SharePoint project

How does code and content move through a dev test and production lifecycle

What is Agile and Continuous Integration and why is it important

Visual Studio and Team Foundation Server

Visual Studio 2010 is the development platform for coding on SharePoint 2010

Team Foundation Server integrates with Visual Studio to provide a repository for code test and other project artifacts

It facilitates teamwork by providing a common place for developers to work together

Provisioning SharePoint Farms

Provisioning SharePoint Farms

Every developer needs their own complete SharePoint farm

Teams need a dev integration farm to bring their work together on

A full architecture needs QA and production farms as well

Envision IT Virtualization Architecture

Developer VM Template

SharePoint Server 2010 Enterprise

SP1 and August CU

Visual Studio 2010 Premium SP1

Office 2010 Professional Plus SP1

SharePoint Designer 2010 SP1

Fiddler

SQL Server 2008 R2 SP1

Creating a new Developer VM

Open System Centre Virtual Machine Manager

Create Virtual Machine

Choose the Developer VM template

Set the virtual machine name and options

Create and start the VM

Creating a new Developer VM - Step 2

Developer RDPs to their new VM Complete the SQL Server installation

Create the default instance Set the service account(s) Set the authentication mode and server administrators

Update the AutoSPInstallerInputxml file Set the machine name for the default sites and database server Set the service account passwords

Run the AutoSPInstallerLaunch batch file Do a Health check review

Creating a new Developer VM - Step 3

Start Visual Studio

Connect to the Team Foundation Server

Setup your workspaces

Use a standard naming convention across your team

CDevelopmentTFSCollection

Other Environments

Dev Integration QA and Production can all be built using AutoSPInstall

Donrsquot need or want the Visual Studio or Office tools on these servers

We have a base template we use for dev integration servers

QA should match the Prod architecture as closely as possible

High availability with load balancing clustered SQL app servers DMZ hardening Internet publishing

Agile Development

Agile with Team Foundation Server

Creating Your TFS Project

Open Visual Studio

Make sure you are connected to the right Team Project Collection

In Team Explorer right-click the top collection and create a new Team Project

Use the Scrum 10 template

Go into the Areas and Iterations Delete the extraneous releases and sprints

Create a product backlog iteration

Start adding your stories and tasks

Continuous Integration

Continuous Integration

Automated Testing

SharePoint Site Elements

Site structure Site columns content types subsites lists libraries

Branding elements Master pages layouts CSS XSLT supporting images

Custom web parts Page and site content Web part instances Search Workflows Business Connectivity Services Managed Metadata

SharePoint Site Elements ndash Part 2

Access Excel Word Visio

PerformancePoint

Document conversions

Timer jobs

Secure Store Service

User profiles

Site Structure

bull Site columns

bull Define the fields that are used by content types

bull Content types

bull Defines collections of site columns for different types of content

bull Subsites

bull The hierarchy of sites that make up the site collection

bull Lists and Libraries

bull The lists and libraries for each subsite

Site Structure ndash Part 2

Site columns and content types can be programmatically or manually created If they are going to be used in multiple site collections they should be

programmatically created

If a single site collection they can be created manually in a master site collection

GUIDs cannot be manually set and code may need them to be consistent

You can create them manually in SharePoint save the site as a template and import them into Visual Studio to create a proper WSP package

Site Structure ndash Part 3

Site structure can also be done either programmatically or manually

Many sites are complex and it is error prone to create manually

We use our own SiteModelBuilder tool to create the site structure

Site Structure ndash Part 4

For all site structure elements changes can also be manual or programmatic It is useful to be able to delete the whole site collection and recreate it

programmatically As soon as content starts being authored in SharePoint it becomes difficult

or impossible to do that

After content authoring has started Site column and content type changes need to be programmed explicitly

(you canrsquot just drop the content type and recreate it) Site structure changes are usually done manually at this point Changes need to be backed up and restored

Change Management

Page and Site Content

Page and site content is entered directly into SharePoint by the content authors Web pages images PDFs list content etc This should be done in the master site separate from where dev integration is

happening Care needs to be taken with this site once authors start working Make sure it is part of your production backup plan

Periodically back it up and restore it to the dev integration and developer VMs

Alternatively script the export and import Ultimately it will be backed up and restored to the QA and production

farms

Change Management

Change Management

Change Management

Change Management

Web part instances

Web parts ultimately get placed on pages

The configuration of the web parts can often get quite complex

You may want to disable editing of web parts for general content authors

They end up in a grey zone between code and content

Web part instances ndash Part 2

We created our own internal tool to export and import web parts

Each web partrsquos configuration can be exported into a webpartfile

We scripted the extraction from the dev integration

webpart files are treated like code and checked into TFS for version control

Script then applies the new webpart files to the target environment

Workflows

Workflows can be built using SharePoint Designer Visual Studio or third-party tools (Nintex or K2 primarily)

Visual Studio workflow projects are automatically packaged as WSP solution files Simply deploy the WSP file to the other environments

SharePoint Designer workflows need to be deployed using SharePoint Designer This means you need SPD access to production which is not always possible

You can load the SPD workflow into Visual Studio to package it but you lose the ability to edit it in SPD

If you use third-party tools yoursquoll need to define the process for that as well

Business Connectivity Services

BCS can be built using either SharePoint Designer or Visual Studio Visual Studio BCS projects are automatically packaged as WSP

solution files Simply deploy the WSP file to the other environments You can also export the BDC metadata model in the BDC service

application

SharePoint Designer doesnrsquot create a WSP and it doesnrsquot make a complete BDC metadata model You need to export and import using SharePoint Designer

In both cases you still need to deal with connection and configuration information

Future Directions

Visual Studio Lab Management

Integrates the management of HyperV environments in with Visual Studio and Team Foundation Server

Can automate the provisioning of lab environments for automated testing

Test failures can snapshot entire environments to make reproduction of errors much easier

Summary

Yoursquore going to have lots of SharePoint environments ndash figure out how to build them quickly and repeatable

Code and content often move in opposite directions through dev QA and Prod PowerShell script and automate to keep this simple

Agile is a great way to run projects

Continuous integration with automated testing is key to its success

There are lots of parts of SharePoint that you donrsquot code through Visual Studio Figure out how you move those through your environment

Other Topics

Site Design

Information architecture

Wireframes

Creative designs ndash Mobile first

Catalogs deep dive

Site build PowerShell scripts

Team Foundation Server and Application Lifecycle Management

Starting a new project

Managing content authoring

Site Improve tool

SEO Optimizations

Analytics options

Retaining Page Ranks with permanent redirects (301)

Azure SharePoint Hosting

Q amp A

Session Evaluations

Go to Evaluations on the home page of wwwcollabconorg

It is important to get your feedback

Please fill out evaluations for all the sessions you attend

Following the conference a random drawing from all completed evaluations will be selected

The winner will receive a $250 Future Shop gift card valid online or in store

Page 66: Web Content Management - CollabCon 2015 - Web... · Performances Complete Works ... Friendly URL An SEO friendly URL defined in the term store for a page, rather than ... What’s

Events

Single and multi-day events

School and board managed like news

Adaptive calendar

School Picker

Used to pick which schools to target news and events to

Schools are tagged through the term store

Target by panel weather zone trustee language

Can override and add or remove individual schools

Search

Catalogs

Three main steps

Enabling lists or libraries as catalogs

Creating the catalog connection

Building the page layouts to display the category rollups or item detail pages

Enabling Catalogs

Doesnrsquot have to be a list can be a document Images or Pages library

Experimenting using a Pages library

This gives us draft and published states that lists donrsquot support

Preview and editing is easier

Fairly simple script to do this

Catalog connections are more complex

Create the connection

Fix up the Term Store

Create the Category and Item page layouts and pages

SEO Enhancements

Friendly URLs

Home page redirects

XML sitemaps automatically generated and updated

Custom SEO properties

Usage Analytics

Built for scale from the ground up Detail data rolled up every 15 days amp anonymized Daily events purged every 15 days monthly events after 3 years Lifetime counts always retained

Counts views amp unique itemsday Shows recent (2-weeks) and lifetime count Trims least visited content Pushes aggregate data to reporting database

Drives recommendations capabilities on content Calculations injected into search index as sortable managed properties Deep integration with search engine Can influence search relevance based on content usage

Variations and Multi-Lingual

Export and import content for translation in XLIFF format

Pages

Labels

List items

Navigation

Bing translation service comes with active SharePoint 2013 license

Adaptive Web Design

Adaptive vs Responsive

Adaptive

Fixed breakpoints‒ Desktop gt 980 px

‒ Table portrait gt 768 px

‒ Phone to tablet gt 480 px lt 768 px

‒ Smartphone lt 480 px

Responsive

No fixed breakpoints

Design fluidly adapts to whatever width the browser is

We generally do a hybrid approach with responsive design in the under 768 pixel situation

Design Approaches in SharePoint

Adaptive Design through CSS media queries

Broader standards approach used outside of SharePoint

Keeps a single master page and CSS

Some unnecessary components may still be loaded

Device Channels SharePoint specific approach

Assign different master pages to different device channels

Rules define what devices use which channels

Device Channel Panels can also target content to channels

Hybrid here can also make sense Device channels can be used to remove unnecessary items from the page payload

Our Adaptive Approach

Built using the Twitter Boostrap CSS framework

twittergithubcombootstrap

Provides a responsive design framework for supporting PC Mac tablet and mobile

We enhanced to provide better touch navigation support

Can be leveraged in the master page page layouts and display templates

Incorporated into the SharePoint 2013 Design Master

HTML based master page that can be edited with any tool

SharePoint converts to a master page when uploaded or saved

Additional Open Source Tools and Resources

HTML CSS JavaScript jQuery

httpwwww3schoolscom

httpgetbootstrapcom

httphandlebarsjscom

httpknockoutjscom

httpsangularjsorg

httpmomentjscom

Content Search Web Part

Web part is configured to return search results

Executed as client-side code in the browser

Pair of display templates map the data returned to HTML

Control template for the overall structure

Item template for each item returned

HTML Designer Manager files are compiled to JavaScript

REST Search and Handlebars

Search is accessible through REST calls

httpsiteurl_apisearchquery

Returns results as a JSON array

Handlebars is a templating engine to format that

Conceptually similar to display templates with control and item sections

jQuery glues this all together

Steps to Experiment

F12 to get into Developer Toolbar

Set a breakpoint where the REST URL is determined

Copy the value

Paste into the REST Search test window

Experiment with the query

Adjust the Handlebars template appropriately

Search Setup

Content Sources to define and schedule the crawls

Crawl logs to review success

Search Schema to define the managed properties

Reusable Content

Snippets of HTML that can be reused throughout the site

JavaScript can be intelligent and use the URL to determine its behaviour

Makes it easy for content authors to drop pre-configured dynamic content onto pages

Topic Pages

Shows all items that match a topic

Could be hundreds of virtual pages

Only one template page

Easily customizable and SEO friendly (each topic appears to be its own page)

Content by search web part open search against a query or result source

May be able to surface the topic pages themselves as site search results

Public Health Ontario

httpwwwpublichealthontariocaenBrowseByTopicPagesTopicaspxk=Influenza20InformationByTopic22Influenza22

Ontario Association of Childrens Aid Societies

Application Lifecycle Management

Purpose

How do we build a solid SharePoint development environment for the enterprise

How do a number of developers work together on a SharePoint project

How does code and content move through a dev test and production lifecycle

What is Agile and Continuous Integration and why is it important

Visual Studio and Team Foundation Server

Visual Studio 2010 is the development platform for coding on SharePoint 2010

Team Foundation Server integrates with Visual Studio to provide a repository for code test and other project artifacts

It facilitates teamwork by providing a common place for developers to work together

Provisioning SharePoint Farms

Provisioning SharePoint Farms

Every developer needs their own complete SharePoint farm

Teams need a dev integration farm to bring their work together on

A full architecture needs QA and production farms as well

Envision IT Virtualization Architecture

Developer VM Template

SharePoint Server 2010 Enterprise

SP1 and August CU

Visual Studio 2010 Premium SP1

Office 2010 Professional Plus SP1

SharePoint Designer 2010 SP1

Fiddler

SQL Server 2008 R2 SP1

Creating a new Developer VM

Open System Centre Virtual Machine Manager

Create Virtual Machine

Choose the Developer VM template

Set the virtual machine name and options

Create and start the VM

Creating a new Developer VM - Step 2

Developer RDPs to their new VM Complete the SQL Server installation

Create the default instance Set the service account(s) Set the authentication mode and server administrators

Update the AutoSPInstallerInputxml file Set the machine name for the default sites and database server Set the service account passwords

Run the AutoSPInstallerLaunch batch file Do a Health check review

Creating a new Developer VM - Step 3

Start Visual Studio

Connect to the Team Foundation Server

Setup your workspaces

Use a standard naming convention across your team

CDevelopmentTFSCollection

Other Environments

Dev Integration QA and Production can all be built using AutoSPInstall

Donrsquot need or want the Visual Studio or Office tools on these servers

We have a base template we use for dev integration servers

QA should match the Prod architecture as closely as possible

High availability with load balancing clustered SQL app servers DMZ hardening Internet publishing

Agile Development

Agile with Team Foundation Server

Creating Your TFS Project

Open Visual Studio

Make sure you are connected to the right Team Project Collection

In Team Explorer right-click the top collection and create a new Team Project

Use the Scrum 10 template

Go into the Areas and Iterations Delete the extraneous releases and sprints

Create a product backlog iteration

Start adding your stories and tasks

Continuous Integration

Continuous Integration

Automated Testing

SharePoint Site Elements

Site structure Site columns content types subsites lists libraries

Branding elements Master pages layouts CSS XSLT supporting images

Custom web parts Page and site content Web part instances Search Workflows Business Connectivity Services Managed Metadata

SharePoint Site Elements ndash Part 2

Access Excel Word Visio

PerformancePoint

Document conversions

Timer jobs

Secure Store Service

User profiles

Site Structure

bull Site columns

bull Define the fields that are used by content types

bull Content types

bull Defines collections of site columns for different types of content

bull Subsites

bull The hierarchy of sites that make up the site collection

bull Lists and Libraries

bull The lists and libraries for each subsite

Site Structure ndash Part 2

Site columns and content types can be programmatically or manually created If they are going to be used in multiple site collections they should be

programmatically created

If a single site collection they can be created manually in a master site collection

GUIDs cannot be manually set and code may need them to be consistent

You can create them manually in SharePoint save the site as a template and import them into Visual Studio to create a proper WSP package

Site Structure ndash Part 3

Site structure can also be done either programmatically or manually

Many sites are complex and it is error prone to create manually

We use our own SiteModelBuilder tool to create the site structure

Site Structure ndash Part 4

For all site structure elements changes can also be manual or programmatic It is useful to be able to delete the whole site collection and recreate it

programmatically As soon as content starts being authored in SharePoint it becomes difficult

or impossible to do that

After content authoring has started Site column and content type changes need to be programmed explicitly

(you canrsquot just drop the content type and recreate it) Site structure changes are usually done manually at this point Changes need to be backed up and restored

Change Management

Page and Site Content

Page and site content is entered directly into SharePoint by the content authors Web pages images PDFs list content etc This should be done in the master site separate from where dev integration is

happening Care needs to be taken with this site once authors start working Make sure it is part of your production backup plan

Periodically back it up and restore it to the dev integration and developer VMs

Alternatively script the export and import Ultimately it will be backed up and restored to the QA and production

farms

Change Management

Change Management

Change Management

Change Management

Web part instances

Web parts ultimately get placed on pages

The configuration of the web parts can often get quite complex

You may want to disable editing of web parts for general content authors

They end up in a grey zone between code and content

Web part instances ndash Part 2

We created our own internal tool to export and import web parts

Each web partrsquos configuration can be exported into a webpartfile

We scripted the extraction from the dev integration

webpart files are treated like code and checked into TFS for version control

Script then applies the new webpart files to the target environment

Workflows

Workflows can be built using SharePoint Designer Visual Studio or third-party tools (Nintex or K2 primarily)

Visual Studio workflow projects are automatically packaged as WSP solution files Simply deploy the WSP file to the other environments

SharePoint Designer workflows need to be deployed using SharePoint Designer This means you need SPD access to production which is not always possible

You can load the SPD workflow into Visual Studio to package it but you lose the ability to edit it in SPD

If you use third-party tools yoursquoll need to define the process for that as well

Business Connectivity Services

BCS can be built using either SharePoint Designer or Visual Studio Visual Studio BCS projects are automatically packaged as WSP

solution files Simply deploy the WSP file to the other environments You can also export the BDC metadata model in the BDC service

application

SharePoint Designer doesnrsquot create a WSP and it doesnrsquot make a complete BDC metadata model You need to export and import using SharePoint Designer

In both cases you still need to deal with connection and configuration information

Future Directions

Visual Studio Lab Management

Integrates the management of HyperV environments in with Visual Studio and Team Foundation Server

Can automate the provisioning of lab environments for automated testing

Test failures can snapshot entire environments to make reproduction of errors much easier

Summary

Yoursquore going to have lots of SharePoint environments ndash figure out how to build them quickly and repeatable

Code and content often move in opposite directions through dev QA and Prod PowerShell script and automate to keep this simple

Agile is a great way to run projects

Continuous integration with automated testing is key to its success

There are lots of parts of SharePoint that you donrsquot code through Visual Studio Figure out how you move those through your environment

Other Topics

Site Design

Information architecture

Wireframes

Creative designs ndash Mobile first

Catalogs deep dive

Site build PowerShell scripts

Team Foundation Server and Application Lifecycle Management

Starting a new project

Managing content authoring

Site Improve tool

SEO Optimizations

Analytics options

Retaining Page Ranks with permanent redirects (301)

Azure SharePoint Hosting

Q amp A

Session Evaluations

Go to Evaluations on the home page of wwwcollabconorg

It is important to get your feedback

Please fill out evaluations for all the sessions you attend

Following the conference a random drawing from all completed evaluations will be selected

The winner will receive a $250 Future Shop gift card valid online or in store

Page 67: Web Content Management - CollabCon 2015 - Web... · Performances Complete Works ... Friendly URL An SEO friendly URL defined in the term store for a page, rather than ... What’s

School Picker

Used to pick which schools to target news and events to

Schools are tagged through the term store

Target by panel weather zone trustee language

Can override and add or remove individual schools

Search

Catalogs

Three main steps

Enabling lists or libraries as catalogs

Creating the catalog connection

Building the page layouts to display the category rollups or item detail pages

Enabling Catalogs

Doesnrsquot have to be a list can be a document Images or Pages library

Experimenting using a Pages library

This gives us draft and published states that lists donrsquot support

Preview and editing is easier

Fairly simple script to do this

Catalog connections are more complex

Create the connection

Fix up the Term Store

Create the Category and Item page layouts and pages

SEO Enhancements

Friendly URLs

Home page redirects

XML sitemaps automatically generated and updated

Custom SEO properties

Usage Analytics

Built for scale from the ground up Detail data rolled up every 15 days amp anonymized Daily events purged every 15 days monthly events after 3 years Lifetime counts always retained

Counts views amp unique itemsday Shows recent (2-weeks) and lifetime count Trims least visited content Pushes aggregate data to reporting database

Drives recommendations capabilities on content Calculations injected into search index as sortable managed properties Deep integration with search engine Can influence search relevance based on content usage

Variations and Multi-Lingual

Export and import content for translation in XLIFF format

Pages

Labels

List items

Navigation

Bing translation service comes with active SharePoint 2013 license

Adaptive Web Design

Adaptive vs Responsive

Adaptive

Fixed breakpoints‒ Desktop gt 980 px

‒ Table portrait gt 768 px

‒ Phone to tablet gt 480 px lt 768 px

‒ Smartphone lt 480 px

Responsive

No fixed breakpoints

Design fluidly adapts to whatever width the browser is

We generally do a hybrid approach with responsive design in the under 768 pixel situation

Design Approaches in SharePoint

Adaptive Design through CSS media queries

Broader standards approach used outside of SharePoint

Keeps a single master page and CSS

Some unnecessary components may still be loaded

Device Channels SharePoint specific approach

Assign different master pages to different device channels

Rules define what devices use which channels

Device Channel Panels can also target content to channels

Hybrid here can also make sense Device channels can be used to remove unnecessary items from the page payload

Our Adaptive Approach

Built using the Twitter Boostrap CSS framework

twittergithubcombootstrap

Provides a responsive design framework for supporting PC Mac tablet and mobile

We enhanced to provide better touch navigation support

Can be leveraged in the master page page layouts and display templates

Incorporated into the SharePoint 2013 Design Master

HTML based master page that can be edited with any tool

SharePoint converts to a master page when uploaded or saved

Additional Open Source Tools and Resources

HTML CSS JavaScript jQuery

httpwwww3schoolscom

httpgetbootstrapcom

httphandlebarsjscom

httpknockoutjscom

httpsangularjsorg

httpmomentjscom

Content Search Web Part

Web part is configured to return search results

Executed as client-side code in the browser

Pair of display templates map the data returned to HTML

Control template for the overall structure

Item template for each item returned

HTML Designer Manager files are compiled to JavaScript

REST Search and Handlebars

Search is accessible through REST calls

httpsiteurl_apisearchquery

Returns results as a JSON array

Handlebars is a templating engine to format that

Conceptually similar to display templates with control and item sections

jQuery glues this all together

Steps to Experiment

F12 to get into Developer Toolbar

Set a breakpoint where the REST URL is determined

Copy the value

Paste into the REST Search test window

Experiment with the query

Adjust the Handlebars template appropriately

Search Setup

Content Sources to define and schedule the crawls

Crawl logs to review success

Search Schema to define the managed properties

Reusable Content

Snippets of HTML that can be reused throughout the site

JavaScript can be intelligent and use the URL to determine its behaviour

Makes it easy for content authors to drop pre-configured dynamic content onto pages

Topic Pages

Shows all items that match a topic

Could be hundreds of virtual pages

Only one template page

Easily customizable and SEO friendly (each topic appears to be its own page)

Content by search web part open search against a query or result source

May be able to surface the topic pages themselves as site search results

Public Health Ontario

httpwwwpublichealthontariocaenBrowseByTopicPagesTopicaspxk=Influenza20InformationByTopic22Influenza22

Ontario Association of Childrens Aid Societies

Application Lifecycle Management

Purpose

How do we build a solid SharePoint development environment for the enterprise

How do a number of developers work together on a SharePoint project

How does code and content move through a dev test and production lifecycle

What is Agile and Continuous Integration and why is it important

Visual Studio and Team Foundation Server

Visual Studio 2010 is the development platform for coding on SharePoint 2010

Team Foundation Server integrates with Visual Studio to provide a repository for code test and other project artifacts

It facilitates teamwork by providing a common place for developers to work together

Provisioning SharePoint Farms

Provisioning SharePoint Farms

Every developer needs their own complete SharePoint farm

Teams need a dev integration farm to bring their work together on

A full architecture needs QA and production farms as well

Envision IT Virtualization Architecture

Developer VM Template

SharePoint Server 2010 Enterprise

SP1 and August CU

Visual Studio 2010 Premium SP1

Office 2010 Professional Plus SP1

SharePoint Designer 2010 SP1

Fiddler

SQL Server 2008 R2 SP1

Creating a new Developer VM

Open System Centre Virtual Machine Manager

Create Virtual Machine

Choose the Developer VM template

Set the virtual machine name and options

Create and start the VM

Creating a new Developer VM - Step 2

Developer RDPs to their new VM Complete the SQL Server installation

Create the default instance Set the service account(s) Set the authentication mode and server administrators

Update the AutoSPInstallerInputxml file Set the machine name for the default sites and database server Set the service account passwords

Run the AutoSPInstallerLaunch batch file Do a Health check review

Creating a new Developer VM - Step 3

Start Visual Studio

Connect to the Team Foundation Server

Setup your workspaces

Use a standard naming convention across your team

CDevelopmentTFSCollection

Other Environments

Dev Integration QA and Production can all be built using AutoSPInstall

Donrsquot need or want the Visual Studio or Office tools on these servers

We have a base template we use for dev integration servers

QA should match the Prod architecture as closely as possible

High availability with load balancing clustered SQL app servers DMZ hardening Internet publishing

Agile Development

Agile with Team Foundation Server

Creating Your TFS Project

Open Visual Studio

Make sure you are connected to the right Team Project Collection

In Team Explorer right-click the top collection and create a new Team Project

Use the Scrum 10 template

Go into the Areas and Iterations Delete the extraneous releases and sprints

Create a product backlog iteration

Start adding your stories and tasks

Continuous Integration

Continuous Integration

Automated Testing

SharePoint Site Elements

Site structure Site columns content types subsites lists libraries

Branding elements Master pages layouts CSS XSLT supporting images

Custom web parts Page and site content Web part instances Search Workflows Business Connectivity Services Managed Metadata

SharePoint Site Elements ndash Part 2

Access Excel Word Visio

PerformancePoint

Document conversions

Timer jobs

Secure Store Service

User profiles

Site Structure

bull Site columns

bull Define the fields that are used by content types

bull Content types

bull Defines collections of site columns for different types of content

bull Subsites

bull The hierarchy of sites that make up the site collection

bull Lists and Libraries

bull The lists and libraries for each subsite

Site Structure ndash Part 2

Site columns and content types can be programmatically or manually created If they are going to be used in multiple site collections they should be

programmatically created

If a single site collection they can be created manually in a master site collection

GUIDs cannot be manually set and code may need them to be consistent

You can create them manually in SharePoint save the site as a template and import them into Visual Studio to create a proper WSP package

Site Structure ndash Part 3

Site structure can also be done either programmatically or manually

Many sites are complex and it is error prone to create manually

We use our own SiteModelBuilder tool to create the site structure

Site Structure ndash Part 4

For all site structure elements changes can also be manual or programmatic It is useful to be able to delete the whole site collection and recreate it

programmatically As soon as content starts being authored in SharePoint it becomes difficult

or impossible to do that

After content authoring has started Site column and content type changes need to be programmed explicitly

(you canrsquot just drop the content type and recreate it) Site structure changes are usually done manually at this point Changes need to be backed up and restored

Change Management

Page and Site Content

Page and site content is entered directly into SharePoint by the content authors Web pages images PDFs list content etc This should be done in the master site separate from where dev integration is

happening Care needs to be taken with this site once authors start working Make sure it is part of your production backup plan

Periodically back it up and restore it to the dev integration and developer VMs

Alternatively script the export and import Ultimately it will be backed up and restored to the QA and production

farms

Change Management

Change Management

Change Management

Change Management

Web part instances

Web parts ultimately get placed on pages

The configuration of the web parts can often get quite complex

You may want to disable editing of web parts for general content authors

They end up in a grey zone between code and content

Web part instances ndash Part 2

We created our own internal tool to export and import web parts

Each web partrsquos configuration can be exported into a webpartfile

We scripted the extraction from the dev integration

webpart files are treated like code and checked into TFS for version control

Script then applies the new webpart files to the target environment

Workflows

Workflows can be built using SharePoint Designer Visual Studio or third-party tools (Nintex or K2 primarily)

Visual Studio workflow projects are automatically packaged as WSP solution files Simply deploy the WSP file to the other environments

SharePoint Designer workflows need to be deployed using SharePoint Designer This means you need SPD access to production which is not always possible

You can load the SPD workflow into Visual Studio to package it but you lose the ability to edit it in SPD

If you use third-party tools yoursquoll need to define the process for that as well

Business Connectivity Services

BCS can be built using either SharePoint Designer or Visual Studio Visual Studio BCS projects are automatically packaged as WSP

solution files Simply deploy the WSP file to the other environments You can also export the BDC metadata model in the BDC service

application

SharePoint Designer doesnrsquot create a WSP and it doesnrsquot make a complete BDC metadata model You need to export and import using SharePoint Designer

In both cases you still need to deal with connection and configuration information

Future Directions

Visual Studio Lab Management

Integrates the management of HyperV environments in with Visual Studio and Team Foundation Server

Can automate the provisioning of lab environments for automated testing

Test failures can snapshot entire environments to make reproduction of errors much easier

Summary

Yoursquore going to have lots of SharePoint environments ndash figure out how to build them quickly and repeatable

Code and content often move in opposite directions through dev QA and Prod PowerShell script and automate to keep this simple

Agile is a great way to run projects

Continuous integration with automated testing is key to its success

There are lots of parts of SharePoint that you donrsquot code through Visual Studio Figure out how you move those through your environment

Other Topics

Site Design

Information architecture

Wireframes

Creative designs ndash Mobile first

Catalogs deep dive

Site build PowerShell scripts

Team Foundation Server and Application Lifecycle Management

Starting a new project

Managing content authoring

Site Improve tool

SEO Optimizations

Analytics options

Retaining Page Ranks with permanent redirects (301)

Azure SharePoint Hosting

Q amp A

Session Evaluations

Go to Evaluations on the home page of wwwcollabconorg

It is important to get your feedback

Please fill out evaluations for all the sessions you attend

Following the conference a random drawing from all completed evaluations will be selected

The winner will receive a $250 Future Shop gift card valid online or in store

Page 68: Web Content Management - CollabCon 2015 - Web... · Performances Complete Works ... Friendly URL An SEO friendly URL defined in the term store for a page, rather than ... What’s

Search

Catalogs

Three main steps

Enabling lists or libraries as catalogs

Creating the catalog connection

Building the page layouts to display the category rollups or item detail pages

Enabling Catalogs

Doesnrsquot have to be a list can be a document Images or Pages library

Experimenting using a Pages library

This gives us draft and published states that lists donrsquot support

Preview and editing is easier

Fairly simple script to do this

Catalog connections are more complex

Create the connection

Fix up the Term Store

Create the Category and Item page layouts and pages

SEO Enhancements

Friendly URLs

Home page redirects

XML sitemaps automatically generated and updated

Custom SEO properties

Usage Analytics

Built for scale from the ground up Detail data rolled up every 15 days amp anonymized Daily events purged every 15 days monthly events after 3 years Lifetime counts always retained

Counts views amp unique itemsday Shows recent (2-weeks) and lifetime count Trims least visited content Pushes aggregate data to reporting database

Drives recommendations capabilities on content Calculations injected into search index as sortable managed properties Deep integration with search engine Can influence search relevance based on content usage

Variations and Multi-Lingual

Export and import content for translation in XLIFF format

Pages

Labels

List items

Navigation

Bing translation service comes with active SharePoint 2013 license

Adaptive Web Design

Adaptive vs Responsive

Adaptive

Fixed breakpoints‒ Desktop gt 980 px

‒ Table portrait gt 768 px

‒ Phone to tablet gt 480 px lt 768 px

‒ Smartphone lt 480 px

Responsive

No fixed breakpoints

Design fluidly adapts to whatever width the browser is

We generally do a hybrid approach with responsive design in the under 768 pixel situation

Design Approaches in SharePoint

Adaptive Design through CSS media queries

Broader standards approach used outside of SharePoint

Keeps a single master page and CSS

Some unnecessary components may still be loaded

Device Channels SharePoint specific approach

Assign different master pages to different device channels

Rules define what devices use which channels

Device Channel Panels can also target content to channels

Hybrid here can also make sense Device channels can be used to remove unnecessary items from the page payload

Our Adaptive Approach

Built using the Twitter Boostrap CSS framework

twittergithubcombootstrap

Provides a responsive design framework for supporting PC Mac tablet and mobile

We enhanced to provide better touch navigation support

Can be leveraged in the master page page layouts and display templates

Incorporated into the SharePoint 2013 Design Master

HTML based master page that can be edited with any tool

SharePoint converts to a master page when uploaded or saved

Additional Open Source Tools and Resources

HTML CSS JavaScript jQuery

httpwwww3schoolscom

httpgetbootstrapcom

httphandlebarsjscom

httpknockoutjscom

httpsangularjsorg

httpmomentjscom

Content Search Web Part

Web part is configured to return search results

Executed as client-side code in the browser

Pair of display templates map the data returned to HTML

Control template for the overall structure

Item template for each item returned

HTML Designer Manager files are compiled to JavaScript

REST Search and Handlebars

Search is accessible through REST calls

httpsiteurl_apisearchquery

Returns results as a JSON array

Handlebars is a templating engine to format that

Conceptually similar to display templates with control and item sections

jQuery glues this all together

Steps to Experiment

F12 to get into Developer Toolbar

Set a breakpoint where the REST URL is determined

Copy the value

Paste into the REST Search test window

Experiment with the query

Adjust the Handlebars template appropriately

Search Setup

Content Sources to define and schedule the crawls

Crawl logs to review success

Search Schema to define the managed properties

Reusable Content

Snippets of HTML that can be reused throughout the site

JavaScript can be intelligent and use the URL to determine its behaviour

Makes it easy for content authors to drop pre-configured dynamic content onto pages

Topic Pages

Shows all items that match a topic

Could be hundreds of virtual pages

Only one template page

Easily customizable and SEO friendly (each topic appears to be its own page)

Content by search web part open search against a query or result source

May be able to surface the topic pages themselves as site search results

Public Health Ontario

httpwwwpublichealthontariocaenBrowseByTopicPagesTopicaspxk=Influenza20InformationByTopic22Influenza22

Ontario Association of Childrens Aid Societies

Application Lifecycle Management

Purpose

How do we build a solid SharePoint development environment for the enterprise

How do a number of developers work together on a SharePoint project

How does code and content move through a dev test and production lifecycle

What is Agile and Continuous Integration and why is it important

Visual Studio and Team Foundation Server

Visual Studio 2010 is the development platform for coding on SharePoint 2010

Team Foundation Server integrates with Visual Studio to provide a repository for code test and other project artifacts

It facilitates teamwork by providing a common place for developers to work together

Provisioning SharePoint Farms

Provisioning SharePoint Farms

Every developer needs their own complete SharePoint farm

Teams need a dev integration farm to bring their work together on

A full architecture needs QA and production farms as well

Envision IT Virtualization Architecture

Developer VM Template

SharePoint Server 2010 Enterprise

SP1 and August CU

Visual Studio 2010 Premium SP1

Office 2010 Professional Plus SP1

SharePoint Designer 2010 SP1

Fiddler

SQL Server 2008 R2 SP1

Creating a new Developer VM

Open System Centre Virtual Machine Manager

Create Virtual Machine

Choose the Developer VM template

Set the virtual machine name and options

Create and start the VM

Creating a new Developer VM - Step 2

Developer RDPs to their new VM Complete the SQL Server installation

Create the default instance Set the service account(s) Set the authentication mode and server administrators

Update the AutoSPInstallerInputxml file Set the machine name for the default sites and database server Set the service account passwords

Run the AutoSPInstallerLaunch batch file Do a Health check review

Creating a new Developer VM - Step 3

Start Visual Studio

Connect to the Team Foundation Server

Setup your workspaces

Use a standard naming convention across your team

CDevelopmentTFSCollection

Other Environments

Dev Integration QA and Production can all be built using AutoSPInstall

Donrsquot need or want the Visual Studio or Office tools on these servers

We have a base template we use for dev integration servers

QA should match the Prod architecture as closely as possible

High availability with load balancing clustered SQL app servers DMZ hardening Internet publishing

Agile Development

Agile with Team Foundation Server

Creating Your TFS Project

Open Visual Studio

Make sure you are connected to the right Team Project Collection

In Team Explorer right-click the top collection and create a new Team Project

Use the Scrum 10 template

Go into the Areas and Iterations Delete the extraneous releases and sprints

Create a product backlog iteration

Start adding your stories and tasks

Continuous Integration

Continuous Integration

Automated Testing

SharePoint Site Elements

Site structure Site columns content types subsites lists libraries

Branding elements Master pages layouts CSS XSLT supporting images

Custom web parts Page and site content Web part instances Search Workflows Business Connectivity Services Managed Metadata

SharePoint Site Elements ndash Part 2

Access Excel Word Visio

PerformancePoint

Document conversions

Timer jobs

Secure Store Service

User profiles

Site Structure

bull Site columns

bull Define the fields that are used by content types

bull Content types

bull Defines collections of site columns for different types of content

bull Subsites

bull The hierarchy of sites that make up the site collection

bull Lists and Libraries

bull The lists and libraries for each subsite

Site Structure ndash Part 2

Site columns and content types can be programmatically or manually created If they are going to be used in multiple site collections they should be

programmatically created

If a single site collection they can be created manually in a master site collection

GUIDs cannot be manually set and code may need them to be consistent

You can create them manually in SharePoint save the site as a template and import them into Visual Studio to create a proper WSP package

Site Structure ndash Part 3

Site structure can also be done either programmatically or manually

Many sites are complex and it is error prone to create manually

We use our own SiteModelBuilder tool to create the site structure

Site Structure ndash Part 4

For all site structure elements changes can also be manual or programmatic It is useful to be able to delete the whole site collection and recreate it

programmatically As soon as content starts being authored in SharePoint it becomes difficult

or impossible to do that

After content authoring has started Site column and content type changes need to be programmed explicitly

(you canrsquot just drop the content type and recreate it) Site structure changes are usually done manually at this point Changes need to be backed up and restored

Change Management

Page and Site Content

Page and site content is entered directly into SharePoint by the content authors Web pages images PDFs list content etc This should be done in the master site separate from where dev integration is

happening Care needs to be taken with this site once authors start working Make sure it is part of your production backup plan

Periodically back it up and restore it to the dev integration and developer VMs

Alternatively script the export and import Ultimately it will be backed up and restored to the QA and production

farms

Change Management

Change Management

Change Management

Change Management

Web part instances

Web parts ultimately get placed on pages

The configuration of the web parts can often get quite complex

You may want to disable editing of web parts for general content authors

They end up in a grey zone between code and content

Web part instances ndash Part 2

We created our own internal tool to export and import web parts

Each web partrsquos configuration can be exported into a webpartfile

We scripted the extraction from the dev integration

webpart files are treated like code and checked into TFS for version control

Script then applies the new webpart files to the target environment

Workflows

Workflows can be built using SharePoint Designer Visual Studio or third-party tools (Nintex or K2 primarily)

Visual Studio workflow projects are automatically packaged as WSP solution files Simply deploy the WSP file to the other environments

SharePoint Designer workflows need to be deployed using SharePoint Designer This means you need SPD access to production which is not always possible

You can load the SPD workflow into Visual Studio to package it but you lose the ability to edit it in SPD

If you use third-party tools yoursquoll need to define the process for that as well

Business Connectivity Services

BCS can be built using either SharePoint Designer or Visual Studio Visual Studio BCS projects are automatically packaged as WSP

solution files Simply deploy the WSP file to the other environments You can also export the BDC metadata model in the BDC service

application

SharePoint Designer doesnrsquot create a WSP and it doesnrsquot make a complete BDC metadata model You need to export and import using SharePoint Designer

In both cases you still need to deal with connection and configuration information

Future Directions

Visual Studio Lab Management

Integrates the management of HyperV environments in with Visual Studio and Team Foundation Server

Can automate the provisioning of lab environments for automated testing

Test failures can snapshot entire environments to make reproduction of errors much easier

Summary

Yoursquore going to have lots of SharePoint environments ndash figure out how to build them quickly and repeatable

Code and content often move in opposite directions through dev QA and Prod PowerShell script and automate to keep this simple

Agile is a great way to run projects

Continuous integration with automated testing is key to its success

There are lots of parts of SharePoint that you donrsquot code through Visual Studio Figure out how you move those through your environment

Other Topics

Site Design

Information architecture

Wireframes

Creative designs ndash Mobile first

Catalogs deep dive

Site build PowerShell scripts

Team Foundation Server and Application Lifecycle Management

Starting a new project

Managing content authoring

Site Improve tool

SEO Optimizations

Analytics options

Retaining Page Ranks with permanent redirects (301)

Azure SharePoint Hosting

Q amp A

Session Evaluations

Go to Evaluations on the home page of wwwcollabconorg

It is important to get your feedback

Please fill out evaluations for all the sessions you attend

Following the conference a random drawing from all completed evaluations will be selected

The winner will receive a $250 Future Shop gift card valid online or in store

Page 69: Web Content Management - CollabCon 2015 - Web... · Performances Complete Works ... Friendly URL An SEO friendly URL defined in the term store for a page, rather than ... What’s

Catalogs

Three main steps

Enabling lists or libraries as catalogs

Creating the catalog connection

Building the page layouts to display the category rollups or item detail pages

Enabling Catalogs

Doesnrsquot have to be a list can be a document Images or Pages library

Experimenting using a Pages library

This gives us draft and published states that lists donrsquot support

Preview and editing is easier

Fairly simple script to do this

Catalog connections are more complex

Create the connection

Fix up the Term Store

Create the Category and Item page layouts and pages

SEO Enhancements

Friendly URLs

Home page redirects

XML sitemaps automatically generated and updated

Custom SEO properties

Usage Analytics

Built for scale from the ground up Detail data rolled up every 15 days amp anonymized Daily events purged every 15 days monthly events after 3 years Lifetime counts always retained

Counts views amp unique itemsday Shows recent (2-weeks) and lifetime count Trims least visited content Pushes aggregate data to reporting database

Drives recommendations capabilities on content Calculations injected into search index as sortable managed properties Deep integration with search engine Can influence search relevance based on content usage

Variations and Multi-Lingual

Export and import content for translation in XLIFF format

Pages

Labels

List items

Navigation

Bing translation service comes with active SharePoint 2013 license

Adaptive Web Design

Adaptive vs Responsive

Adaptive

Fixed breakpoints‒ Desktop gt 980 px

‒ Table portrait gt 768 px

‒ Phone to tablet gt 480 px lt 768 px

‒ Smartphone lt 480 px

Responsive

No fixed breakpoints

Design fluidly adapts to whatever width the browser is

We generally do a hybrid approach with responsive design in the under 768 pixel situation

Design Approaches in SharePoint

Adaptive Design through CSS media queries

Broader standards approach used outside of SharePoint

Keeps a single master page and CSS

Some unnecessary components may still be loaded

Device Channels SharePoint specific approach

Assign different master pages to different device channels

Rules define what devices use which channels

Device Channel Panels can also target content to channels

Hybrid here can also make sense Device channels can be used to remove unnecessary items from the page payload

Our Adaptive Approach

Built using the Twitter Boostrap CSS framework

twittergithubcombootstrap

Provides a responsive design framework for supporting PC Mac tablet and mobile

We enhanced to provide better touch navigation support

Can be leveraged in the master page page layouts and display templates

Incorporated into the SharePoint 2013 Design Master

HTML based master page that can be edited with any tool

SharePoint converts to a master page when uploaded or saved

Additional Open Source Tools and Resources

HTML CSS JavaScript jQuery

httpwwww3schoolscom

httpgetbootstrapcom

httphandlebarsjscom

httpknockoutjscom

httpsangularjsorg

httpmomentjscom

Content Search Web Part

Web part is configured to return search results

Executed as client-side code in the browser

Pair of display templates map the data returned to HTML

Control template for the overall structure

Item template for each item returned

HTML Designer Manager files are compiled to JavaScript

REST Search and Handlebars

Search is accessible through REST calls

httpsiteurl_apisearchquery

Returns results as a JSON array

Handlebars is a templating engine to format that

Conceptually similar to display templates with control and item sections

jQuery glues this all together

Steps to Experiment

F12 to get into Developer Toolbar

Set a breakpoint where the REST URL is determined

Copy the value

Paste into the REST Search test window

Experiment with the query

Adjust the Handlebars template appropriately

Search Setup

Content Sources to define and schedule the crawls

Crawl logs to review success

Search Schema to define the managed properties

Reusable Content

Snippets of HTML that can be reused throughout the site

JavaScript can be intelligent and use the URL to determine its behaviour

Makes it easy for content authors to drop pre-configured dynamic content onto pages

Topic Pages

Shows all items that match a topic

Could be hundreds of virtual pages

Only one template page

Easily customizable and SEO friendly (each topic appears to be its own page)

Content by search web part open search against a query or result source

May be able to surface the topic pages themselves as site search results

Public Health Ontario

httpwwwpublichealthontariocaenBrowseByTopicPagesTopicaspxk=Influenza20InformationByTopic22Influenza22

Ontario Association of Childrens Aid Societies

Application Lifecycle Management

Purpose

How do we build a solid SharePoint development environment for the enterprise

How do a number of developers work together on a SharePoint project

How does code and content move through a dev test and production lifecycle

What is Agile and Continuous Integration and why is it important

Visual Studio and Team Foundation Server

Visual Studio 2010 is the development platform for coding on SharePoint 2010

Team Foundation Server integrates with Visual Studio to provide a repository for code test and other project artifacts

It facilitates teamwork by providing a common place for developers to work together

Provisioning SharePoint Farms

Provisioning SharePoint Farms

Every developer needs their own complete SharePoint farm

Teams need a dev integration farm to bring their work together on

A full architecture needs QA and production farms as well

Envision IT Virtualization Architecture

Developer VM Template

SharePoint Server 2010 Enterprise

SP1 and August CU

Visual Studio 2010 Premium SP1

Office 2010 Professional Plus SP1

SharePoint Designer 2010 SP1

Fiddler

SQL Server 2008 R2 SP1

Creating a new Developer VM

Open System Centre Virtual Machine Manager

Create Virtual Machine

Choose the Developer VM template

Set the virtual machine name and options

Create and start the VM

Creating a new Developer VM - Step 2

Developer RDPs to their new VM Complete the SQL Server installation

Create the default instance Set the service account(s) Set the authentication mode and server administrators

Update the AutoSPInstallerInputxml file Set the machine name for the default sites and database server Set the service account passwords

Run the AutoSPInstallerLaunch batch file Do a Health check review

Creating a new Developer VM - Step 3

Start Visual Studio

Connect to the Team Foundation Server

Setup your workspaces

Use a standard naming convention across your team

CDevelopmentTFSCollection

Other Environments

Dev Integration QA and Production can all be built using AutoSPInstall

Donrsquot need or want the Visual Studio or Office tools on these servers

We have a base template we use for dev integration servers

QA should match the Prod architecture as closely as possible

High availability with load balancing clustered SQL app servers DMZ hardening Internet publishing

Agile Development

Agile with Team Foundation Server

Creating Your TFS Project

Open Visual Studio

Make sure you are connected to the right Team Project Collection

In Team Explorer right-click the top collection and create a new Team Project

Use the Scrum 10 template

Go into the Areas and Iterations Delete the extraneous releases and sprints

Create a product backlog iteration

Start adding your stories and tasks

Continuous Integration

Continuous Integration

Automated Testing

SharePoint Site Elements

Site structure Site columns content types subsites lists libraries

Branding elements Master pages layouts CSS XSLT supporting images

Custom web parts Page and site content Web part instances Search Workflows Business Connectivity Services Managed Metadata

SharePoint Site Elements ndash Part 2

Access Excel Word Visio

PerformancePoint

Document conversions

Timer jobs

Secure Store Service

User profiles

Site Structure

bull Site columns

bull Define the fields that are used by content types

bull Content types

bull Defines collections of site columns for different types of content

bull Subsites

bull The hierarchy of sites that make up the site collection

bull Lists and Libraries

bull The lists and libraries for each subsite

Site Structure ndash Part 2

Site columns and content types can be programmatically or manually created If they are going to be used in multiple site collections they should be

programmatically created

If a single site collection they can be created manually in a master site collection

GUIDs cannot be manually set and code may need them to be consistent

You can create them manually in SharePoint save the site as a template and import them into Visual Studio to create a proper WSP package

Site Structure ndash Part 3

Site structure can also be done either programmatically or manually

Many sites are complex and it is error prone to create manually

We use our own SiteModelBuilder tool to create the site structure

Site Structure ndash Part 4

For all site structure elements changes can also be manual or programmatic It is useful to be able to delete the whole site collection and recreate it

programmatically As soon as content starts being authored in SharePoint it becomes difficult

or impossible to do that

After content authoring has started Site column and content type changes need to be programmed explicitly

(you canrsquot just drop the content type and recreate it) Site structure changes are usually done manually at this point Changes need to be backed up and restored

Change Management

Page and Site Content

Page and site content is entered directly into SharePoint by the content authors Web pages images PDFs list content etc This should be done in the master site separate from where dev integration is

happening Care needs to be taken with this site once authors start working Make sure it is part of your production backup plan

Periodically back it up and restore it to the dev integration and developer VMs

Alternatively script the export and import Ultimately it will be backed up and restored to the QA and production

farms

Change Management

Change Management

Change Management

Change Management

Web part instances

Web parts ultimately get placed on pages

The configuration of the web parts can often get quite complex

You may want to disable editing of web parts for general content authors

They end up in a grey zone between code and content

Web part instances ndash Part 2

We created our own internal tool to export and import web parts

Each web partrsquos configuration can be exported into a webpartfile

We scripted the extraction from the dev integration

webpart files are treated like code and checked into TFS for version control

Script then applies the new webpart files to the target environment

Workflows

Workflows can be built using SharePoint Designer Visual Studio or third-party tools (Nintex or K2 primarily)

Visual Studio workflow projects are automatically packaged as WSP solution files Simply deploy the WSP file to the other environments

SharePoint Designer workflows need to be deployed using SharePoint Designer This means you need SPD access to production which is not always possible

You can load the SPD workflow into Visual Studio to package it but you lose the ability to edit it in SPD

If you use third-party tools yoursquoll need to define the process for that as well

Business Connectivity Services

BCS can be built using either SharePoint Designer or Visual Studio Visual Studio BCS projects are automatically packaged as WSP

solution files Simply deploy the WSP file to the other environments You can also export the BDC metadata model in the BDC service

application

SharePoint Designer doesnrsquot create a WSP and it doesnrsquot make a complete BDC metadata model You need to export and import using SharePoint Designer

In both cases you still need to deal with connection and configuration information

Future Directions

Visual Studio Lab Management

Integrates the management of HyperV environments in with Visual Studio and Team Foundation Server

Can automate the provisioning of lab environments for automated testing

Test failures can snapshot entire environments to make reproduction of errors much easier

Summary

Yoursquore going to have lots of SharePoint environments ndash figure out how to build them quickly and repeatable

Code and content often move in opposite directions through dev QA and Prod PowerShell script and automate to keep this simple

Agile is a great way to run projects

Continuous integration with automated testing is key to its success

There are lots of parts of SharePoint that you donrsquot code through Visual Studio Figure out how you move those through your environment

Other Topics

Site Design

Information architecture

Wireframes

Creative designs ndash Mobile first

Catalogs deep dive

Site build PowerShell scripts

Team Foundation Server and Application Lifecycle Management

Starting a new project

Managing content authoring

Site Improve tool

SEO Optimizations

Analytics options

Retaining Page Ranks with permanent redirects (301)

Azure SharePoint Hosting

Q amp A

Session Evaluations

Go to Evaluations on the home page of wwwcollabconorg

It is important to get your feedback

Please fill out evaluations for all the sessions you attend

Following the conference a random drawing from all completed evaluations will be selected

The winner will receive a $250 Future Shop gift card valid online or in store

Page 70: Web Content Management - CollabCon 2015 - Web... · Performances Complete Works ... Friendly URL An SEO friendly URL defined in the term store for a page, rather than ... What’s

Enabling Catalogs

Doesnrsquot have to be a list can be a document Images or Pages library

Experimenting using a Pages library

This gives us draft and published states that lists donrsquot support

Preview and editing is easier

Fairly simple script to do this

Catalog connections are more complex

Create the connection

Fix up the Term Store

Create the Category and Item page layouts and pages

SEO Enhancements

Friendly URLs

Home page redirects

XML sitemaps automatically generated and updated

Custom SEO properties

Usage Analytics

Built for scale from the ground up Detail data rolled up every 15 days amp anonymized Daily events purged every 15 days monthly events after 3 years Lifetime counts always retained

Counts views amp unique itemsday Shows recent (2-weeks) and lifetime count Trims least visited content Pushes aggregate data to reporting database

Drives recommendations capabilities on content Calculations injected into search index as sortable managed properties Deep integration with search engine Can influence search relevance based on content usage

Variations and Multi-Lingual

Export and import content for translation in XLIFF format

Pages

Labels

List items

Navigation

Bing translation service comes with active SharePoint 2013 license

Adaptive Web Design

Adaptive vs Responsive

Adaptive

Fixed breakpoints‒ Desktop gt 980 px

‒ Table portrait gt 768 px

‒ Phone to tablet gt 480 px lt 768 px

‒ Smartphone lt 480 px

Responsive

No fixed breakpoints

Design fluidly adapts to whatever width the browser is

We generally do a hybrid approach with responsive design in the under 768 pixel situation

Design Approaches in SharePoint

Adaptive Design through CSS media queries

Broader standards approach used outside of SharePoint

Keeps a single master page and CSS

Some unnecessary components may still be loaded

Device Channels SharePoint specific approach

Assign different master pages to different device channels

Rules define what devices use which channels

Device Channel Panels can also target content to channels

Hybrid here can also make sense Device channels can be used to remove unnecessary items from the page payload

Our Adaptive Approach

Built using the Twitter Boostrap CSS framework

twittergithubcombootstrap

Provides a responsive design framework for supporting PC Mac tablet and mobile

We enhanced to provide better touch navigation support

Can be leveraged in the master page page layouts and display templates

Incorporated into the SharePoint 2013 Design Master

HTML based master page that can be edited with any tool

SharePoint converts to a master page when uploaded or saved

Additional Open Source Tools and Resources

HTML CSS JavaScript jQuery

httpwwww3schoolscom

httpgetbootstrapcom

httphandlebarsjscom

httpknockoutjscom

httpsangularjsorg

httpmomentjscom

Content Search Web Part

Web part is configured to return search results

Executed as client-side code in the browser

Pair of display templates map the data returned to HTML

Control template for the overall structure

Item template for each item returned

HTML Designer Manager files are compiled to JavaScript

REST Search and Handlebars

Search is accessible through REST calls

httpsiteurl_apisearchquery

Returns results as a JSON array

Handlebars is a templating engine to format that

Conceptually similar to display templates with control and item sections

jQuery glues this all together

Steps to Experiment

F12 to get into Developer Toolbar

Set a breakpoint where the REST URL is determined

Copy the value

Paste into the REST Search test window

Experiment with the query

Adjust the Handlebars template appropriately

Search Setup

Content Sources to define and schedule the crawls

Crawl logs to review success

Search Schema to define the managed properties

Reusable Content

Snippets of HTML that can be reused throughout the site

JavaScript can be intelligent and use the URL to determine its behaviour

Makes it easy for content authors to drop pre-configured dynamic content onto pages

Topic Pages

Shows all items that match a topic

Could be hundreds of virtual pages

Only one template page

Easily customizable and SEO friendly (each topic appears to be its own page)

Content by search web part open search against a query or result source

May be able to surface the topic pages themselves as site search results

Public Health Ontario

httpwwwpublichealthontariocaenBrowseByTopicPagesTopicaspxk=Influenza20InformationByTopic22Influenza22

Ontario Association of Childrens Aid Societies

Application Lifecycle Management

Purpose

How do we build a solid SharePoint development environment for the enterprise

How do a number of developers work together on a SharePoint project

How does code and content move through a dev test and production lifecycle

What is Agile and Continuous Integration and why is it important

Visual Studio and Team Foundation Server

Visual Studio 2010 is the development platform for coding on SharePoint 2010

Team Foundation Server integrates with Visual Studio to provide a repository for code test and other project artifacts

It facilitates teamwork by providing a common place for developers to work together

Provisioning SharePoint Farms

Provisioning SharePoint Farms

Every developer needs their own complete SharePoint farm

Teams need a dev integration farm to bring their work together on

A full architecture needs QA and production farms as well

Envision IT Virtualization Architecture

Developer VM Template

SharePoint Server 2010 Enterprise

SP1 and August CU

Visual Studio 2010 Premium SP1

Office 2010 Professional Plus SP1

SharePoint Designer 2010 SP1

Fiddler

SQL Server 2008 R2 SP1

Creating a new Developer VM

Open System Centre Virtual Machine Manager

Create Virtual Machine

Choose the Developer VM template

Set the virtual machine name and options

Create and start the VM

Creating a new Developer VM - Step 2

Developer RDPs to their new VM Complete the SQL Server installation

Create the default instance Set the service account(s) Set the authentication mode and server administrators

Update the AutoSPInstallerInputxml file Set the machine name for the default sites and database server Set the service account passwords

Run the AutoSPInstallerLaunch batch file Do a Health check review

Creating a new Developer VM - Step 3

Start Visual Studio

Connect to the Team Foundation Server

Setup your workspaces

Use a standard naming convention across your team

CDevelopmentTFSCollection

Other Environments

Dev Integration QA and Production can all be built using AutoSPInstall

Donrsquot need or want the Visual Studio or Office tools on these servers

We have a base template we use for dev integration servers

QA should match the Prod architecture as closely as possible

High availability with load balancing clustered SQL app servers DMZ hardening Internet publishing

Agile Development

Agile with Team Foundation Server

Creating Your TFS Project

Open Visual Studio

Make sure you are connected to the right Team Project Collection

In Team Explorer right-click the top collection and create a new Team Project

Use the Scrum 10 template

Go into the Areas and Iterations Delete the extraneous releases and sprints

Create a product backlog iteration

Start adding your stories and tasks

Continuous Integration

Continuous Integration

Automated Testing

SharePoint Site Elements

Site structure Site columns content types subsites lists libraries

Branding elements Master pages layouts CSS XSLT supporting images

Custom web parts Page and site content Web part instances Search Workflows Business Connectivity Services Managed Metadata

SharePoint Site Elements ndash Part 2

Access Excel Word Visio

PerformancePoint

Document conversions

Timer jobs

Secure Store Service

User profiles

Site Structure

bull Site columns

bull Define the fields that are used by content types

bull Content types

bull Defines collections of site columns for different types of content

bull Subsites

bull The hierarchy of sites that make up the site collection

bull Lists and Libraries

bull The lists and libraries for each subsite

Site Structure ndash Part 2

Site columns and content types can be programmatically or manually created If they are going to be used in multiple site collections they should be

programmatically created

If a single site collection they can be created manually in a master site collection

GUIDs cannot be manually set and code may need them to be consistent

You can create them manually in SharePoint save the site as a template and import them into Visual Studio to create a proper WSP package

Site Structure ndash Part 3

Site structure can also be done either programmatically or manually

Many sites are complex and it is error prone to create manually

We use our own SiteModelBuilder tool to create the site structure

Site Structure ndash Part 4

For all site structure elements changes can also be manual or programmatic It is useful to be able to delete the whole site collection and recreate it

programmatically As soon as content starts being authored in SharePoint it becomes difficult

or impossible to do that

After content authoring has started Site column and content type changes need to be programmed explicitly

(you canrsquot just drop the content type and recreate it) Site structure changes are usually done manually at this point Changes need to be backed up and restored

Change Management

Page and Site Content

Page and site content is entered directly into SharePoint by the content authors Web pages images PDFs list content etc This should be done in the master site separate from where dev integration is

happening Care needs to be taken with this site once authors start working Make sure it is part of your production backup plan

Periodically back it up and restore it to the dev integration and developer VMs

Alternatively script the export and import Ultimately it will be backed up and restored to the QA and production

farms

Change Management

Change Management

Change Management

Change Management

Web part instances

Web parts ultimately get placed on pages

The configuration of the web parts can often get quite complex

You may want to disable editing of web parts for general content authors

They end up in a grey zone between code and content

Web part instances ndash Part 2

We created our own internal tool to export and import web parts

Each web partrsquos configuration can be exported into a webpartfile

We scripted the extraction from the dev integration

webpart files are treated like code and checked into TFS for version control

Script then applies the new webpart files to the target environment

Workflows

Workflows can be built using SharePoint Designer Visual Studio or third-party tools (Nintex or K2 primarily)

Visual Studio workflow projects are automatically packaged as WSP solution files Simply deploy the WSP file to the other environments

SharePoint Designer workflows need to be deployed using SharePoint Designer This means you need SPD access to production which is not always possible

You can load the SPD workflow into Visual Studio to package it but you lose the ability to edit it in SPD

If you use third-party tools yoursquoll need to define the process for that as well

Business Connectivity Services

BCS can be built using either SharePoint Designer or Visual Studio Visual Studio BCS projects are automatically packaged as WSP

solution files Simply deploy the WSP file to the other environments You can also export the BDC metadata model in the BDC service

application

SharePoint Designer doesnrsquot create a WSP and it doesnrsquot make a complete BDC metadata model You need to export and import using SharePoint Designer

In both cases you still need to deal with connection and configuration information

Future Directions

Visual Studio Lab Management

Integrates the management of HyperV environments in with Visual Studio and Team Foundation Server

Can automate the provisioning of lab environments for automated testing

Test failures can snapshot entire environments to make reproduction of errors much easier

Summary

Yoursquore going to have lots of SharePoint environments ndash figure out how to build them quickly and repeatable

Code and content often move in opposite directions through dev QA and Prod PowerShell script and automate to keep this simple

Agile is a great way to run projects

Continuous integration with automated testing is key to its success

There are lots of parts of SharePoint that you donrsquot code through Visual Studio Figure out how you move those through your environment

Other Topics

Site Design

Information architecture

Wireframes

Creative designs ndash Mobile first

Catalogs deep dive

Site build PowerShell scripts

Team Foundation Server and Application Lifecycle Management

Starting a new project

Managing content authoring

Site Improve tool

SEO Optimizations

Analytics options

Retaining Page Ranks with permanent redirects (301)

Azure SharePoint Hosting

Q amp A

Session Evaluations

Go to Evaluations on the home page of wwwcollabconorg

It is important to get your feedback

Please fill out evaluations for all the sessions you attend

Following the conference a random drawing from all completed evaluations will be selected

The winner will receive a $250 Future Shop gift card valid online or in store

Page 71: Web Content Management - CollabCon 2015 - Web... · Performances Complete Works ... Friendly URL An SEO friendly URL defined in the term store for a page, rather than ... What’s

SEO Enhancements

Friendly URLs

Home page redirects

XML sitemaps automatically generated and updated

Custom SEO properties

Usage Analytics

Built for scale from the ground up Detail data rolled up every 15 days amp anonymized Daily events purged every 15 days monthly events after 3 years Lifetime counts always retained

Counts views amp unique itemsday Shows recent (2-weeks) and lifetime count Trims least visited content Pushes aggregate data to reporting database

Drives recommendations capabilities on content Calculations injected into search index as sortable managed properties Deep integration with search engine Can influence search relevance based on content usage

Variations and Multi-Lingual

Export and import content for translation in XLIFF format

Pages

Labels

List items

Navigation

Bing translation service comes with active SharePoint 2013 license

Adaptive Web Design

Adaptive vs Responsive

Adaptive

Fixed breakpoints‒ Desktop gt 980 px

‒ Table portrait gt 768 px

‒ Phone to tablet gt 480 px lt 768 px

‒ Smartphone lt 480 px

Responsive

No fixed breakpoints

Design fluidly adapts to whatever width the browser is

We generally do a hybrid approach with responsive design in the under 768 pixel situation

Design Approaches in SharePoint

Adaptive Design through CSS media queries

Broader standards approach used outside of SharePoint

Keeps a single master page and CSS

Some unnecessary components may still be loaded

Device Channels SharePoint specific approach

Assign different master pages to different device channels

Rules define what devices use which channels

Device Channel Panels can also target content to channels

Hybrid here can also make sense Device channels can be used to remove unnecessary items from the page payload

Our Adaptive Approach

Built using the Twitter Boostrap CSS framework

twittergithubcombootstrap

Provides a responsive design framework for supporting PC Mac tablet and mobile

We enhanced to provide better touch navigation support

Can be leveraged in the master page page layouts and display templates

Incorporated into the SharePoint 2013 Design Master

HTML based master page that can be edited with any tool

SharePoint converts to a master page when uploaded or saved

Additional Open Source Tools and Resources

HTML CSS JavaScript jQuery

httpwwww3schoolscom

httpgetbootstrapcom

httphandlebarsjscom

httpknockoutjscom

httpsangularjsorg

httpmomentjscom

Content Search Web Part

Web part is configured to return search results

Executed as client-side code in the browser

Pair of display templates map the data returned to HTML

Control template for the overall structure

Item template for each item returned

HTML Designer Manager files are compiled to JavaScript

REST Search and Handlebars

Search is accessible through REST calls

httpsiteurl_apisearchquery

Returns results as a JSON array

Handlebars is a templating engine to format that

Conceptually similar to display templates with control and item sections

jQuery glues this all together

Steps to Experiment

F12 to get into Developer Toolbar

Set a breakpoint where the REST URL is determined

Copy the value

Paste into the REST Search test window

Experiment with the query

Adjust the Handlebars template appropriately

Search Setup

Content Sources to define and schedule the crawls

Crawl logs to review success

Search Schema to define the managed properties

Reusable Content

Snippets of HTML that can be reused throughout the site

JavaScript can be intelligent and use the URL to determine its behaviour

Makes it easy for content authors to drop pre-configured dynamic content onto pages

Topic Pages

Shows all items that match a topic

Could be hundreds of virtual pages

Only one template page

Easily customizable and SEO friendly (each topic appears to be its own page)

Content by search web part open search against a query or result source

May be able to surface the topic pages themselves as site search results

Public Health Ontario

httpwwwpublichealthontariocaenBrowseByTopicPagesTopicaspxk=Influenza20InformationByTopic22Influenza22

Ontario Association of Childrens Aid Societies

Application Lifecycle Management

Purpose

How do we build a solid SharePoint development environment for the enterprise

How do a number of developers work together on a SharePoint project

How does code and content move through a dev test and production lifecycle

What is Agile and Continuous Integration and why is it important

Visual Studio and Team Foundation Server

Visual Studio 2010 is the development platform for coding on SharePoint 2010

Team Foundation Server integrates with Visual Studio to provide a repository for code test and other project artifacts

It facilitates teamwork by providing a common place for developers to work together

Provisioning SharePoint Farms

Provisioning SharePoint Farms

Every developer needs their own complete SharePoint farm

Teams need a dev integration farm to bring their work together on

A full architecture needs QA and production farms as well

Envision IT Virtualization Architecture

Developer VM Template

SharePoint Server 2010 Enterprise

SP1 and August CU

Visual Studio 2010 Premium SP1

Office 2010 Professional Plus SP1

SharePoint Designer 2010 SP1

Fiddler

SQL Server 2008 R2 SP1

Creating a new Developer VM

Open System Centre Virtual Machine Manager

Create Virtual Machine

Choose the Developer VM template

Set the virtual machine name and options

Create and start the VM

Creating a new Developer VM - Step 2

Developer RDPs to their new VM Complete the SQL Server installation

Create the default instance Set the service account(s) Set the authentication mode and server administrators

Update the AutoSPInstallerInputxml file Set the machine name for the default sites and database server Set the service account passwords

Run the AutoSPInstallerLaunch batch file Do a Health check review

Creating a new Developer VM - Step 3

Start Visual Studio

Connect to the Team Foundation Server

Setup your workspaces

Use a standard naming convention across your team

CDevelopmentTFSCollection

Other Environments

Dev Integration QA and Production can all be built using AutoSPInstall

Donrsquot need or want the Visual Studio or Office tools on these servers

We have a base template we use for dev integration servers

QA should match the Prod architecture as closely as possible

High availability with load balancing clustered SQL app servers DMZ hardening Internet publishing

Agile Development

Agile with Team Foundation Server

Creating Your TFS Project

Open Visual Studio

Make sure you are connected to the right Team Project Collection

In Team Explorer right-click the top collection and create a new Team Project

Use the Scrum 10 template

Go into the Areas and Iterations Delete the extraneous releases and sprints

Create a product backlog iteration

Start adding your stories and tasks

Continuous Integration

Continuous Integration

Automated Testing

SharePoint Site Elements

Site structure Site columns content types subsites lists libraries

Branding elements Master pages layouts CSS XSLT supporting images

Custom web parts Page and site content Web part instances Search Workflows Business Connectivity Services Managed Metadata

SharePoint Site Elements ndash Part 2

Access Excel Word Visio

PerformancePoint

Document conversions

Timer jobs

Secure Store Service

User profiles

Site Structure

bull Site columns

bull Define the fields that are used by content types

bull Content types

bull Defines collections of site columns for different types of content

bull Subsites

bull The hierarchy of sites that make up the site collection

bull Lists and Libraries

bull The lists and libraries for each subsite

Site Structure ndash Part 2

Site columns and content types can be programmatically or manually created If they are going to be used in multiple site collections they should be

programmatically created

If a single site collection they can be created manually in a master site collection

GUIDs cannot be manually set and code may need them to be consistent

You can create them manually in SharePoint save the site as a template and import them into Visual Studio to create a proper WSP package

Site Structure ndash Part 3

Site structure can also be done either programmatically or manually

Many sites are complex and it is error prone to create manually

We use our own SiteModelBuilder tool to create the site structure

Site Structure ndash Part 4

For all site structure elements changes can also be manual or programmatic It is useful to be able to delete the whole site collection and recreate it

programmatically As soon as content starts being authored in SharePoint it becomes difficult

or impossible to do that

After content authoring has started Site column and content type changes need to be programmed explicitly

(you canrsquot just drop the content type and recreate it) Site structure changes are usually done manually at this point Changes need to be backed up and restored

Change Management

Page and Site Content

Page and site content is entered directly into SharePoint by the content authors Web pages images PDFs list content etc This should be done in the master site separate from where dev integration is

happening Care needs to be taken with this site once authors start working Make sure it is part of your production backup plan

Periodically back it up and restore it to the dev integration and developer VMs

Alternatively script the export and import Ultimately it will be backed up and restored to the QA and production

farms

Change Management

Change Management

Change Management

Change Management

Web part instances

Web parts ultimately get placed on pages

The configuration of the web parts can often get quite complex

You may want to disable editing of web parts for general content authors

They end up in a grey zone between code and content

Web part instances ndash Part 2

We created our own internal tool to export and import web parts

Each web partrsquos configuration can be exported into a webpartfile

We scripted the extraction from the dev integration

webpart files are treated like code and checked into TFS for version control

Script then applies the new webpart files to the target environment

Workflows

Workflows can be built using SharePoint Designer Visual Studio or third-party tools (Nintex or K2 primarily)

Visual Studio workflow projects are automatically packaged as WSP solution files Simply deploy the WSP file to the other environments

SharePoint Designer workflows need to be deployed using SharePoint Designer This means you need SPD access to production which is not always possible

You can load the SPD workflow into Visual Studio to package it but you lose the ability to edit it in SPD

If you use third-party tools yoursquoll need to define the process for that as well

Business Connectivity Services

BCS can be built using either SharePoint Designer or Visual Studio Visual Studio BCS projects are automatically packaged as WSP

solution files Simply deploy the WSP file to the other environments You can also export the BDC metadata model in the BDC service

application

SharePoint Designer doesnrsquot create a WSP and it doesnrsquot make a complete BDC metadata model You need to export and import using SharePoint Designer

In both cases you still need to deal with connection and configuration information

Future Directions

Visual Studio Lab Management

Integrates the management of HyperV environments in with Visual Studio and Team Foundation Server

Can automate the provisioning of lab environments for automated testing

Test failures can snapshot entire environments to make reproduction of errors much easier

Summary

Yoursquore going to have lots of SharePoint environments ndash figure out how to build them quickly and repeatable

Code and content often move in opposite directions through dev QA and Prod PowerShell script and automate to keep this simple

Agile is a great way to run projects

Continuous integration with automated testing is key to its success

There are lots of parts of SharePoint that you donrsquot code through Visual Studio Figure out how you move those through your environment

Other Topics

Site Design

Information architecture

Wireframes

Creative designs ndash Mobile first

Catalogs deep dive

Site build PowerShell scripts

Team Foundation Server and Application Lifecycle Management

Starting a new project

Managing content authoring

Site Improve tool

SEO Optimizations

Analytics options

Retaining Page Ranks with permanent redirects (301)

Azure SharePoint Hosting

Q amp A

Session Evaluations

Go to Evaluations on the home page of wwwcollabconorg

It is important to get your feedback

Please fill out evaluations for all the sessions you attend

Following the conference a random drawing from all completed evaluations will be selected

The winner will receive a $250 Future Shop gift card valid online or in store

Page 72: Web Content Management - CollabCon 2015 - Web... · Performances Complete Works ... Friendly URL An SEO friendly URL defined in the term store for a page, rather than ... What’s

Usage Analytics

Built for scale from the ground up Detail data rolled up every 15 days amp anonymized Daily events purged every 15 days monthly events after 3 years Lifetime counts always retained

Counts views amp unique itemsday Shows recent (2-weeks) and lifetime count Trims least visited content Pushes aggregate data to reporting database

Drives recommendations capabilities on content Calculations injected into search index as sortable managed properties Deep integration with search engine Can influence search relevance based on content usage

Variations and Multi-Lingual

Export and import content for translation in XLIFF format

Pages

Labels

List items

Navigation

Bing translation service comes with active SharePoint 2013 license

Adaptive Web Design

Adaptive vs Responsive

Adaptive

Fixed breakpoints‒ Desktop gt 980 px

‒ Table portrait gt 768 px

‒ Phone to tablet gt 480 px lt 768 px

‒ Smartphone lt 480 px

Responsive

No fixed breakpoints

Design fluidly adapts to whatever width the browser is

We generally do a hybrid approach with responsive design in the under 768 pixel situation

Design Approaches in SharePoint

Adaptive Design through CSS media queries

Broader standards approach used outside of SharePoint

Keeps a single master page and CSS

Some unnecessary components may still be loaded

Device Channels SharePoint specific approach

Assign different master pages to different device channels

Rules define what devices use which channels

Device Channel Panels can also target content to channels

Hybrid here can also make sense Device channels can be used to remove unnecessary items from the page payload

Our Adaptive Approach

Built using the Twitter Boostrap CSS framework

twittergithubcombootstrap

Provides a responsive design framework for supporting PC Mac tablet and mobile

We enhanced to provide better touch navigation support

Can be leveraged in the master page page layouts and display templates

Incorporated into the SharePoint 2013 Design Master

HTML based master page that can be edited with any tool

SharePoint converts to a master page when uploaded or saved

Additional Open Source Tools and Resources

HTML CSS JavaScript jQuery

httpwwww3schoolscom

httpgetbootstrapcom

httphandlebarsjscom

httpknockoutjscom

httpsangularjsorg

httpmomentjscom

Content Search Web Part

Web part is configured to return search results

Executed as client-side code in the browser

Pair of display templates map the data returned to HTML

Control template for the overall structure

Item template for each item returned

HTML Designer Manager files are compiled to JavaScript

REST Search and Handlebars

Search is accessible through REST calls

httpsiteurl_apisearchquery

Returns results as a JSON array

Handlebars is a templating engine to format that

Conceptually similar to display templates with control and item sections

jQuery glues this all together

Steps to Experiment

F12 to get into Developer Toolbar

Set a breakpoint where the REST URL is determined

Copy the value

Paste into the REST Search test window

Experiment with the query

Adjust the Handlebars template appropriately

Search Setup

Content Sources to define and schedule the crawls

Crawl logs to review success

Search Schema to define the managed properties

Reusable Content

Snippets of HTML that can be reused throughout the site

JavaScript can be intelligent and use the URL to determine its behaviour

Makes it easy for content authors to drop pre-configured dynamic content onto pages

Topic Pages

Shows all items that match a topic

Could be hundreds of virtual pages

Only one template page

Easily customizable and SEO friendly (each topic appears to be its own page)

Content by search web part open search against a query or result source

May be able to surface the topic pages themselves as site search results

Public Health Ontario

httpwwwpublichealthontariocaenBrowseByTopicPagesTopicaspxk=Influenza20InformationByTopic22Influenza22

Ontario Association of Childrens Aid Societies

Application Lifecycle Management

Purpose

How do we build a solid SharePoint development environment for the enterprise

How do a number of developers work together on a SharePoint project

How does code and content move through a dev test and production lifecycle

What is Agile and Continuous Integration and why is it important

Visual Studio and Team Foundation Server

Visual Studio 2010 is the development platform for coding on SharePoint 2010

Team Foundation Server integrates with Visual Studio to provide a repository for code test and other project artifacts

It facilitates teamwork by providing a common place for developers to work together

Provisioning SharePoint Farms

Provisioning SharePoint Farms

Every developer needs their own complete SharePoint farm

Teams need a dev integration farm to bring their work together on

A full architecture needs QA and production farms as well

Envision IT Virtualization Architecture

Developer VM Template

SharePoint Server 2010 Enterprise

SP1 and August CU

Visual Studio 2010 Premium SP1

Office 2010 Professional Plus SP1

SharePoint Designer 2010 SP1

Fiddler

SQL Server 2008 R2 SP1

Creating a new Developer VM

Open System Centre Virtual Machine Manager

Create Virtual Machine

Choose the Developer VM template

Set the virtual machine name and options

Create and start the VM

Creating a new Developer VM - Step 2

Developer RDPs to their new VM Complete the SQL Server installation

Create the default instance Set the service account(s) Set the authentication mode and server administrators

Update the AutoSPInstallerInputxml file Set the machine name for the default sites and database server Set the service account passwords

Run the AutoSPInstallerLaunch batch file Do a Health check review

Creating a new Developer VM - Step 3

Start Visual Studio

Connect to the Team Foundation Server

Setup your workspaces

Use a standard naming convention across your team

CDevelopmentTFSCollection

Other Environments

Dev Integration QA and Production can all be built using AutoSPInstall

Donrsquot need or want the Visual Studio or Office tools on these servers

We have a base template we use for dev integration servers

QA should match the Prod architecture as closely as possible

High availability with load balancing clustered SQL app servers DMZ hardening Internet publishing

Agile Development

Agile with Team Foundation Server

Creating Your TFS Project

Open Visual Studio

Make sure you are connected to the right Team Project Collection

In Team Explorer right-click the top collection and create a new Team Project

Use the Scrum 10 template

Go into the Areas and Iterations Delete the extraneous releases and sprints

Create a product backlog iteration

Start adding your stories and tasks

Continuous Integration

Continuous Integration

Automated Testing

SharePoint Site Elements

Site structure Site columns content types subsites lists libraries

Branding elements Master pages layouts CSS XSLT supporting images

Custom web parts Page and site content Web part instances Search Workflows Business Connectivity Services Managed Metadata

SharePoint Site Elements ndash Part 2

Access Excel Word Visio

PerformancePoint

Document conversions

Timer jobs

Secure Store Service

User profiles

Site Structure

bull Site columns

bull Define the fields that are used by content types

bull Content types

bull Defines collections of site columns for different types of content

bull Subsites

bull The hierarchy of sites that make up the site collection

bull Lists and Libraries

bull The lists and libraries for each subsite

Site Structure ndash Part 2

Site columns and content types can be programmatically or manually created If they are going to be used in multiple site collections they should be

programmatically created

If a single site collection they can be created manually in a master site collection

GUIDs cannot be manually set and code may need them to be consistent

You can create them manually in SharePoint save the site as a template and import them into Visual Studio to create a proper WSP package

Site Structure ndash Part 3

Site structure can also be done either programmatically or manually

Many sites are complex and it is error prone to create manually

We use our own SiteModelBuilder tool to create the site structure

Site Structure ndash Part 4

For all site structure elements changes can also be manual or programmatic It is useful to be able to delete the whole site collection and recreate it

programmatically As soon as content starts being authored in SharePoint it becomes difficult

or impossible to do that

After content authoring has started Site column and content type changes need to be programmed explicitly

(you canrsquot just drop the content type and recreate it) Site structure changes are usually done manually at this point Changes need to be backed up and restored

Change Management

Page and Site Content

Page and site content is entered directly into SharePoint by the content authors Web pages images PDFs list content etc This should be done in the master site separate from where dev integration is

happening Care needs to be taken with this site once authors start working Make sure it is part of your production backup plan

Periodically back it up and restore it to the dev integration and developer VMs

Alternatively script the export and import Ultimately it will be backed up and restored to the QA and production

farms

Change Management

Change Management

Change Management

Change Management

Web part instances

Web parts ultimately get placed on pages

The configuration of the web parts can often get quite complex

You may want to disable editing of web parts for general content authors

They end up in a grey zone between code and content

Web part instances ndash Part 2

We created our own internal tool to export and import web parts

Each web partrsquos configuration can be exported into a webpartfile

We scripted the extraction from the dev integration

webpart files are treated like code and checked into TFS for version control

Script then applies the new webpart files to the target environment

Workflows

Workflows can be built using SharePoint Designer Visual Studio or third-party tools (Nintex or K2 primarily)

Visual Studio workflow projects are automatically packaged as WSP solution files Simply deploy the WSP file to the other environments

SharePoint Designer workflows need to be deployed using SharePoint Designer This means you need SPD access to production which is not always possible

You can load the SPD workflow into Visual Studio to package it but you lose the ability to edit it in SPD

If you use third-party tools yoursquoll need to define the process for that as well

Business Connectivity Services

BCS can be built using either SharePoint Designer or Visual Studio Visual Studio BCS projects are automatically packaged as WSP

solution files Simply deploy the WSP file to the other environments You can also export the BDC metadata model in the BDC service

application

SharePoint Designer doesnrsquot create a WSP and it doesnrsquot make a complete BDC metadata model You need to export and import using SharePoint Designer

In both cases you still need to deal with connection and configuration information

Future Directions

Visual Studio Lab Management

Integrates the management of HyperV environments in with Visual Studio and Team Foundation Server

Can automate the provisioning of lab environments for automated testing

Test failures can snapshot entire environments to make reproduction of errors much easier

Summary

Yoursquore going to have lots of SharePoint environments ndash figure out how to build them quickly and repeatable

Code and content often move in opposite directions through dev QA and Prod PowerShell script and automate to keep this simple

Agile is a great way to run projects

Continuous integration with automated testing is key to its success

There are lots of parts of SharePoint that you donrsquot code through Visual Studio Figure out how you move those through your environment

Other Topics

Site Design

Information architecture

Wireframes

Creative designs ndash Mobile first

Catalogs deep dive

Site build PowerShell scripts

Team Foundation Server and Application Lifecycle Management

Starting a new project

Managing content authoring

Site Improve tool

SEO Optimizations

Analytics options

Retaining Page Ranks with permanent redirects (301)

Azure SharePoint Hosting

Q amp A

Session Evaluations

Go to Evaluations on the home page of wwwcollabconorg

It is important to get your feedback

Please fill out evaluations for all the sessions you attend

Following the conference a random drawing from all completed evaluations will be selected

The winner will receive a $250 Future Shop gift card valid online or in store

Page 73: Web Content Management - CollabCon 2015 - Web... · Performances Complete Works ... Friendly URL An SEO friendly URL defined in the term store for a page, rather than ... What’s

Variations and Multi-Lingual

Export and import content for translation in XLIFF format

Pages

Labels

List items

Navigation

Bing translation service comes with active SharePoint 2013 license

Adaptive Web Design

Adaptive vs Responsive

Adaptive

Fixed breakpoints‒ Desktop gt 980 px

‒ Table portrait gt 768 px

‒ Phone to tablet gt 480 px lt 768 px

‒ Smartphone lt 480 px

Responsive

No fixed breakpoints

Design fluidly adapts to whatever width the browser is

We generally do a hybrid approach with responsive design in the under 768 pixel situation

Design Approaches in SharePoint

Adaptive Design through CSS media queries

Broader standards approach used outside of SharePoint

Keeps a single master page and CSS

Some unnecessary components may still be loaded

Device Channels SharePoint specific approach

Assign different master pages to different device channels

Rules define what devices use which channels

Device Channel Panels can also target content to channels

Hybrid here can also make sense Device channels can be used to remove unnecessary items from the page payload

Our Adaptive Approach

Built using the Twitter Boostrap CSS framework

twittergithubcombootstrap

Provides a responsive design framework for supporting PC Mac tablet and mobile

We enhanced to provide better touch navigation support

Can be leveraged in the master page page layouts and display templates

Incorporated into the SharePoint 2013 Design Master

HTML based master page that can be edited with any tool

SharePoint converts to a master page when uploaded or saved

Additional Open Source Tools and Resources

HTML CSS JavaScript jQuery

httpwwww3schoolscom

httpgetbootstrapcom

httphandlebarsjscom

httpknockoutjscom

httpsangularjsorg

httpmomentjscom

Content Search Web Part

Web part is configured to return search results

Executed as client-side code in the browser

Pair of display templates map the data returned to HTML

Control template for the overall structure

Item template for each item returned

HTML Designer Manager files are compiled to JavaScript

REST Search and Handlebars

Search is accessible through REST calls

httpsiteurl_apisearchquery

Returns results as a JSON array

Handlebars is a templating engine to format that

Conceptually similar to display templates with control and item sections

jQuery glues this all together

Steps to Experiment

F12 to get into Developer Toolbar

Set a breakpoint where the REST URL is determined

Copy the value

Paste into the REST Search test window

Experiment with the query

Adjust the Handlebars template appropriately

Search Setup

Content Sources to define and schedule the crawls

Crawl logs to review success

Search Schema to define the managed properties

Reusable Content

Snippets of HTML that can be reused throughout the site

JavaScript can be intelligent and use the URL to determine its behaviour

Makes it easy for content authors to drop pre-configured dynamic content onto pages

Topic Pages

Shows all items that match a topic

Could be hundreds of virtual pages

Only one template page

Easily customizable and SEO friendly (each topic appears to be its own page)

Content by search web part open search against a query or result source

May be able to surface the topic pages themselves as site search results

Public Health Ontario

httpwwwpublichealthontariocaenBrowseByTopicPagesTopicaspxk=Influenza20InformationByTopic22Influenza22

Ontario Association of Childrens Aid Societies

Application Lifecycle Management

Purpose

How do we build a solid SharePoint development environment for the enterprise

How do a number of developers work together on a SharePoint project

How does code and content move through a dev test and production lifecycle

What is Agile and Continuous Integration and why is it important

Visual Studio and Team Foundation Server

Visual Studio 2010 is the development platform for coding on SharePoint 2010

Team Foundation Server integrates with Visual Studio to provide a repository for code test and other project artifacts

It facilitates teamwork by providing a common place for developers to work together

Provisioning SharePoint Farms

Provisioning SharePoint Farms

Every developer needs their own complete SharePoint farm

Teams need a dev integration farm to bring their work together on

A full architecture needs QA and production farms as well

Envision IT Virtualization Architecture

Developer VM Template

SharePoint Server 2010 Enterprise

SP1 and August CU

Visual Studio 2010 Premium SP1

Office 2010 Professional Plus SP1

SharePoint Designer 2010 SP1

Fiddler

SQL Server 2008 R2 SP1

Creating a new Developer VM

Open System Centre Virtual Machine Manager

Create Virtual Machine

Choose the Developer VM template

Set the virtual machine name and options

Create and start the VM

Creating a new Developer VM - Step 2

Developer RDPs to their new VM Complete the SQL Server installation

Create the default instance Set the service account(s) Set the authentication mode and server administrators

Update the AutoSPInstallerInputxml file Set the machine name for the default sites and database server Set the service account passwords

Run the AutoSPInstallerLaunch batch file Do a Health check review

Creating a new Developer VM - Step 3

Start Visual Studio

Connect to the Team Foundation Server

Setup your workspaces

Use a standard naming convention across your team

CDevelopmentTFSCollection

Other Environments

Dev Integration QA and Production can all be built using AutoSPInstall

Donrsquot need or want the Visual Studio or Office tools on these servers

We have a base template we use for dev integration servers

QA should match the Prod architecture as closely as possible

High availability with load balancing clustered SQL app servers DMZ hardening Internet publishing

Agile Development

Agile with Team Foundation Server

Creating Your TFS Project

Open Visual Studio

Make sure you are connected to the right Team Project Collection

In Team Explorer right-click the top collection and create a new Team Project

Use the Scrum 10 template

Go into the Areas and Iterations Delete the extraneous releases and sprints

Create a product backlog iteration

Start adding your stories and tasks

Continuous Integration

Continuous Integration

Automated Testing

SharePoint Site Elements

Site structure Site columns content types subsites lists libraries

Branding elements Master pages layouts CSS XSLT supporting images

Custom web parts Page and site content Web part instances Search Workflows Business Connectivity Services Managed Metadata

SharePoint Site Elements ndash Part 2

Access Excel Word Visio

PerformancePoint

Document conversions

Timer jobs

Secure Store Service

User profiles

Site Structure

bull Site columns

bull Define the fields that are used by content types

bull Content types

bull Defines collections of site columns for different types of content

bull Subsites

bull The hierarchy of sites that make up the site collection

bull Lists and Libraries

bull The lists and libraries for each subsite

Site Structure ndash Part 2

Site columns and content types can be programmatically or manually created If they are going to be used in multiple site collections they should be

programmatically created

If a single site collection they can be created manually in a master site collection

GUIDs cannot be manually set and code may need them to be consistent

You can create them manually in SharePoint save the site as a template and import them into Visual Studio to create a proper WSP package

Site Structure ndash Part 3

Site structure can also be done either programmatically or manually

Many sites are complex and it is error prone to create manually

We use our own SiteModelBuilder tool to create the site structure

Site Structure ndash Part 4

For all site structure elements changes can also be manual or programmatic It is useful to be able to delete the whole site collection and recreate it

programmatically As soon as content starts being authored in SharePoint it becomes difficult

or impossible to do that

After content authoring has started Site column and content type changes need to be programmed explicitly

(you canrsquot just drop the content type and recreate it) Site structure changes are usually done manually at this point Changes need to be backed up and restored

Change Management

Page and Site Content

Page and site content is entered directly into SharePoint by the content authors Web pages images PDFs list content etc This should be done in the master site separate from where dev integration is

happening Care needs to be taken with this site once authors start working Make sure it is part of your production backup plan

Periodically back it up and restore it to the dev integration and developer VMs

Alternatively script the export and import Ultimately it will be backed up and restored to the QA and production

farms

Change Management

Change Management

Change Management

Change Management

Web part instances

Web parts ultimately get placed on pages

The configuration of the web parts can often get quite complex

You may want to disable editing of web parts for general content authors

They end up in a grey zone between code and content

Web part instances ndash Part 2

We created our own internal tool to export and import web parts

Each web partrsquos configuration can be exported into a webpartfile

We scripted the extraction from the dev integration

webpart files are treated like code and checked into TFS for version control

Script then applies the new webpart files to the target environment

Workflows

Workflows can be built using SharePoint Designer Visual Studio or third-party tools (Nintex or K2 primarily)

Visual Studio workflow projects are automatically packaged as WSP solution files Simply deploy the WSP file to the other environments

SharePoint Designer workflows need to be deployed using SharePoint Designer This means you need SPD access to production which is not always possible

You can load the SPD workflow into Visual Studio to package it but you lose the ability to edit it in SPD

If you use third-party tools yoursquoll need to define the process for that as well

Business Connectivity Services

BCS can be built using either SharePoint Designer or Visual Studio Visual Studio BCS projects are automatically packaged as WSP

solution files Simply deploy the WSP file to the other environments You can also export the BDC metadata model in the BDC service

application

SharePoint Designer doesnrsquot create a WSP and it doesnrsquot make a complete BDC metadata model You need to export and import using SharePoint Designer

In both cases you still need to deal with connection and configuration information

Future Directions

Visual Studio Lab Management

Integrates the management of HyperV environments in with Visual Studio and Team Foundation Server

Can automate the provisioning of lab environments for automated testing

Test failures can snapshot entire environments to make reproduction of errors much easier

Summary

Yoursquore going to have lots of SharePoint environments ndash figure out how to build them quickly and repeatable

Code and content often move in opposite directions through dev QA and Prod PowerShell script and automate to keep this simple

Agile is a great way to run projects

Continuous integration with automated testing is key to its success

There are lots of parts of SharePoint that you donrsquot code through Visual Studio Figure out how you move those through your environment

Other Topics

Site Design

Information architecture

Wireframes

Creative designs ndash Mobile first

Catalogs deep dive

Site build PowerShell scripts

Team Foundation Server and Application Lifecycle Management

Starting a new project

Managing content authoring

Site Improve tool

SEO Optimizations

Analytics options

Retaining Page Ranks with permanent redirects (301)

Azure SharePoint Hosting

Q amp A

Session Evaluations

Go to Evaluations on the home page of wwwcollabconorg

It is important to get your feedback

Please fill out evaluations for all the sessions you attend

Following the conference a random drawing from all completed evaluations will be selected

The winner will receive a $250 Future Shop gift card valid online or in store

Page 74: Web Content Management - CollabCon 2015 - Web... · Performances Complete Works ... Friendly URL An SEO friendly URL defined in the term store for a page, rather than ... What’s

Adaptive Web Design

Adaptive vs Responsive

Adaptive

Fixed breakpoints‒ Desktop gt 980 px

‒ Table portrait gt 768 px

‒ Phone to tablet gt 480 px lt 768 px

‒ Smartphone lt 480 px

Responsive

No fixed breakpoints

Design fluidly adapts to whatever width the browser is

We generally do a hybrid approach with responsive design in the under 768 pixel situation

Design Approaches in SharePoint

Adaptive Design through CSS media queries

Broader standards approach used outside of SharePoint

Keeps a single master page and CSS

Some unnecessary components may still be loaded

Device Channels SharePoint specific approach

Assign different master pages to different device channels

Rules define what devices use which channels

Device Channel Panels can also target content to channels

Hybrid here can also make sense Device channels can be used to remove unnecessary items from the page payload

Our Adaptive Approach

Built using the Twitter Boostrap CSS framework

twittergithubcombootstrap

Provides a responsive design framework for supporting PC Mac tablet and mobile

We enhanced to provide better touch navigation support

Can be leveraged in the master page page layouts and display templates

Incorporated into the SharePoint 2013 Design Master

HTML based master page that can be edited with any tool

SharePoint converts to a master page when uploaded or saved

Additional Open Source Tools and Resources

HTML CSS JavaScript jQuery

httpwwww3schoolscom

httpgetbootstrapcom

httphandlebarsjscom

httpknockoutjscom

httpsangularjsorg

httpmomentjscom

Content Search Web Part

Web part is configured to return search results

Executed as client-side code in the browser

Pair of display templates map the data returned to HTML

Control template for the overall structure

Item template for each item returned

HTML Designer Manager files are compiled to JavaScript

REST Search and Handlebars

Search is accessible through REST calls

httpsiteurl_apisearchquery

Returns results as a JSON array

Handlebars is a templating engine to format that

Conceptually similar to display templates with control and item sections

jQuery glues this all together

Steps to Experiment

F12 to get into Developer Toolbar

Set a breakpoint where the REST URL is determined

Copy the value

Paste into the REST Search test window

Experiment with the query

Adjust the Handlebars template appropriately

Search Setup

Content Sources to define and schedule the crawls

Crawl logs to review success

Search Schema to define the managed properties

Reusable Content

Snippets of HTML that can be reused throughout the site

JavaScript can be intelligent and use the URL to determine its behaviour

Makes it easy for content authors to drop pre-configured dynamic content onto pages

Topic Pages

Shows all items that match a topic

Could be hundreds of virtual pages

Only one template page

Easily customizable and SEO friendly (each topic appears to be its own page)

Content by search web part open search against a query or result source

May be able to surface the topic pages themselves as site search results

Public Health Ontario

httpwwwpublichealthontariocaenBrowseByTopicPagesTopicaspxk=Influenza20InformationByTopic22Influenza22

Ontario Association of Childrens Aid Societies

Application Lifecycle Management

Purpose

How do we build a solid SharePoint development environment for the enterprise

How do a number of developers work together on a SharePoint project

How does code and content move through a dev test and production lifecycle

What is Agile and Continuous Integration and why is it important

Visual Studio and Team Foundation Server

Visual Studio 2010 is the development platform for coding on SharePoint 2010

Team Foundation Server integrates with Visual Studio to provide a repository for code test and other project artifacts

It facilitates teamwork by providing a common place for developers to work together

Provisioning SharePoint Farms

Provisioning SharePoint Farms

Every developer needs their own complete SharePoint farm

Teams need a dev integration farm to bring their work together on

A full architecture needs QA and production farms as well

Envision IT Virtualization Architecture

Developer VM Template

SharePoint Server 2010 Enterprise

SP1 and August CU

Visual Studio 2010 Premium SP1

Office 2010 Professional Plus SP1

SharePoint Designer 2010 SP1

Fiddler

SQL Server 2008 R2 SP1

Creating a new Developer VM

Open System Centre Virtual Machine Manager

Create Virtual Machine

Choose the Developer VM template

Set the virtual machine name and options

Create and start the VM

Creating a new Developer VM - Step 2

Developer RDPs to their new VM Complete the SQL Server installation

Create the default instance Set the service account(s) Set the authentication mode and server administrators

Update the AutoSPInstallerInputxml file Set the machine name for the default sites and database server Set the service account passwords

Run the AutoSPInstallerLaunch batch file Do a Health check review

Creating a new Developer VM - Step 3

Start Visual Studio

Connect to the Team Foundation Server

Setup your workspaces

Use a standard naming convention across your team

CDevelopmentTFSCollection

Other Environments

Dev Integration QA and Production can all be built using AutoSPInstall

Donrsquot need or want the Visual Studio or Office tools on these servers

We have a base template we use for dev integration servers

QA should match the Prod architecture as closely as possible

High availability with load balancing clustered SQL app servers DMZ hardening Internet publishing

Agile Development

Agile with Team Foundation Server

Creating Your TFS Project

Open Visual Studio

Make sure you are connected to the right Team Project Collection

In Team Explorer right-click the top collection and create a new Team Project

Use the Scrum 10 template

Go into the Areas and Iterations Delete the extraneous releases and sprints

Create a product backlog iteration

Start adding your stories and tasks

Continuous Integration

Continuous Integration

Automated Testing

SharePoint Site Elements

Site structure Site columns content types subsites lists libraries

Branding elements Master pages layouts CSS XSLT supporting images

Custom web parts Page and site content Web part instances Search Workflows Business Connectivity Services Managed Metadata

SharePoint Site Elements ndash Part 2

Access Excel Word Visio

PerformancePoint

Document conversions

Timer jobs

Secure Store Service

User profiles

Site Structure

bull Site columns

bull Define the fields that are used by content types

bull Content types

bull Defines collections of site columns for different types of content

bull Subsites

bull The hierarchy of sites that make up the site collection

bull Lists and Libraries

bull The lists and libraries for each subsite

Site Structure ndash Part 2

Site columns and content types can be programmatically or manually created If they are going to be used in multiple site collections they should be

programmatically created

If a single site collection they can be created manually in a master site collection

GUIDs cannot be manually set and code may need them to be consistent

You can create them manually in SharePoint save the site as a template and import them into Visual Studio to create a proper WSP package

Site Structure ndash Part 3

Site structure can also be done either programmatically or manually

Many sites are complex and it is error prone to create manually

We use our own SiteModelBuilder tool to create the site structure

Site Structure ndash Part 4

For all site structure elements changes can also be manual or programmatic It is useful to be able to delete the whole site collection and recreate it

programmatically As soon as content starts being authored in SharePoint it becomes difficult

or impossible to do that

After content authoring has started Site column and content type changes need to be programmed explicitly

(you canrsquot just drop the content type and recreate it) Site structure changes are usually done manually at this point Changes need to be backed up and restored

Change Management

Page and Site Content

Page and site content is entered directly into SharePoint by the content authors Web pages images PDFs list content etc This should be done in the master site separate from where dev integration is

happening Care needs to be taken with this site once authors start working Make sure it is part of your production backup plan

Periodically back it up and restore it to the dev integration and developer VMs

Alternatively script the export and import Ultimately it will be backed up and restored to the QA and production

farms

Change Management

Change Management

Change Management

Change Management

Web part instances

Web parts ultimately get placed on pages

The configuration of the web parts can often get quite complex

You may want to disable editing of web parts for general content authors

They end up in a grey zone between code and content

Web part instances ndash Part 2

We created our own internal tool to export and import web parts

Each web partrsquos configuration can be exported into a webpartfile

We scripted the extraction from the dev integration

webpart files are treated like code and checked into TFS for version control

Script then applies the new webpart files to the target environment

Workflows

Workflows can be built using SharePoint Designer Visual Studio or third-party tools (Nintex or K2 primarily)

Visual Studio workflow projects are automatically packaged as WSP solution files Simply deploy the WSP file to the other environments

SharePoint Designer workflows need to be deployed using SharePoint Designer This means you need SPD access to production which is not always possible

You can load the SPD workflow into Visual Studio to package it but you lose the ability to edit it in SPD

If you use third-party tools yoursquoll need to define the process for that as well

Business Connectivity Services

BCS can be built using either SharePoint Designer or Visual Studio Visual Studio BCS projects are automatically packaged as WSP

solution files Simply deploy the WSP file to the other environments You can also export the BDC metadata model in the BDC service

application

SharePoint Designer doesnrsquot create a WSP and it doesnrsquot make a complete BDC metadata model You need to export and import using SharePoint Designer

In both cases you still need to deal with connection and configuration information

Future Directions

Visual Studio Lab Management

Integrates the management of HyperV environments in with Visual Studio and Team Foundation Server

Can automate the provisioning of lab environments for automated testing

Test failures can snapshot entire environments to make reproduction of errors much easier

Summary

Yoursquore going to have lots of SharePoint environments ndash figure out how to build them quickly and repeatable

Code and content often move in opposite directions through dev QA and Prod PowerShell script and automate to keep this simple

Agile is a great way to run projects

Continuous integration with automated testing is key to its success

There are lots of parts of SharePoint that you donrsquot code through Visual Studio Figure out how you move those through your environment

Other Topics

Site Design

Information architecture

Wireframes

Creative designs ndash Mobile first

Catalogs deep dive

Site build PowerShell scripts

Team Foundation Server and Application Lifecycle Management

Starting a new project

Managing content authoring

Site Improve tool

SEO Optimizations

Analytics options

Retaining Page Ranks with permanent redirects (301)

Azure SharePoint Hosting

Q amp A

Session Evaluations

Go to Evaluations on the home page of wwwcollabconorg

It is important to get your feedback

Please fill out evaluations for all the sessions you attend

Following the conference a random drawing from all completed evaluations will be selected

The winner will receive a $250 Future Shop gift card valid online or in store

Page 75: Web Content Management - CollabCon 2015 - Web... · Performances Complete Works ... Friendly URL An SEO friendly URL defined in the term store for a page, rather than ... What’s

Adaptive vs Responsive

Adaptive

Fixed breakpoints‒ Desktop gt 980 px

‒ Table portrait gt 768 px

‒ Phone to tablet gt 480 px lt 768 px

‒ Smartphone lt 480 px

Responsive

No fixed breakpoints

Design fluidly adapts to whatever width the browser is

We generally do a hybrid approach with responsive design in the under 768 pixel situation

Design Approaches in SharePoint

Adaptive Design through CSS media queries

Broader standards approach used outside of SharePoint

Keeps a single master page and CSS

Some unnecessary components may still be loaded

Device Channels SharePoint specific approach

Assign different master pages to different device channels

Rules define what devices use which channels

Device Channel Panels can also target content to channels

Hybrid here can also make sense Device channels can be used to remove unnecessary items from the page payload

Our Adaptive Approach

Built using the Twitter Boostrap CSS framework

twittergithubcombootstrap

Provides a responsive design framework for supporting PC Mac tablet and mobile

We enhanced to provide better touch navigation support

Can be leveraged in the master page page layouts and display templates

Incorporated into the SharePoint 2013 Design Master

HTML based master page that can be edited with any tool

SharePoint converts to a master page when uploaded or saved

Additional Open Source Tools and Resources

HTML CSS JavaScript jQuery

httpwwww3schoolscom

httpgetbootstrapcom

httphandlebarsjscom

httpknockoutjscom

httpsangularjsorg

httpmomentjscom

Content Search Web Part

Web part is configured to return search results

Executed as client-side code in the browser

Pair of display templates map the data returned to HTML

Control template for the overall structure

Item template for each item returned

HTML Designer Manager files are compiled to JavaScript

REST Search and Handlebars

Search is accessible through REST calls

httpsiteurl_apisearchquery

Returns results as a JSON array

Handlebars is a templating engine to format that

Conceptually similar to display templates with control and item sections

jQuery glues this all together

Steps to Experiment

F12 to get into Developer Toolbar

Set a breakpoint where the REST URL is determined

Copy the value

Paste into the REST Search test window

Experiment with the query

Adjust the Handlebars template appropriately

Search Setup

Content Sources to define and schedule the crawls

Crawl logs to review success

Search Schema to define the managed properties

Reusable Content

Snippets of HTML that can be reused throughout the site

JavaScript can be intelligent and use the URL to determine its behaviour

Makes it easy for content authors to drop pre-configured dynamic content onto pages

Topic Pages

Shows all items that match a topic

Could be hundreds of virtual pages

Only one template page

Easily customizable and SEO friendly (each topic appears to be its own page)

Content by search web part open search against a query or result source

May be able to surface the topic pages themselves as site search results

Public Health Ontario

httpwwwpublichealthontariocaenBrowseByTopicPagesTopicaspxk=Influenza20InformationByTopic22Influenza22

Ontario Association of Childrens Aid Societies

Application Lifecycle Management

Purpose

How do we build a solid SharePoint development environment for the enterprise

How do a number of developers work together on a SharePoint project

How does code and content move through a dev test and production lifecycle

What is Agile and Continuous Integration and why is it important

Visual Studio and Team Foundation Server

Visual Studio 2010 is the development platform for coding on SharePoint 2010

Team Foundation Server integrates with Visual Studio to provide a repository for code test and other project artifacts

It facilitates teamwork by providing a common place for developers to work together

Provisioning SharePoint Farms

Provisioning SharePoint Farms

Every developer needs their own complete SharePoint farm

Teams need a dev integration farm to bring their work together on

A full architecture needs QA and production farms as well

Envision IT Virtualization Architecture

Developer VM Template

SharePoint Server 2010 Enterprise

SP1 and August CU

Visual Studio 2010 Premium SP1

Office 2010 Professional Plus SP1

SharePoint Designer 2010 SP1

Fiddler

SQL Server 2008 R2 SP1

Creating a new Developer VM

Open System Centre Virtual Machine Manager

Create Virtual Machine

Choose the Developer VM template

Set the virtual machine name and options

Create and start the VM

Creating a new Developer VM - Step 2

Developer RDPs to their new VM Complete the SQL Server installation

Create the default instance Set the service account(s) Set the authentication mode and server administrators

Update the AutoSPInstallerInputxml file Set the machine name for the default sites and database server Set the service account passwords

Run the AutoSPInstallerLaunch batch file Do a Health check review

Creating a new Developer VM - Step 3

Start Visual Studio

Connect to the Team Foundation Server

Setup your workspaces

Use a standard naming convention across your team

CDevelopmentTFSCollection

Other Environments

Dev Integration QA and Production can all be built using AutoSPInstall

Donrsquot need or want the Visual Studio or Office tools on these servers

We have a base template we use for dev integration servers

QA should match the Prod architecture as closely as possible

High availability with load balancing clustered SQL app servers DMZ hardening Internet publishing

Agile Development

Agile with Team Foundation Server

Creating Your TFS Project

Open Visual Studio

Make sure you are connected to the right Team Project Collection

In Team Explorer right-click the top collection and create a new Team Project

Use the Scrum 10 template

Go into the Areas and Iterations Delete the extraneous releases and sprints

Create a product backlog iteration

Start adding your stories and tasks

Continuous Integration

Continuous Integration

Automated Testing

SharePoint Site Elements

Site structure Site columns content types subsites lists libraries

Branding elements Master pages layouts CSS XSLT supporting images

Custom web parts Page and site content Web part instances Search Workflows Business Connectivity Services Managed Metadata

SharePoint Site Elements ndash Part 2

Access Excel Word Visio

PerformancePoint

Document conversions

Timer jobs

Secure Store Service

User profiles

Site Structure

bull Site columns

bull Define the fields that are used by content types

bull Content types

bull Defines collections of site columns for different types of content

bull Subsites

bull The hierarchy of sites that make up the site collection

bull Lists and Libraries

bull The lists and libraries for each subsite

Site Structure ndash Part 2

Site columns and content types can be programmatically or manually created If they are going to be used in multiple site collections they should be

programmatically created

If a single site collection they can be created manually in a master site collection

GUIDs cannot be manually set and code may need them to be consistent

You can create them manually in SharePoint save the site as a template and import them into Visual Studio to create a proper WSP package

Site Structure ndash Part 3

Site structure can also be done either programmatically or manually

Many sites are complex and it is error prone to create manually

We use our own SiteModelBuilder tool to create the site structure

Site Structure ndash Part 4

For all site structure elements changes can also be manual or programmatic It is useful to be able to delete the whole site collection and recreate it

programmatically As soon as content starts being authored in SharePoint it becomes difficult

or impossible to do that

After content authoring has started Site column and content type changes need to be programmed explicitly

(you canrsquot just drop the content type and recreate it) Site structure changes are usually done manually at this point Changes need to be backed up and restored

Change Management

Page and Site Content

Page and site content is entered directly into SharePoint by the content authors Web pages images PDFs list content etc This should be done in the master site separate from where dev integration is

happening Care needs to be taken with this site once authors start working Make sure it is part of your production backup plan

Periodically back it up and restore it to the dev integration and developer VMs

Alternatively script the export and import Ultimately it will be backed up and restored to the QA and production

farms

Change Management

Change Management

Change Management

Change Management

Web part instances

Web parts ultimately get placed on pages

The configuration of the web parts can often get quite complex

You may want to disable editing of web parts for general content authors

They end up in a grey zone between code and content

Web part instances ndash Part 2

We created our own internal tool to export and import web parts

Each web partrsquos configuration can be exported into a webpartfile

We scripted the extraction from the dev integration

webpart files are treated like code and checked into TFS for version control

Script then applies the new webpart files to the target environment

Workflows

Workflows can be built using SharePoint Designer Visual Studio or third-party tools (Nintex or K2 primarily)

Visual Studio workflow projects are automatically packaged as WSP solution files Simply deploy the WSP file to the other environments

SharePoint Designer workflows need to be deployed using SharePoint Designer This means you need SPD access to production which is not always possible

You can load the SPD workflow into Visual Studio to package it but you lose the ability to edit it in SPD

If you use third-party tools yoursquoll need to define the process for that as well

Business Connectivity Services

BCS can be built using either SharePoint Designer or Visual Studio Visual Studio BCS projects are automatically packaged as WSP

solution files Simply deploy the WSP file to the other environments You can also export the BDC metadata model in the BDC service

application

SharePoint Designer doesnrsquot create a WSP and it doesnrsquot make a complete BDC metadata model You need to export and import using SharePoint Designer

In both cases you still need to deal with connection and configuration information

Future Directions

Visual Studio Lab Management

Integrates the management of HyperV environments in with Visual Studio and Team Foundation Server

Can automate the provisioning of lab environments for automated testing

Test failures can snapshot entire environments to make reproduction of errors much easier

Summary

Yoursquore going to have lots of SharePoint environments ndash figure out how to build them quickly and repeatable

Code and content often move in opposite directions through dev QA and Prod PowerShell script and automate to keep this simple

Agile is a great way to run projects

Continuous integration with automated testing is key to its success

There are lots of parts of SharePoint that you donrsquot code through Visual Studio Figure out how you move those through your environment

Other Topics

Site Design

Information architecture

Wireframes

Creative designs ndash Mobile first

Catalogs deep dive

Site build PowerShell scripts

Team Foundation Server and Application Lifecycle Management

Starting a new project

Managing content authoring

Site Improve tool

SEO Optimizations

Analytics options

Retaining Page Ranks with permanent redirects (301)

Azure SharePoint Hosting

Q amp A

Session Evaluations

Go to Evaluations on the home page of wwwcollabconorg

It is important to get your feedback

Please fill out evaluations for all the sessions you attend

Following the conference a random drawing from all completed evaluations will be selected

The winner will receive a $250 Future Shop gift card valid online or in store

Page 76: Web Content Management - CollabCon 2015 - Web... · Performances Complete Works ... Friendly URL An SEO friendly URL defined in the term store for a page, rather than ... What’s

Design Approaches in SharePoint

Adaptive Design through CSS media queries

Broader standards approach used outside of SharePoint

Keeps a single master page and CSS

Some unnecessary components may still be loaded

Device Channels SharePoint specific approach

Assign different master pages to different device channels

Rules define what devices use which channels

Device Channel Panels can also target content to channels

Hybrid here can also make sense Device channels can be used to remove unnecessary items from the page payload

Our Adaptive Approach

Built using the Twitter Boostrap CSS framework

twittergithubcombootstrap

Provides a responsive design framework for supporting PC Mac tablet and mobile

We enhanced to provide better touch navigation support

Can be leveraged in the master page page layouts and display templates

Incorporated into the SharePoint 2013 Design Master

HTML based master page that can be edited with any tool

SharePoint converts to a master page when uploaded or saved

Additional Open Source Tools and Resources

HTML CSS JavaScript jQuery

httpwwww3schoolscom

httpgetbootstrapcom

httphandlebarsjscom

httpknockoutjscom

httpsangularjsorg

httpmomentjscom

Content Search Web Part

Web part is configured to return search results

Executed as client-side code in the browser

Pair of display templates map the data returned to HTML

Control template for the overall structure

Item template for each item returned

HTML Designer Manager files are compiled to JavaScript

REST Search and Handlebars

Search is accessible through REST calls

httpsiteurl_apisearchquery

Returns results as a JSON array

Handlebars is a templating engine to format that

Conceptually similar to display templates with control and item sections

jQuery glues this all together

Steps to Experiment

F12 to get into Developer Toolbar

Set a breakpoint where the REST URL is determined

Copy the value

Paste into the REST Search test window

Experiment with the query

Adjust the Handlebars template appropriately

Search Setup

Content Sources to define and schedule the crawls

Crawl logs to review success

Search Schema to define the managed properties

Reusable Content

Snippets of HTML that can be reused throughout the site

JavaScript can be intelligent and use the URL to determine its behaviour

Makes it easy for content authors to drop pre-configured dynamic content onto pages

Topic Pages

Shows all items that match a topic

Could be hundreds of virtual pages

Only one template page

Easily customizable and SEO friendly (each topic appears to be its own page)

Content by search web part open search against a query or result source

May be able to surface the topic pages themselves as site search results

Public Health Ontario

httpwwwpublichealthontariocaenBrowseByTopicPagesTopicaspxk=Influenza20InformationByTopic22Influenza22

Ontario Association of Childrens Aid Societies

Application Lifecycle Management

Purpose

How do we build a solid SharePoint development environment for the enterprise

How do a number of developers work together on a SharePoint project

How does code and content move through a dev test and production lifecycle

What is Agile and Continuous Integration and why is it important

Visual Studio and Team Foundation Server

Visual Studio 2010 is the development platform for coding on SharePoint 2010

Team Foundation Server integrates with Visual Studio to provide a repository for code test and other project artifacts

It facilitates teamwork by providing a common place for developers to work together

Provisioning SharePoint Farms

Provisioning SharePoint Farms

Every developer needs their own complete SharePoint farm

Teams need a dev integration farm to bring their work together on

A full architecture needs QA and production farms as well

Envision IT Virtualization Architecture

Developer VM Template

SharePoint Server 2010 Enterprise

SP1 and August CU

Visual Studio 2010 Premium SP1

Office 2010 Professional Plus SP1

SharePoint Designer 2010 SP1

Fiddler

SQL Server 2008 R2 SP1

Creating a new Developer VM

Open System Centre Virtual Machine Manager

Create Virtual Machine

Choose the Developer VM template

Set the virtual machine name and options

Create and start the VM

Creating a new Developer VM - Step 2

Developer RDPs to their new VM Complete the SQL Server installation

Create the default instance Set the service account(s) Set the authentication mode and server administrators

Update the AutoSPInstallerInputxml file Set the machine name for the default sites and database server Set the service account passwords

Run the AutoSPInstallerLaunch batch file Do a Health check review

Creating a new Developer VM - Step 3

Start Visual Studio

Connect to the Team Foundation Server

Setup your workspaces

Use a standard naming convention across your team

CDevelopmentTFSCollection

Other Environments

Dev Integration QA and Production can all be built using AutoSPInstall

Donrsquot need or want the Visual Studio or Office tools on these servers

We have a base template we use for dev integration servers

QA should match the Prod architecture as closely as possible

High availability with load balancing clustered SQL app servers DMZ hardening Internet publishing

Agile Development

Agile with Team Foundation Server

Creating Your TFS Project

Open Visual Studio

Make sure you are connected to the right Team Project Collection

In Team Explorer right-click the top collection and create a new Team Project

Use the Scrum 10 template

Go into the Areas and Iterations Delete the extraneous releases and sprints

Create a product backlog iteration

Start adding your stories and tasks

Continuous Integration

Continuous Integration

Automated Testing

SharePoint Site Elements

Site structure Site columns content types subsites lists libraries

Branding elements Master pages layouts CSS XSLT supporting images

Custom web parts Page and site content Web part instances Search Workflows Business Connectivity Services Managed Metadata

SharePoint Site Elements ndash Part 2

Access Excel Word Visio

PerformancePoint

Document conversions

Timer jobs

Secure Store Service

User profiles

Site Structure

bull Site columns

bull Define the fields that are used by content types

bull Content types

bull Defines collections of site columns for different types of content

bull Subsites

bull The hierarchy of sites that make up the site collection

bull Lists and Libraries

bull The lists and libraries for each subsite

Site Structure ndash Part 2

Site columns and content types can be programmatically or manually created If they are going to be used in multiple site collections they should be

programmatically created

If a single site collection they can be created manually in a master site collection

GUIDs cannot be manually set and code may need them to be consistent

You can create them manually in SharePoint save the site as a template and import them into Visual Studio to create a proper WSP package

Site Structure ndash Part 3

Site structure can also be done either programmatically or manually

Many sites are complex and it is error prone to create manually

We use our own SiteModelBuilder tool to create the site structure

Site Structure ndash Part 4

For all site structure elements changes can also be manual or programmatic It is useful to be able to delete the whole site collection and recreate it

programmatically As soon as content starts being authored in SharePoint it becomes difficult

or impossible to do that

After content authoring has started Site column and content type changes need to be programmed explicitly

(you canrsquot just drop the content type and recreate it) Site structure changes are usually done manually at this point Changes need to be backed up and restored

Change Management

Page and Site Content

Page and site content is entered directly into SharePoint by the content authors Web pages images PDFs list content etc This should be done in the master site separate from where dev integration is

happening Care needs to be taken with this site once authors start working Make sure it is part of your production backup plan

Periodically back it up and restore it to the dev integration and developer VMs

Alternatively script the export and import Ultimately it will be backed up and restored to the QA and production

farms

Change Management

Change Management

Change Management

Change Management

Web part instances

Web parts ultimately get placed on pages

The configuration of the web parts can often get quite complex

You may want to disable editing of web parts for general content authors

They end up in a grey zone between code and content

Web part instances ndash Part 2

We created our own internal tool to export and import web parts

Each web partrsquos configuration can be exported into a webpartfile

We scripted the extraction from the dev integration

webpart files are treated like code and checked into TFS for version control

Script then applies the new webpart files to the target environment

Workflows

Workflows can be built using SharePoint Designer Visual Studio or third-party tools (Nintex or K2 primarily)

Visual Studio workflow projects are automatically packaged as WSP solution files Simply deploy the WSP file to the other environments

SharePoint Designer workflows need to be deployed using SharePoint Designer This means you need SPD access to production which is not always possible

You can load the SPD workflow into Visual Studio to package it but you lose the ability to edit it in SPD

If you use third-party tools yoursquoll need to define the process for that as well

Business Connectivity Services

BCS can be built using either SharePoint Designer or Visual Studio Visual Studio BCS projects are automatically packaged as WSP

solution files Simply deploy the WSP file to the other environments You can also export the BDC metadata model in the BDC service

application

SharePoint Designer doesnrsquot create a WSP and it doesnrsquot make a complete BDC metadata model You need to export and import using SharePoint Designer

In both cases you still need to deal with connection and configuration information

Future Directions

Visual Studio Lab Management

Integrates the management of HyperV environments in with Visual Studio and Team Foundation Server

Can automate the provisioning of lab environments for automated testing

Test failures can snapshot entire environments to make reproduction of errors much easier

Summary

Yoursquore going to have lots of SharePoint environments ndash figure out how to build them quickly and repeatable

Code and content often move in opposite directions through dev QA and Prod PowerShell script and automate to keep this simple

Agile is a great way to run projects

Continuous integration with automated testing is key to its success

There are lots of parts of SharePoint that you donrsquot code through Visual Studio Figure out how you move those through your environment

Other Topics

Site Design

Information architecture

Wireframes

Creative designs ndash Mobile first

Catalogs deep dive

Site build PowerShell scripts

Team Foundation Server and Application Lifecycle Management

Starting a new project

Managing content authoring

Site Improve tool

SEO Optimizations

Analytics options

Retaining Page Ranks with permanent redirects (301)

Azure SharePoint Hosting

Q amp A

Session Evaluations

Go to Evaluations on the home page of wwwcollabconorg

It is important to get your feedback

Please fill out evaluations for all the sessions you attend

Following the conference a random drawing from all completed evaluations will be selected

The winner will receive a $250 Future Shop gift card valid online or in store

Page 77: Web Content Management - CollabCon 2015 - Web... · Performances Complete Works ... Friendly URL An SEO friendly URL defined in the term store for a page, rather than ... What’s

Our Adaptive Approach

Built using the Twitter Boostrap CSS framework

twittergithubcombootstrap

Provides a responsive design framework for supporting PC Mac tablet and mobile

We enhanced to provide better touch navigation support

Can be leveraged in the master page page layouts and display templates

Incorporated into the SharePoint 2013 Design Master

HTML based master page that can be edited with any tool

SharePoint converts to a master page when uploaded or saved

Additional Open Source Tools and Resources

HTML CSS JavaScript jQuery

httpwwww3schoolscom

httpgetbootstrapcom

httphandlebarsjscom

httpknockoutjscom

httpsangularjsorg

httpmomentjscom

Content Search Web Part

Web part is configured to return search results

Executed as client-side code in the browser

Pair of display templates map the data returned to HTML

Control template for the overall structure

Item template for each item returned

HTML Designer Manager files are compiled to JavaScript

REST Search and Handlebars

Search is accessible through REST calls

httpsiteurl_apisearchquery

Returns results as a JSON array

Handlebars is a templating engine to format that

Conceptually similar to display templates with control and item sections

jQuery glues this all together

Steps to Experiment

F12 to get into Developer Toolbar

Set a breakpoint where the REST URL is determined

Copy the value

Paste into the REST Search test window

Experiment with the query

Adjust the Handlebars template appropriately

Search Setup

Content Sources to define and schedule the crawls

Crawl logs to review success

Search Schema to define the managed properties

Reusable Content

Snippets of HTML that can be reused throughout the site

JavaScript can be intelligent and use the URL to determine its behaviour

Makes it easy for content authors to drop pre-configured dynamic content onto pages

Topic Pages

Shows all items that match a topic

Could be hundreds of virtual pages

Only one template page

Easily customizable and SEO friendly (each topic appears to be its own page)

Content by search web part open search against a query or result source

May be able to surface the topic pages themselves as site search results

Public Health Ontario

httpwwwpublichealthontariocaenBrowseByTopicPagesTopicaspxk=Influenza20InformationByTopic22Influenza22

Ontario Association of Childrens Aid Societies

Application Lifecycle Management

Purpose

How do we build a solid SharePoint development environment for the enterprise

How do a number of developers work together on a SharePoint project

How does code and content move through a dev test and production lifecycle

What is Agile and Continuous Integration and why is it important

Visual Studio and Team Foundation Server

Visual Studio 2010 is the development platform for coding on SharePoint 2010

Team Foundation Server integrates with Visual Studio to provide a repository for code test and other project artifacts

It facilitates teamwork by providing a common place for developers to work together

Provisioning SharePoint Farms

Provisioning SharePoint Farms

Every developer needs their own complete SharePoint farm

Teams need a dev integration farm to bring their work together on

A full architecture needs QA and production farms as well

Envision IT Virtualization Architecture

Developer VM Template

SharePoint Server 2010 Enterprise

SP1 and August CU

Visual Studio 2010 Premium SP1

Office 2010 Professional Plus SP1

SharePoint Designer 2010 SP1

Fiddler

SQL Server 2008 R2 SP1

Creating a new Developer VM

Open System Centre Virtual Machine Manager

Create Virtual Machine

Choose the Developer VM template

Set the virtual machine name and options

Create and start the VM

Creating a new Developer VM - Step 2

Developer RDPs to their new VM Complete the SQL Server installation

Create the default instance Set the service account(s) Set the authentication mode and server administrators

Update the AutoSPInstallerInputxml file Set the machine name for the default sites and database server Set the service account passwords

Run the AutoSPInstallerLaunch batch file Do a Health check review

Creating a new Developer VM - Step 3

Start Visual Studio

Connect to the Team Foundation Server

Setup your workspaces

Use a standard naming convention across your team

CDevelopmentTFSCollection

Other Environments

Dev Integration QA and Production can all be built using AutoSPInstall

Donrsquot need or want the Visual Studio or Office tools on these servers

We have a base template we use for dev integration servers

QA should match the Prod architecture as closely as possible

High availability with load balancing clustered SQL app servers DMZ hardening Internet publishing

Agile Development

Agile with Team Foundation Server

Creating Your TFS Project

Open Visual Studio

Make sure you are connected to the right Team Project Collection

In Team Explorer right-click the top collection and create a new Team Project

Use the Scrum 10 template

Go into the Areas and Iterations Delete the extraneous releases and sprints

Create a product backlog iteration

Start adding your stories and tasks

Continuous Integration

Continuous Integration

Automated Testing

SharePoint Site Elements

Site structure Site columns content types subsites lists libraries

Branding elements Master pages layouts CSS XSLT supporting images

Custom web parts Page and site content Web part instances Search Workflows Business Connectivity Services Managed Metadata

SharePoint Site Elements ndash Part 2

Access Excel Word Visio

PerformancePoint

Document conversions

Timer jobs

Secure Store Service

User profiles

Site Structure

bull Site columns

bull Define the fields that are used by content types

bull Content types

bull Defines collections of site columns for different types of content

bull Subsites

bull The hierarchy of sites that make up the site collection

bull Lists and Libraries

bull The lists and libraries for each subsite

Site Structure ndash Part 2

Site columns and content types can be programmatically or manually created If they are going to be used in multiple site collections they should be

programmatically created

If a single site collection they can be created manually in a master site collection

GUIDs cannot be manually set and code may need them to be consistent

You can create them manually in SharePoint save the site as a template and import them into Visual Studio to create a proper WSP package

Site Structure ndash Part 3

Site structure can also be done either programmatically or manually

Many sites are complex and it is error prone to create manually

We use our own SiteModelBuilder tool to create the site structure

Site Structure ndash Part 4

For all site structure elements changes can also be manual or programmatic It is useful to be able to delete the whole site collection and recreate it

programmatically As soon as content starts being authored in SharePoint it becomes difficult

or impossible to do that

After content authoring has started Site column and content type changes need to be programmed explicitly

(you canrsquot just drop the content type and recreate it) Site structure changes are usually done manually at this point Changes need to be backed up and restored

Change Management

Page and Site Content

Page and site content is entered directly into SharePoint by the content authors Web pages images PDFs list content etc This should be done in the master site separate from where dev integration is

happening Care needs to be taken with this site once authors start working Make sure it is part of your production backup plan

Periodically back it up and restore it to the dev integration and developer VMs

Alternatively script the export and import Ultimately it will be backed up and restored to the QA and production

farms

Change Management

Change Management

Change Management

Change Management

Web part instances

Web parts ultimately get placed on pages

The configuration of the web parts can often get quite complex

You may want to disable editing of web parts for general content authors

They end up in a grey zone between code and content

Web part instances ndash Part 2

We created our own internal tool to export and import web parts

Each web partrsquos configuration can be exported into a webpartfile

We scripted the extraction from the dev integration

webpart files are treated like code and checked into TFS for version control

Script then applies the new webpart files to the target environment

Workflows

Workflows can be built using SharePoint Designer Visual Studio or third-party tools (Nintex or K2 primarily)

Visual Studio workflow projects are automatically packaged as WSP solution files Simply deploy the WSP file to the other environments

SharePoint Designer workflows need to be deployed using SharePoint Designer This means you need SPD access to production which is not always possible

You can load the SPD workflow into Visual Studio to package it but you lose the ability to edit it in SPD

If you use third-party tools yoursquoll need to define the process for that as well

Business Connectivity Services

BCS can be built using either SharePoint Designer or Visual Studio Visual Studio BCS projects are automatically packaged as WSP

solution files Simply deploy the WSP file to the other environments You can also export the BDC metadata model in the BDC service

application

SharePoint Designer doesnrsquot create a WSP and it doesnrsquot make a complete BDC metadata model You need to export and import using SharePoint Designer

In both cases you still need to deal with connection and configuration information

Future Directions

Visual Studio Lab Management

Integrates the management of HyperV environments in with Visual Studio and Team Foundation Server

Can automate the provisioning of lab environments for automated testing

Test failures can snapshot entire environments to make reproduction of errors much easier

Summary

Yoursquore going to have lots of SharePoint environments ndash figure out how to build them quickly and repeatable

Code and content often move in opposite directions through dev QA and Prod PowerShell script and automate to keep this simple

Agile is a great way to run projects

Continuous integration with automated testing is key to its success

There are lots of parts of SharePoint that you donrsquot code through Visual Studio Figure out how you move those through your environment

Other Topics

Site Design

Information architecture

Wireframes

Creative designs ndash Mobile first

Catalogs deep dive

Site build PowerShell scripts

Team Foundation Server and Application Lifecycle Management

Starting a new project

Managing content authoring

Site Improve tool

SEO Optimizations

Analytics options

Retaining Page Ranks with permanent redirects (301)

Azure SharePoint Hosting

Q amp A

Session Evaluations

Go to Evaluations on the home page of wwwcollabconorg

It is important to get your feedback

Please fill out evaluations for all the sessions you attend

Following the conference a random drawing from all completed evaluations will be selected

The winner will receive a $250 Future Shop gift card valid online or in store

Page 78: Web Content Management - CollabCon 2015 - Web... · Performances Complete Works ... Friendly URL An SEO friendly URL defined in the term store for a page, rather than ... What’s

Additional Open Source Tools and Resources

HTML CSS JavaScript jQuery

httpwwww3schoolscom

httpgetbootstrapcom

httphandlebarsjscom

httpknockoutjscom

httpsangularjsorg

httpmomentjscom

Content Search Web Part

Web part is configured to return search results

Executed as client-side code in the browser

Pair of display templates map the data returned to HTML

Control template for the overall structure

Item template for each item returned

HTML Designer Manager files are compiled to JavaScript

REST Search and Handlebars

Search is accessible through REST calls

httpsiteurl_apisearchquery

Returns results as a JSON array

Handlebars is a templating engine to format that

Conceptually similar to display templates with control and item sections

jQuery glues this all together

Steps to Experiment

F12 to get into Developer Toolbar

Set a breakpoint where the REST URL is determined

Copy the value

Paste into the REST Search test window

Experiment with the query

Adjust the Handlebars template appropriately

Search Setup

Content Sources to define and schedule the crawls

Crawl logs to review success

Search Schema to define the managed properties

Reusable Content

Snippets of HTML that can be reused throughout the site

JavaScript can be intelligent and use the URL to determine its behaviour

Makes it easy for content authors to drop pre-configured dynamic content onto pages

Topic Pages

Shows all items that match a topic

Could be hundreds of virtual pages

Only one template page

Easily customizable and SEO friendly (each topic appears to be its own page)

Content by search web part open search against a query or result source

May be able to surface the topic pages themselves as site search results

Public Health Ontario

httpwwwpublichealthontariocaenBrowseByTopicPagesTopicaspxk=Influenza20InformationByTopic22Influenza22

Ontario Association of Childrens Aid Societies

Application Lifecycle Management

Purpose

How do we build a solid SharePoint development environment for the enterprise

How do a number of developers work together on a SharePoint project

How does code and content move through a dev test and production lifecycle

What is Agile and Continuous Integration and why is it important

Visual Studio and Team Foundation Server

Visual Studio 2010 is the development platform for coding on SharePoint 2010

Team Foundation Server integrates with Visual Studio to provide a repository for code test and other project artifacts

It facilitates teamwork by providing a common place for developers to work together

Provisioning SharePoint Farms

Provisioning SharePoint Farms

Every developer needs their own complete SharePoint farm

Teams need a dev integration farm to bring their work together on

A full architecture needs QA and production farms as well

Envision IT Virtualization Architecture

Developer VM Template

SharePoint Server 2010 Enterprise

SP1 and August CU

Visual Studio 2010 Premium SP1

Office 2010 Professional Plus SP1

SharePoint Designer 2010 SP1

Fiddler

SQL Server 2008 R2 SP1

Creating a new Developer VM

Open System Centre Virtual Machine Manager

Create Virtual Machine

Choose the Developer VM template

Set the virtual machine name and options

Create and start the VM

Creating a new Developer VM - Step 2

Developer RDPs to their new VM Complete the SQL Server installation

Create the default instance Set the service account(s) Set the authentication mode and server administrators

Update the AutoSPInstallerInputxml file Set the machine name for the default sites and database server Set the service account passwords

Run the AutoSPInstallerLaunch batch file Do a Health check review

Creating a new Developer VM - Step 3

Start Visual Studio

Connect to the Team Foundation Server

Setup your workspaces

Use a standard naming convention across your team

CDevelopmentTFSCollection

Other Environments

Dev Integration QA and Production can all be built using AutoSPInstall

Donrsquot need or want the Visual Studio or Office tools on these servers

We have a base template we use for dev integration servers

QA should match the Prod architecture as closely as possible

High availability with load balancing clustered SQL app servers DMZ hardening Internet publishing

Agile Development

Agile with Team Foundation Server

Creating Your TFS Project

Open Visual Studio

Make sure you are connected to the right Team Project Collection

In Team Explorer right-click the top collection and create a new Team Project

Use the Scrum 10 template

Go into the Areas and Iterations Delete the extraneous releases and sprints

Create a product backlog iteration

Start adding your stories and tasks

Continuous Integration

Continuous Integration

Automated Testing

SharePoint Site Elements

Site structure Site columns content types subsites lists libraries

Branding elements Master pages layouts CSS XSLT supporting images

Custom web parts Page and site content Web part instances Search Workflows Business Connectivity Services Managed Metadata

SharePoint Site Elements ndash Part 2

Access Excel Word Visio

PerformancePoint

Document conversions

Timer jobs

Secure Store Service

User profiles

Site Structure

bull Site columns

bull Define the fields that are used by content types

bull Content types

bull Defines collections of site columns for different types of content

bull Subsites

bull The hierarchy of sites that make up the site collection

bull Lists and Libraries

bull The lists and libraries for each subsite

Site Structure ndash Part 2

Site columns and content types can be programmatically or manually created If they are going to be used in multiple site collections they should be

programmatically created

If a single site collection they can be created manually in a master site collection

GUIDs cannot be manually set and code may need them to be consistent

You can create them manually in SharePoint save the site as a template and import them into Visual Studio to create a proper WSP package

Site Structure ndash Part 3

Site structure can also be done either programmatically or manually

Many sites are complex and it is error prone to create manually

We use our own SiteModelBuilder tool to create the site structure

Site Structure ndash Part 4

For all site structure elements changes can also be manual or programmatic It is useful to be able to delete the whole site collection and recreate it

programmatically As soon as content starts being authored in SharePoint it becomes difficult

or impossible to do that

After content authoring has started Site column and content type changes need to be programmed explicitly

(you canrsquot just drop the content type and recreate it) Site structure changes are usually done manually at this point Changes need to be backed up and restored

Change Management

Page and Site Content

Page and site content is entered directly into SharePoint by the content authors Web pages images PDFs list content etc This should be done in the master site separate from where dev integration is

happening Care needs to be taken with this site once authors start working Make sure it is part of your production backup plan

Periodically back it up and restore it to the dev integration and developer VMs

Alternatively script the export and import Ultimately it will be backed up and restored to the QA and production

farms

Change Management

Change Management

Change Management

Change Management

Web part instances

Web parts ultimately get placed on pages

The configuration of the web parts can often get quite complex

You may want to disable editing of web parts for general content authors

They end up in a grey zone between code and content

Web part instances ndash Part 2

We created our own internal tool to export and import web parts

Each web partrsquos configuration can be exported into a webpartfile

We scripted the extraction from the dev integration

webpart files are treated like code and checked into TFS for version control

Script then applies the new webpart files to the target environment

Workflows

Workflows can be built using SharePoint Designer Visual Studio or third-party tools (Nintex or K2 primarily)

Visual Studio workflow projects are automatically packaged as WSP solution files Simply deploy the WSP file to the other environments

SharePoint Designer workflows need to be deployed using SharePoint Designer This means you need SPD access to production which is not always possible

You can load the SPD workflow into Visual Studio to package it but you lose the ability to edit it in SPD

If you use third-party tools yoursquoll need to define the process for that as well

Business Connectivity Services

BCS can be built using either SharePoint Designer or Visual Studio Visual Studio BCS projects are automatically packaged as WSP

solution files Simply deploy the WSP file to the other environments You can also export the BDC metadata model in the BDC service

application

SharePoint Designer doesnrsquot create a WSP and it doesnrsquot make a complete BDC metadata model You need to export and import using SharePoint Designer

In both cases you still need to deal with connection and configuration information

Future Directions

Visual Studio Lab Management

Integrates the management of HyperV environments in with Visual Studio and Team Foundation Server

Can automate the provisioning of lab environments for automated testing

Test failures can snapshot entire environments to make reproduction of errors much easier

Summary

Yoursquore going to have lots of SharePoint environments ndash figure out how to build them quickly and repeatable

Code and content often move in opposite directions through dev QA and Prod PowerShell script and automate to keep this simple

Agile is a great way to run projects

Continuous integration with automated testing is key to its success

There are lots of parts of SharePoint that you donrsquot code through Visual Studio Figure out how you move those through your environment

Other Topics

Site Design

Information architecture

Wireframes

Creative designs ndash Mobile first

Catalogs deep dive

Site build PowerShell scripts

Team Foundation Server and Application Lifecycle Management

Starting a new project

Managing content authoring

Site Improve tool

SEO Optimizations

Analytics options

Retaining Page Ranks with permanent redirects (301)

Azure SharePoint Hosting

Q amp A

Session Evaluations

Go to Evaluations on the home page of wwwcollabconorg

It is important to get your feedback

Please fill out evaluations for all the sessions you attend

Following the conference a random drawing from all completed evaluations will be selected

The winner will receive a $250 Future Shop gift card valid online or in store

Page 79: Web Content Management - CollabCon 2015 - Web... · Performances Complete Works ... Friendly URL An SEO friendly URL defined in the term store for a page, rather than ... What’s

Content Search Web Part

Web part is configured to return search results

Executed as client-side code in the browser

Pair of display templates map the data returned to HTML

Control template for the overall structure

Item template for each item returned

HTML Designer Manager files are compiled to JavaScript

REST Search and Handlebars

Search is accessible through REST calls

httpsiteurl_apisearchquery

Returns results as a JSON array

Handlebars is a templating engine to format that

Conceptually similar to display templates with control and item sections

jQuery glues this all together

Steps to Experiment

F12 to get into Developer Toolbar

Set a breakpoint where the REST URL is determined

Copy the value

Paste into the REST Search test window

Experiment with the query

Adjust the Handlebars template appropriately

Search Setup

Content Sources to define and schedule the crawls

Crawl logs to review success

Search Schema to define the managed properties

Reusable Content

Snippets of HTML that can be reused throughout the site

JavaScript can be intelligent and use the URL to determine its behaviour

Makes it easy for content authors to drop pre-configured dynamic content onto pages

Topic Pages

Shows all items that match a topic

Could be hundreds of virtual pages

Only one template page

Easily customizable and SEO friendly (each topic appears to be its own page)

Content by search web part open search against a query or result source

May be able to surface the topic pages themselves as site search results

Public Health Ontario

httpwwwpublichealthontariocaenBrowseByTopicPagesTopicaspxk=Influenza20InformationByTopic22Influenza22

Ontario Association of Childrens Aid Societies

Application Lifecycle Management

Purpose

How do we build a solid SharePoint development environment for the enterprise

How do a number of developers work together on a SharePoint project

How does code and content move through a dev test and production lifecycle

What is Agile and Continuous Integration and why is it important

Visual Studio and Team Foundation Server

Visual Studio 2010 is the development platform for coding on SharePoint 2010

Team Foundation Server integrates with Visual Studio to provide a repository for code test and other project artifacts

It facilitates teamwork by providing a common place for developers to work together

Provisioning SharePoint Farms

Provisioning SharePoint Farms

Every developer needs their own complete SharePoint farm

Teams need a dev integration farm to bring their work together on

A full architecture needs QA and production farms as well

Envision IT Virtualization Architecture

Developer VM Template

SharePoint Server 2010 Enterprise

SP1 and August CU

Visual Studio 2010 Premium SP1

Office 2010 Professional Plus SP1

SharePoint Designer 2010 SP1

Fiddler

SQL Server 2008 R2 SP1

Creating a new Developer VM

Open System Centre Virtual Machine Manager

Create Virtual Machine

Choose the Developer VM template

Set the virtual machine name and options

Create and start the VM

Creating a new Developer VM - Step 2

Developer RDPs to their new VM Complete the SQL Server installation

Create the default instance Set the service account(s) Set the authentication mode and server administrators

Update the AutoSPInstallerInputxml file Set the machine name for the default sites and database server Set the service account passwords

Run the AutoSPInstallerLaunch batch file Do a Health check review

Creating a new Developer VM - Step 3

Start Visual Studio

Connect to the Team Foundation Server

Setup your workspaces

Use a standard naming convention across your team

CDevelopmentTFSCollection

Other Environments

Dev Integration QA and Production can all be built using AutoSPInstall

Donrsquot need or want the Visual Studio or Office tools on these servers

We have a base template we use for dev integration servers

QA should match the Prod architecture as closely as possible

High availability with load balancing clustered SQL app servers DMZ hardening Internet publishing

Agile Development

Agile with Team Foundation Server

Creating Your TFS Project

Open Visual Studio

Make sure you are connected to the right Team Project Collection

In Team Explorer right-click the top collection and create a new Team Project

Use the Scrum 10 template

Go into the Areas and Iterations Delete the extraneous releases and sprints

Create a product backlog iteration

Start adding your stories and tasks

Continuous Integration

Continuous Integration

Automated Testing

SharePoint Site Elements

Site structure Site columns content types subsites lists libraries

Branding elements Master pages layouts CSS XSLT supporting images

Custom web parts Page and site content Web part instances Search Workflows Business Connectivity Services Managed Metadata

SharePoint Site Elements ndash Part 2

Access Excel Word Visio

PerformancePoint

Document conversions

Timer jobs

Secure Store Service

User profiles

Site Structure

bull Site columns

bull Define the fields that are used by content types

bull Content types

bull Defines collections of site columns for different types of content

bull Subsites

bull The hierarchy of sites that make up the site collection

bull Lists and Libraries

bull The lists and libraries for each subsite

Site Structure ndash Part 2

Site columns and content types can be programmatically or manually created If they are going to be used in multiple site collections they should be

programmatically created

If a single site collection they can be created manually in a master site collection

GUIDs cannot be manually set and code may need them to be consistent

You can create them manually in SharePoint save the site as a template and import them into Visual Studio to create a proper WSP package

Site Structure ndash Part 3

Site structure can also be done either programmatically or manually

Many sites are complex and it is error prone to create manually

We use our own SiteModelBuilder tool to create the site structure

Site Structure ndash Part 4

For all site structure elements changes can also be manual or programmatic It is useful to be able to delete the whole site collection and recreate it

programmatically As soon as content starts being authored in SharePoint it becomes difficult

or impossible to do that

After content authoring has started Site column and content type changes need to be programmed explicitly

(you canrsquot just drop the content type and recreate it) Site structure changes are usually done manually at this point Changes need to be backed up and restored

Change Management

Page and Site Content

Page and site content is entered directly into SharePoint by the content authors Web pages images PDFs list content etc This should be done in the master site separate from where dev integration is

happening Care needs to be taken with this site once authors start working Make sure it is part of your production backup plan

Periodically back it up and restore it to the dev integration and developer VMs

Alternatively script the export and import Ultimately it will be backed up and restored to the QA and production

farms

Change Management

Change Management

Change Management

Change Management

Web part instances

Web parts ultimately get placed on pages

The configuration of the web parts can often get quite complex

You may want to disable editing of web parts for general content authors

They end up in a grey zone between code and content

Web part instances ndash Part 2

We created our own internal tool to export and import web parts

Each web partrsquos configuration can be exported into a webpartfile

We scripted the extraction from the dev integration

webpart files are treated like code and checked into TFS for version control

Script then applies the new webpart files to the target environment

Workflows

Workflows can be built using SharePoint Designer Visual Studio or third-party tools (Nintex or K2 primarily)

Visual Studio workflow projects are automatically packaged as WSP solution files Simply deploy the WSP file to the other environments

SharePoint Designer workflows need to be deployed using SharePoint Designer This means you need SPD access to production which is not always possible

You can load the SPD workflow into Visual Studio to package it but you lose the ability to edit it in SPD

If you use third-party tools yoursquoll need to define the process for that as well

Business Connectivity Services

BCS can be built using either SharePoint Designer or Visual Studio Visual Studio BCS projects are automatically packaged as WSP

solution files Simply deploy the WSP file to the other environments You can also export the BDC metadata model in the BDC service

application

SharePoint Designer doesnrsquot create a WSP and it doesnrsquot make a complete BDC metadata model You need to export and import using SharePoint Designer

In both cases you still need to deal with connection and configuration information

Future Directions

Visual Studio Lab Management

Integrates the management of HyperV environments in with Visual Studio and Team Foundation Server

Can automate the provisioning of lab environments for automated testing

Test failures can snapshot entire environments to make reproduction of errors much easier

Summary

Yoursquore going to have lots of SharePoint environments ndash figure out how to build them quickly and repeatable

Code and content often move in opposite directions through dev QA and Prod PowerShell script and automate to keep this simple

Agile is a great way to run projects

Continuous integration with automated testing is key to its success

There are lots of parts of SharePoint that you donrsquot code through Visual Studio Figure out how you move those through your environment

Other Topics

Site Design

Information architecture

Wireframes

Creative designs ndash Mobile first

Catalogs deep dive

Site build PowerShell scripts

Team Foundation Server and Application Lifecycle Management

Starting a new project

Managing content authoring

Site Improve tool

SEO Optimizations

Analytics options

Retaining Page Ranks with permanent redirects (301)

Azure SharePoint Hosting

Q amp A

Session Evaluations

Go to Evaluations on the home page of wwwcollabconorg

It is important to get your feedback

Please fill out evaluations for all the sessions you attend

Following the conference a random drawing from all completed evaluations will be selected

The winner will receive a $250 Future Shop gift card valid online or in store

Page 80: Web Content Management - CollabCon 2015 - Web... · Performances Complete Works ... Friendly URL An SEO friendly URL defined in the term store for a page, rather than ... What’s

REST Search and Handlebars

Search is accessible through REST calls

httpsiteurl_apisearchquery

Returns results as a JSON array

Handlebars is a templating engine to format that

Conceptually similar to display templates with control and item sections

jQuery glues this all together

Steps to Experiment

F12 to get into Developer Toolbar

Set a breakpoint where the REST URL is determined

Copy the value

Paste into the REST Search test window

Experiment with the query

Adjust the Handlebars template appropriately

Search Setup

Content Sources to define and schedule the crawls

Crawl logs to review success

Search Schema to define the managed properties

Reusable Content

Snippets of HTML that can be reused throughout the site

JavaScript can be intelligent and use the URL to determine its behaviour

Makes it easy for content authors to drop pre-configured dynamic content onto pages

Topic Pages

Shows all items that match a topic

Could be hundreds of virtual pages

Only one template page

Easily customizable and SEO friendly (each topic appears to be its own page)

Content by search web part open search against a query or result source

May be able to surface the topic pages themselves as site search results

Public Health Ontario

httpwwwpublichealthontariocaenBrowseByTopicPagesTopicaspxk=Influenza20InformationByTopic22Influenza22

Ontario Association of Childrens Aid Societies

Application Lifecycle Management

Purpose

How do we build a solid SharePoint development environment for the enterprise

How do a number of developers work together on a SharePoint project

How does code and content move through a dev test and production lifecycle

What is Agile and Continuous Integration and why is it important

Visual Studio and Team Foundation Server

Visual Studio 2010 is the development platform for coding on SharePoint 2010

Team Foundation Server integrates with Visual Studio to provide a repository for code test and other project artifacts

It facilitates teamwork by providing a common place for developers to work together

Provisioning SharePoint Farms

Provisioning SharePoint Farms

Every developer needs their own complete SharePoint farm

Teams need a dev integration farm to bring their work together on

A full architecture needs QA and production farms as well

Envision IT Virtualization Architecture

Developer VM Template

SharePoint Server 2010 Enterprise

SP1 and August CU

Visual Studio 2010 Premium SP1

Office 2010 Professional Plus SP1

SharePoint Designer 2010 SP1

Fiddler

SQL Server 2008 R2 SP1

Creating a new Developer VM

Open System Centre Virtual Machine Manager

Create Virtual Machine

Choose the Developer VM template

Set the virtual machine name and options

Create and start the VM

Creating a new Developer VM - Step 2

Developer RDPs to their new VM Complete the SQL Server installation

Create the default instance Set the service account(s) Set the authentication mode and server administrators

Update the AutoSPInstallerInputxml file Set the machine name for the default sites and database server Set the service account passwords

Run the AutoSPInstallerLaunch batch file Do a Health check review

Creating a new Developer VM - Step 3

Start Visual Studio

Connect to the Team Foundation Server

Setup your workspaces

Use a standard naming convention across your team

CDevelopmentTFSCollection

Other Environments

Dev Integration QA and Production can all be built using AutoSPInstall

Donrsquot need or want the Visual Studio or Office tools on these servers

We have a base template we use for dev integration servers

QA should match the Prod architecture as closely as possible

High availability with load balancing clustered SQL app servers DMZ hardening Internet publishing

Agile Development

Agile with Team Foundation Server

Creating Your TFS Project

Open Visual Studio

Make sure you are connected to the right Team Project Collection

In Team Explorer right-click the top collection and create a new Team Project

Use the Scrum 10 template

Go into the Areas and Iterations Delete the extraneous releases and sprints

Create a product backlog iteration

Start adding your stories and tasks

Continuous Integration

Continuous Integration

Automated Testing

SharePoint Site Elements

Site structure Site columns content types subsites lists libraries

Branding elements Master pages layouts CSS XSLT supporting images

Custom web parts Page and site content Web part instances Search Workflows Business Connectivity Services Managed Metadata

SharePoint Site Elements ndash Part 2

Access Excel Word Visio

PerformancePoint

Document conversions

Timer jobs

Secure Store Service

User profiles

Site Structure

bull Site columns

bull Define the fields that are used by content types

bull Content types

bull Defines collections of site columns for different types of content

bull Subsites

bull The hierarchy of sites that make up the site collection

bull Lists and Libraries

bull The lists and libraries for each subsite

Site Structure ndash Part 2

Site columns and content types can be programmatically or manually created If they are going to be used in multiple site collections they should be

programmatically created

If a single site collection they can be created manually in a master site collection

GUIDs cannot be manually set and code may need them to be consistent

You can create them manually in SharePoint save the site as a template and import them into Visual Studio to create a proper WSP package

Site Structure ndash Part 3

Site structure can also be done either programmatically or manually

Many sites are complex and it is error prone to create manually

We use our own SiteModelBuilder tool to create the site structure

Site Structure ndash Part 4

For all site structure elements changes can also be manual or programmatic It is useful to be able to delete the whole site collection and recreate it

programmatically As soon as content starts being authored in SharePoint it becomes difficult

or impossible to do that

After content authoring has started Site column and content type changes need to be programmed explicitly

(you canrsquot just drop the content type and recreate it) Site structure changes are usually done manually at this point Changes need to be backed up and restored

Change Management

Page and Site Content

Page and site content is entered directly into SharePoint by the content authors Web pages images PDFs list content etc This should be done in the master site separate from where dev integration is

happening Care needs to be taken with this site once authors start working Make sure it is part of your production backup plan

Periodically back it up and restore it to the dev integration and developer VMs

Alternatively script the export and import Ultimately it will be backed up and restored to the QA and production

farms

Change Management

Change Management

Change Management

Change Management

Web part instances

Web parts ultimately get placed on pages

The configuration of the web parts can often get quite complex

You may want to disable editing of web parts for general content authors

They end up in a grey zone between code and content

Web part instances ndash Part 2

We created our own internal tool to export and import web parts

Each web partrsquos configuration can be exported into a webpartfile

We scripted the extraction from the dev integration

webpart files are treated like code and checked into TFS for version control

Script then applies the new webpart files to the target environment

Workflows

Workflows can be built using SharePoint Designer Visual Studio or third-party tools (Nintex or K2 primarily)

Visual Studio workflow projects are automatically packaged as WSP solution files Simply deploy the WSP file to the other environments

SharePoint Designer workflows need to be deployed using SharePoint Designer This means you need SPD access to production which is not always possible

You can load the SPD workflow into Visual Studio to package it but you lose the ability to edit it in SPD

If you use third-party tools yoursquoll need to define the process for that as well

Business Connectivity Services

BCS can be built using either SharePoint Designer or Visual Studio Visual Studio BCS projects are automatically packaged as WSP

solution files Simply deploy the WSP file to the other environments You can also export the BDC metadata model in the BDC service

application

SharePoint Designer doesnrsquot create a WSP and it doesnrsquot make a complete BDC metadata model You need to export and import using SharePoint Designer

In both cases you still need to deal with connection and configuration information

Future Directions

Visual Studio Lab Management

Integrates the management of HyperV environments in with Visual Studio and Team Foundation Server

Can automate the provisioning of lab environments for automated testing

Test failures can snapshot entire environments to make reproduction of errors much easier

Summary

Yoursquore going to have lots of SharePoint environments ndash figure out how to build them quickly and repeatable

Code and content often move in opposite directions through dev QA and Prod PowerShell script and automate to keep this simple

Agile is a great way to run projects

Continuous integration with automated testing is key to its success

There are lots of parts of SharePoint that you donrsquot code through Visual Studio Figure out how you move those through your environment

Other Topics

Site Design

Information architecture

Wireframes

Creative designs ndash Mobile first

Catalogs deep dive

Site build PowerShell scripts

Team Foundation Server and Application Lifecycle Management

Starting a new project

Managing content authoring

Site Improve tool

SEO Optimizations

Analytics options

Retaining Page Ranks with permanent redirects (301)

Azure SharePoint Hosting

Q amp A

Session Evaluations

Go to Evaluations on the home page of wwwcollabconorg

It is important to get your feedback

Please fill out evaluations for all the sessions you attend

Following the conference a random drawing from all completed evaluations will be selected

The winner will receive a $250 Future Shop gift card valid online or in store

Page 81: Web Content Management - CollabCon 2015 - Web... · Performances Complete Works ... Friendly URL An SEO friendly URL defined in the term store for a page, rather than ... What’s

Steps to Experiment

F12 to get into Developer Toolbar

Set a breakpoint where the REST URL is determined

Copy the value

Paste into the REST Search test window

Experiment with the query

Adjust the Handlebars template appropriately

Search Setup

Content Sources to define and schedule the crawls

Crawl logs to review success

Search Schema to define the managed properties

Reusable Content

Snippets of HTML that can be reused throughout the site

JavaScript can be intelligent and use the URL to determine its behaviour

Makes it easy for content authors to drop pre-configured dynamic content onto pages

Topic Pages

Shows all items that match a topic

Could be hundreds of virtual pages

Only one template page

Easily customizable and SEO friendly (each topic appears to be its own page)

Content by search web part open search against a query or result source

May be able to surface the topic pages themselves as site search results

Public Health Ontario

httpwwwpublichealthontariocaenBrowseByTopicPagesTopicaspxk=Influenza20InformationByTopic22Influenza22

Ontario Association of Childrens Aid Societies

Application Lifecycle Management

Purpose

How do we build a solid SharePoint development environment for the enterprise

How do a number of developers work together on a SharePoint project

How does code and content move through a dev test and production lifecycle

What is Agile and Continuous Integration and why is it important

Visual Studio and Team Foundation Server

Visual Studio 2010 is the development platform for coding on SharePoint 2010

Team Foundation Server integrates with Visual Studio to provide a repository for code test and other project artifacts

It facilitates teamwork by providing a common place for developers to work together

Provisioning SharePoint Farms

Provisioning SharePoint Farms

Every developer needs their own complete SharePoint farm

Teams need a dev integration farm to bring their work together on

A full architecture needs QA and production farms as well

Envision IT Virtualization Architecture

Developer VM Template

SharePoint Server 2010 Enterprise

SP1 and August CU

Visual Studio 2010 Premium SP1

Office 2010 Professional Plus SP1

SharePoint Designer 2010 SP1

Fiddler

SQL Server 2008 R2 SP1

Creating a new Developer VM

Open System Centre Virtual Machine Manager

Create Virtual Machine

Choose the Developer VM template

Set the virtual machine name and options

Create and start the VM

Creating a new Developer VM - Step 2

Developer RDPs to their new VM Complete the SQL Server installation

Create the default instance Set the service account(s) Set the authentication mode and server administrators

Update the AutoSPInstallerInputxml file Set the machine name for the default sites and database server Set the service account passwords

Run the AutoSPInstallerLaunch batch file Do a Health check review

Creating a new Developer VM - Step 3

Start Visual Studio

Connect to the Team Foundation Server

Setup your workspaces

Use a standard naming convention across your team

CDevelopmentTFSCollection

Other Environments

Dev Integration QA and Production can all be built using AutoSPInstall

Donrsquot need or want the Visual Studio or Office tools on these servers

We have a base template we use for dev integration servers

QA should match the Prod architecture as closely as possible

High availability with load balancing clustered SQL app servers DMZ hardening Internet publishing

Agile Development

Agile with Team Foundation Server

Creating Your TFS Project

Open Visual Studio

Make sure you are connected to the right Team Project Collection

In Team Explorer right-click the top collection and create a new Team Project

Use the Scrum 10 template

Go into the Areas and Iterations Delete the extraneous releases and sprints

Create a product backlog iteration

Start adding your stories and tasks

Continuous Integration

Continuous Integration

Automated Testing

SharePoint Site Elements

Site structure Site columns content types subsites lists libraries

Branding elements Master pages layouts CSS XSLT supporting images

Custom web parts Page and site content Web part instances Search Workflows Business Connectivity Services Managed Metadata

SharePoint Site Elements ndash Part 2

Access Excel Word Visio

PerformancePoint

Document conversions

Timer jobs

Secure Store Service

User profiles

Site Structure

bull Site columns

bull Define the fields that are used by content types

bull Content types

bull Defines collections of site columns for different types of content

bull Subsites

bull The hierarchy of sites that make up the site collection

bull Lists and Libraries

bull The lists and libraries for each subsite

Site Structure ndash Part 2

Site columns and content types can be programmatically or manually created If they are going to be used in multiple site collections they should be

programmatically created

If a single site collection they can be created manually in a master site collection

GUIDs cannot be manually set and code may need them to be consistent

You can create them manually in SharePoint save the site as a template and import them into Visual Studio to create a proper WSP package

Site Structure ndash Part 3

Site structure can also be done either programmatically or manually

Many sites are complex and it is error prone to create manually

We use our own SiteModelBuilder tool to create the site structure

Site Structure ndash Part 4

For all site structure elements changes can also be manual or programmatic It is useful to be able to delete the whole site collection and recreate it

programmatically As soon as content starts being authored in SharePoint it becomes difficult

or impossible to do that

After content authoring has started Site column and content type changes need to be programmed explicitly

(you canrsquot just drop the content type and recreate it) Site structure changes are usually done manually at this point Changes need to be backed up and restored

Change Management

Page and Site Content

Page and site content is entered directly into SharePoint by the content authors Web pages images PDFs list content etc This should be done in the master site separate from where dev integration is

happening Care needs to be taken with this site once authors start working Make sure it is part of your production backup plan

Periodically back it up and restore it to the dev integration and developer VMs

Alternatively script the export and import Ultimately it will be backed up and restored to the QA and production

farms

Change Management

Change Management

Change Management

Change Management

Web part instances

Web parts ultimately get placed on pages

The configuration of the web parts can often get quite complex

You may want to disable editing of web parts for general content authors

They end up in a grey zone between code and content

Web part instances ndash Part 2

We created our own internal tool to export and import web parts

Each web partrsquos configuration can be exported into a webpartfile

We scripted the extraction from the dev integration

webpart files are treated like code and checked into TFS for version control

Script then applies the new webpart files to the target environment

Workflows

Workflows can be built using SharePoint Designer Visual Studio or third-party tools (Nintex or K2 primarily)

Visual Studio workflow projects are automatically packaged as WSP solution files Simply deploy the WSP file to the other environments

SharePoint Designer workflows need to be deployed using SharePoint Designer This means you need SPD access to production which is not always possible

You can load the SPD workflow into Visual Studio to package it but you lose the ability to edit it in SPD

If you use third-party tools yoursquoll need to define the process for that as well

Business Connectivity Services

BCS can be built using either SharePoint Designer or Visual Studio Visual Studio BCS projects are automatically packaged as WSP

solution files Simply deploy the WSP file to the other environments You can also export the BDC metadata model in the BDC service

application

SharePoint Designer doesnrsquot create a WSP and it doesnrsquot make a complete BDC metadata model You need to export and import using SharePoint Designer

In both cases you still need to deal with connection and configuration information

Future Directions

Visual Studio Lab Management

Integrates the management of HyperV environments in with Visual Studio and Team Foundation Server

Can automate the provisioning of lab environments for automated testing

Test failures can snapshot entire environments to make reproduction of errors much easier

Summary

Yoursquore going to have lots of SharePoint environments ndash figure out how to build them quickly and repeatable

Code and content often move in opposite directions through dev QA and Prod PowerShell script and automate to keep this simple

Agile is a great way to run projects

Continuous integration with automated testing is key to its success

There are lots of parts of SharePoint that you donrsquot code through Visual Studio Figure out how you move those through your environment

Other Topics

Site Design

Information architecture

Wireframes

Creative designs ndash Mobile first

Catalogs deep dive

Site build PowerShell scripts

Team Foundation Server and Application Lifecycle Management

Starting a new project

Managing content authoring

Site Improve tool

SEO Optimizations

Analytics options

Retaining Page Ranks with permanent redirects (301)

Azure SharePoint Hosting

Q amp A

Session Evaluations

Go to Evaluations on the home page of wwwcollabconorg

It is important to get your feedback

Please fill out evaluations for all the sessions you attend

Following the conference a random drawing from all completed evaluations will be selected

The winner will receive a $250 Future Shop gift card valid online or in store

Page 82: Web Content Management - CollabCon 2015 - Web... · Performances Complete Works ... Friendly URL An SEO friendly URL defined in the term store for a page, rather than ... What’s

Search Setup

Content Sources to define and schedule the crawls

Crawl logs to review success

Search Schema to define the managed properties

Reusable Content

Snippets of HTML that can be reused throughout the site

JavaScript can be intelligent and use the URL to determine its behaviour

Makes it easy for content authors to drop pre-configured dynamic content onto pages

Topic Pages

Shows all items that match a topic

Could be hundreds of virtual pages

Only one template page

Easily customizable and SEO friendly (each topic appears to be its own page)

Content by search web part open search against a query or result source

May be able to surface the topic pages themselves as site search results

Public Health Ontario

httpwwwpublichealthontariocaenBrowseByTopicPagesTopicaspxk=Influenza20InformationByTopic22Influenza22

Ontario Association of Childrens Aid Societies

Application Lifecycle Management

Purpose

How do we build a solid SharePoint development environment for the enterprise

How do a number of developers work together on a SharePoint project

How does code and content move through a dev test and production lifecycle

What is Agile and Continuous Integration and why is it important

Visual Studio and Team Foundation Server

Visual Studio 2010 is the development platform for coding on SharePoint 2010

Team Foundation Server integrates with Visual Studio to provide a repository for code test and other project artifacts

It facilitates teamwork by providing a common place for developers to work together

Provisioning SharePoint Farms

Provisioning SharePoint Farms

Every developer needs their own complete SharePoint farm

Teams need a dev integration farm to bring their work together on

A full architecture needs QA and production farms as well

Envision IT Virtualization Architecture

Developer VM Template

SharePoint Server 2010 Enterprise

SP1 and August CU

Visual Studio 2010 Premium SP1

Office 2010 Professional Plus SP1

SharePoint Designer 2010 SP1

Fiddler

SQL Server 2008 R2 SP1

Creating a new Developer VM

Open System Centre Virtual Machine Manager

Create Virtual Machine

Choose the Developer VM template

Set the virtual machine name and options

Create and start the VM

Creating a new Developer VM - Step 2

Developer RDPs to their new VM Complete the SQL Server installation

Create the default instance Set the service account(s) Set the authentication mode and server administrators

Update the AutoSPInstallerInputxml file Set the machine name for the default sites and database server Set the service account passwords

Run the AutoSPInstallerLaunch batch file Do a Health check review

Creating a new Developer VM - Step 3

Start Visual Studio

Connect to the Team Foundation Server

Setup your workspaces

Use a standard naming convention across your team

CDevelopmentTFSCollection

Other Environments

Dev Integration QA and Production can all be built using AutoSPInstall

Donrsquot need or want the Visual Studio or Office tools on these servers

We have a base template we use for dev integration servers

QA should match the Prod architecture as closely as possible

High availability with load balancing clustered SQL app servers DMZ hardening Internet publishing

Agile Development

Agile with Team Foundation Server

Creating Your TFS Project

Open Visual Studio

Make sure you are connected to the right Team Project Collection

In Team Explorer right-click the top collection and create a new Team Project

Use the Scrum 10 template

Go into the Areas and Iterations Delete the extraneous releases and sprints

Create a product backlog iteration

Start adding your stories and tasks

Continuous Integration

Continuous Integration

Automated Testing

SharePoint Site Elements

Site structure Site columns content types subsites lists libraries

Branding elements Master pages layouts CSS XSLT supporting images

Custom web parts Page and site content Web part instances Search Workflows Business Connectivity Services Managed Metadata

SharePoint Site Elements ndash Part 2

Access Excel Word Visio

PerformancePoint

Document conversions

Timer jobs

Secure Store Service

User profiles

Site Structure

bull Site columns

bull Define the fields that are used by content types

bull Content types

bull Defines collections of site columns for different types of content

bull Subsites

bull The hierarchy of sites that make up the site collection

bull Lists and Libraries

bull The lists and libraries for each subsite

Site Structure ndash Part 2

Site columns and content types can be programmatically or manually created If they are going to be used in multiple site collections they should be

programmatically created

If a single site collection they can be created manually in a master site collection

GUIDs cannot be manually set and code may need them to be consistent

You can create them manually in SharePoint save the site as a template and import them into Visual Studio to create a proper WSP package

Site Structure ndash Part 3

Site structure can also be done either programmatically or manually

Many sites are complex and it is error prone to create manually

We use our own SiteModelBuilder tool to create the site structure

Site Structure ndash Part 4

For all site structure elements changes can also be manual or programmatic It is useful to be able to delete the whole site collection and recreate it

programmatically As soon as content starts being authored in SharePoint it becomes difficult

or impossible to do that

After content authoring has started Site column and content type changes need to be programmed explicitly

(you canrsquot just drop the content type and recreate it) Site structure changes are usually done manually at this point Changes need to be backed up and restored

Change Management

Page and Site Content

Page and site content is entered directly into SharePoint by the content authors Web pages images PDFs list content etc This should be done in the master site separate from where dev integration is

happening Care needs to be taken with this site once authors start working Make sure it is part of your production backup plan

Periodically back it up and restore it to the dev integration and developer VMs

Alternatively script the export and import Ultimately it will be backed up and restored to the QA and production

farms

Change Management

Change Management

Change Management

Change Management

Web part instances

Web parts ultimately get placed on pages

The configuration of the web parts can often get quite complex

You may want to disable editing of web parts for general content authors

They end up in a grey zone between code and content

Web part instances ndash Part 2

We created our own internal tool to export and import web parts

Each web partrsquos configuration can be exported into a webpartfile

We scripted the extraction from the dev integration

webpart files are treated like code and checked into TFS for version control

Script then applies the new webpart files to the target environment

Workflows

Workflows can be built using SharePoint Designer Visual Studio or third-party tools (Nintex or K2 primarily)

Visual Studio workflow projects are automatically packaged as WSP solution files Simply deploy the WSP file to the other environments

SharePoint Designer workflows need to be deployed using SharePoint Designer This means you need SPD access to production which is not always possible

You can load the SPD workflow into Visual Studio to package it but you lose the ability to edit it in SPD

If you use third-party tools yoursquoll need to define the process for that as well

Business Connectivity Services

BCS can be built using either SharePoint Designer or Visual Studio Visual Studio BCS projects are automatically packaged as WSP

solution files Simply deploy the WSP file to the other environments You can also export the BDC metadata model in the BDC service

application

SharePoint Designer doesnrsquot create a WSP and it doesnrsquot make a complete BDC metadata model You need to export and import using SharePoint Designer

In both cases you still need to deal with connection and configuration information

Future Directions

Visual Studio Lab Management

Integrates the management of HyperV environments in with Visual Studio and Team Foundation Server

Can automate the provisioning of lab environments for automated testing

Test failures can snapshot entire environments to make reproduction of errors much easier

Summary

Yoursquore going to have lots of SharePoint environments ndash figure out how to build them quickly and repeatable

Code and content often move in opposite directions through dev QA and Prod PowerShell script and automate to keep this simple

Agile is a great way to run projects

Continuous integration with automated testing is key to its success

There are lots of parts of SharePoint that you donrsquot code through Visual Studio Figure out how you move those through your environment

Other Topics

Site Design

Information architecture

Wireframes

Creative designs ndash Mobile first

Catalogs deep dive

Site build PowerShell scripts

Team Foundation Server and Application Lifecycle Management

Starting a new project

Managing content authoring

Site Improve tool

SEO Optimizations

Analytics options

Retaining Page Ranks with permanent redirects (301)

Azure SharePoint Hosting

Q amp A

Session Evaluations

Go to Evaluations on the home page of wwwcollabconorg

It is important to get your feedback

Please fill out evaluations for all the sessions you attend

Following the conference a random drawing from all completed evaluations will be selected

The winner will receive a $250 Future Shop gift card valid online or in store

Page 83: Web Content Management - CollabCon 2015 - Web... · Performances Complete Works ... Friendly URL An SEO friendly URL defined in the term store for a page, rather than ... What’s

Reusable Content

Snippets of HTML that can be reused throughout the site

JavaScript can be intelligent and use the URL to determine its behaviour

Makes it easy for content authors to drop pre-configured dynamic content onto pages

Topic Pages

Shows all items that match a topic

Could be hundreds of virtual pages

Only one template page

Easily customizable and SEO friendly (each topic appears to be its own page)

Content by search web part open search against a query or result source

May be able to surface the topic pages themselves as site search results

Public Health Ontario

httpwwwpublichealthontariocaenBrowseByTopicPagesTopicaspxk=Influenza20InformationByTopic22Influenza22

Ontario Association of Childrens Aid Societies

Application Lifecycle Management

Purpose

How do we build a solid SharePoint development environment for the enterprise

How do a number of developers work together on a SharePoint project

How does code and content move through a dev test and production lifecycle

What is Agile and Continuous Integration and why is it important

Visual Studio and Team Foundation Server

Visual Studio 2010 is the development platform for coding on SharePoint 2010

Team Foundation Server integrates with Visual Studio to provide a repository for code test and other project artifacts

It facilitates teamwork by providing a common place for developers to work together

Provisioning SharePoint Farms

Provisioning SharePoint Farms

Every developer needs their own complete SharePoint farm

Teams need a dev integration farm to bring their work together on

A full architecture needs QA and production farms as well

Envision IT Virtualization Architecture

Developer VM Template

SharePoint Server 2010 Enterprise

SP1 and August CU

Visual Studio 2010 Premium SP1

Office 2010 Professional Plus SP1

SharePoint Designer 2010 SP1

Fiddler

SQL Server 2008 R2 SP1

Creating a new Developer VM

Open System Centre Virtual Machine Manager

Create Virtual Machine

Choose the Developer VM template

Set the virtual machine name and options

Create and start the VM

Creating a new Developer VM - Step 2

Developer RDPs to their new VM Complete the SQL Server installation

Create the default instance Set the service account(s) Set the authentication mode and server administrators

Update the AutoSPInstallerInputxml file Set the machine name for the default sites and database server Set the service account passwords

Run the AutoSPInstallerLaunch batch file Do a Health check review

Creating a new Developer VM - Step 3

Start Visual Studio

Connect to the Team Foundation Server

Setup your workspaces

Use a standard naming convention across your team

CDevelopmentTFSCollection

Other Environments

Dev Integration QA and Production can all be built using AutoSPInstall

Donrsquot need or want the Visual Studio or Office tools on these servers

We have a base template we use for dev integration servers

QA should match the Prod architecture as closely as possible

High availability with load balancing clustered SQL app servers DMZ hardening Internet publishing

Agile Development

Agile with Team Foundation Server

Creating Your TFS Project

Open Visual Studio

Make sure you are connected to the right Team Project Collection

In Team Explorer right-click the top collection and create a new Team Project

Use the Scrum 10 template

Go into the Areas and Iterations Delete the extraneous releases and sprints

Create a product backlog iteration

Start adding your stories and tasks

Continuous Integration

Continuous Integration

Automated Testing

SharePoint Site Elements

Site structure Site columns content types subsites lists libraries

Branding elements Master pages layouts CSS XSLT supporting images

Custom web parts Page and site content Web part instances Search Workflows Business Connectivity Services Managed Metadata

SharePoint Site Elements ndash Part 2

Access Excel Word Visio

PerformancePoint

Document conversions

Timer jobs

Secure Store Service

User profiles

Site Structure

bull Site columns

bull Define the fields that are used by content types

bull Content types

bull Defines collections of site columns for different types of content

bull Subsites

bull The hierarchy of sites that make up the site collection

bull Lists and Libraries

bull The lists and libraries for each subsite

Site Structure ndash Part 2

Site columns and content types can be programmatically or manually created If they are going to be used in multiple site collections they should be

programmatically created

If a single site collection they can be created manually in a master site collection

GUIDs cannot be manually set and code may need them to be consistent

You can create them manually in SharePoint save the site as a template and import them into Visual Studio to create a proper WSP package

Site Structure ndash Part 3

Site structure can also be done either programmatically or manually

Many sites are complex and it is error prone to create manually

We use our own SiteModelBuilder tool to create the site structure

Site Structure ndash Part 4

For all site structure elements changes can also be manual or programmatic It is useful to be able to delete the whole site collection and recreate it

programmatically As soon as content starts being authored in SharePoint it becomes difficult

or impossible to do that

After content authoring has started Site column and content type changes need to be programmed explicitly

(you canrsquot just drop the content type and recreate it) Site structure changes are usually done manually at this point Changes need to be backed up and restored

Change Management

Page and Site Content

Page and site content is entered directly into SharePoint by the content authors Web pages images PDFs list content etc This should be done in the master site separate from where dev integration is

happening Care needs to be taken with this site once authors start working Make sure it is part of your production backup plan

Periodically back it up and restore it to the dev integration and developer VMs

Alternatively script the export and import Ultimately it will be backed up and restored to the QA and production

farms

Change Management

Change Management

Change Management

Change Management

Web part instances

Web parts ultimately get placed on pages

The configuration of the web parts can often get quite complex

You may want to disable editing of web parts for general content authors

They end up in a grey zone between code and content

Web part instances ndash Part 2

We created our own internal tool to export and import web parts

Each web partrsquos configuration can be exported into a webpartfile

We scripted the extraction from the dev integration

webpart files are treated like code and checked into TFS for version control

Script then applies the new webpart files to the target environment

Workflows

Workflows can be built using SharePoint Designer Visual Studio or third-party tools (Nintex or K2 primarily)

Visual Studio workflow projects are automatically packaged as WSP solution files Simply deploy the WSP file to the other environments

SharePoint Designer workflows need to be deployed using SharePoint Designer This means you need SPD access to production which is not always possible

You can load the SPD workflow into Visual Studio to package it but you lose the ability to edit it in SPD

If you use third-party tools yoursquoll need to define the process for that as well

Business Connectivity Services

BCS can be built using either SharePoint Designer or Visual Studio Visual Studio BCS projects are automatically packaged as WSP

solution files Simply deploy the WSP file to the other environments You can also export the BDC metadata model in the BDC service

application

SharePoint Designer doesnrsquot create a WSP and it doesnrsquot make a complete BDC metadata model You need to export and import using SharePoint Designer

In both cases you still need to deal with connection and configuration information

Future Directions

Visual Studio Lab Management

Integrates the management of HyperV environments in with Visual Studio and Team Foundation Server

Can automate the provisioning of lab environments for automated testing

Test failures can snapshot entire environments to make reproduction of errors much easier

Summary

Yoursquore going to have lots of SharePoint environments ndash figure out how to build them quickly and repeatable

Code and content often move in opposite directions through dev QA and Prod PowerShell script and automate to keep this simple

Agile is a great way to run projects

Continuous integration with automated testing is key to its success

There are lots of parts of SharePoint that you donrsquot code through Visual Studio Figure out how you move those through your environment

Other Topics

Site Design

Information architecture

Wireframes

Creative designs ndash Mobile first

Catalogs deep dive

Site build PowerShell scripts

Team Foundation Server and Application Lifecycle Management

Starting a new project

Managing content authoring

Site Improve tool

SEO Optimizations

Analytics options

Retaining Page Ranks with permanent redirects (301)

Azure SharePoint Hosting

Q amp A

Session Evaluations

Go to Evaluations on the home page of wwwcollabconorg

It is important to get your feedback

Please fill out evaluations for all the sessions you attend

Following the conference a random drawing from all completed evaluations will be selected

The winner will receive a $250 Future Shop gift card valid online or in store

Page 84: Web Content Management - CollabCon 2015 - Web... · Performances Complete Works ... Friendly URL An SEO friendly URL defined in the term store for a page, rather than ... What’s

Topic Pages

Shows all items that match a topic

Could be hundreds of virtual pages

Only one template page

Easily customizable and SEO friendly (each topic appears to be its own page)

Content by search web part open search against a query or result source

May be able to surface the topic pages themselves as site search results

Public Health Ontario

httpwwwpublichealthontariocaenBrowseByTopicPagesTopicaspxk=Influenza20InformationByTopic22Influenza22

Ontario Association of Childrens Aid Societies

Application Lifecycle Management

Purpose

How do we build a solid SharePoint development environment for the enterprise

How do a number of developers work together on a SharePoint project

How does code and content move through a dev test and production lifecycle

What is Agile and Continuous Integration and why is it important

Visual Studio and Team Foundation Server

Visual Studio 2010 is the development platform for coding on SharePoint 2010

Team Foundation Server integrates with Visual Studio to provide a repository for code test and other project artifacts

It facilitates teamwork by providing a common place for developers to work together

Provisioning SharePoint Farms

Provisioning SharePoint Farms

Every developer needs their own complete SharePoint farm

Teams need a dev integration farm to bring their work together on

A full architecture needs QA and production farms as well

Envision IT Virtualization Architecture

Developer VM Template

SharePoint Server 2010 Enterprise

SP1 and August CU

Visual Studio 2010 Premium SP1

Office 2010 Professional Plus SP1

SharePoint Designer 2010 SP1

Fiddler

SQL Server 2008 R2 SP1

Creating a new Developer VM

Open System Centre Virtual Machine Manager

Create Virtual Machine

Choose the Developer VM template

Set the virtual machine name and options

Create and start the VM

Creating a new Developer VM - Step 2

Developer RDPs to their new VM Complete the SQL Server installation

Create the default instance Set the service account(s) Set the authentication mode and server administrators

Update the AutoSPInstallerInputxml file Set the machine name for the default sites and database server Set the service account passwords

Run the AutoSPInstallerLaunch batch file Do a Health check review

Creating a new Developer VM - Step 3

Start Visual Studio

Connect to the Team Foundation Server

Setup your workspaces

Use a standard naming convention across your team

CDevelopmentTFSCollection

Other Environments

Dev Integration QA and Production can all be built using AutoSPInstall

Donrsquot need or want the Visual Studio or Office tools on these servers

We have a base template we use for dev integration servers

QA should match the Prod architecture as closely as possible

High availability with load balancing clustered SQL app servers DMZ hardening Internet publishing

Agile Development

Agile with Team Foundation Server

Creating Your TFS Project

Open Visual Studio

Make sure you are connected to the right Team Project Collection

In Team Explorer right-click the top collection and create a new Team Project

Use the Scrum 10 template

Go into the Areas and Iterations Delete the extraneous releases and sprints

Create a product backlog iteration

Start adding your stories and tasks

Continuous Integration

Continuous Integration

Automated Testing

SharePoint Site Elements

Site structure Site columns content types subsites lists libraries

Branding elements Master pages layouts CSS XSLT supporting images

Custom web parts Page and site content Web part instances Search Workflows Business Connectivity Services Managed Metadata

SharePoint Site Elements ndash Part 2

Access Excel Word Visio

PerformancePoint

Document conversions

Timer jobs

Secure Store Service

User profiles

Site Structure

bull Site columns

bull Define the fields that are used by content types

bull Content types

bull Defines collections of site columns for different types of content

bull Subsites

bull The hierarchy of sites that make up the site collection

bull Lists and Libraries

bull The lists and libraries for each subsite

Site Structure ndash Part 2

Site columns and content types can be programmatically or manually created If they are going to be used in multiple site collections they should be

programmatically created

If a single site collection they can be created manually in a master site collection

GUIDs cannot be manually set and code may need them to be consistent

You can create them manually in SharePoint save the site as a template and import them into Visual Studio to create a proper WSP package

Site Structure ndash Part 3

Site structure can also be done either programmatically or manually

Many sites are complex and it is error prone to create manually

We use our own SiteModelBuilder tool to create the site structure

Site Structure ndash Part 4

For all site structure elements changes can also be manual or programmatic It is useful to be able to delete the whole site collection and recreate it

programmatically As soon as content starts being authored in SharePoint it becomes difficult

or impossible to do that

After content authoring has started Site column and content type changes need to be programmed explicitly

(you canrsquot just drop the content type and recreate it) Site structure changes are usually done manually at this point Changes need to be backed up and restored

Change Management

Page and Site Content

Page and site content is entered directly into SharePoint by the content authors Web pages images PDFs list content etc This should be done in the master site separate from where dev integration is

happening Care needs to be taken with this site once authors start working Make sure it is part of your production backup plan

Periodically back it up and restore it to the dev integration and developer VMs

Alternatively script the export and import Ultimately it will be backed up and restored to the QA and production

farms

Change Management

Change Management

Change Management

Change Management

Web part instances

Web parts ultimately get placed on pages

The configuration of the web parts can often get quite complex

You may want to disable editing of web parts for general content authors

They end up in a grey zone between code and content

Web part instances ndash Part 2

We created our own internal tool to export and import web parts

Each web partrsquos configuration can be exported into a webpartfile

We scripted the extraction from the dev integration

webpart files are treated like code and checked into TFS for version control

Script then applies the new webpart files to the target environment

Workflows

Workflows can be built using SharePoint Designer Visual Studio or third-party tools (Nintex or K2 primarily)

Visual Studio workflow projects are automatically packaged as WSP solution files Simply deploy the WSP file to the other environments

SharePoint Designer workflows need to be deployed using SharePoint Designer This means you need SPD access to production which is not always possible

You can load the SPD workflow into Visual Studio to package it but you lose the ability to edit it in SPD

If you use third-party tools yoursquoll need to define the process for that as well

Business Connectivity Services

BCS can be built using either SharePoint Designer or Visual Studio Visual Studio BCS projects are automatically packaged as WSP

solution files Simply deploy the WSP file to the other environments You can also export the BDC metadata model in the BDC service

application

SharePoint Designer doesnrsquot create a WSP and it doesnrsquot make a complete BDC metadata model You need to export and import using SharePoint Designer

In both cases you still need to deal with connection and configuration information

Future Directions

Visual Studio Lab Management

Integrates the management of HyperV environments in with Visual Studio and Team Foundation Server

Can automate the provisioning of lab environments for automated testing

Test failures can snapshot entire environments to make reproduction of errors much easier

Summary

Yoursquore going to have lots of SharePoint environments ndash figure out how to build them quickly and repeatable

Code and content often move in opposite directions through dev QA and Prod PowerShell script and automate to keep this simple

Agile is a great way to run projects

Continuous integration with automated testing is key to its success

There are lots of parts of SharePoint that you donrsquot code through Visual Studio Figure out how you move those through your environment

Other Topics

Site Design

Information architecture

Wireframes

Creative designs ndash Mobile first

Catalogs deep dive

Site build PowerShell scripts

Team Foundation Server and Application Lifecycle Management

Starting a new project

Managing content authoring

Site Improve tool

SEO Optimizations

Analytics options

Retaining Page Ranks with permanent redirects (301)

Azure SharePoint Hosting

Q amp A

Session Evaluations

Go to Evaluations on the home page of wwwcollabconorg

It is important to get your feedback

Please fill out evaluations for all the sessions you attend

Following the conference a random drawing from all completed evaluations will be selected

The winner will receive a $250 Future Shop gift card valid online or in store

Page 85: Web Content Management - CollabCon 2015 - Web... · Performances Complete Works ... Friendly URL An SEO friendly URL defined in the term store for a page, rather than ... What’s

Public Health Ontario

httpwwwpublichealthontariocaenBrowseByTopicPagesTopicaspxk=Influenza20InformationByTopic22Influenza22

Ontario Association of Childrens Aid Societies

Application Lifecycle Management

Purpose

How do we build a solid SharePoint development environment for the enterprise

How do a number of developers work together on a SharePoint project

How does code and content move through a dev test and production lifecycle

What is Agile and Continuous Integration and why is it important

Visual Studio and Team Foundation Server

Visual Studio 2010 is the development platform for coding on SharePoint 2010

Team Foundation Server integrates with Visual Studio to provide a repository for code test and other project artifacts

It facilitates teamwork by providing a common place for developers to work together

Provisioning SharePoint Farms

Provisioning SharePoint Farms

Every developer needs their own complete SharePoint farm

Teams need a dev integration farm to bring their work together on

A full architecture needs QA and production farms as well

Envision IT Virtualization Architecture

Developer VM Template

SharePoint Server 2010 Enterprise

SP1 and August CU

Visual Studio 2010 Premium SP1

Office 2010 Professional Plus SP1

SharePoint Designer 2010 SP1

Fiddler

SQL Server 2008 R2 SP1

Creating a new Developer VM

Open System Centre Virtual Machine Manager

Create Virtual Machine

Choose the Developer VM template

Set the virtual machine name and options

Create and start the VM

Creating a new Developer VM - Step 2

Developer RDPs to their new VM Complete the SQL Server installation

Create the default instance Set the service account(s) Set the authentication mode and server administrators

Update the AutoSPInstallerInputxml file Set the machine name for the default sites and database server Set the service account passwords

Run the AutoSPInstallerLaunch batch file Do a Health check review

Creating a new Developer VM - Step 3

Start Visual Studio

Connect to the Team Foundation Server

Setup your workspaces

Use a standard naming convention across your team

CDevelopmentTFSCollection

Other Environments

Dev Integration QA and Production can all be built using AutoSPInstall

Donrsquot need or want the Visual Studio or Office tools on these servers

We have a base template we use for dev integration servers

QA should match the Prod architecture as closely as possible

High availability with load balancing clustered SQL app servers DMZ hardening Internet publishing

Agile Development

Agile with Team Foundation Server

Creating Your TFS Project

Open Visual Studio

Make sure you are connected to the right Team Project Collection

In Team Explorer right-click the top collection and create a new Team Project

Use the Scrum 10 template

Go into the Areas and Iterations Delete the extraneous releases and sprints

Create a product backlog iteration

Start adding your stories and tasks

Continuous Integration

Continuous Integration

Automated Testing

SharePoint Site Elements

Site structure Site columns content types subsites lists libraries

Branding elements Master pages layouts CSS XSLT supporting images

Custom web parts Page and site content Web part instances Search Workflows Business Connectivity Services Managed Metadata

SharePoint Site Elements ndash Part 2

Access Excel Word Visio

PerformancePoint

Document conversions

Timer jobs

Secure Store Service

User profiles

Site Structure

bull Site columns

bull Define the fields that are used by content types

bull Content types

bull Defines collections of site columns for different types of content

bull Subsites

bull The hierarchy of sites that make up the site collection

bull Lists and Libraries

bull The lists and libraries for each subsite

Site Structure ndash Part 2

Site columns and content types can be programmatically or manually created If they are going to be used in multiple site collections they should be

programmatically created

If a single site collection they can be created manually in a master site collection

GUIDs cannot be manually set and code may need them to be consistent

You can create them manually in SharePoint save the site as a template and import them into Visual Studio to create a proper WSP package

Site Structure ndash Part 3

Site structure can also be done either programmatically or manually

Many sites are complex and it is error prone to create manually

We use our own SiteModelBuilder tool to create the site structure

Site Structure ndash Part 4

For all site structure elements changes can also be manual or programmatic It is useful to be able to delete the whole site collection and recreate it

programmatically As soon as content starts being authored in SharePoint it becomes difficult

or impossible to do that

After content authoring has started Site column and content type changes need to be programmed explicitly

(you canrsquot just drop the content type and recreate it) Site structure changes are usually done manually at this point Changes need to be backed up and restored

Change Management

Page and Site Content

Page and site content is entered directly into SharePoint by the content authors Web pages images PDFs list content etc This should be done in the master site separate from where dev integration is

happening Care needs to be taken with this site once authors start working Make sure it is part of your production backup plan

Periodically back it up and restore it to the dev integration and developer VMs

Alternatively script the export and import Ultimately it will be backed up and restored to the QA and production

farms

Change Management

Change Management

Change Management

Change Management

Web part instances

Web parts ultimately get placed on pages

The configuration of the web parts can often get quite complex

You may want to disable editing of web parts for general content authors

They end up in a grey zone between code and content

Web part instances ndash Part 2

We created our own internal tool to export and import web parts

Each web partrsquos configuration can be exported into a webpartfile

We scripted the extraction from the dev integration

webpart files are treated like code and checked into TFS for version control

Script then applies the new webpart files to the target environment

Workflows

Workflows can be built using SharePoint Designer Visual Studio or third-party tools (Nintex or K2 primarily)

Visual Studio workflow projects are automatically packaged as WSP solution files Simply deploy the WSP file to the other environments

SharePoint Designer workflows need to be deployed using SharePoint Designer This means you need SPD access to production which is not always possible

You can load the SPD workflow into Visual Studio to package it but you lose the ability to edit it in SPD

If you use third-party tools yoursquoll need to define the process for that as well

Business Connectivity Services

BCS can be built using either SharePoint Designer or Visual Studio Visual Studio BCS projects are automatically packaged as WSP

solution files Simply deploy the WSP file to the other environments You can also export the BDC metadata model in the BDC service

application

SharePoint Designer doesnrsquot create a WSP and it doesnrsquot make a complete BDC metadata model You need to export and import using SharePoint Designer

In both cases you still need to deal with connection and configuration information

Future Directions

Visual Studio Lab Management

Integrates the management of HyperV environments in with Visual Studio and Team Foundation Server

Can automate the provisioning of lab environments for automated testing

Test failures can snapshot entire environments to make reproduction of errors much easier

Summary

Yoursquore going to have lots of SharePoint environments ndash figure out how to build them quickly and repeatable

Code and content often move in opposite directions through dev QA and Prod PowerShell script and automate to keep this simple

Agile is a great way to run projects

Continuous integration with automated testing is key to its success

There are lots of parts of SharePoint that you donrsquot code through Visual Studio Figure out how you move those through your environment

Other Topics

Site Design

Information architecture

Wireframes

Creative designs ndash Mobile first

Catalogs deep dive

Site build PowerShell scripts

Team Foundation Server and Application Lifecycle Management

Starting a new project

Managing content authoring

Site Improve tool

SEO Optimizations

Analytics options

Retaining Page Ranks with permanent redirects (301)

Azure SharePoint Hosting

Q amp A

Session Evaluations

Go to Evaluations on the home page of wwwcollabconorg

It is important to get your feedback

Please fill out evaluations for all the sessions you attend

Following the conference a random drawing from all completed evaluations will be selected

The winner will receive a $250 Future Shop gift card valid online or in store

Page 86: Web Content Management - CollabCon 2015 - Web... · Performances Complete Works ... Friendly URL An SEO friendly URL defined in the term store for a page, rather than ... What’s

Ontario Association of Childrens Aid Societies

Application Lifecycle Management

Purpose

How do we build a solid SharePoint development environment for the enterprise

How do a number of developers work together on a SharePoint project

How does code and content move through a dev test and production lifecycle

What is Agile and Continuous Integration and why is it important

Visual Studio and Team Foundation Server

Visual Studio 2010 is the development platform for coding on SharePoint 2010

Team Foundation Server integrates with Visual Studio to provide a repository for code test and other project artifacts

It facilitates teamwork by providing a common place for developers to work together

Provisioning SharePoint Farms

Provisioning SharePoint Farms

Every developer needs their own complete SharePoint farm

Teams need a dev integration farm to bring their work together on

A full architecture needs QA and production farms as well

Envision IT Virtualization Architecture

Developer VM Template

SharePoint Server 2010 Enterprise

SP1 and August CU

Visual Studio 2010 Premium SP1

Office 2010 Professional Plus SP1

SharePoint Designer 2010 SP1

Fiddler

SQL Server 2008 R2 SP1

Creating a new Developer VM

Open System Centre Virtual Machine Manager

Create Virtual Machine

Choose the Developer VM template

Set the virtual machine name and options

Create and start the VM

Creating a new Developer VM - Step 2

Developer RDPs to their new VM Complete the SQL Server installation

Create the default instance Set the service account(s) Set the authentication mode and server administrators

Update the AutoSPInstallerInputxml file Set the machine name for the default sites and database server Set the service account passwords

Run the AutoSPInstallerLaunch batch file Do a Health check review

Creating a new Developer VM - Step 3

Start Visual Studio

Connect to the Team Foundation Server

Setup your workspaces

Use a standard naming convention across your team

CDevelopmentTFSCollection

Other Environments

Dev Integration QA and Production can all be built using AutoSPInstall

Donrsquot need or want the Visual Studio or Office tools on these servers

We have a base template we use for dev integration servers

QA should match the Prod architecture as closely as possible

High availability with load balancing clustered SQL app servers DMZ hardening Internet publishing

Agile Development

Agile with Team Foundation Server

Creating Your TFS Project

Open Visual Studio

Make sure you are connected to the right Team Project Collection

In Team Explorer right-click the top collection and create a new Team Project

Use the Scrum 10 template

Go into the Areas and Iterations Delete the extraneous releases and sprints

Create a product backlog iteration

Start adding your stories and tasks

Continuous Integration

Continuous Integration

Automated Testing

SharePoint Site Elements

Site structure Site columns content types subsites lists libraries

Branding elements Master pages layouts CSS XSLT supporting images

Custom web parts Page and site content Web part instances Search Workflows Business Connectivity Services Managed Metadata

SharePoint Site Elements ndash Part 2

Access Excel Word Visio

PerformancePoint

Document conversions

Timer jobs

Secure Store Service

User profiles

Site Structure

bull Site columns

bull Define the fields that are used by content types

bull Content types

bull Defines collections of site columns for different types of content

bull Subsites

bull The hierarchy of sites that make up the site collection

bull Lists and Libraries

bull The lists and libraries for each subsite

Site Structure ndash Part 2

Site columns and content types can be programmatically or manually created If they are going to be used in multiple site collections they should be

programmatically created

If a single site collection they can be created manually in a master site collection

GUIDs cannot be manually set and code may need them to be consistent

You can create them manually in SharePoint save the site as a template and import them into Visual Studio to create a proper WSP package

Site Structure ndash Part 3

Site structure can also be done either programmatically or manually

Many sites are complex and it is error prone to create manually

We use our own SiteModelBuilder tool to create the site structure

Site Structure ndash Part 4

For all site structure elements changes can also be manual or programmatic It is useful to be able to delete the whole site collection and recreate it

programmatically As soon as content starts being authored in SharePoint it becomes difficult

or impossible to do that

After content authoring has started Site column and content type changes need to be programmed explicitly

(you canrsquot just drop the content type and recreate it) Site structure changes are usually done manually at this point Changes need to be backed up and restored

Change Management

Page and Site Content

Page and site content is entered directly into SharePoint by the content authors Web pages images PDFs list content etc This should be done in the master site separate from where dev integration is

happening Care needs to be taken with this site once authors start working Make sure it is part of your production backup plan

Periodically back it up and restore it to the dev integration and developer VMs

Alternatively script the export and import Ultimately it will be backed up and restored to the QA and production

farms

Change Management

Change Management

Change Management

Change Management

Web part instances

Web parts ultimately get placed on pages

The configuration of the web parts can often get quite complex

You may want to disable editing of web parts for general content authors

They end up in a grey zone between code and content

Web part instances ndash Part 2

We created our own internal tool to export and import web parts

Each web partrsquos configuration can be exported into a webpartfile

We scripted the extraction from the dev integration

webpart files are treated like code and checked into TFS for version control

Script then applies the new webpart files to the target environment

Workflows

Workflows can be built using SharePoint Designer Visual Studio or third-party tools (Nintex or K2 primarily)

Visual Studio workflow projects are automatically packaged as WSP solution files Simply deploy the WSP file to the other environments

SharePoint Designer workflows need to be deployed using SharePoint Designer This means you need SPD access to production which is not always possible

You can load the SPD workflow into Visual Studio to package it but you lose the ability to edit it in SPD

If you use third-party tools yoursquoll need to define the process for that as well

Business Connectivity Services

BCS can be built using either SharePoint Designer or Visual Studio Visual Studio BCS projects are automatically packaged as WSP

solution files Simply deploy the WSP file to the other environments You can also export the BDC metadata model in the BDC service

application

SharePoint Designer doesnrsquot create a WSP and it doesnrsquot make a complete BDC metadata model You need to export and import using SharePoint Designer

In both cases you still need to deal with connection and configuration information

Future Directions

Visual Studio Lab Management

Integrates the management of HyperV environments in with Visual Studio and Team Foundation Server

Can automate the provisioning of lab environments for automated testing

Test failures can snapshot entire environments to make reproduction of errors much easier

Summary

Yoursquore going to have lots of SharePoint environments ndash figure out how to build them quickly and repeatable

Code and content often move in opposite directions through dev QA and Prod PowerShell script and automate to keep this simple

Agile is a great way to run projects

Continuous integration with automated testing is key to its success

There are lots of parts of SharePoint that you donrsquot code through Visual Studio Figure out how you move those through your environment

Other Topics

Site Design

Information architecture

Wireframes

Creative designs ndash Mobile first

Catalogs deep dive

Site build PowerShell scripts

Team Foundation Server and Application Lifecycle Management

Starting a new project

Managing content authoring

Site Improve tool

SEO Optimizations

Analytics options

Retaining Page Ranks with permanent redirects (301)

Azure SharePoint Hosting

Q amp A

Session Evaluations

Go to Evaluations on the home page of wwwcollabconorg

It is important to get your feedback

Please fill out evaluations for all the sessions you attend

Following the conference a random drawing from all completed evaluations will be selected

The winner will receive a $250 Future Shop gift card valid online or in store

Page 87: Web Content Management - CollabCon 2015 - Web... · Performances Complete Works ... Friendly URL An SEO friendly URL defined in the term store for a page, rather than ... What’s

Application Lifecycle Management

Purpose

How do we build a solid SharePoint development environment for the enterprise

How do a number of developers work together on a SharePoint project

How does code and content move through a dev test and production lifecycle

What is Agile and Continuous Integration and why is it important

Visual Studio and Team Foundation Server

Visual Studio 2010 is the development platform for coding on SharePoint 2010

Team Foundation Server integrates with Visual Studio to provide a repository for code test and other project artifacts

It facilitates teamwork by providing a common place for developers to work together

Provisioning SharePoint Farms

Provisioning SharePoint Farms

Every developer needs their own complete SharePoint farm

Teams need a dev integration farm to bring their work together on

A full architecture needs QA and production farms as well

Envision IT Virtualization Architecture

Developer VM Template

SharePoint Server 2010 Enterprise

SP1 and August CU

Visual Studio 2010 Premium SP1

Office 2010 Professional Plus SP1

SharePoint Designer 2010 SP1

Fiddler

SQL Server 2008 R2 SP1

Creating a new Developer VM

Open System Centre Virtual Machine Manager

Create Virtual Machine

Choose the Developer VM template

Set the virtual machine name and options

Create and start the VM

Creating a new Developer VM - Step 2

Developer RDPs to their new VM Complete the SQL Server installation

Create the default instance Set the service account(s) Set the authentication mode and server administrators

Update the AutoSPInstallerInputxml file Set the machine name for the default sites and database server Set the service account passwords

Run the AutoSPInstallerLaunch batch file Do a Health check review

Creating a new Developer VM - Step 3

Start Visual Studio

Connect to the Team Foundation Server

Setup your workspaces

Use a standard naming convention across your team

CDevelopmentTFSCollection

Other Environments

Dev Integration QA and Production can all be built using AutoSPInstall

Donrsquot need or want the Visual Studio or Office tools on these servers

We have a base template we use for dev integration servers

QA should match the Prod architecture as closely as possible

High availability with load balancing clustered SQL app servers DMZ hardening Internet publishing

Agile Development

Agile with Team Foundation Server

Creating Your TFS Project

Open Visual Studio

Make sure you are connected to the right Team Project Collection

In Team Explorer right-click the top collection and create a new Team Project

Use the Scrum 10 template

Go into the Areas and Iterations Delete the extraneous releases and sprints

Create a product backlog iteration

Start adding your stories and tasks

Continuous Integration

Continuous Integration

Automated Testing

SharePoint Site Elements

Site structure Site columns content types subsites lists libraries

Branding elements Master pages layouts CSS XSLT supporting images

Custom web parts Page and site content Web part instances Search Workflows Business Connectivity Services Managed Metadata

SharePoint Site Elements ndash Part 2

Access Excel Word Visio

PerformancePoint

Document conversions

Timer jobs

Secure Store Service

User profiles

Site Structure

bull Site columns

bull Define the fields that are used by content types

bull Content types

bull Defines collections of site columns for different types of content

bull Subsites

bull The hierarchy of sites that make up the site collection

bull Lists and Libraries

bull The lists and libraries for each subsite

Site Structure ndash Part 2

Site columns and content types can be programmatically or manually created If they are going to be used in multiple site collections they should be

programmatically created

If a single site collection they can be created manually in a master site collection

GUIDs cannot be manually set and code may need them to be consistent

You can create them manually in SharePoint save the site as a template and import them into Visual Studio to create a proper WSP package

Site Structure ndash Part 3

Site structure can also be done either programmatically or manually

Many sites are complex and it is error prone to create manually

We use our own SiteModelBuilder tool to create the site structure

Site Structure ndash Part 4

For all site structure elements changes can also be manual or programmatic It is useful to be able to delete the whole site collection and recreate it

programmatically As soon as content starts being authored in SharePoint it becomes difficult

or impossible to do that

After content authoring has started Site column and content type changes need to be programmed explicitly

(you canrsquot just drop the content type and recreate it) Site structure changes are usually done manually at this point Changes need to be backed up and restored

Change Management

Page and Site Content

Page and site content is entered directly into SharePoint by the content authors Web pages images PDFs list content etc This should be done in the master site separate from where dev integration is

happening Care needs to be taken with this site once authors start working Make sure it is part of your production backup plan

Periodically back it up and restore it to the dev integration and developer VMs

Alternatively script the export and import Ultimately it will be backed up and restored to the QA and production

farms

Change Management

Change Management

Change Management

Change Management

Web part instances

Web parts ultimately get placed on pages

The configuration of the web parts can often get quite complex

You may want to disable editing of web parts for general content authors

They end up in a grey zone between code and content

Web part instances ndash Part 2

We created our own internal tool to export and import web parts

Each web partrsquos configuration can be exported into a webpartfile

We scripted the extraction from the dev integration

webpart files are treated like code and checked into TFS for version control

Script then applies the new webpart files to the target environment

Workflows

Workflows can be built using SharePoint Designer Visual Studio or third-party tools (Nintex or K2 primarily)

Visual Studio workflow projects are automatically packaged as WSP solution files Simply deploy the WSP file to the other environments

SharePoint Designer workflows need to be deployed using SharePoint Designer This means you need SPD access to production which is not always possible

You can load the SPD workflow into Visual Studio to package it but you lose the ability to edit it in SPD

If you use third-party tools yoursquoll need to define the process for that as well

Business Connectivity Services

BCS can be built using either SharePoint Designer or Visual Studio Visual Studio BCS projects are automatically packaged as WSP

solution files Simply deploy the WSP file to the other environments You can also export the BDC metadata model in the BDC service

application

SharePoint Designer doesnrsquot create a WSP and it doesnrsquot make a complete BDC metadata model You need to export and import using SharePoint Designer

In both cases you still need to deal with connection and configuration information

Future Directions

Visual Studio Lab Management

Integrates the management of HyperV environments in with Visual Studio and Team Foundation Server

Can automate the provisioning of lab environments for automated testing

Test failures can snapshot entire environments to make reproduction of errors much easier

Summary

Yoursquore going to have lots of SharePoint environments ndash figure out how to build them quickly and repeatable

Code and content often move in opposite directions through dev QA and Prod PowerShell script and automate to keep this simple

Agile is a great way to run projects

Continuous integration with automated testing is key to its success

There are lots of parts of SharePoint that you donrsquot code through Visual Studio Figure out how you move those through your environment

Other Topics

Site Design

Information architecture

Wireframes

Creative designs ndash Mobile first

Catalogs deep dive

Site build PowerShell scripts

Team Foundation Server and Application Lifecycle Management

Starting a new project

Managing content authoring

Site Improve tool

SEO Optimizations

Analytics options

Retaining Page Ranks with permanent redirects (301)

Azure SharePoint Hosting

Q amp A

Session Evaluations

Go to Evaluations on the home page of wwwcollabconorg

It is important to get your feedback

Please fill out evaluations for all the sessions you attend

Following the conference a random drawing from all completed evaluations will be selected

The winner will receive a $250 Future Shop gift card valid online or in store

Page 88: Web Content Management - CollabCon 2015 - Web... · Performances Complete Works ... Friendly URL An SEO friendly URL defined in the term store for a page, rather than ... What’s

Purpose

How do we build a solid SharePoint development environment for the enterprise

How do a number of developers work together on a SharePoint project

How does code and content move through a dev test and production lifecycle

What is Agile and Continuous Integration and why is it important

Visual Studio and Team Foundation Server

Visual Studio 2010 is the development platform for coding on SharePoint 2010

Team Foundation Server integrates with Visual Studio to provide a repository for code test and other project artifacts

It facilitates teamwork by providing a common place for developers to work together

Provisioning SharePoint Farms

Provisioning SharePoint Farms

Every developer needs their own complete SharePoint farm

Teams need a dev integration farm to bring their work together on

A full architecture needs QA and production farms as well

Envision IT Virtualization Architecture

Developer VM Template

SharePoint Server 2010 Enterprise

SP1 and August CU

Visual Studio 2010 Premium SP1

Office 2010 Professional Plus SP1

SharePoint Designer 2010 SP1

Fiddler

SQL Server 2008 R2 SP1

Creating a new Developer VM

Open System Centre Virtual Machine Manager

Create Virtual Machine

Choose the Developer VM template

Set the virtual machine name and options

Create and start the VM

Creating a new Developer VM - Step 2

Developer RDPs to their new VM Complete the SQL Server installation

Create the default instance Set the service account(s) Set the authentication mode and server administrators

Update the AutoSPInstallerInputxml file Set the machine name for the default sites and database server Set the service account passwords

Run the AutoSPInstallerLaunch batch file Do a Health check review

Creating a new Developer VM - Step 3

Start Visual Studio

Connect to the Team Foundation Server

Setup your workspaces

Use a standard naming convention across your team

CDevelopmentTFSCollection

Other Environments

Dev Integration QA and Production can all be built using AutoSPInstall

Donrsquot need or want the Visual Studio or Office tools on these servers

We have a base template we use for dev integration servers

QA should match the Prod architecture as closely as possible

High availability with load balancing clustered SQL app servers DMZ hardening Internet publishing

Agile Development

Agile with Team Foundation Server

Creating Your TFS Project

Open Visual Studio

Make sure you are connected to the right Team Project Collection

In Team Explorer right-click the top collection and create a new Team Project

Use the Scrum 10 template

Go into the Areas and Iterations Delete the extraneous releases and sprints

Create a product backlog iteration

Start adding your stories and tasks

Continuous Integration

Continuous Integration

Automated Testing

SharePoint Site Elements

Site structure Site columns content types subsites lists libraries

Branding elements Master pages layouts CSS XSLT supporting images

Custom web parts Page and site content Web part instances Search Workflows Business Connectivity Services Managed Metadata

SharePoint Site Elements ndash Part 2

Access Excel Word Visio

PerformancePoint

Document conversions

Timer jobs

Secure Store Service

User profiles

Site Structure

bull Site columns

bull Define the fields that are used by content types

bull Content types

bull Defines collections of site columns for different types of content

bull Subsites

bull The hierarchy of sites that make up the site collection

bull Lists and Libraries

bull The lists and libraries for each subsite

Site Structure ndash Part 2

Site columns and content types can be programmatically or manually created If they are going to be used in multiple site collections they should be

programmatically created

If a single site collection they can be created manually in a master site collection

GUIDs cannot be manually set and code may need them to be consistent

You can create them manually in SharePoint save the site as a template and import them into Visual Studio to create a proper WSP package

Site Structure ndash Part 3

Site structure can also be done either programmatically or manually

Many sites are complex and it is error prone to create manually

We use our own SiteModelBuilder tool to create the site structure

Site Structure ndash Part 4

For all site structure elements changes can also be manual or programmatic It is useful to be able to delete the whole site collection and recreate it

programmatically As soon as content starts being authored in SharePoint it becomes difficult

or impossible to do that

After content authoring has started Site column and content type changes need to be programmed explicitly

(you canrsquot just drop the content type and recreate it) Site structure changes are usually done manually at this point Changes need to be backed up and restored

Change Management

Page and Site Content

Page and site content is entered directly into SharePoint by the content authors Web pages images PDFs list content etc This should be done in the master site separate from where dev integration is

happening Care needs to be taken with this site once authors start working Make sure it is part of your production backup plan

Periodically back it up and restore it to the dev integration and developer VMs

Alternatively script the export and import Ultimately it will be backed up and restored to the QA and production

farms

Change Management

Change Management

Change Management

Change Management

Web part instances

Web parts ultimately get placed on pages

The configuration of the web parts can often get quite complex

You may want to disable editing of web parts for general content authors

They end up in a grey zone between code and content

Web part instances ndash Part 2

We created our own internal tool to export and import web parts

Each web partrsquos configuration can be exported into a webpartfile

We scripted the extraction from the dev integration

webpart files are treated like code and checked into TFS for version control

Script then applies the new webpart files to the target environment

Workflows

Workflows can be built using SharePoint Designer Visual Studio or third-party tools (Nintex or K2 primarily)

Visual Studio workflow projects are automatically packaged as WSP solution files Simply deploy the WSP file to the other environments

SharePoint Designer workflows need to be deployed using SharePoint Designer This means you need SPD access to production which is not always possible

You can load the SPD workflow into Visual Studio to package it but you lose the ability to edit it in SPD

If you use third-party tools yoursquoll need to define the process for that as well

Business Connectivity Services

BCS can be built using either SharePoint Designer or Visual Studio Visual Studio BCS projects are automatically packaged as WSP

solution files Simply deploy the WSP file to the other environments You can also export the BDC metadata model in the BDC service

application

SharePoint Designer doesnrsquot create a WSP and it doesnrsquot make a complete BDC metadata model You need to export and import using SharePoint Designer

In both cases you still need to deal with connection and configuration information

Future Directions

Visual Studio Lab Management

Integrates the management of HyperV environments in with Visual Studio and Team Foundation Server

Can automate the provisioning of lab environments for automated testing

Test failures can snapshot entire environments to make reproduction of errors much easier

Summary

Yoursquore going to have lots of SharePoint environments ndash figure out how to build them quickly and repeatable

Code and content often move in opposite directions through dev QA and Prod PowerShell script and automate to keep this simple

Agile is a great way to run projects

Continuous integration with automated testing is key to its success

There are lots of parts of SharePoint that you donrsquot code through Visual Studio Figure out how you move those through your environment

Other Topics

Site Design

Information architecture

Wireframes

Creative designs ndash Mobile first

Catalogs deep dive

Site build PowerShell scripts

Team Foundation Server and Application Lifecycle Management

Starting a new project

Managing content authoring

Site Improve tool

SEO Optimizations

Analytics options

Retaining Page Ranks with permanent redirects (301)

Azure SharePoint Hosting

Q amp A

Session Evaluations

Go to Evaluations on the home page of wwwcollabconorg

It is important to get your feedback

Please fill out evaluations for all the sessions you attend

Following the conference a random drawing from all completed evaluations will be selected

The winner will receive a $250 Future Shop gift card valid online or in store

Page 89: Web Content Management - CollabCon 2015 - Web... · Performances Complete Works ... Friendly URL An SEO friendly URL defined in the term store for a page, rather than ... What’s

Visual Studio and Team Foundation Server

Visual Studio 2010 is the development platform for coding on SharePoint 2010

Team Foundation Server integrates with Visual Studio to provide a repository for code test and other project artifacts

It facilitates teamwork by providing a common place for developers to work together

Provisioning SharePoint Farms

Provisioning SharePoint Farms

Every developer needs their own complete SharePoint farm

Teams need a dev integration farm to bring their work together on

A full architecture needs QA and production farms as well

Envision IT Virtualization Architecture

Developer VM Template

SharePoint Server 2010 Enterprise

SP1 and August CU

Visual Studio 2010 Premium SP1

Office 2010 Professional Plus SP1

SharePoint Designer 2010 SP1

Fiddler

SQL Server 2008 R2 SP1

Creating a new Developer VM

Open System Centre Virtual Machine Manager

Create Virtual Machine

Choose the Developer VM template

Set the virtual machine name and options

Create and start the VM

Creating a new Developer VM - Step 2

Developer RDPs to their new VM Complete the SQL Server installation

Create the default instance Set the service account(s) Set the authentication mode and server administrators

Update the AutoSPInstallerInputxml file Set the machine name for the default sites and database server Set the service account passwords

Run the AutoSPInstallerLaunch batch file Do a Health check review

Creating a new Developer VM - Step 3

Start Visual Studio

Connect to the Team Foundation Server

Setup your workspaces

Use a standard naming convention across your team

CDevelopmentTFSCollection

Other Environments

Dev Integration QA and Production can all be built using AutoSPInstall

Donrsquot need or want the Visual Studio or Office tools on these servers

We have a base template we use for dev integration servers

QA should match the Prod architecture as closely as possible

High availability with load balancing clustered SQL app servers DMZ hardening Internet publishing

Agile Development

Agile with Team Foundation Server

Creating Your TFS Project

Open Visual Studio

Make sure you are connected to the right Team Project Collection

In Team Explorer right-click the top collection and create a new Team Project

Use the Scrum 10 template

Go into the Areas and Iterations Delete the extraneous releases and sprints

Create a product backlog iteration

Start adding your stories and tasks

Continuous Integration

Continuous Integration

Automated Testing

SharePoint Site Elements

Site structure Site columns content types subsites lists libraries

Branding elements Master pages layouts CSS XSLT supporting images

Custom web parts Page and site content Web part instances Search Workflows Business Connectivity Services Managed Metadata

SharePoint Site Elements ndash Part 2

Access Excel Word Visio

PerformancePoint

Document conversions

Timer jobs

Secure Store Service

User profiles

Site Structure

bull Site columns

bull Define the fields that are used by content types

bull Content types

bull Defines collections of site columns for different types of content

bull Subsites

bull The hierarchy of sites that make up the site collection

bull Lists and Libraries

bull The lists and libraries for each subsite

Site Structure ndash Part 2

Site columns and content types can be programmatically or manually created If they are going to be used in multiple site collections they should be

programmatically created

If a single site collection they can be created manually in a master site collection

GUIDs cannot be manually set and code may need them to be consistent

You can create them manually in SharePoint save the site as a template and import them into Visual Studio to create a proper WSP package

Site Structure ndash Part 3

Site structure can also be done either programmatically or manually

Many sites are complex and it is error prone to create manually

We use our own SiteModelBuilder tool to create the site structure

Site Structure ndash Part 4

For all site structure elements changes can also be manual or programmatic It is useful to be able to delete the whole site collection and recreate it

programmatically As soon as content starts being authored in SharePoint it becomes difficult

or impossible to do that

After content authoring has started Site column and content type changes need to be programmed explicitly

(you canrsquot just drop the content type and recreate it) Site structure changes are usually done manually at this point Changes need to be backed up and restored

Change Management

Page and Site Content

Page and site content is entered directly into SharePoint by the content authors Web pages images PDFs list content etc This should be done in the master site separate from where dev integration is

happening Care needs to be taken with this site once authors start working Make sure it is part of your production backup plan

Periodically back it up and restore it to the dev integration and developer VMs

Alternatively script the export and import Ultimately it will be backed up and restored to the QA and production

farms

Change Management

Change Management

Change Management

Change Management

Web part instances

Web parts ultimately get placed on pages

The configuration of the web parts can often get quite complex

You may want to disable editing of web parts for general content authors

They end up in a grey zone between code and content

Web part instances ndash Part 2

We created our own internal tool to export and import web parts

Each web partrsquos configuration can be exported into a webpartfile

We scripted the extraction from the dev integration

webpart files are treated like code and checked into TFS for version control

Script then applies the new webpart files to the target environment

Workflows

Workflows can be built using SharePoint Designer Visual Studio or third-party tools (Nintex or K2 primarily)

Visual Studio workflow projects are automatically packaged as WSP solution files Simply deploy the WSP file to the other environments

SharePoint Designer workflows need to be deployed using SharePoint Designer This means you need SPD access to production which is not always possible

You can load the SPD workflow into Visual Studio to package it but you lose the ability to edit it in SPD

If you use third-party tools yoursquoll need to define the process for that as well

Business Connectivity Services

BCS can be built using either SharePoint Designer or Visual Studio Visual Studio BCS projects are automatically packaged as WSP

solution files Simply deploy the WSP file to the other environments You can also export the BDC metadata model in the BDC service

application

SharePoint Designer doesnrsquot create a WSP and it doesnrsquot make a complete BDC metadata model You need to export and import using SharePoint Designer

In both cases you still need to deal with connection and configuration information

Future Directions

Visual Studio Lab Management

Integrates the management of HyperV environments in with Visual Studio and Team Foundation Server

Can automate the provisioning of lab environments for automated testing

Test failures can snapshot entire environments to make reproduction of errors much easier

Summary

Yoursquore going to have lots of SharePoint environments ndash figure out how to build them quickly and repeatable

Code and content often move in opposite directions through dev QA and Prod PowerShell script and automate to keep this simple

Agile is a great way to run projects

Continuous integration with automated testing is key to its success

There are lots of parts of SharePoint that you donrsquot code through Visual Studio Figure out how you move those through your environment

Other Topics

Site Design

Information architecture

Wireframes

Creative designs ndash Mobile first

Catalogs deep dive

Site build PowerShell scripts

Team Foundation Server and Application Lifecycle Management

Starting a new project

Managing content authoring

Site Improve tool

SEO Optimizations

Analytics options

Retaining Page Ranks with permanent redirects (301)

Azure SharePoint Hosting

Q amp A

Session Evaluations

Go to Evaluations on the home page of wwwcollabconorg

It is important to get your feedback

Please fill out evaluations for all the sessions you attend

Following the conference a random drawing from all completed evaluations will be selected

The winner will receive a $250 Future Shop gift card valid online or in store

Page 90: Web Content Management - CollabCon 2015 - Web... · Performances Complete Works ... Friendly URL An SEO friendly URL defined in the term store for a page, rather than ... What’s

Provisioning SharePoint Farms

Provisioning SharePoint Farms

Every developer needs their own complete SharePoint farm

Teams need a dev integration farm to bring their work together on

A full architecture needs QA and production farms as well

Envision IT Virtualization Architecture

Developer VM Template

SharePoint Server 2010 Enterprise

SP1 and August CU

Visual Studio 2010 Premium SP1

Office 2010 Professional Plus SP1

SharePoint Designer 2010 SP1

Fiddler

SQL Server 2008 R2 SP1

Creating a new Developer VM

Open System Centre Virtual Machine Manager

Create Virtual Machine

Choose the Developer VM template

Set the virtual machine name and options

Create and start the VM

Creating a new Developer VM - Step 2

Developer RDPs to their new VM Complete the SQL Server installation

Create the default instance Set the service account(s) Set the authentication mode and server administrators

Update the AutoSPInstallerInputxml file Set the machine name for the default sites and database server Set the service account passwords

Run the AutoSPInstallerLaunch batch file Do a Health check review

Creating a new Developer VM - Step 3

Start Visual Studio

Connect to the Team Foundation Server

Setup your workspaces

Use a standard naming convention across your team

CDevelopmentTFSCollection

Other Environments

Dev Integration QA and Production can all be built using AutoSPInstall

Donrsquot need or want the Visual Studio or Office tools on these servers

We have a base template we use for dev integration servers

QA should match the Prod architecture as closely as possible

High availability with load balancing clustered SQL app servers DMZ hardening Internet publishing

Agile Development

Agile with Team Foundation Server

Creating Your TFS Project

Open Visual Studio

Make sure you are connected to the right Team Project Collection

In Team Explorer right-click the top collection and create a new Team Project

Use the Scrum 10 template

Go into the Areas and Iterations Delete the extraneous releases and sprints

Create a product backlog iteration

Start adding your stories and tasks

Continuous Integration

Continuous Integration

Automated Testing

SharePoint Site Elements

Site structure Site columns content types subsites lists libraries

Branding elements Master pages layouts CSS XSLT supporting images

Custom web parts Page and site content Web part instances Search Workflows Business Connectivity Services Managed Metadata

SharePoint Site Elements ndash Part 2

Access Excel Word Visio

PerformancePoint

Document conversions

Timer jobs

Secure Store Service

User profiles

Site Structure

bull Site columns

bull Define the fields that are used by content types

bull Content types

bull Defines collections of site columns for different types of content

bull Subsites

bull The hierarchy of sites that make up the site collection

bull Lists and Libraries

bull The lists and libraries for each subsite

Site Structure ndash Part 2

Site columns and content types can be programmatically or manually created If they are going to be used in multiple site collections they should be

programmatically created

If a single site collection they can be created manually in a master site collection

GUIDs cannot be manually set and code may need them to be consistent

You can create them manually in SharePoint save the site as a template and import them into Visual Studio to create a proper WSP package

Site Structure ndash Part 3

Site structure can also be done either programmatically or manually

Many sites are complex and it is error prone to create manually

We use our own SiteModelBuilder tool to create the site structure

Site Structure ndash Part 4

For all site structure elements changes can also be manual or programmatic It is useful to be able to delete the whole site collection and recreate it

programmatically As soon as content starts being authored in SharePoint it becomes difficult

or impossible to do that

After content authoring has started Site column and content type changes need to be programmed explicitly

(you canrsquot just drop the content type and recreate it) Site structure changes are usually done manually at this point Changes need to be backed up and restored

Change Management

Page and Site Content

Page and site content is entered directly into SharePoint by the content authors Web pages images PDFs list content etc This should be done in the master site separate from where dev integration is

happening Care needs to be taken with this site once authors start working Make sure it is part of your production backup plan

Periodically back it up and restore it to the dev integration and developer VMs

Alternatively script the export and import Ultimately it will be backed up and restored to the QA and production

farms

Change Management

Change Management

Change Management

Change Management

Web part instances

Web parts ultimately get placed on pages

The configuration of the web parts can often get quite complex

You may want to disable editing of web parts for general content authors

They end up in a grey zone between code and content

Web part instances ndash Part 2

We created our own internal tool to export and import web parts

Each web partrsquos configuration can be exported into a webpartfile

We scripted the extraction from the dev integration

webpart files are treated like code and checked into TFS for version control

Script then applies the new webpart files to the target environment

Workflows

Workflows can be built using SharePoint Designer Visual Studio or third-party tools (Nintex or K2 primarily)

Visual Studio workflow projects are automatically packaged as WSP solution files Simply deploy the WSP file to the other environments

SharePoint Designer workflows need to be deployed using SharePoint Designer This means you need SPD access to production which is not always possible

You can load the SPD workflow into Visual Studio to package it but you lose the ability to edit it in SPD

If you use third-party tools yoursquoll need to define the process for that as well

Business Connectivity Services

BCS can be built using either SharePoint Designer or Visual Studio Visual Studio BCS projects are automatically packaged as WSP

solution files Simply deploy the WSP file to the other environments You can also export the BDC metadata model in the BDC service

application

SharePoint Designer doesnrsquot create a WSP and it doesnrsquot make a complete BDC metadata model You need to export and import using SharePoint Designer

In both cases you still need to deal with connection and configuration information

Future Directions

Visual Studio Lab Management

Integrates the management of HyperV environments in with Visual Studio and Team Foundation Server

Can automate the provisioning of lab environments for automated testing

Test failures can snapshot entire environments to make reproduction of errors much easier

Summary

Yoursquore going to have lots of SharePoint environments ndash figure out how to build them quickly and repeatable

Code and content often move in opposite directions through dev QA and Prod PowerShell script and automate to keep this simple

Agile is a great way to run projects

Continuous integration with automated testing is key to its success

There are lots of parts of SharePoint that you donrsquot code through Visual Studio Figure out how you move those through your environment

Other Topics

Site Design

Information architecture

Wireframes

Creative designs ndash Mobile first

Catalogs deep dive

Site build PowerShell scripts

Team Foundation Server and Application Lifecycle Management

Starting a new project

Managing content authoring

Site Improve tool

SEO Optimizations

Analytics options

Retaining Page Ranks with permanent redirects (301)

Azure SharePoint Hosting

Q amp A

Session Evaluations

Go to Evaluations on the home page of wwwcollabconorg

It is important to get your feedback

Please fill out evaluations for all the sessions you attend

Following the conference a random drawing from all completed evaluations will be selected

The winner will receive a $250 Future Shop gift card valid online or in store

Page 91: Web Content Management - CollabCon 2015 - Web... · Performances Complete Works ... Friendly URL An SEO friendly URL defined in the term store for a page, rather than ... What’s

Provisioning SharePoint Farms

Every developer needs their own complete SharePoint farm

Teams need a dev integration farm to bring their work together on

A full architecture needs QA and production farms as well

Envision IT Virtualization Architecture

Developer VM Template

SharePoint Server 2010 Enterprise

SP1 and August CU

Visual Studio 2010 Premium SP1

Office 2010 Professional Plus SP1

SharePoint Designer 2010 SP1

Fiddler

SQL Server 2008 R2 SP1

Creating a new Developer VM

Open System Centre Virtual Machine Manager

Create Virtual Machine

Choose the Developer VM template

Set the virtual machine name and options

Create and start the VM

Creating a new Developer VM - Step 2

Developer RDPs to their new VM Complete the SQL Server installation

Create the default instance Set the service account(s) Set the authentication mode and server administrators

Update the AutoSPInstallerInputxml file Set the machine name for the default sites and database server Set the service account passwords

Run the AutoSPInstallerLaunch batch file Do a Health check review

Creating a new Developer VM - Step 3

Start Visual Studio

Connect to the Team Foundation Server

Setup your workspaces

Use a standard naming convention across your team

CDevelopmentTFSCollection

Other Environments

Dev Integration QA and Production can all be built using AutoSPInstall

Donrsquot need or want the Visual Studio or Office tools on these servers

We have a base template we use for dev integration servers

QA should match the Prod architecture as closely as possible

High availability with load balancing clustered SQL app servers DMZ hardening Internet publishing

Agile Development

Agile with Team Foundation Server

Creating Your TFS Project

Open Visual Studio

Make sure you are connected to the right Team Project Collection

In Team Explorer right-click the top collection and create a new Team Project

Use the Scrum 10 template

Go into the Areas and Iterations Delete the extraneous releases and sprints

Create a product backlog iteration

Start adding your stories and tasks

Continuous Integration

Continuous Integration

Automated Testing

SharePoint Site Elements

Site structure Site columns content types subsites lists libraries

Branding elements Master pages layouts CSS XSLT supporting images

Custom web parts Page and site content Web part instances Search Workflows Business Connectivity Services Managed Metadata

SharePoint Site Elements ndash Part 2

Access Excel Word Visio

PerformancePoint

Document conversions

Timer jobs

Secure Store Service

User profiles

Site Structure

bull Site columns

bull Define the fields that are used by content types

bull Content types

bull Defines collections of site columns for different types of content

bull Subsites

bull The hierarchy of sites that make up the site collection

bull Lists and Libraries

bull The lists and libraries for each subsite

Site Structure ndash Part 2

Site columns and content types can be programmatically or manually created If they are going to be used in multiple site collections they should be

programmatically created

If a single site collection they can be created manually in a master site collection

GUIDs cannot be manually set and code may need them to be consistent

You can create them manually in SharePoint save the site as a template and import them into Visual Studio to create a proper WSP package

Site Structure ndash Part 3

Site structure can also be done either programmatically or manually

Many sites are complex and it is error prone to create manually

We use our own SiteModelBuilder tool to create the site structure

Site Structure ndash Part 4

For all site structure elements changes can also be manual or programmatic It is useful to be able to delete the whole site collection and recreate it

programmatically As soon as content starts being authored in SharePoint it becomes difficult

or impossible to do that

After content authoring has started Site column and content type changes need to be programmed explicitly

(you canrsquot just drop the content type and recreate it) Site structure changes are usually done manually at this point Changes need to be backed up and restored

Change Management

Page and Site Content

Page and site content is entered directly into SharePoint by the content authors Web pages images PDFs list content etc This should be done in the master site separate from where dev integration is

happening Care needs to be taken with this site once authors start working Make sure it is part of your production backup plan

Periodically back it up and restore it to the dev integration and developer VMs

Alternatively script the export and import Ultimately it will be backed up and restored to the QA and production

farms

Change Management

Change Management

Change Management

Change Management

Web part instances

Web parts ultimately get placed on pages

The configuration of the web parts can often get quite complex

You may want to disable editing of web parts for general content authors

They end up in a grey zone between code and content

Web part instances ndash Part 2

We created our own internal tool to export and import web parts

Each web partrsquos configuration can be exported into a webpartfile

We scripted the extraction from the dev integration

webpart files are treated like code and checked into TFS for version control

Script then applies the new webpart files to the target environment

Workflows

Workflows can be built using SharePoint Designer Visual Studio or third-party tools (Nintex or K2 primarily)

Visual Studio workflow projects are automatically packaged as WSP solution files Simply deploy the WSP file to the other environments

SharePoint Designer workflows need to be deployed using SharePoint Designer This means you need SPD access to production which is not always possible

You can load the SPD workflow into Visual Studio to package it but you lose the ability to edit it in SPD

If you use third-party tools yoursquoll need to define the process for that as well

Business Connectivity Services

BCS can be built using either SharePoint Designer or Visual Studio Visual Studio BCS projects are automatically packaged as WSP

solution files Simply deploy the WSP file to the other environments You can also export the BDC metadata model in the BDC service

application

SharePoint Designer doesnrsquot create a WSP and it doesnrsquot make a complete BDC metadata model You need to export and import using SharePoint Designer

In both cases you still need to deal with connection and configuration information

Future Directions

Visual Studio Lab Management

Integrates the management of HyperV environments in with Visual Studio and Team Foundation Server

Can automate the provisioning of lab environments for automated testing

Test failures can snapshot entire environments to make reproduction of errors much easier

Summary

Yoursquore going to have lots of SharePoint environments ndash figure out how to build them quickly and repeatable

Code and content often move in opposite directions through dev QA and Prod PowerShell script and automate to keep this simple

Agile is a great way to run projects

Continuous integration with automated testing is key to its success

There are lots of parts of SharePoint that you donrsquot code through Visual Studio Figure out how you move those through your environment

Other Topics

Site Design

Information architecture

Wireframes

Creative designs ndash Mobile first

Catalogs deep dive

Site build PowerShell scripts

Team Foundation Server and Application Lifecycle Management

Starting a new project

Managing content authoring

Site Improve tool

SEO Optimizations

Analytics options

Retaining Page Ranks with permanent redirects (301)

Azure SharePoint Hosting

Q amp A

Session Evaluations

Go to Evaluations on the home page of wwwcollabconorg

It is important to get your feedback

Please fill out evaluations for all the sessions you attend

Following the conference a random drawing from all completed evaluations will be selected

The winner will receive a $250 Future Shop gift card valid online or in store

Page 92: Web Content Management - CollabCon 2015 - Web... · Performances Complete Works ... Friendly URL An SEO friendly URL defined in the term store for a page, rather than ... What’s

Envision IT Virtualization Architecture

Developer VM Template

SharePoint Server 2010 Enterprise

SP1 and August CU

Visual Studio 2010 Premium SP1

Office 2010 Professional Plus SP1

SharePoint Designer 2010 SP1

Fiddler

SQL Server 2008 R2 SP1

Creating a new Developer VM

Open System Centre Virtual Machine Manager

Create Virtual Machine

Choose the Developer VM template

Set the virtual machine name and options

Create and start the VM

Creating a new Developer VM - Step 2

Developer RDPs to their new VM Complete the SQL Server installation

Create the default instance Set the service account(s) Set the authentication mode and server administrators

Update the AutoSPInstallerInputxml file Set the machine name for the default sites and database server Set the service account passwords

Run the AutoSPInstallerLaunch batch file Do a Health check review

Creating a new Developer VM - Step 3

Start Visual Studio

Connect to the Team Foundation Server

Setup your workspaces

Use a standard naming convention across your team

CDevelopmentTFSCollection

Other Environments

Dev Integration QA and Production can all be built using AutoSPInstall

Donrsquot need or want the Visual Studio or Office tools on these servers

We have a base template we use for dev integration servers

QA should match the Prod architecture as closely as possible

High availability with load balancing clustered SQL app servers DMZ hardening Internet publishing

Agile Development

Agile with Team Foundation Server

Creating Your TFS Project

Open Visual Studio

Make sure you are connected to the right Team Project Collection

In Team Explorer right-click the top collection and create a new Team Project

Use the Scrum 10 template

Go into the Areas and Iterations Delete the extraneous releases and sprints

Create a product backlog iteration

Start adding your stories and tasks

Continuous Integration

Continuous Integration

Automated Testing

SharePoint Site Elements

Site structure Site columns content types subsites lists libraries

Branding elements Master pages layouts CSS XSLT supporting images

Custom web parts Page and site content Web part instances Search Workflows Business Connectivity Services Managed Metadata

SharePoint Site Elements ndash Part 2

Access Excel Word Visio

PerformancePoint

Document conversions

Timer jobs

Secure Store Service

User profiles

Site Structure

bull Site columns

bull Define the fields that are used by content types

bull Content types

bull Defines collections of site columns for different types of content

bull Subsites

bull The hierarchy of sites that make up the site collection

bull Lists and Libraries

bull The lists and libraries for each subsite

Site Structure ndash Part 2

Site columns and content types can be programmatically or manually created If they are going to be used in multiple site collections they should be

programmatically created

If a single site collection they can be created manually in a master site collection

GUIDs cannot be manually set and code may need them to be consistent

You can create them manually in SharePoint save the site as a template and import them into Visual Studio to create a proper WSP package

Site Structure ndash Part 3

Site structure can also be done either programmatically or manually

Many sites are complex and it is error prone to create manually

We use our own SiteModelBuilder tool to create the site structure

Site Structure ndash Part 4

For all site structure elements changes can also be manual or programmatic It is useful to be able to delete the whole site collection and recreate it

programmatically As soon as content starts being authored in SharePoint it becomes difficult

or impossible to do that

After content authoring has started Site column and content type changes need to be programmed explicitly

(you canrsquot just drop the content type and recreate it) Site structure changes are usually done manually at this point Changes need to be backed up and restored

Change Management

Page and Site Content

Page and site content is entered directly into SharePoint by the content authors Web pages images PDFs list content etc This should be done in the master site separate from where dev integration is

happening Care needs to be taken with this site once authors start working Make sure it is part of your production backup plan

Periodically back it up and restore it to the dev integration and developer VMs

Alternatively script the export and import Ultimately it will be backed up and restored to the QA and production

farms

Change Management

Change Management

Change Management

Change Management

Web part instances

Web parts ultimately get placed on pages

The configuration of the web parts can often get quite complex

You may want to disable editing of web parts for general content authors

They end up in a grey zone between code and content

Web part instances ndash Part 2

We created our own internal tool to export and import web parts

Each web partrsquos configuration can be exported into a webpartfile

We scripted the extraction from the dev integration

webpart files are treated like code and checked into TFS for version control

Script then applies the new webpart files to the target environment

Workflows

Workflows can be built using SharePoint Designer Visual Studio or third-party tools (Nintex or K2 primarily)

Visual Studio workflow projects are automatically packaged as WSP solution files Simply deploy the WSP file to the other environments

SharePoint Designer workflows need to be deployed using SharePoint Designer This means you need SPD access to production which is not always possible

You can load the SPD workflow into Visual Studio to package it but you lose the ability to edit it in SPD

If you use third-party tools yoursquoll need to define the process for that as well

Business Connectivity Services

BCS can be built using either SharePoint Designer or Visual Studio Visual Studio BCS projects are automatically packaged as WSP

solution files Simply deploy the WSP file to the other environments You can also export the BDC metadata model in the BDC service

application

SharePoint Designer doesnrsquot create a WSP and it doesnrsquot make a complete BDC metadata model You need to export and import using SharePoint Designer

In both cases you still need to deal with connection and configuration information

Future Directions

Visual Studio Lab Management

Integrates the management of HyperV environments in with Visual Studio and Team Foundation Server

Can automate the provisioning of lab environments for automated testing

Test failures can snapshot entire environments to make reproduction of errors much easier

Summary

Yoursquore going to have lots of SharePoint environments ndash figure out how to build them quickly and repeatable

Code and content often move in opposite directions through dev QA and Prod PowerShell script and automate to keep this simple

Agile is a great way to run projects

Continuous integration with automated testing is key to its success

There are lots of parts of SharePoint that you donrsquot code through Visual Studio Figure out how you move those through your environment

Other Topics

Site Design

Information architecture

Wireframes

Creative designs ndash Mobile first

Catalogs deep dive

Site build PowerShell scripts

Team Foundation Server and Application Lifecycle Management

Starting a new project

Managing content authoring

Site Improve tool

SEO Optimizations

Analytics options

Retaining Page Ranks with permanent redirects (301)

Azure SharePoint Hosting

Q amp A

Session Evaluations

Go to Evaluations on the home page of wwwcollabconorg

It is important to get your feedback

Please fill out evaluations for all the sessions you attend

Following the conference a random drawing from all completed evaluations will be selected

The winner will receive a $250 Future Shop gift card valid online or in store

Page 93: Web Content Management - CollabCon 2015 - Web... · Performances Complete Works ... Friendly URL An SEO friendly URL defined in the term store for a page, rather than ... What’s

Developer VM Template

SharePoint Server 2010 Enterprise

SP1 and August CU

Visual Studio 2010 Premium SP1

Office 2010 Professional Plus SP1

SharePoint Designer 2010 SP1

Fiddler

SQL Server 2008 R2 SP1

Creating a new Developer VM

Open System Centre Virtual Machine Manager

Create Virtual Machine

Choose the Developer VM template

Set the virtual machine name and options

Create and start the VM

Creating a new Developer VM - Step 2

Developer RDPs to their new VM Complete the SQL Server installation

Create the default instance Set the service account(s) Set the authentication mode and server administrators

Update the AutoSPInstallerInputxml file Set the machine name for the default sites and database server Set the service account passwords

Run the AutoSPInstallerLaunch batch file Do a Health check review

Creating a new Developer VM - Step 3

Start Visual Studio

Connect to the Team Foundation Server

Setup your workspaces

Use a standard naming convention across your team

CDevelopmentTFSCollection

Other Environments

Dev Integration QA and Production can all be built using AutoSPInstall

Donrsquot need or want the Visual Studio or Office tools on these servers

We have a base template we use for dev integration servers

QA should match the Prod architecture as closely as possible

High availability with load balancing clustered SQL app servers DMZ hardening Internet publishing

Agile Development

Agile with Team Foundation Server

Creating Your TFS Project

Open Visual Studio

Make sure you are connected to the right Team Project Collection

In Team Explorer right-click the top collection and create a new Team Project

Use the Scrum 10 template

Go into the Areas and Iterations Delete the extraneous releases and sprints

Create a product backlog iteration

Start adding your stories and tasks

Continuous Integration

Continuous Integration

Automated Testing

SharePoint Site Elements

Site structure Site columns content types subsites lists libraries

Branding elements Master pages layouts CSS XSLT supporting images

Custom web parts Page and site content Web part instances Search Workflows Business Connectivity Services Managed Metadata

SharePoint Site Elements ndash Part 2

Access Excel Word Visio

PerformancePoint

Document conversions

Timer jobs

Secure Store Service

User profiles

Site Structure

bull Site columns

bull Define the fields that are used by content types

bull Content types

bull Defines collections of site columns for different types of content

bull Subsites

bull The hierarchy of sites that make up the site collection

bull Lists and Libraries

bull The lists and libraries for each subsite

Site Structure ndash Part 2

Site columns and content types can be programmatically or manually created If they are going to be used in multiple site collections they should be

programmatically created

If a single site collection they can be created manually in a master site collection

GUIDs cannot be manually set and code may need them to be consistent

You can create them manually in SharePoint save the site as a template and import them into Visual Studio to create a proper WSP package

Site Structure ndash Part 3

Site structure can also be done either programmatically or manually

Many sites are complex and it is error prone to create manually

We use our own SiteModelBuilder tool to create the site structure

Site Structure ndash Part 4

For all site structure elements changes can also be manual or programmatic It is useful to be able to delete the whole site collection and recreate it

programmatically As soon as content starts being authored in SharePoint it becomes difficult

or impossible to do that

After content authoring has started Site column and content type changes need to be programmed explicitly

(you canrsquot just drop the content type and recreate it) Site structure changes are usually done manually at this point Changes need to be backed up and restored

Change Management

Page and Site Content

Page and site content is entered directly into SharePoint by the content authors Web pages images PDFs list content etc This should be done in the master site separate from where dev integration is

happening Care needs to be taken with this site once authors start working Make sure it is part of your production backup plan

Periodically back it up and restore it to the dev integration and developer VMs

Alternatively script the export and import Ultimately it will be backed up and restored to the QA and production

farms

Change Management

Change Management

Change Management

Change Management

Web part instances

Web parts ultimately get placed on pages

The configuration of the web parts can often get quite complex

You may want to disable editing of web parts for general content authors

They end up in a grey zone between code and content

Web part instances ndash Part 2

We created our own internal tool to export and import web parts

Each web partrsquos configuration can be exported into a webpartfile

We scripted the extraction from the dev integration

webpart files are treated like code and checked into TFS for version control

Script then applies the new webpart files to the target environment

Workflows

Workflows can be built using SharePoint Designer Visual Studio or third-party tools (Nintex or K2 primarily)

Visual Studio workflow projects are automatically packaged as WSP solution files Simply deploy the WSP file to the other environments

SharePoint Designer workflows need to be deployed using SharePoint Designer This means you need SPD access to production which is not always possible

You can load the SPD workflow into Visual Studio to package it but you lose the ability to edit it in SPD

If you use third-party tools yoursquoll need to define the process for that as well

Business Connectivity Services

BCS can be built using either SharePoint Designer or Visual Studio Visual Studio BCS projects are automatically packaged as WSP

solution files Simply deploy the WSP file to the other environments You can also export the BDC metadata model in the BDC service

application

SharePoint Designer doesnrsquot create a WSP and it doesnrsquot make a complete BDC metadata model You need to export and import using SharePoint Designer

In both cases you still need to deal with connection and configuration information

Future Directions

Visual Studio Lab Management

Integrates the management of HyperV environments in with Visual Studio and Team Foundation Server

Can automate the provisioning of lab environments for automated testing

Test failures can snapshot entire environments to make reproduction of errors much easier

Summary

Yoursquore going to have lots of SharePoint environments ndash figure out how to build them quickly and repeatable

Code and content often move in opposite directions through dev QA and Prod PowerShell script and automate to keep this simple

Agile is a great way to run projects

Continuous integration with automated testing is key to its success

There are lots of parts of SharePoint that you donrsquot code through Visual Studio Figure out how you move those through your environment

Other Topics

Site Design

Information architecture

Wireframes

Creative designs ndash Mobile first

Catalogs deep dive

Site build PowerShell scripts

Team Foundation Server and Application Lifecycle Management

Starting a new project

Managing content authoring

Site Improve tool

SEO Optimizations

Analytics options

Retaining Page Ranks with permanent redirects (301)

Azure SharePoint Hosting

Q amp A

Session Evaluations

Go to Evaluations on the home page of wwwcollabconorg

It is important to get your feedback

Please fill out evaluations for all the sessions you attend

Following the conference a random drawing from all completed evaluations will be selected

The winner will receive a $250 Future Shop gift card valid online or in store

Page 94: Web Content Management - CollabCon 2015 - Web... · Performances Complete Works ... Friendly URL An SEO friendly URL defined in the term store for a page, rather than ... What’s

Creating a new Developer VM

Open System Centre Virtual Machine Manager

Create Virtual Machine

Choose the Developer VM template

Set the virtual machine name and options

Create and start the VM

Creating a new Developer VM - Step 2

Developer RDPs to their new VM Complete the SQL Server installation

Create the default instance Set the service account(s) Set the authentication mode and server administrators

Update the AutoSPInstallerInputxml file Set the machine name for the default sites and database server Set the service account passwords

Run the AutoSPInstallerLaunch batch file Do a Health check review

Creating a new Developer VM - Step 3

Start Visual Studio

Connect to the Team Foundation Server

Setup your workspaces

Use a standard naming convention across your team

CDevelopmentTFSCollection

Other Environments

Dev Integration QA and Production can all be built using AutoSPInstall

Donrsquot need or want the Visual Studio or Office tools on these servers

We have a base template we use for dev integration servers

QA should match the Prod architecture as closely as possible

High availability with load balancing clustered SQL app servers DMZ hardening Internet publishing

Agile Development

Agile with Team Foundation Server

Creating Your TFS Project

Open Visual Studio

Make sure you are connected to the right Team Project Collection

In Team Explorer right-click the top collection and create a new Team Project

Use the Scrum 10 template

Go into the Areas and Iterations Delete the extraneous releases and sprints

Create a product backlog iteration

Start adding your stories and tasks

Continuous Integration

Continuous Integration

Automated Testing

SharePoint Site Elements

Site structure Site columns content types subsites lists libraries

Branding elements Master pages layouts CSS XSLT supporting images

Custom web parts Page and site content Web part instances Search Workflows Business Connectivity Services Managed Metadata

SharePoint Site Elements ndash Part 2

Access Excel Word Visio

PerformancePoint

Document conversions

Timer jobs

Secure Store Service

User profiles

Site Structure

bull Site columns

bull Define the fields that are used by content types

bull Content types

bull Defines collections of site columns for different types of content

bull Subsites

bull The hierarchy of sites that make up the site collection

bull Lists and Libraries

bull The lists and libraries for each subsite

Site Structure ndash Part 2

Site columns and content types can be programmatically or manually created If they are going to be used in multiple site collections they should be

programmatically created

If a single site collection they can be created manually in a master site collection

GUIDs cannot be manually set and code may need them to be consistent

You can create them manually in SharePoint save the site as a template and import them into Visual Studio to create a proper WSP package

Site Structure ndash Part 3

Site structure can also be done either programmatically or manually

Many sites are complex and it is error prone to create manually

We use our own SiteModelBuilder tool to create the site structure

Site Structure ndash Part 4

For all site structure elements changes can also be manual or programmatic It is useful to be able to delete the whole site collection and recreate it

programmatically As soon as content starts being authored in SharePoint it becomes difficult

or impossible to do that

After content authoring has started Site column and content type changes need to be programmed explicitly

(you canrsquot just drop the content type and recreate it) Site structure changes are usually done manually at this point Changes need to be backed up and restored

Change Management

Page and Site Content

Page and site content is entered directly into SharePoint by the content authors Web pages images PDFs list content etc This should be done in the master site separate from where dev integration is

happening Care needs to be taken with this site once authors start working Make sure it is part of your production backup plan

Periodically back it up and restore it to the dev integration and developer VMs

Alternatively script the export and import Ultimately it will be backed up and restored to the QA and production

farms

Change Management

Change Management

Change Management

Change Management

Web part instances

Web parts ultimately get placed on pages

The configuration of the web parts can often get quite complex

You may want to disable editing of web parts for general content authors

They end up in a grey zone between code and content

Web part instances ndash Part 2

We created our own internal tool to export and import web parts

Each web partrsquos configuration can be exported into a webpartfile

We scripted the extraction from the dev integration

webpart files are treated like code and checked into TFS for version control

Script then applies the new webpart files to the target environment

Workflows

Workflows can be built using SharePoint Designer Visual Studio or third-party tools (Nintex or K2 primarily)

Visual Studio workflow projects are automatically packaged as WSP solution files Simply deploy the WSP file to the other environments

SharePoint Designer workflows need to be deployed using SharePoint Designer This means you need SPD access to production which is not always possible

You can load the SPD workflow into Visual Studio to package it but you lose the ability to edit it in SPD

If you use third-party tools yoursquoll need to define the process for that as well

Business Connectivity Services

BCS can be built using either SharePoint Designer or Visual Studio Visual Studio BCS projects are automatically packaged as WSP

solution files Simply deploy the WSP file to the other environments You can also export the BDC metadata model in the BDC service

application

SharePoint Designer doesnrsquot create a WSP and it doesnrsquot make a complete BDC metadata model You need to export and import using SharePoint Designer

In both cases you still need to deal with connection and configuration information

Future Directions

Visual Studio Lab Management

Integrates the management of HyperV environments in with Visual Studio and Team Foundation Server

Can automate the provisioning of lab environments for automated testing

Test failures can snapshot entire environments to make reproduction of errors much easier

Summary

Yoursquore going to have lots of SharePoint environments ndash figure out how to build them quickly and repeatable

Code and content often move in opposite directions through dev QA and Prod PowerShell script and automate to keep this simple

Agile is a great way to run projects

Continuous integration with automated testing is key to its success

There are lots of parts of SharePoint that you donrsquot code through Visual Studio Figure out how you move those through your environment

Other Topics

Site Design

Information architecture

Wireframes

Creative designs ndash Mobile first

Catalogs deep dive

Site build PowerShell scripts

Team Foundation Server and Application Lifecycle Management

Starting a new project

Managing content authoring

Site Improve tool

SEO Optimizations

Analytics options

Retaining Page Ranks with permanent redirects (301)

Azure SharePoint Hosting

Q amp A

Session Evaluations

Go to Evaluations on the home page of wwwcollabconorg

It is important to get your feedback

Please fill out evaluations for all the sessions you attend

Following the conference a random drawing from all completed evaluations will be selected

The winner will receive a $250 Future Shop gift card valid online or in store

Page 95: Web Content Management - CollabCon 2015 - Web... · Performances Complete Works ... Friendly URL An SEO friendly URL defined in the term store for a page, rather than ... What’s

Creating a new Developer VM - Step 2

Developer RDPs to their new VM Complete the SQL Server installation

Create the default instance Set the service account(s) Set the authentication mode and server administrators

Update the AutoSPInstallerInputxml file Set the machine name for the default sites and database server Set the service account passwords

Run the AutoSPInstallerLaunch batch file Do a Health check review

Creating a new Developer VM - Step 3

Start Visual Studio

Connect to the Team Foundation Server

Setup your workspaces

Use a standard naming convention across your team

CDevelopmentTFSCollection

Other Environments

Dev Integration QA and Production can all be built using AutoSPInstall

Donrsquot need or want the Visual Studio or Office tools on these servers

We have a base template we use for dev integration servers

QA should match the Prod architecture as closely as possible

High availability with load balancing clustered SQL app servers DMZ hardening Internet publishing

Agile Development

Agile with Team Foundation Server

Creating Your TFS Project

Open Visual Studio

Make sure you are connected to the right Team Project Collection

In Team Explorer right-click the top collection and create a new Team Project

Use the Scrum 10 template

Go into the Areas and Iterations Delete the extraneous releases and sprints

Create a product backlog iteration

Start adding your stories and tasks

Continuous Integration

Continuous Integration

Automated Testing

SharePoint Site Elements

Site structure Site columns content types subsites lists libraries

Branding elements Master pages layouts CSS XSLT supporting images

Custom web parts Page and site content Web part instances Search Workflows Business Connectivity Services Managed Metadata

SharePoint Site Elements ndash Part 2

Access Excel Word Visio

PerformancePoint

Document conversions

Timer jobs

Secure Store Service

User profiles

Site Structure

bull Site columns

bull Define the fields that are used by content types

bull Content types

bull Defines collections of site columns for different types of content

bull Subsites

bull The hierarchy of sites that make up the site collection

bull Lists and Libraries

bull The lists and libraries for each subsite

Site Structure ndash Part 2

Site columns and content types can be programmatically or manually created If they are going to be used in multiple site collections they should be

programmatically created

If a single site collection they can be created manually in a master site collection

GUIDs cannot be manually set and code may need them to be consistent

You can create them manually in SharePoint save the site as a template and import them into Visual Studio to create a proper WSP package

Site Structure ndash Part 3

Site structure can also be done either programmatically or manually

Many sites are complex and it is error prone to create manually

We use our own SiteModelBuilder tool to create the site structure

Site Structure ndash Part 4

For all site structure elements changes can also be manual or programmatic It is useful to be able to delete the whole site collection and recreate it

programmatically As soon as content starts being authored in SharePoint it becomes difficult

or impossible to do that

After content authoring has started Site column and content type changes need to be programmed explicitly

(you canrsquot just drop the content type and recreate it) Site structure changes are usually done manually at this point Changes need to be backed up and restored

Change Management

Page and Site Content

Page and site content is entered directly into SharePoint by the content authors Web pages images PDFs list content etc This should be done in the master site separate from where dev integration is

happening Care needs to be taken with this site once authors start working Make sure it is part of your production backup plan

Periodically back it up and restore it to the dev integration and developer VMs

Alternatively script the export and import Ultimately it will be backed up and restored to the QA and production

farms

Change Management

Change Management

Change Management

Change Management

Web part instances

Web parts ultimately get placed on pages

The configuration of the web parts can often get quite complex

You may want to disable editing of web parts for general content authors

They end up in a grey zone between code and content

Web part instances ndash Part 2

We created our own internal tool to export and import web parts

Each web partrsquos configuration can be exported into a webpartfile

We scripted the extraction from the dev integration

webpart files are treated like code and checked into TFS for version control

Script then applies the new webpart files to the target environment

Workflows

Workflows can be built using SharePoint Designer Visual Studio or third-party tools (Nintex or K2 primarily)

Visual Studio workflow projects are automatically packaged as WSP solution files Simply deploy the WSP file to the other environments

SharePoint Designer workflows need to be deployed using SharePoint Designer This means you need SPD access to production which is not always possible

You can load the SPD workflow into Visual Studio to package it but you lose the ability to edit it in SPD

If you use third-party tools yoursquoll need to define the process for that as well

Business Connectivity Services

BCS can be built using either SharePoint Designer or Visual Studio Visual Studio BCS projects are automatically packaged as WSP

solution files Simply deploy the WSP file to the other environments You can also export the BDC metadata model in the BDC service

application

SharePoint Designer doesnrsquot create a WSP and it doesnrsquot make a complete BDC metadata model You need to export and import using SharePoint Designer

In both cases you still need to deal with connection and configuration information

Future Directions

Visual Studio Lab Management

Integrates the management of HyperV environments in with Visual Studio and Team Foundation Server

Can automate the provisioning of lab environments for automated testing

Test failures can snapshot entire environments to make reproduction of errors much easier

Summary

Yoursquore going to have lots of SharePoint environments ndash figure out how to build them quickly and repeatable

Code and content often move in opposite directions through dev QA and Prod PowerShell script and automate to keep this simple

Agile is a great way to run projects

Continuous integration with automated testing is key to its success

There are lots of parts of SharePoint that you donrsquot code through Visual Studio Figure out how you move those through your environment

Other Topics

Site Design

Information architecture

Wireframes

Creative designs ndash Mobile first

Catalogs deep dive

Site build PowerShell scripts

Team Foundation Server and Application Lifecycle Management

Starting a new project

Managing content authoring

Site Improve tool

SEO Optimizations

Analytics options

Retaining Page Ranks with permanent redirects (301)

Azure SharePoint Hosting

Q amp A

Session Evaluations

Go to Evaluations on the home page of wwwcollabconorg

It is important to get your feedback

Please fill out evaluations for all the sessions you attend

Following the conference a random drawing from all completed evaluations will be selected

The winner will receive a $250 Future Shop gift card valid online or in store

Page 96: Web Content Management - CollabCon 2015 - Web... · Performances Complete Works ... Friendly URL An SEO friendly URL defined in the term store for a page, rather than ... What’s

Creating a new Developer VM - Step 3

Start Visual Studio

Connect to the Team Foundation Server

Setup your workspaces

Use a standard naming convention across your team

CDevelopmentTFSCollection

Other Environments

Dev Integration QA and Production can all be built using AutoSPInstall

Donrsquot need or want the Visual Studio or Office tools on these servers

We have a base template we use for dev integration servers

QA should match the Prod architecture as closely as possible

High availability with load balancing clustered SQL app servers DMZ hardening Internet publishing

Agile Development

Agile with Team Foundation Server

Creating Your TFS Project

Open Visual Studio

Make sure you are connected to the right Team Project Collection

In Team Explorer right-click the top collection and create a new Team Project

Use the Scrum 10 template

Go into the Areas and Iterations Delete the extraneous releases and sprints

Create a product backlog iteration

Start adding your stories and tasks

Continuous Integration

Continuous Integration

Automated Testing

SharePoint Site Elements

Site structure Site columns content types subsites lists libraries

Branding elements Master pages layouts CSS XSLT supporting images

Custom web parts Page and site content Web part instances Search Workflows Business Connectivity Services Managed Metadata

SharePoint Site Elements ndash Part 2

Access Excel Word Visio

PerformancePoint

Document conversions

Timer jobs

Secure Store Service

User profiles

Site Structure

bull Site columns

bull Define the fields that are used by content types

bull Content types

bull Defines collections of site columns for different types of content

bull Subsites

bull The hierarchy of sites that make up the site collection

bull Lists and Libraries

bull The lists and libraries for each subsite

Site Structure ndash Part 2

Site columns and content types can be programmatically or manually created If they are going to be used in multiple site collections they should be

programmatically created

If a single site collection they can be created manually in a master site collection

GUIDs cannot be manually set and code may need them to be consistent

You can create them manually in SharePoint save the site as a template and import them into Visual Studio to create a proper WSP package

Site Structure ndash Part 3

Site structure can also be done either programmatically or manually

Many sites are complex and it is error prone to create manually

We use our own SiteModelBuilder tool to create the site structure

Site Structure ndash Part 4

For all site structure elements changes can also be manual or programmatic It is useful to be able to delete the whole site collection and recreate it

programmatically As soon as content starts being authored in SharePoint it becomes difficult

or impossible to do that

After content authoring has started Site column and content type changes need to be programmed explicitly

(you canrsquot just drop the content type and recreate it) Site structure changes are usually done manually at this point Changes need to be backed up and restored

Change Management

Page and Site Content

Page and site content is entered directly into SharePoint by the content authors Web pages images PDFs list content etc This should be done in the master site separate from where dev integration is

happening Care needs to be taken with this site once authors start working Make sure it is part of your production backup plan

Periodically back it up and restore it to the dev integration and developer VMs

Alternatively script the export and import Ultimately it will be backed up and restored to the QA and production

farms

Change Management

Change Management

Change Management

Change Management

Web part instances

Web parts ultimately get placed on pages

The configuration of the web parts can often get quite complex

You may want to disable editing of web parts for general content authors

They end up in a grey zone between code and content

Web part instances ndash Part 2

We created our own internal tool to export and import web parts

Each web partrsquos configuration can be exported into a webpartfile

We scripted the extraction from the dev integration

webpart files are treated like code and checked into TFS for version control

Script then applies the new webpart files to the target environment

Workflows

Workflows can be built using SharePoint Designer Visual Studio or third-party tools (Nintex or K2 primarily)

Visual Studio workflow projects are automatically packaged as WSP solution files Simply deploy the WSP file to the other environments

SharePoint Designer workflows need to be deployed using SharePoint Designer This means you need SPD access to production which is not always possible

You can load the SPD workflow into Visual Studio to package it but you lose the ability to edit it in SPD

If you use third-party tools yoursquoll need to define the process for that as well

Business Connectivity Services

BCS can be built using either SharePoint Designer or Visual Studio Visual Studio BCS projects are automatically packaged as WSP

solution files Simply deploy the WSP file to the other environments You can also export the BDC metadata model in the BDC service

application

SharePoint Designer doesnrsquot create a WSP and it doesnrsquot make a complete BDC metadata model You need to export and import using SharePoint Designer

In both cases you still need to deal with connection and configuration information

Future Directions

Visual Studio Lab Management

Integrates the management of HyperV environments in with Visual Studio and Team Foundation Server

Can automate the provisioning of lab environments for automated testing

Test failures can snapshot entire environments to make reproduction of errors much easier

Summary

Yoursquore going to have lots of SharePoint environments ndash figure out how to build them quickly and repeatable

Code and content often move in opposite directions through dev QA and Prod PowerShell script and automate to keep this simple

Agile is a great way to run projects

Continuous integration with automated testing is key to its success

There are lots of parts of SharePoint that you donrsquot code through Visual Studio Figure out how you move those through your environment

Other Topics

Site Design

Information architecture

Wireframes

Creative designs ndash Mobile first

Catalogs deep dive

Site build PowerShell scripts

Team Foundation Server and Application Lifecycle Management

Starting a new project

Managing content authoring

Site Improve tool

SEO Optimizations

Analytics options

Retaining Page Ranks with permanent redirects (301)

Azure SharePoint Hosting

Q amp A

Session Evaluations

Go to Evaluations on the home page of wwwcollabconorg

It is important to get your feedback

Please fill out evaluations for all the sessions you attend

Following the conference a random drawing from all completed evaluations will be selected

The winner will receive a $250 Future Shop gift card valid online or in store

Page 97: Web Content Management - CollabCon 2015 - Web... · Performances Complete Works ... Friendly URL An SEO friendly URL defined in the term store for a page, rather than ... What’s

Other Environments

Dev Integration QA and Production can all be built using AutoSPInstall

Donrsquot need or want the Visual Studio or Office tools on these servers

We have a base template we use for dev integration servers

QA should match the Prod architecture as closely as possible

High availability with load balancing clustered SQL app servers DMZ hardening Internet publishing

Agile Development

Agile with Team Foundation Server

Creating Your TFS Project

Open Visual Studio

Make sure you are connected to the right Team Project Collection

In Team Explorer right-click the top collection and create a new Team Project

Use the Scrum 10 template

Go into the Areas and Iterations Delete the extraneous releases and sprints

Create a product backlog iteration

Start adding your stories and tasks

Continuous Integration

Continuous Integration

Automated Testing

SharePoint Site Elements

Site structure Site columns content types subsites lists libraries

Branding elements Master pages layouts CSS XSLT supporting images

Custom web parts Page and site content Web part instances Search Workflows Business Connectivity Services Managed Metadata

SharePoint Site Elements ndash Part 2

Access Excel Word Visio

PerformancePoint

Document conversions

Timer jobs

Secure Store Service

User profiles

Site Structure

bull Site columns

bull Define the fields that are used by content types

bull Content types

bull Defines collections of site columns for different types of content

bull Subsites

bull The hierarchy of sites that make up the site collection

bull Lists and Libraries

bull The lists and libraries for each subsite

Site Structure ndash Part 2

Site columns and content types can be programmatically or manually created If they are going to be used in multiple site collections they should be

programmatically created

If a single site collection they can be created manually in a master site collection

GUIDs cannot be manually set and code may need them to be consistent

You can create them manually in SharePoint save the site as a template and import them into Visual Studio to create a proper WSP package

Site Structure ndash Part 3

Site structure can also be done either programmatically or manually

Many sites are complex and it is error prone to create manually

We use our own SiteModelBuilder tool to create the site structure

Site Structure ndash Part 4

For all site structure elements changes can also be manual or programmatic It is useful to be able to delete the whole site collection and recreate it

programmatically As soon as content starts being authored in SharePoint it becomes difficult

or impossible to do that

After content authoring has started Site column and content type changes need to be programmed explicitly

(you canrsquot just drop the content type and recreate it) Site structure changes are usually done manually at this point Changes need to be backed up and restored

Change Management

Page and Site Content

Page and site content is entered directly into SharePoint by the content authors Web pages images PDFs list content etc This should be done in the master site separate from where dev integration is

happening Care needs to be taken with this site once authors start working Make sure it is part of your production backup plan

Periodically back it up and restore it to the dev integration and developer VMs

Alternatively script the export and import Ultimately it will be backed up and restored to the QA and production

farms

Change Management

Change Management

Change Management

Change Management

Web part instances

Web parts ultimately get placed on pages

The configuration of the web parts can often get quite complex

You may want to disable editing of web parts for general content authors

They end up in a grey zone between code and content

Web part instances ndash Part 2

We created our own internal tool to export and import web parts

Each web partrsquos configuration can be exported into a webpartfile

We scripted the extraction from the dev integration

webpart files are treated like code and checked into TFS for version control

Script then applies the new webpart files to the target environment

Workflows

Workflows can be built using SharePoint Designer Visual Studio or third-party tools (Nintex or K2 primarily)

Visual Studio workflow projects are automatically packaged as WSP solution files Simply deploy the WSP file to the other environments

SharePoint Designer workflows need to be deployed using SharePoint Designer This means you need SPD access to production which is not always possible

You can load the SPD workflow into Visual Studio to package it but you lose the ability to edit it in SPD

If you use third-party tools yoursquoll need to define the process for that as well

Business Connectivity Services

BCS can be built using either SharePoint Designer or Visual Studio Visual Studio BCS projects are automatically packaged as WSP

solution files Simply deploy the WSP file to the other environments You can also export the BDC metadata model in the BDC service

application

SharePoint Designer doesnrsquot create a WSP and it doesnrsquot make a complete BDC metadata model You need to export and import using SharePoint Designer

In both cases you still need to deal with connection and configuration information

Future Directions

Visual Studio Lab Management

Integrates the management of HyperV environments in with Visual Studio and Team Foundation Server

Can automate the provisioning of lab environments for automated testing

Test failures can snapshot entire environments to make reproduction of errors much easier

Summary

Yoursquore going to have lots of SharePoint environments ndash figure out how to build them quickly and repeatable

Code and content often move in opposite directions through dev QA and Prod PowerShell script and automate to keep this simple

Agile is a great way to run projects

Continuous integration with automated testing is key to its success

There are lots of parts of SharePoint that you donrsquot code through Visual Studio Figure out how you move those through your environment

Other Topics

Site Design

Information architecture

Wireframes

Creative designs ndash Mobile first

Catalogs deep dive

Site build PowerShell scripts

Team Foundation Server and Application Lifecycle Management

Starting a new project

Managing content authoring

Site Improve tool

SEO Optimizations

Analytics options

Retaining Page Ranks with permanent redirects (301)

Azure SharePoint Hosting

Q amp A

Session Evaluations

Go to Evaluations on the home page of wwwcollabconorg

It is important to get your feedback

Please fill out evaluations for all the sessions you attend

Following the conference a random drawing from all completed evaluations will be selected

The winner will receive a $250 Future Shop gift card valid online or in store

Page 98: Web Content Management - CollabCon 2015 - Web... · Performances Complete Works ... Friendly URL An SEO friendly URL defined in the term store for a page, rather than ... What’s

Agile Development

Agile with Team Foundation Server

Creating Your TFS Project

Open Visual Studio

Make sure you are connected to the right Team Project Collection

In Team Explorer right-click the top collection and create a new Team Project

Use the Scrum 10 template

Go into the Areas and Iterations Delete the extraneous releases and sprints

Create a product backlog iteration

Start adding your stories and tasks

Continuous Integration

Continuous Integration

Automated Testing

SharePoint Site Elements

Site structure Site columns content types subsites lists libraries

Branding elements Master pages layouts CSS XSLT supporting images

Custom web parts Page and site content Web part instances Search Workflows Business Connectivity Services Managed Metadata

SharePoint Site Elements ndash Part 2

Access Excel Word Visio

PerformancePoint

Document conversions

Timer jobs

Secure Store Service

User profiles

Site Structure

bull Site columns

bull Define the fields that are used by content types

bull Content types

bull Defines collections of site columns for different types of content

bull Subsites

bull The hierarchy of sites that make up the site collection

bull Lists and Libraries

bull The lists and libraries for each subsite

Site Structure ndash Part 2

Site columns and content types can be programmatically or manually created If they are going to be used in multiple site collections they should be

programmatically created

If a single site collection they can be created manually in a master site collection

GUIDs cannot be manually set and code may need them to be consistent

You can create them manually in SharePoint save the site as a template and import them into Visual Studio to create a proper WSP package

Site Structure ndash Part 3

Site structure can also be done either programmatically or manually

Many sites are complex and it is error prone to create manually

We use our own SiteModelBuilder tool to create the site structure

Site Structure ndash Part 4

For all site structure elements changes can also be manual or programmatic It is useful to be able to delete the whole site collection and recreate it

programmatically As soon as content starts being authored in SharePoint it becomes difficult

or impossible to do that

After content authoring has started Site column and content type changes need to be programmed explicitly

(you canrsquot just drop the content type and recreate it) Site structure changes are usually done manually at this point Changes need to be backed up and restored

Change Management

Page and Site Content

Page and site content is entered directly into SharePoint by the content authors Web pages images PDFs list content etc This should be done in the master site separate from where dev integration is

happening Care needs to be taken with this site once authors start working Make sure it is part of your production backup plan

Periodically back it up and restore it to the dev integration and developer VMs

Alternatively script the export and import Ultimately it will be backed up and restored to the QA and production

farms

Change Management

Change Management

Change Management

Change Management

Web part instances

Web parts ultimately get placed on pages

The configuration of the web parts can often get quite complex

You may want to disable editing of web parts for general content authors

They end up in a grey zone between code and content

Web part instances ndash Part 2

We created our own internal tool to export and import web parts

Each web partrsquos configuration can be exported into a webpartfile

We scripted the extraction from the dev integration

webpart files are treated like code and checked into TFS for version control

Script then applies the new webpart files to the target environment

Workflows

Workflows can be built using SharePoint Designer Visual Studio or third-party tools (Nintex or K2 primarily)

Visual Studio workflow projects are automatically packaged as WSP solution files Simply deploy the WSP file to the other environments

SharePoint Designer workflows need to be deployed using SharePoint Designer This means you need SPD access to production which is not always possible

You can load the SPD workflow into Visual Studio to package it but you lose the ability to edit it in SPD

If you use third-party tools yoursquoll need to define the process for that as well

Business Connectivity Services

BCS can be built using either SharePoint Designer or Visual Studio Visual Studio BCS projects are automatically packaged as WSP

solution files Simply deploy the WSP file to the other environments You can also export the BDC metadata model in the BDC service

application

SharePoint Designer doesnrsquot create a WSP and it doesnrsquot make a complete BDC metadata model You need to export and import using SharePoint Designer

In both cases you still need to deal with connection and configuration information

Future Directions

Visual Studio Lab Management

Integrates the management of HyperV environments in with Visual Studio and Team Foundation Server

Can automate the provisioning of lab environments for automated testing

Test failures can snapshot entire environments to make reproduction of errors much easier

Summary

Yoursquore going to have lots of SharePoint environments ndash figure out how to build them quickly and repeatable

Code and content often move in opposite directions through dev QA and Prod PowerShell script and automate to keep this simple

Agile is a great way to run projects

Continuous integration with automated testing is key to its success

There are lots of parts of SharePoint that you donrsquot code through Visual Studio Figure out how you move those through your environment

Other Topics

Site Design

Information architecture

Wireframes

Creative designs ndash Mobile first

Catalogs deep dive

Site build PowerShell scripts

Team Foundation Server and Application Lifecycle Management

Starting a new project

Managing content authoring

Site Improve tool

SEO Optimizations

Analytics options

Retaining Page Ranks with permanent redirects (301)

Azure SharePoint Hosting

Q amp A

Session Evaluations

Go to Evaluations on the home page of wwwcollabconorg

It is important to get your feedback

Please fill out evaluations for all the sessions you attend

Following the conference a random drawing from all completed evaluations will be selected

The winner will receive a $250 Future Shop gift card valid online or in store

Page 99: Web Content Management - CollabCon 2015 - Web... · Performances Complete Works ... Friendly URL An SEO friendly URL defined in the term store for a page, rather than ... What’s

Agile with Team Foundation Server

Creating Your TFS Project

Open Visual Studio

Make sure you are connected to the right Team Project Collection

In Team Explorer right-click the top collection and create a new Team Project

Use the Scrum 10 template

Go into the Areas and Iterations Delete the extraneous releases and sprints

Create a product backlog iteration

Start adding your stories and tasks

Continuous Integration

Continuous Integration

Automated Testing

SharePoint Site Elements

Site structure Site columns content types subsites lists libraries

Branding elements Master pages layouts CSS XSLT supporting images

Custom web parts Page and site content Web part instances Search Workflows Business Connectivity Services Managed Metadata

SharePoint Site Elements ndash Part 2

Access Excel Word Visio

PerformancePoint

Document conversions

Timer jobs

Secure Store Service

User profiles

Site Structure

bull Site columns

bull Define the fields that are used by content types

bull Content types

bull Defines collections of site columns for different types of content

bull Subsites

bull The hierarchy of sites that make up the site collection

bull Lists and Libraries

bull The lists and libraries for each subsite

Site Structure ndash Part 2

Site columns and content types can be programmatically or manually created If they are going to be used in multiple site collections they should be

programmatically created

If a single site collection they can be created manually in a master site collection

GUIDs cannot be manually set and code may need them to be consistent

You can create them manually in SharePoint save the site as a template and import them into Visual Studio to create a proper WSP package

Site Structure ndash Part 3

Site structure can also be done either programmatically or manually

Many sites are complex and it is error prone to create manually

We use our own SiteModelBuilder tool to create the site structure

Site Structure ndash Part 4

For all site structure elements changes can also be manual or programmatic It is useful to be able to delete the whole site collection and recreate it

programmatically As soon as content starts being authored in SharePoint it becomes difficult

or impossible to do that

After content authoring has started Site column and content type changes need to be programmed explicitly

(you canrsquot just drop the content type and recreate it) Site structure changes are usually done manually at this point Changes need to be backed up and restored

Change Management

Page and Site Content

Page and site content is entered directly into SharePoint by the content authors Web pages images PDFs list content etc This should be done in the master site separate from where dev integration is

happening Care needs to be taken with this site once authors start working Make sure it is part of your production backup plan

Periodically back it up and restore it to the dev integration and developer VMs

Alternatively script the export and import Ultimately it will be backed up and restored to the QA and production

farms

Change Management

Change Management

Change Management

Change Management

Web part instances

Web parts ultimately get placed on pages

The configuration of the web parts can often get quite complex

You may want to disable editing of web parts for general content authors

They end up in a grey zone between code and content

Web part instances ndash Part 2

We created our own internal tool to export and import web parts

Each web partrsquos configuration can be exported into a webpartfile

We scripted the extraction from the dev integration

webpart files are treated like code and checked into TFS for version control

Script then applies the new webpart files to the target environment

Workflows

Workflows can be built using SharePoint Designer Visual Studio or third-party tools (Nintex or K2 primarily)

Visual Studio workflow projects are automatically packaged as WSP solution files Simply deploy the WSP file to the other environments

SharePoint Designer workflows need to be deployed using SharePoint Designer This means you need SPD access to production which is not always possible

You can load the SPD workflow into Visual Studio to package it but you lose the ability to edit it in SPD

If you use third-party tools yoursquoll need to define the process for that as well

Business Connectivity Services

BCS can be built using either SharePoint Designer or Visual Studio Visual Studio BCS projects are automatically packaged as WSP

solution files Simply deploy the WSP file to the other environments You can also export the BDC metadata model in the BDC service

application

SharePoint Designer doesnrsquot create a WSP and it doesnrsquot make a complete BDC metadata model You need to export and import using SharePoint Designer

In both cases you still need to deal with connection and configuration information

Future Directions

Visual Studio Lab Management

Integrates the management of HyperV environments in with Visual Studio and Team Foundation Server

Can automate the provisioning of lab environments for automated testing

Test failures can snapshot entire environments to make reproduction of errors much easier

Summary

Yoursquore going to have lots of SharePoint environments ndash figure out how to build them quickly and repeatable

Code and content often move in opposite directions through dev QA and Prod PowerShell script and automate to keep this simple

Agile is a great way to run projects

Continuous integration with automated testing is key to its success

There are lots of parts of SharePoint that you donrsquot code through Visual Studio Figure out how you move those through your environment

Other Topics

Site Design

Information architecture

Wireframes

Creative designs ndash Mobile first

Catalogs deep dive

Site build PowerShell scripts

Team Foundation Server and Application Lifecycle Management

Starting a new project

Managing content authoring

Site Improve tool

SEO Optimizations

Analytics options

Retaining Page Ranks with permanent redirects (301)

Azure SharePoint Hosting

Q amp A

Session Evaluations

Go to Evaluations on the home page of wwwcollabconorg

It is important to get your feedback

Please fill out evaluations for all the sessions you attend

Following the conference a random drawing from all completed evaluations will be selected

The winner will receive a $250 Future Shop gift card valid online or in store

Page 100: Web Content Management - CollabCon 2015 - Web... · Performances Complete Works ... Friendly URL An SEO friendly URL defined in the term store for a page, rather than ... What’s

Creating Your TFS Project

Open Visual Studio

Make sure you are connected to the right Team Project Collection

In Team Explorer right-click the top collection and create a new Team Project

Use the Scrum 10 template

Go into the Areas and Iterations Delete the extraneous releases and sprints

Create a product backlog iteration

Start adding your stories and tasks

Continuous Integration

Continuous Integration

Automated Testing

SharePoint Site Elements

Site structure Site columns content types subsites lists libraries

Branding elements Master pages layouts CSS XSLT supporting images

Custom web parts Page and site content Web part instances Search Workflows Business Connectivity Services Managed Metadata

SharePoint Site Elements ndash Part 2

Access Excel Word Visio

PerformancePoint

Document conversions

Timer jobs

Secure Store Service

User profiles

Site Structure

bull Site columns

bull Define the fields that are used by content types

bull Content types

bull Defines collections of site columns for different types of content

bull Subsites

bull The hierarchy of sites that make up the site collection

bull Lists and Libraries

bull The lists and libraries for each subsite

Site Structure ndash Part 2

Site columns and content types can be programmatically or manually created If they are going to be used in multiple site collections they should be

programmatically created

If a single site collection they can be created manually in a master site collection

GUIDs cannot be manually set and code may need them to be consistent

You can create them manually in SharePoint save the site as a template and import them into Visual Studio to create a proper WSP package

Site Structure ndash Part 3

Site structure can also be done either programmatically or manually

Many sites are complex and it is error prone to create manually

We use our own SiteModelBuilder tool to create the site structure

Site Structure ndash Part 4

For all site structure elements changes can also be manual or programmatic It is useful to be able to delete the whole site collection and recreate it

programmatically As soon as content starts being authored in SharePoint it becomes difficult

or impossible to do that

After content authoring has started Site column and content type changes need to be programmed explicitly

(you canrsquot just drop the content type and recreate it) Site structure changes are usually done manually at this point Changes need to be backed up and restored

Change Management

Page and Site Content

Page and site content is entered directly into SharePoint by the content authors Web pages images PDFs list content etc This should be done in the master site separate from where dev integration is

happening Care needs to be taken with this site once authors start working Make sure it is part of your production backup plan

Periodically back it up and restore it to the dev integration and developer VMs

Alternatively script the export and import Ultimately it will be backed up and restored to the QA and production

farms

Change Management

Change Management

Change Management

Change Management

Web part instances

Web parts ultimately get placed on pages

The configuration of the web parts can often get quite complex

You may want to disable editing of web parts for general content authors

They end up in a grey zone between code and content

Web part instances ndash Part 2

We created our own internal tool to export and import web parts

Each web partrsquos configuration can be exported into a webpartfile

We scripted the extraction from the dev integration

webpart files are treated like code and checked into TFS for version control

Script then applies the new webpart files to the target environment

Workflows

Workflows can be built using SharePoint Designer Visual Studio or third-party tools (Nintex or K2 primarily)

Visual Studio workflow projects are automatically packaged as WSP solution files Simply deploy the WSP file to the other environments

SharePoint Designer workflows need to be deployed using SharePoint Designer This means you need SPD access to production which is not always possible

You can load the SPD workflow into Visual Studio to package it but you lose the ability to edit it in SPD

If you use third-party tools yoursquoll need to define the process for that as well

Business Connectivity Services

BCS can be built using either SharePoint Designer or Visual Studio Visual Studio BCS projects are automatically packaged as WSP

solution files Simply deploy the WSP file to the other environments You can also export the BDC metadata model in the BDC service

application

SharePoint Designer doesnrsquot create a WSP and it doesnrsquot make a complete BDC metadata model You need to export and import using SharePoint Designer

In both cases you still need to deal with connection and configuration information

Future Directions

Visual Studio Lab Management

Integrates the management of HyperV environments in with Visual Studio and Team Foundation Server

Can automate the provisioning of lab environments for automated testing

Test failures can snapshot entire environments to make reproduction of errors much easier

Summary

Yoursquore going to have lots of SharePoint environments ndash figure out how to build them quickly and repeatable

Code and content often move in opposite directions through dev QA and Prod PowerShell script and automate to keep this simple

Agile is a great way to run projects

Continuous integration with automated testing is key to its success

There are lots of parts of SharePoint that you donrsquot code through Visual Studio Figure out how you move those through your environment

Other Topics

Site Design

Information architecture

Wireframes

Creative designs ndash Mobile first

Catalogs deep dive

Site build PowerShell scripts

Team Foundation Server and Application Lifecycle Management

Starting a new project

Managing content authoring

Site Improve tool

SEO Optimizations

Analytics options

Retaining Page Ranks with permanent redirects (301)

Azure SharePoint Hosting

Q amp A

Session Evaluations

Go to Evaluations on the home page of wwwcollabconorg

It is important to get your feedback

Please fill out evaluations for all the sessions you attend

Following the conference a random drawing from all completed evaluations will be selected

The winner will receive a $250 Future Shop gift card valid online or in store

Page 101: Web Content Management - CollabCon 2015 - Web... · Performances Complete Works ... Friendly URL An SEO friendly URL defined in the term store for a page, rather than ... What’s

Continuous Integration

Continuous Integration

Automated Testing

SharePoint Site Elements

Site structure Site columns content types subsites lists libraries

Branding elements Master pages layouts CSS XSLT supporting images

Custom web parts Page and site content Web part instances Search Workflows Business Connectivity Services Managed Metadata

SharePoint Site Elements ndash Part 2

Access Excel Word Visio

PerformancePoint

Document conversions

Timer jobs

Secure Store Service

User profiles

Site Structure

bull Site columns

bull Define the fields that are used by content types

bull Content types

bull Defines collections of site columns for different types of content

bull Subsites

bull The hierarchy of sites that make up the site collection

bull Lists and Libraries

bull The lists and libraries for each subsite

Site Structure ndash Part 2

Site columns and content types can be programmatically or manually created If they are going to be used in multiple site collections they should be

programmatically created

If a single site collection they can be created manually in a master site collection

GUIDs cannot be manually set and code may need them to be consistent

You can create them manually in SharePoint save the site as a template and import them into Visual Studio to create a proper WSP package

Site Structure ndash Part 3

Site structure can also be done either programmatically or manually

Many sites are complex and it is error prone to create manually

We use our own SiteModelBuilder tool to create the site structure

Site Structure ndash Part 4

For all site structure elements changes can also be manual or programmatic It is useful to be able to delete the whole site collection and recreate it

programmatically As soon as content starts being authored in SharePoint it becomes difficult

or impossible to do that

After content authoring has started Site column and content type changes need to be programmed explicitly

(you canrsquot just drop the content type and recreate it) Site structure changes are usually done manually at this point Changes need to be backed up and restored

Change Management

Page and Site Content

Page and site content is entered directly into SharePoint by the content authors Web pages images PDFs list content etc This should be done in the master site separate from where dev integration is

happening Care needs to be taken with this site once authors start working Make sure it is part of your production backup plan

Periodically back it up and restore it to the dev integration and developer VMs

Alternatively script the export and import Ultimately it will be backed up and restored to the QA and production

farms

Change Management

Change Management

Change Management

Change Management

Web part instances

Web parts ultimately get placed on pages

The configuration of the web parts can often get quite complex

You may want to disable editing of web parts for general content authors

They end up in a grey zone between code and content

Web part instances ndash Part 2

We created our own internal tool to export and import web parts

Each web partrsquos configuration can be exported into a webpartfile

We scripted the extraction from the dev integration

webpart files are treated like code and checked into TFS for version control

Script then applies the new webpart files to the target environment

Workflows

Workflows can be built using SharePoint Designer Visual Studio or third-party tools (Nintex or K2 primarily)

Visual Studio workflow projects are automatically packaged as WSP solution files Simply deploy the WSP file to the other environments

SharePoint Designer workflows need to be deployed using SharePoint Designer This means you need SPD access to production which is not always possible

You can load the SPD workflow into Visual Studio to package it but you lose the ability to edit it in SPD

If you use third-party tools yoursquoll need to define the process for that as well

Business Connectivity Services

BCS can be built using either SharePoint Designer or Visual Studio Visual Studio BCS projects are automatically packaged as WSP

solution files Simply deploy the WSP file to the other environments You can also export the BDC metadata model in the BDC service

application

SharePoint Designer doesnrsquot create a WSP and it doesnrsquot make a complete BDC metadata model You need to export and import using SharePoint Designer

In both cases you still need to deal with connection and configuration information

Future Directions

Visual Studio Lab Management

Integrates the management of HyperV environments in with Visual Studio and Team Foundation Server

Can automate the provisioning of lab environments for automated testing

Test failures can snapshot entire environments to make reproduction of errors much easier

Summary

Yoursquore going to have lots of SharePoint environments ndash figure out how to build them quickly and repeatable

Code and content often move in opposite directions through dev QA and Prod PowerShell script and automate to keep this simple

Agile is a great way to run projects

Continuous integration with automated testing is key to its success

There are lots of parts of SharePoint that you donrsquot code through Visual Studio Figure out how you move those through your environment

Other Topics

Site Design

Information architecture

Wireframes

Creative designs ndash Mobile first

Catalogs deep dive

Site build PowerShell scripts

Team Foundation Server and Application Lifecycle Management

Starting a new project

Managing content authoring

Site Improve tool

SEO Optimizations

Analytics options

Retaining Page Ranks with permanent redirects (301)

Azure SharePoint Hosting

Q amp A

Session Evaluations

Go to Evaluations on the home page of wwwcollabconorg

It is important to get your feedback

Please fill out evaluations for all the sessions you attend

Following the conference a random drawing from all completed evaluations will be selected

The winner will receive a $250 Future Shop gift card valid online or in store

Page 102: Web Content Management - CollabCon 2015 - Web... · Performances Complete Works ... Friendly URL An SEO friendly URL defined in the term store for a page, rather than ... What’s

Continuous Integration

Automated Testing

SharePoint Site Elements

Site structure Site columns content types subsites lists libraries

Branding elements Master pages layouts CSS XSLT supporting images

Custom web parts Page and site content Web part instances Search Workflows Business Connectivity Services Managed Metadata

SharePoint Site Elements ndash Part 2

Access Excel Word Visio

PerformancePoint

Document conversions

Timer jobs

Secure Store Service

User profiles

Site Structure

bull Site columns

bull Define the fields that are used by content types

bull Content types

bull Defines collections of site columns for different types of content

bull Subsites

bull The hierarchy of sites that make up the site collection

bull Lists and Libraries

bull The lists and libraries for each subsite

Site Structure ndash Part 2

Site columns and content types can be programmatically or manually created If they are going to be used in multiple site collections they should be

programmatically created

If a single site collection they can be created manually in a master site collection

GUIDs cannot be manually set and code may need them to be consistent

You can create them manually in SharePoint save the site as a template and import them into Visual Studio to create a proper WSP package

Site Structure ndash Part 3

Site structure can also be done either programmatically or manually

Many sites are complex and it is error prone to create manually

We use our own SiteModelBuilder tool to create the site structure

Site Structure ndash Part 4

For all site structure elements changes can also be manual or programmatic It is useful to be able to delete the whole site collection and recreate it

programmatically As soon as content starts being authored in SharePoint it becomes difficult

or impossible to do that

After content authoring has started Site column and content type changes need to be programmed explicitly

(you canrsquot just drop the content type and recreate it) Site structure changes are usually done manually at this point Changes need to be backed up and restored

Change Management

Page and Site Content

Page and site content is entered directly into SharePoint by the content authors Web pages images PDFs list content etc This should be done in the master site separate from where dev integration is

happening Care needs to be taken with this site once authors start working Make sure it is part of your production backup plan

Periodically back it up and restore it to the dev integration and developer VMs

Alternatively script the export and import Ultimately it will be backed up and restored to the QA and production

farms

Change Management

Change Management

Change Management

Change Management

Web part instances

Web parts ultimately get placed on pages

The configuration of the web parts can often get quite complex

You may want to disable editing of web parts for general content authors

They end up in a grey zone between code and content

Web part instances ndash Part 2

We created our own internal tool to export and import web parts

Each web partrsquos configuration can be exported into a webpartfile

We scripted the extraction from the dev integration

webpart files are treated like code and checked into TFS for version control

Script then applies the new webpart files to the target environment

Workflows

Workflows can be built using SharePoint Designer Visual Studio or third-party tools (Nintex or K2 primarily)

Visual Studio workflow projects are automatically packaged as WSP solution files Simply deploy the WSP file to the other environments

SharePoint Designer workflows need to be deployed using SharePoint Designer This means you need SPD access to production which is not always possible

You can load the SPD workflow into Visual Studio to package it but you lose the ability to edit it in SPD

If you use third-party tools yoursquoll need to define the process for that as well

Business Connectivity Services

BCS can be built using either SharePoint Designer or Visual Studio Visual Studio BCS projects are automatically packaged as WSP

solution files Simply deploy the WSP file to the other environments You can also export the BDC metadata model in the BDC service

application

SharePoint Designer doesnrsquot create a WSP and it doesnrsquot make a complete BDC metadata model You need to export and import using SharePoint Designer

In both cases you still need to deal with connection and configuration information

Future Directions

Visual Studio Lab Management

Integrates the management of HyperV environments in with Visual Studio and Team Foundation Server

Can automate the provisioning of lab environments for automated testing

Test failures can snapshot entire environments to make reproduction of errors much easier

Summary

Yoursquore going to have lots of SharePoint environments ndash figure out how to build them quickly and repeatable

Code and content often move in opposite directions through dev QA and Prod PowerShell script and automate to keep this simple

Agile is a great way to run projects

Continuous integration with automated testing is key to its success

There are lots of parts of SharePoint that you donrsquot code through Visual Studio Figure out how you move those through your environment

Other Topics

Site Design

Information architecture

Wireframes

Creative designs ndash Mobile first

Catalogs deep dive

Site build PowerShell scripts

Team Foundation Server and Application Lifecycle Management

Starting a new project

Managing content authoring

Site Improve tool

SEO Optimizations

Analytics options

Retaining Page Ranks with permanent redirects (301)

Azure SharePoint Hosting

Q amp A

Session Evaluations

Go to Evaluations on the home page of wwwcollabconorg

It is important to get your feedback

Please fill out evaluations for all the sessions you attend

Following the conference a random drawing from all completed evaluations will be selected

The winner will receive a $250 Future Shop gift card valid online or in store

Page 103: Web Content Management - CollabCon 2015 - Web... · Performances Complete Works ... Friendly URL An SEO friendly URL defined in the term store for a page, rather than ... What’s

Automated Testing

SharePoint Site Elements

Site structure Site columns content types subsites lists libraries

Branding elements Master pages layouts CSS XSLT supporting images

Custom web parts Page and site content Web part instances Search Workflows Business Connectivity Services Managed Metadata

SharePoint Site Elements ndash Part 2

Access Excel Word Visio

PerformancePoint

Document conversions

Timer jobs

Secure Store Service

User profiles

Site Structure

bull Site columns

bull Define the fields that are used by content types

bull Content types

bull Defines collections of site columns for different types of content

bull Subsites

bull The hierarchy of sites that make up the site collection

bull Lists and Libraries

bull The lists and libraries for each subsite

Site Structure ndash Part 2

Site columns and content types can be programmatically or manually created If they are going to be used in multiple site collections they should be

programmatically created

If a single site collection they can be created manually in a master site collection

GUIDs cannot be manually set and code may need them to be consistent

You can create them manually in SharePoint save the site as a template and import them into Visual Studio to create a proper WSP package

Site Structure ndash Part 3

Site structure can also be done either programmatically or manually

Many sites are complex and it is error prone to create manually

We use our own SiteModelBuilder tool to create the site structure

Site Structure ndash Part 4

For all site structure elements changes can also be manual or programmatic It is useful to be able to delete the whole site collection and recreate it

programmatically As soon as content starts being authored in SharePoint it becomes difficult

or impossible to do that

After content authoring has started Site column and content type changes need to be programmed explicitly

(you canrsquot just drop the content type and recreate it) Site structure changes are usually done manually at this point Changes need to be backed up and restored

Change Management

Page and Site Content

Page and site content is entered directly into SharePoint by the content authors Web pages images PDFs list content etc This should be done in the master site separate from where dev integration is

happening Care needs to be taken with this site once authors start working Make sure it is part of your production backup plan

Periodically back it up and restore it to the dev integration and developer VMs

Alternatively script the export and import Ultimately it will be backed up and restored to the QA and production

farms

Change Management

Change Management

Change Management

Change Management

Web part instances

Web parts ultimately get placed on pages

The configuration of the web parts can often get quite complex

You may want to disable editing of web parts for general content authors

They end up in a grey zone between code and content

Web part instances ndash Part 2

We created our own internal tool to export and import web parts

Each web partrsquos configuration can be exported into a webpartfile

We scripted the extraction from the dev integration

webpart files are treated like code and checked into TFS for version control

Script then applies the new webpart files to the target environment

Workflows

Workflows can be built using SharePoint Designer Visual Studio or third-party tools (Nintex or K2 primarily)

Visual Studio workflow projects are automatically packaged as WSP solution files Simply deploy the WSP file to the other environments

SharePoint Designer workflows need to be deployed using SharePoint Designer This means you need SPD access to production which is not always possible

You can load the SPD workflow into Visual Studio to package it but you lose the ability to edit it in SPD

If you use third-party tools yoursquoll need to define the process for that as well

Business Connectivity Services

BCS can be built using either SharePoint Designer or Visual Studio Visual Studio BCS projects are automatically packaged as WSP

solution files Simply deploy the WSP file to the other environments You can also export the BDC metadata model in the BDC service

application

SharePoint Designer doesnrsquot create a WSP and it doesnrsquot make a complete BDC metadata model You need to export and import using SharePoint Designer

In both cases you still need to deal with connection and configuration information

Future Directions

Visual Studio Lab Management

Integrates the management of HyperV environments in with Visual Studio and Team Foundation Server

Can automate the provisioning of lab environments for automated testing

Test failures can snapshot entire environments to make reproduction of errors much easier

Summary

Yoursquore going to have lots of SharePoint environments ndash figure out how to build them quickly and repeatable

Code and content often move in opposite directions through dev QA and Prod PowerShell script and automate to keep this simple

Agile is a great way to run projects

Continuous integration with automated testing is key to its success

There are lots of parts of SharePoint that you donrsquot code through Visual Studio Figure out how you move those through your environment

Other Topics

Site Design

Information architecture

Wireframes

Creative designs ndash Mobile first

Catalogs deep dive

Site build PowerShell scripts

Team Foundation Server and Application Lifecycle Management

Starting a new project

Managing content authoring

Site Improve tool

SEO Optimizations

Analytics options

Retaining Page Ranks with permanent redirects (301)

Azure SharePoint Hosting

Q amp A

Session Evaluations

Go to Evaluations on the home page of wwwcollabconorg

It is important to get your feedback

Please fill out evaluations for all the sessions you attend

Following the conference a random drawing from all completed evaluations will be selected

The winner will receive a $250 Future Shop gift card valid online or in store

Page 104: Web Content Management - CollabCon 2015 - Web... · Performances Complete Works ... Friendly URL An SEO friendly URL defined in the term store for a page, rather than ... What’s

SharePoint Site Elements

Site structure Site columns content types subsites lists libraries

Branding elements Master pages layouts CSS XSLT supporting images

Custom web parts Page and site content Web part instances Search Workflows Business Connectivity Services Managed Metadata

SharePoint Site Elements ndash Part 2

Access Excel Word Visio

PerformancePoint

Document conversions

Timer jobs

Secure Store Service

User profiles

Site Structure

bull Site columns

bull Define the fields that are used by content types

bull Content types

bull Defines collections of site columns for different types of content

bull Subsites

bull The hierarchy of sites that make up the site collection

bull Lists and Libraries

bull The lists and libraries for each subsite

Site Structure ndash Part 2

Site columns and content types can be programmatically or manually created If they are going to be used in multiple site collections they should be

programmatically created

If a single site collection they can be created manually in a master site collection

GUIDs cannot be manually set and code may need them to be consistent

You can create them manually in SharePoint save the site as a template and import them into Visual Studio to create a proper WSP package

Site Structure ndash Part 3

Site structure can also be done either programmatically or manually

Many sites are complex and it is error prone to create manually

We use our own SiteModelBuilder tool to create the site structure

Site Structure ndash Part 4

For all site structure elements changes can also be manual or programmatic It is useful to be able to delete the whole site collection and recreate it

programmatically As soon as content starts being authored in SharePoint it becomes difficult

or impossible to do that

After content authoring has started Site column and content type changes need to be programmed explicitly

(you canrsquot just drop the content type and recreate it) Site structure changes are usually done manually at this point Changes need to be backed up and restored

Change Management

Page and Site Content

Page and site content is entered directly into SharePoint by the content authors Web pages images PDFs list content etc This should be done in the master site separate from where dev integration is

happening Care needs to be taken with this site once authors start working Make sure it is part of your production backup plan

Periodically back it up and restore it to the dev integration and developer VMs

Alternatively script the export and import Ultimately it will be backed up and restored to the QA and production

farms

Change Management

Change Management

Change Management

Change Management

Web part instances

Web parts ultimately get placed on pages

The configuration of the web parts can often get quite complex

You may want to disable editing of web parts for general content authors

They end up in a grey zone between code and content

Web part instances ndash Part 2

We created our own internal tool to export and import web parts

Each web partrsquos configuration can be exported into a webpartfile

We scripted the extraction from the dev integration

webpart files are treated like code and checked into TFS for version control

Script then applies the new webpart files to the target environment

Workflows

Workflows can be built using SharePoint Designer Visual Studio or third-party tools (Nintex or K2 primarily)

Visual Studio workflow projects are automatically packaged as WSP solution files Simply deploy the WSP file to the other environments

SharePoint Designer workflows need to be deployed using SharePoint Designer This means you need SPD access to production which is not always possible

You can load the SPD workflow into Visual Studio to package it but you lose the ability to edit it in SPD

If you use third-party tools yoursquoll need to define the process for that as well

Business Connectivity Services

BCS can be built using either SharePoint Designer or Visual Studio Visual Studio BCS projects are automatically packaged as WSP

solution files Simply deploy the WSP file to the other environments You can also export the BDC metadata model in the BDC service

application

SharePoint Designer doesnrsquot create a WSP and it doesnrsquot make a complete BDC metadata model You need to export and import using SharePoint Designer

In both cases you still need to deal with connection and configuration information

Future Directions

Visual Studio Lab Management

Integrates the management of HyperV environments in with Visual Studio and Team Foundation Server

Can automate the provisioning of lab environments for automated testing

Test failures can snapshot entire environments to make reproduction of errors much easier

Summary

Yoursquore going to have lots of SharePoint environments ndash figure out how to build them quickly and repeatable

Code and content often move in opposite directions through dev QA and Prod PowerShell script and automate to keep this simple

Agile is a great way to run projects

Continuous integration with automated testing is key to its success

There are lots of parts of SharePoint that you donrsquot code through Visual Studio Figure out how you move those through your environment

Other Topics

Site Design

Information architecture

Wireframes

Creative designs ndash Mobile first

Catalogs deep dive

Site build PowerShell scripts

Team Foundation Server and Application Lifecycle Management

Starting a new project

Managing content authoring

Site Improve tool

SEO Optimizations

Analytics options

Retaining Page Ranks with permanent redirects (301)

Azure SharePoint Hosting

Q amp A

Session Evaluations

Go to Evaluations on the home page of wwwcollabconorg

It is important to get your feedback

Please fill out evaluations for all the sessions you attend

Following the conference a random drawing from all completed evaluations will be selected

The winner will receive a $250 Future Shop gift card valid online or in store

Page 105: Web Content Management - CollabCon 2015 - Web... · Performances Complete Works ... Friendly URL An SEO friendly URL defined in the term store for a page, rather than ... What’s

SharePoint Site Elements ndash Part 2

Access Excel Word Visio

PerformancePoint

Document conversions

Timer jobs

Secure Store Service

User profiles

Site Structure

bull Site columns

bull Define the fields that are used by content types

bull Content types

bull Defines collections of site columns for different types of content

bull Subsites

bull The hierarchy of sites that make up the site collection

bull Lists and Libraries

bull The lists and libraries for each subsite

Site Structure ndash Part 2

Site columns and content types can be programmatically or manually created If they are going to be used in multiple site collections they should be

programmatically created

If a single site collection they can be created manually in a master site collection

GUIDs cannot be manually set and code may need them to be consistent

You can create them manually in SharePoint save the site as a template and import them into Visual Studio to create a proper WSP package

Site Structure ndash Part 3

Site structure can also be done either programmatically or manually

Many sites are complex and it is error prone to create manually

We use our own SiteModelBuilder tool to create the site structure

Site Structure ndash Part 4

For all site structure elements changes can also be manual or programmatic It is useful to be able to delete the whole site collection and recreate it

programmatically As soon as content starts being authored in SharePoint it becomes difficult

or impossible to do that

After content authoring has started Site column and content type changes need to be programmed explicitly

(you canrsquot just drop the content type and recreate it) Site structure changes are usually done manually at this point Changes need to be backed up and restored

Change Management

Page and Site Content

Page and site content is entered directly into SharePoint by the content authors Web pages images PDFs list content etc This should be done in the master site separate from where dev integration is

happening Care needs to be taken with this site once authors start working Make sure it is part of your production backup plan

Periodically back it up and restore it to the dev integration and developer VMs

Alternatively script the export and import Ultimately it will be backed up and restored to the QA and production

farms

Change Management

Change Management

Change Management

Change Management

Web part instances

Web parts ultimately get placed on pages

The configuration of the web parts can often get quite complex

You may want to disable editing of web parts for general content authors

They end up in a grey zone between code and content

Web part instances ndash Part 2

We created our own internal tool to export and import web parts

Each web partrsquos configuration can be exported into a webpartfile

We scripted the extraction from the dev integration

webpart files are treated like code and checked into TFS for version control

Script then applies the new webpart files to the target environment

Workflows

Workflows can be built using SharePoint Designer Visual Studio or third-party tools (Nintex or K2 primarily)

Visual Studio workflow projects are automatically packaged as WSP solution files Simply deploy the WSP file to the other environments

SharePoint Designer workflows need to be deployed using SharePoint Designer This means you need SPD access to production which is not always possible

You can load the SPD workflow into Visual Studio to package it but you lose the ability to edit it in SPD

If you use third-party tools yoursquoll need to define the process for that as well

Business Connectivity Services

BCS can be built using either SharePoint Designer or Visual Studio Visual Studio BCS projects are automatically packaged as WSP

solution files Simply deploy the WSP file to the other environments You can also export the BDC metadata model in the BDC service

application

SharePoint Designer doesnrsquot create a WSP and it doesnrsquot make a complete BDC metadata model You need to export and import using SharePoint Designer

In both cases you still need to deal with connection and configuration information

Future Directions

Visual Studio Lab Management

Integrates the management of HyperV environments in with Visual Studio and Team Foundation Server

Can automate the provisioning of lab environments for automated testing

Test failures can snapshot entire environments to make reproduction of errors much easier

Summary

Yoursquore going to have lots of SharePoint environments ndash figure out how to build them quickly and repeatable

Code and content often move in opposite directions through dev QA and Prod PowerShell script and automate to keep this simple

Agile is a great way to run projects

Continuous integration with automated testing is key to its success

There are lots of parts of SharePoint that you donrsquot code through Visual Studio Figure out how you move those through your environment

Other Topics

Site Design

Information architecture

Wireframes

Creative designs ndash Mobile first

Catalogs deep dive

Site build PowerShell scripts

Team Foundation Server and Application Lifecycle Management

Starting a new project

Managing content authoring

Site Improve tool

SEO Optimizations

Analytics options

Retaining Page Ranks with permanent redirects (301)

Azure SharePoint Hosting

Q amp A

Session Evaluations

Go to Evaluations on the home page of wwwcollabconorg

It is important to get your feedback

Please fill out evaluations for all the sessions you attend

Following the conference a random drawing from all completed evaluations will be selected

The winner will receive a $250 Future Shop gift card valid online or in store

Page 106: Web Content Management - CollabCon 2015 - Web... · Performances Complete Works ... Friendly URL An SEO friendly URL defined in the term store for a page, rather than ... What’s

Site Structure

bull Site columns

bull Define the fields that are used by content types

bull Content types

bull Defines collections of site columns for different types of content

bull Subsites

bull The hierarchy of sites that make up the site collection

bull Lists and Libraries

bull The lists and libraries for each subsite

Site Structure ndash Part 2

Site columns and content types can be programmatically or manually created If they are going to be used in multiple site collections they should be

programmatically created

If a single site collection they can be created manually in a master site collection

GUIDs cannot be manually set and code may need them to be consistent

You can create them manually in SharePoint save the site as a template and import them into Visual Studio to create a proper WSP package

Site Structure ndash Part 3

Site structure can also be done either programmatically or manually

Many sites are complex and it is error prone to create manually

We use our own SiteModelBuilder tool to create the site structure

Site Structure ndash Part 4

For all site structure elements changes can also be manual or programmatic It is useful to be able to delete the whole site collection and recreate it

programmatically As soon as content starts being authored in SharePoint it becomes difficult

or impossible to do that

After content authoring has started Site column and content type changes need to be programmed explicitly

(you canrsquot just drop the content type and recreate it) Site structure changes are usually done manually at this point Changes need to be backed up and restored

Change Management

Page and Site Content

Page and site content is entered directly into SharePoint by the content authors Web pages images PDFs list content etc This should be done in the master site separate from where dev integration is

happening Care needs to be taken with this site once authors start working Make sure it is part of your production backup plan

Periodically back it up and restore it to the dev integration and developer VMs

Alternatively script the export and import Ultimately it will be backed up and restored to the QA and production

farms

Change Management

Change Management

Change Management

Change Management

Web part instances

Web parts ultimately get placed on pages

The configuration of the web parts can often get quite complex

You may want to disable editing of web parts for general content authors

They end up in a grey zone between code and content

Web part instances ndash Part 2

We created our own internal tool to export and import web parts

Each web partrsquos configuration can be exported into a webpartfile

We scripted the extraction from the dev integration

webpart files are treated like code and checked into TFS for version control

Script then applies the new webpart files to the target environment

Workflows

Workflows can be built using SharePoint Designer Visual Studio or third-party tools (Nintex or K2 primarily)

Visual Studio workflow projects are automatically packaged as WSP solution files Simply deploy the WSP file to the other environments

SharePoint Designer workflows need to be deployed using SharePoint Designer This means you need SPD access to production which is not always possible

You can load the SPD workflow into Visual Studio to package it but you lose the ability to edit it in SPD

If you use third-party tools yoursquoll need to define the process for that as well

Business Connectivity Services

BCS can be built using either SharePoint Designer or Visual Studio Visual Studio BCS projects are automatically packaged as WSP

solution files Simply deploy the WSP file to the other environments You can also export the BDC metadata model in the BDC service

application

SharePoint Designer doesnrsquot create a WSP and it doesnrsquot make a complete BDC metadata model You need to export and import using SharePoint Designer

In both cases you still need to deal with connection and configuration information

Future Directions

Visual Studio Lab Management

Integrates the management of HyperV environments in with Visual Studio and Team Foundation Server

Can automate the provisioning of lab environments for automated testing

Test failures can snapshot entire environments to make reproduction of errors much easier

Summary

Yoursquore going to have lots of SharePoint environments ndash figure out how to build them quickly and repeatable

Code and content often move in opposite directions through dev QA and Prod PowerShell script and automate to keep this simple

Agile is a great way to run projects

Continuous integration with automated testing is key to its success

There are lots of parts of SharePoint that you donrsquot code through Visual Studio Figure out how you move those through your environment

Other Topics

Site Design

Information architecture

Wireframes

Creative designs ndash Mobile first

Catalogs deep dive

Site build PowerShell scripts

Team Foundation Server and Application Lifecycle Management

Starting a new project

Managing content authoring

Site Improve tool

SEO Optimizations

Analytics options

Retaining Page Ranks with permanent redirects (301)

Azure SharePoint Hosting

Q amp A

Session Evaluations

Go to Evaluations on the home page of wwwcollabconorg

It is important to get your feedback

Please fill out evaluations for all the sessions you attend

Following the conference a random drawing from all completed evaluations will be selected

The winner will receive a $250 Future Shop gift card valid online or in store

Page 107: Web Content Management - CollabCon 2015 - Web... · Performances Complete Works ... Friendly URL An SEO friendly URL defined in the term store for a page, rather than ... What’s

Site Structure ndash Part 2

Site columns and content types can be programmatically or manually created If they are going to be used in multiple site collections they should be

programmatically created

If a single site collection they can be created manually in a master site collection

GUIDs cannot be manually set and code may need them to be consistent

You can create them manually in SharePoint save the site as a template and import them into Visual Studio to create a proper WSP package

Site Structure ndash Part 3

Site structure can also be done either programmatically or manually

Many sites are complex and it is error prone to create manually

We use our own SiteModelBuilder tool to create the site structure

Site Structure ndash Part 4

For all site structure elements changes can also be manual or programmatic It is useful to be able to delete the whole site collection and recreate it

programmatically As soon as content starts being authored in SharePoint it becomes difficult

or impossible to do that

After content authoring has started Site column and content type changes need to be programmed explicitly

(you canrsquot just drop the content type and recreate it) Site structure changes are usually done manually at this point Changes need to be backed up and restored

Change Management

Page and Site Content

Page and site content is entered directly into SharePoint by the content authors Web pages images PDFs list content etc This should be done in the master site separate from where dev integration is

happening Care needs to be taken with this site once authors start working Make sure it is part of your production backup plan

Periodically back it up and restore it to the dev integration and developer VMs

Alternatively script the export and import Ultimately it will be backed up and restored to the QA and production

farms

Change Management

Change Management

Change Management

Change Management

Web part instances

Web parts ultimately get placed on pages

The configuration of the web parts can often get quite complex

You may want to disable editing of web parts for general content authors

They end up in a grey zone between code and content

Web part instances ndash Part 2

We created our own internal tool to export and import web parts

Each web partrsquos configuration can be exported into a webpartfile

We scripted the extraction from the dev integration

webpart files are treated like code and checked into TFS for version control

Script then applies the new webpart files to the target environment

Workflows

Workflows can be built using SharePoint Designer Visual Studio or third-party tools (Nintex or K2 primarily)

Visual Studio workflow projects are automatically packaged as WSP solution files Simply deploy the WSP file to the other environments

SharePoint Designer workflows need to be deployed using SharePoint Designer This means you need SPD access to production which is not always possible

You can load the SPD workflow into Visual Studio to package it but you lose the ability to edit it in SPD

If you use third-party tools yoursquoll need to define the process for that as well

Business Connectivity Services

BCS can be built using either SharePoint Designer or Visual Studio Visual Studio BCS projects are automatically packaged as WSP

solution files Simply deploy the WSP file to the other environments You can also export the BDC metadata model in the BDC service

application

SharePoint Designer doesnrsquot create a WSP and it doesnrsquot make a complete BDC metadata model You need to export and import using SharePoint Designer

In both cases you still need to deal with connection and configuration information

Future Directions

Visual Studio Lab Management

Integrates the management of HyperV environments in with Visual Studio and Team Foundation Server

Can automate the provisioning of lab environments for automated testing

Test failures can snapshot entire environments to make reproduction of errors much easier

Summary

Yoursquore going to have lots of SharePoint environments ndash figure out how to build them quickly and repeatable

Code and content often move in opposite directions through dev QA and Prod PowerShell script and automate to keep this simple

Agile is a great way to run projects

Continuous integration with automated testing is key to its success

There are lots of parts of SharePoint that you donrsquot code through Visual Studio Figure out how you move those through your environment

Other Topics

Site Design

Information architecture

Wireframes

Creative designs ndash Mobile first

Catalogs deep dive

Site build PowerShell scripts

Team Foundation Server and Application Lifecycle Management

Starting a new project

Managing content authoring

Site Improve tool

SEO Optimizations

Analytics options

Retaining Page Ranks with permanent redirects (301)

Azure SharePoint Hosting

Q amp A

Session Evaluations

Go to Evaluations on the home page of wwwcollabconorg

It is important to get your feedback

Please fill out evaluations for all the sessions you attend

Following the conference a random drawing from all completed evaluations will be selected

The winner will receive a $250 Future Shop gift card valid online or in store

Page 108: Web Content Management - CollabCon 2015 - Web... · Performances Complete Works ... Friendly URL An SEO friendly URL defined in the term store for a page, rather than ... What’s

Site Structure ndash Part 3

Site structure can also be done either programmatically or manually

Many sites are complex and it is error prone to create manually

We use our own SiteModelBuilder tool to create the site structure

Site Structure ndash Part 4

For all site structure elements changes can also be manual or programmatic It is useful to be able to delete the whole site collection and recreate it

programmatically As soon as content starts being authored in SharePoint it becomes difficult

or impossible to do that

After content authoring has started Site column and content type changes need to be programmed explicitly

(you canrsquot just drop the content type and recreate it) Site structure changes are usually done manually at this point Changes need to be backed up and restored

Change Management

Page and Site Content

Page and site content is entered directly into SharePoint by the content authors Web pages images PDFs list content etc This should be done in the master site separate from where dev integration is

happening Care needs to be taken with this site once authors start working Make sure it is part of your production backup plan

Periodically back it up and restore it to the dev integration and developer VMs

Alternatively script the export and import Ultimately it will be backed up and restored to the QA and production

farms

Change Management

Change Management

Change Management

Change Management

Web part instances

Web parts ultimately get placed on pages

The configuration of the web parts can often get quite complex

You may want to disable editing of web parts for general content authors

They end up in a grey zone between code and content

Web part instances ndash Part 2

We created our own internal tool to export and import web parts

Each web partrsquos configuration can be exported into a webpartfile

We scripted the extraction from the dev integration

webpart files are treated like code and checked into TFS for version control

Script then applies the new webpart files to the target environment

Workflows

Workflows can be built using SharePoint Designer Visual Studio or third-party tools (Nintex or K2 primarily)

Visual Studio workflow projects are automatically packaged as WSP solution files Simply deploy the WSP file to the other environments

SharePoint Designer workflows need to be deployed using SharePoint Designer This means you need SPD access to production which is not always possible

You can load the SPD workflow into Visual Studio to package it but you lose the ability to edit it in SPD

If you use third-party tools yoursquoll need to define the process for that as well

Business Connectivity Services

BCS can be built using either SharePoint Designer or Visual Studio Visual Studio BCS projects are automatically packaged as WSP

solution files Simply deploy the WSP file to the other environments You can also export the BDC metadata model in the BDC service

application

SharePoint Designer doesnrsquot create a WSP and it doesnrsquot make a complete BDC metadata model You need to export and import using SharePoint Designer

In both cases you still need to deal with connection and configuration information

Future Directions

Visual Studio Lab Management

Integrates the management of HyperV environments in with Visual Studio and Team Foundation Server

Can automate the provisioning of lab environments for automated testing

Test failures can snapshot entire environments to make reproduction of errors much easier

Summary

Yoursquore going to have lots of SharePoint environments ndash figure out how to build them quickly and repeatable

Code and content often move in opposite directions through dev QA and Prod PowerShell script and automate to keep this simple

Agile is a great way to run projects

Continuous integration with automated testing is key to its success

There are lots of parts of SharePoint that you donrsquot code through Visual Studio Figure out how you move those through your environment

Other Topics

Site Design

Information architecture

Wireframes

Creative designs ndash Mobile first

Catalogs deep dive

Site build PowerShell scripts

Team Foundation Server and Application Lifecycle Management

Starting a new project

Managing content authoring

Site Improve tool

SEO Optimizations

Analytics options

Retaining Page Ranks with permanent redirects (301)

Azure SharePoint Hosting

Q amp A

Session Evaluations

Go to Evaluations on the home page of wwwcollabconorg

It is important to get your feedback

Please fill out evaluations for all the sessions you attend

Following the conference a random drawing from all completed evaluations will be selected

The winner will receive a $250 Future Shop gift card valid online or in store

Page 109: Web Content Management - CollabCon 2015 - Web... · Performances Complete Works ... Friendly URL An SEO friendly URL defined in the term store for a page, rather than ... What’s

Site Structure ndash Part 4

For all site structure elements changes can also be manual or programmatic It is useful to be able to delete the whole site collection and recreate it

programmatically As soon as content starts being authored in SharePoint it becomes difficult

or impossible to do that

After content authoring has started Site column and content type changes need to be programmed explicitly

(you canrsquot just drop the content type and recreate it) Site structure changes are usually done manually at this point Changes need to be backed up and restored

Change Management

Page and Site Content

Page and site content is entered directly into SharePoint by the content authors Web pages images PDFs list content etc This should be done in the master site separate from where dev integration is

happening Care needs to be taken with this site once authors start working Make sure it is part of your production backup plan

Periodically back it up and restore it to the dev integration and developer VMs

Alternatively script the export and import Ultimately it will be backed up and restored to the QA and production

farms

Change Management

Change Management

Change Management

Change Management

Web part instances

Web parts ultimately get placed on pages

The configuration of the web parts can often get quite complex

You may want to disable editing of web parts for general content authors

They end up in a grey zone between code and content

Web part instances ndash Part 2

We created our own internal tool to export and import web parts

Each web partrsquos configuration can be exported into a webpartfile

We scripted the extraction from the dev integration

webpart files are treated like code and checked into TFS for version control

Script then applies the new webpart files to the target environment

Workflows

Workflows can be built using SharePoint Designer Visual Studio or third-party tools (Nintex or K2 primarily)

Visual Studio workflow projects are automatically packaged as WSP solution files Simply deploy the WSP file to the other environments

SharePoint Designer workflows need to be deployed using SharePoint Designer This means you need SPD access to production which is not always possible

You can load the SPD workflow into Visual Studio to package it but you lose the ability to edit it in SPD

If you use third-party tools yoursquoll need to define the process for that as well

Business Connectivity Services

BCS can be built using either SharePoint Designer or Visual Studio Visual Studio BCS projects are automatically packaged as WSP

solution files Simply deploy the WSP file to the other environments You can also export the BDC metadata model in the BDC service

application

SharePoint Designer doesnrsquot create a WSP and it doesnrsquot make a complete BDC metadata model You need to export and import using SharePoint Designer

In both cases you still need to deal with connection and configuration information

Future Directions

Visual Studio Lab Management

Integrates the management of HyperV environments in with Visual Studio and Team Foundation Server

Can automate the provisioning of lab environments for automated testing

Test failures can snapshot entire environments to make reproduction of errors much easier

Summary

Yoursquore going to have lots of SharePoint environments ndash figure out how to build them quickly and repeatable

Code and content often move in opposite directions through dev QA and Prod PowerShell script and automate to keep this simple

Agile is a great way to run projects

Continuous integration with automated testing is key to its success

There are lots of parts of SharePoint that you donrsquot code through Visual Studio Figure out how you move those through your environment

Other Topics

Site Design

Information architecture

Wireframes

Creative designs ndash Mobile first

Catalogs deep dive

Site build PowerShell scripts

Team Foundation Server and Application Lifecycle Management

Starting a new project

Managing content authoring

Site Improve tool

SEO Optimizations

Analytics options

Retaining Page Ranks with permanent redirects (301)

Azure SharePoint Hosting

Q amp A

Session Evaluations

Go to Evaluations on the home page of wwwcollabconorg

It is important to get your feedback

Please fill out evaluations for all the sessions you attend

Following the conference a random drawing from all completed evaluations will be selected

The winner will receive a $250 Future Shop gift card valid online or in store

Page 110: Web Content Management - CollabCon 2015 - Web... · Performances Complete Works ... Friendly URL An SEO friendly URL defined in the term store for a page, rather than ... What’s

Change Management

Page and Site Content

Page and site content is entered directly into SharePoint by the content authors Web pages images PDFs list content etc This should be done in the master site separate from where dev integration is

happening Care needs to be taken with this site once authors start working Make sure it is part of your production backup plan

Periodically back it up and restore it to the dev integration and developer VMs

Alternatively script the export and import Ultimately it will be backed up and restored to the QA and production

farms

Change Management

Change Management

Change Management

Change Management

Web part instances

Web parts ultimately get placed on pages

The configuration of the web parts can often get quite complex

You may want to disable editing of web parts for general content authors

They end up in a grey zone between code and content

Web part instances ndash Part 2

We created our own internal tool to export and import web parts

Each web partrsquos configuration can be exported into a webpartfile

We scripted the extraction from the dev integration

webpart files are treated like code and checked into TFS for version control

Script then applies the new webpart files to the target environment

Workflows

Workflows can be built using SharePoint Designer Visual Studio or third-party tools (Nintex or K2 primarily)

Visual Studio workflow projects are automatically packaged as WSP solution files Simply deploy the WSP file to the other environments

SharePoint Designer workflows need to be deployed using SharePoint Designer This means you need SPD access to production which is not always possible

You can load the SPD workflow into Visual Studio to package it but you lose the ability to edit it in SPD

If you use third-party tools yoursquoll need to define the process for that as well

Business Connectivity Services

BCS can be built using either SharePoint Designer or Visual Studio Visual Studio BCS projects are automatically packaged as WSP

solution files Simply deploy the WSP file to the other environments You can also export the BDC metadata model in the BDC service

application

SharePoint Designer doesnrsquot create a WSP and it doesnrsquot make a complete BDC metadata model You need to export and import using SharePoint Designer

In both cases you still need to deal with connection and configuration information

Future Directions

Visual Studio Lab Management

Integrates the management of HyperV environments in with Visual Studio and Team Foundation Server

Can automate the provisioning of lab environments for automated testing

Test failures can snapshot entire environments to make reproduction of errors much easier

Summary

Yoursquore going to have lots of SharePoint environments ndash figure out how to build them quickly and repeatable

Code and content often move in opposite directions through dev QA and Prod PowerShell script and automate to keep this simple

Agile is a great way to run projects

Continuous integration with automated testing is key to its success

There are lots of parts of SharePoint that you donrsquot code through Visual Studio Figure out how you move those through your environment

Other Topics

Site Design

Information architecture

Wireframes

Creative designs ndash Mobile first

Catalogs deep dive

Site build PowerShell scripts

Team Foundation Server and Application Lifecycle Management

Starting a new project

Managing content authoring

Site Improve tool

SEO Optimizations

Analytics options

Retaining Page Ranks with permanent redirects (301)

Azure SharePoint Hosting

Q amp A

Session Evaluations

Go to Evaluations on the home page of wwwcollabconorg

It is important to get your feedback

Please fill out evaluations for all the sessions you attend

Following the conference a random drawing from all completed evaluations will be selected

The winner will receive a $250 Future Shop gift card valid online or in store

Page 111: Web Content Management - CollabCon 2015 - Web... · Performances Complete Works ... Friendly URL An SEO friendly URL defined in the term store for a page, rather than ... What’s

Page and Site Content

Page and site content is entered directly into SharePoint by the content authors Web pages images PDFs list content etc This should be done in the master site separate from where dev integration is

happening Care needs to be taken with this site once authors start working Make sure it is part of your production backup plan

Periodically back it up and restore it to the dev integration and developer VMs

Alternatively script the export and import Ultimately it will be backed up and restored to the QA and production

farms

Change Management

Change Management

Change Management

Change Management

Web part instances

Web parts ultimately get placed on pages

The configuration of the web parts can often get quite complex

You may want to disable editing of web parts for general content authors

They end up in a grey zone between code and content

Web part instances ndash Part 2

We created our own internal tool to export and import web parts

Each web partrsquos configuration can be exported into a webpartfile

We scripted the extraction from the dev integration

webpart files are treated like code and checked into TFS for version control

Script then applies the new webpart files to the target environment

Workflows

Workflows can be built using SharePoint Designer Visual Studio or third-party tools (Nintex or K2 primarily)

Visual Studio workflow projects are automatically packaged as WSP solution files Simply deploy the WSP file to the other environments

SharePoint Designer workflows need to be deployed using SharePoint Designer This means you need SPD access to production which is not always possible

You can load the SPD workflow into Visual Studio to package it but you lose the ability to edit it in SPD

If you use third-party tools yoursquoll need to define the process for that as well

Business Connectivity Services

BCS can be built using either SharePoint Designer or Visual Studio Visual Studio BCS projects are automatically packaged as WSP

solution files Simply deploy the WSP file to the other environments You can also export the BDC metadata model in the BDC service

application

SharePoint Designer doesnrsquot create a WSP and it doesnrsquot make a complete BDC metadata model You need to export and import using SharePoint Designer

In both cases you still need to deal with connection and configuration information

Future Directions

Visual Studio Lab Management

Integrates the management of HyperV environments in with Visual Studio and Team Foundation Server

Can automate the provisioning of lab environments for automated testing

Test failures can snapshot entire environments to make reproduction of errors much easier

Summary

Yoursquore going to have lots of SharePoint environments ndash figure out how to build them quickly and repeatable

Code and content often move in opposite directions through dev QA and Prod PowerShell script and automate to keep this simple

Agile is a great way to run projects

Continuous integration with automated testing is key to its success

There are lots of parts of SharePoint that you donrsquot code through Visual Studio Figure out how you move those through your environment

Other Topics

Site Design

Information architecture

Wireframes

Creative designs ndash Mobile first

Catalogs deep dive

Site build PowerShell scripts

Team Foundation Server and Application Lifecycle Management

Starting a new project

Managing content authoring

Site Improve tool

SEO Optimizations

Analytics options

Retaining Page Ranks with permanent redirects (301)

Azure SharePoint Hosting

Q amp A

Session Evaluations

Go to Evaluations on the home page of wwwcollabconorg

It is important to get your feedback

Please fill out evaluations for all the sessions you attend

Following the conference a random drawing from all completed evaluations will be selected

The winner will receive a $250 Future Shop gift card valid online or in store

Page 112: Web Content Management - CollabCon 2015 - Web... · Performances Complete Works ... Friendly URL An SEO friendly URL defined in the term store for a page, rather than ... What’s

Change Management

Change Management

Change Management

Change Management

Web part instances

Web parts ultimately get placed on pages

The configuration of the web parts can often get quite complex

You may want to disable editing of web parts for general content authors

They end up in a grey zone between code and content

Web part instances ndash Part 2

We created our own internal tool to export and import web parts

Each web partrsquos configuration can be exported into a webpartfile

We scripted the extraction from the dev integration

webpart files are treated like code and checked into TFS for version control

Script then applies the new webpart files to the target environment

Workflows

Workflows can be built using SharePoint Designer Visual Studio or third-party tools (Nintex or K2 primarily)

Visual Studio workflow projects are automatically packaged as WSP solution files Simply deploy the WSP file to the other environments

SharePoint Designer workflows need to be deployed using SharePoint Designer This means you need SPD access to production which is not always possible

You can load the SPD workflow into Visual Studio to package it but you lose the ability to edit it in SPD

If you use third-party tools yoursquoll need to define the process for that as well

Business Connectivity Services

BCS can be built using either SharePoint Designer or Visual Studio Visual Studio BCS projects are automatically packaged as WSP

solution files Simply deploy the WSP file to the other environments You can also export the BDC metadata model in the BDC service

application

SharePoint Designer doesnrsquot create a WSP and it doesnrsquot make a complete BDC metadata model You need to export and import using SharePoint Designer

In both cases you still need to deal with connection and configuration information

Future Directions

Visual Studio Lab Management

Integrates the management of HyperV environments in with Visual Studio and Team Foundation Server

Can automate the provisioning of lab environments for automated testing

Test failures can snapshot entire environments to make reproduction of errors much easier

Summary

Yoursquore going to have lots of SharePoint environments ndash figure out how to build them quickly and repeatable

Code and content often move in opposite directions through dev QA and Prod PowerShell script and automate to keep this simple

Agile is a great way to run projects

Continuous integration with automated testing is key to its success

There are lots of parts of SharePoint that you donrsquot code through Visual Studio Figure out how you move those through your environment

Other Topics

Site Design

Information architecture

Wireframes

Creative designs ndash Mobile first

Catalogs deep dive

Site build PowerShell scripts

Team Foundation Server and Application Lifecycle Management

Starting a new project

Managing content authoring

Site Improve tool

SEO Optimizations

Analytics options

Retaining Page Ranks with permanent redirects (301)

Azure SharePoint Hosting

Q amp A

Session Evaluations

Go to Evaluations on the home page of wwwcollabconorg

It is important to get your feedback

Please fill out evaluations for all the sessions you attend

Following the conference a random drawing from all completed evaluations will be selected

The winner will receive a $250 Future Shop gift card valid online or in store

Page 113: Web Content Management - CollabCon 2015 - Web... · Performances Complete Works ... Friendly URL An SEO friendly URL defined in the term store for a page, rather than ... What’s

Change Management

Change Management

Change Management

Web part instances

Web parts ultimately get placed on pages

The configuration of the web parts can often get quite complex

You may want to disable editing of web parts for general content authors

They end up in a grey zone between code and content

Web part instances ndash Part 2

We created our own internal tool to export and import web parts

Each web partrsquos configuration can be exported into a webpartfile

We scripted the extraction from the dev integration

webpart files are treated like code and checked into TFS for version control

Script then applies the new webpart files to the target environment

Workflows

Workflows can be built using SharePoint Designer Visual Studio or third-party tools (Nintex or K2 primarily)

Visual Studio workflow projects are automatically packaged as WSP solution files Simply deploy the WSP file to the other environments

SharePoint Designer workflows need to be deployed using SharePoint Designer This means you need SPD access to production which is not always possible

You can load the SPD workflow into Visual Studio to package it but you lose the ability to edit it in SPD

If you use third-party tools yoursquoll need to define the process for that as well

Business Connectivity Services

BCS can be built using either SharePoint Designer or Visual Studio Visual Studio BCS projects are automatically packaged as WSP

solution files Simply deploy the WSP file to the other environments You can also export the BDC metadata model in the BDC service

application

SharePoint Designer doesnrsquot create a WSP and it doesnrsquot make a complete BDC metadata model You need to export and import using SharePoint Designer

In both cases you still need to deal with connection and configuration information

Future Directions

Visual Studio Lab Management

Integrates the management of HyperV environments in with Visual Studio and Team Foundation Server

Can automate the provisioning of lab environments for automated testing

Test failures can snapshot entire environments to make reproduction of errors much easier

Summary

Yoursquore going to have lots of SharePoint environments ndash figure out how to build them quickly and repeatable

Code and content often move in opposite directions through dev QA and Prod PowerShell script and automate to keep this simple

Agile is a great way to run projects

Continuous integration with automated testing is key to its success

There are lots of parts of SharePoint that you donrsquot code through Visual Studio Figure out how you move those through your environment

Other Topics

Site Design

Information architecture

Wireframes

Creative designs ndash Mobile first

Catalogs deep dive

Site build PowerShell scripts

Team Foundation Server and Application Lifecycle Management

Starting a new project

Managing content authoring

Site Improve tool

SEO Optimizations

Analytics options

Retaining Page Ranks with permanent redirects (301)

Azure SharePoint Hosting

Q amp A

Session Evaluations

Go to Evaluations on the home page of wwwcollabconorg

It is important to get your feedback

Please fill out evaluations for all the sessions you attend

Following the conference a random drawing from all completed evaluations will be selected

The winner will receive a $250 Future Shop gift card valid online or in store

Page 114: Web Content Management - CollabCon 2015 - Web... · Performances Complete Works ... Friendly URL An SEO friendly URL defined in the term store for a page, rather than ... What’s

Change Management

Change Management

Web part instances

Web parts ultimately get placed on pages

The configuration of the web parts can often get quite complex

You may want to disable editing of web parts for general content authors

They end up in a grey zone between code and content

Web part instances ndash Part 2

We created our own internal tool to export and import web parts

Each web partrsquos configuration can be exported into a webpartfile

We scripted the extraction from the dev integration

webpart files are treated like code and checked into TFS for version control

Script then applies the new webpart files to the target environment

Workflows

Workflows can be built using SharePoint Designer Visual Studio or third-party tools (Nintex or K2 primarily)

Visual Studio workflow projects are automatically packaged as WSP solution files Simply deploy the WSP file to the other environments

SharePoint Designer workflows need to be deployed using SharePoint Designer This means you need SPD access to production which is not always possible

You can load the SPD workflow into Visual Studio to package it but you lose the ability to edit it in SPD

If you use third-party tools yoursquoll need to define the process for that as well

Business Connectivity Services

BCS can be built using either SharePoint Designer or Visual Studio Visual Studio BCS projects are automatically packaged as WSP

solution files Simply deploy the WSP file to the other environments You can also export the BDC metadata model in the BDC service

application

SharePoint Designer doesnrsquot create a WSP and it doesnrsquot make a complete BDC metadata model You need to export and import using SharePoint Designer

In both cases you still need to deal with connection and configuration information

Future Directions

Visual Studio Lab Management

Integrates the management of HyperV environments in with Visual Studio and Team Foundation Server

Can automate the provisioning of lab environments for automated testing

Test failures can snapshot entire environments to make reproduction of errors much easier

Summary

Yoursquore going to have lots of SharePoint environments ndash figure out how to build them quickly and repeatable

Code and content often move in opposite directions through dev QA and Prod PowerShell script and automate to keep this simple

Agile is a great way to run projects

Continuous integration with automated testing is key to its success

There are lots of parts of SharePoint that you donrsquot code through Visual Studio Figure out how you move those through your environment

Other Topics

Site Design

Information architecture

Wireframes

Creative designs ndash Mobile first

Catalogs deep dive

Site build PowerShell scripts

Team Foundation Server and Application Lifecycle Management

Starting a new project

Managing content authoring

Site Improve tool

SEO Optimizations

Analytics options

Retaining Page Ranks with permanent redirects (301)

Azure SharePoint Hosting

Q amp A

Session Evaluations

Go to Evaluations on the home page of wwwcollabconorg

It is important to get your feedback

Please fill out evaluations for all the sessions you attend

Following the conference a random drawing from all completed evaluations will be selected

The winner will receive a $250 Future Shop gift card valid online or in store

Page 115: Web Content Management - CollabCon 2015 - Web... · Performances Complete Works ... Friendly URL An SEO friendly URL defined in the term store for a page, rather than ... What’s

Change Management

Web part instances

Web parts ultimately get placed on pages

The configuration of the web parts can often get quite complex

You may want to disable editing of web parts for general content authors

They end up in a grey zone between code and content

Web part instances ndash Part 2

We created our own internal tool to export and import web parts

Each web partrsquos configuration can be exported into a webpartfile

We scripted the extraction from the dev integration

webpart files are treated like code and checked into TFS for version control

Script then applies the new webpart files to the target environment

Workflows

Workflows can be built using SharePoint Designer Visual Studio or third-party tools (Nintex or K2 primarily)

Visual Studio workflow projects are automatically packaged as WSP solution files Simply deploy the WSP file to the other environments

SharePoint Designer workflows need to be deployed using SharePoint Designer This means you need SPD access to production which is not always possible

You can load the SPD workflow into Visual Studio to package it but you lose the ability to edit it in SPD

If you use third-party tools yoursquoll need to define the process for that as well

Business Connectivity Services

BCS can be built using either SharePoint Designer or Visual Studio Visual Studio BCS projects are automatically packaged as WSP

solution files Simply deploy the WSP file to the other environments You can also export the BDC metadata model in the BDC service

application

SharePoint Designer doesnrsquot create a WSP and it doesnrsquot make a complete BDC metadata model You need to export and import using SharePoint Designer

In both cases you still need to deal with connection and configuration information

Future Directions

Visual Studio Lab Management

Integrates the management of HyperV environments in with Visual Studio and Team Foundation Server

Can automate the provisioning of lab environments for automated testing

Test failures can snapshot entire environments to make reproduction of errors much easier

Summary

Yoursquore going to have lots of SharePoint environments ndash figure out how to build them quickly and repeatable

Code and content often move in opposite directions through dev QA and Prod PowerShell script and automate to keep this simple

Agile is a great way to run projects

Continuous integration with automated testing is key to its success

There are lots of parts of SharePoint that you donrsquot code through Visual Studio Figure out how you move those through your environment

Other Topics

Site Design

Information architecture

Wireframes

Creative designs ndash Mobile first

Catalogs deep dive

Site build PowerShell scripts

Team Foundation Server and Application Lifecycle Management

Starting a new project

Managing content authoring

Site Improve tool

SEO Optimizations

Analytics options

Retaining Page Ranks with permanent redirects (301)

Azure SharePoint Hosting

Q amp A

Session Evaluations

Go to Evaluations on the home page of wwwcollabconorg

It is important to get your feedback

Please fill out evaluations for all the sessions you attend

Following the conference a random drawing from all completed evaluations will be selected

The winner will receive a $250 Future Shop gift card valid online or in store

Page 116: Web Content Management - CollabCon 2015 - Web... · Performances Complete Works ... Friendly URL An SEO friendly URL defined in the term store for a page, rather than ... What’s

Web part instances

Web parts ultimately get placed on pages

The configuration of the web parts can often get quite complex

You may want to disable editing of web parts for general content authors

They end up in a grey zone between code and content

Web part instances ndash Part 2

We created our own internal tool to export and import web parts

Each web partrsquos configuration can be exported into a webpartfile

We scripted the extraction from the dev integration

webpart files are treated like code and checked into TFS for version control

Script then applies the new webpart files to the target environment

Workflows

Workflows can be built using SharePoint Designer Visual Studio or third-party tools (Nintex or K2 primarily)

Visual Studio workflow projects are automatically packaged as WSP solution files Simply deploy the WSP file to the other environments

SharePoint Designer workflows need to be deployed using SharePoint Designer This means you need SPD access to production which is not always possible

You can load the SPD workflow into Visual Studio to package it but you lose the ability to edit it in SPD

If you use third-party tools yoursquoll need to define the process for that as well

Business Connectivity Services

BCS can be built using either SharePoint Designer or Visual Studio Visual Studio BCS projects are automatically packaged as WSP

solution files Simply deploy the WSP file to the other environments You can also export the BDC metadata model in the BDC service

application

SharePoint Designer doesnrsquot create a WSP and it doesnrsquot make a complete BDC metadata model You need to export and import using SharePoint Designer

In both cases you still need to deal with connection and configuration information

Future Directions

Visual Studio Lab Management

Integrates the management of HyperV environments in with Visual Studio and Team Foundation Server

Can automate the provisioning of lab environments for automated testing

Test failures can snapshot entire environments to make reproduction of errors much easier

Summary

Yoursquore going to have lots of SharePoint environments ndash figure out how to build them quickly and repeatable

Code and content often move in opposite directions through dev QA and Prod PowerShell script and automate to keep this simple

Agile is a great way to run projects

Continuous integration with automated testing is key to its success

There are lots of parts of SharePoint that you donrsquot code through Visual Studio Figure out how you move those through your environment

Other Topics

Site Design

Information architecture

Wireframes

Creative designs ndash Mobile first

Catalogs deep dive

Site build PowerShell scripts

Team Foundation Server and Application Lifecycle Management

Starting a new project

Managing content authoring

Site Improve tool

SEO Optimizations

Analytics options

Retaining Page Ranks with permanent redirects (301)

Azure SharePoint Hosting

Q amp A

Session Evaluations

Go to Evaluations on the home page of wwwcollabconorg

It is important to get your feedback

Please fill out evaluations for all the sessions you attend

Following the conference a random drawing from all completed evaluations will be selected

The winner will receive a $250 Future Shop gift card valid online or in store

Page 117: Web Content Management - CollabCon 2015 - Web... · Performances Complete Works ... Friendly URL An SEO friendly URL defined in the term store for a page, rather than ... What’s

Web part instances ndash Part 2

We created our own internal tool to export and import web parts

Each web partrsquos configuration can be exported into a webpartfile

We scripted the extraction from the dev integration

webpart files are treated like code and checked into TFS for version control

Script then applies the new webpart files to the target environment

Workflows

Workflows can be built using SharePoint Designer Visual Studio or third-party tools (Nintex or K2 primarily)

Visual Studio workflow projects are automatically packaged as WSP solution files Simply deploy the WSP file to the other environments

SharePoint Designer workflows need to be deployed using SharePoint Designer This means you need SPD access to production which is not always possible

You can load the SPD workflow into Visual Studio to package it but you lose the ability to edit it in SPD

If you use third-party tools yoursquoll need to define the process for that as well

Business Connectivity Services

BCS can be built using either SharePoint Designer or Visual Studio Visual Studio BCS projects are automatically packaged as WSP

solution files Simply deploy the WSP file to the other environments You can also export the BDC metadata model in the BDC service

application

SharePoint Designer doesnrsquot create a WSP and it doesnrsquot make a complete BDC metadata model You need to export and import using SharePoint Designer

In both cases you still need to deal with connection and configuration information

Future Directions

Visual Studio Lab Management

Integrates the management of HyperV environments in with Visual Studio and Team Foundation Server

Can automate the provisioning of lab environments for automated testing

Test failures can snapshot entire environments to make reproduction of errors much easier

Summary

Yoursquore going to have lots of SharePoint environments ndash figure out how to build them quickly and repeatable

Code and content often move in opposite directions through dev QA and Prod PowerShell script and automate to keep this simple

Agile is a great way to run projects

Continuous integration with automated testing is key to its success

There are lots of parts of SharePoint that you donrsquot code through Visual Studio Figure out how you move those through your environment

Other Topics

Site Design

Information architecture

Wireframes

Creative designs ndash Mobile first

Catalogs deep dive

Site build PowerShell scripts

Team Foundation Server and Application Lifecycle Management

Starting a new project

Managing content authoring

Site Improve tool

SEO Optimizations

Analytics options

Retaining Page Ranks with permanent redirects (301)

Azure SharePoint Hosting

Q amp A

Session Evaluations

Go to Evaluations on the home page of wwwcollabconorg

It is important to get your feedback

Please fill out evaluations for all the sessions you attend

Following the conference a random drawing from all completed evaluations will be selected

The winner will receive a $250 Future Shop gift card valid online or in store

Page 118: Web Content Management - CollabCon 2015 - Web... · Performances Complete Works ... Friendly URL An SEO friendly URL defined in the term store for a page, rather than ... What’s

Workflows

Workflows can be built using SharePoint Designer Visual Studio or third-party tools (Nintex or K2 primarily)

Visual Studio workflow projects are automatically packaged as WSP solution files Simply deploy the WSP file to the other environments

SharePoint Designer workflows need to be deployed using SharePoint Designer This means you need SPD access to production which is not always possible

You can load the SPD workflow into Visual Studio to package it but you lose the ability to edit it in SPD

If you use third-party tools yoursquoll need to define the process for that as well

Business Connectivity Services

BCS can be built using either SharePoint Designer or Visual Studio Visual Studio BCS projects are automatically packaged as WSP

solution files Simply deploy the WSP file to the other environments You can also export the BDC metadata model in the BDC service

application

SharePoint Designer doesnrsquot create a WSP and it doesnrsquot make a complete BDC metadata model You need to export and import using SharePoint Designer

In both cases you still need to deal with connection and configuration information

Future Directions

Visual Studio Lab Management

Integrates the management of HyperV environments in with Visual Studio and Team Foundation Server

Can automate the provisioning of lab environments for automated testing

Test failures can snapshot entire environments to make reproduction of errors much easier

Summary

Yoursquore going to have lots of SharePoint environments ndash figure out how to build them quickly and repeatable

Code and content often move in opposite directions through dev QA and Prod PowerShell script and automate to keep this simple

Agile is a great way to run projects

Continuous integration with automated testing is key to its success

There are lots of parts of SharePoint that you donrsquot code through Visual Studio Figure out how you move those through your environment

Other Topics

Site Design

Information architecture

Wireframes

Creative designs ndash Mobile first

Catalogs deep dive

Site build PowerShell scripts

Team Foundation Server and Application Lifecycle Management

Starting a new project

Managing content authoring

Site Improve tool

SEO Optimizations

Analytics options

Retaining Page Ranks with permanent redirects (301)

Azure SharePoint Hosting

Q amp A

Session Evaluations

Go to Evaluations on the home page of wwwcollabconorg

It is important to get your feedback

Please fill out evaluations for all the sessions you attend

Following the conference a random drawing from all completed evaluations will be selected

The winner will receive a $250 Future Shop gift card valid online or in store

Page 119: Web Content Management - CollabCon 2015 - Web... · Performances Complete Works ... Friendly URL An SEO friendly URL defined in the term store for a page, rather than ... What’s

Business Connectivity Services

BCS can be built using either SharePoint Designer or Visual Studio Visual Studio BCS projects are automatically packaged as WSP

solution files Simply deploy the WSP file to the other environments You can also export the BDC metadata model in the BDC service

application

SharePoint Designer doesnrsquot create a WSP and it doesnrsquot make a complete BDC metadata model You need to export and import using SharePoint Designer

In both cases you still need to deal with connection and configuration information

Future Directions

Visual Studio Lab Management

Integrates the management of HyperV environments in with Visual Studio and Team Foundation Server

Can automate the provisioning of lab environments for automated testing

Test failures can snapshot entire environments to make reproduction of errors much easier

Summary

Yoursquore going to have lots of SharePoint environments ndash figure out how to build them quickly and repeatable

Code and content often move in opposite directions through dev QA and Prod PowerShell script and automate to keep this simple

Agile is a great way to run projects

Continuous integration with automated testing is key to its success

There are lots of parts of SharePoint that you donrsquot code through Visual Studio Figure out how you move those through your environment

Other Topics

Site Design

Information architecture

Wireframes

Creative designs ndash Mobile first

Catalogs deep dive

Site build PowerShell scripts

Team Foundation Server and Application Lifecycle Management

Starting a new project

Managing content authoring

Site Improve tool

SEO Optimizations

Analytics options

Retaining Page Ranks with permanent redirects (301)

Azure SharePoint Hosting

Q amp A

Session Evaluations

Go to Evaluations on the home page of wwwcollabconorg

It is important to get your feedback

Please fill out evaluations for all the sessions you attend

Following the conference a random drawing from all completed evaluations will be selected

The winner will receive a $250 Future Shop gift card valid online or in store

Page 120: Web Content Management - CollabCon 2015 - Web... · Performances Complete Works ... Friendly URL An SEO friendly URL defined in the term store for a page, rather than ... What’s

Future Directions

Visual Studio Lab Management

Integrates the management of HyperV environments in with Visual Studio and Team Foundation Server

Can automate the provisioning of lab environments for automated testing

Test failures can snapshot entire environments to make reproduction of errors much easier

Summary

Yoursquore going to have lots of SharePoint environments ndash figure out how to build them quickly and repeatable

Code and content often move in opposite directions through dev QA and Prod PowerShell script and automate to keep this simple

Agile is a great way to run projects

Continuous integration with automated testing is key to its success

There are lots of parts of SharePoint that you donrsquot code through Visual Studio Figure out how you move those through your environment

Other Topics

Site Design

Information architecture

Wireframes

Creative designs ndash Mobile first

Catalogs deep dive

Site build PowerShell scripts

Team Foundation Server and Application Lifecycle Management

Starting a new project

Managing content authoring

Site Improve tool

SEO Optimizations

Analytics options

Retaining Page Ranks with permanent redirects (301)

Azure SharePoint Hosting

Q amp A

Session Evaluations

Go to Evaluations on the home page of wwwcollabconorg

It is important to get your feedback

Please fill out evaluations for all the sessions you attend

Following the conference a random drawing from all completed evaluations will be selected

The winner will receive a $250 Future Shop gift card valid online or in store

Page 121: Web Content Management - CollabCon 2015 - Web... · Performances Complete Works ... Friendly URL An SEO friendly URL defined in the term store for a page, rather than ... What’s

Summary

Yoursquore going to have lots of SharePoint environments ndash figure out how to build them quickly and repeatable

Code and content often move in opposite directions through dev QA and Prod PowerShell script and automate to keep this simple

Agile is a great way to run projects

Continuous integration with automated testing is key to its success

There are lots of parts of SharePoint that you donrsquot code through Visual Studio Figure out how you move those through your environment

Other Topics

Site Design

Information architecture

Wireframes

Creative designs ndash Mobile first

Catalogs deep dive

Site build PowerShell scripts

Team Foundation Server and Application Lifecycle Management

Starting a new project

Managing content authoring

Site Improve tool

SEO Optimizations

Analytics options

Retaining Page Ranks with permanent redirects (301)

Azure SharePoint Hosting

Q amp A

Session Evaluations

Go to Evaluations on the home page of wwwcollabconorg

It is important to get your feedback

Please fill out evaluations for all the sessions you attend

Following the conference a random drawing from all completed evaluations will be selected

The winner will receive a $250 Future Shop gift card valid online or in store

Page 122: Web Content Management - CollabCon 2015 - Web... · Performances Complete Works ... Friendly URL An SEO friendly URL defined in the term store for a page, rather than ... What’s

Other Topics

Site Design

Information architecture

Wireframes

Creative designs ndash Mobile first

Catalogs deep dive

Site build PowerShell scripts

Team Foundation Server and Application Lifecycle Management

Starting a new project

Managing content authoring

Site Improve tool

SEO Optimizations

Analytics options

Retaining Page Ranks with permanent redirects (301)

Azure SharePoint Hosting

Q amp A

Session Evaluations

Go to Evaluations on the home page of wwwcollabconorg

It is important to get your feedback

Please fill out evaluations for all the sessions you attend

Following the conference a random drawing from all completed evaluations will be selected

The winner will receive a $250 Future Shop gift card valid online or in store

Page 123: Web Content Management - CollabCon 2015 - Web... · Performances Complete Works ... Friendly URL An SEO friendly URL defined in the term store for a page, rather than ... What’s

Q amp A

Session Evaluations

Go to Evaluations on the home page of wwwcollabconorg

It is important to get your feedback

Please fill out evaluations for all the sessions you attend

Following the conference a random drawing from all completed evaluations will be selected

The winner will receive a $250 Future Shop gift card valid online or in store

Page 124: Web Content Management - CollabCon 2015 - Web... · Performances Complete Works ... Friendly URL An SEO friendly URL defined in the term store for a page, rather than ... What’s

Session Evaluations

Go to Evaluations on the home page of wwwcollabconorg

It is important to get your feedback

Please fill out evaluations for all the sessions you attend

Following the conference a random drawing from all completed evaluations will be selected

The winner will receive a $250 Future Shop gift card valid online or in store