web content management - collabcon 2015 - web... · performances complete works ... friendly url an...
TRANSCRIPT
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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 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
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
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
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
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
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
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
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
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
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
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
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
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
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