Developing Web Content Management solutions with

Download Report

Transcript Developing Web Content Management solutions with

Developing
Web Content Management
solutions with
Office SharePoint Server 2007
Mark Harrison
Architectural Engineer
Microsoft UK
[email protected]
http://markharrison.co.uk/blog
Agenda
Web Content Management in a SharePoint environment
Content Management Server
& SharePoint Portal Server merge
Publishing pages – how they work
How developers can extend / customise the
2007 Web Content Management capabilities
Branding
Page Layouts
Custom Controls
Authoring functionality
Variations
Caching
Business
Intelligence
Collaboration &
Communications
Project &
Portfolio
Business
Processes
Enterprise
Content
Management
Search
Enterprise
Content
Management
ECM …the set of tools to manage the
entire lifecycle of content from the time
it is created to when it is published and
finally disposed or stored for long term
archival.
Applications &
Solution Scenarios
Author
Review/
Approve
Manage
Publish
Archive
Integrated solution to manage the complete content lifecycle
Dispose
CMS – still alive and kicking !
Web site page authoring by non technical users
Content separate from presentation – multiple channels
SharePoint can now support all CMS scenarios
Any deployment topology – authoring / production on separate
tiers; geographically distributed
Publishing schedules
Internet Scale
2.0
Rich branding
ECM
Extensible
Seach
Windows
Content Management
Aggregation
Workflow Foundation
Services
authentication
Discovery
Web Services
Portal Services
Excel Services
Collab
Forms
Calculation /
Business Rules
Forms Services
Migration tools for
CMS2002
(content and application)
Document
Management
List management
Workspaces
Content containers
Today we have three containers - CMS Channels / SPS Areas / WSS workspaces
MOSS will have a single container (a Site - aka WSS SPWeb) and will offer a superset of
existing functionality
The sites are arranged in a hierarchy – typically used for navigation & security
Pages
Doc Lib
Home (Site)
Site Collection
About Us (subsite)
Pages
Doc Lib
Products (subsite)
Product A(subsite)
Pages
Doc Lib
Master Page Gallery
Doc Lib
Pages
Doc Lib
Services (subsite)
Product B(subsite)
Pages
Doc Lib
Pages
Doc Lib
Each Site has a document library for storing web pages
Consistent with access controls / workflow / metadata / versioning / check-in/out / recycle bin
MCMS Postings are now Pages and stored in the Pages document library
MCMS Placeholder content stored in column item – columns defined by Content Types
MCMS .aspx Templates are now called Page Layouts in the Master Page Gallery
MCMS Placeholders are now called Field Controls
MCMS Resource Gallery dropped . Resources (images / attachments) are now stored in
either a WSS Image Library or WSS Document Library
Web Content Management
Rendering ‘Pages’
Master Page
Field Controls
• Publishing feature must
be ‘Activated’
• ASP.NET 2.0 Master
Pages are used to control
look and feel of the
website
• Page Layout defines the
remainder of the page
•
Provides consistency for
similar types of pages
• Field Controls render the
content items
•
Three lives : View Mode,
Edit mode & Design Time
Page Layout
FileName
PageLayout
Title
Body
Image
Welcome.aspx
PageLayout.aspx
Welcome To News
Lorem ipsum dolor sit ...
/Images/Chair.jpg
‘Pages’ Doc Lib
2.0
CMS Page Rendering
Site Navigation
Compliant with ASP.Net 2.0 Navigation Provider Model
Works with standard ASP.NET 2.0 navigation/menu controls
Out-of-the-box Portal Hierarchy Navigation Provider
Dynamic navigation based on site hierarchy
Links trimmed based on security, workflow state and publishing schedule
High performance: provider support runtime object caching
Extensible
Summary controls:
Summary Links field control
Content by Query web part
Table of Contents web part
Site search is out-of-the-box  unlike MCMS
2.0
Authentication
Anonymous access
Windows Authentication (Kerberos, NTLM, Basic, Digital
Certificates)
Forms Authentication using the
ASP.NET 2.0 Membership Provider Interface
Extensible for custom authentication mechanisms and user profile
repositories
ASP.NET ships with a SQL Server provider
MOSS 2007 also provides an LDAP provider
New role – Viewer
Can use the site i.e. view pages, documents, images
Cannot use the Sharepoint application UI
Cannot call Remote APIs: SOAP, DAV & RPC
2.0
Look & feel / branding a site
Master Pages makes it easy to ‘skin a site’
What goes in a Master Page?
Navigation
Logos
Search Box
Login control
Editing controls
CSS references
…any other control
<link rel=“stylesheet” …>
<IMG …>
<SharePoint:HighlightMenu …>
<PublishingNavigation:
PortalSiteMapDataSource …>
<SharePoint:SiteActions …>
<asp:LoginStatus …>
<SPSWC:
RightBodySectionSearchBox …>
Alternate CSS setting allows sub-sites to override the
default settings
Many Web Parts output can be overwritten
using XSLT
2.0
Changing the Look & Feel
Page Layouts
2.0
Content Types provide the schema
Define the available fields for a particular type of page
Page Layouts provide the template for rendering
References a Content Type to define content fields
References a Master Page for global navigation
and chrome
Its ASP.NET … may include:
Field Controls that are bound to the fields in the Content Type
Web Parts that can be used by authors
Web Part zones to give page authors flexibility to add content outside of the
pages schema
Custom server controls
Can have many Page Layouts per Content Type
e.g. Product and Event web pages could both be ‘Article Page’ Content Types.
Creating A New Page Layout
Variations
Enable multi-channels & multi-language
Variation labels are the explicitly-named versions of
content the web site supports
(English, German, Mobile)
System auto-creates peer sites
and pages
Source and targets pages can either
“Sicherheit”
share or use different look and feel
VariationsRootLanding.ascx is
placed in the root to redirect the
user to variation site
“Sécurité”
VariationsLabelMenu.ascx file
“安全”
contains the logic to render
variation labels on a page
Http://my_site/
Http://my_site/ en-US/
English
Safety.aspx
“Safety”
Http://my_site/de-DE/
Deutsch
Safety.aspx
Translation
Safety.aspx
Translation
Http://my_site/ es-ES/
Español
“Seguridad”
Http://my_site/ fr-FR/
Français
Safety.aspx
Translation
Safety.aspx
Translation
Http://my_site/ jp-JP/
日本語
Http://my_site/ Mobile/
Mobile
Safety.aspx
“Safety”
Creating Page Variations
Custom Field Controls
Standard Field Controls are:
HTML
Text
Link
Can extend by developing Custom Field Controls
Similar to MCMS Custom Placeholders
Example: flash/movie control
Custom controls are developed by deriving from a base Field
Control
Three lives : View Mode, Edit mode & Design Time
2.0
Implementing A Custom Field Control
Authoring Extensibility Points
Page editing bar
How an author interacts with the system
Context sensitive on state of page / rights of the user
Can extend
XML file defines links, assembly
HTML editor
WYSIWYG content editor (no ActiveX) with familiar Word-like
toolbar
XML file defines buttons, javascript files
Extending The HTML Editor Toolbar
Caching
To make your site perform / scale we need to:
Reduce database round trips
Turn around requests as soon as possible
Two main types of caching
Reduction of number of database round trips
In memory caches : page item cache, navigation node cache,
list query cache (cross list, single list), root web cache
Caches enough information to dynamically trim for security /
versioning at each page execution
Avoid execution of the web page
Page output cache
Disk-based ‘BLOB’ cache for particular file extensions e.g.
images, stylesheets, javascript
Cache Profiles
<%@ OutputCache Duration="#ofseconds" Location="Any | Client | Downstream |
Server | None" Shared="True | False" VaryByControl="controlname"
VaryByCustom="browser | customstring" VaryByHeader="headers"
VaryByParam="parametername" %>
OutputCache directive cannot be used inline with SharePoint
You will receive a compile error from the safemode parser.
Approach is to use Cache Profiles
Pages are cached – one instance per ‘type of users’
(e.g. gold members, silver members may get different content)
Centrally defined, change in one place takes effect across site
collection instantly
Separate profiles applied for anonymous users & authenticated users
You can extend by:
Creating new Cache Profiles
Developing code to identify ‘types of users’ (IVaryByCustomHandler)
How to bring your site to a crawl
Don’t develop server controls that
Make many database round trips
Avoids built-in caching
Doesn’t exploit caching techniques
Publishing caching is meant for high traffic sites
Don’t use on sites with infrequent access such as
mysites or collaboration workspaces … it can actually
be slower and use more memory.
Caching Demo
Smart Client Authoring
Settings (per CT)
Converters
docx
XML
XSN
Master document in document library is source
for conversions
Out of box converters for Word .docx, XML, InfoPath forms
Server-side HTML conversion (XSLT-based)
Extensible: converter framework
SharePoint Developer Resources
My Blog – SharePoint news updates
http://markharrison.co.uk/blog
Windows SharePoint Services v3 Developer Portal
http://msdn.microsoft.com/sharepoint
SharePoint Server 2007 Developer Portal
http://msdn.microsoft.com/office/server/moss
MSDN Paper
SharePoint 2007 for MCMS 2002 Developers
http://msdn2.microsoft.com/en-us/ms406043.aspx
UK SharePoint User Group
http://suguk.org [email protected]
Summary
Biggest investment in WCM - ever
Removed artificial split between collab/portal/published sites
Lots of opportunity to extend
Branding
Page layouts
Custom field controls, web parts
and server controls
Extensible authoring experience
Custom document converters
Extranet
Enterprise
Internet
Division
Team
Individual
Single infrastructure for
Intranets, Internets and Extranets
[email protected]
http://markharrison.co.uk/blog
© 2006 Microsoft Corporation. All rights reserved.
This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.