Windows SharePoint Services: Developing Collaboration and

Download Report

Transcript Windows SharePoint Services: Developing Collaboration and

Windows SharePoint Services “v3”:
Developing Collaboration And
Tracking Applications
Mike Morton
OFF310
Lead Program Manager
Microsoft Corporation
Office “12” : Server Investments
Better empowerment, TCO and developer productivity
Server-based
spreadsheets plus BI
portals built on SQL
Server Analysis Services
Server-based forms
and workflow with
smart client and
browser interfaces
Business
Intelligence
Business
Processes
Next generation e-mail,
project management,
workflow, blog and
wiki support
Collaboration
Windows
SharePoint
Services
Portal
Enhanced SharePoint
Portal aggregation and
personalization
Site Provisioning, Storage,
Security, Management, APIs
Content
Management
Search
Integrated document,
records and Web content
management
Great relevance
with rich people and
business data search
Unified ASP.NET 2.0
workspace foundation for
scalability and extensibility
2
Collaboration And Tracking
Features Overview
SharePoint lists are frequently used for ‘tracking’. This can include
tracking issues, tasks, contacts, documents, etc.
SharePoint Services “V3” adds many core ‘list’ features to enabled
users/developers to build great ‘tracking’ applications
Feature areas
List history and versioning
Project Tasks list
Email support
Distribution list support
Sync APIs and Outlook synchronization
UI extensibility
Alerts and RSS
3
List History And Versioning
Core improvements to ‘list’ architecture to
support tracking
Version history for all SharePoint items
Shows changes to the item for each version
“Append-only” comment fields
Multi-valued lookup fields
Large list indexing support
Applications built on SharePoint lists get functionality
for ‘free’.
Updated ‘Issue tracking’ template
Integration with Windows Workflow Foundation
for approval or custom workflows
4
Project Tasks List
Lightweight project management functionality
Gantt charts for visualization of project plan
Gantt view generic functionality available for any
list type with date fields
5
Demo Tracking Functionality
6
Example Versions OM
SPSite site = new SPSite("http://os.litwareinc.com/research/");
SPWeb web = site.OpenWeb();
SPList list = web.Lists["Issues"];
SPListItemCollection items = list.Items;
foreach (SPListItem item in items)
{
foreach (SPListItemVersion version in item.Versions)
{
if (version["Priority"].ToString() == "(1) High")
label1.Text += "Version " + version.VersionLabel + " - " +
item["Title"].ToString() + ": " + version["AssignedTo"].ToString() +
"\n";
}
}
7
Email Integration
SharePoint Lists can now receive e-mail
Discussion Boards, Calendars, Document Libraries,
Announcements accept incoming email
Discussion boards maintain email threading and full HTML
messages
Calendars process incoming iCals
Document libraries map attachments to documents
Extensible support for custom ‘e-mail handlers’
Custom lists can support email by writing a ‘handler
SharePoint handles routing of email, your code can
map email data to list data
8
Example Email Handler
namespace TaskHandler
{
public class SimpleHandler:SPEmailEventReceiver
{
public override void EmailReceived(SPList list,
Microsoft.SharePoint.Utilities.SPEmailMessage emailMessage, string
receiverData)
{
SPListItem item = list.Items.Add();
item["Title"] = emailMessage.Headers["Subject"];
item["DueDate"] =
System.DateTime.Parse(emailMessage.Headers["Date"]).AddDays(21);
item["Description"] = emailMessage.HtmlBody;
item.Update();
}
}
}
9
Distribution List Support
SharePoint site groups can have an associated
‘distribution list’
Create a distribution list for members upon site
creation
SharePoint sites will talk with directory services
to create / manage distribution lists
Interface with directory service is pluggable through
SharePoint directory management Web service
interface
AD directory management Web service provided in
SharePoint
Example: Plug into existing directory management
tools – apply policy on allowed naming for distribution
lists
10
Outlook And Synchronization APIs
Outlook allows user to work with personal
and team data in one place
Read/Write access to SharePoint datatypes
Calendar, tasks, contacts, discussions, and
documents
Synchronization for offline support
Change Log APIs optimized for synchronization
GetListItemChangesSinceToken – Web
service method that returns list of items that
changed (adds, updates, deletes, etc)
11
GetListItemChangesSinceToken
Example
<Changes LastChangeToken="1;3;f3141dd8-b7ae-47ab-9fcfe5583242a625;632599270189500000;696">
<Id ChangeType="Delete">9</Id>
<Id ChangeType="Delete">11</Id>
</Changes>
<rs:data ItemCount="1">
<z:row
ows_Attachments=';#http://server/Lists/Announcements/Attachments/13/News
.txt;#' ows_LinkTitle='Announcement 5' ows_Modified='2005-0818T01:55:42Z' ows_MetaInfo='13;#' ows__ModerationStatus='0'
ows_Title='Announcement 5' ows_ID='13' ows_owshiddenversion='3'
ows_UniqueId='13;#{A458968C-052A-42C5-B8CB-D90564D8430F}'
ows_FSObjType='13;#0' ows_Created_x0020_Date='13;#2005-08-18T01:54:02Z'
ows_Created='2005-08-18T01:54:02Z' ows_FileLeafRef='13;#13_.000'
ows_FileRef='13;#Lists/Announcements/13_.000' ows_ScopeId='{A3588C7A5389-43A0-8354-D1677D6A7968}' EffectivePermMask='FullMask'/>
</rs:data>
12
Demo Outlook Synchronization
And Email Support
13
Keeping Informed
Alerts
Filters for more relevant alerts
Richer information about item that has
changed in the alert
Platform for custom formatting, events, and
alerts
RSS
All SharePoint lists provide RSS feeds
14
Alert Template Snippets
<FilterDefinition>
<FriendlyName>Sample Alert<FriendlyName>
<ShortName>$Resources:Alerts_2_filter_shortname;</ShortName>
<Query>
<And>
<Eq>
<Value type="integer"><UserID /></Value><FieldRef name="Editor/Old"/>
</Eq>
<Neq>
<Value type="integer"><UserID /></Value><FieldRef name="Editor/New"/>
</Neq>
</And>
</Query>
</FilterDefinition>
…
15
Alert Template Snippet
<Immediate>
<Subject>
<GetVar Name="AlertTitle" />
<HTML><![CDATA[ - ]]></HTML>
<GetVar Name="ItemName" />
</Subject>
<table>
<tr>
<td class="leftcol">&nbsp;</td>
<td>&nbsp;</td>
<td class="descriptiontext">$Resources:Alerts_event_lastmodified;
]]></HTML>
<GetVar Name="TimeLastModified" HTMLEncode="TRUE" /> <HTML><![CDATA[
by ]]></HTML> <GetVar Name="ModifiedBy" HTMLEncode="TRUE" />
<HTML><![CDATA[</td><td class="rightcol">&nbsp;</td>
</tr>
</table>
<Immediate>
16
UI And Navigation
Breadcrumb
Site bread crumb provides user navigational context
Security Trimmed UI
Only show UI to users to which they have access
Quick Launch and top navigation
Present on view pages
Customizable in the browser UI
View Improvements
Paging Backwards
Better Filter/Sort UI
17
Example Custom Menu Item
<Feature
Id="0F121A23-C6BC-400F-87E4-E6BBDD999999"
Title="Site Actions Menu Customization"
Description="Test Site Actions Menu Customization"
Version="12.0.0.0"
Scope="Site"
xmlns="http://schemas.microsoft.com/sharepoint/">
<ElementManifests>
<ElementManifest Location="operations.xml" />
</ElementManifests>
</Feature>
<CustomAction
Id="SiteActionsCustomization"
Location="Microsoft.SharePoint.StandardMenu"
GroupId="SiteActions"
Title="SiteActions Menu Customization"
ControlAssembly="SiteAction,Version=1.0.2075.32537,Culture=neutral,Publi
cKeyToken=018d632ecf51b278"
ControlClass="SiteAction.SiteActionCustomization">
</CustomAction>
18
Example Custom Menu Item
public class SiteActionCustomization : WebControl
{
protected override void CreateChildControls()
{
base.CreateChildControls();
MenuItemTemplate menuItem = null;
ToolBarMenuButton siteActionsControl =
ToolBarMenuButton.GetMenuControl(this);
menuItem = new MenuItemTemplate();
menuItem.ID = "CustomAction";
menuItem.Text = "Advanced Permissions";
menuItem.Description = "Manage users for this site.";
menuItem.Sequence = 400;
menuItem.ClientOnClickNavigateUrl = "/_layouts/user.aspx";
Controls.Add(menuItem);
}
}
19
Demo Alerts, RSS, And UI
customization
20
Community Resources
SharePoint Products and Technologies on
MSDN
http://msdn.microsoft.com/sharepoint
SharePoint Products and Technologies on
GotDotNet
http://gotdotnet.com/team/sharepoint
Links to blogs, newsgroups, etc.
21
Questions?
22
© 2005 Microsoft Corporation. All rights reserved.
This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.