<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>G&#039;Day MOSSuMS</title>
	<atom:link href="http://vspug.com/mossms/feed/" rel="self" type="application/rss+xml" />
	<link>http://vspug.com/mossms</link>
	<description>Just another VSPUG - Virtual SharePoint User Group weblog</description>
	<lastBuildDate>Thu, 23 Jul 2009 08:34:00 +0000</lastBuildDate>
	<generator>http://vspug.com?v=2.8.6</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Filtered Lookups Across Content Types</title>
		<link>http://vspug.com/mossms/2009/07/23/</link>
		<comments>http://vspug.com/mossms/2009/07/23/#comments</comments>
		<pubDate>Thu, 23 Jul 2009 08:34:00 +0000</pubDate>
		<dc:creator>mikes</dc:creator>
		
		<guid isPermaLink="false"></guid>
		<description><![CDATA[
Creative Use of Calculated Site Columns
This might not have direct application to your situation, but hopefully if will give you some ideas to try&#8230;

The RequirementI recently had to provide a filtered drop down for a content type in a list containing two content types.
The content types were &#8211; &#39;Actions&#39; (parent: Task) and &#39;Deliverables&#39; (parent: Item).
The [...]]]></description>
			<content:encoded><![CDATA[<p><span class="nobr1"><span style="font-family:Helvetica;"><span style="color:green;"><em><strong></strong></em></span></span></span></p>
<p><span class="nobr1"><span style="font-family:Helvetica;"><span style="color:green;"><span style="font-size:10pt;font-family:Helvetica;"><span style="font-size:10pt;font-family:Helvetica;"><span style="color:#000000;"><span class="nobr1"><span style="font-family:Helvetica;"><span style="color:green;"><em><strong>Creative Use of Calculated Site Columns</strong></em></span></span></span></span></span></span></span></span></span></p>
<p><span class="nobr1"><span style="font-family:Helvetica;"><span style="color:green;"><span style="font-size:10pt;font-family:Helvetica;"><span style="font-size:10pt;font-family:Helvetica;"><span style="color:#000000;">This might not have direct application to your situation, but hopefully if will give you some ideas to try&#8230;</span><br /></span></span></span></span></span></p>
<p><a href="http://www.sevensigma.com.au/" title="SevenSigma Business Solutions"><img border="0" src="/oldweblogfiles/mossms/sevensig_2D00_logo.jpg" alt="  " /></a></p>
<p><strong><br />The Requirement<br /></strong><br />I recently had to provide a filtered drop down for a content type in a list containing two content types.</p>
<p>The content types were &#8211; &#39;Actions&#39; (parent: Task) and &#39;Deliverables&#39; (parent: Item).</p>
<p>The filtered drop down needed to be on &#39;Action&#39;, to link it to a &lsquo;Deliverable&rsquo; by a lookup column (named &#39;Deliverable&#39;).</p>
<p>This all worked, apart from the fact that you can not only associate a &#39;Deliverable&#39; to an &#39;Action&#39;, but also another &#39;Action&#39; to an &#39;Action&#39;, or even the same &#39;Action&#39;&#8230; you can see the rather nasty potential circular reference issues there!</p>
<p><a href="/oldweblogfiles/mossms/01DropListExampleWrong.jpg"><img border="0" src="/oldweblogfiles/mossms/01DropListExampleWrong.jpg" alt="  " /></a></p>
<p>The above screen shot shows two &lsquo;Actions&rsquo; in the first page of the &lsquo;Deliverable&rsquo; drop down &ndash; Business Process Tool Integration and Calendar view for leave, that we don&rsquo;t want there.</p>
<p>Now, of course, we could add two separate lists for each content type, and a content query web part to combine them.</p>
<p>But in this case the user wanted the full list abilities, particularly views, across both content types, and no more items on the default menus, or messing about with web parts, audiences, security etc.</p>
<p><strong>The Solution<br /></strong><br />I had to scratch my head for a few minutes, but this is the quick and dirty fix I came up with.</p>
<p>Add a new &#39;calculated&#39; site column called &#39;DeliverableTitle&#39;, with the formula defined as: =IF([Content Type]=&quot;Deliverable&quot;,[Title],&quot;&quot;)</p>
<p><a href="/oldweblogfiles/mossms/02SiteColDeliverableTitle.jpg"><img border="0" src="/oldweblogfiles/mossms/02SiteColDeliverableTitle.jpg" alt="  " /></a></p>
<p>As this references the same inherited &#39;Title&#39; field, we&#39;ll only see it in a list when the content type is &#39;Deliverable&#39;. You can make it hidden on any content types if you want, or just never show it in any views.</p>
<p><a href="/oldweblogfiles/mossms/03ContTypeColHiddenExample.jpg"><img border="0" src="/oldweblogfiles/mossms/03ContTypeColHiddenExample.jpg" alt="  " /></a></p>
<p>Now, as I mentioned, these two content types are already in a list called &#39;Deliverables / Actions&#39;.</p>
<p>If you don&#39;t have that already:</p>
<p>&nbsp;&nbsp; 1.&nbsp;Add your two content types, &#39;Action&#39; and &#39;Deliverable&#39;, without any lookups or calculated fields:</p>
<p>&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;<a href="/oldweblogfiles/mossms/04ContTypeActionBeforeLookupCol.jpg"><img border="0" src="/oldweblogfiles/mossms/04ContTypeActionBeforeLookupCol.jpg" alt="  " /></a>&nbsp;</p>
<p>&nbsp;&nbsp; 2.&nbsp;Put the &#39;DeliverableTitle&#39; calculated site column on the &#39;Deliverable&#39; content type.</p>
<p>&nbsp;&nbsp;&nbsp; &nbsp; <a href="/oldweblogfiles/mossms/05ContTypeDeliverableAfterCalcCol.jpg"><img border="0" src="/oldweblogfiles/mossms/05ContTypeDeliverableAfterCalcCol.jpg" alt="  " /></a></p>
<p>&nbsp;&nbsp; 3. Put them both on a list that allows management of content types.<br />&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="/oldweblogfiles/mossms/06ListContentTypeManage.jpg"><img border="0" src="/oldweblogfiles/mossms/06ListContentTypeManage.jpg" alt="  " /></a>&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="/oldweblogfiles/mossms/07ListDetails.jpg"><img border="0" src="/oldweblogfiles/mossms/07ListDetails.jpg" alt="  " /></a></p>
<p>We can now create (modify in my case) the lookup site column called &#39;Deliverable&#39;, to get information from the &#39;Deliverables / Actions&#39; column &#39;DeliverableTitle&#39;.</p>
<p><a href="/oldweblogfiles/mossms/08SiteColDeliverableLookup.jpg"><img border="0" src="/oldweblogfiles/mossms/08SiteColDeliverableLookup.jpg" alt="  " /></a></p>
<p>If it wasn&#39;t already on your equivalent of &#39;Action&#39;, put the &#39;Deliverable&#39; lookup site column on the &#39;Action&#39; content type now.</p>
<p><a href="/oldweblogfiles/mossms/09ContTypeActionAfterLookupCol.jpg"><img border="0" src="/oldweblogfiles/mossms/09ContTypeActionAfterLookupCol.jpg" alt="  " /></a></p>
<p>And hey presto, now when adding a new &lsquo;<strong>Action&#39;</strong>, we only ever see &lsquo;Deliverables&rsquo; in the lookup.</p>
<p><a href="/oldweblogfiles/mossms/10DropListExampleCorrect.jpg"><img border="0" src="/oldweblogfiles/mossms/10DropListExampleCorrect.jpg" alt="  " /></a></p>
<p>As can be seen above, the errant <em>Business Process Tool Integration</em> and <em>Calendar view for leave</em> &#39;Actions&#39; are no longer visible in the &lsquo;Deliverables&rsquo; combo box.</p>
<p><strong><br />Potential Gotchas</strong></p>
<p>Of course the usual lookup column issues still exist, such as no control over ordering.</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <em>Aside: Wouldn&#39;t it be nice to be able to point lookups at views, or some other list&nbsp;&#39;filter&#39; &#8211; are you listening Microsoft?!</em></p>
<p>But there is one issue you may encounter &#8211; because of when calculated columns get evaluated, you could see this &lsquo;RENDER FAILED&rsquo; issue with collapsed view groupings:<br />&nbsp;<br /><a href="/oldweblogfiles/mossms/11ViewGroupByCalcErrorExample.jpg"><img border="0" src="/oldweblogfiles/mossms/11ViewGroupByCalcErrorExample.jpg" alt="  " /></a></p>
<p>To fix this, you can either set the Views &lsquo;Group By &#8211; By default &#8211; show groupings:&rsquo; to be &lsquo;Expanded&rsquo;&#8230;</p>
<p><a href="/oldweblogfiles/mossms/12ViewGroupByCalcExample.jpg"><img border="0" src="/oldweblogfiles/mossms/12ViewGroupByCalcExample.jpg" alt="  " /></a></p>
<p>&#8230;or apply this Microsoft&nbsp;Hotfix: <a href="http://support.microsoft.com/kb/952698/en-us"><em>http://support.microsoft.com/kb/952698/en-us</em></a></p>
<p><em>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; You try to render the view of a custom list. When you do this, you may receive the following error message:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Render failed<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; This issue occurs when the following conditions are true:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; The list is grouped by one of the columns.<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; You try to display the sum of all the values of a single column.<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; The list contains more than the limit for the number of columns that have a certain data type.<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; For example, in Windows SharePoint Services 3.0, the limit for the number of columns that have the &quot;float&quot; data type is 12.<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Therefore, this problem occurs when the following conditions are true:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; The list is grouped by one of the columns.<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; You try to display the sum of all the values of a single column.<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; The custom list contains 13 columns that have the &quot;float&quot; data type.</em></p>
<p>Thanks for reading, and I hope this helps those with other <em>curly</em> lookup field issues come up with creative solutions.</p>
<p><span style="font-size:9pt;color:blue;font-family:&#39;Courier New&#39;;mso-fareast-font-family:&#39;Times New Roman&#39;;mso-ansi-language:EN-AU;mso-fareast-language:EN-AU;mso-bidi-language:AR-SA;"><span style="color:#000000;font-family:Arial;"><a href="/oldweblogfiles/mossms/Mossums.bmp"><img border="0" src="/oldweblogfiles/mossms/Mossums.bmp" alt="  " /></a></span></span></p>
<p><span style="font-size:10pt;font-family:Helvetica;"><span class="nobr1"><span style="color:green;font-family:Helvetica;">The end of another <a href="/mossms/default.aspx"><span style="color:#003399;">MOSSuMS</span></a> post</span></span></span></p>
]]></content:encoded>
			<wfw:commentRss>http://vspug.com/mossms/2009/07/23/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Lies, damn lies and software estimates</title>
		<link>http://vspug.com/mossms/2009/07/14/</link>
		<comments>http://vspug.com/mossms/2009/07/14/#comments</comments>
		<pubDate>Wed, 15 Jul 2009 04:33:00 +0000</pubDate>
		<dc:creator>mikes</dc:creator>
		
		<guid isPermaLink="false"></guid>
		<description><![CDATA[BEstimation &#8211; The Best Practices of Software Estimation
We&#39;ve all been bitten by poor estimation, whether by our own hand or someone else&#8217;s.
I estimate 87.3% of estimations are made up on the spot.
I&#39;m not going to cover yet another estimation method or propose top down or bottom up approaches. Suffice to say there are few ways [...]]]></description>
			<content:encoded><![CDATA[<p><span class="nobr1"><span style="font-family:Helvetica;"><span style="color:green;"><em><strong>BEstimation &#8211; The Best Practices of Software Estimation</strong></em></span></span></span></p>
<p><span class="nobr1"><span style="font-family:Helvetica;"><span style="color:green;"><span style="font-size:10pt;font-family:Helvetica;"><span style="font-size:10pt;font-family:Helvetica;"><span style="color:#000000;">We&#39;ve all been bitten by poor estimation, whether by our own hand or someone else&rsquo;s.</span></span></span></span></span></span></p>
<p><span class="nobr1"><span style="font-family:Helvetica;"><span style="color:green;"><span style="font-size:10pt;font-family:Helvetica;"><span style="font-size:10pt;font-family:Helvetica;"><span style="color:#000000;"><span class="nobr1"><span style="font-family:Helvetica;"><span style="color:green;"><em><strong>I estimate 87.3% of estimations are made up on the spot.</strong></em></span></span></span></span></span></span></span></span></span></p>
<p><span class="nobr1"><span style="font-family:Helvetica;"><span style="color:green;"><span style="font-size:10pt;font-family:Helvetica;"><span style="font-size:10pt;font-family:Helvetica;"><span style="color:#000000;">I&#39;m not going to cover yet another estimation method or propose top down or bottom up approaches. Suffice to say there are few ways to estimate a complex or large software project that are little better than &#39;guestimation&#39; or &#39;gut feel&#39;, however much process and technology is thrown at it. As withnessed by the attempt to apply engineering rigour to a field more unlike engineering than just about any other, the result has always been the same&nbsp;<a href="http://en.wikipedia.org/wiki/Software_crisis" title="&#39;Software Crisis&#39;">&#39;Software Crisis&#39;</a>.</span></span></span></span></span></span></p>
<p><span class="nobr1"><span style="font-family:Helvetica;"><span style="color:green;"><span style="font-size:10pt;font-family:Helvetica;"><span style="font-size:10pt;font-family:Helvetica;"><span style="color:#000000;">Please read this great post (<a href="http://sharepointandintranets.wordpress.com/2009/07/04/gantt-charts-or-how-i-learnt-to-stop-worrying-and-love-the-bomb/" title="How I Learned to Stop Worrying and Love the Gantt Chart Bomb">How I Learned to Stop Worrying and Love the&nbsp;Gantt Chart Bomb</a>) for a specific take&nbsp;on the misuse of the evil Gantt Chart.</span></span></span></span></span></span></p>
<p><span class="nobr1"><span style="font-family:Helvetica;"><span style="color:green;"><span style="font-size:10pt;font-family:Helvetica;"><span style="font-size:10pt;font-family:Helvetica;"><span style="color:#000000;">But what I do want to do is highlight some of the pitfalls that businesses, and IT fall into with regard to estimation. Caveat Emptor &ndash; as Baz Luhrmann says, my advice has no basis more reliable than my own meandering experience&hellip; I will dispense this advice now. Oh yes, and wear sunscreen.</span><br /></span></span></span></span></span></p>
<p><a href="http://www.sevensigma.com.au/" title="SevenSigma Business Solutions"><img border="0" src="/oldweblogfiles/mossms/sevensig_2D00_logo.jpg" alt="  " /></a></p>
<p>So here we go, these are the things to adopt as best practice (maybe even estimation &#39;Governance&#39;), and the reasons why:</p>
<p><strong>1.&nbsp;Treat software estimation as a discrete skill.</strong></p>
<p>It doesn&#39;t matter so much if it sits in IT, the Project Office or some other department, but it should be a discreet, recognised and rewarded skill that needs training, mentoring and practice.</p>
<p>Programmers get a degree and years of practice, only to end up as Project Managers, Architects, Analysts and Technical leads. This happens without any formal process. But at least these are seen as specialisations &ndash; estimation itself&nbsp;is just lumped into a skill set they are presumed to have as an innate ability without any education or practice. IT managers (you know who you are) prefer to ignore the fact their own very best software estimate was a leap of faith with more in common with art and social science than programming.</p>
<p>In fact, programmers have a very limited view of what goes into delivering software, beyond the code they write. It is also the case that programmers are often ill suited to these roles, including estimation, but that&#39;s another post.</p>
<p><strong>2.&nbsp;Close the loop.</strong></p>
<p>Feedback. The results of your chosen estimation method must be compared with the project outcome. Do not presume that the people doing the work were too slow, maybe the estimate was wrong? But in reality it is usually other factors that doom projects to being late or an utter failure, well before a single hour has been estimated or a line of code written. A blame free project wash-up is better than hearing it in a series of exit interviews!</p>
<p><strong>3.&nbsp;Do NOT get those who will do the work to estimate it.</strong></p>
<p>This one is a doozey, but most organisations fall into the trap. It seems to make sense to work to your own estimates, but in reality it has significant problems:</p>
<p>a. Junior, inexperienced or just plain shy staff will match&nbsp;an estimate to their perception of what is expected, to peer or to management pressure. They want to make a good impression, so bust a gut (all-nighters anyone?) to meet those estimates. If they do (without major quality issues) they are rewarded for a bad estimate with a future expectation of very&nbsp;low estimates and too much&nbsp;work. If they don&#39;t there is rarely any consideration that their work rate was actually fine, but the estimate was bad. Even if there is, they are still perceived to have failed in part of the &#39;software delivery&#39; process.</p>
<p>b. More wily workhorses will have a better idea of how long it will take, but will always add a fudge factor, but may still not want to rock the boat or loose face. Again they have extra reason to work to that (their) estimate, even if it can, or can&#39;t, be done in half the time.</p>
<p>So what should happen?</p>
<p>Get a skilled software project estimator. Even if they can do the actual work (they probably are, or were, a programmer)&nbsp;they shouldn&#39;t. These mythical beasts&nbsp;will factor in all the things us mortals forget, have equations for normal distributions, research on resourcing levels and matrices on coding effort and complexity we just won&#39;t understand. Developers will have to provide input for them, and that will be an ongoing task during the project, but the programmers won&#39;t come up with the actual impartial numbers.</p>
<p>You will then have a better chance of discovering if the estimate was wrong early on (the dev won&#39;t be backward about saying &#39;you are joking!&#39;), and you will have better feedback afterwards to identify where the process fell down, be it in the project frame, management, estimation, technology, human factors, or software dev. Combining the work and estimate is like changing two variables in an experiment at the same time &ndash; you can&#39;t hope to separate the influences, so you&#39;ll never be able to get good feedback to improve the process.</p>
<p><strong>4.&nbsp;An estimate is costly, so spend it, or don&#39;t estimate at all!</strong></p>
<p>If you aren&#39;t prepared to spend what could turn out to be a significant amount of time and effort investigating a project, you won&#39;t get an estimate worth having. This is a chicken and egg thing &ndash; for anything novel, as software projects tend to be, you have to do a reasonable percentage of the work to have a handle on how long it will take to do it all.</p>
<p>My advice here, if you aren&#39;t going to spend the time and money on a good estimate, is just get started without one. WHAT I hear you cry! Well, why not spend the time on real planning, architecture and design tasks that will inform your timescale anyway? I&#39;ve lost track of the times I&#39;ve given the required&nbsp;estimate, only to be told the delivery date is fixed &ndash; why did we waste each other&#39;s time in that case?</p>
<p><strong>5.&nbsp;Don&#39;t estimate a moving target ,or a mirage.</strong></p>
<p>Sorry about the mixed metaphor there, but there are classes of projects that you just can&#39;t estimate. They are complex, high risk, multi-disciplinary, bleeding edge etc. If it fits the definition of a <a href="http://en.wikipedia.org/wiki/Wicked_problem" title="wicked problem">wicked problem</a>, step back. You&rsquo;re first going to have to get the vision nailed down, get the stakeholders to agree and go through a seemingly never-ending process of meetings, and all project long communication.</p>
<p>I don&#39;t mean projects can&#39;t change and evolve, but you have to have agreement on what the project is first. Shared understanding, leading to&nbsp;shared commitment. <a href="http://www.cognexus.org/" title="Cognexus">Cognexus</a>, Issue Based Information Systems (aka Dialogue Mapping)&nbsp;and <a href="http://compendium.open.ac.uk/" title="Compendium">Compendium</a> can help you here.</p>
<p>And if you have a risk section in your process&nbsp;that&#39;s in the &#39;High&#39; segment overall, you may have to sort those out before you can even consider an estimate. Remember, those risks need to impact the bounds, accuracy or confidence level you give to your estimate</p>
<p>But even after all that, you may have to accept that a project just isn&#39;t &quot;estimatable&quot; to any worthwhile&nbsp;degree of certainty.</p>
<p><strong>6.&nbsp;Don&#39;t deliver an estimate in double figures.</strong></p>
<p>This statement might sound weird at first, but match the scale of the estimate to the figures given. I would expect estimates like 3 days, 1 week, 7 months, 1 year. If you are doing anything that isn&#39;t production line, I would argue you can&#39;t estimate to any greater level of accuracy. If someone presents you with an estimate of &#39;34 man-days&#39;, throw it back. If they hit that it will be a fluke, or worst a carefully orchestrated conspiracy.</p>
<p>Likewise for your confidence level &ndash; not that I&#39;ve ever seen a process where this is much more than a guess, so I generally don&#39;t like them, but try to ensure any figures match your capability to calculate those bounds.</p>
<p>My preference is to couch the estimate in the appropriate units to indicate your level of confidence, and give a relative scale if more detail is needed, rather than a figure.</p>
<p>&nbsp;</p>
<p><strong>Conclusion</strong></p>
<p>What&#39;s all this got to do with SharePoint? Well, SharePoint provides a powerful but complex platform &ndash; it can be used to leverage your solution, or it can sink you in a world of XML and customisations. It requires rare skills and developer discipline across a wide range of technical areas. So it&#39;s a risk factor all in itself and can tip a problem into the &#39;wicked&#39; space, making estimation at best wildly inaccurate.</p>
<p>I hope I&#39;ve triggered some estimation d&eacute;j&agrave;-vu with these &#39;best practices&#39;. Everything I&#39;ve read on estimation tends to focus on a method or process, and ignores the human element. In software as in any endeavour, you ignore that at your peril. Work with human behaviour, don&#39;t ignore or fight against it. So to summarise:</p>
<p>Educate, train, mentor&nbsp;and reward people for improving their estimation skills.</p>
<p>Perform &#39;no blame&#39;&nbsp;wash-up that aim to improve&nbsp;ALL aspects of the project that will result in improved estimates.</p>
<p>Promote estimation as a discreet job or&nbsp;skill set&nbsp;that is not part of, and does not lead on to,&nbsp;performing the task.</p>
<p>Don&#39;t ask for quick estimates if the task isn&#39;t quick&nbsp; &#8211; if you can&#39;t estimate it, don&#39;t force some poor snap to gamble that they can.</p>
<p>If the project is a fluid&nbsp;mass of politics or technical complexity, solve those issues first.</p>
<p>And even then, remember sometimes you have to start on the journey to know if and when you can get to the destination. Software is not yet, and probably never will be, like engineering with it&#39;s anchor in the physical world.</p>
<p>Use units people can relate to.</p>
<p>And dance.</p>
<p><span style="font-size:9pt;color:blue;font-family:&#39;Courier New&#39;;mso-fareast-font-family:&#39;Times New Roman&#39;;mso-ansi-language:EN-AU;mso-fareast-language:EN-AU;mso-bidi-language:AR-SA;"><span style="color:#000000;font-family:Arial;"><a href="/oldweblogfiles/mossms/Mossums.bmp"><img border="0" src="/oldweblogfiles/mossms/Mossums.bmp" alt="  " /></a></span></span></p>
<p><span style="font-size:10pt;font-family:Helvetica;"><span class="nobr1"><span style="color:green;font-family:Helvetica;">The end of another <a href="/mossms/default.aspx"><span style="color:#003399;">MOSSuMS</span></a> post</span></span></span></p>
]]></content:encoded>
			<wfw:commentRss>http://vspug.com/mossms/2009/07/14/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Code Monkey Hates SharePoint</title>
		<link>http://vspug.com/mossms/2009/02/23/</link>
		<comments>http://vspug.com/mossms/2009/02/23/#comments</comments>
		<pubDate>Tue, 24 Feb 2009 04:00:00 +0000</pubDate>
		<dc:creator>mikes</dc:creator>
		
		<guid isPermaLink="false"></guid>
		<description><![CDATA[The SharePoint Developer Maturity Model. 
The other &#8216;MS&#8217; has a problem. Those gnarly developers that write your software on the smell off an oily Pizza Box emerge from a four day MOSS training course and sware (and I quote) &#8220;I don&#8217;t care what they told you, I&#8217;m never going to do SharePoint development.&#8221;
As Jeremy Thake&#8217;s [...]]]></description>
			<content:encoded><![CDATA[<p><span class="nobr1"><span style="font-family:Helvetica;"><span style="color:green;"><em><strong>The SharePoint Developer Maturity Model. </strong></em></span></span></span></p>
<p><span class="nobr1"><span style="font-family:Helvetica;"><span style="color:green;"><span style="font-size:10pt;font-family:Helvetica;"><span style="font-size:10pt;font-family:Helvetica;"><span style="color:#000000;">The other &lsquo;MS&rsquo; has a problem. Those gnarly developers that write your software on the smell off an oily Pizza Box emerge from a four day MOSS training course and sware (and I quote) &ldquo;I don&rsquo;t care what they told you, I&rsquo;m never going to do SharePoint development.&rdquo;<br /></span><br /></span></span></span></span></span><a href="http://www.sevensigma.com.au/" title="SevenSigma Business Solutions"><img border="0" src="/oldweblogfiles/mossms/sevensig_2D00_logo.jpg" alt="  " /></a></p>
<p><span style="font-size:10pt;font-family:Helvetica;">As Jeremy Thake&rsquo;s <a href="http://wss.made4the.net/archive/2009/02/15/the-sharepoint-implementation-market-needs-to-grow-up.aspx" title="Grow Up, SharePoint">excellent blog post</a> has already covered, Microsoft just threw in the towel when it came to documenting and supporting the product for us SharePoint developers. And the community had to take up the slack (and a heartfelt thankyou to everyone who contributes).</p>
<p></span><span style="font-size:10pt;font-family:Helvetica;">But that&rsquo;s not the core issue here. It&rsquo;s one of positioning. In a <a href="/mossms/archive/2009/02/10/the-server-revolution.aspx" title="Server Revolution">previous post</a>&nbsp;I asked the open question of where SharePoint is heading. And that&rsquo;s the rub. Nobody knows (and my guess is even MS has a light hand on the tiller, waiting to steer it down the next big wave). And who will they support best for SharePoint 14 and beyond?</p>
<p></span><span style="font-size:10pt;font-family:Helvetica;">Back to <a href="http://www.youtube.com/watch?v=v4Wy7gRGgeA" title="Code Monkey Video">Code Monkey</a>. He saw the MS features and framework not as something to leverage, but as a straight jacket &ndash; to him the fact he didn&rsquo;t have to code something that came OOTB meant he had to re-write it to his liking first (and I won&rsquo;t go into the mess that results).</p>
<p></span><span style="font-size:10pt;font-family:Helvetica;">In another example, an experienced (and very good) systems support guy went on the SP admin course. But afterwards he still often refused to do things through the SharePoint admin UI &ndash; he changed IIS directly. And therefore sometimes things broke when SP didn&rsquo;t find what it was expecting. He knew how to do it as he used to, and now in SharePoint, but didn&rsquo;t trust or feel comfortable enough with the product.</p>
<p></span><span style="font-size:10pt;font-family:Helvetica;">So beware who you send on that training course &ndash; they may not want to be a SharePointer, them might just want more Fritos. And my experience has been some of the most technically minded and able find it hardest to adjust.</p>
<p></span><span style="font-size:10pt;font-family:Helvetica;">The &lsquo;tongue in cheek&rsquo; solution? Buy them some&nbsp;Mountain Dew&nbsp;and get those you want to &lsquo;up-skill&rsquo; to answer this short&nbsp;questionnaire before handing over your money and risking unintentional damage (or <a href="http://www.cleverworkarounds.com/2008/06/27/how-to-sabotage-your-sharepoint-projects" title="SharePoint Saboteur">outright sabotage</a> ) in your SharePoint deployments:</p>
<p></span></p>
<p><span style="font-size:10pt;font-family:Helvetica;">&nbsp; 1. If your Car breaks down, do you first:</span> </p>
<p><span style="font-size:10pt;font-family:Helvetica;">a. Call the RAC/AAA<br /></span><span style="font-size:10pt;font-family:Helvetica;">b. Phone a friend<br /></span><span style="font-size:10pt;font-family:Helvetica;">c. Get you wife to walk to the nearest garage<br /></span><span style="font-size:10pt;font-family:Helvetica;">d. Make death threats to the dealer<br /></span><span style="font-size:10pt;font-family:Helvetica;">e. Try to fix it yourself<br /></span><span style="font-size:10pt;font-family:Helvetica;">f.&nbsp; Cannibalise the burnt out truck you just passed for parts</span></p>
<p><span style="font-size:10pt;font-family:Helvetica;"></span></p>
<p><span style="font-size:10pt;font-family:Helvetica;">&nbsp; 2. If someone asks you for directions, is you first answer most likely:</span> </p>
<p><span style="font-size:10pt;font-family:Helvetica;">a. Don&rsquo;t shoot me &ndash; here, take my wallet/wife/kids<br /></span><span style="font-size:10pt;font-family:Helvetica;">b. I&rsquo;ll draw you a map<br /></span><span style="font-size:10pt;font-family:Helvetica;">c. First left, 3<sup>rd</sup> on the right, straight through the lights, hang a U, then&hellip;<br /></span><span style="font-size:10pt;font-family:Helvetica;">d. Why do you want to go there &ndash; Luigis is cheaper &amp; does better seafood.<br /></span><span style="font-size:10pt;font-family:Helvetica;">e. You really shouldn&rsquo;t have come this way, you should have started north of the bridge and stuck to the expressway&hellip;<br />f.&nbsp; </span><span style="font-size:10pt;font-family:Helvetica;">I&rsquo;m going to the Overclockers convention as well &ndash; just follow me.</span></p>
<p><span style="font-size:10pt;font-family:Helvetica;"></span></p>
<p><span style="font-size:10pt;font-family:Helvetica;">&nbsp; 3. When programming your VCR, do you most often find:</span> </p>
<p><span style="font-size:10pt;font-family:Helvetica;">a. You get it wrong<br /></span><span style="font-size:10pt;font-family:Helvetica;">b. You get it right, but sometimes turn the power off at the wall afterwards<br /></span><span style="font-size:10pt;font-family:Helvetica;">c. You don&rsquo;t have a VCR, you use a PVR, iPOD or Portable HD instead.<br /></span><span style="font-size:10pt;font-family:Helvetica;">d. Your Media Centre PC didn&rsquo;t come out of standby<br /></span><span style="font-size:10pt;font-family:Helvetica;">e. You sent the VCRs RS232 codes without a parity bit<br />f.&nbsp; </span><span style="font-size:10pt;font-family:Helvetica;">Even the Ubuntu distro is more l33t than Vista. What&rsquo;s a VCR?</span></p>
<p><span style="font-size:10pt;font-family:Helvetica;"></span></p>
<p><span style="font-size:10pt;font-family:Helvetica;">&nbsp; 4. You find classes are:</span> </p>
<p><span style="font-size:10pt;font-family:Helvetica;">a. No longer a relevant social characterisation, or are just an excuse to charge more for&nbsp;an&nbsp;inch of legroom<br /></span><span style="font-size:10pt;font-family:Helvetica;">b. That&rsquo;s something to do with code isn&rsquo;t it?<br /></span><span style="font-size:10pt;font-family:Helvetica;">c. A core OO concept, but often too many levels of inheritance and complexity are used.<br /></span><span style="font-size:10pt;font-family:Helvetica;">d. Often sealed in SharePoint which makes some tasks difficult or inelegant<br /></span><span style="font-size:10pt;font-family:Helvetica;">e. Better with multiple inheritance.<br /></span><span style="font-size:10pt;font-family:Helvetica;">f.&nbsp; We should be using Ruby on Rails.</span></p>
<p><span style="font-size:10pt;font-family:Helvetica;"></span></p>
<p><span style="font-size:10pt;font-family:Helvetica;"></span></p>
<p><span style="font-size:10pt;font-family:Helvetica;">The Results:</p>
<p>M</span><span style="font-size:10pt;font-family:Helvetica;">ostly a and b &ndash; should probably stick to the SP UI. Are you sure they are developers?<br /></span><span style="font-size:10pt;font-family:Helvetica;">Mostly c and d &ndash; about in the sweet spot of technical eagerness versus pragmatism. Ideal SharePoint Developer or Serial Killer.<br /></span><span style="font-size:10pt;font-family:Helvetica;">Mostly e and f&nbsp; &ndash; do not under any circumstances either talk to this person at a party, or send them on a SharePoint course.</p>
<p></span><span style="font-size:10pt;font-family:Helvetica;">And for the record, here are my answers (draw your own conclusions!): 1.e (but fail so go with a), 2.c, 3.b, 4.d.</span></p>
<p><span style="font-size:10pt;font-family:Helvetica;">NB:&nbsp;Alternatively a <a href="http://www.cleverworkarounds.com/2008/11/17/root-causes-of-communication-fragmentation-learning-styles-and-behavioural-styles/" title="Learning and behavioural styles">&#39;key&nbsp;learning styles&#39; and &#39;dominant personality trait&#39;</a> survey will also suffice, plus help you build a well balanced team! Maybe these should be a core OOTB site definition survey&nbsp;in the next MOSS?</span></p>
<p><span style="font-size:9pt;color:blue;font-family:&#39;Courier New&#39;;mso-fareast-font-family:&#39;Times New Roman&#39;;mso-ansi-language:EN-AU;mso-fareast-language:EN-AU;mso-bidi-language:AR-SA;"><span style="color:#000000;font-family:Arial;"><a href="/oldweblogfiles/mossms/Mossums.bmp"><img border="0" src="/oldweblogfiles/mossms/Mossums.bmp" alt="  " /></a></span></span></p>
<p><span style="font-size:10pt;font-family:Helvetica;"><span class="nobr1"><span style="color:green;font-family:Helvetica;">The end of another <a href="/mossms/default.aspx"><span style="color:#003399;">MOSSuMS</span></a> post</span></span></span></p>
]]></content:encoded>
			<wfw:commentRss>http://vspug.com/mossms/2009/02/23/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Server Revolution</title>
		<link>http://vspug.com/mossms/2009/02/09/</link>
		<comments>http://vspug.com/mossms/2009/02/09/#comments</comments>
		<pubDate>Tue, 10 Feb 2009 04:23:00 +0000</pubDate>
		<dc:creator>mikes</dc:creator>
		
		<guid isPermaLink="false"></guid>
		<description><![CDATA[Moving the server from the data-centre to the desktop. 


Lifting my gaze from the code for a few seconds, one of the things that has always stuck me with SharePoint is the similarity its impact has on businesses to the PC Revolution. The same arguments for and against central control, the same immaturity of tools, [...]]]></description>
			<content:encoded><![CDATA[<p><span class="nobr1"><span style="font-family:Helvetica;"><span style="COLOR:green;"><em><strong>Moving the server from the data-centre to the desktop. </strong></em></span></span></span></p>
<p><a href="http://www.sevensigma.com.au" title="SevenSigma Business Solutions"><img border="0" src="/oldweblogfiles/mossms/sevensig_2D00_logo.jpg" alt="  " /></a></p>
<p><p><span style="font-size:10pt;font-family:Gautami;"></span></p>
<p><span style="font-size:10pt;font-family:Gautami;">Lifting my gaze from the code for a few seconds, one of the things that has always stuck me with SharePoint is the similarity its impact has on businesses to the PC Revolution. The same arguments for and against central control, the same immaturity of tools, the same gist of &lsquo;user empowerment&rsquo;, and the same fears and demarcation lines are surfacing.</span></p>
<p><span style="font-size:10pt;font-family:Gautami;"></span></p>
<p><span style="font-size:10pt;font-family:Gautami;">I like analogies &ndash; they provide a framework and a perspective from which to form a critique. I remember way-back-when we had an illuminating student task to analyse and categorise businesses using metaphors, not just their numbers. So let look at this through the lens of that long past but ongoing Desktop Revolution&#8230;</span></p>
<p><span style="font-size:10pt;font-family:Gautami;"></span></p>
<p><span style="font-size:10pt;font-family:Gautami;">In the SharePoint case the thing that stands out to me as very <i style="mso-bidi-font-style:normal;">different</i> to the PC revolution is its breadth&ndash; there is no one &lsquo;killer app&rsquo; or enabling technology driving this. It&rsquo;s more a confluence of established concepts, some from MS, but many more from the wider web ecosystem.</span></p>
<p><span style="font-size:10pt;font-family:Gautami;"></span></p>
<p><span style="font-size:10pt;font-family:Gautami;">Hopefully this starts a discussion &ndash; where are we headed?</span></p>
<p><span style="font-size:10pt;font-family:Gautami;"></span></p>
<ul style="margin-top:0cm;">
<li style="margin:0cm 0cm 0pt;mso-list:l0 level1 lfo1;tab-stops:list 36.0pt;"><span style="font-size:10pt;font-family:Gautami;">Will SharePoint and its successors become a de faco standard on the Server, as the IBM PC and DOS did on the desktop?</span></li>
<li style="margin:0cm 0cm 0pt;mso-list:l0 level1 lfo1;tab-stops:list 36.0pt;"><span style="font-size:10pt;font-family:Gautami;">Will Microsoft mature its tools to better manage SharePoint customisation, deployment and management?</span></li>
<li style="margin:0cm 0cm 0pt;mso-list:l0 level1 lfo1;tab-stops:list 36.0pt;"><span style="font-size:10pt;font-family:Gautami;">Will that help the data centre wrestle control of important definitions, data and processes back from the end users?</span></li>
<li style="margin:0cm 0cm 0pt;mso-list:l0 level1 lfo1;tab-stops:list 36.0pt;"><span style="font-size:10pt;font-family:Gautami;">Will developers get left out in the cold, as users do more and more, or will there be a backlash due to a lack of rigour?</span></li>
<li style="margin:0cm 0cm 0pt;mso-list:l0 level1 lfo1;tab-stops:list 36.0pt;"><span style="font-size:10pt;font-family:Gautami;">Will a &lsquo;killer app&rsquo; appear on the SharePoint server, as the spreadsheet did on the desktop?</span></li>
<li style="margin:0cm 0cm 0pt;mso-list:l0 level1 lfo1;tab-stops:list 36.0pt;"><span style="font-size:10pt;font-family:Gautami;">If so, will there be a VisiCalc/Lout123/Excell style progression?</span></li>
<li style="margin:0cm 0cm 0pt;mso-list:l0 level1 lfo1;tab-stops:list 36.0pt;"><span style="font-size:10pt;font-family:Gautami;">Because of its broad scope, will it only really succeed in a few niche areas?</span></li>
<li style="margin:0cm 0cm 0pt;mso-list:l0 level1 lfo1;tab-stops:list 36.0pt;"><span style="font-size:10pt;font-family:Gautami;">Is MOSS simply a glimpse of the possibilities and challenges in the coming &lsquo;Server Revolution&rsquo;?</span></li>
</ul>
<p><span style="font-size:10pt;font-family:Gautami;"></span></p>
<p><span style="font-size:10pt;font-family:Gautami;">Let me know your thoughts, especially any futurists out there!</span></p>
<p><span style="font-size:10pt;font-family:Gautami;"></span></p>
<p><span style="font-size:10pt;font-family:Gautami;"></span></p>
<p><span style="font-size:10pt;font-family:Gautami;">NB: As a good example of the discussions the future of SharePoint kicks off, here&rsquo;s Paul&rsquo;s take on the direction of the nascent external data access API: </span><span style="font-size:10pt;font-family:Gautami;"><a href="http://www.cleverworkarounds.com/2008/03/25/sharepoint-external-storage-api-crushing-my-dream" title="The Guru of Governance">http://www.cleverworkarounds.com/2008/03/25/sharepoint-external-storage-api-crushing-my-dream</a></span></p>
<p><p>&nbsp;</p>
<p><span style="font-size:9pt;color:blue;font-family:&#39;Courier New&#39;;mso-fareast-font-family:&#39;Times New Roman&#39;;mso-ansi-language:EN-AU;mso-fareast-language:EN-AU;mso-bidi-language:AR-SA;"><span style="color:#000000;font-family:Arial;"><a href="/oldweblogfiles/mossms/Mossums.bmp"><img border="0" src="/oldweblogfiles/mossms/Mossums.bmp" alt="  " /></a></span></span></p>
</p>
<p><span style="font-size:10pt;font-family:Gautami;"><span class="nobr1"><span style="font-family:Helvetica;COLOR:green;">The end of another <a href="/mossms/default.aspx">MOSSuMS</a> post</span></span></span></p>
]]></content:encoded>
			<wfw:commentRss>http://vspug.com/mossms/2009/02/09/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Multiple Projects, one WSPBuilder Solution</title>
		<link>http://vspug.com/mossms/2009/02/09/</link>
		<comments>http://vspug.com/mossms/2009/02/09/#comments</comments>
		<pubDate>Mon, 09 Feb 2009 07:28:00 +0000</pubDate>
		<dc:creator>mikes</dc:creator>
		
		<guid isPermaLink="false"></guid>
		<description><![CDATA[When two (projects) become&#160;one (sharepoint solution). 

When I originally used WSPBuilder, after a great deal of messing about, I discovered there was a bug that prevented the &#39;BuildSolution&#39; switch&#160;from working. That was a pity, as for everthing else &#34;it did exactly what it said on the can&#34;.
I recently revisited it, and I&#39;m pleased to report [...]]]></description>
			<content:encoded><![CDATA[<p><span class="nobr1"><span style="font-family:Helvetica;"><span style="COLOR:green;"><em><strong>When two (projects) become&nbsp;one (sharepoint solution). </strong></em></span></span></span></p>
<p><a href="http://www.sevensigma.com.au" title="SevenSigma Business Solutions"><img border="0" src="/oldweblogfiles/mossms/sevensig_2D00_logo.jpg" alt="  " /></a></p>
<p>When I originally used WSPBuilder, after a great deal of messing about, I discovered there was a bug that prevented the &#39;BuildSolution&#39; switch&nbsp;from working. That was a pity, as for everthing else &quot;it did exactly what it said on the can&quot;.</p>
<p>I recently revisited it, and I&#39;m pleased to report it now&nbsp;works a treat for multiple projects! You have to place then under the same &#39;WSPBuilder solution&#39; folder in your file system, but using source control bindings this isn&#39;t a big issue.</p>
<p>You can find the WSPBuilder site&nbsp;<a href="http://www.codeplex.com/wspbuilder/Wiki/View.aspx" title="WSPBuilder on CodePlex">here</a> &#8211; just download and run&nbsp;the latest Extensions for Visual Studio installer from <a href="http://www.codeplex.com/wspbuilder/Release/ProjectReleases.aspx?ReleaseId=16820" title="WSPBuilder downloads">here</a>, which includes the command line version as well.</p>
<p>Below is the config file I use:</p>
<p><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;">&lt;?</span><span style="font-size:8pt;color:#a31515;font-family:&#39;Courier New&#39;;">xml</span><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;"> </span><span style="font-size:8pt;color:red;font-family:&#39;Courier New&#39;;">version</span><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;">=</span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;">&quot;<span style="color:blue;">1.0</span>&quot;<span style="color:blue;"> </span><span style="color:red;">encoding</span><span style="color:blue;">=</span>&quot;<span style="color:blue;">utf-8</span>&quot;<span style="color:blue;"> ?&gt;<br /></span></span><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;">&lt;</span><span style="font-size:8pt;color:#a31515;font-family:&#39;Courier New&#39;;">configuration</span><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;">&gt;<br /></span><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;"><span style="">&nbsp; </span>&lt;</span><span style="font-size:8pt;color:#a31515;font-family:&#39;Courier New&#39;;">appSettings</span><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;">&gt;<br /></span><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;">&nbsp;</span><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp; </span>&lt;!&#8211;</span><span style="font-size:8pt;color:green;font-family:&#39;Courier New&#39;;"> EXISTING SETTINGS </span><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;">&#8211;&gt;<br /></span><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp; </span>&lt;!&#8211;</span><span style="font-size:8pt;color:green;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp; </span>As in C:Program FilesWSPToolsWSPBuilderExtensionsWSPBuilder.exe.config<span style="">&nbsp; </span></span><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;">&#8211;&gt;<br /></span><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp; </span>&lt;</span><span style="font-size:8pt;color:#a31515;font-family:&#39;Courier New&#39;;">add</span><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;"> </span><span style="font-size:8pt;color:red;font-family:&#39;Courier New&#39;;">key</span><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;">=</span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;">&quot;<span style="color:blue;">BuildDDF</span>&quot;<span style="color:blue;"> </span><span style="color:red;">value</span><span style="color:blue;">=</span>&quot;<span style="color:blue;">true</span>&quot;<span style="color:blue;"> /&gt;<br /></span></span><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp; </span>&lt;!&#8211;</span><span style="font-size:8pt;color:green;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp; </span>As in C:Program FilesWSPToolsWSPBuilderExtensionsWSPBuilder.exe.config, but value changed from 3 to 4 for more feedback </span><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;">&#8211;&gt;<br /></span><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp; </span>&lt;</span><span style="font-size:8pt;color:#a31515;font-family:&#39;Courier New&#39;;">add</span><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;"> </span><span style="font-size:8pt;color:red;font-family:&#39;Courier New&#39;;">key</span><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;">=</span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;">&quot;<span style="color:blue;">TraceLevel</span>&quot;<span style="color:blue;"> </span><span style="color:red;">value</span><span style="color:blue;">=</span>&quot;<span style="color:blue;">4</span>&quot;<span style="color:blue;"> /&gt;<br /></span></span><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp; </span>&lt;!&#8211;</span><span style="font-size:8pt;color:green;font-family:&#39;Courier New&#39;;"> MIKE&#39;S EXTRA SETTINGS </span><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;">&#8211;&gt;<br /></span><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp; </span>&lt;!&#8211;</span><span style="font-size:8pt;color:green;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp; </span>The following key will ensure we build in debug mode. </span><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;">&#8211;&gt;<br /></span><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp; </span>&lt;</span><span style="font-size:8pt;color:#a31515;font-family:&#39;Courier New&#39;;">add</span><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;"> </span><span style="font-size:8pt;color:red;font-family:&#39;Courier New&#39;;">key</span><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;">=</span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;">&quot;<span style="color:blue;">BuildMode</span>&quot;<span style="color:blue;"> </span><span style="color:red;">value</span><span style="color:blue;">=</span>&quot;<span style="color:blue;">Debug</span>&quot;<span style="color:blue;"> /&gt;<br /></span></span><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp; </span>&lt;!&#8211;</span><span style="font-size:8pt;color:green;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp; </span>The following key will override the wsp default of files in dev GAC dir going to the gac, and those in the bin dir going to the iis site bin directory. </span><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;">&#8211;&gt;<br /></span><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp; </span>&lt;</span><span style="font-size:8pt;color:#a31515;font-family:&#39;Courier New&#39;;">add</span><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;"> </span><span style="font-size:8pt;color:red;font-family:&#39;Courier New&#39;;">key</span><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;">=</span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;">&quot;<span style="color:blue;">DeploymentTarget</span>&quot;<span style="color:blue;"> </span><span style="color:red;">value</span><span style="color:blue;">=</span>&quot;<span style="color:blue;">GAC</span>&quot;<span style="color:blue;"> /&gt;<br /></span></span><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp; </span>&lt;!&#8211;</span><span style="font-size:8pt;color:green;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp; </span>The following key will create a full 12 hive in your projects, so use only if you need all deployable folders </span><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;">&#8211;&gt;<br /></span><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp; </span>&lt;!&#8211;</span><span style="font-size:8pt;color:green;font-family:&#39;Courier New&#39;;">&lt;add key=&quot;Createfolders&quot; value=&quot;True&quot; /&gt; </span><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;">&#8211;&gt;<br /></span><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp; </span>&lt;!&#8211;</span><span style="font-size:8pt;color:green;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp; </span>Don&#39;t delete intermediate files such as the manifest.xml (don&#39;t add these files to source control) </span><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;">&#8211;&gt;<br /></span><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp; </span>&lt;</span><span style="font-size:8pt;color:#a31515;font-family:&#39;Courier New&#39;;">add</span><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;"> </span><span style="font-size:8pt;color:red;font-family:&#39;Courier New&#39;;">key</span><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;">=</span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;">&quot;<span style="color:blue;">Cleanup</span>&quot;<span style="color:blue;"> </span><span style="color:red;">value</span><span style="color:blue;">=</span>&quot;<span style="color:blue;">False</span>&quot;<span style="color:blue;"> /&gt;<br /></span></span><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp; </span>&lt;!&#8211;</span><span style="font-size:8pt;color:green;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp; </span>New name proposed for current BuildSolution key </span><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;">&#8211;&gt;<br /></span><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp; </span>&lt;!&#8211;</span><span style="font-size:8pt;color:green;font-family:&#39;Courier New&#39;;">&lt;add key=&quot;BuildMultipleProjects&quot; value=&quot;True&quot; /&gt; </span><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;">&#8211;&gt;<br /></span><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp; </span>&lt;!&#8211;</span><span style="font-size:8pt;color:green;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp; </span>Build all projects into one solution </span><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;">&#8211;&gt;<br /></span><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp; </span>&lt;</span><span style="font-size:8pt;color:#a31515;font-family:&#39;Courier New&#39;;">add</span><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;"> </span><span style="font-size:8pt;color:red;font-family:&#39;Courier New&#39;;">key</span><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;">=</span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;">&quot;<span style="color:blue;">BuildSolution</span>&quot;<span style="color:blue;"> </span><span style="color:red;">value</span><span style="color:blue;">=</span>&quot;<span style="color:blue;">True</span>&quot;<span style="color:blue;"> /&gt;<br /></span></span><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp; </span>&lt;!&#8211;</span><span style="font-size:8pt;color:green;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp; </span>Solution path &#8211; this tells WSP builder to step back one level for the master (startup/build) project to the main &#39;wsp solution&#39;<br /></span><span style="font-size:8pt;color:green;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>folder, and build all projects within that folder to one wsp (cab). By default this wsp will take the name of the folder it sits<br /></span><span style="font-size:8pt;color:green;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>in, or use the WSPName key (see below) to give your own name. Unfortunately this dictates a rigid project folder structure, so it<br /></span><span style="font-size:8pt;color:green;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>is advised that projects used in more than one wsp solution solutions are subsequently &#39;referenced/linked&#39; in source control to<br /></span><span style="font-size:8pt;color:green;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>match this client build structure rather than physically copied. They can then be &#39;project referenced&#39; in Visual Studio, which<br /></span><span style="font-size:8pt;color:green;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>leaves the option of branching them completely if required. Although this promotes re-use, care should be taken as it often<br /></span><span style="font-size:8pt;color:green;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>indicates a new wsp is required to prevent inadvertent upgrades or clashes with already installed features in other solutions.<br /></span><span style="font-size:8pt;color:green;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>If it is a variation, consider branching or copying files (especially feature.xml to ensure guid is used), dll referencing of base<br /></span><span style="font-size:8pt;color:green;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>feature and inheritance.<span style="">&nbsp; </span></span><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;">&#8211;&gt;<br /></span><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;</span><span style="">&nbsp;&nbsp;</span>&lt;</span><span style="font-size:8pt;color:#a31515;font-family:&#39;Courier New&#39;;">add</span><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;"> </span><span style="font-size:8pt;color:red;font-family:&#39;Courier New&#39;;">key</span><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;">=</span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;">&quot;<span style="color:blue;">SolutionPath</span>&quot;<span style="color:blue;"> </span><span style="color:red;">value</span><span style="color:blue;">=</span>&quot;<span style="color:blue;">..</span>&quot;<span style="color:blue;"> /&gt;<br /></span></span><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp; </span>&lt;!&#8211;</span><span style="font-size:8pt;color:green;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp; </span>Override the default of using the parent folder&#39;s name as the wsp solution name </span><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;">&#8211;&gt;<br /></span><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp; </span>&lt;!&#8211;</span><span style="font-size:8pt;color:green;font-family:&#39;Courier New&#39;;">&lt;add key=&quot;WSPName&quot; value=&quot;SomeSolutionName&quot; /&gt; </span><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;">&#8211;&gt;<br /></span><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;"><span style="">&nbsp; </span>&lt;/</span><span style="font-size:8pt;color:#a31515;font-family:&#39;Courier New&#39;;">appSettings</span><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;">&gt;<br /></span><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;">&lt;/</span><span style="font-size:8pt;color:#a31515;font-family:&#39;Courier New&#39;;">configuration</span><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;">&gt;</span>&nbsp;</p>
<p><span style="font-size:9pt;color:blue;font-family:&#39;Courier New&#39;;mso-fareast-font-family:&#39;Times New Roman&#39;;mso-ansi-language:EN-AU;mso-fareast-language:EN-AU;mso-bidi-language:AR-SA;"><span style="color:#000000;font-family:Arial;">This screen shot shows the place&nbsp;of the config for WSPBuilder in the&nbsp;Visual Studio world (your default project&#39;s directory, where you choose to&nbsp;&#39;build wsp&#39;):</span></span></p>
<p><span style="font-size:9pt;color:blue;font-family:&#39;Courier New&#39;;mso-fareast-font-family:&#39;Times New Roman&#39;;mso-ansi-language:EN-AU;mso-fareast-language:EN-AU;mso-bidi-language:AR-SA;"><span style="color:#000000;font-family:Arial;"><a href="/oldweblogfiles/mossms/wspBulderConfigLocation.PNG"><img border="0" src="/oldweblogfiles/mossms/wspBulderConfigLocation.PNG" alt="  " /></a></span></span></p>
<p><p><span style="font-size:9pt;color:blue;font-family:&#39;Courier New&#39;;mso-fareast-font-family:&#39;Times New Roman&#39;;mso-ansi-language:EN-AU;mso-fareast-language:EN-AU;mso-bidi-language:AR-SA;"><span style="color:#000000;font-family:Arial;"></span></span></p>
<p><span style="font-size:9pt;color:blue;font-family:&#39;Courier New&#39;;mso-fareast-font-family:&#39;Times New Roman&#39;;mso-ansi-language:EN-AU;mso-fareast-language:EN-AU;mso-bidi-language:AR-SA;"><span style="color:#000000;font-family:Arial;"><a href="/oldweblogfiles/mossms/wspbuilder.PNG"></a></span></span></p>
<p><span style="font-size:9pt;color:blue;font-family:&#39;Courier New&#39;;mso-fareast-font-family:&#39;Times New Roman&#39;;mso-ansi-language:EN-AU;mso-fareast-language:EN-AU;mso-bidi-language:AR-SA;"><span style="color:#000000;font-family:Arial;"></span></span></p>
</p>
<p><span style="font-size:9pt;color:blue;font-family:&#39;Courier New&#39;;mso-fareast-font-family:&#39;Times New Roman&#39;;mso-ansi-language:EN-AU;mso-fareast-language:EN-AU;mso-bidi-language:AR-SA;"><span style="color:#000000;font-family:Arial;"></span></span></p>
<p><span style="font-size:9pt;color:blue;font-family:&#39;Courier New&#39;;mso-fareast-font-family:&#39;Times New Roman&#39;;mso-ansi-language:EN-AU;mso-fareast-language:EN-AU;mso-bidi-language:AR-SA;"><span style="color:#000000;font-family:Arial;">Now you can right click on your main project (where the wsp config file lives) to see the following:</span></span></p>
<p><span style="font-size:9pt;color:blue;font-family:&#39;Courier New&#39;;mso-fareast-font-family:&#39;Times New Roman&#39;;mso-ansi-language:EN-AU;mso-fareast-language:EN-AU;mso-bidi-language:AR-SA;"><span style="color:#000000;font-family:Arial;"><a href="/oldweblogfiles/mossms/wspBulderFlyOut.PNG"><img border="0" src="/oldweblogfiles/mossms/wspBulderFlyOut.PNG" alt="  " /></a></span></span></p>
<p><span style="font-size:9pt;color:blue;font-family:&#39;Courier New&#39;;mso-fareast-font-family:&#39;Times New Roman&#39;;mso-ansi-language:EN-AU;mso-fareast-language:EN-AU;mso-bidi-language:AR-SA;"><span style="color:#000000;font-family:Arial;">So, hey presto, no more excuses for not putting all those pesky little features into your WSP where they belong! You can also name your solution differently to the containing folder&nbsp;using the <span style="color:#008000;">WSPName</span>&nbsp;setting. To see all the&nbsp;command line arguments type <span style="font-size:x-small;color:#008000;"><span style="font-size:x-small;color:#008000;"></p>
<p>C:Program FilesWSPToolsWSPBuilderExtensions&gt;wspbuilder -help:full </p>
<p></span></span></span></span></p>
<p><p><span style="font-size:9pt;color:blue;font-family:&#39;Courier New&#39;;mso-fareast-font-family:&#39;Times New Roman&#39;;mso-ansi-language:EN-AU;mso-fareast-language:EN-AU;mso-bidi-language:AR-SA;"><span style="color:#000000;font-family:Arial;"></span></span></p>
<p><span style="font-size:9pt;color:blue;font-family:&#39;Courier New&#39;;mso-fareast-font-family:&#39;Times New Roman&#39;;mso-ansi-language:EN-AU;mso-fareast-language:EN-AU;mso-bidi-language:AR-SA;"><span style="color:#000000;font-family:Arial;">This isn&#39;t&nbsp;fully aligned with the&nbsp;list of optional&nbsp;settings they give below, so take care to test&nbsp;if it is supported in the config, as well as the command line,&nbsp;before you use it.</span></span></p>
</p>
<p><span style="font-size:9pt;color:blue;font-family:&#39;Courier New&#39;;mso-fareast-font-family:&#39;Times New Roman&#39;;mso-ansi-language:EN-AU;mso-fareast-language:EN-AU;mso-bidi-language:AR-SA;"><span style="color:#000000;font-family:Arial;"></p>
<p><span style="font-size:8pt;color:green;font-family:&#39;Courier New&#39;;">Optional settings<br /></span><span style="font-size:8pt;color:green;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp; </span>You can set the arguments in this file or use them directly in the console.<br /></span><span style="font-size:8pt;color:green;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp; </span>All arguments has a defualt value. See wspbuilder -help<br /></span><span style="font-size:8pt;color:green;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;<br /></span></span><span style="font-size:8pt;color:green;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp; </span>&lt;add key=&quot;12Path&quot; value=&quot;&quot; /&gt;<br /></span><span style="font-size:8pt;color:green;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp; </span>&lt;add key=&quot;80Path&quot; value=&quot;&quot; /&gt;<br /></span><span style="font-size:8pt;color:green;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp; </span>&lt;add key=&quot;BinPath&quot; value=&quot;&quot; /&gt;<br /></span><span style="font-size:8pt;color:green;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp; </span>&lt;add key=&quot;BuildCAS&quot; value=&quot;&quot; /&gt;<br /></span><span style="font-size:8pt;color:green;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp; </span>&lt;add key=&quot;PermissionSetLevel&quot; value=&quot;&quot; /&gt;<br /></span><span style="font-size:8pt;color:green;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp; </span>&lt;add key=&quot;BuildSafeControls&quot; value=&quot;&quot; /&gt;<br /></span><span style="font-size:8pt;color:green;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp; </span>&lt;add key=&quot;BuildWSP&quot; value=&quot;&quot; /&gt;<br /></span><span style="font-size:8pt;color:green;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp; </span>&lt;add key=&quot;Createfolders&quot; value=&quot;&quot; /&gt;<br /></span><span style="font-size:8pt;color:green;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp; </span>&lt;add key=&quot;DeploymentTarget&quot; value=&quot;&quot; /&gt;<br /></span><span style="font-size:8pt;color:green;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp; </span>&lt;add key=&quot;Destination&quot; value=&quot;&quot; /&gt;<br /></span><span style="font-size:8pt;color:green;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp; </span>&lt;add key=&quot;DLLReferencePath&quot; value=&quot;&quot; /&gt;<br /></span><span style="font-size:8pt;color:green;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp; </span>&lt;add key=&quot;Excludefiletypes&quot; value=&quot;&quot; /&gt;<br /></span><span style="font-size:8pt;color:green;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp; </span>&lt;add key=&quot;ExpandTypes&quot; value=&quot;&quot; /&gt;<br /></span><span style="font-size:8pt;color:green;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp; </span>&lt;add key=&quot;Help&quot; value=&quot;&quot; /&gt;<br /></span><span style="font-size:8pt;color:green;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp; </span>&lt;add key=&quot;IncludeAssemblies&quot; value=&quot;&quot; /&gt;<br /></span><span style="font-size:8pt;color:green;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp; </span>&lt;add key=&quot;IncludeFeatures&quot; value=&quot;&quot; /&gt;<br /></span><span style="font-size:8pt;color:green;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp; </span>&lt;add key=&quot;Includefiletypes&quot; value=&quot;&quot; /&gt;<br /></span><span style="font-size:8pt;color:green;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp; </span>&lt;add key=&quot;ManifestEncoding&quot; value=&quot;&quot; /&gt;<br /></span><span style="font-size:8pt;color:green;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp; </span>&lt;add key=&quot;Outputpath&quot; value=&quot;&quot; /&gt;<br /></span><span style="font-size:8pt;color:green;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp; </span>&lt;add key=&quot;ResetWebServer&quot; value=&quot;&quot; /&gt;<br /></span><span style="font-size:8pt;color:green;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp; </span>&lt;add key=&quot;Silence&quot; value=&quot;&quot; /&gt;<br /></span><span style="font-size:8pt;color:green;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp; </span>&lt;add key=&quot;SolutionId&quot; value=&quot;&quot; /&gt;<br /></span><span style="font-size:8pt;color:green;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp; </span>&lt;add key=&quot;SolutionPath&quot; value=&quot;&quot; /&gt;<br /></span><span style="font-size:8pt;color:green;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp; </span>&lt;add key=&quot;WSPName&quot; value=&quot;&quot; /&gt;<br /></span><span style="font-size:8pt;color:green;font-family:&#39;Courier New&#39;;"><span style="mso-tab-count:1;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /></span></span><span style="font-size:8pt;color:green;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp; </span>TraveLevel switch controls the general messages. In order to&nbsp;<br /></span><span style="font-size:8pt;color:green;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>receive general trace messages change the value to the&nbsp;<br /></span><span style="font-size:8pt;color:green;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="">&nbsp;&nbsp;&nbsp;</span>appropriate level.&nbsp;<br /></span><span style="font-size:8pt;color:green;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>Possible values :<br /></span><span style="font-size:8pt;color:green;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&quot;0&quot; gives no messages<br /></span><span style="font-size:8pt;color:green;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&quot;1&quot; gives error messages<br /></span><span style="font-size:8pt;color:green;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&quot;2&quot; gives errors and warnings<br /></span><span style="font-size:8pt;color:green;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&quot;3&quot; gives information<br /></span><span style="font-size:8pt;color:green;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&quot;4&quot; gives verbose information&nbsp;<br /></span><span style="font-size:8pt;color:green;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /></span></span><span style="font-size:8pt;color:green;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp; </span>The default value in WSPBuilder is Information (3).</span></p>
<p></span></span></p>
<p><span style="font-size:9pt;color:blue;font-family:&#39;Courier New&#39;;mso-fareast-font-family:&#39;Times New Roman&#39;;mso-ansi-language:EN-AU;mso-fareast-language:EN-AU;mso-bidi-language:AR-SA;"><span style="color:#000000;font-family:Arial;">All I&#39;ve got to do now is work out how to get wsp builder to deploy to a specific URL, and my dev time STSADM worries have gone!</span></span></p>
<p><p><span style="font-size:9pt;color:blue;font-family:&#39;Courier New&#39;;mso-fareast-font-family:&#39;Times New Roman&#39;;mso-ansi-language:EN-AU;mso-fareast-language:EN-AU;mso-bidi-language:AR-SA;"><span style="color:#000000;font-family:Arial;"><a href="/oldweblogfiles/mossms/Mossums.bmp"><img border="0" src="/oldweblogfiles/mossms/Mossums.bmp" alt="  " /></a></span></span></p>
<p><span style="font-size:10pt;font-family:Gautami;"><span class="nobr1"><span style="font-family:Helvetica;COLOR:green;">The end of another <a href="/mossms/default.aspx">MOSSuMS</a> post</span></span></span></p></p>
]]></content:encoded>
			<wfw:commentRss>http://vspug.com/mossms/2009/02/09/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Template that</title>
		<link>http://vspug.com/mossms/2009/02/09/</link>
		<comments>http://vspug.com/mossms/2009/02/09/#comments</comments>
		<pubDate>Mon, 09 Feb 2009 06:12:00 +0000</pubDate>
		<dc:creator>mikes</dc:creator>
		
		<guid isPermaLink="false"></guid>
		<description><![CDATA[
Custom Site Definition &#39;3rd way&#39;.&#160; 

Do you want a custom site definition, but can&#39;t face&#160;copying and modifying an&#160;ONet? Need to use an OOTB Site Definiton, but also change it? Like features, but hate the issues stapling gives you? Then read on&#8230;

The debate about this rages on-and-on (see Microsofts guidelines here, and other developers perspective on [...]]]></description>
			<content:encoded><![CDATA[<p><span style="font-size:10pt;font-family:Gautami;"><span class="nobr1"><span style="font-family:Helvetica;"><span style="font-size:10pt;font-family:Gautami;"></p>
<p><span class="nobr1"><span style="font-family:Helvetica;"><span style="COLOR:green;"><em><strong>Custom Site Definition &#39;3rd way&#39;.&nbsp; </strong></em></span></span></span></p>
<p></span></span></span></span></p>
<p><span class="nobr1"><span style="font-family:Helvetica;"><span style="COLOR:green;"><span class="nobr1"><span style="font-family:Helvetica;"><span class="nobr1"><span style="font-family:Helvetica;"><span style="color:#000000;">Do you want a custom site definition, but can&#39;t face&nbsp;copying and modifying an&nbsp;ONet? Need to use an OOTB Site Definiton, but also change it? Like features, but hate the issues stapling gives you? Then read on&#8230;</span></span></span></span></span></span></span></span></p>
<p><span class="nobr1"><span style="font-family:Helvetica;"><span style="COLOR:green;"><span class="nobr1"><span style="font-family:Helvetica;"><span style="COLOR:green;"><a href="http://www.sevensigma.com.au" title="SevenSigma Business Solutions"><img border="0" src="/oldweblogfiles/mossms/sevensig_2D00_logo.jpg" alt="  " /></a></span></span></span></span></span></span></p>
<p><span class="nobr1"><span style="font-family:Helvetica;">The debate about this rages on-and-on (see Microsofts guidelines <a href="http://technet.microsoft.com/en-us/library/cc707802.aspx%20" title="MS Guidelines">here</a>, and other developers perspective on upgrade issues <a href="http://www.andrewconnell.com/blog/archive/2008/02/15/You-dont-need-to-create-site-definitions.aspx" title="AndrewConnell">here</a>, <a href="http://www.sharepointdevwiki.com/display/public/Site+Features+vs+Site+Templates+vs+Site+Definitions?showComments=true&amp;showCommentArea=true#addcomment" title="sharepointdevwiki">here</a>&nbsp;and <a href="http://www.wssdemo.com/Blog/archive/2008/10/09/sharepoint-custom-code-acceptance-checklist.aspx/Ian&#39;s%20SharePoint%20Blog" title="Ian&#39;s SharePoint Blog">here</a>). Some like features, some like stapling, some like to use the .onet file. Each has its pros and cons. But all agree it would be nice to&nbsp;end up with a deployable&nbsp;sharepoint solution, use features within it, build on the OOTB site definitions (templates), provide a&nbsp;custom site definition&nbsp;the user can easily choose for their new collection, all without hacking a big&nbsp;Onet file. So how to square the circle for us devs?</span></span></p>
<p><span class="nobr1"><span style="font-family:Helvetica;"><span style="COLOR:green;"><a href="http://www.sevensigma.com.au" title="SevenSigma Business Solutions"></a></span></span></span></p>
<p><span class="nobr1"><span style="font-family:Helvetica;"><a href="http://www.iwkid.com/blog/Lists/Posts/Post.aspx?List=a9757dac%2D2555%2D45d8%2Da213%2D15c89d282620&amp;ID=56" title="Raymond Mitchell Templates and SharePoint Sites - 4 of 4">Raymond Mitchell<sup><span style="text-decoration:none;text-underline:none;"> </span></sup></a></span></span><span style="font-family:Helvetica;">deserves the credit for this one using web provisioning, as I based my approach on his suggestions and added my preference for Features and WSPBuilder on top of it.</span></p>
<p><p><span style="font-family:Helvetica;">Note: I abandoned my original preference of stapling a master feature within this approach, as I couldn&#39;t get the stapled features to activate automatically (stapling happens at farm level,&nbsp;but provisioning is at&nbsp;web level), in the right order or to wait for provisioning to complete. I do think this aspect warrants revisiting as I may have made some mistakes and&nbsp;it would be nice to use more of SharePoint&#39;s built-in abilities.</span></p>
<p><span style="font-family:Helvetica;">In my implementation I have the following web temp to give us our new site definition:</span></p>
</p>
<p><span style="font-family:Helvetica;"></p>
<p><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;">&lt;?</span><span style="font-size:8pt;color:#a31515;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;">xml</span><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;"> </span><span style="font-size:8pt;color:red;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;">version</span><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;">=</span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;">&quot;<span style="color:blue;">1.0</span>&quot;<span style="color:blue;"> </span><span style="color:red;">encoding</span><span style="color:blue;">=</span>&quot;<span style="color:blue;">utf-8</span>&quot;<span style="color:blue;">?&gt;<br /></span></span><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;">&lt;</span><span style="font-size:8pt;color:#a31515;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;">Templates</span><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;"> </span><span style="font-size:8pt;color:red;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;">xmlns:ows</span><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;">=</span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;">&quot;<span style="color:blue;">Microsoft SharePoint</span>&quot;<span style="color:blue;">&gt;<br /></span></span><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;"><span style="">&nbsp;</span>&lt;!&#8211;</span><span style="font-size:8pt;color:green;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;"> OOTB IDs are listed here: /mossms/archive/2009/02/09/configure-this.aspx </span><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;">&#8211;&gt;<br /></span><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;"><span style="">&nbsp;</span>&lt;</span><span style="font-size:8pt;color:#a31515;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;">Template</span><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;"> </span><span style="font-size:8pt;color:red;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;">Name</span><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;">=</span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;">&quot;<span style="color:blue;">Your.Project.Template</span>&quot;<span style="color:blue;"> </span><span style="color:red;">ID</span><span style="color:blue;">=</span>&quot;<b style="mso-bidi-font-weight:normal;"><span style="color:blue;">9999999</span></b>&quot;<span style="color:blue;">&gt;<br /></span></span><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;"><span style="">&nbsp;&nbsp; </span>&lt;!&#8211;</span><span style="font-size:8pt;color:green;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;"> Choose a unique number for this Customisation&#39;s ID that is above 10000. </span><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;">&#8211;&gt;<br /></span><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&lt;</span><span style="font-size:8pt;color:#a31515;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;">Configuration<br /></span><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span style="font-size:8pt;color:red;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;">ID</span><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;">=</span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;">&quot;<span style="color:blue;">0</span>&quot;<br /></span><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span style="font-size:8pt;color:red;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;">Title</span><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;">=</span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;">&quot;<span style="color:blue;">Your.Project.Template#0</span>&quot;<br /></span><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span style="font-size:8pt;color:red;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;">Hidden</span><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;">=</span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;">&quot;<span style="color:blue;">FALSE</span>&quot;<br /></span><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span style="font-size:8pt;color:red;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;">ImageUrl</span><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;">=</span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;">&quot;<span style="color:blue;">/_layouts/images/Your.Project/templatePrev.png</span>&quot;<br /></span><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span style="font-size:8pt;color:red;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;">Description</span><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;">=</span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;">&quot;<span style="color:blue;">Custom Your.Project.Template#0 used to provision the OOTB Document Center (BRD#0) before automatic customisation with features.</span>&quot;<br /></span><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span style="font-size:8pt;color:red;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;">DisplayCategory</span><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;">=</span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;">&quot;<span style="color:blue;">Custom</span>&quot;<br /></span><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span style="font-size:8pt;color:red;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;">AllowGlobalFeatureAssociations</span><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;">=</span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;">&quot;<span style="color:blue;">TRUE</span>&quot;<br /></span><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span style="font-size:8pt;color:red;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;">Version</span><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;">=</span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;">&quot;<span style="color:blue;">12.0.0.0</span>&quot;<br /></span><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span style="font-size:8pt;color:red;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;">ProvisionAssembly</span><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;">=</span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;">&quot;<span style="color:blue;">Your.Project, Version=1.0.0.0, Culture=neutral, PublicKeyToken=Your.Project.snk</span>&quot;<br /></span><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span style="font-size:8pt;color:red;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;">ProvisionClass</span><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;">=</span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;">&quot;<span style="color:blue;">Your.Project.l033.XML.WebProvisioningProvider</span>&quot;<span style="color:blue;">&gt;<br /></span></span><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&lt;/</span><span style="font-size:8pt;color:#a31515;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;">Configuration</span><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;">&gt;<br /></span><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;"><span style="">&nbsp;</span>&lt;/</span><span style="font-size:8pt;color:#a31515;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;">Template</span><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;">&gt;<br /></span><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;">&lt;/</span><span style="font-size:8pt;color:#a31515;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;">Templates</span><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;">&gt;</span></p>
<p></span><a href="/oldweblogfiles/mossms/webtemp.PNG"></a></p>
<p>It should be placed in the 12 hive location here:</p>
<p><a href="/oldweblogfiles/mossms/webtemp.PNG"></a><a href="/oldweblogfiles/mossms/webtemp2.PNG"><img border="0" src="/oldweblogfiles/mossms/webtemp2.PNG" alt="  " /></a></p>
<p>Have a look at &#39;<a href="/mossms/archive/2009/02/09/configure-this.aspx" title="Configure this">Configure this</a>&#39; for a list of existing template IDs, but ensure you use a new unique&nbsp;ID above 10000. T<span style="font-size:10pt;font-family:Gautami;"><span style="font-size:10pt;font-family:Gautami;mso-fareast-font-family:&#39;Times New Roman&#39;;mso-ansi-language:EN-AU;mso-fareast-language:EN-AU;mso-bidi-language:AR-SA;">his file will have named the custom site definition (template) and points to my provisioning provider shown below:</span></span></p>
<p><span style="font-size:10pt;font-family:Gautami;"><span style="font-size:10pt;font-family:Gautami;mso-fareast-font-family:&#39;Times New Roman&#39;;mso-ansi-language:EN-AU;mso-fareast-language:EN-AU;mso-bidi-language:AR-SA;"></p>
<p><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;">using</span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"> System;<br /></span><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;">using</span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"> System.Collections.Generic;<br /></span><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;">using</span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"> System.Text;<br /></span><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;">using</span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"> Microsoft.SharePoint;<br /></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;">&nbsp;<br /></span><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;">namespace</span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"> Your.Project.l033.XML<br /></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;">{<br /></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp; </span><span style="color:blue;">public</span> <span style="color:blue;">class</span> <span style="color:#2b91af;">WebProvisioningProvider</span> : <span style="color:#2b91af;">SPWebProvisioningProvider<br /></span></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp; </span>{<br /></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color:green;">// Set your existing template and #configuration number here<br /></span></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color:blue;">public</span> <span style="color:blue;">static</span> <span style="color:blue;">string</span> WebTemplateConfiguration = <span style="color:#a31515;">&quot;BDR#0&quot;</span>;<br /></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color:green;">// OOTB Configurations are listed here: /mossms/archive/2009/02/09/configure-this.aspx &#8211;&gt;<br /></span></span><span style="font-size:8pt;color:green;font-family:&#39;Courier New&#39;;">&nbsp;<br /></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color:green;">// Set your &#39;master&#39; site (collection) scope feature here (master feature will activate sub features &#8211; can&#39;t use feature associations as these don&#39;t wait until site is provisioned).<br /></span></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color:blue;">public</span> <span style="color:blue;">static</span> <span style="color:#2b91af;">Guid</span> SiteCollectionMasterFeatureId = <span style="color:blue;">new</span> <span style="color:#2b91af;">Guid</span>(<span style="color:#a31515;">&quot;Your-Projects-Site-Master-Feature-Guid&quot;</span>);<br /></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;">&nbsp;<br /></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color:green;">// Set your &#39;master&#39; web scope feature here<br /></span></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color:blue;">public</span> <span style="color:blue;">static</span> <span style="color:#2b91af;">Guid</span> WebMasterFeatureId = <span style="color:blue;">new</span> <span style="color:#2b91af;">Guid</span>(<span style="color:#a31515;">&quot;Your-Projects-Web-Master-Feature-Guid&quot;</span>);<br /></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;">&nbsp;<br /></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color:blue;">public</span> <span style="color:blue;">override</span> <span style="color:blue;">void</span> Provision(<span style="color:#2b91af;">SPWebProvisioningProperties</span> properties)<br /></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>{<br /></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color:green;">// Provision a site based on the OOTB Document Center site definition &#8211; do not dispose the spweb as it it part of the context.<br /></span></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color:#2b91af;">SPWeb</span> web = properties.Web;<br /></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;">&nbsp;<br /></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color:blue;">if</span> (WebTemplateConfiguration != <span style="color:blue;">null</span> &amp;&amp; WebTemplateConfiguration.Trim().Length &gt; 0)<br /></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>{<br /></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>web.ApplyWebTemplate(WebTemplateConfiguration);<br /></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>web.Update();<br /></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>}<br /></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;">&nbsp;<br /></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color:green;">//Activate the master Site collection scope feature<br /></span></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color:blue;">if</span> (SiteCollectionMasterFeatureId != <span style="color:blue;">null</span> &amp;&amp; SiteCollectionMasterFeatureId != <span style="color:#2b91af;">Guid</span>.Empty)<br /></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>{<br /></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color:#2b91af;">SPSite</span> site = <span style="color:blue;">null</span>;<span style="">&nbsp; </span><span style="color:green;">// Must be disposed<br /></span></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color:blue;">try<br /></span></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>{<br /></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>site = web.Site;<br /></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>site.Features.Add(SiteCollectionMasterFeatureId);<br /></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>}<br /></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color:blue;">finally<br /></span></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>{<br /></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color:blue;">if</span> (site != <span style="color:blue;">null</span>)<br /></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>{<br /></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>site.Dispose();<br /></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>}<br /></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>}<br /></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>}<br /></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color:green;">//Activate the master Web scope feature<br /></span></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color:blue;">if</span> (WebMasterFeatureId != <span style="color:blue;">null</span> &amp;&amp; WebMasterFeatureId != <span style="color:#2b91af;">Guid</span>.Empty)<br /></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>{<br /></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>web.Features.Add(WebMasterFeatureId);<br /></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>}<br /></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>}<br /></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp; </span>}<br /></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;">}</span></p>
<p></span></span>I resisted the desire to&nbsp;reference the Stair Master feature, and placed my provisioning provider code here:</p>
<p>&nbsp;<img border="0" src="/oldweblogfiles/mossms/provisioner2.PNG" alt="  " /></p>
<p><span style="font-size:10pt;font-family:Gautami;"><span style="font-size:10pt;font-family:Gautami;mso-fareast-font-family:&#39;Times New Roman&#39;;mso-ansi-language:EN-AU;mso-fareast-language:EN-AU;mso-bidi-language:AR-SA;"></span></span><a href="/oldweblogfiles/mossms/provisioner.PNG"></a><a href="/oldweblogfiles/mossms/provisioner.PNG"></a></p>
<p><span style="font-size:10pt;font-family:Gautami;">The provisioning provider will trigger when a new web (when a site collection is created you get the collections root web by default, so it will be triggered then) is created. My example above shows that it optionally provisions an OOTB template (see appendix my <a href="/mossms/archive/2009/02/09/configure-this.aspx" title="configure this">previous post</a> for a list of OOTB definitions), activates a master site collection scope feature and a master web scope feature by referencing their Guids. Other scoped features could be added, but there may be some governance/assurance implications in applying features scoped beyond your specific &lsquo;scope&rsquo; requirement.</span></p>
<p><span style="font-size:10pt;font-family:Gautami;">My elements file is empty for now, but the site master feature xml is shown below:</span></p>
<p><span style="font-size:10pt;font-family:Gautami;"><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;"></p>
<p><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;">&lt;?</span><span style="font-size:8pt;color:#a31515;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;">xml</span><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;"> </span><span style="font-size:8pt;color:red;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;">version</span><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;">=</span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;"><span style="color:#000000;">&quot;</span><span style="color:blue;">1.0</span><span style="color:#000000;">&quot;</span><span style="color:blue;"> </span><span style="color:red;">encoding</span><span style="color:blue;">=</span><span style="color:#000000;">&quot;</span><span style="color:blue;">utf-8</span><span style="color:#000000;">&quot;</span><span style="color:blue;">?&gt;<br /></span></span><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;">&lt;</span><span style="font-size:8pt;color:#a31515;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;">Feature</span><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;"><span style="">&nbsp; </span></span><span style="font-size:8pt;color:red;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;">Id</span><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;">=</span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;"><span style="color:#000000;">&quot;</span><span style="color:blue;">Your-Projects-Site-Master-Feature-Guid</span><span style="color:#000000;">&quot;<br /></span></span><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span style="font-size:8pt;color:red;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;">Title</span><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;">=</span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;"><span style="color:#000000;">&quot;</span><span style="color:blue;">Your.Project.Features.Site.Master</span><span style="color:#000000;">&quot;<br /></span></span><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span style="font-size:8pt;color:red;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;">Description</span><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;">=</span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;"><span style="color:#000000;">&quot;</span><span style="color:blue;">Description for Your.Project.Features.Site.Master MASTER feature</span><span style="color:#000000;">&quot;<br /></span></span><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span style="font-size:8pt;color:red;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;">Version</span><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;">=</span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;"><span style="color:#000000;">&quot;</span><span style="color:blue;">12.0.0.0</span><span style="color:#000000;">&quot;<br /></span></span><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span style="font-size:8pt;color:red;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;">Hidden</span><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;">=</span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;"><span style="color:#000000;">&quot;</span><span style="color:blue;">FALSE</span><span style="color:#000000;">&quot;<br /></span></span><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span style="font-size:8pt;color:red;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;">Scope</span><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;">=</span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;"><span style="color:#000000;">&quot;</span><span style="color:blue;">Site</span><span style="color:#000000;">&quot;<br /></span></span><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span style="font-size:8pt;color:red;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;">ImageUrl</span><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;">=</span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;"><span style="color:#000000;">&quot;</span><span style="color:blue;">Your.Project/your.Project.png</span><span style="color:#000000;">&quot;<br /></span></span><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span style="font-size:8pt;color:red;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;">DefaultResourceFile</span><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;">=</span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;"><span style="color:#000000;">&quot;</span><span style="color:blue;">core</span><span style="color:#000000;">&quot;<br /></span></span><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span style="font-size:8pt;color:red;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;">ReceiverAssembly</span><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;">=</span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;"><span style="color:#000000;">&quot;</span><span style="color:blue;">Your.Project, Version=1.0.0.0, Culture=neutral, PublicKeyToken=Your.Project.snk</span><span style="color:#000000;">&quot;<br /></span></span><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span><span style="font-size:8pt;color:red;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;">ReceiverClass</span><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;">=</span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;"><span style="color:#000000;">&quot;</span><span style="color:blue;">Your.Project.Features.Site.Master.Receiver</span><span style="color:#000000;">&quot;<br /></span></span><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span style="font-size:8pt;color:red;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;">xmlns</span><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;">=</span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;"><span style="color:#000000;">&quot;</span><span style="color:blue;">http://schemas.microsoft.com/sharepoint/</span><span style="color:#000000;">&quot;</span><span style="color:blue;">&gt;<br /></span></span><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;"><span style="">&nbsp; </span>&lt;</span><span style="font-size:8pt;color:#a31515;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;">ElementManifests</span><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;">&gt;<br /></span><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;"><span style="">&nbsp;&nbsp;&nbsp; </span>&lt;</span><span style="font-size:8pt;color:#a31515;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;">ElementManifest</span><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;"> </span><span style="font-size:8pt;color:red;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;">Location</span><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;">=</span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;"><span style="color:#000000;">&quot;</span><span style="color:blue;">elements.xml</span><span style="color:#000000;">&quot;</span><span style="color:blue;">/&gt;<br /></span></span><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;"><span style="">&nbsp; </span>&lt;/</span><span style="font-size:8pt;color:#a31515;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;">ElementManifests</span><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;">&gt;<br /></span><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;">&lt;/</span><span style="font-size:8pt;color:#a31515;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;">Feature</span><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;">&gt;</span></p>
<p><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;"></span></p>
<p></span><span style="font-size:10pt;font-family:Gautami;">Remember to replace the Guid and Assembly public key with your own values &#8211; this feature lives here in my world:</span></span></p>
<p><span style="font-size:10pt;font-family:Gautami;"><a href="/oldweblogfiles/mossms/siteMasterFeatureLoc2.PNG"><img border="0" src="/oldweblogfiles/mossms/siteMasterFeatureLoc2.PNG" alt="  " /></a></span></p>
<p><span style="font-size:10pt;font-family:Gautami;"><a href="/oldweblogfiles/mossms/siteMasterFeatureLoc.PNG"></a></span></p>
<p><p><span style="font-size:10pt;font-family:Gautami;">This is the master site (collection) scope feature receiver code &#8211; don&#39; worry about my utils &#39;using&#39; for a dll reference, it&#39;s only used for the logging so comment out that code if you copy from here:</span></p>
</p>
<p><span style="font-size:10pt;font-family:Gautami;"></p>
<p><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;">using</span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"> System;<br /></span><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;">using</span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"> System.Collections.Generic;<br /></span><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;">using</span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"> System.Text;<br /></span><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;">using</span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"> Microsoft.SharePoint;<br /></span><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;">using</span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"> System.Threading;</span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"><br /></span><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;"><span style="font-size:8pt;color:green;font-family:&#39;Courier New&#39;;">//using Your.Project.Features.Site.Utils.Logging; // Comment line out if you copy this code</span></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"><br /></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;">&nbsp;<br /></span><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;">namespace</span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"> Your.Project.Features.Site.Master<br /></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;">{<br /></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp; </span><span style="color:green;">// Single &#39;master&#39; feature for a site definition. Use this to activate other custom features as stapling does not activate features in order<br /></span></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp; </span><span style="color:blue;">public</span> <span style="color:blue;">class</span> <span style="color:#2b91af;">Receiver</span> : <span style="color:#2b91af;">SPFeatureReceiver<br /></span></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp; </span>{<br /></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color:green;">// *** Add your unstapled Site Collection Scope Features here (could be driven from an xml file as this approach matures) ***<br /></span></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color:blue;">public</span> <span style="color:blue;">static</span> <span style="color:#2b91af;">Guid</span>[] FeatureGuids = <span style="color:blue;">new</span> <span style="color:#2b91af;">Guid</span>[] {<br /></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color:green;">//new Guid(&quot;F6924D36-2FA8-4f0b-B16D-06B7250180FA&quot;), // This is the OOTB publishing feature required for style library creation<br /></span></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color:blue;">new</span> <span style="color:#2b91af;">Guid</span>(<span style="color:#a31515;">&quot;Your-Projects-Site-Utils-Feature-Guid&quot;</span>) <span style="color:green;">// Your.Project.Features.Site.Utils &#8211; this is just an example feature<br /></span></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>}; <span style="color:green;">// You can make these features&#39; xml property&nbsp;&#39;Hidden=&quot;TRUE&quot;&#39; once testing is complete</span><br /></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;">&nbsp;<br /></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color:blue;">public</span> <span style="color:blue;">override</span> <span style="color:blue;">void</span> FeatureActivated(<span style="color:#2b91af;">SPFeatureReceiverProperties</span> properties)<br /></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>{<span style="">&nbsp;&nbsp; </span><span style="color:green;">// NB: Do not dispose properties.Feature.Parent, as that is the feature context, just like the Current web context, but other spweb or spsites should be disposed.<br /></span></span><span style="font-size:8pt;color:green;font-family:&#39;Courier New&#39;;">&nbsp;<br /></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color:green;">//Activate Unstapled Site Collection Scope Features (do not wait for root web to be provisioned here, as we will wait forever&#8230;)<br /></span></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color:#2b91af;">SPSite</span> site = properties.Feature.Parent <span style="color:blue;">as</span> <span style="color:#2b91af;">SPSite</span>;<br /></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;">&nbsp;<br /></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color:blue;">if</span> (FeatureGuids != <span style="color:blue;">null</span>)<br /></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>{<br /></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color:blue;">foreach</span> (<span style="color:#2b91af;">Guid</span> guid <span style="color:blue;">in</span> FeatureGuids)<br /></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="">&nbsp;&nbsp;&nbsp;</span>{<br /></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color:blue;">if</span> (guid != <span style="color:blue;">null</span> &amp;&amp; guid != <span style="color:#2b91af;">Guid</span>.Empty)<br /></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>{<br /></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color:blue;">try<br /></span></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>{<br /></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>site.Features.Add(guid, <span style="color:blue;">true</span>);<br /></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>}<br /></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color:blue;">catch</span> (<span style="color:#2b91af;">Exception</span> ex)<br /></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>{<br /></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color:#2b91af;"><span style="color:green;">//Log.Write(ex); // comment out and replace with own procedures if you copy this code</span></span><br /></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>}<br /></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>}<br /></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>}<br /></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>}<br /></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>}<br /></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;">&nbsp;<br /></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color:blue;">public</span> <span style="color:blue;">override</span> <span style="color:blue;">void</span> FeatureDeactivating(<span style="color:#2b91af;">SPFeatureReceiverProperties</span> properties)<br /></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>{<span style="">&nbsp;&nbsp; </span><span style="color:green;">// NB: Do not dispose properties.Feature.Parent, as that is the feature context, just like the Current web context, but other spweb or spsites should be disposed.<br /></span></span><span style="font-size:8pt;color:green;font-family:&#39;Courier New&#39;;">&nbsp;<br /></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color:#2b91af;">SPSite</span> site = properties.Feature.Parent <span style="color:blue;">as</span> <span style="color:#2b91af;">SPSite</span>;<br /></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;">&nbsp;<br /></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color:green;">//Deactivate the master web scope feature on all subwebs in reverse subweb order<br /></span></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color:blue;">if</span> (Your.Project.l033.XML.<span style="color:#2b91af;">WebProvisioningProvider</span>.WebMasterFeatureId != <span style="color:blue;">null</span> &amp;&amp; Your.Project.l033.XML.<span style="color:#2b91af;">WebProvisioningProvider</span>.WebMasterFeatureId != <span style="color:#2b91af;">Guid</span>.Empty)<br /></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>{<br /></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color:blue;">for</span> (<span style="color:blue;">int</span> i = site.AllWebs.Count -1; i &gt;= 0; &#8211;i)<br /></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>{<br /></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color:#2b91af;">SPWeb</span> web = <span style="color:blue;">null</span>;<br /></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color:blue;">try<br /></span></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>{<br /></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>web = site.AllWebs<img src="/emoticons/emotion-55.gif" alt="Idea" />;<br /></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>web.Features.Remove(Your.Project.l033.XML.<span style="color:#2b91af;">WebProvisioningProvider</span>.WebMasterFeatureId, <span style="color:blue;">true</span>);<br /></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>}<br /></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color:blue;">catch</span> (<span style="color:#2b91af;">Exception</span> ex)<br /></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>{<br /></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color:#2b91af;"><span style="color:green;">//Log.Write(ex); // comment out and replace with own procedures if you copy this code</span></span><br /></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>}<br /></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color:blue;">finally<br /></span></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>{<br /></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color:blue;">if</span> (web != <span style="color:blue;">null</span>)<br /></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>{<br /></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>web.Dispose();<br /></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>}<br /></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>}<br /></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>}<br /></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>}<br /></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;">&nbsp;<br /></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color:green;">//Deactivate unstapled Site collection scope features in reverse order<br /></span></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color:blue;">if</span> (FeatureGuids != <span style="color:blue;">null</span>)<br /></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>{<br /></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color:blue;">for</span> (<span style="color:blue;">int</span> i = FeatureGuids.Length -1; i &gt;= 0; &#8211;i)<br /></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>{<br /></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color:blue;">try<br /></span></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>{<br /></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color:#2b91af;">Guid</span> guid = FeatureGuids<img src="/emoticons/emotion-55.gif" alt="Idea" />;<br /></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color:#2b91af;">SPFeature</span> feature = site.Features[guid];<br /></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>site.Features.Remove(guid, <span style="color:blue;">true</span>);<br /></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>}<br /></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color:blue;">catch</span> (<span style="color:#2b91af;">Exception</span> ex)<br /></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="">&nbsp;&nbsp;&nbsp;</span>{<br /></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color:#2b91af;"><span style="color:green;">//Log.Write(ex); // comment out and replace with own procedures if you copy this code</span></span><br /></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>}<br /></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>}<br /></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>}<br /></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>}<br /></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;">&nbsp;<br /></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color:blue;">public</span> <span style="color:blue;">override</span> <span style="color:blue;">void</span> FeatureInstalled(<span style="color:#2b91af;">SPFeatureReceiverProperties</span> properties) {}<br /></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color:blue;">public</span> <span style="color:blue;">override</span> <span style="color:blue;">void</span> FeatureUninstalling(<span style="color:#2b91af;">SPFeatureReceiverProperties</span> properties) {}<br /></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp; </span>}<br /></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;">}</span></p>
<p>
<p>
<p><p>..and you can find it here &#8211; after this I think you&#39;ll have the idea of where I locate my code and the xml 12 hive locations, so I&#39;ll stop posting my project structure:</p>
</p>
</p>
</p>
<p></span></p>
<p>
<p>
<p>&nbsp;</p>
</p>
</p>
<p>
<p><p>&nbsp;</p>
</p>
</p>
<p>
<p>&nbsp;</p>
</p>
<p><p>&nbsp;</p>
</p>
<p>&nbsp;</p>
<p><a href="/oldweblogfiles/mossms/siteMasterFeatureCodeLoc.PNG"><img border="0" src="/oldweblogfiles/mossms/siteMasterFeatureCodeLoc.PNG" alt="  " /></a></p>
<p><span style="font-size:10pt;font-family:Gautami;">This activates all site collection features in order (otherwise dependencies may cause activation issues) and deactives them in reverse. It also deactivates and web features when you&nbsp;pull the site master by call in the web master feature I&#39;ll cover next. That probably isn&#39;t necessary, but it seems to prevent issues for me.</span></p>
<p><span style="font-size:10pt;font-family:Gautami;">So below is the master web scope feature xml and code, activating and deactivating web features in a similar way to the site master, but first waiting for web provisioning to complete. This ensures all OOTB items are present for us to find/modify with our features. NB. If timing issue occur between site collection and web scoped feature activation, it could be done in the single web master feature below, with wider scopes activated first BEFORE we wait for OOTB web provisioning to complete.</span></p>
<p><span style="font-size:10pt;font-family:Gautami;"><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;">&lt;?</span><span style="font-size:8pt;color:#a31515;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;">xml</span><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;"> </span><span style="font-size:8pt;color:red;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;">version</span><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;">=</span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;">&quot;<span style="color:blue;">1.0</span>&quot;<span style="color:blue;"> </span><span style="color:red;">encoding</span><span style="color:blue;">=</span>&quot;<span style="color:blue;">utf-8</span>&quot;<span style="color:blue;">?&gt;<br /></span></span><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;">&lt;</span><span style="font-size:8pt;color:#a31515;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;">Feature</span><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;"><span style="">&nbsp; </span></span><span style="font-size:8pt;color:red;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;">Id</span><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;">=</span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;">&quot;<span style="color:blue;">Your-Projects-Web-Master-Feature-Guid</span>&quot;<br /></span><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span style="font-size:8pt;color:red;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;">Title</span><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;">=</span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;">&quot;<span style="color:blue;">Your.Project.Features.Web.Master</span>&quot;<br /></span><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span style="font-size:8pt;color:red;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;">Description</span><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;">=</span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;">&quot;<span style="color:blue;">Description for Your.Project.Features.Web.Master MASTER feature</span>&quot;<br /></span><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span style="font-size:8pt;color:red;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;">Version</span><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;">=</span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;">&quot;<span style="color:blue;">12.0.0.0</span>&quot;<br /></span><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span style="font-size:8pt;color:red;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;">Hidden</span><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;">=</span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;">&quot;<span style="color:blue;">FALSE</span>&quot;<br /></span><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span style="font-size:8pt;color:red;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;">Scope</span><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;">=</span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;">&quot;<span style="color:blue;">Web</span>&quot;<br /></span><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span style="font-size:8pt;color:red;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;">ImageUrl</span><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;">=</span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;">&quot;<span style="color:blue;">Your.Project/your.Project.png</span>&quot;<br /></span><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span style="font-size:8pt;color:red;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;">DefaultResourceFile</span><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;">=</span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;">&quot;<span style="color:blue;">core</span>&quot;<br /></span><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span style="font-size:8pt;color:red;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;">ReceiverAssembly</span><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;">=</span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;">&quot;<span style="color:blue;">Your.Project, Version=1.0.0.0, Culture=neutral, PublicKeyToken=Your.Project.snk</span>&quot;<br /></span><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span style="font-size:8pt;color:red;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;">ReceiverClass</span><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;">=</span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;">&quot;<span style="color:blue;">Your.Project.Features.Web.Master.Receiver</span>&quot;<br /></span><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span style="font-size:8pt;color:red;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;">xmlns</span><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;">=</span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;">&quot;<span style="color:blue;">http://schemas.microsoft.com/sharepoint/</span>&quot;<span style="color:blue;">&gt;<br /></span></span><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;"><span style="">&nbsp; </span>&lt;</span><span style="font-size:8pt;color:#a31515;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;">ElementManifests</span><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;">&gt;<br /></span><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;"><span style="">&nbsp;&nbsp;&nbsp; </span>&lt;</span><span style="font-size:8pt;color:#a31515;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;">ElementManifest</span><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;"> </span><span style="font-size:8pt;color:red;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;">Location</span><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;">=</span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;">&quot;<span style="color:blue;">elements.xml</span>&quot;<span style="color:blue;">/&gt;<br /></span></span><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;"><span style="">&nbsp; </span>&lt;/</span><span style="font-size:8pt;color:#a31515;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;">ElementManifests</span><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;">&gt;<br /></span><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;">&lt;/</span><span style="font-size:8pt;color:#a31515;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;">Feature</span><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;">&gt;</span></span></p>
<p><span style="font-size:10pt;font-family:Gautami;"><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;mso-bidi-font-size:10.0pt;"><span style="font-size:10pt;font-family:Gautami;"><span style="color:#000000;">&#8230;and the receiver code this feature points to:</span></span></span></span></p>
<p><span style="font-size:10pt;font-family:Gautami;"></span></p>
<p><span style="font-size:10pt;font-family:Gautami;"><a href="/oldweblogfiles/mossms/masterWebFeatureReceiver.PNG"></a></span></p>
<p><p><span style="font-size:10pt;font-family:Gautami;"></p>
<p><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;">using</span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"> System;<br /></span><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;">using</span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"> System.Collections.Generic;<br /></span><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;">using</span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"> System.Text;<br /></span><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;">using</span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"> Microsoft.SharePoint;<br /></span><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;">using</span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"> System.Threading;<br /></span><span style="font-size:8pt;color:green;font-family:&#39;Courier New&#39;;">//using Your.Project.Features.Site.Utils.Logging; // Comment line out if you copy this code<br /></span><span style="font-size:8pt;color:green;font-family:&#39;Courier New&#39;;">&nbsp;<br /></span><span style="font-size:8pt;color:blue;font-family:&#39;Courier New&#39;;">namespace</span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"> Your.Project.Features.Web.Master<br /></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;">{<br /></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp; </span><span style="color:green;">// Single &#39;master&#39; feature for a site definition. Use this to activate other custom features as stapling does not activate features in order and doesn&#39;t wait for <br />rovisioning to complete<br /></span></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp; </span><span style="color:blue;">public</span> <span style="color:blue;">class</span> <span style="color:#2b91af;">Receiver</span> : <span style="color:#2b91af;">SPFeatureReceiver<br /></span></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp; </span>{<br /></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color:green;">//Add your unstapled Web Scope Features here (could be driven from an xml file as this approach matures) &#8211; these are examples of the sorts of features you can&nbsp;add<br /></span></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color:blue;">public</span> <span style="color:blue;">static</span> <span style="color:#2b91af;">Guid</span>[] FeatureGuids = <span style="color:blue;">new</span> <span style="color:#2b91af;">Guid</span>[] {<br /></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color:blue;">new</span> <span style="color:#2b91af;">Guid</span>(<span style="color:#a31515;">&quot;Your-Projects-Web-Customisation-Feature-Guid&quot;</span>), <span style="color:green;">// Your.Project.Features.Web.Customisation<br /></span></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color:blue;">new</span> <span style="color:#2b91af;">Guid</span>(<span style="color:#a31515;">&quot;Your-Projects-Web-ListInstances-Feature-Guid&quot;</span>), <span style="color:green;">// Your.Project.Features.Web.ListInstances<br /></span></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color:blue;">new</span> <span style="color:#2b91af;">Guid</span>(<span style="color:#a31515;">&quot;Your-Projects-Web-Branding-Feature-Guid&quot;</span>) <span style="color:green;">// Your.Project.Features.Web.Branding<br /></span></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color:green;">//new Guid(&quot;fc5e2840-0b48-42eb-9ad7-076f5add58ad&quot;) // OOTB HIDE the view all site content link feature<br /></span></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>}; <span style="color:green;">// You can make these features&#39; xml property&nbsp;&#39;Hidden=&quot;TRUE&quot;&#39; once testing is complete<br /></span></span><span style="font-size:8pt;color:green;font-family:&#39;Courier New&#39;;">&nbsp;<br /></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color:blue;">public</span> <span style="color:blue;">override</span> <span style="color:blue;">void</span> FeatureActivated(<span style="color:#2b91af;">SPFeatureReceiverProperties</span> properties)<br /></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>{<span style="">&nbsp;&nbsp; </span><span style="color:green;">// NB: Do not dispose properties.Feature.Parent, as that is the feature context, just like the Current web context, but other spweb or spsites should be disposed.<br /></span></span><span style="font-size:8pt;color:green;font-family:&#39;Courier New&#39;;">&nbsp;<br /></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color:green;">// Ensure Web is provisioned (otherwise provisioning may not complete before feature activation starts)<br /></span></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color:#2b91af;">SPWeb</span> web = properties.Feature.Parent <span style="color:blue;">as</span> <span style="color:#2b91af;">SPWeb</span>;<br /></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color:blue;">while</span> (!web.Provisioned)<br /></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color:#2b91af;">Thread</span>.Sleep(1000);<span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /></span></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;">&nbsp;<br /></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color:green;">//Activate Unstapled Web Scope Features<br /></span></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color:blue;">if</span>( FeatureGuids != <span style="color:blue;">null</span> )<br /></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>{<br /></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color:blue;">foreach</span> (<span style="color:#2b91af;">Guid</span> guid <span style="color:blue;">in</span> FeatureGuids)<br /></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>{<br /></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color:blue;">if</span> (guid != <span style="color:blue;">null</span> &amp;&amp; guid != <span style="color:#2b91af;">Guid</span>.Empty)<br /></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>{<br /></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color:blue;">try<br /></span></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>{<br /></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>web.Features.Add(guid, <span style="color:blue;">true</span>);<br /></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>}<br /></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color:blue;">catch</span> (<span style="color:#2b91af;">Exception</span> ex)<br /></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>{<br /></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color:green;">//Log.Write(ex); // comment out and replace with own procedures if you copy this code<br /></span></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>}<br /></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>}<br /></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>}<br /></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>}<br /></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>}<br /></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;">&nbsp;<br /></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color:blue;">public</span> <span style="color:blue;">override</span> <span style="color:blue;">void</span> FeatureDeactivating(<span style="color:#2b91af;">SPFeatureReceiverProperties</span> properties)<br /></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>{<span style="">&nbsp;&nbsp; </span><span style="color:green;">// NB: Do not dispose properties.Feature.Parent, as that is the feature context, just like the Current web context, but other spweb or spsites should be disposed.<br /></span></span><span style="font-size:8pt;color:green;font-family:&#39;Courier New&#39;;">&nbsp;<br /></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color:green;">//Deactivate Unstapled Web Scope Features in reverse order<br /></span></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color:#2b91af;">SPWeb</span> web = properties.Feature.Parent <span style="color:blue;">as</span> <span style="color:#2b91af;">SPWeb</span>;<br /></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;">&nbsp;<br /></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color:blue;">if</span> (FeatureGuids != <span style="color:blue;">null</span>)<br /></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>{<br /></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color:blue;">for</span> (<span style="color:blue;">int</span> i = FeatureGuids.Length &#8211; 1; i &gt;= 0; &#8211;i)<br /></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>{<br /></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color:blue;">try<br /></span></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>{<br /></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color:#2b91af;">Guid</span> guid = FeatureGuids<img src="/emoticons/emotion-55.gif" alt="Idea" />;<br /></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color:#2b91af;">SPFeature</span> feature = web.Features[guid];<br /></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>web.Features.Remove(guid, <span style="color:blue;">true</span>);<br /></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>}<br /></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color:blue;">catch</span> (<span style="color:#2b91af;">Exception</span> ex)<br /></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>{<br /></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color:green;">//Log.Write(ex); // comment out and replace with own procedures if you copy this code<br /></span></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>}<br /></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>}<br /></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>}<br /></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>}<br /></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;">&nbsp;<br /></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color:blue;">public</span> <span style="color:blue;">override</span> <span style="color:blue;">void</span> FeatureInstalled(<span style="color:#2b91af;">SPFeatureReceiverProperties</span> properties) {}<br /></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color:blue;">public</span> <span style="color:blue;">override</span> <span style="color:blue;">void</span> FeatureUninstalling(<span style="color:#2b91af;">SPFeatureReceiverProperties</span> properties) {}<br /></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"><span style="">&nbsp;&nbsp;&nbsp; </span>}<br /></span><span style="font-size:8pt;font-family:&#39;Courier New&#39;;">}</span></p>
<p><span style="font-size:8pt;font-family:&#39;Courier New&#39;;"></span></p>
<p></span><span style="font-size:10pt;font-family:Gautami;">So once this has been done, each new feature simply requires adding into the correct master sope features code. I would rather maintain the flexibility of reproducing this simple process for each project, but this procedure could easily&nbsp;be extended to provide some automation, resources or configuration file driven facilities (eg. an xml file to choose the OOTB configuration and list each feature, grouped by scope, in their desired&nbsp;order).</span></p>
</p>
<p><span style="font-size:10pt;font-family:Gautami;"></span></p>
<p><p><span style="font-size:10pt;font-family:Gautami;"><span class="nobr1"><span style="font-family:Helvetica;"><a href="/oldweblogfiles/mossms/Mossums.bmp"><img border="0" src="/oldweblogfiles/mossms/Mossums.bmp" alt="  " /></a></span></span></span></p>
<p><span style="font-size:10pt;font-family:Gautami;"><span class="nobr1"><span style="font-family:Helvetica;COLOR:green;">The end of another <a href="/mossms/default.aspx">MOSSuMS</a> post</span></span></span></p></p>
]]></content:encoded>
			<wfw:commentRss>http://vspug.com/mossms/2009/02/09/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Configure this</title>
		<link>http://vspug.com/mossms/2009/02/08/</link>
		<comments>http://vspug.com/mossms/2009/02/08/#comments</comments>
		<pubDate>Sun, 08 Feb 2009 23:50:00 +0000</pubDate>
		<dc:creator>mikes</dc:creator>
		
		<guid isPermaLink="false"></guid>
		<description><![CDATA[A List of WSS and MOSS Site Definitions and Configurations.&#160; 



The other &#39;MS&#39; have a list on OOTB content types here: http://msdn.microsoft.com/en-us/library/ms452896.aspx&#160;( have a look in C:Program FilesCommon FilesMicrosoft Sharedweb server extensions12TEMPLATEFEATURESctypesctypeswss.xml), but I though I would share another piece of reference material I often use &#8211; all those &#34;Out Of The Box&#34; Site Definition [...]]]></description>
			<content:encoded><![CDATA[<p><span style="COLOR:green;"><em><strong>A List of WSS and MOSS Site Definitions and Configurations.&nbsp; </strong></em></span></p>
<p><span style="font-size:10pt;font-family:Gautami;"></span></p>
<p><span style="font-size:10pt;font-family:Gautami;"></span></p>
<p><span style="font-size:10pt;font-family:Gautami;"><span style="font-size:8pt;color:black;font-family:Verdana;mso-fareast-font-family:&#39;Times New Roman&#39;;mso-bidi-font-family:&#39;Times New Roman&#39;;mso-ansi-language:EN-AU;mso-fareast-language:EN-AU;mso-bidi-language:AR-SA;"><span style="font-size:x-small;"><span style="font-family:Gautami;"><a href="http://www.sevensigma.com.au" title="SevenSigma Business Solutions"><img border="0" src="/oldweblogfiles/mossms/sevensig_2D00_logo.jpg" alt="  " /></a></span></span></span></span></p>
<p><span style="font-size:10pt;font-family:Gautami;"><span style="font-size:8pt;color:black;font-family:Verdana;mso-fareast-font-family:&#39;Times New Roman&#39;;mso-bidi-font-family:&#39;Times New Roman&#39;;mso-ansi-language:EN-AU;mso-fareast-language:EN-AU;mso-bidi-language:AR-SA;"><span style="font-size:x-small;"><span style="font-family:Gautami;">The other &#39;MS&#39; have a list on OOTB content types here: <span style="font-size:10pt;font-family:Gautami;"><a href="http://msdn.microsoft.com/en-us/library/ms452896.aspx">http://msdn.microsoft.com/en-us/library/ms452896.aspx</a>&nbsp;( have a look in </span></span></span>C:Program FilesCommon FilesMicrosoft Sharedweb server extensions12TEMPLATEFEATURESctypesctypeswss.xml), </span></span><span style="font-size:10pt;font-family:Gautami;">but I though I would share another piece of reference material I often use &#8211; all those &quot;Out Of The Box&quot; Site Definition Configurations. You know, all those &#39;site template&#39; choices you get when you create a new site collection&#8230;</span></p>
<p><span style="font-size:10pt;font-family:Gautami;"><a href="/oldweblogfiles/mossms/ms916803.odc_spscustomizingsharepointsites2_fig4.gif"></a></span></p>
<p><span style="font-size:10pt;font-family:Gautami;"></span></p>
<p><span style="font-size:10pt;font-family:Gautami;"></span></p>
<p><span style="font-size:10pt;font-family:Gautami;"><a href="/oldweblogfiles/mossms/customisesharepointsites.gif"><img border="0" src="/oldweblogfiles/mossms/customisesharepointsites.gif" alt="  " /></a></span></p>
<p><span style="font-size:10pt;font-family:Gautami;">They are normally found in the 12 hive location: C:Program FilesCommon FilesMicrosoft Sharedweb server extensions12TEMPLATESiteTemplates.</span></p>
<p><span style="font-size:10pt;font-family:Gautami;"></span></p>
<p><span style="font-size:10pt;font-family:Gautami;"></span></p>
<p><span style="font-size:10pt;font-family:Gautami;">If your desired definition&nbsp;isn&#39;t listed, save site as a template (.stp), extract the manifest.xml file and locate the &lt;Details&gt;&lt;TemplateID&gt;entry to find the number show below.</span></p>
<p><span style="font-size:10pt;font-family:Gautami;"></span></p>
<p><span style="font-size:10pt;font-family:Gautami;"></span></p>
<p><span style="font-size:10pt;font-family:Gautami;">Remember that saving as a template won&#39;t replicate a full site definition (many customisations, such as content types, won&#39;t be there), so if it&#39;s a hand customised site you will have to&nbsp;reverse-engineer it yourself, or&nbsp;use&nbsp;one of the&nbsp;3rd party&nbsp;or MS dev tools, to help you create a definition from it in Visual Studio. I&#39;ll cover my approach to using these in <a href="/mossms/archive/2009/02/09/template-that.aspx" title="Template that">a later blog post</a>.</span></p>
<p><span style="font-size:10pt;font-family:Gautami;"></span></p>
<p><span style="font-size:10pt;font-family:Gautami;"></span></p>
<p><b style="mso-bidi-font-weight:normal;"><span style="font-size:10pt;font-family:Gautami;"></span></b></p>
<p><b style="mso-bidi-font-weight:normal;"><span style="font-size:10pt;font-family:Gautami;">WSS Templates</span></b><span style="font-size:10pt;font-family:Gautami;"> (with configuration #)<b style="mso-bidi-font-weight:normal;"></b></span></p>
<p><span style="font-size:10pt;font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"><span style="mso-list:Ignore;">&middot;<span style="font:7pt &#39;Times New Roman&#39;;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><span style="font-size:10pt;font-family:Gautami;">0 &#8211; Global: GLOBAL#0 (SetupPath=global) &#8211; &ldquo;Global template&rdquo;<br /></span><span style="font-size:10pt;font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"><span style="mso-list:Ignore;">&middot;<span style="font:7pt &#39;Times New Roman&#39;;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><span style="font-size:10pt;font-family:Gautami;">1 &#8211; Team Site: STS#0 &#8211; &ldquo;Team Site&rdquo;<br /></span><span style="font-size:10pt;font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"><span style="mso-list:Ignore;">&middot;<span style="font:7pt &#39;Times New Roman&#39;;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><span style="font-size:10pt;font-family:Gautami;">1 &#8211; Blank Site: STS#1 &#8211; &ldquo;Blank Site&rdquo;<br /></span><span style="font-size:10pt;font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"><span style="mso-list:Ignore;">&middot;<span style="font:7pt &#39;Times New Roman&#39;;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><span style="font-size:10pt;font-family:Gautami;">1 &#8211; Document Workspace: STS#2 &#8211; &ldquo;Document Workspace&rdquo;<br /></span><span style="font-size:10pt;font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"><span style="mso-list:Ignore;">&middot;<span style="font:7pt &#39;Times New Roman&#39;;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><span style="font-size:10pt;font-family:Gautami;">2 &#8211; Basic Meeting Workspace: MPS#0 &#8211; &ldquo;Basic Meeting Workspace&rdquo;<br /></span><span style="font-size:10pt;font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"><span style="mso-list:Ignore;">&middot;<span style="font:7pt &#39;Times New Roman&#39;;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><span style="font-size:10pt;font-family:Gautami;">2 &#8211; Blank Meeting Workspace: MPS#1 &#8211; &ldquo;Blank Meeting Workspace&rdquo;<br /></span><span style="font-size:10pt;font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"><span style="mso-list:Ignore;">&middot;<span style="font:7pt &#39;Times New Roman&#39;;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><span style="font-size:10pt;font-family:Gautami;">2 &#8211; Decision Meeting Workspace: MPS#2 &#8211; &ldquo;Decision Meeting Workspace&rdquo;<br /></span><span style="font-size:10pt;font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"><span style="mso-list:Ignore;">&middot;<span style="font:7pt &#39;Times New Roman&#39;;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><span style="font-size:10pt;font-family:Gautami;">2 &#8211; Social Meeting Workspace: MPS#3 &#8211; &ldquo;Social Meeting Workspace&rdquo;<br /></span><span style="font-size:10pt;font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"><span style="mso-list:Ignore;">&middot;<span style="font:7pt &#39;Times New Roman&#39;;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><span style="font-size:10pt;font-family:Gautami;">2 &#8211; Multiple Meeting Workspace: MPS#4 &#8211; &ldquo;Multipage Meeting Workspace&rdquo;<br /></span><span style="font-size:10pt;font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"><span style="mso-list:Ignore;">&middot;<span style="font:7pt &#39;Times New Roman&#39;;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><span style="font-size:10pt;font-family:Gautami;">3 &#8211; Central Administration: CENTRALADMIN &#8211; &ldquo;Central Admin Site&rdquo;<br /></span><span style="font-size:10pt;font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"><span style="mso-list:Ignore;">&middot;<span style="font:7pt &#39;Times New Roman&#39;;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><span style="font-size:10pt;font-family:Gautami;">4 &#8211; Wiki Site: WIKI#0 &#8211; &ldquo;Wiki Site&rdquo;<br /></span><span style="font-size:10pt;font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"><span style="mso-list:Ignore;">&middot;<span style="font:7pt &#39;Times New Roman&#39;;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><span style="font-size:10pt;font-family:Gautami;">9 &#8211; Blog Site: BLOG#0 &#8211; &ldquo;Blog&rdquo;</span></p>
<p><span style="font-size:10pt;font-family:Gautami;"></span></p>
<p><b style="mso-bidi-font-weight:normal;"><span style="font-size:10pt;font-family:Gautami;">MOSS Templates</span></b><span style="font-size:10pt;font-family:Gautami;"> (with configuration #)<b style="mso-bidi-font-weight:normal;"></b></span></p>
<p><span style="font-size:10pt;font-family:Gautami;"></span></p>
<p><span style="font-size:10pt;font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"><span style="mso-list:Ignore;">&middot;<span style="font:7pt &#39;Times New Roman&#39;;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><span style="font-size:10pt;font-family:Gautami;">7 &#8211; Document Centre: BDR#0 &#8211; &ldquo;Document Center&rdquo;<br /></span><span style="font-size:10pt;color:gray;font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"><span style="mso-list:Ignore;">&middot;<span style="font:7pt &#39;Times New Roman&#39;;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><span style="font-size:10pt;color:gray;font-family:Gautami;">20 &#8211; SharePoint Portal: SPS (OBSOLETE) &#8211; &ldquo;SharePoint Portal Server Site&rdquo;<br /></span><span style="font-size:10pt;font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"><span style="mso-list:Ignore;">&middot;<span style="font:7pt &#39;Times New Roman&#39;;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><span style="font-size:10pt;font-family:Gautami;">21 &#8211; Personal Space: SPSPERS &#8211; &ldquo;SharePoint Portal Server Personal Space&rdquo;<br /></span><span style="font-size:10pt;font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"><span style="mso-list:Ignore;">&middot;<span style="font:7pt &#39;Times New Roman&#39;;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><span style="font-size:10pt;font-family:Gautami;">22 &#8211; Personalisation Site: SPSMSITE#0 &#8211; &ldquo;Personalization Site&rdquo;<br /></span><span style="font-size:10pt;color:gray;font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"><span style="mso-list:Ignore;">&middot;<span style="font:7pt &#39;Times New Roman&#39;;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><span style="font-size:10pt;color:gray;font-family:Gautami;">30 &#8211; Contents Area: SPSTOC (OBSOLETE) &#8211; &ldquo;Contents area Template&rdquo;<br /></span><span style="font-size:10pt;color:gray;font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"><span style="mso-list:Ignore;">&middot;<span style="font:7pt &#39;Times New Roman&#39;;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><span style="font-size:10pt;color:gray;font-family:Gautami;">31 &#8211; Topic Area: SPSTOPIC (OBSOLETE) &#8211; &ldquo;Topic area template&rdquo;<br /></span><span style="font-size:10pt;color:gray;font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"><span style="mso-list:Ignore;">&middot;<span style="font:7pt &#39;Times New Roman&#39;;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><span style="font-size:10pt;color:gray;font-family:Gautami;">32 &#8211; News Area: SPSNEWS (OBSOLETE) &#8211; &ldquo;News area template&rdquo;<br /></span><span style="font-size:10pt;font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"><span style="mso-list:Ignore;">&middot;<span style="font:7pt &#39;Times New Roman&#39;;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><span style="font-size:10pt;font-family:Gautami;">33 &#8211; News Site: SPSNHOME#0 (SubWebOnly) &#8211; &ldquo;News Home template&rdquo;<br /></span><span style="font-size:10pt;font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"><span style="mso-list:Ignore;">&middot;<span style="font:7pt &#39;Times New Roman&#39;;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><span style="font-size:10pt;font-family:Gautami;">34 &#8211; Site Directory: SPSSITE#0 (SetupPath = SPSSITES) &#8211; &ldquo;Site Directory Area&rdquo;<br /></span><span style="font-size:10pt;color:gray;font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"><span style="mso-list:Ignore;">&middot;<span style="font:7pt &#39;Times New Roman&#39;;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><span style="font-size:10pt;color:gray;font-family:Gautami;">36 &#8211; Community Area: SPSCOMMU (OBSOLETE) &#8211; &ldquo;Community area template&rdquo;<br /></span><span style="font-size:10pt;font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"><span style="mso-list:Ignore;">&middot;<span style="font:7pt &#39;Times New Roman&#39;;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><span style="font-size:10pt;font-family:Gautami;">38 &#8211; Report Centre: SPSREPORTCENTER#0 &#8211; &ldquo;Report Center Site&rdquo;<br /></span><span style="font-size:10pt;font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"><span style="mso-list:Ignore;">&middot;<span style="font:7pt &#39;Times New Roman&#39;;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><span style="font-size:10pt;font-family:Gautami;">39 &#8211; Publishing Site: CMSPUBLISHING#0 (SetupPath =PUBLISHING) &#8211; &ldquo;Publishing and Team Collaboration Site&rdquo;<br /></span><span style="font-size:10pt;font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"><span style="mso-list:Ignore;">&middot;<span style="font:7pt &#39;Times New Roman&#39;;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><span style="font-size:10pt;font-family:Gautami;">40 &#8211; OSRV &#8211; &ldquo;Shared Services Administration Site&rdquo;<br /></span><span style="font-size:10pt;font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"><span style="mso-list:Ignore;">&middot;<span style="font:7pt &#39;Times New Roman&#39;;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><span style="font-size:10pt;font-family:Gautami;">47 &#8211; Collaboration Portal: SPSPORTAL#0 &#8211; &ldquo;Corporate Intranet Site&rdquo;<br /></span><span style="font-size:10pt;font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"><span style="mso-list:Ignore;">&middot;<span style="font:7pt &#39;Times New Roman&#39;;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><span style="font-size:10pt;font-family:Gautami;">50 &#8211; Search Centre with Tabs: SRCHCEN#0 &#8211; &ldquo;Search Center&rdquo;<br /></span><span style="font-size:10pt;font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"><span style="mso-list:Ignore;">&middot;<span style="font:7pt &#39;Times New Roman&#39;;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><span style="font-size:10pt;font-family:Gautami;">51 &#8211; Profiles: PROFILES &#8211; &ldquo;Profiles&rdquo;<br /></span><span style="font-size:10pt;font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"><span style="mso-list:Ignore;">&middot;<span style="font:7pt &#39;Times New Roman&#39;;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><span style="font-size:10pt;font-family:Gautami;">52 &#8211; Publishing Portal: BLANKINTERNETCONTAINER#0 &#8211; &ldquo;Internet Presence Web Site&rdquo;<br /></span><span style="font-size:10pt;font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"><span style="mso-list:Ignore;">&middot;<span style="font:7pt &#39;Times New Roman&#39;;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><span style="font-size:10pt;font-family:Gautami;">53 &#8211; Publishing Site with Workflow: BLANKINTERNET#2 &#8211; &ldquo;Press Releases Site&rdquo;, &ldquo;Publishing Site&rdquo;<br /></span><span style="font-size:10pt;font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"><span style="mso-list:Ignore;">&middot;<span style="font:7pt &#39;Times New Roman&#39;;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><span style="font-size:10pt;font-family:Gautami;">54 &#8211; My Site Host: SPSMSITEHOST#0 &#8211; &ldquo;My Site Host&rdquo;<br /></span><span style="font-size:10pt;font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"><span style="mso-list:Ignore;">&middot;<span style="font:7pt &#39;Times New Roman&#39;;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><span style="font-size:10pt;font-family:Gautami;">90 &#8211; Search Centre: SRCHCENTERLITE#0 &#8211; &ldquo;Search Center Lite&rdquo;<br /></span><span style="font-size:10pt;font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"><span style="mso-list:Ignore;">&middot;<span style="font:7pt &#39;Times New Roman&#39;;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><span style="font-size:10pt;font-family:Gautami;">6221 &#8211; Project Web Access Site: PWA#0 <span style="">&nbsp;</span>- &ldquo;Project Web Access Site&rdquo;<br /></span><span style="font-size:10pt;font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"><span style="mso-list:Ignore;">&middot;<span style="font:7pt &#39;Times New Roman&#39;;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><span style="font-size:10pt;font-family:Gautami;">6215 &#8211; Project Workspace: PWS#0 <span style="">&nbsp;</span>- &ldquo;Project Workspace&rdquo;<br /></span><span style="font-size:10pt;font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"><span style="mso-list:Ignore;">&middot;<span style="font:7pt &#39;Times New Roman&#39;;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><span style="font-size:10pt;font-family:Gautami;">14483 &#8211; Records Repository: OFFILE#0 <span style="">&nbsp;</span>- &ldquo;Records Repository&rdquo;<br /></span></p>
<p><span style="font-size:10pt;font-family:Gautami;"><strong>UI Templates<br /></strong></span><span style="font-size:10pt;font-family:Gautami;"><br />I haven&#39;t yet gone through the process of mapping them to the above, but here is a list of the site&nbsp;templates you&nbsp;see in the UI, and the &#39;type&#39; icons associated with&nbsp;them in the hierarchical list view:</p>
<p></span><span style="font-size:10pt;font-family:Gautami;"><span style="font-size:11pt;font-family:&#39;Calibri&#39;,&#39;sans-serif&#39;;mso-fareast-font-family:Calibri;mso-bidi-font-family:&#39;Times New Roman&#39;;mso-ansi-language:EN-AU;mso-fareast-language:EN-US;mso-bidi-language:AR-SA;mso-ascii-theme-font:minor-latin;mso-fareast-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;mso-bidi-theme-font:minor-bidi;">&nbsp;<a href="/oldweblogfiles/mossms/site.jpg"><img border="0" src="/oldweblogfiles/mossms/site.jpg" alt="  " /></a></span><strong>&nbsp; Site</strong><br />Publishing Portal<br />Enterprise &#8211; Personalisation Site<br />Enterprise &#8211; Report Centre<br />Enterprise &#8211; Search Centre with Tabs<br />Enterprise &#8211; Site Director<br />Document Centre (created with portal site)<br />News (created with portal site)<br />Publishing- News Site <br />Publishing- Publishing Site<br />Publishing- Publishing Site with Workflow</p>
<p><a href="/oldweblogfiles/mossms/SPsite.jpg"><img border="0" src="/oldweblogfiles/mossms/SPsite.jpg" alt="  " /></a>&nbsp; <strong>Sharepoint Site</strong><br />Collaboration Blank Site<br />Collaboration Blog <br />Collaboration GroupBoard Workspace<br />Collaboration Team Site<br />Collaboration Wiki Site<br />Enterprise &#8211; Document Centre<br />Enterprise &#8211; Records Centre<br />Enterprise &#8211; Search Centre</p>
<p></span><strong>Document Workspace</strong><br />Collaboration Document Workspace </p>
<p><a href="/oldweblogfiles/mossms/SingleWorkspace.jpg"><img border="0" src="/oldweblogfiles/mossms/SingleWorkspace.jpg" alt="  " /></a>&nbsp; <strong>Single Meeting Workspace</strong> or&nbsp;<a href="/oldweblogfiles/mossms/RecurWorkspace.jpg"><img border="0" src="/oldweblogfiles/mossms/RecurWorkspace.jpg" alt="  " /></a> <strong>Recurring Meeting Workspace</strong><br />Basic Meeting Workspace<br />Blank Meeting Workspace<br />Decision Meeting Workspace<br />Multipage Meeting Workspace<br />Meeting Workspace Workspace</p>
<p>Microsoft&#39;s UI Site Templates List is at:<br /><a href="http://sharepoint.microsoft.com/blogs/GetThePoint/Lists/Posts/Post.aspx?ID=65">http://sharepoint.microsoft.com/blogs/GetThePoint/Lists/Posts/Post.aspx?ID=65</a></p>
<p><span style="font-size:10pt;font-family:Gautami;"></span></p>
<p><span style="font-size:10pt;font-family:Gautami;"></span></p>
<p><span style="font-size:10pt;font-family:Gautami;"></p>
<p><span style="font-size:9pt;color:blue;font-family:&#39;Courier New&#39;;mso-fareast-font-family:&#39;Times New Roman&#39;;mso-ansi-language:EN-AU;mso-fareast-language:EN-AU;mso-bidi-language:AR-SA;"><span style="color:#000000;font-family:Arial;"><a href="/oldweblogfiles/mossms/Mossums.bmp"><img border="0" src="/oldweblogfiles/mossms/Mossums.bmp" alt="  " /></a></span></span></p>
<p></span></p>
<p><span style="font-size:10pt;font-family:Gautami;"><span class="nobr1"><span style="font-family:Helvetica;COLOR:green;">The end of another <a href="/mossms/default.aspx">MOSSuMS</a> post</span></span></span></p>
]]></content:encoded>
			<wfw:commentRss>http://vspug.com/mossms/2009/02/08/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>So you think you can change your Web Config?</title>
		<link>http://vspug.com/mossms/2008/03/18/</link>
		<comments>http://vspug.com/mossms/2008/03/18/#comments</comments>
		<pubDate>Tue, 18 Mar 2008 09:47:00 +0000</pubDate>
		<dc:creator>mikes</dc:creator>
		
		<guid isPermaLink="false"></guid>
		<description><![CDATA[

or &#39;Making a Feature of SPWebConfigModifications&#39;

Part 1 -&#160;A Winner from SharePoint
I know, we&#39;ve all done it. Jumped into the web config and messed it about for our own evil ends (and we might even have taken a backup first).
Well in the brave new SharePoint world, beyond your &#39;playpen&#39;&#160;dev box,&#160;that just ain&#39;t allowed!
So what do you [...]]]></description>
			<content:encoded><![CDATA[<div style="width:600px;">
<blockquote>
<p><span style="COLOR:green;">or &#39;<em><strong>Making a Feature of SPWebConfigModifications</strong></em>&#39;</span></p>
</blockquote>
<p><strong>Part 1 -&nbsp;A Winner from SharePoint</strong></p>
<p>I know, we&#39;ve all done it. Jumped into the web config and messed it about for our own evil ends (and we might even have taken a backup first).</p>
<p>Well in the brave new SharePoint world, beyond your &#39;playpen&#39;&nbsp;dev box,&nbsp;that just ain&#39;t allowed!</p>
<p>So what do you do when there&#39;s a must have app setting you can&#39;t/won&#39;t deploy&nbsp;via a&nbsp;<strong>WSP solution</strong> (please oh&nbsp;please&nbsp;leave your solution to do all the standard things like safe control entries) and you want them to follow wherever your <strong>Feature</strong> goes?</p>
<blockquote>
<p><strong>NB</strong>: <a target="_blank" href="http://www.cleverworkarounds.com/2008/04/04/guru-of-governance/" title="MrCleverWorkArounds">MrCleverWorkArounds</a>, the Guru of Governance, tells me there may be some issues with what I&#39;m doing here if the feature isn&#39;t at WebApplication or Farm scope (as you would expect messing about with web apps configs), so expect a review of this once he&#39;s run his strict ruler over it!</p>
</blockquote>
<p>Well, there is a little known&nbsp;(it has been news to a couple of SharePoint Gods I occasionally ask silly questions of) part of the object model to help us.</p>
<p>On each web app (Microsoft.SharePoint.Administration.<span style="font-size:x-small;color:#2b91af;">SPWebApplication</span>)&nbsp;there is a property called <span style="font-size:x-small;"><em>WebConfigModifications </em></span>which is a collection of these guys: Microsoft.SharePoint.Administration.<span style="font-size:x-small;color:#2b91af;">SPWebConfigModification</span></p>
<p>They are just the ticket! You can add and remove modifications to the collection, they don&#39;t break if the entry is already in there or isn&#39;t there to be removed. If you want to you can even mess with things like debug settings.</p>
<p><span style="font-size:x-small;"><span style="font-size:x-small;"><span style="font-size:x-small;"><span style="font-size:x-small;"></p>
<blockquote>
<p>spWebApp.WebConfigModifications.Add(configMod1);</p>
</blockquote>
<p></span>spWebApp.WebConfigModifications.Remove(configMod2);<br /></span></span><span style="font-size:x-small;"></p>
<blockquote>
<p>spWebApp.WebConfigModifications.Remove(configMod2);</p>
</blockquote>
<p></span></span></p>
<blockquote>
<p><span style="font-size:x-small;">spWebApp.Farm.Services.GetValue&lt;</span><span style="font-size:x-small;color:#2b91af;">SPWebService</span><span style="font-size:x-small;">&gt;().ApplyWebConfigModifications();&nbsp; <span style="font-size:x-small;color:#008000;">// propagate across farm<br /></span></span><span style="font-size:x-small;"><span style="font-size:x-small;">spWebApp.Update();</span></span></p>
</blockquote>
<p>So the logical next step is to add them in your <span style="font-size:x-small;">FeatureActivated</span> and remove them in your <span style="font-size:x-small;">FeatureDeactivating&nbsp;<span style="font-size:x-small;color:#2b91af;">SPFeatureReceiver</span>&nbsp;</span>events.</p>
<p>Ah, this is where we hit some small snags:</p>
<p>1. We don&#39;t really want to hardcode the updates<br />2. We only want to remove those from our feature, so probably need to remember a&nbsp;<span style="font-size:x-small;color:#2b91af;">SPWebConfigModification</span>.Owner property.<br />3. The <span style="font-size:x-small;color:#2b91af;">SPWebConfigModification</span> Class seems to rely on us setting&nbsp;xPath strings to do its things.<br />4. There are some other properties we need to set.</p>
<p>But fear not. I wrote some simple XML serialisable classes for the base entries, app settings, sections and&nbsp;connection strings. That way I can build those classes up, and serialise them to a file in code, to give you a nice <em>guaranteed valid</em> starting structure. Here&#39;s an example of the XML that results:</p>
<p><span style="font-size:x-small;color:#0000ff;"><span style="font-size:x-small;color:#0000ff;"></p>
<p>&lt;?</p>
<p></span></span></p>
<p><span style="font-size:x-small;color:#a31515;">xml</span><span style="font-size:x-small;color:#0000ff;"> </span><span style="font-size:x-small;color:#ff0000;">version</span><span style="font-size:x-small;color:#0000ff;">=</span><span style="font-size:x-small;">&quot;</span><span style="font-size:x-small;color:#0000ff;">1.0</span><span style="font-size:x-small;">&quot;</span><span style="font-size:x-small;color:#0000ff;">?&gt;<br />&lt;</span><span style="font-size:x-small;color:#a31515;">SPwebconfigMods</span><span style="font-size:x-small;color:#0000ff;"> </span><span style="font-size:x-small;color:#ff0000;">xmlns:xsi</span><span style="font-size:x-small;color:#0000ff;">=</span><span style="font-size:x-small;">&quot;</span><span style="font-size:x-small;color:#0000ff;">http://www.w3.org/2001/XMLSchema-instance</span><span style="font-size:x-small;">&quot;</span><span style="font-size:x-small;color:#0000ff;"> </span><span style="font-size:x-small;color:#ff0000;">xmlns:xsd</span><span style="font-size:x-small;color:#0000ff;">=</span><span style="font-size:x-small;">&quot;</span><span style="font-size:x-small;color:#0000ff;">http://www.w3.org/2001/XMLSchema</span><span style="font-size:x-small;">&quot;</span><span style="font-size:x-small;color:#0000ff;">&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp; &lt;</span><span style="font-size:x-small;color:#a31515;">Owner</span><span style="font-size:x-small;color:#0000ff;">&gt;</span><span style="font-size:x-small;">mrwaUtils.UtilsFeatureReceiver</span><span style="font-size:x-small;color:#0000ff;">&lt;/</span><span style="font-size:x-small;color:#a31515;">Owner</span><span style="font-size:x-small;color:#0000ff;">&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp; &lt;</span><span style="font-size:x-small;color:#a31515;">Entries</span><span style="font-size:x-small;color:#0000ff;">&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;</span><span style="font-size:x-small;color:#a31515;">Entry</span><span style="font-size:x-small;color:#0000ff;"> </span><span style="font-size:x-small;color:#ff0000;">xsi:type</span><span style="font-size:x-small;color:#0000ff;">=</span><span style="font-size:x-small;">&quot;</span><span style="font-size:x-small;color:#0000ff;">AppSettingsAddEntry</span><span style="font-size:x-small;">&quot;</span><span style="font-size:x-small;color:#0000ff;">&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;</span><span style="font-size:x-small;color:#a31515;">Name</span><span style="font-size:x-small;color:#0000ff;">&gt;</span><span style="font-size:x-small;">mrwaUtils.Logging.Log+DestinationTypes.EventLog</span><span style="font-size:x-small;color:#0000ff;">&lt;/</span><span style="font-size:x-small;color:#a31515;">Name</span><span style="font-size:x-small;color:#0000ff;">&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;</span><span style="font-size:x-small;color:#a31515;">Value</span><span style="font-size:x-small;color:#0000ff;">&gt;</span><span style="font-size:x-small;">MACHINE01</span><span style="font-size:x-small;color:#0000ff;">&lt;/</span><span style="font-size:x-small;color:#a31515;">Value</span><span style="font-size:x-small;color:#0000ff;">&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;</span><span style="font-size:x-small;color:#a31515;">Xpath</span><span style="font-size:x-small;color:#0000ff;">&gt;</span><span style="font-size:x-small;">//configuration/appSettings</span><span style="font-size:x-small;color:#0000ff;">&lt;/</span><span style="font-size:x-small;color:#a31515;">Xpath</span><span style="font-size:x-small;color:#0000ff;">&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;</span><span style="font-size:x-small;color:#a31515;">ModificationType</span><span style="font-size:x-small;color:#0000ff;">&gt;</span><span style="font-size:x-small;">EnsureChildNode</span><span style="font-size:x-small;color:#0000ff;">&lt;/</span><span style="font-size:x-small;color:#a31515;">ModificationType</span><span style="font-size:x-small;color:#0000ff;">&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;</span><span style="font-size:x-small;color:#a31515;">Sequence</span><span style="font-size:x-small;color:#0000ff;">&gt;</span><span style="font-size:x-small;">10</span><span style="font-size:x-small;color:#0000ff;">&lt;/</span><span style="font-size:x-small;color:#a31515;">Sequence</span><span style="font-size:x-small;color:#0000ff;">&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;</span><span style="font-size:x-small;color:#a31515;">SetValueFromEnvVar</span><span style="font-size:x-small;color:#0000ff;">&gt;</span><span style="font-size:x-small;">true</span><span style="font-size:x-small;color:#0000ff;">&lt;/</span><span style="font-size:x-small;color:#a31515;">SetValueFromEnvVar</span><span style="font-size:x-small;color:#0000ff;">&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/</span><span style="font-size:x-small;color:#a31515;">Entry</span><span style="font-size:x-small;color:#0000ff;">&gt;<br /></span><span style="font-size:x-small;color:#0000ff;">&nbsp;&nbsp;&nbsp;&nbsp; &lt;/</span><span style="font-size:x-small;color:#a31515;">Entries</span><span style="font-size:x-small;color:#0000ff;">&gt;<br />&lt;/</span><span style="font-size:x-small;color:#a31515;">SPwebconfigMods</span><span style="font-size:x-small;color:#0000ff;">&gt;<br /></span><br />&#8230;and this can be deployed with your Feature as a file, so your receiver can find it.</p>
<p>I&#39;ll go through this XML from my class,&nbsp;as it also&nbsp;nicely details the properties for the&nbsp;<span style="color:#2b91af;">SPWebConfigModification</span>&nbsp;class that does the real work:</p>
<blockquote>
<p>The <span style="color:#0000ff;">AppSettingsAddEntry</span>&nbsp;class contains all the entries we need for an app setting (specialised from&nbsp;my base <span style="color:#a31515;">Entry</span><span style="font-size:x-small;color:#0000ff;"> </span>class) with&nbsp;properties, such as the xpath, defaulting to the correct value so we don&#39;t have to worry about setting them or making a mistake &#8211; you can set them to something else if you want to though.</p>
<p>My&nbsp;containing class <span style="color:#a31515;">SPwebconfigMods</span>&nbsp;class has the owner (this could be the feature GUID, but I&#39;ve just gone with the Feature&#39;s Receiver type). This is the one small&nbsp;difference between my object graph&nbsp;and the <span style="color:#2b91af;">SPWebConfigModification</span>&nbsp;class&nbsp;- I only put the owner on the container class, <span style="color:#a31515;">SPwebconfigMods</span>, and all mods will use that. Just remember it actually lives on the <span style="color:#2b91af;">SPWebConfigModification</span>&nbsp;class.</p>
<p><span style="color:#a31515;">Name </span>and <span style="color:#a31515;">Value </span>are my base properties for the simplest NVP Entry style, and match those on the SharePoint class. Where my subclasses have more properties (such as connection strings), at serialise time they are concatenated onto the&nbsp;name/value properties using an override and serialised out/in.</p>
<p>The <span style="color:#a31515;">ModificationType </span><span style="color:#000000;">can have 3 values: <span style="font-size:x-small;">EnsureChildNode</span>, <span style="font-size:x-small;">EnsureAttribute </span>and <span style="font-size:x-small;"><span style="font-size:x-small;">EnsureSection.</span></span></span></p>
<p>The <span style="color:#a31515;">Sequence&nbsp;</span><span style="color:#000000;">determines the order they are applied in, so if you have a section you have to add, ensure it&#39;s number is lower than the values it contains. In the above example this class defaults to 10 as it is in the second level of the xpath &#8211; if there were sub items I&#39;d set those classes to 20 be default, and the parent to 0 etc.</span></p>
<p>The <span style="color:#a31515;">SetValueFromEnvVar&nbsp;</span><span style="color:#000000;">is one of my own additions, so don&#39;t worry about it too much. Suffice to say, this allows me to pick up environment variables, from a batch file of via policies, at actiuvation time. This is an optional way I make releasing the same image accross different enviroments more manageable &#8211; the downside is you don&#39;t have a record of what was set in the SPwebconfig.xml file. Therefore the results in your web config could be different next time the feature is activated. This is different to actually placing a %SomeEnvVar% ref in the web config, which could then vary every time accessed. My preferece is not to do this, but to read from env vars at file creation time, so they are recorded and fixed after the first install. You pays yer money&#8230;</span></p>
</blockquote>
<blockquote>
<p><strong>NB2</strong>: I&#39;ve seen a project, I think on codeplex, that allows the management of these updates through a web interface &#8211; a very nice idea if you are&nbsp;comfortable with the parameters (more of those later). Obviously add/removing features that change these will mean you loose those interactive changes, so if I get a change I&#39;ll see if that project has an export/view facility so we can get them back into our feature (perhaps with some XSLT).&nbsp; I think <a href="http://blog.tedpattison.net/Lists/Posts/Post.aspx?ID=4">Ted Pattison</a> is the originator of that project. <a href="http://blog.thekid.me.uk/archive/2007/03/24/web-config-modification-manager-for-sharepoint.aspx">The Kid</a> also has a page/solution you can download to edit these interactively from within sharepoint.</p>
</blockquote>
<p>So how does this end up looking in my feature receiver? Every time I need web config changes in a feature I inherit from my base class like this:</p>
<p><span style="font-size:x-small;color:#0000ff;"><span style="font-size:x-small;color:#0000ff;"></p>
<blockquote><p>public</p></blockquote>
<p></span></span></p>
<blockquote><p><span style="font-size:x-small;"></span><span style="font-size:x-small;color:#0000ff;">class</span><span style="font-size:x-small;"> </span><span style="font-size:x-small;color:#2b91af;">UtilsFeatureReceiver</span><span style="font-size:x-small;"> : </span><span style="font-size:x-small;color:#2b91af;">ConfigSPFeatureReceiver<br /></span><span style="font-size:x-small;">{<br /></span><span style="font-size:x-small;color:#008000;">&nbsp;&nbsp;&nbsp; <br /></span><span style="font-size:x-small;color:#0000ff;">&nbsp;&nbsp;&nbsp; public</span><span style="font-size:x-small;"> </span><span style="font-size:x-small;color:#0000ff;">override</span><span style="font-size:x-small;"> </span><span style="font-size:x-small;color:#2b91af;">SPwebconfigMods</span><span style="font-size:x-small;"> SPwebconfigModsFeatureActivatedFileEntries(</span><span style="font-size:x-small;color:#2b91af;">Guid</span><span style="font-size:x-small;"> featureGuid)<br />&nbsp;&nbsp;&nbsp; {<br /></span><span style="font-size:x-small;color:#008000;">&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; // Optional method used to create SPwebConfigMods if xml file not found<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // Try to get the required setting from environment variables:<br /></span><span style="font-size:x-small;color:#0000ff;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; string</span><span style="font-size:x-small;"> machineNameKey = </span><span style="font-size:x-small;color:#a31515;">&quot;mrwaUtils.Logging.Log+DestinationTypes.EventLog&quot;</span><span style="font-size:x-small;">;<br /></span><span style="font-size:x-small;color:#0000ff;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; string</span><span style="font-size:x-small;"> machineName = </span><span style="font-size:x-small;color:#2b91af;">Environment</span><span style="font-size:x-small;">.GetEnvironmentVariable(machineNameKey);<br /></span><span style="font-size:x-small;color:#0000ff;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; if</span><span style="font-size:x-small;"> (machineName == </span><span style="font-size:x-small;color:#0000ff;">null</span><span style="font-size:x-small;"> || machineName.Trim().Length == 0)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; machineName = </span><span style="font-size:x-small;color:#2b91af;">Diagnose</span><span style="font-size:x-small;">.GetCurrentMachineName();<br /></span><span style="font-size:x-small;color:#2b91af;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;AppSettingsAddEntry</span><span style="font-size:x-small;"> cmAsae1 = </span><span style="font-size:x-small;color:#0000ff;">new</span><span style="font-size:x-small;"> </span><span style="font-size:x-small;color:#2b91af;">AppSettingsAddEntry</span><span style="font-size:x-small;">(machineNameKey, machineName);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;cmAsae1.SetValueFromEnvVar = </span><span style="font-size:x-small;color:#0000ff;">true</span><span style="font-size:x-small;">;<br /></span><span style="font-size:x-small;"><br /></span><span style="font-size:x-small;"></span><span style="font-size:x-small;color:#2b91af;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Entry</span><span style="font-size:x-small;">[] entries = </span><span style="font-size:x-small;color:#0000ff;">new</span><span style="font-size:x-small;"> </span><span style="font-size:x-small;color:#2b91af;">Entry</span><span style="font-size:x-small;">[] { cmAsae1 };<br /></span><span style="font-size:x-small;color:#0000ff;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; return</span><span style="font-size:x-small;"> </span><span style="font-size:x-small;color:#0000ff;">new</span><span style="font-size:x-small;"> </span><span style="font-size:x-small;color:#2b91af;">SPwebconfigMods</span><span style="font-size:x-small;">(</span><span style="font-size:x-small;">entries);<br /></span><span style="font-size:x-small;">&nbsp;&nbsp;&nbsp; }</p>
<p></span><span style="font-size:x-small;color:#0000ff;">&nbsp;&nbsp;&nbsp; public</span><span style="font-size:x-small;"> </span><span style="font-size:x-small;color:#0000ff;">override</span><span style="font-size:x-small;"> </span><span style="font-size:x-small;color:#0000ff;">void</span><span style="font-size:x-small;"> FeatureActivated(</span><span style="font-size:x-small;color:#2b91af;">SPFeatureReceiverProperties</span><span style="font-size:x-small;"> properties)<br />&nbsp;&nbsp;&nbsp; {<br /></span><span style="font-size:x-small;color:#0000ff;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; base</span><span style="font-size:x-small;">.FeatureActivated(properties, </span><span style="font-size:x-small;color:#0000ff;">true</span><span style="font-size:x-small;">); </span><span style="font-size:x-small;color:#008000;">// Call required for config update&nbsp;addition if inheriting from ConfigSPFeatureReceiver AND overriding this method</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // Do anything else you want to on Activation here</p>
<p></span><span style="font-size:x-small;">&nbsp;&nbsp;&nbsp; }<br /></span><span style="font-size:x-small;"><br /></span><span style="font-size:x-small;color:#0000ff;">&nbsp;&nbsp;&nbsp; public</span><span style="font-size:x-small;"> </span><span style="font-size:x-small;color:#0000ff;">override</span><span style="font-size:x-small;"> </span><span style="font-size:x-small;color:#0000ff;">void</span><span style="font-size:x-small;"> FeatureDeactivating(</span><span style="font-size:x-small;color:#2b91af;">SPFeatureReceiverProperties</span><span style="font-size:x-small;"> properties)<br />&nbsp;&nbsp;&nbsp; {<br /></span><span style="font-size:x-small;color:#0000ff;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; base</span><span style="font-size:x-small;">.FeatureDeactivating(properties); </span><span style="font-size:x-small;color:#008000;">// Call required for config update removal if you inherit from ConfigSPFeatureReceiver AND overriding this method</p>
<p></span><span style="font-size:x-small;color:#008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // Do anything else you want to on Deactivation here</p>
<p></span><span style="font-size:x-small;">&nbsp;&nbsp;&nbsp; }<br />}</span><span style="font-size:x-small;"><span style="font-size:x-small;"></p>
<p>&nbsp;</p>
<p></span></span></p></blockquote>
<p>That all for now. In <strong>Part 2</strong> I&#39;ll look a the makeup of my classes behind this, to better&nbsp;illustrate&nbsp;how to use the SharePoint config modifications yourself.</p>
<p><strong><em>A quick update on part 2 progress:</em></strong></p>
<p><em><a href="http://randomdust.com/blogs/ryan/archive/2008/03/22/featurereceiver-for-applying-custom-web-config-changes.aspx">Ryan McIntyre</a> has also just blogged about similar things he did with this useful little class in the past, and I&#39;ve been extending my solution a little also (to read/write the xml files to the feature&#39;s dir in the vs project and final 12 hive, and to read environment variables that can be pushed out by policies when the person installing the WSP needs different web.config settings per deploy). He mentions codeplex, so if others feel they might make use of a web config mods project, let us know. We&#39;ll try to put our heads together and come up with the best bits.</em></p>
</div>
<p><span style="font-size:9pt;color:blue;font-family:&#39;Courier New&#39;;mso-fareast-font-family:&#39;Times New Roman&#39;;mso-ansi-language:EN-AU;mso-fareast-language:EN-AU;mso-bidi-language:AR-SA;"><span style="color:#000000;font-family:Arial;"></p>
<p><a href="http://www.sevensigma.com.au" title="SevenSigma Business Solutions"><img border="0" src="/oldweblogfiles/mossms/sevensig_2D00_logo.jpg" alt="  " /></a></p>
<p><span style="font-size:9pt;color:blue;font-family:&#39;Courier New&#39;;mso-fareast-font-family:&#39;Times New Roman&#39;;mso-ansi-language:EN-AU;mso-fareast-language:EN-AU;mso-bidi-language:AR-SA;"><span style="color:#000000;font-family:Arial;"><a href="/oldweblogfiles/mossms/Mossums.bmp"><img border="0" src="/oldweblogfiles/mossms/Mossums.bmp" alt="  " /></a></span></span></p>
<p>&nbsp;</p>
<p><span style="font-size:10pt;font-family:Gautami;"><span class="nobr1"><span style="font-family:Helvetica;COLOR:green;">The end of another <a href="/mossms/default.aspx">MOSSuMS</a> post</span></span></span></p>
<p></span></span></p>
]]></content:encoded>
			<wfw:commentRss>http://vspug.com/mossms/2008/03/18/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Custom List Feature Definition</title>
		<link>http://vspug.com/mossms/2008/03/10/custom-list-feature/</link>
		<comments>http://vspug.com/mossms/2008/03/10/custom-list-feature/#comments</comments>
		<pubDate>Mon, 10 Mar 2008 09:39:00 +0000</pubDate>
		<dc:creator>mikes</dc:creator>
		
		<guid isPermaLink="false"></guid>
		<description><![CDATA[I&#39;m a Feature Creature
I wanted to add a single basic Custom List Template and Instance to my Feature, based on the built in Generic List. No new pages, content types, site columns or the such. Of course, the simple way is to create it in SharePoint and export the STP, but that&#39;s not what I [...]]]></description>
			<content:encoded><![CDATA[<div style="WIDTH:600px;"><font face="Times New Roman"><span style="FONT-FAMILY:&#39;Calibri&#39;,&#39;sans-serif&#39;;mso-ascii-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;"><span style="COLOR:green;FONT-FAMILY:&#39;Calibri&#39;,&#39;sans-serif&#39;;mso-ascii-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;"><br /><strong><span style="FONT-FAMILY:&#39;Calibri&#39;,&#39;sans-serif&#39;;mso-ascii-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;">I&#39;m a Feature Creature</p>
<p></span></strong></span></span></font></span></span><font face="Times New Roman"><span style="FONT-FAMILY:&#39;Calibri&#39;,&#39;sans-serif&#39;;mso-ascii-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;"><span style="FONT-SIZE:10pt;COLOR:black;FONT-FAMILY:&#39;Calibri&#39;,&#39;sans-serif&#39;;mso-ascii-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;">I wanted to add a single basic Custom List Template and Instance to my Feature, based on the built in Generic List. No new pages, content types, site columns or the such. </span></span></font></span></span></font><font face="Times New Roman"><span style="FONT-FAMILY:&#39;Calibri&#39;,&#39;sans-serif&#39;;mso-ascii-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;"><span style="FONT-SIZE:10pt;COLOR:black;FONT-FAMILY:&#39;Calibri&#39;,&#39;sans-serif&#39;;mso-ascii-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;">Of course, the simple way is to create it in SharePoint and export the STP, but that&#39;s not what I wanted (pity this fool). I wanted to achieve the same result using my xml definitions and schema, and keep the normal feature directory structure in the 12 hive.</p>
<p></span><span style="FONT-SIZE:10pt;COLOR:#4f6228;FONT-FAMILY:&#39;Calibri&#39;,&#39;sans-serif&#39;;mso-ascii-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;mso-themecolor:accent3;mso-themeshade:128;">I thought it was the simplest thing to add into a feature, but after getting annoyed with the MS Sharepoint Extensions for VS2005 not doing what I wanted (adding EditForm.aspx etc), and settling on the wonderful WSPBuilder (<a href="http://www.codeplex.com/wspbuilder">http://www.codeplex.com/wspbuilder</a>, <a href="http://keutmann.blogspot.com/2008/02/visual-studio-addin-and-templates-for.html">http://keutmann.blogspot.com/2008/02/visual-studio-addin-and-templates-for.html</a>) for my solutions, I had to resort to my fellow bloggers as usual. BTW I&#39;ve been told by <a title="MrCleverWorkArounds" href="http://www.cleverworkarounds.com/" target="_blank">MrCleverWorkArounds</a>&nbsp; &#8211; and I believe him as always &#8211; that STSDEV is the way to go for my WSP&nbsp;solutions, so I&#39;ll try that out next time and report back!</p>
<p></span><span style="FONT-SIZE:10pt;COLOR:#4f6228;mso-themecolor:accent3;mso-themeshade:128;"></span><span style="FONT-SIZE:10pt;COLOR:black;FONT-FAMILY:&#39;Calibri&#39;,&#39;sans-serif&#39;;mso-ascii-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;">So firstly I&#39;d like to thank the following for pointing me in the right general direction &#8211; all excellent reading, especially if your situation doesn&#39;t exactly match mine:<br /></span><span style="FONT-SIZE:10pt;FONT-FAMILY:&#39;Calibri&#39;,&#39;sans-serif&#39;;mso-ascii-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;"><a href="http://www.heathersolomon.com/blog/articles/1300.aspx"><span style="COLOR:purple;">http://www.heathersolomon.com/blog/articles/1300.aspx</span></a><br /><a href="http://jopx.blogspot.com/2007/05/sharepoint-2007-how-to-create-custom.html"><span style="COLOR:purple;">http://jopx.blogspot.com/2007/05/sharepoint-2007-how-to-create-custom.html</span></a><span style="COLOR:black;"></p>
<p>MS also provides <a title="MS Create a Custom List Definition" href="http://msdn2.microsoft.com/en-us/library/ms466023.aspx?topic=306117" target="_blank">this</a>, but most people&nbsp;have issues there because of missing and ambiguous information.</p>
<p></span></span></span></font></span></span></font><font face="Times New Roman"><span style="FONT-FAMILY:&#39;Calibri&#39;,&#39;sans-serif&#39;;mso-ascii-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;"><span style="FONT-SIZE:10pt;FONT-FAMILY:&#39;Calibri&#39;,&#39;sans-serif&#39;;mso-ascii-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;"><span style="COLOR:black;">I&#39;m not going to go through all the heartache involved, but here are the salient parts that got me my result and actually displayed the fields I added. There may be things in here I didn&#39;t need to do, but life is too short for me to work out exactly which ones!</p>
<p>So off we go.I have this structure in VS 2005. Don&#39;t worry about bloggers who say you have to have items in a flatter structure at the feature level, as we&#39;ll edit the schema appropriately later. I like this structure, and so does WSP builder, so I&#39;d recommend you stick with it.</p>
<p></span><span style="COLOR:#9bbb59;mso-themecolor:accent3;">project &#8211; mrwaUtils<br /><span style="mso-tab-count:1;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>folder &#8211; 12<br /><span style="mso-tab-count:1;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>folder &#8211; TEMPLATE<br /><span style="mso-tab-count:2;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>folder &#8211; FEATURES<br /><span style="mso-tab-count:3;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>folder &#8211; mrwaUtils<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; file &#8211; feature.xml<br /><span style="mso-tab-count:4;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>folder &#8211; lSettings<br /><span style="mso-tab-count:5;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>file &#8211; ListTemplateElements.xml<br /><span style="mso-tab-count:5;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>file &#8211; ListInstanceElements.xml<br /><span style="mso-tab-count:5;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>file &#8211; schema.xml</span></span><font face="Times New Roman"><span style="FONT-SIZE:10pt;"> </span><span style="FONT-SIZE:10pt;COLOR:black;FONT-FAMILY:&#39;Calibri&#39;,&#39;sans-serif&#39;;mso-ascii-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;"></span></font><span style="FONT-SIZE:10pt;"><font face="Times New Roman">&nbsp;</p>
<p></font></span><span style="FONT-SIZE:10pt;COLOR:black;FONT-FAMILY:&#39;Calibri&#39;,&#39;sans-serif&#39;;mso-ascii-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;">My feature.xml looks like this:</p>
<p></span><span style="FONT-SIZE:10pt;"></span><span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&#39;Courier New&#39;;">&lt;?</span><span style="FONT-SIZE:10pt;COLOR:#a31515;FONT-FAMILY:&#39;Courier New&#39;;">xml</span><span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&#39;Courier New&#39;;"> </span><span style="FONT-SIZE:10pt;COLOR:red;FONT-FAMILY:&#39;Courier New&#39;;">version</span><span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&#39;Courier New&#39;;">=</span><span style="FONT-SIZE:10pt;FONT-FAMILY:&#39;Courier New&#39;;">&quot;<span style="COLOR:blue;">1.0</span>&quot;<span style="COLOR:blue;"> </span><span style="COLOR:red;">encoding</span><span style="COLOR:blue;">=</span>&quot;<span style="COLOR:blue;">utf-8</span>&quot;<span style="COLOR:blue;">?&gt;<br />&lt;</span><span style="COLOR:#a31515;">Feature</span><span style="COLOR:blue;"> </span><span style="COLOR:red;">xmlns</span><span style="COLOR:blue;">=<a href="http://schemas.microsoft.com/sharepoint/">http://schemas.microsoft.com/sharepoint/</a> <br /></span><strong><span style="COLOR:red;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Id</span><span style="COLOR:blue;">=</span>&quot;<span style="COLOR:blue;">place-a-new-feature-GUID-here</span>&quot;</strong></span></span></font><font face="Times New Roman"><span style="FONT-FAMILY:&#39;Calibri&#39;,&#39;sans-serif&#39;;mso-ascii-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;"><span style="FONT-SIZE:10pt;FONT-FAMILY:&#39;Courier New&#39;;"><strong><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </strong><span style="COLOR:red;">Scope</span><span style="COLOR:blue;">=</span>&quot;<span style="COLOR:blue;">Site</span>&quot;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="COLOR:blue;">&nbsp;</span><span style="COLOR:red;">Hidden</span><span style="COLOR:blue;">=</span>&quot;<span style="COLOR:blue;">FALSE</span>&quot;<span style="COLOR:blue;"> <br /></span><span style="COLOR:red;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Title</span><span style="COLOR:blue;">=</span>&quot;<span style="COLOR:blue;">mrwaUtils Lists</span>&quot;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="COLOR:blue;">&nbsp;</span><span style="COLOR:red;">Version</span><span style="COLOR:blue;">=</span>&quot;<span style="COLOR:blue;">1.0.0.0</span>&quot;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="COLOR:blue;">&nbsp;</span><span style="COLOR:red;">DefaultResourceFile</span><span style="COLOR:blue;">=</span>&quot;<span style="COLOR:blue;">core</span>&quot;<br /></span></span></font><font face="Times New Roman"><span style="FONT-FAMILY:&#39;Calibri&#39;,&#39;sans-serif&#39;;mso-ascii-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;"><span style="FONT-SIZE:10pt;FONT-FAMILY:&#39;Courier New&#39;;"><span style="COLOR:red;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ReceiverAssembly</span><span style="COLOR:blue;"><span style="COLOR:blue;">=</span>&quot;<span style="COLOR:blue;">mrwaUtils, Version=1.0.0.0, Culture=neutral, PublicKeyToken=hexKeyTokenValue, processorArchitecture=MSIL</span>&quot;<br /><span style="COLOR:red;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ReceiverClass</span><span style="COLOR:blue;">=</span>&quot;<span style="COLOR:blue;">mrwaUtils.UtilsFeatureReceiver</span>&quot;&gt;</span></span></span></font><font face="Times New Roman"><span style="FONT-FAMILY:&#39;Calibri&#39;,&#39;sans-serif&#39;;mso-ascii-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;"><span style="FONT-SIZE:10pt;FONT-FAMILY:&#39;Courier New&#39;;"><font color="#0000ff" size="2"><br /></font></span></span></font><font face="Times New Roman"><span style="FONT-FAMILY:&#39;Calibri&#39;,&#39;sans-serif&#39;;mso-ascii-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;"><span style="FONT-SIZE:10pt;FONT-FAMILY:&#39;Courier New&#39;;"><span style="COLOR:blue;">&nbsp;&nbsp;&nbsp;&nbsp; &lt;</span><span style="COLOR:#a31515;">ElementManifests</span><span style="COLOR:blue;">&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;</span><span style="COLOR:#a31515;">ElementManifest</span><span style="COLOR:blue;"> </span><span style="COLOR:red;">Location</span><span style="COLOR:blue;">=</span>&quot;<span style="COLOR:blue;">lSettingsListTemplateElements.xml</span>&quot;<span style="COLOR:blue;"> /&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;</span><span style="COLOR:#a31515;">ElementManifest</span><span style="COLOR:blue;"> </span><span style="COLOR:red;">Location</span><span style="COLOR:blue;">=</span>&quot;<span style="COLOR:blue;">lSettingsListInstanceElements.xml</span>&quot;<span style="COLOR:blue;"> /&gt;<span style="mso-tab-count:2;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;</span><span style="COLOR:#a31515;">ElementFile</span><span style="COLOR:blue;"> </span><span style="COLOR:red;">Location</span><span style="COLOR:blue;">=</span>&quot;<span style="COLOR:blue;">lSettingsschema.xml</span>&quot;<span style="COLOR:blue;"> /&gt;<span style="mso-tab-count:1;"> </span><br />&nbsp;&nbsp;&nbsp;&nbsp; &lt;/</span><span style="COLOR:#a31515;">ElementManifests</span><span style="COLOR:blue;">&gt;<br />&lt;/</span><span style="COLOR:#a31515;">Feature</span><span style="COLOR:blue;">&gt;</span></span><span style="FONT-SIZE:10pt;"><font face="Times New Roman"> </font></span><span style="FONT-SIZE:10pt;"><font face="Times New Roman">&nbsp;</p>
<p></font></span><span style="FONT-SIZE:10pt;FONT-FAMILY:&#39;Calibri&#39;,&#39;sans-serif&#39;;mso-ascii-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;">The ListTemplateElements.xml file has a type of 100 (we aren&#39;t defining our own type, so don&#39;t need a number greater than 10000), I didn&#39;t want any attachments to my list so have disabled them, and&nbsp;I also set the feature Id as I use that to delete the list instance(s) on deactivation in the feature receiver class:</span><font face="Times New Roman"><span style="FONT-SIZE:10pt;"> </span><span style="FONT-SIZE:10pt;FONT-FAMILY:&#39;Calibri&#39;,&#39;sans-serif&#39;;mso-ascii-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;"></span></font><span style="FONT-SIZE:10pt;"><font face="Times New Roman">&nbsp;</p>
<p></font></span><span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&#39;Courier New&#39;;">&lt;?</span><span style="FONT-SIZE:10pt;COLOR:#a31515;FONT-FAMILY:&#39;Courier New&#39;;">xml</span><span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&#39;Courier New&#39;;"> </span><span style="FONT-SIZE:10pt;COLOR:red;FONT-FAMILY:&#39;Courier New&#39;;">version</span><span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&#39;Courier New&#39;;">=</span><span style="FONT-SIZE:10pt;FONT-FAMILY:&#39;Courier New&#39;;">&quot;<span style="COLOR:blue;">1.0</span>&quot;<span style="COLOR:blue;"> </span><span style="COLOR:red;">encoding</span><span style="COLOR:blue;">=</span>&quot;<span style="COLOR:blue;">utf-8</span>&quot;<span style="COLOR:blue;">?&gt;<br />&lt;</span><span style="COLOR:#a31515;">Elements</span><span style="COLOR:blue;"> </span><span style="COLOR:red;">Id</span><span style="COLOR:blue;">=</span>&quot;<span style="COLOR:blue;">place-a-new-template-elements-GUID-here</span>&quot;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="COLOR:red;">xmlns</span><span style="COLOR:blue;">=</span><span style="COLOR:blue;"><a href="http://schemas.microsoft.com/sharepoint/">http://schemas.microsoft.com/sharepoint/</a></span><span style="COLOR:blue;">&gt;<br /></span></span><span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&#39;Courier New&#39;;">&nbsp;&nbsp;&nbsp;&nbsp; &lt;</span><span style="FONT-SIZE:10pt;COLOR:#a31515;FONT-FAMILY:&#39;Courier New&#39;;">ListTemplate </span><span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&#39;Courier New&#39;;"></span><strong><span style="FONT-SIZE:10pt;COLOR:red;FONT-FAMILY:&#39;Courier New&#39;;">Name</span><span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&#39;Courier New&#39;;">=</span></strong><span style="FONT-SIZE:10pt;FONT-FAMILY:&#39;Courier New&#39;;"><strong>&quot;<span style="COLOR:blue;">lSettings</span>&quot;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</strong>&nbsp;&nbsp;&nbsp; <span style="COLOR:blue;"></span></span><strong><span style="FONT-SIZE:10pt;COLOR:red;FONT-FAMILY:&#39;Courier New&#39;;">DisplayName</span><span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&#39;Courier New&#39;;">=</span></strong><span style="FONT-SIZE:10pt;FONT-FAMILY:&#39;Courier New&#39;;"><strong>&quot;<span style="COLOR:blue;">lSettings</span>&quot;</strong> <br /><span style="COLOR:blue;"></span></span><strong><span style="FONT-SIZE:10pt;COLOR:red;FONT-FAMILY:&#39;Courier New&#39;;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; Type</span><span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&#39;Courier New&#39;;">=</span></strong><span style="FONT-SIZE:10pt;FONT-FAMILY:&#39;Courier New&#39;;"><strong>&quot;<span style="COLOR:blue;">100</span>&quot;</strong> <br /><span style="COLOR:blue;"></span></span><span style="FONT-SIZE:10pt;COLOR:red;FONT-FAMILY:&#39;Courier New&#39;;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; Description</span><span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&#39;Courier New&#39;;">=</span><span style="FONT-SIZE:10pt;FONT-FAMILY:&#39;Courier New&#39;;">&quot;<span style="COLOR:blue;">Single list of settings, their value and if they are active</span>&quot; <br /><span style="COLOR:blue;"></span></span><span style="FONT-SIZE:10pt;COLOR:red;FONT-FAMILY:&#39;Courier New&#39;;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; BaseType</span><span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&#39;Courier New&#39;;">=</span><span style="FONT-SIZE:10pt;FONT-FAMILY:&#39;Courier New&#39;;">&quot;<span style="COLOR:blue;">0</span>&quot;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="COLOR:blue;"></span></span><span style="FONT-SIZE:10pt;COLOR:red;FONT-FAMILY:&#39;Courier New&#39;;">OnQuickLaunch</span><span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&#39;Courier New&#39;;">=</span><span style="FONT-SIZE:10pt;FONT-FAMILY:&#39;Courier New&#39;;">&quot;<span style="COLOR:blue;">TRUE</span>&quot;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="COLOR:blue;"></span></span><span style="FONT-SIZE:10pt;COLOR:red;FONT-FAMILY:&#39;Courier New&#39;;">SecurityBits</span><span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&#39;Courier New&#39;;">=</span><span style="FONT-SIZE:10pt;FONT-FAMILY:&#39;Courier New&#39;;">&quot;<span style="COLOR:blue;">11</span>&quot;&nbsp;<br /></span><span style="FONT-SIZE:10pt;COLOR:red;FONT-FAMILY:&#39;Courier New&#39;;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;Sequence</span><span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&#39;Courier New&#39;;">=</span><span style="FONT-SIZE:10pt;FONT-FAMILY:&#39;Courier New&#39;;">&quot;<span style="COLOR:blue;">410</span>&quot;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="COLOR:blue;"></span></span><span style="FONT-SIZE:10pt;COLOR:red;FONT-FAMILY:&#39;Courier New&#39;;">Image</span><span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&#39;Courier New&#39;;">=</span><span style="FONT-SIZE:10pt;FONT-FAMILY:&#39;Courier New&#39;;">&quot;<span style="COLOR:blue;">/_layouts/images/itgen.gif</span>&quot; <br /><span style="COLOR:blue;"></span></span><strong><span style="FONT-SIZE:10pt;COLOR:red;FONT-FAMILY:&#39;Courier New&#39;;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; Unique</span><span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&#39;Courier New&#39;;">=</span></strong><span style="FONT-SIZE:10pt;FONT-FAMILY:&#39;Courier New&#39;;"><strong>&quot;<span style="COLOR:blue;">True</span>&quot;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </strong>&nbsp;&nbsp;&nbsp; <span style="COLOR:blue;"></span></span><strong><span style="FONT-SIZE:10pt;COLOR:red;FONT-FAMILY:&#39;Courier New&#39;;">DisableAttachments</span><span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&#39;Courier New&#39;;">=</span></strong><span style="FONT-SIZE:10pt;FONT-FAMILY:&#39;Courier New&#39;;"><strong>&quot;<span style="COLOR:blue;">True</span>&quot;</strong> <br /><span style="COLOR:blue;"></span></span><strong><span style="FONT-SIZE:10pt;COLOR:red;FONT-FAMILY:&#39;Courier New&#39;;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; FeatureId</span><span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&#39;Courier New&#39;;">=</span></strong><span style="FONT-SIZE:10pt;FONT-FAMILY:&#39;Courier New&#39;;"><strong>&quot;<span style="COLOR:blue;">place-your-existing-feature-xml-GUID-here</span>&quot;</strong><span style="COLOR:blue;"> /&gt;</span></span><span style="FONT-SIZE:10pt;"><font face="Times New Roman"> <br /></font></span><span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&#39;Courier New&#39;;">&lt;/</span><span style="FONT-SIZE:10pt;COLOR:#a31515;FONT-FAMILY:&#39;Courier New&#39;;">Elements</span><span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&#39;Courier New&#39;;">&gt;<br /></span><span style="FONT-SIZE:10pt;FONT-FAMILY:&#39;Calibri&#39;,&#39;sans-serif&#39;;mso-ascii-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;"><br />.and the ListInstanceElements.xml file, with a single example entry populating the three fields I&#39;ll add to my schema file next:</span><span style="FONT-SIZE:10pt;"><font face="Times New Roman"> </font></span><span style="FONT-SIZE:10pt;"><font face="Times New Roman">&nbsp;</p>
<p></font></span><span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&#39;Courier New&#39;;">&lt;?</span><span style="FONT-SIZE:10pt;COLOR:#a31515;FONT-FAMILY:&#39;Courier New&#39;;">xml</span><span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&#39;Courier New&#39;;"> </span><span style="FONT-SIZE:10pt;COLOR:red;FONT-FAMILY:&#39;Courier New&#39;;">version</span><span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&#39;Courier New&#39;;">=</span><span style="FONT-SIZE:10pt;FONT-FAMILY:&#39;Courier New&#39;;">&quot;<span style="COLOR:blue;">1.0</span>&quot;<span style="COLOR:blue;"> </span><span style="COLOR:red;">encoding</span><span style="COLOR:blue;">=</span>&quot;<span style="COLOR:blue;">utf-8</span>&quot;<span style="COLOR:blue;">?&gt;<br />&lt;</span><span style="COLOR:#a31515;">Elements</span><span style="COLOR:blue;"> </span><span style="COLOR:red;">Id</span><span style="COLOR:blue;">=</span>&quot;<span style="COLOR:blue;">place-a-new-instance-elements-GUID-here</span>&quot;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="COLOR:blue;">&nbsp;</span><span style="COLOR:red;">xmlns</span><span style="COLOR:blue;">=</span>&quot;<span style="COLOR:blue;">http://schemas.microsoft.com/sharepoint/</span>&quot;<span style="COLOR:blue;">&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp; &lt;</span><span style="COLOR:#a31515;">ListInstance</span><span style="COLOR:blue;"> </span><strong><span style="COLOR:red;">Title</span><span style="COLOR:blue;">=</span>&quot;<span style="COLOR:blue;">lSettings</span>&quot;</strong><span style="COLOR:blue;"> <br /></span><span style="COLOR:red;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Description</span><span style="COLOR:blue;">=</span>&quot;<span style="COLOR:blue;">Singleton list instance of lSettings template&quot;</span><span style="COLOR:blue;">&nbsp;<br /></span><strong><span style="COLOR:red;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; Url</span><span style="COLOR:blue;">=</span>&quot;<span style="COLOR:blue;">Lists/lSettings</span>&quot;</strong><span style="COLOR:blue;"> <br /></span><strong><span style="COLOR:red;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; FeatureId</span><span style="COLOR:blue;">=</span>&quot;<span style="COLOR:blue;">place-your-existing-feature-xml-GUID-here</span>&quot;</strong><span style="COLOR:blue;"> <br /></span><span style="COLOR:red;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; OnQuickLaunch</span><span style="COLOR:blue;">=</span>&quot;<span style="COLOR:blue;">True</span>&quot;<span style="COLOR:blue;"> <br /></span><strong><span style="COLOR:red;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; TemplateType</span><span style="COLOR:blue;">=</span>&quot;<span style="COLOR:blue;">100</span>&quot;</strong><span style="COLOR:blue;">&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;</span><span style="COLOR:#a31515;">Data</span><span style="COLOR:blue;">&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;</span><span style="COLOR:#a31515;">Rows</span><span style="COLOR:blue;">&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;</span><span style="COLOR:#a31515;">Row</span><span style="COLOR:blue;">&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;</span><span style="COLOR:#a31515;">Field</span><span style="COLOR:blue;"> </span><span style="COLOR:red;">Name</span><span style="COLOR:blue;">=</span>&quot;<span style="COLOR:blue;">Title</span>&quot;<span style="COLOR:blue;">&gt;</span>mrwaUtils.Log+DestTypes.EventLog<span style="COLOR:blue;">&lt;/</span><span style="COLOR:#a31515;">Field</span><span style="COLOR:blue;">&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;</span><span style="COLOR:#a31515;">Field</span><span style="COLOR:blue;"> </span><span style="COLOR:red;">Name</span><span style="COLOR:blue;">=</span>&quot;<span style="COLOR:blue;">Value</span>&quot;<span style="COLOR:blue;">&gt;</span>MACHINE01<span style="COLOR:blue;">&lt;/</span><span style="COLOR:#a31515;">Field</span><span style="COLOR:blue;">&gt;<span style="mso-tab-count:5;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;</span><span style="COLOR:#a31515;">Field</span><span style="COLOR:blue;"> </span><span style="COLOR:red;">Name</span><span style="COLOR:blue;">=</span>&quot;<span style="COLOR:blue;">Active</span>&quot;<span style="COLOR:blue;">&gt;</span>True<span style="COLOR:blue;">&lt;/</span><span style="COLOR:#a31515;">Field</span><span style="COLOR:blue;">&gt;<span style="mso-tab-count:4;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/</span><span style="COLOR:#a31515;">Row</span><span style="COLOR:blue;">&gt;<span style="mso-tab-count:4;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#8230;<span style="mso-tab-count:3;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/</span><span style="COLOR:#a31515;">Rows</span><span style="COLOR:blue;">&gt;<span style="mso-tab-count:2;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/</span><span style="COLOR:#a31515;">Data</span><span style="COLOR:blue;">&gt;<span style="mso-tab-count:1;">&nbsp;&nbsp;&nbsp;&nbsp; </span><br />&nbsp;&nbsp;&nbsp;&nbsp; &lt;/</span><span style="COLOR:#a31515;">ListInstance</span><span style="COLOR:blue;">&gt;<br />&lt;/</span><span style="COLOR:#a31515;">Elements</span><span style="COLOR:blue;">&gt;</span></span><span style="FONT-SIZE:10pt;"><font face="Times New Roman"> </font></span><span style="FONT-SIZE:10pt;"><font face="Times New Roman">&nbsp;</p>
<p></font></span><span style="FONT-SIZE:10pt;FONT-FAMILY:&#39;Calibri&#39;,&#39;sans-serif&#39;;mso-ascii-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;">Notice that the URL falls under </span><span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&#39;Calibri&#39;,&#39;sans-serif&#39;;mso-ascii-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;mso-bidi-font-family:&#39;Courier New&#39;;">Lists/</span><span style="FONT-SIZE:10pt;FONT-FAMILY:&#39;Calibri&#39;,&#39;sans-serif&#39;;mso-ascii-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;">, but unlike mine, your list instance name doesn&#39;t have to be the same as your list template name.</span></span></font></span></span></font><font face="Times New Roman"><span style="FONT-FAMILY:&#39;Calibri&#39;,&#39;sans-serif&#39;;mso-ascii-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;"><span style="FONT-SIZE:10pt;FONT-FAMILY:&#39;Calibri&#39;,&#39;sans-serif&#39;;mso-ascii-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;">I&#39;ve also set the featureId owning guid &#8211; I&#39;m not sure if SharePoint will do this for me anyway &#8211; but with this here it is an easy task to remove any list instances from the feature in the receiver deactivating event using a common piece of code.</p>
<p>And now to the monster, the <strong>schema.xml</strong> <img src="/emoticons/emotion-41.gif" alt="Ick!" />.</p>
<p>I found the best place to start was that installed with the <a title="SharePoint3 Extensions for VS2005" href="http://www.microsoft.com/downloads/details.aspx?FamilyId=A8A4E775-074D-4451-BE39-459921F79787&amp;displaylang=en">MS SP extensions</a>, so take a copy from&nbsp;your install. In my case that was &#39;C:Program FilesMicrosoft Visual Studio 8Common7IDEProjectTemplatesCacheExpCSharpSharePointListDefinition.zipListDefinitionsGenericListschema.xml&#39;.</p>
<p>The first things that need changing in the schema.xml file are the List element properties:</span><font face="Times New Roman"><span style="FONT-SIZE:10pt;"> </span><span style="FONT-SIZE:10pt;FONT-FAMILY:&#39;Calibri&#39;,&#39;sans-serif&#39;;mso-ascii-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;"></span></font><span style="FONT-SIZE:10pt;"><font face="Times New Roman">&nbsp;</p>
<p></font></span><span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&#39;Courier New&#39;;">&lt;?</span><span style="FONT-SIZE:10pt;COLOR:#a31515;FONT-FAMILY:&#39;Courier New&#39;;">xml</span><span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&#39;Courier New&#39;;"> </span><span style="FONT-SIZE:10pt;COLOR:red;FONT-FAMILY:&#39;Courier New&#39;;">version</span><span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&#39;Courier New&#39;;">=</span><span style="FONT-SIZE:10pt;FONT-FAMILY:&#39;Courier New&#39;;">&quot;<span style="COLOR:blue;">1.0</span>&quot;<span style="COLOR:blue;">?&gt;</p>
<p>&lt;!&#8211;</span><span style="COLOR:green;"> Removed for lSettings </span><span style="COLOR:blue;">&#8211;&gt;<br />&lt;!&#8211;</span><span style="COLOR:green;"> &lt;List xmlns:ows=&quot;Microsoft SharePoint&quot; Title=&quot;$projectname$&quot;<br />FolderCreation=&quot;FALSE&quot; Direction=&quot;$Resources:Direction;&quot;<br />Url=&quot;Lists/$safeprojectname$&quot; BaseType=&quot;0&quot;<br />xmlns=&quot;http://schemas.microsoft.com/sharepoint/&quot;&gt; </span><span style="COLOR:blue;">&#8211;&gt;<br />&lt;!&#8211;</span><span style="COLOR:green;"> /Removed for lSettings </span><span style="COLOR:blue;">&#8211;&gt;</p>
<p>&lt;!&#8211;</span><span style="COLOR:green;"> Added for lSettings </span><span style="COLOR:blue;">&#8211;&gt;<br />&lt;!&#8211;</span><span style="COLOR:green;"> This schema.xml is based on the generic list schema found at %ProgramFiles%Microsoft Visual Studio 8Common7IDEProjectTemplatesCacheExpCSharpSharePointListDefinition.zipListDefinitionsGenericListschema.xml </span><span style="COLOR:blue;">&#8211;&gt;<br />&lt;</span><span style="COLOR:#a31515;">List</span><span style="COLOR:blue;"> </span><span style="COLOR:red;">xmlns:ows</span><span style="COLOR:blue;">=</span>&quot;<span style="COLOR:blue;">Microsoft SharePoint</span>&quot;<span style="COLOR:blue;"> <br /></span><b style="mso-bidi-font-weight:normal;"><span style="COLOR:red;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Title</span><span style="COLOR:blue;">=</span>&quot;<span style="COLOR:blue;">lSettings</span>&quot;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </b><span style="COLOR:red;">FolderCreation</span><span style="COLOR:blue;">=</span>&quot;<span style="COLOR:blue;">FALSE</span>&quot;<br />&nbsp;&nbsp;&nbsp;&nbsp; <span style="COLOR:blue;">&nbsp;</span><span style="COLOR:red;">Direction</span><span style="COLOR:blue;">=</span>&quot;<span style="COLOR:blue;">$Resources:Direction;</span>&quot;<span style="COLOR:blue;"> <br /></span><b style="mso-bidi-font-weight:normal;"><span style="COLOR:red;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Url</span><span style="COLOR:blue;">=</span>&quot;<span style="COLOR:blue;">Lists/mwaUtils/lSettings</span>&quot;<br />&nbsp;&nbsp;&nbsp;&nbsp; </b><span style="COLOR:blue;">&nbsp;</span><span style="COLOR:red;">BaseType</span><span style="COLOR:blue;">=</span>&quot;<span style="COLOR:blue;">0</span>&quot;<span style="COLOR:blue;"> <br /></span><b style="mso-bidi-font-weight:normal;"><span style="COLOR:red;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Name</span><span style="COLOR:blue;">=</span>&quot;<span style="COLOR:blue;">lSettings</span>&quot;</b><span style="COLOR:blue;"> <br /></span><strong><span style="COLOR:red;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Id</span><span style="COLOR:blue;">=</span>&quot;<span style="COLOR:blue;">place-your-existing-template-elements-GUID-here</span>&quot;</strong><span style="COLOR:blue;"> <br /></span><b style="mso-bidi-font-weight:normal;"><span style="COLOR:red;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Type</span><span style="COLOR:blue;">=</span>&quot;<span style="COLOR:blue;">100</span>&quot;<br />&nbsp;&nbsp;&nbsp;&nbsp; </b><span style="COLOR:blue;">&nbsp;</span><span style="COLOR:red;">xmlns</span><span style="COLOR:blue;">=</span>&quot;<span style="COLOR:blue;">http://schemas.microsoft.com/sharepoint/</span>&quot;<span style="COLOR:blue;">&gt;</span></span><span style="FONT-SIZE:10pt;"><font face="Times New Roman"> <br /></font></span><span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&#39;Courier New&#39;;">&lt;!&#8211;</span><span style="FONT-SIZE:10pt;COLOR:green;FONT-FAMILY:&#39;Courier New&#39;;"> /Added for lSettings </span><span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&#39;Courier New&#39;;">&#8211;&gt;</span><span style="FONT-SIZE:10pt;"></span><span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&#39;Courier New&#39;;"><span style="mso-tab-count:1;"><br /></span>&lt;!&#8211;</span><span style="FONT-SIZE:10pt;COLOR:green;FONT-FAMILY:&#39;Courier New&#39;;"> _filecategory=&quot;ListDefinition&quot; _filetype=&quot;Schema&quot; _filename=&quot;schema.xml&quot; _uniqueid=&quot;$guid10$&quot; </span><span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&#39;Courier New&#39;;">&#8211;&gt;</span><font face="Times New Roman"><span style="FONT-SIZE:10pt;"> </span><span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&#39;Courier New&#39;;"></span></font><span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&#39;Courier New&#39;;"><span style="mso-tab-count:1;"><br /></span>&lt;</span><span style="FONT-SIZE:10pt;COLOR:#a31515;FONT-FAMILY:&#39;Courier New&#39;;">MetaData</span><span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&#39;Courier New&#39;;">&gt;</span><span style="FONT-SIZE:10pt;"></span><span style="FONT-SIZE:10pt;"><br /></span><span style="FONT-SIZE:10pt;FONT-FAMILY:&#39;Calibri&#39;,&#39;sans-serif&#39;;mso-ascii-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;"><br />The important points <b style="mso-bidi-font-weight:normal;">in bold </b>above are: set the list name and title to be that of your list template (which is the same as the features sub-folder we chose), add your feature name <strong>and</strong> title into the Url, place your feature TEMPLATE GUID as the Id, and add a Type in of 100.</p>
<p></span><span style="FONT-SIZE:10pt;FONT-FAMILY:&#39;Calibri&#39;,&#39;sans-serif&#39;;mso-ascii-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;">Now we&#39;ll move down a line to the content types section:</span><span style="FONT-SIZE:10pt;"></span><span style="FONT-SIZE:10pt;"><font face="Times New Roman">&nbsp;</p>
<p></font></span><span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&#39;Courier New&#39;;">&lt;</span><span style="FONT-SIZE:10pt;COLOR:#a31515;FONT-FAMILY:&#39;Courier New&#39;;">ContentTypes</span><span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&#39;Courier New&#39;;">&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp; &lt;!&#8211;</span><span style="FONT-SIZE:10pt;COLOR:green;FONT-FAMILY:&#39;Courier New&#39;;"> Removed for lSettings </span><span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&#39;Courier New&#39;;">&#8211;&gt;<span style="mso-tab-count:3;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;!&#8211;</span><span style="FONT-SIZE:10pt;COLOR:green;FONT-FAMILY:&#39;Courier New&#39;;"> &lt;ContentTypeRef ID=&quot;0&#215;01&quot;&gt;<span style="mso-tab-count:4;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; &lt;Folder TargetName=&quot;Item&quot;/&gt;<span style="mso-tab-count:3;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><br />&nbsp;&nbsp;&nbsp;&nbsp; &lt;/ContentTypeRef&gt;<span style="mso-tab-count:3;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><br />&nbsp;&nbsp;&nbsp;&nbsp; &lt;ContentTypeRef ID=&quot;0&#215;0120&quot;/&gt; </span><span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&#39;Courier New&#39;;">&#8211;&gt;<span style="mso-tab-count:3;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><br />&nbsp;&nbsp;&nbsp;&nbsp; &lt;!&#8211;</span><span style="FONT-SIZE:10pt;COLOR:green;FONT-FAMILY:&#39;Courier New&#39;;"> /Removed for lSettings </span><span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&#39;Courier New&#39;;">&#8211;&gt;</span><span style="FONT-SIZE:10pt;"><font face="Times New Roman"> <br /></font></span><span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&#39;Courier New&#39;;">&lt;/</span><span style="FONT-SIZE:10pt;COLOR:#a31515;FONT-FAMILY:&#39;Courier New&#39;;">ContentTypes</span><span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&#39;Courier New&#39;;">&gt;<br /></span><span style="FONT-SIZE:10pt;"></span><span style="FONT-SIZE:10pt;"><br /></span><span style="FONT-SIZE:10pt;FONT-FAMILY:&#39;Calibri&#39;,&#39;sans-serif&#39;;mso-ascii-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;">Just comment it all out &#8211; easy. On to the next line, Fields:</span><span style="FONT-SIZE:10pt;"><font face="Times New Roman"> </font></span><span style="FONT-SIZE:10pt;"><font face="Times New Roman">&nbsp;</p>
<p></font></span><span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&#39;Courier New&#39;;">&lt;</span><span style="FONT-SIZE:10pt;COLOR:#a31515;FONT-FAMILY:&#39;Courier New&#39;;">Fields</span><span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&#39;Courier New&#39;;">&gt;<span style="mso-tab-count:3;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><br />&nbsp;&nbsp;&nbsp;&nbsp; &lt;!&#8211;</span><span style="FONT-SIZE:10pt;COLOR:green;FONT-FAMILY:&#39;Courier New&#39;;"> Added for lSettings </span><span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&#39;Courier New&#39;;">&#8211;&gt;<br /></span></span></font><font face="Times New Roman"><span style="FONT-FAMILY:&#39;Calibri&#39;,&#39;sans-serif&#39;;mso-ascii-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;"><span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&#39;Courier New&#39;;">&nbsp;&nbsp;&nbsp;&nbsp; &lt;!&#8211;</span><span style="FONT-SIZE:10pt;COLOR:green;FONT-FAMILY:&#39;Courier New&#39;;"> More Info: http://msdn2.microsoft.com/en-us/library/aa543477.aspx </span><span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&#39;Courier New&#39;;">&#8211;&gt;<span style="mso-tab-count:3;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><br />&nbsp;&nbsp;&nbsp;&nbsp; &lt;</span><span style="FONT-SIZE:10pt;COLOR:#a31515;FONT-FAMILY:&#39;Courier New&#39;;">Field</span><span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&#39;Courier New&#39;;"> </span><span style="FONT-SIZE:10pt;COLOR:red;FONT-FAMILY:&#39;Courier New&#39;;">List</span><span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&#39;Courier New&#39;;">=</span><span style="FONT-SIZE:10pt;FONT-FAMILY:&#39;Courier New&#39;;">&quot;<span style="COLOR:blue;">lSettings</span>&quot;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="COLOR:blue;">&nbsp;</span><span style="COLOR:red;">Name</span><span style="COLOR:blue;">=</span>&quot;<span style="COLOR:blue;">Value</span>&quot;<span style="COLOR:blue;"> <br /></span><span style="COLOR:red;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Title</span><span style="COLOR:blue;">=</span>&quot;<span style="COLOR:blue;">Value</span>&quot;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="COLOR:blue;">&nbsp;</span><span style="COLOR:red;">StaticName</span><span style="COLOR:blue;">=</span>&quot;<span style="COLOR:blue;">Value</span>&quot;<br /><span style="COLOR:blue;"></span><span style="COLOR:red;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Type</span><span style="COLOR:blue;">=</span>&quot;<span style="COLOR:blue;">Text</span>&quot;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="COLOR:blue;">&nbsp;</span><span style="COLOR:red;">MaxLength</span><span style="COLOR:blue;">=</span>&quot;<span style="COLOR:blue;">255</span>&quot;<span style="COLOR:blue;"> <br /></span><span style="COLOR:red;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DisplayName</span><span style="COLOR:blue;">=</span>&quot;<span style="COLOR:blue;">Value</span>&quot;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="COLOR:blue;">&nbsp;</span><span style="COLOR:red;">ID</span><span style="COLOR:blue;">=</span>&quot;<span style="COLOR:blue;">{place-a-new-field-GUID-here}</span>&quot;<span style="COLOR:blue;"> <br /></span><span style="COLOR:red;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; FillInChoice</span><span style="COLOR:blue;">=</span>&quot;<span style="COLOR:blue;">TRUE</span>&quot;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="COLOR:blue;">&nbsp;</span><span style="COLOR:red;">ShowInDisplayForm</span><span style="COLOR:blue;">=</span>&quot;<span style="COLOR:blue;">TRUE</span>&quot;<span style="COLOR:blue;"> <br /></span><span style="COLOR:red;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ShowInListSettings</span><span style="COLOR:blue;">=</span>&quot;<span style="COLOR:blue;">TRUE</span>&quot;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="COLOR:blue;">&nbsp;</span><span style="COLOR:red;">ShowInViewForms</span><span style="COLOR:blue;">=</span>&quot;<span style="COLOR:blue;">TRUE</span>&quot;<span style="COLOR:blue;"> <br /></span><span style="COLOR:red;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ShowInNewForm</span><span style="COLOR:blue;">=</span>&quot;<span style="COLOR:blue;">TRUE</span>&quot;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="COLOR:blue;">&nbsp;</span><span style="COLOR:red;">Sealed</span><span style="COLOR:blue;">=</span>&quot;<span style="COLOR:blue;">TRUE</span>&quot;<span style="COLOR:blue;"> <br /></span><span style="COLOR:red;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ReadOnly</span><span style="COLOR:blue;">=</span>&quot;<span style="COLOR:blue;">FALSE</span>&quot;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="COLOR:blue;">&nbsp;</span><span style="COLOR:red;">ShowInEditForm</span><span style="COLOR:blue;">=</span>&quot;<span style="COLOR:blue;">TRUE</span>&quot;<span style="COLOR:blue;"> <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="COLOR:red;">Viewable</span><span style="COLOR:blue;">=</span>&quot;<span style="COLOR:blue;">TRUE</span>&quot;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="COLOR:blue;">&nbsp;</span><span style="COLOR:red;">Hidden</span><span style="COLOR:blue;">=</span>&quot;<span style="COLOR:blue;">FALSE</span>&quot;<span style="COLOR:blue;"> <br /></span><span style="COLOR:red;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SourceID</span><span style="COLOR:blue;">=</span><span style="COLOR:blue;"><a href="http://schemas.microsoft.com/sharepoint/v3">http://schemas.microsoft.com/sharepoint/v3</a></span><span style="COLOR:blue;"> <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="COLOR:red;">ColName</span><span style="COLOR:blue;">=</span>&quot;<span style="COLOR:blue;">nvarchar3</span>&quot;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="COLOR:blue;">&nbsp;</span><span style="COLOR:red;">RowOrdinal</span><span style="COLOR:blue;">=</span>&quot;<span style="COLOR:blue;">0</span>&quot;<span style="COLOR:blue;"> /&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; &lt;</span><span style="COLOR:#a31515;">Field</span><span style="COLOR:blue;"> </span><span style="COLOR:red;">List</span><span style="COLOR:blue;">=</span>&quot;<span style="COLOR:blue;">lSettings</span>&quot;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="COLOR:blue;">&nbsp;</span><span style="COLOR:red;">Name</span><span style="COLOR:blue;">=</span>&quot;<span style="COLOR:blue;">Active</span>&quot;<span style="COLOR:blue;"> <br /></span><span style="COLOR:red;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Title</span><span style="COLOR:blue;">=</span>&quot;<span style="COLOR:blue;">Active</span>&quot;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="COLOR:blue;">&nbsp;</span><span style="COLOR:red;">StaticName</span><span style="COLOR:blue;">=</span>&quot;<span style="COLOR:blue;">Active</span>&quot;<br /><span style="COLOR:blue;"></span><span style="COLOR:red;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Type</span><span style="COLOR:blue;">=</span>&quot;<span style="COLOR:blue;">Choice</span>&quot;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="COLOR:blue;">&nbsp;</span><span style="COLOR:red;">DisplayName</span><span style="COLOR:blue;">=</span>&quot;<span style="COLOR:blue;">Active</span>&quot;<span style="COLOR:blue;"> <br /></span><span style="COLOR:red;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; ID</span><span style="COLOR:blue;">=</span>&quot;<span style="COLOR:blue;">{place-a-new-field-GUID-here}</span>&quot;<br /><span style="COLOR:blue;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="COLOR:red;">FillInChoice</span><span style="COLOR:blue;">=</span>&quot;<span style="COLOR:blue;">FALSE</span>&quot;<span style="COLOR:blue;"> <br /></span><span style="COLOR:red;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;ShowInDisplayForm</span><span style="COLOR:blue;">=</span>&quot;<span style="COLOR:blue;">TRUE</span>&quot;<br /><span style="COLOR:blue;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;</span><span style="COLOR:red;">ShowInListSettings</span><span style="COLOR:blue;">=</span>&quot;<span style="COLOR:blue;">TRUE</span>&quot;<span style="COLOR:blue;">&nbsp;<br /></span><span style="COLOR:red;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; ShowInViewForms</span><span style="COLOR:blue;">=</span>&quot;<span style="COLOR:blue;">TRUE</span>&quot;<br /><font color="#0000ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;</font><span style="COLOR:red;">ShowInNewForm</span><span style="COLOR:blue;">=</span>&quot;<span style="COLOR:blue;">TRUE</span>&quot;<span style="COLOR:blue;"> <br /></span><span style="COLOR:red;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; Sealed</span><span style="COLOR:blue;">=</span>&quot;<span style="COLOR:blue;">TRUE</span>&quot;<br /><span style="COLOR:blue;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;</span><span style="COLOR:red;">Required</span><span style="COLOR:blue;">=</span>&quot;<span style="COLOR:blue;">TRUE</span>&quot;<span style="COLOR:blue;"> <br /></span><span style="COLOR:red;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; ReadOnly</span><span style="COLOR:blue;">=</span>&quot;<span style="COLOR:blue;">FALSE</span>&quot;<br /><span style="COLOR:blue;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;</span><span style="COLOR:red;">ShowInEditForm</span><span style="COLOR:blue;">=</span>&quot;<span style="COLOR:blue;">TRUE</span>&quot;<span style="COLOR:blue;"> <br /></span><span style="COLOR:red;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; Viewable</span><span style="COLOR:blue;">=</span>&quot;<span style="COLOR:blue;">TRUE</span>&quot;<br /><span style="COLOR:blue;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;</span><span style="COLOR:red;">Hidden</span><span style="COLOR:blue;">=</span>&quot;<span style="COLOR:blue;">FALSE</span>&quot;<span style="COLOR:blue;"> <br /></span><span style="COLOR:red;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; SourceID</span><span style="COLOR:blue;">=</span>&quot;<span style="COLOR:blue;">http://schemas.microsoft.com/sharepoint/v3</span>&quot;<span style="COLOR:blue;"> <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; </span><span style="COLOR:red;">ColName</span><span style="COLOR:blue;">=</span>&quot;<span style="COLOR:blue;">nvarchar4</span>&quot;<br /><span style="COLOR:blue;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;</span><span style="COLOR:red;">RowOrdinal</span><span style="COLOR:blue;">=</span>&quot;<span style="COLOR:blue;">0</span>&quot; <span style="COLOR:blue;">&gt;<span style="mso-tab-count:4;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;</span><span style="COLOR:#a31515;">CHOICES</span><span style="COLOR:blue;">&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;</span><span style="COLOR:#a31515;">CHOICE</span><span style="COLOR:blue;">&gt;</span>Yes<span style="COLOR:blue;">&lt;/</span><span style="COLOR:#a31515;">CHOICE</span><span style="COLOR:blue;">&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;</span><span style="COLOR:#a31515;">CHOICE</span><span style="COLOR:blue;">&gt;</span>No<span style="COLOR:blue;">&lt;/</span><span style="COLOR:#a31515;">CHOICE</span><span style="COLOR:blue;">&gt;<span style="mso-tab-count:4;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/</span><span style="COLOR:#a31515;">CHOICES</span><span style="COLOR:blue;">&gt;<span style="mso-tab-count:4;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;</span><span style="COLOR:#a31515;">MAPPINGS</span><span style="COLOR:blue;">&gt;<span style="mso-tab-count:5;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;</span><span style="COLOR:#a31515;">MAPPING</span><span style="COLOR:blue;"> </span><span style="COLOR:red;">Value</span><span style="COLOR:blue;">=</span>&quot;<span style="COLOR:blue;">true</span>&quot;<span style="COLOR:blue;">&gt;</span>Yes<span style="COLOR:blue;">&lt;/</span><span style="COLOR:#a31515;">MAPPING</span><span style="COLOR:blue;">&gt;<span style="mso-tab-count:5;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;</span><span style="COLOR:#a31515;">MAPPING</span><span style="COLOR:blue;"> </span><span style="COLOR:red;">Value</span><span style="COLOR:blue;">=</span>&quot;<span style="COLOR:blue;">false</span>&quot;<span style="COLOR:blue;">&gt;</span>No<span style="COLOR:blue;">&lt;/</span><span style="COLOR:#a31515;">MAPPING</span><span style="COLOR:blue;">&gt;<span style="mso-tab-count:4;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/</span><span style="COLOR:#a31515;">MAPPINGS</span><span style="COLOR:blue;">&gt;<span style="mso-tab-count:4;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;</span><span style="COLOR:#a31515;">Default</span><span style="COLOR:blue;">&gt;</span>Yes<span style="COLOR:blue;">&lt;/</span><span style="COLOR:#a31515;">Default</span><span style="COLOR:blue;">&gt;<span style="mso-tab-count:3;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><br />&nbsp;&nbsp;&nbsp;&nbsp; &lt;/</span><span style="COLOR:#a31515;">Field</span><span style="COLOR:blue;">&gt;<span style="mso-tab-count:3;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><br />&nbsp;&nbsp;&nbsp;&nbsp; &lt;!&#8211;</span><span style="COLOR:green;"> /Added for lSettings </span><span style="COLOR:blue;">&#8211;&gt;<br />&lt;/</span><span style="COLOR:#a31515;">Fields</span><span style="COLOR:blue;">&gt;</span></span><font face="Times New Roman"><span style="FONT-SIZE:10pt;"> </span><span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&#39;Courier New&#39;;"></span></font><span style="FONT-SIZE:10pt;"><font face="Times New Roman">&nbsp;</p>
<p></font></span><span style="FONT-SIZE:10pt;FONT-FAMILY:&#39;Calibri&#39;,&#39;sans-serif&#39;;mso-ascii-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;">Now, I know I&#39;ve set almost every property under the sun for my fields, but I was playing safe! Many of these aren&#39;t needed, but I&#39;m not strong enough to face working out which ones.</p>
<p>Apart from the default title field (which we don&#39;t need to add), I wanted a simple text field called Value, and a yes no choice field called active equating to the values true/false. Have a look at <a href="http://msdn2.microsoft.com/en-us/library/ms437580.aspx"><span style="COLOR:purple;">http://msdn2.microsoft.com/en-us/library/ms437580.aspx</span></a> for a list of types and the other properties you can set here.</p>
<p>OK, we&#39;re half way there with this schema monster. Now we&#39;ve got to find the first of two entries called &lt;ViewFields&gt; in&nbsp;the first of&nbsp;our two views (titled</span><span style="FONT-SIZE:10pt;"><font face="Times New Roman"> </font></span><span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&#39;Courier New&#39;;">&lt;</span><span style="FONT-SIZE:10pt;COLOR:#a31515;FONT-FAMILY:&#39;Courier New&#39;;">View</span><span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&#39;Courier New&#39;;"> </span><span style="FONT-SIZE:10pt;COLOR:red;FONT-FAMILY:&#39;Courier New&#39;;">BaseViewID</span><span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&#39;Courier New&#39;;">=</span><span style="FONT-SIZE:10pt;FONT-FAMILY:&#39;Courier New&#39;;">&quot;<span style="COLOR:blue;">0</span>&quot;<span style="COLOR:blue;"> </span><span style="COLOR:red;">Type</span><span style="COLOR:blue;">=</span>&quot;<span style="COLOR:blue;">HTML</span>&quot;<span style="COLOR:blue;">&gt;</span></span><span style="FONT-SIZE:10pt;FONT-FAMILY:&#39;Calibri&#39;,&#39;sans-serif&#39;;mso-ascii-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;">) &#8211; use find as it&#39;s about halfway through the file:</span><font face="Times New Roman"><span style="FONT-SIZE:10pt;"> </span><span style="FONT-SIZE:10pt;FONT-FAMILY:&#39;Calibri&#39;,&#39;sans-serif&#39;;mso-ascii-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;"></span></font><span style="FONT-SIZE:10pt;"><font face="Times New Roman">&nbsp;</p>
<p></font></span><span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&#39;Courier New&#39;;">&lt;</span><span style="FONT-SIZE:10pt;COLOR:#a31515;FONT-FAMILY:&#39;Courier New&#39;;">ViewFields</span><span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&#39;Courier New&#39;;">&gt;<span style="mso-tab-count:5;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><br />&nbsp;&nbsp;&nbsp;&nbsp; &lt;</span><span style="FONT-SIZE:10pt;COLOR:#a31515;FONT-FAMILY:&#39;Courier New&#39;;">FieldRef</span><span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&#39;Courier New&#39;;"> </span><span style="FONT-SIZE:10pt;COLOR:red;FONT-FAMILY:&#39;Courier New&#39;;">Name</span><span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&#39;Courier New&#39;;">=</span><span style="FONT-SIZE:10pt;FONT-FAMILY:&#39;Courier New&#39;;">&quot;<span style="COLOR:blue;">LinkTitleNoMenu</span>&quot;<span style="COLOR:blue;">&gt;&lt;/</span><span style="COLOR:#a31515;">FieldRef</span><span style="COLOR:blue;">&gt;<span style="mso-tab-count:5;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><br />&nbsp;&nbsp;&nbsp;&nbsp; &lt;!&#8211;</span><span style="COLOR:green;"> Added for lSettings </span><span style="COLOR:blue;">&#8211;&gt;<span style="mso-tab-count:5;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><br />&nbsp;&nbsp;&nbsp;&nbsp; &lt;</span><span style="COLOR:#a31515;">FieldRef</span><span style="COLOR:blue;"><span style="">&nbsp; </span></span><span style="COLOR:red;">Name</span><span style="COLOR:blue;">=</span>&quot;<span style="COLOR:blue;">Value</span>&quot;<span style="COLOR:blue;"> &gt;&lt;/</span><span style="COLOR:#a31515;">FieldRef</span><span style="COLOR:blue;">&gt;<span style="mso-tab-count:5;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><br />&nbsp;&nbsp;&nbsp;&nbsp; &lt;</span><span style="COLOR:#a31515;">FieldRef</span><span style="COLOR:blue;"><span style="">&nbsp; </span></span><span style="COLOR:red;">Name</span><span style="COLOR:blue;">=</span>&quot;<span style="COLOR:blue;">Active</span>&quot;<span style="COLOR:blue;"> &gt;&lt;/</span><span style="COLOR:#a31515;">FieldRef</span><span style="COLOR:blue;">&gt;<span style="mso-tab-count:5;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><br />&nbsp;&nbsp;&nbsp;&nbsp; &lt;!&#8211;</span><span style="COLOR:green;"> /Added for lSettings </span><span style="COLOR:blue;">&#8211;&gt;</span></span><span style="FONT-SIZE:10pt;"><font face="Times New Roman"> <br /></font></span><span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&#39;Courier New&#39;;">&lt;/</span><span style="FONT-SIZE:10pt;COLOR:#a31515;FONT-FAMILY:&#39;Courier New&#39;;">ViewFields</span><span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&#39;Courier New&#39;;">&gt;</span><span style="FONT-SIZE:10pt;"></span><span style="FONT-SIZE:10pt;"><br /></span><span style="FONT-SIZE:10pt;FONT-FAMILY:&#39;Calibri&#39;,&#39;sans-serif&#39;;mso-ascii-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;"><br />All I&#39;ve done is add my two field names as fieldrefs under the existing field ref entry. Move down to the next line and change the base view order (if you want to):</span><span style="FONT-SIZE:10pt;"><font face="Times New Roman">&nbsp;</font></span><span style="FONT-SIZE:10pt;"><font face="Times New Roman">&nbsp;</p>
<p></font></span><span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&#39;Courier New&#39;;">&lt;</span><span style="FONT-SIZE:10pt;COLOR:#a31515;FONT-FAMILY:&#39;Courier New&#39;;">Query</span><span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&#39;Courier New&#39;;">&gt;<span style="mso-tab-count:5;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><br />&nbsp;&nbsp;&nbsp;&nbsp; &lt;</span><span style="FONT-SIZE:10pt;COLOR:#a31515;FONT-FAMILY:&#39;Courier New&#39;;">OrderBy</span><span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&#39;Courier New&#39;;">&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;!&#8211;</span><span style="FONT-SIZE:10pt;COLOR:green;FONT-FAMILY:&#39;Courier New&#39;;"> Removed for lSettings </span><span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&#39;Courier New&#39;;">&#8211;&gt;<span style="mso-tab-count:6;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;!&#8211;</span><span style="FONT-SIZE:10pt;COLOR:green;FONT-FAMILY:&#39;Courier New&#39;;"> &lt;FieldRef Name=&quot;Modified&quot; Ascending=&quot;FALSE&quot;&gt;&lt;/FieldRef&gt; </span><span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&#39;Courier New&#39;;">&#8211;&gt;<span style="mso-tab-count:5;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="mso-tab-count:1;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;!&#8211;</span><span style="FONT-SIZE:10pt;COLOR:green;FONT-FAMILY:&#39;Courier New&#39;;"> /Removed for lSettings </span><span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&#39;Courier New&#39;;">&#8211;&gt;<span style="mso-tab-count:6;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;!&#8211;</span><span style="FONT-SIZE:10pt;COLOR:green;FONT-FAMILY:&#39;Courier New&#39;;"> Added for lSettings </span><span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&#39;Courier New&#39;;">&#8211;&gt;<span style="mso-tab-count:6;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;</span><span style="FONT-SIZE:10pt;COLOR:#a31515;FONT-FAMILY:&#39;Courier New&#39;;">FieldRef</span><span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&#39;Courier New&#39;;"> </span><span style="FONT-SIZE:10pt;COLOR:red;FONT-FAMILY:&#39;Courier New&#39;;">Name</span><span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&#39;Courier New&#39;;">=</span><span style="FONT-SIZE:10pt;FONT-FAMILY:&#39;Courier New&#39;;">&quot;<span style="COLOR:blue;">Title</span>&quot;<span style="COLOR:blue;"> </span><span style="COLOR:red;">Ascending</span><span style="COLOR:blue;">=</span>&quot;<span style="COLOR:blue;">TRUE</span>&quot;<span style="COLOR:blue;">&gt;&lt;/</span><span style="COLOR:#a31515;">FieldRef</span><span style="COLOR:blue;">&gt;<span style="mso-tab-count:6;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;!&#8211;</span><span style="COLOR:green;"> /Added for lSettings </span><span style="COLOR:blue;">&#8211;&gt;<span style="mso-tab-count:5;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><br />&nbsp;&nbsp;&nbsp;&nbsp; &lt;/</span><span style="COLOR:#a31515;">OrderBy</span><span style="COLOR:blue;">&gt;</span></span><font face="Times New Roman"><span style="FONT-SIZE:10pt;"> <br /></span><span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&#39;Courier New&#39;;"></span></font><span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&#39;Courier New&#39;;">&lt;/</span><span style="FONT-SIZE:10pt;COLOR:#a31515;FONT-FAMILY:&#39;Courier New&#39;;">Query</span><span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&#39;Courier New&#39;;">&gt;<br /></span><span style="FONT-SIZE:10pt;"></span><span style="FONT-SIZE:10pt;"><br /></span><span style="FONT-SIZE:10pt;FONT-FAMILY:&#39;Calibri&#39;,&#39;sans-serif&#39;;mso-ascii-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;">I&#39;ve replaced the modified sort with a title sort. We need to alter the next line as well to create a default AllItems view:</span><span style="FONT-SIZE:10pt;"><font face="Times New Roman"> </font></span><span style="FONT-SIZE:10pt;"><font face="Times New Roman">&nbsp;</p>
<p></font></span><span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&#39;Courier New&#39;;">&lt;!&#8211;</span><span style="FONT-SIZE:10pt;COLOR:green;FONT-FAMILY:&#39;Courier New&#39;;"> Removed for lSettings </span><span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&#39;Courier New&#39;;">&#8211;&gt;<br />&lt;!&#8211;</span><span style="FONT-SIZE:10pt;COLOR:green;FONT-FAMILY:&#39;Courier New&#39;;"> &lt;View BaseViewID=&quot;1&quot; Type=&quot;HTML&quot; WebPartZoneID=&quot;Main&quot; DisplayName=&quot;$Resources:core,objectiv_schema_mwsidcamlidC24;&quot; DefaultView=&quot;TRUE&quot; ImageUrl=&quot;/_layouts/images/generic.png&quot; Url=&quot;AllItems.aspx&quot;&gt;&lt;!&#8211; _locID@DisplayName=&quot;camlidCu2&quot; _locComment=&quot; &quot; </span><span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&#39;Courier New&#39;;">&#8211;&gt;<span style="mso-tab-count:3;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><br />&lt;!&#8211;</span><span style="FONT-SIZE:10pt;COLOR:green;FONT-FAMILY:&#39;Courier New&#39;;"> /Removed for lSettings </span><span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&#39;Courier New&#39;;">&#8211;&gt;<span style="mso-tab-count:3;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><br />&lt;!&#8211;</span><span style="FONT-SIZE:10pt;COLOR:green;FONT-FAMILY:&#39;Courier New&#39;;"> Added for lSettings </span><span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&#39;Courier New&#39;;">&#8211;&gt;<span style="mso-tab-count:3;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><br />&lt;</span><span style="FONT-SIZE:10pt;COLOR:#a31515;FONT-FAMILY:&#39;Courier New&#39;;">View</span><span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&#39;Courier New&#39;;"> </span><span style="FONT-SIZE:10pt;COLOR:red;FONT-FAMILY:&#39;Courier New&#39;;">BaseViewID</span><span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&#39;Courier New&#39;;">=</span><span style="FONT-SIZE:10pt;FONT-FAMILY:&#39;Courier New&#39;;">&quot;<span style="COLOR:blue;">1</span>&quot;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="COLOR:blue;">&nbsp;</span><span style="COLOR:red;">Type</span><span style="COLOR:blue;">=</span>&quot;<span style="COLOR:blue;">HTML</span>&quot;<br />&nbsp;&nbsp;&nbsp;&nbsp; <span style="COLOR:blue;">&nbsp;</span><span style="COLOR:red;">WebPartZoneID</span><span style="COLOR:blue;">=</span>&quot;<span style="COLOR:blue;">Main</span>&quot;<font color="#0000ff"><br /></font><span style="COLOR:red;">&nbsp;&nbsp;&nbsp; &nbsp; DisplayName</span><span style="COLOR:blue;">=</span>&quot;<span style="COLOR:blue;">$Resources:core,objectiv_schema_mwsidcamlidC24;</span>&quot;<span style="COLOR:blue;"> <br /></span><span style="COLOR:red;">&nbsp;&nbsp;&nbsp; &nbsp; DefaultView</span><span style="COLOR:blue;">=</span>&quot;<span style="COLOR:blue;">TRUE</span>&quot;<br /><span style="COLOR:blue;">&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;</span><span style="COLOR:red;">ImageUrl</span><span style="COLOR:blue;">=</span>&quot;<span style="COLOR:blue;">/_layouts/images/generic.png</span>&quot;<span style="COLOR:blue;"> <br />&nbsp;&nbsp;&nbsp; &nbsp; </span><span style="COLOR:red;">Url</span><span style="COLOR:blue;">=</span>&quot;<span style="COLOR:blue;">AllItems.aspx</span>&quot;<br /><span style="COLOR:blue;">&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;</span><span style="COLOR:red;">SetupPath</span><span style="COLOR:blue;">=</span>&quot;<span style="COLOR:blue;">pagesviewpage.aspx</span>&quot;<span style="COLOR:blue;"> &gt;</span></span><font face="Times New Roman"><span style="FONT-SIZE:10pt;"> <br /></span><span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&#39;Courier New&#39;;"></span></font><span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&#39;Courier New&#39;;">&lt;!&#8211;</span><span style="FONT-SIZE:10pt;COLOR:green;FONT-FAMILY:&#39;Courier New&#39;;"> /Added for lSettings </span><span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&#39;Courier New&#39;;">&#8211;&gt;</span><span style="FONT-SIZE:10pt;"></span><span style="FONT-SIZE:10pt;"><font face="Times New Roman">&nbsp;</p>
<p></font></span><span style="FONT-SIZE:10pt;FONT-FAMILY:&#39;Calibri&#39;,&#39;sans-serif&#39;;mso-ascii-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;">I added the setup path pagesviewpage.aspx &#8211; that will give us the default generated forms, rather than having to code our own. Now find the next/last &lt;ViewFields&gt; entry:</span><span style="FONT-SIZE:10pt;"></span><span style="FONT-SIZE:10pt;"><font face="Times New Roman">&nbsp;</p>
<p></font></span><span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&#39;Courier New&#39;;">&lt;</span><span style="FONT-SIZE:10pt;COLOR:#a31515;FONT-FAMILY:&#39;Courier New&#39;;">ViewFields</span><span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&#39;Courier New&#39;;">&gt;<span style="mso-tab-count:1;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><br />&nbsp;&nbsp;&nbsp;&nbsp; &lt;!&#8211;</span><span style="FONT-SIZE:10pt;COLOR:green;FONT-FAMILY:&#39;Courier New&#39;;"> Removed for lSettings </span><span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&#39;Courier New&#39;;">&#8211;&gt;<span style="mso-tab-count:5;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><br />&nbsp;&nbsp;&nbsp;&nbsp; &lt;!&#8211;</span><span style="FONT-SIZE:10pt;COLOR:green;FONT-FAMILY:&#39;Courier New&#39;;"> &lt;FieldRef Name=&quot;Attachments&quot;&gt;&lt;/FieldRef&gt; </span><span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&#39;Courier New&#39;;">&#8211;&gt;<span style="mso-tab-count:5;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><br />&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; &lt;!&#8211;</span><span style="FONT-SIZE:10pt;COLOR:green;FONT-FAMILY:&#39;Courier New&#39;;"> /Removed for lSettings </span><span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&#39;Courier New&#39;;">&#8211;&gt;<span style="mso-tab-count:5;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><br />&nbsp;&nbsp;&nbsp;&nbsp; &lt;</span><span style="FONT-SIZE:10pt;COLOR:#a31515;FONT-FAMILY:&#39;Courier New&#39;;">FieldRef</span><span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&#39;Courier New&#39;;"> </span><span style="FONT-SIZE:10pt;COLOR:red;FONT-FAMILY:&#39;Courier New&#39;;">Name</span><span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&#39;Courier New&#39;;">=</span><span style="FONT-SIZE:10pt;FONT-FAMILY:&#39;Courier New&#39;;">&quot;<span style="COLOR:blue;">LinkTitle</span>&quot;<span style="COLOR:blue;">&gt;&lt;/</span><span style="COLOR:#a31515;">FieldRef</span><span style="COLOR:blue;">&gt;<span style="mso-tab-count:5;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><br />&nbsp;&nbsp;&nbsp;&nbsp; &lt;!&#8211;</span><span style="COLOR:green;"> Added for lSettings </span><span style="COLOR:blue;">&#8211;&gt;<span style="mso-tab-count:5;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><br />&nbsp;&nbsp;&nbsp;&nbsp; &lt;</span><span style="COLOR:#a31515;">FieldRef</span><span style="COLOR:blue;"><span style="">&nbsp; </span></span><span style="COLOR:red;">Name</span><span style="COLOR:blue;">=</span>&quot;<span style="COLOR:blue;">Value</span>&quot;<span style="COLOR:blue;"> &gt;&lt;/</span><span style="COLOR:#a31515;">FieldRef</span><span style="COLOR:blue;">&gt;<span style="mso-tab-count:5;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><br />&nbsp;&nbsp;&nbsp;&nbsp; &lt;</span><span style="COLOR:#a31515;">FieldRef</span><span style="COLOR:blue;"><span style="">&nbsp; </span></span><span style="COLOR:red;">Name</span><span style="COLOR:blue;">=</span>&quot;<span style="COLOR:blue;">Active</span>&quot;<span style="COLOR:blue;"> &gt;&lt;/</span><span style="COLOR:#a31515;">FieldRef</span><span style="COLOR:blue;">&gt;<span style="mso-tab-count:5;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><br />&nbsp;&nbsp;&nbsp;&nbsp; &lt;!&#8211;</span><span style="COLOR:green;"> /Added for lSettings </span><span style="COLOR:blue;">&#8211;&gt;</span></span><font face="Times New Roman"><span style="FONT-SIZE:10pt;"> <br /></span><span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&#39;Courier New&#39;;"></span></font><span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&#39;Courier New&#39;;">&lt;/</span><span style="FONT-SIZE:10pt;COLOR:#a31515;FONT-FAMILY:&#39;Courier New&#39;;">ViewFields</span><span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&#39;Courier New&#39;;">&gt;<br /></span><span style="FONT-SIZE:10pt;"><br /></span><span style="FONT-SIZE:10pt;FONT-FAMILY:&#39;Calibri&#39;,&#39;sans-serif&#39;;mso-ascii-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;">Once again, paste in your new fields. Put them under the existing linkTitle fieldref. Also, as I didn&#39;t want attachments, I commented out the attachments field ref. Now move to the next line in the file:</span><span style="FONT-SIZE:10pt;"><font face="Times New Roman"> </font></span><span style="FONT-SIZE:10pt;"><font face="Times New Roman">&nbsp;</p>
<p></font></span><span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&#39;Courier New&#39;;">&lt;</span><span style="FONT-SIZE:10pt;COLOR:#a31515;FONT-FAMILY:&#39;Courier New&#39;;">Query</span><span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&#39;Courier New&#39;;">&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp; &lt;</span><span style="FONT-SIZE:10pt;COLOR:#a31515;FONT-FAMILY:&#39;Courier New&#39;;">OrderBy</span><span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&#39;Courier New&#39;;">&gt;<span style="mso-tab-count:6;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;!&#8211;</span><span style="FONT-SIZE:10pt;COLOR:green;FONT-FAMILY:&#39;Courier New&#39;;"> Removed for lSettings </span><span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&#39;Courier New&#39;;">&#8211;&gt;<span style="mso-tab-count:6;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="FONT-SIZE:10pt;COLOR:green;FONT-FAMILY:&#39;Courier New&#39;;">&lt;FieldRef Name=&quot;ID&quot;&gt;&lt;/FieldRef&gt; </span><span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&#39;Courier New&#39;;">&#8211;&gt;<span style="mso-tab-count:4;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="mso-tab-count:2;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;!&#8211;</span><span style="FONT-SIZE:10pt;COLOR:green;FONT-FAMILY:&#39;Courier New&#39;;"> /Removed for lSettings </span><span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&#39;Courier New&#39;;">&#8211;&gt;<span style="mso-tab-count:6;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;!&#8211;</span><span style="FONT-SIZE:10pt;COLOR:green;FONT-FAMILY:&#39;Courier New&#39;;"> Added for lSettings </span><span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&#39;Courier New&#39;;">&#8211;&gt;<span style="mso-tab-count:6;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;</span><span style="FONT-SIZE:10pt;COLOR:#a31515;FONT-FAMILY:&#39;Courier New&#39;;">FieldRef</span><span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&#39;Courier New&#39;;"> </span><span style="FONT-SIZE:10pt;COLOR:red;FONT-FAMILY:&#39;Courier New&#39;;">Name</span><span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&#39;Courier New&#39;;">=</span><span style="FONT-SIZE:10pt;FONT-FAMILY:&#39;Courier New&#39;;">&quot;<span style="COLOR:blue;">Title</span>&quot;<span style="COLOR:blue;"> </span><span style="COLOR:red;">Ascending</span><span style="COLOR:blue;">=</span>&quot;<span style="COLOR:blue;">TRUE</span>&quot;<span style="COLOR:blue;">&gt;&lt;/</span><span style="COLOR:#a31515;">FieldRef</span><span style="COLOR:blue;">&gt;<span style="mso-tab-count:6;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;!&#8211;</span><span style="COLOR:green;"> /Added for lSettings </span><span style="COLOR:blue;">&#8211;&gt;<span style="mso-tab-count:5;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><br />&nbsp;&nbsp;&nbsp;&nbsp; &lt;/</span><span style="COLOR:#a31515;">OrderBy</span><span style="COLOR:blue;">&gt;</span></span><font face="Times New Roman"><span style="FONT-SIZE:10pt;"> <br /></span><span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&#39;Courier New&#39;;"></span></font><span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&#39;Courier New&#39;;">&lt;/</span><span style="FONT-SIZE:10pt;COLOR:#a31515;FONT-FAMILY:&#39;Courier New&#39;;">Query</span><span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&#39;Courier New&#39;;">&gt;<br /></span><span style="FONT-SIZE:10pt;"></span><span style="FONT-SIZE:10pt;"><br /></span><span style="FONT-SIZE:10pt;FONT-FAMILY:&#39;Calibri&#39;,&#39;sans-serif&#39;;mso-ascii-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;">I wanted my entries ordered by title, so adding this gives me the sort I want in the AllItems view. If you don&#39;t care about ordering don&#39;t edit that bit. Lastly, the next few lines need editing:</span><span style="FONT-SIZE:10pt;"><font face="Times New Roman"> </font></span><span style="FONT-SIZE:10pt;"><font face="Times New Roman">&nbsp;</p>
<p></font></span><span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&#39;Courier New&#39;;">&nbsp;&nbsp;&nbsp;&nbsp; &lt;/</span><span style="FONT-SIZE:10pt;COLOR:#a31515;FONT-FAMILY:&#39;Courier New&#39;;">View</span><span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&#39;Courier New&#39;;">&gt;<span style="mso-tab-count:2;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><br />&lt;/</span><span style="FONT-SIZE:10pt;COLOR:#a31515;FONT-FAMILY:&#39;Courier New&#39;;">Views</span><span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&#39;Courier New&#39;;">&gt;<span style="mso-tab-count:2;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><br />&lt;</span><span style="FONT-SIZE:10pt;COLOR:#a31515;FONT-FAMILY:&#39;Courier New&#39;;">Forms</span><span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&#39;Courier New&#39;;">&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp; &lt;!&#8211;</span><span style="FONT-SIZE:10pt;COLOR:green;FONT-FAMILY:&#39;Courier New&#39;;"> Removed for lSettings </span><span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&#39;Courier New&#39;;">&#8211;&gt;<span style="mso-tab-count:3;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><br />&nbsp;&nbsp;&nbsp;&nbsp; &lt;!&#8211;</span><span style="FONT-SIZE:10pt;COLOR:green;FONT-FAMILY:&#39;Courier New&#39;;"> &lt;Form Type=&quot;DisplayForm&quot; Url=&quot;DispForm.aspx&quot; WebPartZoneID=&quot;Main&quot;/&gt;<span style="mso-tab-count:3;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><br />&nbsp;&nbsp;&nbsp;&nbsp; &lt;Form Type=&quot;EditForm&quot; Url=&quot;EditForm.aspx&quot; WebPartZoneID=&quot;Main&quot;/&gt;<span style="mso-tab-count:3;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><br />&nbsp;&nbsp;&nbsp;&nbsp; &lt;Form Type=&quot;NewForm&quot; Url=&quot;NewForm.aspx&quot; WebPartZoneID=&quot;Main&quot;/&gt; </span><span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&#39;Courier New&#39;;">&#8211;&gt;<span style="mso-tab-count:3;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><br />&nbsp;&nbsp;&nbsp;&nbsp; &lt;!&#8211;</span><span style="FONT-SIZE:10pt;COLOR:green;FONT-FAMILY:&#39;Courier New&#39;;"> /Removed for lSettings </span><span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&#39;Courier New&#39;;">&#8211;&gt;<span style="mso-tab-count:3;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><br />&nbsp;&nbsp;&nbsp;&nbsp; &lt;!&#8211;</span><span style="FONT-SIZE:10pt;COLOR:green;FONT-FAMILY:&#39;Courier New&#39;;"> Added for lSettings </span><span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&#39;Courier New&#39;;">&#8211;&gt;<span style="mso-tab-count:3;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><br />&nbsp;&nbsp;&nbsp;&nbsp; &lt;</span><span style="FONT-SIZE:10pt;COLOR:#a31515;FONT-FAMILY:&#39;Courier New&#39;;">Form</span><span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&#39;Courier New&#39;;"> </span><span style="FONT-SIZE:10pt;COLOR:red;FONT-FAMILY:&#39;Courier New&#39;;">Type</span><span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&#39;Courier New&#39;;">=</span><span style="FONT-SIZE:10pt;FONT-FAMILY:&#39;Courier New&#39;;">&quot;<span style="COLOR:blue;">DisplayForm</span>&quot;<span style="COLOR:blue;"> </span><span style="COLOR:red;">Url</span><span style="COLOR:blue;">=</span>&quot;<span style="COLOR:blue;">DispForm.aspx</span>&quot;<span style="COLOR:blue;"> </span><span style="COLOR:red;">SetupPath</span><span style="COLOR:blue;">=</span>&quot;<span style="COLOR:blue;">pagesform.aspx</span>&quot;<span style="COLOR:blue;"> </span><span style="COLOR:red;">WebPartZoneID</span><span style="COLOR:blue;">=</span>&quot;<span style="COLOR:blue;">Main</span>&quot;<span style="COLOR:blue;"> /&gt;<span style="mso-tab-count:3;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><br />&nbsp;&nbsp;&nbsp;&nbsp; &lt;</span><span style="COLOR:#a31515;">Form</span><span style="COLOR:blue;"> </span><span style="COLOR:red;">Type</span><span style="COLOR:blue;">=</span>&quot;<span style="COLOR:blue;">EditForm</span>&quot;<span style="COLOR:blue;"> </span><span style="COLOR:red;">Url</span><span style="COLOR:blue;">=</span>&quot;<span style="COLOR:blue;">EditForm.aspx</span>&quot;<span style="COLOR:blue;"> </span><span style="COLOR:red;">SetupPath</span><span style="COLOR:blue;">=</span>&quot;<span style="COLOR:blue;">pagesform.aspx</span>&quot;<span style="COLOR:blue;"> </span><span style="COLOR:red;">WebPartZoneID</span><span style="COLOR:blue;">=</span>&quot;<span style="COLOR:blue;">Main</span>&quot;<span style="COLOR:blue;"> /&gt;<span style="mso-tab-count:3;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><br />&nbsp;&nbsp;&nbsp;&nbsp; &lt;</span><span style="COLOR:#a31515;">Form</span><span style="COLOR:blue;"> </span><span style="COLOR:red;">Type</span><span style="COLOR:blue;">=</span>&quot;<span style="COLOR:blue;">NewForm</span>&quot;<span style="COLOR:blue;"> </span><span style="COLOR:red;">Url</span><span style="COLOR:blue;">=</span>&quot;<span style="COLOR:blue;">NewForm.aspx</span>&quot;<span style="COLOR:blue;"> </span><span style="COLOR:red;">SetupPath</span><span style="COLOR:blue;">=</span>&quot;<span style="COLOR:blue;">pagesform.aspx</span>&quot;<span style="COLOR:blue;"> </span><span style="COLOR:red;">WebPartZoneID</span><span style="COLOR:blue;">=</span>&quot;<span style="COLOR:blue;">Main</span>&quot;<span style="COLOR:blue;"> /&gt;<span style="mso-tab-count:3;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><br />&nbsp;&nbsp;&nbsp;&nbsp; &lt;!&#8211;</span><span style="COLOR:green;"> /Added for lSettings </span><span style="COLOR:blue;">&#8211;&gt;<span style="mso-tab-count:3;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br /></span></span></span><span style="FONT-SIZE:10pt;"></span><span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&#39;Courier New&#39;;"></span><span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&#39;Courier New&#39;;">&lt;/</span><span style="FONT-SIZE:10pt;COLOR:#a31515;FONT-FAMILY:&#39;Courier New&#39;;">Forms</span><span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&#39;Courier New&#39;;">&gt;<br /></span><span style="FONT-SIZE:10pt;"></span><span style="FONT-SIZE:10pt;"><br /></span><span style="FONT-SIZE:10pt;FONT-FAMILY:&#39;Calibri&#39;,&#39;sans-serif&#39;;mso-ascii-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;">I&#39;ve added the setup path property, as I want the system generated forms, rather than the new copies of the forms that the MS extensions give you by default &#8211; too much duplication if you don&#39;t need any changes to those!</p>
<p>Phew &#8211; that&#39;s it. Run `ol WSPBuilder over it, install and deploy your solution, and activate the feature. Just remember that deactivating a feature doesn&#39;t remove its list instances &#8211; so you might want to do that in the feature receiver class.</p>
<p></span><span style="FONT-SIZE:10pt;"></span><span style="FONT-SIZE:10pt;FONT-FAMILY:&#39;Calibri&#39;,&#39;sans-serif&#39;;mso-ascii-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;">Next time, slightly delayed I&#39;m sorry, but as promised, I&#39;ll be sharing my SPConfigUpdate code. I hope you&#39;ll like it, as it&#39;s a really cool, but rarely used, feature of SharePoint.</span><span style="FONT-SIZE:10pt;"></span></span></font></span></span></font></span></span></font></div>
]]></content:encoded>
			<wfw:commentRss>http://vspug.com/mossms/2008/03/10/custom-list-feature/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Flags Attract Attention, look at used car lots!</title>
		<link>http://vspug.com/mossms/2008/02/26/</link>
		<comments>http://vspug.com/mossms/2008/02/26/#comments</comments>
		<pubDate>Tue, 26 Feb 2008 09:01:00 +0000</pubDate>
		<dc:creator>mikes</dc:creator>
		
		<guid isPermaLink="false"></guid>
		<description><![CDATA[
Hoist those flags!
In the course of some work on WSS utils (a log class) quite a&#160;while ago, a fellow developer asked me about the Flags attribute&#160;I was using. Now, rightly or wrongly, I tend to festoon my code with these so it looks more like bunting,&#160;and I just love them. I think I may be [...]]]></description>
			<content:encoded><![CDATA[<div style="width:600px;">
<p><span style="COLOR:green;"><strong><br />Hoist those flags!</strong></span></p>
<p>In the course of some work on WSS utils (a log class) quite a&nbsp;while ago, a fellow developer asked me about the Flags attribute&nbsp;I was using. Now, rightly or wrongly, I tend to festoon my code with these so it looks more like bunting,&nbsp;and I just love them. I think I may be a repressed used car salesman. So in honour of the recently passed <strong><em>Australia Day</em></strong>, and our recovery from it, I&#39;d like to promote some jingoistic <strong><em>Green and Gold</em></strong> FlagsAttribute waving. <img src="/emoticons/emotion-46.gif" alt="Drinks" /></p>
<p>The easiest way to think&nbsp;of flags, (if you don&#39;t know&nbsp;dip switches, chmod and the like),&nbsp;is a pattern of bits in the base 2 orders of magnitude, where 1 is on and 0 is off:</p>
<blockquote>
<p><strong>&nbsp;1&nbsp;&nbsp;&nbsp; 2&nbsp;&nbsp;&nbsp; 4&nbsp;&nbsp;&nbsp; 8&nbsp;&nbsp; 16&nbsp; 32</strong><br />&nbsp;0&nbsp;&nbsp;&nbsp; 1&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp; 1&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp; 0<br /><em>&nbsp;off&nbsp;&nbsp;on&nbsp; off&nbsp; on&nbsp; off&nbsp;&nbsp;off</em></p>
</blockquote>
<p><span style="COLOR:green;"><strong>Hang out the bunting:</strong></span></p>
<p><span style="COLOR:green;"><span style="color:#000000;">So to promote the use of these little beauties, I&#39;ll give a quick low-down here.&nbsp;<em>I&#39;ll cover more of the wonders of attributes and reflection in another post, when I&nbsp;blog on my&nbsp;my web config updater in a few days.</em></span></span></p>
<p><span style="COLOR:green;"><strong><span style="color:#000000;">How do you string them over your code? Easy:</span></strong></span></p>
<blockquote><p><span style="COLOR:green;"><span style="font-size:x-small;color:#0000ff;"><span style="font-size:x-small;"><span style="font-size:x-small;"><font size="2"></p>
<p>[</p>
<p></font></span></p>
<p><span style="font-size:x-small;color:#2b91af;">Flags</span><span style="font-size:x-small;">]<br /></span><span style="font-size:x-small;color:#0000ff;">public</span><span style="font-size:x-small;"> </span><span style="font-size:x-small;color:#0000ff;">enum</span><span style="font-size:x-small;"> </span><span style="font-size:x-small;color:#2b91af;">DestinationTypes</span><span style="font-size:x-small;"> : </span><span style="font-size:x-small;color:#0000ff;">int</span><span style="font-size:x-small;"> { EventLog=1, File=2, Email=4, SharePoint=8, SysLog=16, Log4Net=32};</span></p>
<p></span></span><span style="font-size:x-small;"></span></span></p></blockquote>
<p>That&#39;s looking more festive already, fluttering at the top of the class. Why the base 2 enum values? Well, that gives us that wonderful ability to turn on, or off, any number of these brightly coloured triangles without getting them all twisted up. What&#39;s more, you could even add a composite type into the definition like this: <span style="font-size:x-small;"></span><span style="font-size:x-small;"><span style="font-size:x-small;"><font size="2"></p>
<blockquote>
<p>&nbsp;</p>
</blockquote>
<p></font></span></p>
<blockquote>
<p><span style="font-size:x-small;color:#0000ff;">public</span><span style="font-size:x-small;"> </span><span style="font-size:x-small;color:#0000ff;">enum</span><span style="font-size:x-small;"> </span><span style="font-size:x-small;color:#2b91af;">DestinationTypes</span><span style="font-size:x-small;"> : </span><span style="font-size:x-small;color:#0000ff;">int</span><span style="font-size:x-small;"> { EventLog = 1, File = 2, Email = 4, SharePoint = 8, SysLog = 16, Log4Net = 32, NonMS = SysLog | Log4Net };</span></p>
</blockquote>
<p><span style="font-size:x-small;">Just be careful with those composite flags, as it&#39;s easy to&nbsp;get tangled in the&nbsp;implications of turning on what looked like a single flag!</span></p>
<p></span><strong>Seeing as I&#39;m ambidextrous, here&#39;s how to turn&nbsp;two flags on:</strong><span style="font-size:x-small;color:#0000ff;"></span><span style="font-size:x-small;color:#0000ff;"> <font size="2" color="#0000ff"></p>
<blockquote>
<p>public</p>
</blockquote>
<p></font></span></p>
<blockquote>
<p><span style="font-size:x-small;"> </span><span style="font-size:x-small;color:#0000ff;">static</span><span style="font-size:x-small;"> </span><span style="font-size:x-small;color:#2b91af;">DestinationTypes</span><span style="font-size:x-small;"> NotYetImplemented = </span><span style="font-size:x-small;color:#2b91af;">DestinationTypes</span><span style="font-size:x-small;">.SysLog | </span><span style="font-size:x-small;color:#2b91af;">DestinationTypes</span><span style="font-size:x-small;">.Log4Net;</span></p>
</blockquote>
<p>..and it just&nbsp;as easy as the above&nbsp;&#39;bitwise or&#39;&nbsp;if you have an existing value and you want to flick a single switch in there -&nbsp;just use the old = assignment&nbsp;shortcut notation&nbsp;with it:<span style="font-size:x-small;"></span><span style="font-size:x-small;"> <font size="2"></p>
<blockquote>
<p>&nbsp;</p>
</blockquote>
<p></font></span></p>
<blockquote>
<p><span style="font-size:x-small;color:#2b91af;">DestinationTypes</span><span style="font-size:x-small;"> addDestinationsToMe = </span><span style="font-size:x-small;color:#2b91af;">DestinationTypes</span><span style="font-size:x-small;">.SysLog | </span><span style="font-size:x-small;color:#2b91af;">DestinationTypes</span><span style="font-size:x-small;">.Log4Net;<br />addDestinationsToMe |= </span><span style="font-size:x-small;color:#2b91af;">DestinationTypes</span><span style="font-size:x-small;">.SharePoint;</span></p>
</blockquote>
<p><span style="font-size:x-small;"><strong>Lets save energy, and turn a flag off now.</strong> The &#39;bitwise and&#39; is the go:</span></p>
<p><span style="font-size:x-small;"><span style="font-size:x-small;"><font size="2"></p>
<blockquote>
<p>&nbsp;</p>
</blockquote>
<p></font></span></p>
<blockquote>
<p><span style="font-size:x-small;color:#2b91af;">DestinationTypes</span><span style="font-size:x-small;"> takeDestinationFromMe = </span><span style="font-size:x-small;color:#2b91af;">DestinationTypes</span><span style="font-size:x-small;">.SysLog | </span><span style="font-size:x-small;color:#2b91af;">DestinationTypes</span><span style="font-size:x-small;">.Log4Net;<br />takeDestinationFromMe &amp;= </span><span style="font-size:x-small;color:#2b91af;">DestinationTypes</span><span style="font-size:x-small;">.SharePoint;</span></p>
</blockquote>
<p></span></p>
<p>But how do I test if the sharepoint flag is on, or off, if I can&#39;t see the <strong>semaphore</strong>? <img src="/emoticons/emotion-24.gif" alt="Left Hug" />&nbsp;The bitwise operator boys come to our rescue again, in the form of the &#39;bitwise and&#39;. Test for a value like this:</p>
<p><span style="font-size:x-small;"><font size="2"></p>
<blockquote>
<p>&nbsp;</p>
</blockquote>
<p></font></span></p>
<blockquote>
<p><span style="font-size:x-small;color:#0000ff;">if</span><span style="font-size:x-small;"> ((addDestinationsToMe &amp; </span><span style="font-size:x-small;color:#2b91af;">DestinationTypes</span><span style="font-size:x-small;">.SharePoint) == </span><span style="font-size:x-small;color:#2b91af;">DestinationTypes</span><span style="font-size:x-small;">.SharePoint)<br />{}</span></p>
</blockquote>
<p>&nbsp;Now there&#39;s only one thing left, and that&#39;s iterating through ALL&nbsp;types. You don&#39;t need to dig into reflection to do this &#8211; just use&nbsp;following simple snippet:</p>
<p><span style="font-size:x-small;color:#0000ff;"><font size="2" color="#0000ff"></p>
<blockquote>
<p>foreach</p>
</blockquote>
<p></font></span></p>
<blockquote>
<p><span style="font-size:x-small;"> (</span><span style="font-size:x-small;color:#2b91af;">DestinationTypes</span><span style="font-size:x-small;"> dest </span><span style="font-size:x-small;color:#0000ff;">in</span><span style="font-size:x-small;"> </span><span style="font-size:x-small;color:#2b91af;">Enum</span><span style="font-size:x-small;">.GetValues(</span><span style="font-size:x-small;color:#0000ff;">typeof</span><span style="font-size:x-small;">(</span><span style="font-size:x-small;color:#2b91af;">DestinationTypes</span><span style="font-size:x-small;">)))</span></p>
</blockquote>
<p><span style="font-size:x-small;">&nbsp;So what does this darn&nbsp;<strong><em>FlagsAttribute</em></strong> do for me, as my enum would work fine without it, and it still&nbsp;<strong><em>sequentially numbers the elements, even with the flags attribute there</em></strong>, unless&nbsp;I set&nbsp;my own values?</span></p>
<blockquote>
<p><span style="font-size:x-small;">Thats a good question. Apart from annotating the type&nbsp;for reflection, there is only one small difference&#8230;</span></p>
<p><span style="font-size:x-small;"></span><span style="font-size:x-small;color:#0000ff;"><span style="font-size:x-small;"></span><span style="font-size:x-small;color:#0000ff;"><span style="font-size:x-small;"></span><span style="font-size:x-small;color:#0000ff;">class</span><span style="font-size:x-small;"> </span><span style="font-size:x-small;color:#2b91af;">Program<br /></span><span style="font-size:x-small;">{</p>
<p></span><span style="font-size:x-small;color:#0000ff;">&nbsp; public</span><span style="font-size:x-small;"> </span><span style="font-size:x-small;color:#0000ff;">enum</span><span style="font-size:x-small;"> </span><span style="font-size:x-small;color:#2b91af;">DestinationTypesNoAttribute</span><span style="font-size:x-small;"> : </span><span style="font-size:x-small;color:#0000ff;">int</span><span style="font-size:x-small;"> { EventLog = 1, File = 2, Email = 4, SharePoint = 8, SysLog = 16, Log4Net = 32 };<br /></span><span style="font-size:x-small;color:#008000;"><br /></span><span style="font-size:x-small;">&nbsp; [</span><span style="font-size:x-small;color:#2b91af;">Flags</span><span style="font-size:x-small;">]<br /></span><span style="font-size:x-small;color:#0000ff;">&nbsp; public</span><span style="font-size:x-small;"> </span><span style="font-size:x-small;color:#0000ff;">enum</span><span style="font-size:x-small;"> </span><span style="font-size:x-small;color:#2b91af;">DestinationTypes</span><span style="font-size:x-small;"> : </span><span style="font-size:x-small;color:#0000ff;">int</span><span style="font-size:x-small;"> { EventLog = 1, File = 2, Email = 4, SharePoint = 8, SysLog = 16, Log4Net = 32 };</span><span style="font-size:x-small;color:#008000;"></p>
<p></span><span style="font-size:x-small;color:#0000ff;">&nbsp; static</span><span style="font-size:x-small;"> </span><span style="font-size:x-small;color:#0000ff;">void</span><span style="font-size:x-small;"> Main(</span><span style="font-size:x-small;color:#0000ff;">string</span><span style="font-size:x-small;">[] args)<br />&nbsp; {</p>
<p></span><span style="font-size:x-small;color:#0000ff;">&nbsp;&nbsp;&nbsp; string</span><span style="font-size:x-small;"> name = </span><span style="font-size:x-small;color:#0000ff;">typeof</span><span style="font-size:x-small;">(</span><span style="font-size:x-small;color:#2b91af;">DestinationTypes</span><span style="font-size:x-small;">).FullName;<br /></span><span style="font-size:x-small;color:#008000;">&nbsp;&nbsp;&nbsp; // name = &quot;ConsoleApplication1.Program+DestinationTypes&quot;<br /></span><span style="font-size:x-small;">&nbsp;&nbsp;&nbsp; name = </span><span style="font-size:x-small;color:#2b91af;">DestinationTypes</span><span style="font-size:x-small;">.SharePoint.GetType().Name;<br /></span><span style="font-size:x-small;color:#008000;">&nbsp;&nbsp;&nbsp; // name = &quot;DestinationTypes&quot;<br /></span><span style="font-size:x-small;">&nbsp;&nbsp;&nbsp; name = </span><span style="font-size:x-small;color:#2b91af;">DestinationTypes</span><span style="font-size:x-small;">.SharePoint.GetType().FullName;<br /></span><span style="font-size:x-small;color:#008000;">&nbsp;&nbsp;&nbsp; // name = &quot;ConsoleApplication1.Program+DestinationTypes&quot;<br /></span><span style="font-size:x-small;color:#0000ff;">&nbsp;&nbsp;&nbsp; string</span><span style="font-size:x-small;"> strVal = </span><span style="font-size:x-small;color:#2b91af;">DestinationTypes</span><span style="font-size:x-small;">.SharePoint.ToString();<br /></span><span style="font-size:x-small;color:#008000;">&nbsp;&nbsp;&nbsp; // strVal = &quot;SharePoint&quot;<br /></span><span style="font-size:x-small;color:#0000ff;">&nbsp;&nbsp;&nbsp; int</span><span style="font-size:x-small;"> intVal = (</span><span style="font-size:x-small;color:#0000ff;">int</span><span style="font-size:x-small;">)</span><span style="font-size:x-small;color:#2b91af;">DestinationTypes</span><span style="font-size:x-small;">.SharePoint;<br /></span><span style="font-size:x-small;color:#008000;">&nbsp;&nbsp;&nbsp; // intVal = 8<br /></span><span style="font-size:x-small;">&nbsp;&nbsp;&nbsp; intVal = (</span><span style="font-size:x-small;color:#0000ff;">int</span><span style="font-size:x-small;">)(</span><span style="font-size:x-small;color:#2b91af;">DestinationTypes</span><span style="font-size:x-small;">.Email | </span><span style="font-size:x-small;color:#2b91af;">DestinationTypes</span><span style="font-size:x-small;">.SharePoint);<br /></span><span style="font-size:x-small;color:#008000;">&nbsp;&nbsp;&nbsp; // intVal = 12 (ie 001100 binary = 12 decimal)<br /></span><span style="font-size:x-small;">&nbsp;&nbsp;&nbsp; strVal = (</span><span style="font-size:x-small;color:#2b91af;">DestinationTypes</span><span style="font-size:x-small;">.SharePoint | </span><span style="font-size:x-small;color:#2b91af;">DestinationTypes</span><span style="font-size:x-small;">.Email).ToString();<br /></span><span style="font-size:x-small;color:#008000;">&nbsp;&nbsp;&nbsp; // ***&nbsp;<strong>strVal = &quot;Email, SharePoint&quot;<img src="/emoticons/emotion-1.gif" alt="Smile" /></strong><br /></span><span style="font-size:x-small;"><br />&nbsp;&nbsp;&nbsp; name = </span><span style="font-size:x-small;color:#0000ff;">typeof</span><span style="font-size:x-small;">(</span><span style="font-size:x-small;color:#2b91af;">DestinationTypesNoAttribute</span><span style="font-size:x-small;">).FullName;<br /></span><span style="font-size:x-small;color:#008000;">&nbsp;&nbsp;&nbsp; // name = &quot;ConsoleApplication1.Program+DestinationTypesNoAttribute&quot;<br /></span><span style="font-size:x-small;">&nbsp;&nbsp;&nbsp; name = </span><span style="font-size:x-small;color:#2b91af;">DestinationTypesNoAttribute</span><span style="font-size:x-small;">.SharePoint.GetType().Name;<br /></span><span style="font-size:x-small;color:#008000;">&nbsp;&nbsp;&nbsp; // name = &quot;DestinationTypesNoAttribute&quot;<br /></span><span style="font-size:x-small;">&nbsp;&nbsp;&nbsp; name = </span><span style="font-size:x-small;color:#2b91af;">DestinationTypesNoAttribute</span><span style="font-size:x-small;">.SharePoint.GetType().FullName;<br /></span><span style="font-size:x-small;color:#008000;">&nbsp;&nbsp;&nbsp; // name = &quot;ConsoleApplication1.Program+DestinationTypesNoAttribute&quot; <br /></span><span style="font-size:x-small;">&nbsp;&nbsp;&nbsp; strVal = </span><span style="font-size:x-small;color:#2b91af;">DestinationTypesNoAttribute</span><span style="font-size:x-small;">.SharePoint.ToString();<br /></span><span style="font-size:x-small;color:#008000;">&nbsp;&nbsp; &nbsp;// strVal = &quot;SharePoint&quot;<br /></span><span style="font-size:x-small;">&nbsp;&nbsp; &nbsp;intVal = (</span><span style="font-size:x-small;color:#0000ff;">int</span><span style="font-size:x-small;">)</span><span style="font-size:x-small;color:#2b91af;">DestinationTypesNoAttribute</span><span style="font-size:x-small;">.SharePoint;<br /></span><span style="font-size:x-small;color:#008000;">&nbsp;&nbsp; &nbsp;// intVal = 8<br /></span><span style="font-size:x-small;">&nbsp;&nbsp; &nbsp;intVal = (</span><span style="font-size:x-small;color:#0000ff;">int</span><span style="font-size:x-small;">)(</span><span style="font-size:x-small;color:#2b91af;">DestinationTypesNoAttribute</span><span style="font-size:x-small;">.Email | </span><span style="font-size:x-small;color:#2b91af;">DestinationTypesNoAttribute</span><span style="font-size:x-small;">.SharePoint);<br /></span><span style="font-size:x-small;color:#008000;">&nbsp;&nbsp; &nbsp;// intVal = 12 (ie 001100 binary = 12 decimal)<br /></span><span style="font-size:x-small;">&nbsp;&nbsp; &nbsp;strVal = (</span><span style="font-size:x-small;color:#2b91af;">DestinationTypesNoAttribute</span><span style="font-size:x-small;">.SharePoint | </span><span style="font-size:x-small;color:#2b91af;">DestinationTypesNoAttribute</span><span style="font-size:x-small;">.Email).ToString();<br /></span><span style="font-size:x-small;color:#008000;">&nbsp;&nbsp; &nbsp;// ***&nbsp;<strong>strVal = &quot;12&quot;<img src="/emoticons/emotion-43.gif" alt="Confused" /></strong><br /></span><span style="font-size:x-small;">&nbsp; }<br />}</span></span><span style="font-size:x-small;"> <font size="2" color="#0000ff"><font size="2"></p>
<p>&nbsp;</p>
<p></font></font></span><font size="2" color="#0000ff"></p>
<p>&nbsp;</p>
<p></font></span></p>
<p><strong>So there you have it! <em>When serialising, you get the CSV format, not the integer value &#8211; very nice if you need to decipher or edit a stream.</em></strong>&nbsp;Note the &#39;+&#39; annotation to show a field member of the class, but as you would expect, the value isn&#39;t considrered a type.</p>
</blockquote>
<p><span style="font-size:x-small;">Finally, given that these are still enums, remember you can cast,test and use them as integers (although you might get compiler warnings you can ignore &#8211; just ensure you use valid values for your range).</span></p>
<p><span style="COLOR:green;"><strong>Now there are no more excuses for your classes to be dull, just hang some flags up and flick the switch!</strong></span></p>
</div>
<p>&nbsp;</p>
<p><a href="http://www.sevensigma.com.au" title="SevenSigma Business Solutions"><img border="0" src="/oldweblogfiles/mossms/sevensig_2D00_logo.jpg" alt="  " /></a></p>
<p><span style="font-size:9pt;color:blue;font-family:&#39;Courier New&#39;;mso-fareast-font-family:&#39;Times New Roman&#39;;mso-ansi-language:EN-AU;mso-fareast-language:EN-AU;mso-bidi-language:AR-SA;"><span style="color:#000000;font-family:Arial;"><a href="/oldweblogfiles/mossms/Mossums.bmp"><img border="0" src="/oldweblogfiles/mossms/Mossums.bmp" alt="  " /></a></span></span></p>
<p>&nbsp;</p>
<p><span style="font-size:10pt;font-family:Gautami;"><span class="nobr1"><span style="font-family:Helvetica;COLOR:green;">The end of another <a href="/mossms/default.aspx">MOSSuMS</a> post</span></span></span></p>
]]></content:encoded>
			<wfw:commentRss>http://vspug.com/mossms/2008/02/26/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
