260 likes | 497 Views
Windows Sharepoint Services Email, Tracking, And Other Collaboration Applications. Mike Ormond Developer & Platform Group, Microsoft Ltd mike.ormond@microsoft.com http://blogs.msdn.com/mikeormond. Business Intelligence. Collaboration. Business Processes. Portal. Content Management.
E N D
Windows Sharepoint ServicesEmail, Tracking, And Other Collaboration Applications Mike Ormond Developer & Platform Group, Microsoft Ltd mike.ormond@microsoft.com http://blogs.msdn.com/mikeormond
Business Intelligence Collaboration BusinessProcesses Portal Content Management Search Office “12”: Server InvestmentsBetter empowerment, TCO and developer productivity Server-based spreadsheets plus BI portalsbuilt on SQL Server Analysis Services Next generation e-mail, project management, workflow, blog and wiki support Windows SharePoint Services Server-based forms and workflow with smart client and browser interfaces Enhanced SharePoint Portal aggregationand personalization Site Provisioning, Storage, Security, Management, APIs 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
Collaboration AndTracking 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 toenabled 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
List History And Versioning • Core improvements to ‘list’ architectureto 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
Project Tasks List • Lightweight project management functionality • Gantt charts for visualization of project plan • Gantt view generic functionality available forany list type with date fields
Example Versions OM private void button1_Click(object sender, EventArgs e) { SPSite site = new SPSite(@"http://moss.litwareinc.com/collaboration"); SPWeb web = site.OpenWeb(); SPList list = web.Lists["Helpdesk"]; foreach (SPListItem item in list.Items) { foreach (SPListItemVersion version in item.Versions) { if (version["Priority"].ToString().StartsWith("(1)")) label1.Text += "Version: " + version.VersionLabel + " | " + "Priority: " + version["Priority"].ToString() + " | " + version["AssignedTo"].ToString() + Environment.NewLine + item["Title"].ToString() + Environment.NewLine + Environment.NewLine; } } }
Email Integration • SharePoint Lists can now receive e-mail • Discussion Boards, Calendars, Document Libraries, Announcements accept incoming email • Discussion boards maintain email threadingand 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
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(); } } }
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
Directory Services Methods • ChangeContactMembershipInDistributionGroup • ChangeUsersMembersihpInDistributionGroup • CreateContact • CreateDistributionGroup • DeleteContact • DeleteDistributionGroup • GetJobStatus • ModifyContact • ModifyDistributionGroup • RenameDistributionGroup
Directory Services Example Snippet [WebMethod] public RequestStatus CreateContact( string Alias, string FirstName, string LastName, string ForwardingEmail, ContactFlags Flags) { StringCollection formals = new StringCollection(); StringCollection args = new StringCollection(); formals.Add("Alias"); args.Add(Alias); formals.Add("FirstName"); args.Add(FirstName); formals.Add("LastName"); args.Add(LastName); DmsLog("CreateContact", formals, args); return (RequestStatus)Enum.Parse(typeof(RequestStatus), "Success"); }
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)
<Changes LastChangeToken="1;3;f3141dd8-b7ae-47ab-9fcf-e5583242a625;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-08-18T01: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='{A3588C7A-5389-43A0-8354-D1677D6A7968}' EffectivePermMask='FullMask'/> </rs:data> GetListItemChangesSinceToken Example
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
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> …
Alert Template Snippet <Immediate> <Subject> <GetVar Name="AlertTitle" /> <HTML><![CDATA[ - ]]></HTML> <GetVar Name="ItemName" /> </Subject> <table> <tr> <td class="leftcol"> </td> <td> </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"> </td> </tr> </table> <Immediate>
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
Mobile Browsing • SharePoint data accessible on mobile devices (e.g. phones, PocketPC). • Accessible at http://server/m/ • Read/Write capabilities for list items • Mobile view authoring from browser UI
Community Resources • SharePoint Products and Technologies on MSDN • http://msdn.microsoft.com/sharepoint • SharePoint Products and Technologieson GotDotNet • http://gotdotnet.com/team/sharepoint • Links to blogs, newsgroups, etc. • http://blogs.msdn.com/sharepoint • http://www.officezealot.com • http://www.sharepointblogs.com • microsoft.public.sharepoint.general • microsoft.public.sharepoint.design_and_customization • microsoft.public.sharepoint.development_and_programming
© 2006 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.