<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://www.dotnetmafia.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Corey Roth [MVP] : SharePoint 2010, SP2010 Beta, Feature</title><link>http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/tags/SharePoint+2010/SP2010+Beta/Feature/default.aspx</link><description>Tags: SharePoint 2010, SP2010 Beta, Feature</description><dc:language>en</dc:language><generator>CommunityServer 2007.1 (Build: 20917.1142)</generator><item><title>Deploying an External List via Feature using CAML #sp2010</title><link>http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/2010/02/25/deploying-an-external-list-via-feature-using-caml-sp2010.aspx</link><pubDate>Thu, 25 Feb 2010 19:33:13 GMT</pubDate><guid isPermaLink="false">ceb7fe2a-c56b-4d85-99e6-8dd548580538:2817</guid><dc:creator>CoreyRoth</dc:creator><slash:comments>9</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.dotnetmafia.com/blogs/dotnettipoftheday/rsscomments.aspx?PostID=2817</wfw:commentRss><comments>http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/2010/02/25/deploying-an-external-list-via-feature-using-caml-sp2010.aspx#comments</comments><description>&lt;p&gt;I’ve been talking a lot about external lists lately as you may know.&amp;#160; They are so easy to create with SharePoint Designer, but you wouldn’t really deploy them to production that way would you?&amp;#160; Of course not!&amp;#160; We need a feature.&amp;#160; At first, you might think generating all of that CAML might be too difficult, but remember we can use the Save Site as Template page to generate a .wsp file for us.&amp;#160; Using this we can import it into Visual Studio and learn what CAML we need to use.&lt;/p&gt;  &lt;p&gt;We’re going to start with the same external list from yesterday.&amp;#160; You can build your own using SharePoint Designer as described in my &lt;a href="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/2010/02/02/it-s-easy-to-configure-an-external-list-with-business-connectivity-services-bcs-in-sharepoint-foundation-2010.aspx"&gt;BCS&lt;/a&gt; post.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.dotnetmafia.com/blogs/dotnettipoftheday/ExternalListFeatureList_2418B653.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="ExternalListFeatureList" border="0" alt="ExternalListFeatureList" src="http://www.dotnetmafia.com/blogs/dotnettipoftheday/ExternalListFeatureList_thumb_0E6E57E9.png" width="415" height="119" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Once you are happy with your list, go to Site Settings –&amp;gt; Save Site as Template.&amp;#160; Fill in the fields and it will save a solution package in your solution gallery of your site collection.&amp;#160; Save the .wsp file to disk and we’re ready to begin.&amp;#160; Once you have your solution package, open Visual Studio 2010, create a new project, and use the Import SharePoint Solution Package project template.&amp;#160; You will be prompted for what site to use and where the package file is.&amp;#160; On the next step, you will be prompted for what you want to import.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.dotnetmafia.com/blogs/dotnettipoftheday/ExternalListSolutionImport_1F0652D7.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="ExternalListSolutionImport" border="0" alt="ExternalListSolutionImport" src="http://www.dotnetmafia.com/blogs/dotnettipoftheday/ExternalListSolutionImport_thumb_2F321AD0.png" width="414" height="329" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;The solution package has every site column, content type, page, list, etc, on the site so there is a lot to sift through.&amp;#160; However, the only thing we really need is the list instance in question (in my case Products).&amp;#160; You will want to unselect everything else as it will take forever to import if you don’t.&lt;/p&gt;  &lt;p&gt;Quick Tip: There isn’t a select all button, so press Ctrl+A, and then unclick a checkbox to deselect everything.&lt;/p&gt;  &lt;p&gt;On the next step you will get a warning about dependencies.&amp;#160; Go ahead and just say yes and your project will import.&amp;#160; Your project will likely have a bunch of stuff you don’t really care about.&amp;#160; All that you really need is what it is created in List Instances.&amp;#160; Your list instance might look something like this.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.dotnetmafia.com/blogs/dotnettipoftheday/ExternalListFeatureSolutionExplorer_4CC3F5CF.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="ExternalListFeatureSolutionExplorer" border="0" alt="ExternalListFeatureSolutionExplorer" src="http://www.dotnetmafia.com/blogs/dotnettipoftheday/ExternalListFeatureSolutionExplorer_thumb_4055D2A6.png" width="157" height="244" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;At this point, I created a new project because I want to keep things clean.&amp;#160; Create a new project and create a new List Definition.&amp;#160; At this point, you will have a schema file and two new elements files.&amp;#160; The elements.xml file with the list template can be deleted since I don’t want users creating new versions of this list.&amp;#160; Before we start digging into the CAML that is required to make an external list work, let’s go back and look at SharePoint Designer so we can remember what our application definition looked like.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.dotnetmafia.com/blogs/dotnettipoftheday/ExternalListFeatureApplicationDefinition_5EC0138F.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="ExternalListFeatureApplicationDefinition" border="0" alt="ExternalListFeatureApplicationDefinition" src="http://www.dotnetmafia.com/blogs/dotnettipoftheday/ExternalListFeatureApplicationDefinition_thumb_3641317B.png" width="269" height="319" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;The reason I show you this is because these values we’re going to see when we take a look at our elements.xml file.&amp;#160; Here is the file that came from the site export.&lt;/p&gt;  &lt;div style="font-family:consolas;background:black;color:white;font-size:13pt;font-weight:bold;"&gt;   &lt;p style="margin:0px;"&gt;&amp;lt;?&lt;span style="color:#cc7832;"&gt;xml&lt;/span&gt; &lt;span style="color:silver;"&gt;version&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;1.0&lt;/span&gt;&amp;quot; &lt;span style="color:silver;"&gt;encoding&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;utf-8&lt;/span&gt;&amp;quot;?&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;lt;&lt;span style="color:#cc7832;"&gt;Elements&lt;/span&gt; &lt;span style="color:silver;"&gt;xmlns&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;http://schemas.microsoft.com/sharepoint/&lt;/span&gt;&amp;quot;&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160; &amp;lt;&lt;span style="color:#cc7832;"&gt;ListInstance&lt;/span&gt; &lt;span style="color:silver;"&gt;FeatureId&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;{00bfea71-9549-43f8-b978-e47e54a10600}&lt;/span&gt;&amp;quot; &lt;span style="color:silver;"&gt;TemplateType&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;600&lt;/span&gt;&amp;quot; &lt;span style="color:silver;"&gt;Title&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;Products&lt;/span&gt;&amp;quot; &lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:silver;"&gt;Description&lt;/span&gt;=&amp;quot;&amp;quot; &lt;span style="color:silver;"&gt;Url&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;Lists/Products&lt;/span&gt;&amp;quot; &lt;span style="color:silver;"&gt;CustomSchema&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;Files\Lists\Products\Schema.xml&lt;/span&gt;&amp;quot; &lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:silver;"&gt;HyperlinkBaseUrl&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;http://sp2010/Test&lt;/span&gt;&amp;quot; &lt;span style="color:silver;"&gt;RootWebOnly&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;FALSE&lt;/span&gt;&amp;quot; &lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:silver;"&gt;xmlns&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;http://schemas.microsoft.com/sharepoint/&lt;/span&gt;&amp;quot;&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;span style="color:#cc7832;"&gt;DataSource&lt;/span&gt;&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;span style="color:#cc7832;"&gt;Property&lt;/span&gt; &lt;span style="color:silver;"&gt;Name&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;Entity&lt;/span&gt;&amp;quot; &lt;span style="color:silver;"&gt;Value&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;Products&lt;/span&gt;&amp;quot; /&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;span style="color:#cc7832;"&gt;Property&lt;/span&gt; &lt;span style="color:silver;"&gt;Name&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;EntityNamespace&lt;/span&gt;&amp;quot; &lt;span style="color:silver;"&gt;Value&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;http://sp2010/test&lt;/span&gt;&amp;quot; /&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;span style="color:#cc7832;"&gt;Property&lt;/span&gt; &lt;span style="color:silver;"&gt;Name&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;LobSystemInstance&lt;/span&gt;&amp;quot; &lt;span style="color:silver;"&gt;Value&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;bcs_test&lt;/span&gt;&amp;quot; /&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;span style="color:#cc7832;"&gt;Property&lt;/span&gt; &lt;span style="color:silver;"&gt;Name&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;SpecificFinder&lt;/span&gt;&amp;quot; &lt;span style="color:silver;"&gt;Value&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;Read Item&lt;/span&gt;&amp;quot; /&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/&lt;span style="color:#cc7832;"&gt;DataSource&lt;/span&gt;&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160; &amp;lt;/&lt;span style="color:#cc7832;"&gt;ListInstance&lt;/span&gt;&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;lt;/&lt;span style="color:#cc7832;"&gt;Elements&lt;/span&gt;&amp;gt;&lt;/p&gt; &lt;/div&gt;   &lt;p&gt;A couple of things to note here.&amp;#160; First, the &lt;em&gt;TemplateType &lt;/em&gt;is &lt;strong&gt;600&lt;/strong&gt;.&amp;#160; We can only presume this is the list template id for an external list.&amp;#160; The other thing of note is the new &lt;em&gt;DataSource&lt;/em&gt; element.&amp;#160; This was not in previous versions of SharePoint.&amp;#160; As you might notice here, these values correspond to what we see on the external content type.&amp;#160; This is what you will change should you decide to rename the entity in or change the LobSystemInstance name.&amp;#160; This XML is highly useable in our own feature, but I am going to remove some of the unnecessary attributes such as FeatureId and CustomSchema.&amp;#160; I’m also going to give it a new Title so that we know this is a different list.&amp;#160; Here is what my new elements.xml looks like.&lt;/p&gt;  &lt;div style="font-family:consolas;background:black;color:white;font-size:13pt;font-weight:bold;"&gt;   &lt;p style="margin:0px;"&gt;&amp;lt;?&lt;span style="color:#cc7832;"&gt;xml&lt;/span&gt; &lt;span style="color:silver;"&gt;version&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;1.0&lt;/span&gt;&amp;quot; &lt;span style="color:silver;"&gt;encoding&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;utf-8&lt;/span&gt;&amp;quot;?&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;lt;&lt;span style="color:#cc7832;"&gt;Elements&lt;/span&gt; &lt;span style="color:silver;"&gt;xmlns&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;http://schemas.microsoft.com/sharepoint/&lt;/span&gt;&amp;quot;&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160; &amp;lt;&lt;span style="color:#cc7832;"&gt;ListInstance&lt;/span&gt; &lt;span style="color:silver;"&gt;TemplateType&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;600&lt;/span&gt;&amp;quot; &lt;span style="color:silver;"&gt;Title&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;Products - Deployed by Feature&lt;/span&gt;&amp;quot; &lt;span style="color:silver;"&gt;Description&lt;/span&gt;=&amp;quot;&amp;quot; &lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:silver;"&gt;Url&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;Lists/ProductsDeployedByFeature&lt;/span&gt;&amp;quot; &lt;span style="color:silver;"&gt;HyperlinkBaseUrl&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;http://sp2010/Test&lt;/span&gt;&amp;quot; &lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:silver;"&gt;RootWebOnly&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;FALSE&lt;/span&gt;&amp;quot; &lt;span style="color:silver;"&gt;xmlns&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;http://schemas.microsoft.com/sharepoint/&lt;/span&gt;&amp;quot;&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;span style="color:#cc7832;"&gt;DataSource&lt;/span&gt;&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;span style="color:#cc7832;"&gt;Property&lt;/span&gt; &lt;span style="color:silver;"&gt;Name&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;Entity&lt;/span&gt;&amp;quot; &lt;span style="color:silver;"&gt;Value&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;Products&lt;/span&gt;&amp;quot; /&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;span style="color:#cc7832;"&gt;Property&lt;/span&gt; &lt;span style="color:silver;"&gt;Name&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;EntityNamespace&lt;/span&gt;&amp;quot; &lt;span style="color:silver;"&gt;Value&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;http://sp2010/test&lt;/span&gt;&amp;quot; /&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;span style="color:#cc7832;"&gt;Property&lt;/span&gt; &lt;span style="color:silver;"&gt;Name&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;LobSystemInstance&lt;/span&gt;&amp;quot; &lt;span style="color:silver;"&gt;Value&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;bcs_test&lt;/span&gt;&amp;quot; /&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;span style="color:#cc7832;"&gt;Property&lt;/span&gt; &lt;span style="color:silver;"&gt;Name&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;SpecificFinder&lt;/span&gt;&amp;quot; &lt;span style="color:silver;"&gt;Value&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;Read Item&lt;/span&gt;&amp;quot; /&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/&lt;span style="color:#cc7832;"&gt;DataSource&lt;/span&gt;&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160; &amp;lt;/&lt;span style="color:#cc7832;"&gt;ListInstance&lt;/span&gt;&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;lt;/&lt;span style="color:#cc7832;"&gt;Elements&lt;/span&gt;&amp;gt;&lt;/p&gt; &lt;/div&gt;   &lt;p&gt;Honestly, I think I can get rid of HyperLinkBaseUrl as well.&amp;#160; It doesn’t seem to matter though, I deployed it to a few other sites and it seems to work fine.&amp;#160; Now let’s take a look schema.xml.&amp;#160; It’s actually pretty small which is nice compared to the files we were used to in the past.&lt;/p&gt;  &lt;div style="font-family:consolas;background:black;color:white;font-size:13pt;font-weight:bold;"&gt;   &lt;p style="margin:0px;"&gt;&amp;lt;?&lt;span style="color:#cc7832;"&gt;xml&lt;/span&gt; &lt;span style="color:silver;"&gt;version&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;1.0&lt;/span&gt;&amp;quot; &lt;span style="color:silver;"&gt;encoding&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;utf-8&lt;/span&gt;&amp;quot;?&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;lt;&lt;span style="color:#cc7832;"&gt;List&lt;/span&gt; &lt;span style="color:silver;"&gt;Title&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;Products&lt;/span&gt;&amp;quot; &lt;span style="color:silver;"&gt;Direction&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;none&lt;/span&gt;&amp;quot; &lt;span style="color:silver;"&gt;Url&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;Lists/Products&lt;/span&gt;&amp;quot; &lt;span style="color:silver;"&gt;BaseType&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;0&lt;/span&gt;&amp;quot; &lt;span style="color:silver;"&gt;Type&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;600&lt;/span&gt;&amp;quot; &lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:silver;"&gt;FolderCreation&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;FALSE&lt;/span&gt;&amp;quot; &lt;span style="color:silver;"&gt;DisableAttachments&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;TRUE&lt;/span&gt;&amp;quot; &lt;span style="color:silver;"&gt;Catalog&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;FALSE&lt;/span&gt;&amp;quot; &lt;span style="color:silver;"&gt;RootWebOnly&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;FALSE&lt;/span&gt;&amp;quot; &lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:silver;"&gt;SendToLocation&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;|&lt;/span&gt;&amp;quot; &lt;span style="color:silver;"&gt;ImageUrl&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;/_layouts/images/itgen.gif&lt;/span&gt;&amp;quot; &lt;span style="color:silver;"&gt;xmlns:ows&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;Microsoft SharePoint&lt;/span&gt;&amp;quot; &lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:silver;"&gt;xmlns:spctf&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;http://schemas.microsoft.com/sharepoint/v3/contenttype/forms&lt;/span&gt;&amp;quot; &lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:silver;"&gt;xmlns&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;http://schemas.microsoft.com/sharepoint/&lt;/span&gt;&amp;quot;&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160; &amp;lt;&lt;span style="color:#cc7832;"&gt;MetaData&lt;/span&gt;&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;span style="color:#cc7832;"&gt;ContentTypes&lt;/span&gt;&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;span style="color:#cc7832;"&gt;ContentType&lt;/span&gt; &lt;span style="color:silver;"&gt;ID&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;0x01&lt;/span&gt;&amp;quot; &lt;span style="color:silver;"&gt;Name&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;Item&lt;/span&gt;&amp;quot; &lt;span style="color:silver;"&gt;Group&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;List Content Types&lt;/span&gt;&amp;quot; &lt;span style="color:silver;"&gt;Description&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;Create a new list item.&lt;/span&gt;&amp;quot; &lt;span style="color:silver;"&gt;FeatureId&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;{695b6570-a48b-4a8e-8ea5-26ea7fc1d162}&lt;/span&gt;&amp;quot;&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;span style="color:#cc7832;"&gt;Folder&lt;/span&gt; &lt;span style="color:silver;"&gt;TargetName&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;Item&lt;/span&gt;&amp;quot; /&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;span style="color:#cc7832;"&gt;FieldRefs&lt;/span&gt;&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;span style="color:#cc7832;"&gt;FieldRef&lt;/span&gt; &lt;span style="color:silver;"&gt;ID&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;{c042a256-787d-4a6f-8a8a-cf6ab767f12d}&lt;/span&gt;&amp;quot; &lt;span style="color:silver;"&gt;Name&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;ContentType&lt;/span&gt;&amp;quot; /&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;span style="color:#cc7832;"&gt;FieldRef&lt;/span&gt; &lt;span style="color:silver;"&gt;ID&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;{fa564e0f-0c70-4ab9-b863-0177e6ddd247}&lt;/span&gt;&amp;quot; &lt;span style="color:silver;"&gt;Name&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;Title&lt;/span&gt;&amp;quot; &lt;span style="color:silver;"&gt;Required&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;TRUE&lt;/span&gt;&amp;quot; &lt;span style="color:silver;"&gt;ShowInNewForm&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;TRUE&lt;/span&gt;&amp;quot; &lt;span style="color:silver;"&gt;ShowInEditForm&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;TRUE&lt;/span&gt;&amp;quot; /&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/&lt;span style="color:#cc7832;"&gt;FieldRefs&lt;/span&gt;&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;span style="color:#cc7832;"&gt;XmlDocuments&lt;/span&gt;&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;span style="color:#cc7832;"&gt;XmlDocument&lt;/span&gt; &lt;span style="color:silver;"&gt;NamespaceURI&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;http://schemas.microsoft.com/sharepoint/v3/contenttype/forms&lt;/span&gt;&amp;quot;&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;span style="color:#cc7832;"&gt;FormTemplates&lt;/span&gt; &lt;span style="color:silver;"&gt;xmlns&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;http://schemas.microsoft.com/sharepoint/v3/contenttype/forms&lt;/span&gt;&amp;quot;&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;span style="color:#cc7832;"&gt;Display&lt;/span&gt;&amp;gt;ListForm&amp;lt;/&lt;span style="color:#cc7832;"&gt;Display&lt;/span&gt;&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;span style="color:#cc7832;"&gt;Edit&lt;/span&gt;&amp;gt;ListForm&amp;lt;/&lt;span style="color:#cc7832;"&gt;Edit&lt;/span&gt;&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;span style="color:#cc7832;"&gt;New&lt;/span&gt;&amp;gt;ListForm&amp;lt;/&lt;span style="color:#cc7832;"&gt;New&lt;/span&gt;&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/&lt;span style="color:#cc7832;"&gt;FormTemplates&lt;/span&gt;&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/&lt;span style="color:#cc7832;"&gt;XmlDocument&lt;/span&gt;&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/&lt;span style="color:#cc7832;"&gt;XmlDocuments&lt;/span&gt;&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/&lt;span style="color:#cc7832;"&gt;ContentType&lt;/span&gt;&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/&lt;span style="color:#cc7832;"&gt;ContentTypes&lt;/span&gt;&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;span style="color:#cc7832;"&gt;Fields&lt;/span&gt;&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;span style="color:#cc7832;"&gt;Field&lt;/span&gt; &lt;span style="color:silver;"&gt;DisplayName&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;BDC Identity&lt;/span&gt;&amp;quot; &lt;span style="color:silver;"&gt;Hidden&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;FALSE&lt;/span&gt;&amp;quot; &lt;span style="color:silver;"&gt;Name&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;BdcIdentity&lt;/span&gt;&amp;quot; &lt;span style="color:silver;"&gt;SourceID&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;http://schemas.microsoft.com/sharepoint/v3&lt;/span&gt;&amp;quot; &lt;span style="color:silver;"&gt;StaticName&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;BdcIdentity&lt;/span&gt;&amp;quot; &lt;span style="color:silver;"&gt;Type&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;Text&lt;/span&gt;&amp;quot; /&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;span style="color:#cc7832;"&gt;Field&lt;/span&gt; &lt;span style="color:silver;"&gt;DisplayName&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;Name&lt;/span&gt;&amp;quot; &lt;span style="color:silver;"&gt;Hidden&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;FALSE&lt;/span&gt;&amp;quot; &lt;span style="color:silver;"&gt;Name&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;Name&lt;/span&gt;&amp;quot; &lt;span style="color:silver;"&gt;SourceID&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;http://schemas.microsoft.com/sharepoint/v3&lt;/span&gt;&amp;quot; &lt;span style="color:silver;"&gt;StaticName&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;Name&lt;/span&gt;&amp;quot; &lt;span style="color:silver;"&gt;Type&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;Text&lt;/span&gt;&amp;quot; /&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;span style="color:#cc7832;"&gt;Field&lt;/span&gt; &lt;span style="color:silver;"&gt;DisplayName&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;Id&lt;/span&gt;&amp;quot; &lt;span style="color:silver;"&gt;Hidden&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;FALSE&lt;/span&gt;&amp;quot; &lt;span style="color:silver;"&gt;Name&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;Id&lt;/span&gt;&amp;quot; &lt;span style="color:silver;"&gt;SourceID&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;http://schemas.microsoft.com/sharepoint/v3&lt;/span&gt;&amp;quot; &lt;span style="color:silver;"&gt;StaticName&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;Id&lt;/span&gt;&amp;quot; &lt;span style="color:silver;"&gt;Type&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;Integer&lt;/span&gt;&amp;quot; /&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;span style="color:#cc7832;"&gt;Field&lt;/span&gt; &lt;span style="color:silver;"&gt;DisplayName&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;Color&lt;/span&gt;&amp;quot; &lt;span style="color:silver;"&gt;Hidden&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;FALSE&lt;/span&gt;&amp;quot; &lt;span style="color:silver;"&gt;Name&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;Color&lt;/span&gt;&amp;quot; &lt;span style="color:silver;"&gt;SourceID&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;http://schemas.microsoft.com/sharepoint/v3&lt;/span&gt;&amp;quot; &lt;span style="color:silver;"&gt;StaticName&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;Color&lt;/span&gt;&amp;quot; &lt;span style="color:silver;"&gt;Type&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;Text&lt;/span&gt;&amp;quot; /&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;span style="color:#cc7832;"&gt;Field&lt;/span&gt; &lt;span style="color:silver;"&gt;DisplayName&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;Description&lt;/span&gt;&amp;quot; &lt;span style="color:silver;"&gt;Hidden&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;FALSE&lt;/span&gt;&amp;quot; &lt;span style="color:silver;"&gt;Name&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;Description&lt;/span&gt;&amp;quot; &lt;span style="color:silver;"&gt;SourceID&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;http://schemas.microsoft.com/sharepoint/v3&lt;/span&gt;&amp;quot; &lt;span style="color:silver;"&gt;StaticName&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;Description&lt;/span&gt;&amp;quot; &lt;span style="color:silver;"&gt;Type&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;Text&lt;/span&gt;&amp;quot; /&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;span style="color:#cc7832;"&gt;Field&lt;/span&gt; &lt;span style="color:silver;"&gt;DisplayName&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;Price&lt;/span&gt;&amp;quot; &lt;span style="color:silver;"&gt;Hidden&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;FALSE&lt;/span&gt;&amp;quot; &lt;span style="color:silver;"&gt;Name&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;Price&lt;/span&gt;&amp;quot; &lt;span style="color:silver;"&gt;SourceID&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;http://schemas.microsoft.com/sharepoint/v3&lt;/span&gt;&amp;quot; &lt;span style="color:silver;"&gt;StaticName&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;Price&lt;/span&gt;&amp;quot; &lt;span style="color:silver;"&gt;Type&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;Decimal&lt;/span&gt;&amp;quot; /&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/&lt;span style="color:#cc7832;"&gt;Fields&lt;/span&gt;&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;span style="color:#cc7832;"&gt;Forms&lt;/span&gt; /&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;span style="color:#cc7832;"&gt;Views&lt;/span&gt;&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;span style="color:#cc7832;"&gt;View&lt;/span&gt; &lt;span style="color:silver;"&gt;DisplayName&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;Products Read List&lt;/span&gt;&amp;quot; &lt;span style="color:silver;"&gt;DefaultView&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;TRUE&lt;/span&gt;&amp;quot; &lt;span style="color:silver;"&gt;BaseViewID&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;1&lt;/span&gt;&amp;quot; &lt;span style="color:silver;"&gt;Type&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;HTML&lt;/span&gt;&amp;quot; &lt;span style="color:silver;"&gt;MobileView&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;TRUE&lt;/span&gt;&amp;quot; &lt;span style="color:silver;"&gt;MobileDefaultView&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;TRUE&lt;/span&gt;&amp;quot; &lt;span style="color:silver;"&gt;ImageUrl&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;/_layouts/images/generic.png&lt;/span&gt;&amp;quot; &lt;span style="color:silver;"&gt;XslLink&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;main.xsl&lt;/span&gt;&amp;quot; &lt;span style="color:silver;"&gt;WebPartZoneID&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;Main&lt;/span&gt;&amp;quot; &lt;span style="color:silver;"&gt;WebPartOrder&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;1&lt;/span&gt;&amp;quot; &lt;span style="color:silver;"&gt;Url&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;Read List.aspx&lt;/span&gt;&amp;quot; &lt;span style="color:silver;"&gt;SetupPath&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;pages\viewpage.aspx&lt;/span&gt;&amp;quot;&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;span style="color:#cc7832;"&gt;XslLink&lt;/span&gt;&amp;gt;main.xsl&amp;lt;/&lt;span style="color:#cc7832;"&gt;XslLink&lt;/span&gt;&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;span style="color:#cc7832;"&gt;Method&lt;/span&gt; &lt;span style="color:silver;"&gt;Name&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;Read List&lt;/span&gt;&amp;quot; /&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;span style="color:#cc7832;"&gt;Query&lt;/span&gt;&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;span style="color:#cc7832;"&gt;OrderBy&lt;/span&gt;&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;span style="color:#cc7832;"&gt;FieldRef&lt;/span&gt; &lt;span style="color:silver;"&gt;Name&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;Name&lt;/span&gt;&amp;quot; /&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/&lt;span style="color:#cc7832;"&gt;OrderBy&lt;/span&gt;&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/&lt;span style="color:#cc7832;"&gt;Query&lt;/span&gt;&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;span style="color:#cc7832;"&gt;ViewFields&lt;/span&gt;&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;span style="color:#cc7832;"&gt;FieldRef&lt;/span&gt; &lt;span style="color:silver;"&gt;Name&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;Name&lt;/span&gt;&amp;quot; &lt;span style="color:silver;"&gt;ListItemMenu&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;TRUE&lt;/span&gt;&amp;quot; &lt;span style="color:silver;"&gt;LinkToItem&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;TRUE&lt;/span&gt;&amp;quot; /&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;span style="color:#cc7832;"&gt;FieldRef&lt;/span&gt; &lt;span style="color:silver;"&gt;Name&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;Id&lt;/span&gt;&amp;quot; /&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;span style="color:#cc7832;"&gt;FieldRef&lt;/span&gt; &lt;span style="color:silver;"&gt;Name&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;Color&lt;/span&gt;&amp;quot; /&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;span style="color:#cc7832;"&gt;FieldRef&lt;/span&gt; &lt;span style="color:silver;"&gt;Name&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;Description&lt;/span&gt;&amp;quot; /&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;span style="color:#cc7832;"&gt;FieldRef&lt;/span&gt; &lt;span style="color:silver;"&gt;Name&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;Price&lt;/span&gt;&amp;quot; /&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/&lt;span style="color:#cc7832;"&gt;ViewFields&lt;/span&gt;&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;span style="color:#cc7832;"&gt;RowLimit&lt;/span&gt; &lt;span style="color:silver;"&gt;Paged&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;TRUE&lt;/span&gt;&amp;quot;&amp;gt;30&amp;lt;/&lt;span style="color:#cc7832;"&gt;RowLimit&lt;/span&gt;&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;span style="color:#cc7832;"&gt;Aggregations&lt;/span&gt; &lt;span style="color:silver;"&gt;Value&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;Off&lt;/span&gt;&amp;quot; /&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/&lt;span style="color:#cc7832;"&gt;View&lt;/span&gt;&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/&lt;span style="color:#cc7832;"&gt;Views&lt;/span&gt;&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160; &amp;lt;/&lt;span style="color:#cc7832;"&gt;MetaData&lt;/span&gt;&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;lt;/&lt;span style="color:#cc7832;"&gt;List&lt;/span&gt;&amp;gt;&lt;/p&gt; &lt;/div&gt;   &lt;p&gt;As you can see it’s pretty clean.&amp;#160; It again uses the Type of 600.&amp;#160; In the ContentTypes section, it does define a regular list item, but it doesn’t actually add any of the fields from the external list there.&amp;#160; The Fields element has a field defined for each field in my external content type.&amp;#160; As you can see there is nothing special about the way they are defined.&amp;#160; The only one of note is the BdcIdentity field which I assume is required to keep track of the ID that ties back to the BCS itself.&amp;#160; The View is surprisingly clean as well.&amp;#160; The &lt;em&gt;XslLink&lt;/em&gt; and &lt;em&gt;Method&lt;/em&gt; elements are new.&amp;#160; I assume we can use XslLink to customize how the view is rendered, but I didn’t actually see a main.xsl file generated in the solution package anywhere.&amp;#160; The Method element I can only assume corresponds to the name of the finder method &lt;em&gt;Read List&lt;/em&gt; which we have seen above.&amp;#160; The rest is pretty simple.&amp;#160; It just has a FieldRef for each column in my external content type.&amp;#160; &lt;/p&gt;  &lt;p&gt;I can pretty much use the Schema.xml file as is.&amp;#160; I did change the Title and Url attributes at the top but that is it.&amp;#160; At this point my new feature to deploy this is ready to go.&amp;#160; Here is what it looks like in Visual Studio.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.dotnetmafia.com/blogs/dotnettipoftheday/ExternalListNewSolutionExplorer_349065A7.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="ExternalListNewSolutionExplorer" border="0" alt="ExternalListNewSolutionExplorer" src="http://www.dotnetmafia.com/blogs/dotnettipoftheday/ExternalListNewSolutionExplorer_thumb_1A4FFC83.png" width="187" height="185" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Deploy your solution and have it activate your feature.&amp;#160; The new list won’t show up automatically in the navigation on the side, but it will be there.&amp;#160; Just go to the URL directly or view the lists on your site to get there.&amp;#160; Here it is on my new site.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.dotnetmafia.com/blogs/dotnettipoftheday/ExternalListOnNewSite_6B1E10EB.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="ExternalListOnNewSite" border="0" alt="ExternalListOnNewSite" src="http://www.dotnetmafia.com/blogs/dotnettipoftheday/ExternalListOnNewSite_thumb_5DD787D8.png" width="464" height="207" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;As you can see it’s really not that hard to deploy an external list to another site properly using a feature.&amp;#160; Now, you might have noticed there are a few other elements.xml files generated when we did the site export.&amp;#160; One stores specific values in the property bag of the list.&amp;#160; This we did not want because we don’t really want to copy those internal properties.&amp;#160; The other deals with the forms of the list.&amp;#160; It uses the BinarySerializedWebPart which scares me a bit, so I haven’t messed with it much.&amp;#160; If you are just using default forms you don’t need to worry about it.&amp;#160; In a future post, I’ll try seeing if I can deploy some InfoPath forms along with the list, but I figured that deserves its own post.&lt;/p&gt;  &lt;p&gt;Also, one other thing to note.&amp;#160; If you are deploying your external content type to another server, you can do that in the same manner as you did in SharePoint 2007.&amp;#160; Just export the application definition and import it on the new server.&amp;#160; You can also use the Export Application Model button in SharePoint designer on the External Content Types list.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.dotnetmafia.com/blogs/dotnettipoftheday/ExternalListExportApplicationModel_0E1E5C8F.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="ExternalListExportApplicationModel" border="0" alt="ExternalListExportApplicationModel" src="http://www.dotnetmafia.com/blogs/dotnettipoftheday/ExternalListExportApplicationModel_thumb_1F228A72.png" width="107" height="89" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;I hope this helps when you look to move lists into production.&amp;#160; This technique of exporting and importing will also work with regular lists of course.&amp;#160; Just remember, friends don’t let friends deploy lists without a feature.&lt;/p&gt;&lt;img src="http://www.dotnetmafia.com/aggbug.aspx?PostID=2817" width="1" height="1"&gt;</description><category domain="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/tags/SharePoint/default.aspx">SharePoint</category><category domain="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/tags/Feature/default.aspx">Feature</category><category domain="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/tags/SharePoint+Designer/default.aspx">SharePoint Designer</category><category domain="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/tags/CAML/default.aspx">CAML</category><category domain="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/tags/Visual+Studio+2010/default.aspx">Visual Studio 2010</category><category domain="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/tags/SharePoint+2010/default.aspx">SharePoint 2010</category><category domain="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/tags/SP2010+Beta/default.aspx">SP2010 Beta</category></item><item><title>Intro to SharePoint 2010 Development: How to Build and Deploy a Web Part</title><link>http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/2010/02/15/intro-to-sharepoint-2010-development-how-to-build-and-deploy-a-web-part.aspx</link><pubDate>Mon, 15 Feb 2010 20:17:41 GMT</pubDate><guid isPermaLink="false">ceb7fe2a-c56b-4d85-99e6-8dd548580538:2748</guid><dc:creator>CoreyRoth</dc:creator><slash:comments>36</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.dotnetmafia.com/blogs/dotnettipoftheday/rsscomments.aspx?PostID=2748</wfw:commentRss><comments>http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/2010/02/15/intro-to-sharepoint-2010-development-how-to-build-and-deploy-a-web-part.aspx#comments</comments><description>&lt;p&gt;If you are already familiar with SharePoint 2010, you already know how easy it is to build and deploy a web part now.&amp;#160; However, this post is for those that don’t keep up with SharePoint as some of us do and may not realize how the development experience has improved so much.&amp;#160; My post &lt;a href="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/2008/10/22/intro-to-sharepoint-development-how-to-build-and-deploy-a-web-part.aspx"&gt;How to Build and Deploy a Web Part&lt;/a&gt; is by far the most popular post on DotNetMafia.com.&amp;#160; I wanted to make today’s post just as a point to show you how much less work is involved in deploying a web part.&amp;#160; I am going to group this post into sections in a similar manner as I did the post for the WSS3 post.&lt;/p&gt;  &lt;h5&gt;&lt;/h5&gt;  &lt;h5&gt;Environment&lt;/h5&gt;  &lt;p&gt;There can be entire talks about what the best way to develop is now, but we’ll start with the simplest.&amp;#160; Although you can install SharePoint on Windows 7 and directly develop on it, most people are going to say stick with a virtual machine and run Windows Server 2008 R2.&amp;#160; It’s certainly simpler to get all of the prerequisites installed if you stick with Windows Server.&amp;#160; The benefits to developing directly on a machine with SharePoint on it are so great now that I would recommend against &lt;a href="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/2008/03/05/how-to-remote-debugging-a-web-application.aspx"&gt;remote debugging&lt;/a&gt; (although you still can).&amp;#160; The SharePoint Root (or the 12 hive as you called it) is now the &lt;a href="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/2009/10/20/sharepoint-2010-12-hive-2-14-hive.aspx"&gt;14 hive&lt;/a&gt; and is located at the predictable path below.&lt;/p&gt;  &lt;p&gt;&lt;em&gt;C:\Program Files\Common Files\microsoft shared\Web Server Extensions\14&lt;/em&gt;&lt;/p&gt;  &lt;h5&gt;Coding the Web Part&lt;/h5&gt;  &lt;p&gt;Here is where things start to change.&amp;#160; Instead of creating a class library and adding references to the SharePoint DLLs, we simply use one of the new included SharePoint project templates as you can see here.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.dotnetmafia.com/blogs/dotnettipoftheday/WebPartIntroEmptyProject_43970EE2.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="WebPartIntroEmptyProject" border="0" alt="WebPartIntroEmptyProject" src="http://www.dotnetmafia.com/blogs/dotnettipoftheday/WebPartIntroEmptyProject_thumb_138CBD61.png" width="519" height="369" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Start by using the Empty SharePoint Project template.&amp;#160; Also make sure you have it set to .NET Framework 3.5 as SharePoint does not run under .NET Framework 4.0 (don’t get me started).&amp;#160; You’ll notice you have many different project templates to choose from.&amp;#160; Most of these can also be used once you create an empty project.&amp;#160; On the next dialogue, pick farm solution.&amp;#160; I’ll go into the difference between sandboxed and farm solutions, but more than likely you are going to use farm solutions every time.&amp;#160; You also need to specify the URL to your server.&amp;#160; You can change that if you want but the default value will probably work for you in this case.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.dotnetmafia.com/blogs/dotnettipoftheday/WebPartIntroSolutionType_19D393EF.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="WebPartIntroSolutionType" border="0" alt="WebPartIntroSolutionType" src="http://www.dotnetmafia.com/blogs/dotnettipoftheday/WebPartIntroSolutionType_thumb_4B5F0184.png" width="387" height="307" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;This gives us a solution that looks like this.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.dotnetmafia.com/blogs/dotnettipoftheday/WebPartIntroSolutionExplorer_06B26743.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="WebPartIntroSolutionExplorer" border="0" alt="WebPartIntroSolutionExplorer" src="http://www.dotnetmafia.com/blogs/dotnettipoftheday/WebPartIntroSolutionExplorer_thumb_2661410B.png" width="163" height="156" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Now we are ready to build our new web part.&amp;#160; If you bring up the add new item context menu, you will see a number of choices for the types of new SharePoint Project Items (SPIs) that you can create.&amp;#160; We’re going to choose Web Part in this case.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.dotnetmafia.com/blogs/dotnettipoftheday/WebPartIntroSPI_6A357562.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="WebPartIntroSPI" border="0" alt="WebPartIntroSPI" src="http://www.dotnetmafia.com/blogs/dotnettipoftheday/WebPartIntroSPI_thumb_28BAC309.png" width="532" height="378" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;What is the &lt;a href="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/2009/10/20/introducing-the-visual-web-part-in-sharepoint-2010.aspx"&gt;Visual Web Part&lt;/a&gt; you ask?&amp;#160; That’s just a user control which relates directly to my second most popular post on &lt;a href="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/2008/11/18/introduction-to-sharepoint-development-deploy-a-user-control-in-sharepoint.aspx"&gt;How to Deploy a User Control&lt;/a&gt;.&amp;#160; Now we’re finally ready to add some code.&amp;#160; We’re just going to take our code from the WSS3 post and use it here.&lt;/p&gt;  &lt;div style="font-family:consolas;background:black;color:white;font-size:13pt;font-weight:bold;"&gt;   &lt;p style="margin:0px;"&gt;&lt;span style="color:#cc7832;"&gt;using&lt;/span&gt; System;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&lt;span style="color:#cc7832;"&gt;using&lt;/span&gt; System.ComponentModel;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&lt;span style="color:#cc7832;"&gt;using&lt;/span&gt; System.Runtime.InteropServices;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&lt;span style="color:#cc7832;"&gt;using&lt;/span&gt; System.Web.UI;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&lt;span style="color:#cc7832;"&gt;using&lt;/span&gt; System.Web.UI.WebControls;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&lt;span style="color:#cc7832;"&gt;using&lt;/span&gt; System.Web.UI.WebControls.WebParts;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&lt;span style="color:#cc7832;"&gt;using&lt;/span&gt; Microsoft.SharePoint;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&lt;span style="color:#cc7832;"&gt;using&lt;/span&gt; Microsoft.SharePoint.WebControls;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&lt;span style="color:#cc7832;"&gt;namespace&lt;/span&gt; SharePointProject1.TestWebPart&lt;/p&gt;    &lt;p style="margin:0px;"&gt;{&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; [ToolboxItemAttribute(&lt;span style="color:#cc7832;"&gt;false&lt;/span&gt;)]&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:#cc7832;"&gt;public&lt;/span&gt; &lt;span style="color:#cc7832;"&gt;class&lt;/span&gt; &lt;span style="color:#ffc66d;"&gt;TestWebPart&lt;/span&gt; : WebPart&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; {&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:#cc7832;"&gt;public&lt;/span&gt; TestWebPart()&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:#cc7832;"&gt;protected&lt;/span&gt; &lt;span style="color:#cc7832;"&gt;override&lt;/span&gt; &lt;span style="color:#cc7832;"&gt;void&lt;/span&gt; CreateChildControls()&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:#cc7832;"&gt;base&lt;/span&gt;&lt;span style="font-weight:normal;"&gt;.CreateChildControls();&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Controls.Add(&lt;span style="color:#cc7832;"&gt;new&lt;/span&gt; Label() { Text = &lt;span style="color:#a5c25c;"&gt;&amp;quot;My Test SharePoint 2010 Web Part (Hello World)!&amp;quot;&lt;/span&gt; });&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:#cc7832;"&gt;protected&lt;/span&gt; &lt;span style="color:#cc7832;"&gt;override&lt;/span&gt; &lt;span style="color:#cc7832;"&gt;void&lt;/span&gt; RenderContents(HtmlTextWriter writer)&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:#cc7832;"&gt;base&lt;/span&gt;&lt;span style="font-weight:normal;"&gt;.RenderContents(writer);&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; }&lt;/p&gt;    &lt;p style="margin:0px;"&gt;}&lt;/p&gt; &lt;/div&gt;   &lt;p&gt;The only line of code I added here was the line to add the label and set its text.&amp;#160; Everything else came from the template.&lt;/p&gt;  &lt;h5&gt;Describing the Web Part&lt;/h5&gt;  &lt;p&gt;In my WSS3 post, this is where I talked about building a .webpart file.&amp;#160; Well, you don’t need to worry about that any more as Visual Studio creates it for you.&amp;#160; Here is what solution explorer looks like after you add your first web part.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.dotnetmafia.com/blogs/dotnettipoftheday/WebPartIntroSolutionExplorer2_43F31C0A.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="WebPartIntroSolutionExplorer2" border="0" alt="WebPartIntroSolutionExplorer2" src="http://www.dotnetmafia.com/blogs/dotnettipoftheday/WebPartIntroSolutionExplorer2_thumb_7C9DC617.png" width="213" height="244" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;As you can see the .webpart file is already there as well as an elements.xml file for a feature to deploy the web part.&amp;#160; The WSS3 post went on to talk about all of the things you need to know about building a feature.&amp;#160; This is still good stuff to know, but its already taken care of for you.&amp;#160; If you want to edit the basic feature information, just open it up in solution explorer and you get a nice new interface that looks like this.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.dotnetmafia.com/blogs/dotnettipoftheday/WebPartIntroFeatureEditor_152D6368.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="WebPartIntroFeatureEditor" border="0" alt="WebPartIntroFeatureEditor" src="http://www.dotnetmafia.com/blogs/dotnettipoftheday/WebPartIntroFeatureEditor_thumb_14C13073.png" width="390" height="227" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;I’m not going to waste space showing you the insides of the files it creates for you.&amp;#160; Just know it creates them for you and it saves you a ton of time.&lt;/p&gt;  &lt;h5&gt;Deploying via Solution Package&lt;/h5&gt;  &lt;p&gt;In my WSS3 post, I explained how to create a cab.ddf and manifest.xml file.&amp;#160; Well guest what?&amp;#160; That is taken care of for you now as well.&amp;#160; The Package.package file in the solution explorer provides another nice editor which allows you to choose with files go into the package.&amp;#160; You don’t have to keep track of a thing any more, it just builds the package and takes care of it for you.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.dotnetmafia.com/blogs/dotnettipoftheday/WebPartIntroPackageEditor_42425036.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="WebPartIntroPackageEditor" border="0" alt="WebPartIntroPackageEditor" src="http://www.dotnetmafia.com/blogs/dotnettipoftheday/WebPartIntroPackageEditor_thumb_2CE49ACE.png" width="391" height="191" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;At this point, Visual Studio has created the .webpart file, the feature, and the solution package.&amp;#160; However, we still need to deploy it and if we could debug it that would be even cooler right?&amp;#160; Take a look at our new options in the Build menu.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.dotnetmafia.com/blogs/dotnettipoftheday/WebPartIntroBuildMenu_4574381E.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="WebPartIntroBuildMenu" border="0" alt="WebPartIntroBuildMenu" src="http://www.dotnetmafia.com/blogs/dotnettipoftheday/WebPartIntroBuildMenu_thumb_59F9879C.png" width="244" height="192" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;   &lt;p&gt;We can build and rebuild just like any other project, but notice the options for Deploy, Package, and Retract.&amp;#160; Those are all SharePoint functions.&amp;#160; In this case, I want to deploy my solution.&amp;#160; Choosing deploy, we see the following in the output window.&lt;/p&gt;    &lt;p&gt;------ Build started: Project: SharePointProject1, Configuration: Debug Any CPU ------     &lt;br /&gt;&amp;#160; SharePointProject1 -&amp;gt; C:\Code\SharePointProject1\bin\Debug\SharePointProject1.dll      &lt;br /&gt;&amp;#160; Successfully created package at: C:\Code\SharePointProject1\bin\Debug\SharePointProject1.wsp      &lt;br /&gt;------ Deploy started: Project: SharePointProject1, Configuration: Debug Any CPU ------      &lt;br /&gt;Active Deployment Configuration: Default      &lt;br /&gt;Run Pre-Deployment Command:      &lt;br /&gt;&amp;#160; Skipping deployment step because a pre-deployment command is not specified.      &lt;br /&gt;Recycle IIS Application Pool:      &lt;br /&gt;&amp;#160; Recycling IIS application pool &amp;#39;SharePoint - 80&amp;#39;...      &lt;br /&gt;Retract Solution:      &lt;br /&gt;&amp;#160; Skipping package retraction because no matching package on the server was found.      &lt;br /&gt;Add Solution:      &lt;br /&gt;&amp;#160; Adding solution &amp;#39;SharePointProject1.wsp&amp;#39;...      &lt;br /&gt;&amp;#160; Deploying solution &amp;#39;SharePointProject1.wsp&amp;#39;...      &lt;br /&gt;Activate Features:      &lt;br /&gt;&amp;#160; Activating feature &amp;#39;Feature1&amp;#39; ...      &lt;br /&gt;Run Post-Deployment Command:      &lt;br /&gt;&amp;#160; Skipping deployment step because a post-deployment command is not specified.      &lt;br /&gt;========== Build: 1 succeeded or up-to-date, 0 failed, 0 skipped ==========      &lt;br /&gt;========== Deploy: 1 succeeded, 0 failed, 0 skipped ==========      &lt;br /&gt;&lt;/p&gt;    &lt;p&gt;From inspecting the text of the log, you can see that Visual Studio compiled, created a package, reset my Application Pool, Added the Solution, Deployed the Solution, and activated the feature.&amp;#160; Let’s check SharePoint and see if it’s really there.&lt;/p&gt;    &lt;p&gt;&lt;a href="http://www.dotnetmafia.com/blogs/dotnettipoftheday/WebPartIntroGallery_728924EC.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="WebPartIntroGallery" border="0" alt="WebPartIntroGallery" src="http://www.dotnetmafia.com/blogs/dotnettipoftheday/WebPartIntroGallery_thumb_2B33CEFA.png" width="514" height="23" /&gt;&lt;/a&gt; &lt;/p&gt;    &lt;p&gt;Checking the web part gallery, we see our .webpart file.&amp;#160; Let’s add it to a page and see how it looks.&amp;#160; Edit any page and use add a web part and you will see the new interface for choosing a web part.&amp;#160; It puts it in the Custom group by default.&lt;/p&gt;    &lt;p&gt;&lt;a href="http://www.dotnetmafia.com/blogs/dotnettipoftheday/WebPartIntroAddWebPart_5FD42B35.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="WebPartIntroAddWebPart" border="0" alt="WebPartIntroAddWebPart" src="http://www.dotnetmafia.com/blogs/dotnettipoftheday/WebPartIntroAddWebPart_thumb_0A405C53.png" width="553" height="306" /&gt;&lt;/a&gt; &lt;/p&gt;    &lt;p&gt;One you hit and add finish editing, we see the web part working correctly.&lt;/p&gt;    &lt;p&gt;&lt;a href="http://www.dotnetmafia.com/blogs/dotnettipoftheday/WebPartIntroWorking_30A23F9E.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="WebPartIntroWorking" border="0" alt="WebPartIntroWorking" src="http://www.dotnetmafia.com/blogs/dotnettipoftheday/WebPartIntroWorking_thumb_173A3C64.png" width="555" height="211" /&gt;&lt;/a&gt; &lt;/p&gt; &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;You have to admit this is quite a bit easier than deploying a web part in SharePoint 3.&amp;#160; What if you want to debug though?&amp;#160; No problem.&amp;#160; Just set a breakpoint and choose debug from the build menu like you would any other type of project.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.dotnetmafia.com/blogs/dotnettipoftheday/WebPartIntroBreakPointHit_5DB72C6C.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="WebPartIntroBreakPointHit" border="0" alt="WebPartIntroBreakPointHit" src="http://www.dotnetmafia.com/blogs/dotnettipoftheday/WebPartIntroBreakPointHit_thumb_48597704.png" width="563" height="76" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;As I mentioned earlier, if you are familiar with SharePoint 2010, this is nothing new to you.&amp;#160; However, my point today is for those who shied away from SharePoint in the past because the development experience was far from optimal.&amp;#160; Try it for yourself and you will see how easy it is to get up and running with your code.&amp;#160; Even with pictures this post is half the size of the WSS3 post.&amp;#160; That’s because it really is just that easy.&amp;#160; I really think Visual Studio 2010 will open the way for a new round of SharePoint developers.&amp;#160; Try it out today.&lt;/p&gt;&lt;img src="http://www.dotnetmafia.com/aggbug.aspx?PostID=2748" width="1" height="1"&gt;</description><category domain="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/tags/SharePoint/default.aspx">SharePoint</category><category domain="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/tags/Feature/default.aspx">Feature</category><category domain="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/tags/WebPart/default.aspx">WebPart</category><category domain="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/tags/Solution/default.aspx">Solution</category><category domain="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/tags/Visual+Studio+2010/default.aspx">Visual Studio 2010</category><category domain="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/tags/SharePoint+2010/default.aspx">SharePoint 2010</category><category domain="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/tags/SPC09/default.aspx">SPC09</category><category domain="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/tags/SP2010+Beta/default.aspx">SP2010 Beta</category></item><item><title>Using the PropertyBag element to assign properties to Items in SharePoint 2010</title><link>http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/2010/02/11/using-the-propertybag-element-to-assign-properties-to-items-in-sharepoint-2010.aspx</link><pubDate>Thu, 11 Feb 2010 21:43:28 GMT</pubDate><guid isPermaLink="false">ceb7fe2a-c56b-4d85-99e6-8dd548580538:2730</guid><dc:creator>CoreyRoth</dc:creator><slash:comments>5</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.dotnetmafia.com/blogs/dotnettipoftheday/rsscomments.aspx?PostID=2730</wfw:commentRss><comments>http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/2010/02/11/using-the-propertybag-element-to-assign-properties-to-items-in-sharepoint-2010.aspx#comments</comments><description>&lt;p&gt;When the NDA dropped, I mentioned how you could use the new &lt;a href="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/2009/10/20/writing-to-the-property-bag-using-caml-in-sp2010.aspx"&gt;PropertyBag&lt;/a&gt; element in a feature to write values into the property bag of a site.&amp;#160; I already thought that was going to be incredibly useful, but it turns out the power of this new element is even greater than I first realized.&amp;#160; At the time I noticed that the PropertyBag element had a Url attribute but I didn’t understand what it was used for at the time.&amp;#160; Now I do.&amp;#160; As I mentioned yesterday, I have been experimenting with exporting sites as .wsp files and I discovered that you can use this to write to properties of an existing list item.&amp;#160; Take a look at the following example, that I grabbed from the file it generated when exporting my site.&amp;#160; This applies properties to default.master.&lt;/p&gt;  &lt;div style="font-family:consolas;background:black;color:white;font-size:13pt;font-weight:bold;"&gt;   &lt;p style="margin:0px;"&gt;&amp;lt;?&lt;span style="color:#cc7832;"&gt;xml&lt;/span&gt; &lt;span style="color:silver;"&gt;version&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;1.0&lt;/span&gt;&amp;quot; &lt;span style="color:silver;"&gt;encoding&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;utf-8&lt;/span&gt;&amp;quot;?&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;lt;&lt;span style="color:#cc7832;"&gt;Elements&lt;/span&gt; &lt;span style="color:silver;"&gt;xmlns&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;http://schemas.microsoft.com/sharepoint/&lt;/span&gt;&amp;quot;&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160; &amp;lt;&lt;span style="color:#cc7832;"&gt;PropertyBag&lt;/span&gt; &lt;span style="color:silver;"&gt;Url&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;_catalogs/masterpage/default.master&lt;/span&gt;&amp;quot; &lt;span style="color:silver;"&gt;ParentType&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;File&lt;/span&gt;&amp;quot; &lt;span style="color:silver;"&gt;RootWebOnly&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;FALSE&lt;/span&gt;&amp;quot; &lt;span style="color:silver;"&gt;HyperlinkBaseUrl&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;http://sp2010/Test&lt;/span&gt;&amp;quot; &lt;span style="color:silver;"&gt;xmlns&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;http://schemas.microsoft.com/sharepoint/&lt;/span&gt;&amp;quot;&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;span style="color:#cc7832;"&gt;Property&lt;/span&gt; &lt;span style="color:silver;"&gt;Name&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;vti_charset&lt;/span&gt;&amp;quot; &lt;span style="color:silver;"&gt;Value&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;utf-8&lt;/span&gt;&amp;quot; /&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;span style="color:#cc7832;"&gt;Property&lt;/span&gt; &lt;span style="color:silver;"&gt;Name&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;vti_candeleteversion&lt;/span&gt;&amp;quot; &lt;span style="color:silver;"&gt;Value&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;true&lt;/span&gt;&amp;quot; /&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;span style="color:#cc7832;"&gt;Property&lt;/span&gt; &lt;span style="color:silver;"&gt;Name&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;vti_modifiedby&lt;/span&gt;&amp;quot; &lt;span style="color:silver;"&gt;Value&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;SHAREPOINT\system&lt;/span&gt;&amp;quot; /&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;span style="color:#cc7832;"&gt;Property&lt;/span&gt; &lt;span style="color:silver;"&gt;Name&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;vti_cachedneedsrewrite&lt;/span&gt;&amp;quot; &lt;span style="color:silver;"&gt;Value&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;false&lt;/span&gt;&amp;quot; /&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;span style="color:#cc7832;"&gt;Property&lt;/span&gt; &lt;span style="color:silver;"&gt;Name&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;vti_level&lt;/span&gt;&amp;quot; &lt;span style="color:silver;"&gt;Value&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;1&lt;/span&gt;&amp;quot; /&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;span style="color:#cc7832;"&gt;Property&lt;/span&gt; &lt;span style="color:silver;"&gt;Name&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;vti_rtag&lt;/span&gt;&amp;quot; &lt;span style="color:silver;"&gt;Value&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;rt:7CDE768C-FCE1-46E8-9165-FDA564419D9A@00000000002&lt;/span&gt;&amp;quot; /&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;span style="color:#cc7832;"&gt;Property&lt;/span&gt; &lt;span style="color:silver;"&gt;Name&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;vti_cachedbodystyle&lt;/span&gt;&amp;quot; &lt;span style="color:silver;"&gt;Value&lt;/span&gt;=&amp;quot;&lt;span style="color:silver;"&gt;&amp;amp;lt;&lt;/span&gt;&lt;span style="color:#a5c25c;"&gt;body scroll=&lt;/span&gt;&lt;span style="color:silver;"&gt;&amp;amp;quot;&lt;/span&gt;&lt;span style="color:#a5c25c;"&gt;yes&lt;/span&gt;&lt;span style="color:silver;"&gt;&amp;amp;quot;&lt;/span&gt;&lt;span style="color:#a5c25c;"&gt; onload=&lt;/span&gt;&lt;span style="color:silver;"&gt;&amp;amp;quot;&lt;/span&gt;&lt;span style="color:#a5c25c;"&gt;BLOCKED SCRIPTif (typeof(_spBodyOnLoadWrapper) != &amp;#39;undefined&amp;#39;) _spBodyOnLoadWrapper();&lt;/span&gt;&lt;span style="color:silver;"&gt;&amp;amp;quot;&amp;amp;gt;&lt;/span&gt;&amp;quot; /&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;span style="color:#cc7832;"&gt;Property&lt;/span&gt; &lt;span style="color:silver;"&gt;Name&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;vti_title&lt;/span&gt;&amp;quot; &lt;span style="color:silver;"&gt;Value&lt;/span&gt;=&amp;quot;&lt;span style="color:silver;"&gt;&amp;amp;lt;&lt;/span&gt;&lt;span style="color:#a5c25c;"&gt;asp:ContentPlaceHolder id=&lt;/span&gt;&lt;span style="color:silver;"&gt;&amp;amp;quot;&lt;/span&gt;&lt;span style="color:#a5c25c;"&gt;PlaceHolderPageTitle&lt;/span&gt;&lt;span style="color:silver;"&gt;&amp;amp;quot;&lt;/span&gt;&lt;span style="color:#a5c25c;"&gt; runat=&lt;/span&gt;&lt;span style="color:silver;"&gt;&amp;amp;quot;&lt;/span&gt;&lt;span style="color:#a5c25c;"&gt;server&lt;/span&gt;&lt;span style="color:silver;"&gt;&amp;amp;quot;&lt;/span&gt;&lt;span style="color:#a5c25c;"&gt;/&lt;/span&gt;&lt;span style="color:silver;"&gt;&amp;amp;gt;&lt;/span&gt;&amp;quot; /&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;span style="color:#cc7832;"&gt;Property&lt;/span&gt; &lt;span style="color:silver;"&gt;Name&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;UIVersion&lt;/span&gt;&amp;quot; &lt;span style="color:silver;"&gt;Value&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;3&lt;/span&gt;&amp;quot; /&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;span style="color:#cc7832;"&gt;Property&lt;/span&gt; &lt;span style="color:silver;"&gt;Name&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;vti_parserversion&lt;/span&gt;&amp;quot; &lt;span style="color:silver;"&gt;Value&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;14.0.0.4536&lt;/span&gt;&amp;quot; /&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;span style="color:#cc7832;"&gt;Property&lt;/span&gt; &lt;span style="color:silver;"&gt;Name&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;vti_cachedhastheme&lt;/span&gt;&amp;quot; &lt;span style="color:silver;"&gt;Value&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;false&lt;/span&gt;&amp;quot; /&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;span style="color:#cc7832;"&gt;Property&lt;/span&gt; &lt;span style="color:silver;"&gt;Name&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;vti_foldersubfolderitemcount&lt;/span&gt;&amp;quot; &lt;span style="color:silver;"&gt;Value&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;0&lt;/span&gt;&amp;quot; /&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;span style="color:#cc7832;"&gt;Property&lt;/span&gt; &lt;span style="color:silver;"&gt;Name&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;vti_hasdefaultcontent&lt;/span&gt;&amp;quot; &lt;span style="color:silver;"&gt;Value&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;true&lt;/span&gt;&amp;quot; /&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;span style="color:#cc7832;"&gt;Property&lt;/span&gt; &lt;span style="color:silver;"&gt;Name&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;vti_setuppathversion&lt;/span&gt;&amp;quot; &lt;span style="color:silver;"&gt;Value&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;4&lt;/span&gt;&amp;quot; /&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;span style="color:#cc7832;"&gt;Property&lt;/span&gt; &lt;span style="color:silver;"&gt;Name&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;vti_metainfoversion&lt;/span&gt;&amp;quot; &lt;span style="color:silver;"&gt;Value&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;2&lt;/span&gt;&amp;quot; /&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;span style="color:#cc7832;"&gt;Property&lt;/span&gt; &lt;span style="color:silver;"&gt;Name&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;vti_canmaybeedit&lt;/span&gt;&amp;quot; &lt;span style="color:silver;"&gt;Value&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;true&lt;/span&gt;&amp;quot; /&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;span style="color:#cc7832;"&gt;Property&lt;/span&gt; &lt;span style="color:silver;"&gt;Name&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;vti_generator&lt;/span&gt;&amp;quot; &lt;span style="color:silver;"&gt;Value&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;Microsoft SharePoint&lt;/span&gt;&amp;quot; /&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;span style="color:#cc7832;"&gt;Property&lt;/span&gt; &lt;span style="color:silver;"&gt;Name&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;vti_etag&lt;/span&gt;&amp;quot; &lt;span style="color:silver;"&gt;Value&lt;/span&gt;=&amp;quot;&lt;span style="color:silver;"&gt;&amp;amp;quot;&lt;/span&gt;&lt;span style="color:#a5c25c;"&gt;{7CDE768C-FCE1-46E8-9165-FDA564419D9A},2&lt;/span&gt;&lt;span style="color:silver;"&gt;&amp;amp;quot;&lt;/span&gt;&amp;quot; /&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;span style="color:#cc7832;"&gt;Property&lt;/span&gt; &lt;span style="color:silver;"&gt;Name&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;vti_cachedtitle&lt;/span&gt;&amp;quot; &lt;span style="color:silver;"&gt;Value&lt;/span&gt;=&amp;quot;&lt;span style="color:silver;"&gt;&amp;amp;lt;&lt;/span&gt;&lt;span style="color:#a5c25c;"&gt;asp:ContentPlaceHolder id=&lt;/span&gt;&lt;span style="color:silver;"&gt;&amp;amp;quot;&lt;/span&gt;&lt;span style="color:#a5c25c;"&gt;PlaceHolderPageTitle&lt;/span&gt;&lt;span style="color:silver;"&gt;&amp;amp;quot;&lt;/span&gt;&lt;span style="color:#a5c25c;"&gt; runat=&lt;/span&gt;&lt;span style="color:silver;"&gt;&amp;amp;quot;&lt;/span&gt;&lt;span style="color:#a5c25c;"&gt;server&lt;/span&gt;&lt;span style="color:silver;"&gt;&amp;amp;quot;&lt;/span&gt;&lt;span style="color:#a5c25c;"&gt;/&lt;/span&gt;&lt;span style="color:silver;"&gt;&amp;amp;gt;&lt;/span&gt;&amp;quot; /&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;span style="color:#cc7832;"&gt;Property&lt;/span&gt; &lt;span style="color:silver;"&gt;Name&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;vti_contentversion&lt;/span&gt;&amp;quot; &lt;span style="color:silver;"&gt;Value&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;0&lt;/span&gt;&amp;quot; /&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;span style="color:#cc7832;"&gt;Property&lt;/span&gt; &lt;span style="color:silver;"&gt;Name&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;vti_progid&lt;/span&gt;&amp;quot; &lt;span style="color:silver;"&gt;Value&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;SharePoint.WebPartPage.Document&lt;/span&gt;&amp;quot; /&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;span style="color:#cc7832;"&gt;Property&lt;/span&gt; &lt;span style="color:silver;"&gt;Name&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;vti_timelastmodified&lt;/span&gt;&amp;quot; &lt;span style="color:silver;"&gt;Value&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;2010-02-10T16:12:34Z&lt;/span&gt;&amp;quot; /&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;span style="color:#cc7832;"&gt;Property&lt;/span&gt; &lt;span style="color:silver;"&gt;Name&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;vti_sourcecontrolversion&lt;/span&gt;&amp;quot; &lt;span style="color:silver;"&gt;Value&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;V1.0&lt;/span&gt;&amp;quot; /&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;span style="color:#cc7832;"&gt;Property&lt;/span&gt; &lt;span style="color:silver;"&gt;Name&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;vti_timecreated&lt;/span&gt;&amp;quot; &lt;span style="color:silver;"&gt;Value&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;2010-02-10T16:12:34Z&lt;/span&gt;&amp;quot; /&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;span style="color:#cc7832;"&gt;Property&lt;/span&gt; &lt;span style="color:silver;"&gt;Name&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;vti_folderitemcount&lt;/span&gt;&amp;quot; &lt;span style="color:silver;"&gt;Value&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;0&lt;/span&gt;&amp;quot; /&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;span style="color:#cc7832;"&gt;Property&lt;/span&gt; &lt;span style="color:silver;"&gt;Name&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;vti_docstoretype&lt;/span&gt;&amp;quot; &lt;span style="color:silver;"&gt;Value&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;0&lt;/span&gt;&amp;quot; /&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;span style="color:#cc7832;"&gt;Property&lt;/span&gt; &lt;span style="color:silver;"&gt;Name&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;ContentTypeId&lt;/span&gt;&amp;quot; &lt;span style="color:silver;"&gt;Value&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;0x01010500CE60EDAC92E8C942BFB82AF8AFC4A5F4&lt;/span&gt;&amp;quot; /&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;span style="color:#cc7832;"&gt;Property&lt;/span&gt; &lt;span style="color:silver;"&gt;Name&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;vti_filesize&lt;/span&gt;&amp;quot; &lt;span style="color:silver;"&gt;Value&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;29039&lt;/span&gt;&amp;quot; /&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;span style="color:#cc7832;"&gt;Property&lt;/span&gt; &lt;span style="color:silver;"&gt;Name&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;vti_sourcecontrolcookie&lt;/span&gt;&amp;quot; &lt;span style="color:silver;"&gt;Value&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;fp_internal&lt;/span&gt;&amp;quot; /&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;span style="color:#cc7832;"&gt;Property&lt;/span&gt; &lt;span style="color:silver;"&gt;Name&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;vti_author&lt;/span&gt;&amp;quot; &lt;span style="color:silver;"&gt;Value&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;SHAREPOINT\system&lt;/span&gt;&amp;quot; /&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;span style="color:#cc7832;"&gt;Property&lt;/span&gt; &lt;span style="color:silver;"&gt;Name&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;vti_setuppath&lt;/span&gt;&amp;quot; &lt;span style="color:silver;"&gt;Value&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;global\default.master&lt;/span&gt;&amp;quot; /&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;span style="color:#cc7832;"&gt;Property&lt;/span&gt; &lt;span style="color:silver;"&gt;Name&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;vti_metatags&lt;/span&gt;&amp;quot; &lt;span style="color:silver;"&gt;Value&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;GENERATOR Microsoft\ SharePoint progid SharePoint.WebPartPage.Document HTTP-EQUIV=Content-Type text/&lt;/span&gt;&lt;span style="color:#a5c25c;"&gt;html;\ charset=utf-8 HTTP-EQUIV=Expires 0&lt;/span&gt;&amp;quot; /&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;span style="color:#cc7832;"&gt;Property&lt;/span&gt; &lt;span style="color:silver;"&gt;Name&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;vti_replid&lt;/span&gt;&amp;quot; &lt;span style="color:silver;"&gt;Value&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;rid:{7CDE768C-FCE1-46E8-9165-FDA564419D9A}&lt;/span&gt;&amp;quot; /&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;span style="color:#cc7832;"&gt;Property&lt;/span&gt; &lt;span style="color:silver;"&gt;Name&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;vti_docstoreversion&lt;/span&gt;&amp;quot; &lt;span style="color:silver;"&gt;Value&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;2&lt;/span&gt;&amp;quot; /&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;span style="color:#cc7832;"&gt;Property&lt;/span&gt; &lt;span style="color:silver;"&gt;Name&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;vti_cachedcustomprops&lt;/span&gt;&amp;quot; &lt;span style="color:silver;"&gt;Value&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;vti_title&lt;/span&gt;&amp;quot; /&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160; &amp;lt;/&lt;span style="color:#cc7832;"&gt;PropertyBag&lt;/span&gt;&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;lt;/&lt;span style="color:#cc7832;"&gt;Elements&lt;/span&gt;&amp;gt;&lt;/p&gt; &lt;/div&gt;   &lt;p&gt;As you can see the relative URL of the file is specified along with a separate attribute indicating the base URL it came from.&amp;#160; You also need to specify something for &lt;em&gt;ParentType&lt;/em&gt;.&amp;#160; For now I know that you can specify &lt;em&gt;File&lt;/em&gt; or &lt;em&gt;Folder&lt;/em&gt; there (although I am guessing it might take Item or something like that).&lt;/p&gt;  &lt;p&gt;Now for the most part all of these properties listed above are internal properties that you would never care about setting, but as you guessed you can specify your own properties as well.&amp;#160; The export site as template functionality does its best to export everything it can and that includes internal properties as well.&amp;#160; This is pretty interesting feature and I think it could remove the need to write a lot of code in my future.&amp;#160; &lt;a href="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/2009/05/12/code-samples-from-our-caml-vs-api-talk-at-tulsa-sharepoint-interest-group.aspx"&gt;@SPKyle&lt;/a&gt; might still want to write code to store properties on list items, but I will take a pass. :)&lt;/p&gt;&lt;img src="http://www.dotnetmafia.com/aggbug.aspx?PostID=2730" width="1" height="1"&gt;</description><category domain="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/tags/SharePoint/default.aspx">SharePoint</category><category domain="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/tags/Feature/default.aspx">Feature</category><category domain="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/tags/CAML/default.aspx">CAML</category><category domain="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/tags/SharePoint+2010/default.aspx">SharePoint 2010</category><category domain="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/tags/SP2010+Beta/default.aspx">SP2010 Beta</category></item><item><title>Feature Versioning and Upgrades in SharePoint 2010</title><link>http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/2010/01/04/feature-versioning-and-upgrades-in-sharepoint-2010.aspx</link><pubDate>Mon, 04 Jan 2010 21:30:48 GMT</pubDate><guid isPermaLink="false">ceb7fe2a-c56b-4d85-99e6-8dd548580538:1467</guid><dc:creator>CoreyRoth</dc:creator><slash:comments>7</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.dotnetmafia.com/blogs/dotnettipoftheday/rsscomments.aspx?PostID=1467</wfw:commentRss><comments>http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/2010/01/04/feature-versioning-and-upgrades-in-sharepoint-2010.aspx#comments</comments><description>&lt;p&gt;One new feature in SharePoint 2010 is the ability to version and upgrade features.&amp;#160; I haven’t seen a lot of people talking about it yet, so I thought I would take a few minutes to talk about it today.&amp;#160; It’s an interesting new feature and I’ll be curious to see how much people use it and when.&amp;#160; The versioning aspect of features is interesting, but specifically what we’ll be talking about today are what kinds of things we can do when we perform a feature upgrade.&amp;#160; Unfortunately, by the time you read all of this, it will probably leave you with more questions than you started with.&amp;#160; You will probably be asking yourself a lot of questions like “well, what happens when I upgrade a feature and it has X in it?”.&lt;/p&gt;  &lt;p&gt;The first thing to know is that SharePoint 2010 makes use of the Version attribute on the Feature element now.&amp;#160; We can then use this version to execute code or do various things in an element manifest.&amp;#160; This is also an easy way to add a new site column to a content type which we’ll talk about in a bit.&amp;#160; It all starts with the &lt;em&gt;UpgradeActions &lt;/em&gt;element in your feature.xml.&amp;#160; It takes a &lt;em&gt;ReceiverAssembly &lt;/em&gt;and &lt;em&gt;ReceiverClass&lt;/em&gt; attribute just like the Feature element takes.&amp;#160; Here is what it would look like.&lt;/p&gt;  &lt;div style="font-family:consolas;background:white;color:black;font-size:10pt;"&gt;   &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;UpgradeActions&lt;/span&gt;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;ReceiverAssembly&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;MyFeatureReceiver, Version=1.0.0.0, Culture=neutral, PublicKeyToken=3e1b35c83d6e53f4&lt;/span&gt;&amp;quot;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;#160; &lt;/span&gt;&lt;span style="color:red;"&gt;ReceiverClass&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;MyFeatureReceiver.MyFeatureReceiver&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;/div&gt;   &lt;p&gt;If you’re not going to be executing custom upgrade action code, you can leave that part out the assembly.&amp;#160; You can then optionally add a &lt;em&gt;VersionRange &lt;/em&gt;that takes &lt;em&gt;BeginVersion &lt;/em&gt;and &lt;em&gt;EndVersion &lt;/em&gt;attributes.&amp;#160; You can specify multiple VersionRange elements to handle upgrades across multiple versions with one file.&amp;#160; You can then specify what you want to occur on the feature upgrade.&amp;#160; &lt;/p&gt;  &lt;div style="font-family:consolas;background:white;color:black;font-size:10pt;"&gt;   &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;VersionRange&lt;/span&gt;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;BeginVersion&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;1.0.0.0&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;EndVersion&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;1.9.9.9&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;/div&gt;   &lt;p&gt;One of the most common things you can do is to specify a separate element manifest file which deploys various things to SharePoint when the solution is upgraded.&amp;#160; This file will have the same syntax as any other elements.xml file you have used.&amp;#160; Here is what that would look like.&lt;/p&gt;  &lt;div style="font-family:consolas;background:white;color:black;font-size:10pt;"&gt;   &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;ApplyElementManifests&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;ElementManifest&lt;/span&gt;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;Location&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;WebPart1\UpgradeManifest.xml&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;/&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;ApplyElementManifests&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;/div&gt;   &lt;p&gt;Another thing you can do is rename a file.&amp;#160; So if you deployed a file called default.aspx and now you want to be called default2.aspx, you can have your upgrade make the change.&amp;#160; I have no idea if it would actually update anything that references the file.&amp;#160; I would guess not, but it’s there to try out if you ever need it.&lt;/p&gt;  &lt;div style="font-family:consolas;background:white;color:black;font-size:10pt;"&gt;   &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;MapFile&lt;/span&gt;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;FromPath&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;OldFilename.aspx&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;ToPath&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;NewFilename.aspx&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt; /&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;/div&gt;   &lt;p&gt;One thing, that is pretty interesting is the ability to add new site columns to an existing content type.&amp;#160; The syntax is pretty similar and it will even push down changes to content types that inherit from it.&amp;#160; Just specify the &lt;em&gt;ContentTypeId&lt;/em&gt;, &lt;em&gt;FieldId&lt;/em&gt;, and whether or not you want it to &lt;em&gt;PushDown&lt;/em&gt;.&amp;#160; &lt;/p&gt;  &lt;div style="font-family:consolas;background:white;color:black;font-size:10pt;"&gt;   &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;AddContentTypeField&lt;/span&gt;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;ContentTypeId&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;0x010100F15ADB2FA333AD49848E7E01BC79C9750202&lt;/span&gt;&amp;quot;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:red;"&gt;FieldId&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;{b63c6371-f774-451d-b4fb-5679625fafd5}&lt;/span&gt;&amp;quot;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:red;"&gt;PushDown&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;TRUE&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt; /&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;/div&gt;   &lt;p&gt;The last thing to mention is that, you can execute custom code when a feature is upgrading.&amp;#160; If you have some complex upgrade logic this is the way to go.&amp;#160; It works by overriding the FeatureUpgrading event handling method.&amp;#160; It passes the UpgradeActionName and an IDictionary of parameters.&amp;#160; I’m not going to go into what the code looks like on a feature upgrade today, but I will cover it in a future post soon.&amp;#160; Here is what a complete UpgradeActions element might look like in your feature.xml.&lt;/p&gt;  &lt;div style="font-family:consolas;background:white;color:black;font-size:10pt;"&gt;   &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;UpgradeActions&lt;/span&gt;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;ReceiverAssembly&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;MyFeatureReceiver, Version=1.0.0.0, Culture=neutral, PublicKeyToken=3e1b35c83d6e53f4&lt;/span&gt;&amp;quot;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;#160; &lt;/span&gt;&lt;span style="color:red;"&gt;ReceiverClass&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;MyFeatureReceiver.MyFeatureReceiver&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;VersionRange&lt;/span&gt;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;BeginVersion&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;1.0.0.0&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;EndVersion&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;1.9.9.9&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;ApplyElementManifests&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;ElementManifest&lt;/span&gt;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;Location&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;WebPart1\UpgradeManifest.xml&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;/&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;ApplyElementManifests&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;AddContentTypeField&lt;/span&gt;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;ContentTypeId&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;0x010100F15ADB2FA333AD49848E7E01BC79C9750202&lt;/span&gt;&amp;quot;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:red;"&gt;FieldId&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;{b63c6371-f774-451d-b4fb-5679625fafd5}&lt;/span&gt;&amp;quot;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:red;"&gt;PushDown&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;TRUE&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt; /&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;CustomUpgradeAction&lt;/span&gt;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;Name&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;MyCustomUpgradeAction&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Parameters&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Parameter&lt;/span&gt;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;Name&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;Parameter1&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;Some Value&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Parameter&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Parameter&lt;/span&gt;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;Name&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;Parameter2&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;Some Other Value&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Parameter&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Parameters&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;CustomUpgradeAction&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;MapFile&lt;/span&gt;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;FromPath&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;OldFilename.aspx&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;ToPath&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;NewFilename.aspx&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt; /&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;#160; &amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;VersionRange&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;UpgradeActions&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;/div&gt;   &lt;p&gt;I’ll be really curious to see how and if people use feature upgrades.&amp;#160; It definitely seems like it can be useful, but I don’t know if I will want to have my feature broken out into a bunch of different manifest files when I start having lots of upgrades.&lt;/p&gt;&lt;img src="http://www.dotnetmafia.com/aggbug.aspx?PostID=1467" width="1" height="1"&gt;</description><category domain="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/tags/SharePoint/default.aspx">SharePoint</category><category domain="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/tags/Feature/default.aspx">Feature</category><category domain="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/tags/SharePoint+2010/default.aspx">SharePoint 2010</category><category domain="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/tags/SP2010+Beta/default.aspx">SP2010 Beta</category></item><item><title>Writing to the Property Bag using CAML in SP2010</title><link>http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/2009/10/20/writing-to-the-property-bag-using-caml-in-sp2010.aspx</link><pubDate>Tue, 20 Oct 2009 15:51:32 GMT</pubDate><guid isPermaLink="false">ceb7fe2a-c56b-4d85-99e6-8dd548580538:1005</guid><dc:creator>CoreyRoth</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.dotnetmafia.com/blogs/dotnettipoftheday/rsscomments.aspx?PostID=1005</wfw:commentRss><comments>http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/2009/10/20/writing-to-the-property-bag-using-caml-in-sp2010.aspx#comments</comments><description>&lt;p&gt;There are a number of feature improvements in SharePoint 2010.&amp;#160; They have made many changes which allow you to do more with features when they are activated or upgraded.&amp;#160; One of the new features it the ability to write to the property bag.&amp;#160; To do this we just make use of the new &lt;em&gt;PropertyBag &lt;/em&gt;element in your elements.xml file.&amp;#160; Here is what a file might look like that writes to the property bag.&amp;#160; As usual, I’ll point out that features or syntax could change.&lt;/p&gt;  &lt;div style="font-family:consolas;background:black;color:white;font-size:13pt;font-weight:bold;"&gt;   &lt;p style="margin:0px;"&gt;&amp;lt;&lt;span style="color:#cc7832;"&gt;Elements&lt;/span&gt; &lt;span style="color:silver;"&gt;xmnlns&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;http://schemas.microsoft.com/sharepoint/&lt;/span&gt;&amp;quot;&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160; &amp;lt;&lt;span style="color:#cc7832;"&gt;PropertyBag&lt;/span&gt; &lt;span style="color:silver;"&gt;ParentType&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;Web&lt;/span&gt;&amp;quot;&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;span style="color:#cc7832;"&gt;Property&lt;/span&gt; &lt;span style="color:silver;"&gt;Name&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;MyCustomProperty1&lt;/span&gt;&amp;quot; &lt;span style="color:silver;"&gt;Value&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;some value&lt;/span&gt;&amp;quot; /&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;span style="color:#cc7832;"&gt;Property&lt;/span&gt; &lt;span style="color:silver;"&gt;Name&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;MyCustomProperty2&lt;/span&gt;&amp;quot; &lt;span style="color:silver;"&gt;Value&lt;/span&gt;=&amp;quot;&lt;span style="color:#a5c25c;"&gt;4&lt;/span&gt;&amp;quot; /&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160; &amp;lt;/&lt;span style="color:#cc7832;"&gt;PropertyBag&lt;/span&gt;&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;lt;/&lt;span style="color:#cc7832;"&gt;Elements&lt;/span&gt;&amp;gt;&lt;/p&gt; &lt;/div&gt;   &lt;p&gt;I will point out that whatever type you initialize the property with, it will become semi-permanent.&amp;#160; Currently, this applies for integers and date/time.&amp;#160; If you try to save another type in an existing property later, you will end up with a null value being stored. This will save me some time in the future as I have had to write code to do this in the past.&lt;/p&gt;&lt;img src="http://www.dotnetmafia.com/aggbug.aspx?PostID=1005" width="1" height="1"&gt;</description><category domain="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/tags/SharePoint/default.aspx">SharePoint</category><category domain="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/tags/Feature/default.aspx">Feature</category><category domain="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/tags/SharePoint+2010/default.aspx">SharePoint 2010</category><category domain="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/tags/SPC09/default.aspx">SPC09</category><category domain="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/tags/SP2010+Beta/default.aspx">SP2010 Beta</category></item></channel></rss>