Recently I was really confused about which type of web part deployment file extension I should use. After some research I figured the following out (which might be interesting for all SharePoint newbies):
.DWP:
It uses the following namespace xmlns=http://schemas.microsoft.com/WebPart/v2 by default.
The markup looks something like:
What happens if you try to add a SharePoint web part to a web part zone which was deployed to SharePoint with a *.webpart file is that you will get a nice popup error message:
Incompatible Web Part markup detected. Use *.dwp web part XML instead of *.webpart web part xml.
I hope this will help you to understand SharePoint web part development and deployment a little better.
- .dwp is a web part description xml file used prior and up to SharePoint 2007/2010, therefore is still supported
- .webpart is the newer extension which came with MOSS 2007
.DWP:
It uses the following namespace xmlns=http://schemas.microsoft.com/WebPart/v2 by default.
The markup looks something like:
<?xml version="1.0"?> <WebPart xmlns="http://schemas.microsoft.com/WebPart/v2"> <Assembly>AssemblyName(with no .dll extension), Version=VersionNumber, Culture=Culture, PublicKeyToken=PublicKeyToken</Assembly> <TypeName>WebPartNamespace.WebPartClassName</TypeName> <Title>DefaultWebPartTitle</Title> <Description>WebPartDescription</Description> </WebPart>
Also interesting is that if you derive your web part from Microsoft.SharePoint.WebPartPages.WebPart and switch to your web part gallery and select "New", you will see a list of all registered DLLs that contain web parts, SharePoint suggests the dwp file extension.
SharePoint automatically suggests the type of the web part description file extension, either *.webpart or *.dwp.- Microsoft.SharePoint.WebPartPages.WebPart = *.dwp
- System.Web.UI.WebControls.WebParts.WebPart = *.webpart.WEBPART
It uses the following namespace by default: xmlns="http://schemas.microsoft.com/WebPart/v3"
The example markup for it:
<?xml version="1.0" encoding="utf-8"?> <webParts> <webPart xmlns="http://schemas.microsoft.com/WebPart/v3"> <metaData> <!-- The following Guid is used as a reference to the web part class, and it will be automatically replaced with actual type name at deployment time. --> <type name="My.SharePoint.SomeIntegration.SomeIntegrationWebPart, My.SharePoint.SomeIntegration, Version=1.0.0.0, Culture=neutral, PublicKeyToken=3066ecdd584a19bd" /> <importErrorMessage>Cannot import SomeIntegration Web Part.</importErrorMessage> </metaData> <data> <properties> <property name="Title" type="string">Some Integration Web Part</property> <property name="Description" type="string">The web part shows a document type/category tree and an item list.</property> <property name="CacheDuration" type="int">5</property> <property name="SomeListName" type="string">http://mossdev/Lists/Some%20Import%20List</property> <property name="RootName" type="string">Document Type</property> <property name="ChromeState" type="chromestate">Normal</property> <property name="ChromeType" type="chrometype">None</property> </properties> </data> </webPart> </webParts>
What happens if you try to add a SharePoint web part to a web part zone which was deployed to SharePoint with a *.webpart file is that you will get a nice popup error message:
Incompatible Web Part markup detected. Use *.dwp web part XML instead of *.webpart web part xml.
I hope this will help you to understand SharePoint web part development and deployment a little better.
Comments
Post a Comment