Web Parts - Microsoft
Download
Report
Transcript Web Parts - Microsoft
Microsoft Office System
UK Developers Conference
Radisson Edwardian, Heathrow
29th & 30th June 2005
Web Parts
Debugging, Deploying, And Best
Practices
Michael O’Donovan
Consultant
Microsoft UK
Agenda
Web Part Basics Review
Web Part Development and Debugging
Developing Web Parts
Advanced Web Part Topics
Work Items and Timeouts
IRuntimeFilter
Caching
ToolParts and ToolPanes
Page Customization
Deployment
Packages and Installer
Web Parts
Primary Platform Value of SharePoint
End-user Customization of Pages
In the Browser and in FrontPage
Standard Extensibility Point
Derive from
Microsoft.Sharepoint.WebPartPages.WebPart
Use Web Part Library Templates
Rendering Techniques
Direct Render Using Strings
HtmlTextWriter.Write(“…”)
HtmlTextWriter.WriteBeginTag(“…”)
Use ASP.NET HTML Primitives
HtmlTableClass
Delegating to ASP.NET Controls
Componentize Your Rendering Logic
Basic Demo
Debugging Web Parts
Methods
Direct
Attach to instance of W3WP.EXE
“Automatic”
Denote URL of a given Web Part Page as
application start page
Debugging Web Parts
(Continued)
Deploying to the GAC makes debugging
a little harder
Must be able to reach PDB file
Options
Deploy to the bin directory while debugging
Use manual installation
Tracing
System.Diagnostics.Trace
HttpContext.Trace
Web.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”
Debugging Web Parts
Development Topologies
Single Machine
Shared Server
Development and
Server All on One
Box
Development
Machine Pushes
to Server
Windows Server
2003
Visual Studio.NET
2003
Windows XP
WSS
Visual Studio.NET
2003
SPS
Windows Server
2003
WSS
SPS
Single Machine
Pros
Simple
Speedy
Cons
Licensing
Time to setup
Every dev an admin
Hard to clean
Windows Server
2003
Visual Studio.NET
2003
WSS
SPS
Shared Server
Pros
Dev box is simpler
Cons
Two machines
Need scripts
Notes
Sharing a server is
not recommended
Virtual server per dev
Copy Microsoft.SharePoint.*
assemblies from
C:\Program Files\Common Files\
Microsoft Shared
\web server extensions\60\ISAPI
Windows XP
Visual Studio.NET
2003
Windows Server
2003
WSS
SPS
Advanced Web Part
Techniques
Work Items And Timeouts
Built-in support for asynchronous work
Allows other components to render
Scenarios
Data connections
RSS Fetching
Timeout renders based on
web.config setting
WorkItems
IRuntimeFilter
Allows you to filter which web parts run
Allows you to persist metadata on parts
Scoped to Virtual Server
NOTE: Portal uses this for
Audience Management
IRuntimeFilter
Caching
Web Part Framework
Per User or Web Part
In Memory or Serialised into Database
ASP .Net Cache Object
Share Cache across Part Instances
Enterprise Library Caching Application
Block
In HashTable
Survives Application Restarts
Caching
Configuration
How do I Store Central Configuration?
Do
Treat as .Net Server Control
Don’t
Use Web Part Resource File (XML)
Zone Customization
Zone Properties
AllowCustomization – Determines if the zone
web parts can be modified
AllowPersonalization – Determines if
personalization is allowed
FrameType – Determines the default
frame type
LockLayout – Determines if web parts can be
added, resized, or removed
ToolParts And Customization
ToolPart Controls
WebPart specifies list of supported toolparts
You derive from ToolPart
Set properties on the parent web part
Respond to Apply and Cancel
Custom ToolPane?
Rather hide ToolParts
ICustomizeToolPane
Best Practices
Handle All Exceptions
Implement IDesignTimeHtmlProvider
Interface
Make Properties User Friendly
Make Properties Searchable
Check Web Part Zone Properties When
Saving Changes
Best Practices
Check Permissions when Rendering
Validate Properties before Attempting
a Save
Specify Whether Your Web Part Can
Be Exported
HtmlEncode User Output
Create Custom Web Part Base Class
Web Parts And Upgrade
Changing Web Part Schema
AfterDeserialize event
Assembly Redirection in Web.Config
Distributing Web Parts
Distributing Web Parts
Manual
Copy required files into location
CAB files
Two-step process with STSADM
Stsadm –o addwppack –filename filename
Stsadm –o addwppack –name filename
MSI files
Install directly on each server
Deploying Web Parts
Method 1: Manual
Copy assembly DLL to either
/bin directory for a given IIS virtual server
(e.g., c:\inetpub\wwwroot\bin)
Global Assembly Cache
(e.g., c:\windows\assembly)
Copy DWP file to C:\Inetpub\wwwroot\wpcatalog
Copy resources to
For GAC-registered parts,
C:\Program Files\Common Files\Microsoft Shared\web server
extensions\wpresources
For Web Parts in the /bin directory,
C:\Inetpub\wwwroot\wpresources
Deploying Web Parts
Method 1: Manual
Adjust web.config
Register as SafeControl
Select Code Access Security settings
Deploying Web Parts
Method 2: CAB File
CAB file should contain
Assembly DLL
DWP file(s)
Manifest.XML
Resource files (if needed)
CAB won’t contain
Code Access Security settings
Deploying Web Parts
Method 2: CAB File
Server-side object model has methods for
deploying such a CAB file
Deploy with STSADM.EXE
Located in C:\Program Files\Common
Files\Microsoft Shared\web server
extensions\60\BIN
Add it to your path
Stsadm –o addwppack –filename filename
[–globalinstall] [–force]
Deploying Web Parts
Method 3: MSI File via WPPackager
All of the features of CAB file deployment,
but with
Code Access Security support
Ability to uninstall via Control Panel
Get WPPackager.EXE from
http://msdn.microsoft.com/sharepoint
Add additional files to project for use
by WPPackager
Run WPPackager after project is built
Deploying Web Parts
Method 4: Standard MSI File
See the Site Definition Design and
Deployment Talk later today for
more details
Challenges
Per-virtual server settings and assemblies
MSI Custom Actions
Command Line Tools
Custom Online Web Part Gallery
Easily Deploy .DWP Files
Doesn’t Deploy the Assembly or
Resources
Custom Online Gallery
Not The Only Way
/_layouts/ Application
DataView Web Part
SmartPart
IFrame
PageViewer
What We Didn’t Cover
HtmlDesignerAttribute
CreateWebPartMenu
Connections
Web Part Services Component (WPSC)
Summary
Debugging Options
Advanced Techniques for Web Parts
Best Practices
Deployment Options
Discussion
© 2005 Microsoft Corporation. All rights reserved.
This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.