1 Microsoft Australia Application Platform Special Interest Group John Hodgson Product Technology...

Preview:

Citation preview

1

Microsoft AustraliaApplication Platform Special Interest Group

John HodgsonProduct Technology Specialistjohnhodg@microsoft.com

2

AgendaAgenda

Development OptionsDevelopment EnvironmentWeb Part Deployment MethodsDebugging OptionsDistribution And ManagementDocument and Lists accessSite and List DefinitionsFuture Of Web Parts (i.e., “Whidbey”)Additional Resources

Development OptionsDevelopment EnvironmentWeb Part Deployment MethodsDebugging OptionsDistribution And ManagementDocument and Lists accessSite and List DefinitionsFuture Of Web Parts (i.e., “Whidbey”)Additional Resources

3

Programs

ServersServices

4

SharePoint InvestmentsSharePoint InvestmentsEnterprise Portal Enterprise Portal SolutionSolution built on top built on top of Windows of Windows SharePoint ServicesSharePoint Services

Hub and AggregatorHub and Aggregator for SharePoint for SharePoint personal, team and personal, team and portal sitesportal sites

SharePoint Portal ServerSharePoint Portal Server News and LinksNews and Links Site Directory and Site Directory and

ConnectionsConnections Personal SitesPersonal Sites Audience TargetingAudience Targeting Index, Search and AlertsIndex, Search and Alerts Single Sign-OnSingle Sign-On BizTalk IntegrationBizTalk Integration

Team Collaboration Team Collaboration SolutionSolution well beyond well beyond file serversfile servers

Scalable Scalable Workspace Workspace PlatformPlatform

SharePoint ServicesSharePoint Services Document Storage Document Storage

and Collaborationand Collaboration Flexible ListsFlexible Lists Web Part PagesWeb Part Pages Page PersonalizationPage Personalization Site Life Cycle Site Life Cycle

ManagementManagement Scale-Up/Out Scale-Up/Out

FoundationFoundation

5

SharePoint Out of The Box

6

Development OptionsDevelopment Options

Web Parts

ASP.NET

Document Library Events

Templates

Web Parts

ASP.NET

Document Library Events

Templates

8

Development EnvironmentsDevelopment Environments

One machine methodYour “workstation” is Windows Server 2003http://www.msfn.org/win2k3/

Two (or more) machine methodDevelop on Windows XPDeploy to Windows Server 2003

On local Virtual PC or VMWare imageOn remote development server

One machine methodYour “workstation” is Windows Server 2003http://www.msfn.org/win2k3/

Two (or more) machine methodDevelop on Windows XPDeploy to Windows Server 2003

On local Virtual PC or VMWare imageOn remote development server

10

Development Workstation RequirementsDevelopment Workstation Requirements

Visual Studio .NET2002 or 2003

Ignore its warning about FrontPage Server Extensions

Web Part Project Template for Visual Studio .NET

http://msdn.microsoft.com/sharepoint

Copy object model DLLs from ServerC:\Program Files\Common Files\Microsoft Shared\web server extensions\60\ISAPI

Microsoft.SharePoint.DLLMicrosoft.SharePoint.Portal.DLLMicrosoft.SharePoint.Portal.SingleSignon.DLLMicrosoft.SharePoint.Portal.SingleSignon.Security.DLL

Visual Studio .NET2002 or 2003

Ignore its warning about FrontPage Server Extensions

Web Part Project Template for Visual Studio .NET

http://msdn.microsoft.com/sharepoint

Copy object model DLLs from ServerC:\Program Files\Common Files\Microsoft Shared\web server extensions\60\ISAPI

Microsoft.SharePoint.DLLMicrosoft.SharePoint.Portal.DLLMicrosoft.SharePoint.Portal.SingleSignon.DLLMicrosoft.SharePoint.Portal.SingleSignon.Security.DLL

16

Debugging Web PartsDebugging Web Parts

MethodsDirect

Attach to instance of W3WP.EXE

“Automatic”Denote URL of a given Web Part Page as application start page

You’re really debugging the page, not the Web Part assembly

One server per developer is the idealNot polite to pause shared Web serverIf multiple instances, not easy to identify which instance of W3WP.EXE is “yours”

Web.config has useful settings

MethodsDirect

Attach to instance of W3WP.EXE

“Automatic”Denote URL of a given Web Part Page as application start page

You’re really debugging the page, not the Web Part assembly

One server per developer is the idealNot polite to pause shared Web serverIf multiple instances, not easy to identify which instance of W3WP.EXE is “yours”

Web.config has useful settings

17

Debugging Web Parts (cont.)Debugging Web Parts (cont.)

Deploying to the GAC makes debugging a little harder

Must be able to reach PDB file

Options:Deploy to the bin directory while debuggingUse manual installationUse gacutil -i on the PDB afterstsadm …… -globalinstall

Default.aspx?contents=1

Deploying to the GAC makes debugging a little harder

Must be able to reach PDB file

Options:Deploy to the bin directory while debuggingUse manual installationUse gacutil -i on the PDB afterstsadm …… -globalinstall

Default.aspx?contents=1

19

Web.Config SettingsWeb.Config Settings

Turn on debugging<SharePoint> <SafeMode CallStack=“true" /><system.web> <customErrors mode="Off" />

Change site’s Trust Level for the site<system.web> <trust level="WSS_Minimal" originUrl= ""/>

Also “WSS_Medium” or “Full”

Turn on debugging<SharePoint> <SafeMode CallStack=“true" /><system.web> <customErrors mode="Off" />

Change site’s Trust Level for the site<system.web> <trust level="WSS_Minimal" originUrl= ""/>

Also “WSS_Medium” or “Full”

20

Web.Config Settings (cont.)Web.Config Settings (cont.)

Other Web Part settings under <SharePoint><SafeMode MaxControls="50" CallStack="false" /><WebPartLimits MaxZoneParts="50" PropertySize="1048576" /><WebPartCache Storage="CacheObject" />

also “Database” or “None”

<WebPartWorkItem Timeout="7000" /><WebPartControls DatasheetControlGuid="65BCBEE4-7728-41a0-97BE-14E1CAE36AAE" />

Substitute your own Datasheet control instead of the Office 2003 default

<OnlineLibrary Url="http://r.office.microsoft.com/r/hlidAwsGallery" />

Also configurable in SharePoint Central Administration

Other Web Part settings under <SharePoint><SafeMode MaxControls="50" CallStack="false" /><WebPartLimits MaxZoneParts="50" PropertySize="1048576" /><WebPartCache Storage="CacheObject" />

also “Database” or “None”

<WebPartWorkItem Timeout="7000" /><WebPartControls DatasheetControlGuid="65BCBEE4-7728-41a0-97BE-14E1CAE36AAE" />

Substitute your own Datasheet control instead of the Office 2003 default

<OnlineLibrary Url="http://r.office.microsoft.com/r/hlidAwsGallery" />

Also configurable in SharePoint Central Administration

21

Distributing Web PartsDistributing Web Parts

CAB filesTwo-step process with STSADM

Stsadm –o addwppack –filename filenameStsadm –o addwppack –name filename

Use WPMove Web serviceDownload from GotDotNet

MSI filesInstall directly on each server

CAB filesTwo-step process with STSADM

Stsadm –o addwppack –filename filenameStsadm –o addwppack –name filename

Use WPMove Web serviceDownload from GotDotNet

MSI filesInstall directly on each server

22

Distributing Web Parts Distributing Web Parts

Site definitions/templatesCan include custom Web Part pagesDWP info embedded as XML data islandsConverted to DB entries after page is processed

Site definitions can also includeCustom lists and librariesCustom ASPX pagesEvent handlersDesign elements and resources

Site definitions/templatesCan include custom Web Part pagesDWP info embedded as XML data islandsConverted to DB entries after page is processed

Site definitions can also includeCustom lists and librariesCustom ASPX pagesEvent handlersDesign elements and resources

23

Connecting Parts TogetherConnecting Parts Together

Parts sharing data through eventsImagine audio signalsConsumer and provider of data

Client and server interfacesIListIRowICellIFilterIParamsTransformers

Parts sharing data through eventsImagine audio signalsConsumer and provider of data

Client and server interfacesIListIRowICellIFilterIParamsTransformers

24

Developing Web Parts

25

Accessing List DataObject ModelAccessing List DataObject Model

Available objects under Microsoft.SharePoint namespace:

SPList – Basic list object for getting to list dataSPListCollection – Collection of list objectsSPListItem – Item/Row in a listSPListItemCollection – Collection of list itemsSPView – View of a SharePoint listSPField – Field/Column in a listSPListTemplate – Template of a list

Available objects under Microsoft.SharePoint namespace:

SPList – Basic list object for getting to list dataSPListCollection – Collection of list objectsSPListItem – Item/Row in a listSPListItemCollection – Collection of list itemsSPView – View of a SharePoint listSPField – Field/Column in a listSPListTemplate – Template of a list

26

Accessing List DataWeb ServicesAccessing List DataWeb Services

Remotely view and edit SharePoint List data

http://[server]/_vti_bin/Lists.asmx

Operations available

Remotely view and edit SharePoint List data

http://[server]/_vti_bin/Lists.asmx

Operations available

AddAttachmentUpdateListDeleteListUpdateListItemsGetAttachmentCollectionAddList

GetListItemChangesGetListAndViewGetListGetListCollectionGetListItemsDeleteAttachment

27

ASP.Net Apps

28

Accessing Document LibrariesObject ModelAccessing Document LibrariesObject Model

Available objects under Microsoft.SharePoint namespace:

SPFile – File objectSPFileCollection – Collection of files SPFileVersion – Version of a fileSPFolder – Folder objectSPDocumentLibrary – Document Library objectSPDocDiscussion – Discussions on a fileSPDocTemplate – Used when creating a new file

Available objects under Microsoft.SharePoint namespace:

SPFile – File objectSPFileCollection – Collection of files SPFileVersion – Version of a fileSPFolder – Folder objectSPDocumentLibrary – Document Library objectSPDocDiscussion – Discussions on a fileSPDocTemplate – Used when creating a new file

29

Accessing Document LibrariesAccessing Document Libraries

Remote Access

Set Meta-data

Batch File Upload File/IO Version

ControlCheck-In/ Check-Out

Object Model Web Services

WebDAV FrontPage RPC

30

Extending Document LibrariesEvent HandlersExtending Document LibrariesEvent Handlers

Useful for implementing workflowUsed by TeamPlate, SourceCode, Nintex

Useful for triggering business logicLogging, notification, etc…

BizTalk Server 2004 Adapter now available

Types of eventsCheckIn, CheckOut, UncheckOut

Copy, Move, Delete, Insert, Update

Events are asynchronousCan not prevent deletions

Can not get document data

Useful for implementing workflowUsed by TeamPlate, SourceCode, Nintex

Useful for triggering business logicLogging, notification, etc…

BizTalk Server 2004 Adapter now available

Types of eventsCheckIn, CheckOut, UncheckOut

Copy, Move, Delete, Insert, Update

Events are asynchronousCan not prevent deletions

Can not get document data

31

Document Library Events

32

Site / List TemplatesSite / List Templates

What is a Site Definition?

What is a Custom Template?

What is a List Definition?

What is a Custom List Template?

What is a Site Definition?

What is a Custom Template?

What is a List Definition?

What is a Custom List Template?

33

Why Create Site Definitions?Why Create Site Definitions?

Don’t take our word for it – look at:Visual Studio Team SystemBizTalk Server 2004 Business Activity MonitorMicrosoft Business Systems Business Portal for Great PlainsProject Server 2003SharePoint Portal Server 2003Class Server (v.next)

Don’t take our word for it – look at:Visual Studio Team SystemBizTalk Server 2004 Business Activity MonitorMicrosoft Business Systems Business Portal for Great PlainsProject Server 2003SharePoint Portal Server 2003Class Server (v.next)

35

Site Definition FilesSite Definition FilesEverything is underneath:

C:\Program Files\Common Files\Microsoft Shared\web server

extensions\60\template

File ScopesServer Language

E.g., \1033

Site Definition E.g., \1033\STS

List DefinitionE.g., \1033\STS\LISTS\DOCLIB

Everything is underneath:C:\Program Files

\Common Files\Microsoft Shared\web server

extensions\60\template

File ScopesServer Language

E.g., \1033

Site Definition E.g., \1033\STS

List DefinitionE.g., \1033\STS\LISTS\DOCLIB

Enumeration of site definitions

Site definition

List definition

Minimalistsite definition

42

SCHEMA.XML FieldsSCHEMA.XML Fields<Field Type="Choice" BaseType="Text" Name="Area"> <CHOICES> <CHOICE>Views</CHOICE> <CHOICE>Site Design</CHOICE> <CHOICE>Layouts</CHOICE> <CHOICE>Schema Design</CHOICE> <CHOICE>Fields</CHOICE> <CHOICE>Forms</CHOICE> <CHOICE>Projects</CHOICE> <CHOICE>Inter-Team Issues</CHOICE> <CHOICE>Schedule</CHOICE> <CHOICE>Spec</CHOICE> <CHOICE>Headcount</CHOICE> <CHOICE>Misc</CHOICE> </CHOICES></Field>

<Field Type="Choice" BaseType="Text" Name="Area"> <CHOICES> <CHOICE>Views</CHOICE> <CHOICE>Site Design</CHOICE> <CHOICE>Layouts</CHOICE> <CHOICE>Schema Design</CHOICE> <CHOICE>Fields</CHOICE> <CHOICE>Forms</CHOICE> <CHOICE>Projects</CHOICE> <CHOICE>Inter-Team Issues</CHOICE> <CHOICE>Schedule</CHOICE> <CHOICE>Spec</CHOICE> <CHOICE>Headcount</CHOICE> <CHOICE>Misc</CHOICE> </CHOICES></Field>

43

SCHEMA.XML ViewsSCHEMA.XML Views

<View BaseViewID="1" Type="HTML" WebPartZoneID="Main"

DisplayName="BLog HTML Preview" DefaultView="FALSE" Url="Forms/BLogAsHTML.aspx"> <GroupByHeader/> <GroupByFooter/> <ViewHeader/> <ViewBody/> <ViewFooter/> <PagedRowset/> <PagedRecurrenceRowset/> <RowLimit Paged="FALSE">1</RowLimit> <ViewEmpty/> <ViewBidiHeader/> <Toolbar Type="Standard" /> <ViewFields /> <Query /></View>

<View BaseViewID="1" Type="HTML" WebPartZoneID="Main"

DisplayName="BLog HTML Preview" DefaultView="FALSE" Url="Forms/BLogAsHTML.aspx"> <GroupByHeader/> <GroupByFooter/> <ViewHeader/> <ViewBody/> <ViewFooter/> <PagedRowset/> <PagedRecurrenceRowset/> <RowLimit Paged="FALSE">1</RowLimit> <ViewEmpty/> <ViewBidiHeader/> <Toolbar Type="Standard" /> <ViewFields /> <Query /></View>

44

SCHEMA.XML ToolbarsSCHEMA.XML Toolbars

<Toolbar Position="After" Type="Freeform"> <HTML><![CDATA[ <table> .. more

HTML..]]></HTML>

. . <URL Cmd="New" />

. . <HTML><![CDATA[ HREF="JavaScript:void

window.open(']]></HTML>

. . <HttpVDir/>

. . <HTML><![CDATA[');]]></HTML></Toolbar>

<Toolbar Position="After" Type="Freeform"> <HTML><![CDATA[ <table> .. more

HTML..]]></HTML>

. . <URL Cmd="New" />

. . <HTML><![CDATA[ HREF="JavaScript:void

window.open(']]></HTML>

. . <HttpVDir/>

. . <HTML><![CDATA[');]]></HTML></Toolbar>

45

SCHEMA.XML FormsSCHEMA.XML Forms

<Form Type="DisplayForm" Url="DispForm.aspx" WebPartZoneID="Main"><ListFormOpening/><ListFormButtons/>

<ListFormBody/></Form>

<Form Type="DisplayForm" Url="DispForm.aspx" WebPartZoneID="Main"><ListFormOpening/><ListFormButtons/>

<ListFormBody/></Form>

46

Site Definition Walk-Through

47

How To Quickly Create Your Own Site DefinitionHow To Quickly Create Your Own Site Definition

1.Copy the ‘sts’ directory and rename it ‘stsfoo’2.Copy WEBTEMP.XML to WEBTEMPFOO.XML3.Remove all but one Configuration from

WEBTEMPFOO.XML4.Give your Configuration an interesting title5.Ensure that ‘Template Name’ points to ‘stsfoo’6.Give ‘Template ID’ a number greater than 10,0007.Run IISRESET8.Create a new Site

1.Copy the ‘sts’ directory and rename it ‘stsfoo’2.Copy WEBTEMP.XML to WEBTEMPFOO.XML3.Remove all but one Configuration from

WEBTEMPFOO.XML4.Give your Configuration an interesting title5.Ensure that ‘Template Name’ points to ‘stsfoo’6.Give ‘Template ID’ a number greater than 10,0007.Run IISRESET8.Create a new Site

48

Advanced Site Definition FeaturesAdvanced Site Definition Features

Specify a page to go to immediately after site creationExecuteUrl Url="config.aspx"

Replace top navigation in site pagesAlternateHeader="PortalHeader.aspx“

Alter JScript functions (e.g. customize edit menu dropdown)CustomJSUrl=“owscustom.js”

Add/Edit CSS attributes AlternateCSS=“owscustom.css”

Customize the File Open/Save dialog in OfficeFileDialogPostProcessor ID=[GUID]

Disable features on your site (Backup, Subsite Creation, etc...)DisableWebDesignFeatures="wdfbackup; wdfNewSubSite“

Provide a custom security provider to SharePoint Portal Server searchExternalSecurityProvider ID=[GUID] Type=“...”

Specify a page to go to immediately after site creationExecuteUrl Url="config.aspx"

Replace top navigation in site pagesAlternateHeader="PortalHeader.aspx“

Alter JScript functions (e.g. customize edit menu dropdown)CustomJSUrl=“owscustom.js”

Add/Edit CSS attributes AlternateCSS=“owscustom.css”

Customize the File Open/Save dialog in OfficeFileDialogPostProcessor ID=[GUID]

Disable features on your site (Backup, Subsite Creation, etc...)DisableWebDesignFeatures="wdfbackup; wdfNewSubSite“

Provide a custom security provider to SharePoint Portal Server searchExternalSecurityProvider ID=[GUID] Type=“...”

49

Editing Deployed Site DefinitionsEditing Deployed Site Definitions

ONLY modify deployed site definitions if you absolutely have to. If possible:

Build new versions of site definitionsOperate new version in parallel with old versions

Ensure that new sites use the new versions.Mark old site definitions as hidden but left intact

Data can be moved from old sites to new sites

Old sites can be updated in a controlled fashion with the object model

ONLY modify deployed site definitions if you absolutely have to. If possible:

Build new versions of site definitionsOperate new version in parallel with old versions

Ensure that new sites use the new versions.Mark old site definitions as hidden but left intact

Data can be moved from old sites to new sites

Old sites can be updated in a controlled fashion with the object model

50

Editing Deployed Site Definitions (cont.)

Editing Deployed Site Definitions (cont.)

Guidelines for modifying a site definition already in useAdding features is less dangerous than changing or deleting them

Changing often results in loss of data

Deleting often results in broken views

Add to the end of the <Fields> section to avoid shuffling your data

If you rely on ghosting to push your changes to all sites, beware of customized pages stored in the database

The ‘vti_hasdefaultcontent’ field available from SPFile.Properties can be used to determine whether or not a file is ghosted

If your changes affect create-time sections of the site definition, use the object model to simulate these actions on existing sites

Guidelines for modifying a site definition already in useAdding features is less dangerous than changing or deleting them

Changing often results in loss of data

Deleting often results in broken views

Add to the end of the <Fields> section to avoid shuffling your data

If you rely on ghosting to push your changes to all sites, beware of customized pages stored in the database

The ‘vti_hasdefaultcontent’ field available from SPFile.Properties can be used to determine whether or not a file is ghosted

If your changes affect create-time sections of the site definition, use the object model to simulate these actions on existing sites

51

Tips And TricksTips And TricksCreate a new site definition – don’t modify a shipped site definitionStart from a copy of a similar site definitionMarking configurations as ‘Hidden’ in WEBTEMP.XML is a good way to create site definitions for use by custom applications (or retire outdated ones)The ‘ExportList’ method documented in the ‘URL Protocol’ section of the SDK is a convenient way to generate CAMLCustomizations to meeting workspaces need to retain a template ID of ‘2’SharePoint ‘applications’ often combine Web Parts, Event Handlers, Web Services, and Site DefinitionsUse the DisableWebDesignFeatures attribute of the Project element in ONET.XML to block FrontPage

Create a new site definition – don’t modify a shipped site definitionStart from a copy of a similar site definitionMarking configurations as ‘Hidden’ in WEBTEMP.XML is a good way to create site definitions for use by custom applications (or retire outdated ones)The ‘ExportList’ method documented in the ‘URL Protocol’ section of the SDK is a convenient way to generate CAMLCustomizations to meeting workspaces need to retain a template ID of ‘2’SharePoint ‘applications’ often combine Web Parts, Event Handlers, Web Services, and Site DefinitionsUse the DisableWebDesignFeatures attribute of the Project element in ONET.XML to block FrontPage

52

FrontPage 2003

53

Understanding “Ghosting”Understanding “Ghosting”Pages and list schema are read from the site definition files and cached at IIS process startup

Page source is on the disk, not in the DBPulled from the cache at runtimeIt still appears to be present in the site, hence the term “ghosted”

Pages are only written to the database when customized within a site

Browser-based customization (i.e. adding/removing web parts) does not change the actual ASPX pages, hence doesn’t unghostFrontPage customization often changes ASPX pages

Maximizes scalabilityReuse un-customized pages across sitesReduce unnecessary data storage and retrieval

Pages and list schema are read from the site definition files and cached at IIS process startup

Page source is on the disk, not in the DBPulled from the cache at runtimeIt still appears to be present in the site, hence the term “ghosted”

Pages are only written to the database when customized within a site

Browser-based customization (i.e. adding/removing web parts) does not change the actual ASPX pages, hence doesn’t unghostFrontPage customization often changes ASPX pages

Maximizes scalabilityReuse un-customized pages across sitesReduce unnecessary data storage and retrieval

54

Windows SharePoint Services And ASP.NET “Whidbey”Windows SharePoint Services And ASP.NET “Whidbey”

Current version of Windows SharePoint Services will work on ASP.NET “Whidbey”

Windows SharePoint Services, after Service Pack 2, will run as-is on Whidbey runtimeASP.NET team will provide a Windows SharePoint Services Web Part that can encapsulate a “Whidbey” Web Part

Next version of Windows SharePoint Services will build on top of ASP.NET “Whidbey”

Backward-compatible object model will permit continued use of current Web Parts

Current version of Windows SharePoint Services will work on ASP.NET “Whidbey”

Windows SharePoint Services, after Service Pack 2, will run as-is on Whidbey runtimeASP.NET team will provide a Windows SharePoint Services Web Part that can encapsulate a “Whidbey” Web Part

Next version of Windows SharePoint Services will build on top of ASP.NET “Whidbey”

Backward-compatible object model will permit continued use of current Web Parts

55

ASP.NET “Whidbey” Web PartsASP.NET “Whidbey” Web Parts

Web Part concept integrated directly into ASP.NET Can be used in any type of Web site

Windows or form authentication

Provider model for persistence/personalization

Fully integrated into ASP.NET control modelAny ASP.NET server-side control can be a Web Part

User Controls can also be Web Parts

Connections are significantly enhancedOne attribute (c.f., overriding multiple methods)

Rich data types (c.f., list, row, cell, parameters)

Zones become objects, not just containersGreat Visual Studio designer experience

Web Part concept integrated directly into ASP.NET Can be used in any type of Web site

Windows or form authentication

Provider model for persistence/personalization

Fully integrated into ASP.NET control modelAny ASP.NET server-side control can be a Web Part

User Controls can also be Web Parts

Connections are significantly enhancedOne attribute (c.f., overriding multiple methods)

Rich data types (c.f., list, row, cell, parameters)

Zones become objects, not just containersGreat Visual Studio designer experience

56

When To Build WhatWhen To Build What

Pre-Whidbey RTM deliverables should be built using current Windows SharePoint Services Web Part infrastructure

Such Web Parts will run in the next version of Windows SharePoint ServicesBy all means, experiment with Whidbey Web Parts during its beta period

When ASP.NET “Whidbey” ships, build new Web Parts using the new technology

Current Windows SharePoint Services sites will be able to use them once wrapper is ready

Pre-Whidbey RTM deliverables should be built using current Windows SharePoint Services Web Part infrastructure

Such Web Parts will run in the next version of Windows SharePoint ServicesBy all means, experiment with Whidbey Web Parts during its beta period

When ASP.NET “Whidbey” ships, build new Web Parts using the new technology

Current Windows SharePoint Services sites will be able to use them once wrapper is ready

57

Web-Based ResourcesWeb-Based ResourcesDeveloper Informationhttp://msdn.microsoft.com/sharepoint http://gotdotnet.com/team/sharepoint

Product Informationhttp://microsoft.com/sharepoint

Web Component Directoryhttp:/microsoft.com/sharepoint/webparts

Developer Informationhttp://msdn.microsoft.com/sharepoint http://gotdotnet.com/team/sharepoint

Product Informationhttp://microsoft.com/sharepoint

Web Component Directoryhttp:/microsoft.com/sharepoint/webparts

Third-Party Sitesbarracuda.netgotsharepoint.comsharepointd2d.comsharepointexperts.comsharepointserver.comsharepointsolutions.comsharepointuniversity.comspsfaq.comwssdemo.comwssfaq.com

Third-Party Sitesbarracuda.netgotsharepoint.comsharepointd2d.comsharepointexperts.comsharepointserver.comsharepointsolutions.comsharepointuniversity.comspsfaq.comwssdemo.comwssfaq.com

58

BooksBooksThe Rational Guide To: Building SharePoint Web Partsby Darrin Bishop (Mann – coming soon)

Microsoft SharePoint: Building Office 2003 Solutionsby Scot P. Hillier (APress)

The Rational Guide To: Building SharePoint Web Partsby Darrin Bishop (Mann – coming soon)

Microsoft SharePoint: Building Office 2003 Solutionsby Scot P. Hillier (APress)

59

Building ASP.NET Server Controlsby Rob Cameron, Dale Michalk (APress)

Developing Microsoft ASP.NET Server Controls and Componentsby Nikhil Kothari, Vandana Datye (Microsoft Press)

Professional ASP.NET Server Controls: Building Custom Controls with C#by Matt Butler, Thiru Thangarathinam, Matt Milner, Michael Clark, Ryan O'Keefe, Angelo Kastroulis, Jan Narkiewicz, Daniel Cazzulino (Wrox)

Building ASP.NET Server Controlsby Rob Cameron, Dale Michalk (APress)

Developing Microsoft ASP.NET Server Controls and Componentsby Nikhil Kothari, Vandana Datye (Microsoft Press)

Professional ASP.NET Server Controls: Building Custom Controls with C#by Matt Butler, Thiru Thangarathinam, Matt Milner, Michael Clark, Ryan O'Keefe, Angelo Kastroulis, Jan Narkiewicz, Daniel Cazzulino (Wrox)

More BooksMore Books

60

Give Documentation FeedbackGive Documentation Feedback

Windows SharePoint Services

wssdocs@microsoft.com

Microsoft Office SharePoint Portal Server 2003

spsdoc@microsoft.com

Windows SharePoint Services

wssdocs@microsoft.com

Microsoft Office SharePoint Portal Server 2003

spsdoc@microsoft.com

61

Microsoft Events and Communities

Not getting event invites anymore? Don’t know what's on in your state?

Subscribe to TechNet Flash via TechNet Lounge

• http://www.microsoft.com/australia/technet

Visit MSDN Community Website and join MSDN Connections

• http://www.microsoft.com/australia/msdn

Subscribe to MSDN Flash Newsletter (events)

• http://msdn.microsoft.com/flash

Or…Visit the Profile Center and subscribe to all of them

https://profile.microsoft.com/RegSysSubscriptionCnt/SubCntDefault.aspx

62© 2003-2004 Microsoft Corporation. All rights reserved.This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.