<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>edhild's WebLog : MOSS</title><link>http://blogs.msdn.com/edhild/archive/tags/MOSS/default.aspx</link><description>Tags: MOSS</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>Demoing Geneva Beta 2 with MOSS 2007</title><link>http://blogs.msdn.com/edhild/archive/2009/06/15/demoing-geneva-beta-2-with-moss-2007.aspx</link><pubDate>Mon, 15 Jun 2009 19:29:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9753713</guid><dc:creator>edhild</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/edhild/comments/9753713.aspx</comments><wfw:commentRss>http://blogs.msdn.com/edhild/commentrss.aspx?PostID=9753713</wfw:commentRss><description>&lt;P&gt;I put together a little video demo of using Geneva Beta 2 stuff with MOSS 2007. You can get these VMs using the links from the previous post, but it is an awful lot to download and setup. So I thought a video might be appealing.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;IFRAME style="WIDTH: 500px; HEIGHT: 375px" src="http://silverlight.services.live.com/invoke/55696/Demoing%20Geneva%20Beta%202%20with%20MOSS%202007/iframe.html" frameBorder=0 scrolling=no mce_src="http://silverlight.services.live.com/invoke/55696/Demoing%20Geneva%20Beta%202%20with%20MOSS%202007/iframe.html"&gt;&lt;/IFRAME&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9753713" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/edhild/archive/tags/SharePoint/default.aspx">SharePoint</category><category domain="http://blogs.msdn.com/edhild/archive/tags/MOSS/default.aspx">MOSS</category></item><item><title>Geneva Beta 2 support for MOSS 2007</title><link>http://blogs.msdn.com/edhild/archive/2009/06/03/geneva-beta-2-support-for-moss-2007.aspx</link><pubDate>Wed, 03 Jun 2009 20:49:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9692075</guid><dc:creator>edhild</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/edhild/comments/9692075.aspx</comments><wfw:commentRss>http://blogs.msdn.com/edhild/commentrss.aspx?PostID=9692075</wfw:commentRss><description>&lt;P&gt;Since a lot of the customers I serve are government agencies, there has always been a lot of interest in ADFS with SharePoint.&amp;nbsp;But there has always been lots of issues... ADFS&amp;nbsp;being targeted to only federating Active Directory, what about&amp;nbsp;Office client integration, SAML protocol support, etc... Well there is something new on the horizon and last month at Tech Ed there was some interesting announcements that impact the SharePoint world.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;If you haven't been watching the MS beta name list, it was probably an easy miss, but there is a new Windows Server service coming that currently goes by the beta name of Geneva Server. This service brings a Security Token Service to the windows platform building on top some new .NET libraries (the Geneva framework). This STS is an evolution of the ADFS Windows service adding support for more standards, a claims transformation rules engine, support for SQL attribute stores, and much more. &lt;/P&gt;
&lt;P&gt;&amp;nbsp;At Tech Ed, there was an announcement that MOSS 2007 will support Geneva. In fact, there is now a set of hyper-v VMs that will allow you to play with Geneva Beta 2, MOSS 2007, RMS, and Card Space. This also has the SP2 updates for client integration so it is quite a demo when you are done. You can register and get the images here: &lt;A href="http://msdn.microsoft.com/en-us/evalcenter/dd440951.aspx"&gt;http://msdn.microsoft.com/en-us/evalcenter/dd440951.aspx&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;There is only 1 error that I found going through the docs. On page 87, the Url should be &lt;A href="https://docs.contoso.com/"&gt;https://docs.contoso.com&lt;/A&gt;. And I would change the demo a bit and only add the RMS protection to the confidential documents.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9692075" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/edhild/archive/tags/MOSS/default.aspx">MOSS</category></item><item><title>Building Presentations from SharePoint Content</title><link>http://blogs.msdn.com/edhild/archive/2009/04/30/building-presentations-from-sharepoint-content.aspx</link><pubDate>Thu, 30 Apr 2009 18:20:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9580491</guid><dc:creator>edhild</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.msdn.com/edhild/comments/9580491.aspx</comments><wfw:commentRss>http://blogs.msdn.com/edhild/commentrss.aspx?PostID=9580491</wfw:commentRss><description>&lt;P&gt;This is really just a publish of an old demo I have had for some time, but finally got around to putting a video together. This demo is about two different ways to build PowerPoint presentations based off of SharePoint content. The first uses an Office Add-in approach and the second does everything on the server using Open XML. Enjoy!&lt;/P&gt;
&lt;P&gt;&lt;A href="http://silverlight.services.live.com/55696/Building%20Presentations%20from%20SharePoint%20Content_2/video.wmv"&gt;http://silverlight.services.live.com/55696/Building%20Presentations%20from%20SharePoint%20Content_2/video.wmv&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;By the way, both solutions are in my book: Pro SharePoint Solution Development&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9580491" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/edhild/archive/tags/Office+2007/default.aspx">Office 2007</category><category domain="http://blogs.msdn.com/edhild/archive/tags/MOSS/default.aspx">MOSS</category><category domain="http://blogs.msdn.com/edhild/archive/tags/SharePoint+2007+book/default.aspx">SharePoint 2007 book</category></item><item><title>Been Reviewing DPM 2007 SP1 Updates</title><link>http://blogs.msdn.com/edhild/archive/2009/04/06/been-reviewing-dpm-2007-sp1-updates.aspx</link><pubDate>Mon, 06 Apr 2009 23:52:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9534431</guid><dc:creator>edhild</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/edhild/comments/9534431.aspx</comments><wfw:commentRss>http://blogs.msdn.com/edhild/commentrss.aspx?PostID=9534431</wfw:commentRss><description>&lt;P&gt;And came across a series of webcasts that I had to share:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;What's new for SharePoint in DPM 2007 SP1: &lt;A href="http://edge.technet.com/Media/What-is-new-in-DPM-2007-SP1-for-protecting-SharePoint/"&gt;http://edge.technet.com/Media/What-is-new-in-DPM-2007-SP1-for-protecting-SharePoint/&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;DPM Licensing Changes: &lt;A href="http://edge.technet.com/Media/DPM-2007-sp1-Licensing/"&gt;http://edge.technet.com/Media/DPM-2007-sp1-Licensing/&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Deep Dive on how DPM works: &lt;A href="http://edge.technet.com/Media/DPM-2007-SP1-How-does-DPM-really-work/"&gt;http://edge.technet.com/Media/DPM-2007-SP1-How-does-DPM-really-work/&lt;/A&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9534431" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/edhild/archive/tags/MOSS/default.aspx">MOSS</category></item><item><title>Video Demo: Merging SharePoint List Data into Word Documents</title><link>http://blogs.msdn.com/edhild/archive/2008/10/29/merging-sharepoint-list-data-into-word-documents.aspx</link><pubDate>Wed, 29 Oct 2008 20:59:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9022698</guid><dc:creator>edhild</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/edhild/comments/9022698.aspx</comments><wfw:commentRss>http://blogs.msdn.com/edhild/commentrss.aspx?PostID=9022698</wfw:commentRss><description>&lt;P&gt;I've recently been moving a lot of my older demos from when MOSS first RTMed into my new dev environment. During the move, I am also taking the time to update them to VS.NET 2008 and any other nicer tools that have come along. A popular demo of mine is a solution that shows you how to merge SharePoint list data into MS Word documents leveraging the Open XML file format. This example was originally published as part of my book: &lt;A href="http://www.amazon.com/gp/product/1590598083/ref=s9sdps_c6_14_at1-rfc_p-frt_p-3102_p_si1?pf_rd_m=ATVPDKIKX0DER&amp;amp;pf_rd_s=center-2&amp;amp;pf_rd_r=1FB7CFGHVMW49GZ9SR78&amp;amp;pf_rd_t=101&amp;amp;pf_rd_p=454436001&amp;amp;pf_rd_i=507846" mce_href="http://www.amazon.com/gp/product/1590598083/ref=s9sdps_c6_14_at1-rfc_p-frt_p-3102_p_si1?pf_rd_m=ATVPDKIKX0DER&amp;amp;pf_rd_s=center-2&amp;amp;pf_rd_r=1FB7CFGHVMW49GZ9SR78&amp;amp;pf_rd_t=101&amp;amp;pf_rd_p=454436001&amp;amp;pf_rd_i=507846"&gt;Pro SharePoint Solution Development by Apress&lt;/A&gt;. While moving the demonstration to my new development environment, I made two significant changes that simplify the development experience.&lt;/P&gt;
&lt;P&gt;First, I decided to use the Word 2007 Content Control Toolkit. This tool available from codeplex (&lt;A href="http://www.codeplex.com/dbe" mce_href="http://www.codeplex.com/dbe"&gt;http://www.codeplex.com/dbe&lt;/A&gt;) allows you to easily insert a custom XML part into the document and provides a drag and drop experience for binding the content controls. This cut quite a lot of time out of building the solution since the toolkit creates the supporting relationship XML parts for you and handles the XPath queries for the content controls.&lt;/P&gt;
&lt;P&gt;My other improvement was deciding to incorporate the September CTP of the Open XML SDK 2.0. There was no such SDK when I built the solution the first time, so my only option was to use the packaging API available in the .NET framework itself. I had previously tried the 1.0 version of the SDK and found it lacking in a lot of basic areas, but this new 2.0 one looks very promising. I commented out more lines than I had written in the first version of the solution. You can get this SDK here: &lt;A href="http://msdn.microsoft.com/en-us/library/bb448854(office.14).aspx" mce_href="http://msdn.microsoft.com/en-us/library/bb448854(office.14).aspx"&gt;http://msdn.microsoft.com/en-us/library/bb448854(office.14).aspx&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;I'm also doing a lot more of video capturing of my solutions for other developers to follow. Updated the video to use the new Silverlight Streaming service available on Live.&lt;/P&gt;
&lt;P&gt;&lt;A href="http://silverlight.services.live.com/55696/Merge%20SharePoint%20Data%20Into%20Word/video.wmv"&gt;http://silverlight.services.live.com/55696/Merge%20SharePoint%20Data%20Into%20Word/video.wmv&lt;/A&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9022698" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/edhild/archive/tags/MOSS/default.aspx">MOSS</category><category domain="http://blogs.msdn.com/edhild/archive/tags/SharePoint+2007+book/default.aspx">SharePoint 2007 book</category></item><item><title>POP3 on Windows Server 2008 MOSS Dev Env</title><link>http://blogs.msdn.com/edhild/archive/2008/10/10/pop3-on-windows-server-2008-moss-dev-env.aspx</link><pubDate>Fri, 10 Oct 2008 17:21:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8994321</guid><dc:creator>edhild</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/edhild/comments/8994321.aspx</comments><wfw:commentRss>http://blogs.msdn.com/edhild/commentrss.aspx?PostID=8994321</wfw:commentRss><description>&lt;P&gt;Just a quick note... If you are a MOSS dev setting up a new development environment on Windows Server 2008, you might have noticed that there is no POP3 service anymore. This makes it a bit difficult to shows workflow with email notifications, etc if you don't have the ability to have a user mailbox. And of course, you don't want the full blown Exchange app there because of the bloat on the VM and performance. Try out this free one:&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;A href="http://www.download.com/ArGoSoft-Mail-Server-Freeware/3000-2165_4-10364910.html"&gt;&lt;FONT face=Calibri size=3&gt;http://www.download.com/ArGoSoft-Mail-Server-Freeware/3000-2165_4-10364910.html&lt;/FONT&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt" mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;I'm using it for both SMTP and POP3 with MOSS configured for outbound messages. Note that I didn't say inbound. For MOSS to do that, you have to&amp;nbsp;use the SMTP in IIS. I didn't need that so sticking with this for the time being.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8994321" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/edhild/archive/tags/MOSS/default.aspx">MOSS</category></item><item><title>A SharePoint adventure in "Publish Links to Office"</title><link>http://blogs.msdn.com/edhild/archive/2008/10/08/a-sharepoint-adventure-in-publish-links-to-office.aspx</link><pubDate>Wed, 08 Oct 2008 22:33:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8991931</guid><dc:creator>edhild</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.msdn.com/edhild/comments/8991931.aspx</comments><wfw:commentRss>http://blogs.msdn.com/edhild/commentrss.aspx?PostID=8991931</wfw:commentRss><description>&lt;P&gt;So I had a need to do a little thing such as get a link to a MOSS site to show up in the "My SharePoint Sites" Save-As dialog in Office. First, this wasn't a site that I was indexing so, I couldn't rely on it picking up the fact that I was a member and automatically putting it into My SharePoint Sites list on my My Site. So let the adventure begin...&lt;/P&gt;
&lt;P&gt;First, it seemed innocent enough. If you go to the SSP that your My Site uses, there is an Admin option to configure "Published Links to Office client applications". I went there, added a new entry &lt;A href="http://partners.litware.com/" mce_href="http://partners.litware.com/"&gt;http://partners.litware.com&lt;/A&gt; and set it to have the team site icon. Note that you can leave the audience field blank which will push the link to everyone. Very cool. There are more details on these steps half way down the page at this link: &lt;A href="http://blogs.msdn.com/sharepoint/archive/2006/12/01/getting-started-with-personalization-in-moss-2007.aspx" mce_href="http://blogs.msdn.com/sharepoint/archive/2006/12/01/getting-started-with-personalization-in-moss-2007.aspx"&gt;http://blogs.msdn.com/sharepoint/archive/2006/12/01/getting-started-with-personalization-in-moss-2007.aspx&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;My next step was to launch MS Word, go to the Save As dialog and click My SharePoint Sites. To my surprise the link wasn't there. Doh! First make sure you have visited your My Site and clicked the tab in the top-right corner to register the My Site with Office.&lt;/P&gt;
&lt;P&gt;Also, it turns out Office client applications get this information by making a call to the web service and depending on the elapsed time, may not ask MOSS for an updated list of links. You can make Office forget it has a list by deleting this registry key (HKEY_CURRENT_USER\Software\Microsoft\Office\12.0\Common\Portal\LinkPublishingTimestamp ) and restart your Office application. Don't worry, it will recreate it the next time you click the My SharePoint Sites option in the Save As dialog.&lt;/P&gt;
&lt;P&gt;Still no luck in my environment. Are you also using Windows Server 2008 as your dev environment? If so, WebDav and other desktop stuff needed to make this work is not turned on by default! You need to add the "Desktop Experience" feature (which requires a reboot). More info here: &lt;A href="http://sharepoint.microsoft.com/blogs/fromthefield/Lists/Posts/Post.aspx?ID=51" mce_href="http://sharepoint.microsoft.com/blogs/fromthefield/Lists/Posts/Post.aspx?ID=51"&gt;http://sharepoint.microsoft.com/blogs/fromthefield/Lists/Posts/Post.aspx?ID=51&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;And then yes it will work. On an interesting note discovered why watching Word make these requests through Fiddler. After calling the web service, the Office client application then makes a HTTP request to each of the links that it is pulling down. If it is unreachable or you don't have access, Word will remove that link. So even if you setup everything right, you still might not see it. In my case, the site was being accessed through an ADFS authentication provider, not NTLM like I had hoped so it wasn't showing. After a quick Url change, everything was fine.&lt;/P&gt;
&lt;P&gt;Like I said a very simple problem... Thanks to Chad Wach for going on the adventure with me!&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8991931" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/edhild/archive/tags/Office+2007/default.aspx">Office 2007</category><category domain="http://blogs.msdn.com/edhild/archive/tags/MOSS/default.aspx">MOSS</category></item><item><title>Workaround for the SharePoint Asset Inventory Tool ';' error</title><link>http://blogs.msdn.com/edhild/archive/2008/06/25/workaround-for-the-sharepoint-asset-inventory-tool-error.aspx</link><pubDate>Thu, 26 Jun 2008 04:30:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8654298</guid><dc:creator>edhild</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/edhild/comments/8654298.aspx</comments><wfw:commentRss>http://blogs.msdn.com/edhild/commentrss.aspx?PostID=8654298</wfw:commentRss><description>&lt;P&gt;I was preparing for the upcoming conference and wanted to demo some of the new tools coming for SharePoint. Often I have heard the customer's IT department talk about finding rogue SharePoint installations and getting better metrics on how these servers were being used, so I thought I would spend some time with the SharePoint Asset Inventory Tool. This tool is currently in Beta, but is publicly available through Microsoft's Connect site. It is basically a scanning solution that looks for SharePoint servers and dumps metrics about them into a SQL store with some nice SQL Reports. I installed the tool, only to get an error half-way through the scan. The error was something about a malformed SQL statement near a ';' and an ELSE statement. Unfortunately, I had nothing in the repository to even show as part of the demo. So the hunt began...&lt;/P&gt;
&lt;P&gt;Looking through log files, I found the offending stored procedure to be &lt;SPAN class=7em id=ctl00_MasterBody_WorkaroundList_ctl00_WorkaroundDescriptionLabel&gt;dbo.SP_INSUPD_DEVICES_PORT_NUMBER. This proc was in the SATAssets database on my SQL server. If you modify this proc, you will notice that it builds a dynamic SQL string. In this string, one of the variables is not covered by two single quptes ''. So ...&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN class=7em&gt;I&lt;/SPAN&gt;&lt;SPAN class=7em&gt;F('' + PORT_NUMBER + '' IS NOT NULL) &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN class=7em&gt;notice that I added the 2 ''. This proc and the SATAssets DB seem to be recreated each time you run a new scan after the initialization screen. Start the wizard, wait for the initialize prompt to go away, modify the proc, and then it works.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN class=7em&gt;I also am a big fan of host headers in my dev environments. I noticed I also had to make sure that I had a web application that resolved the the server name on port 80 (or one of the ports it was looking for) to get my results. &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN class=7em&gt;I've also posted this workaround in the forums so hopefully you'll have some luck before the next drop happens on the Connect beta site.&lt;/SPAN&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8654298" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/edhild/archive/tags/SharePoint/default.aspx">SharePoint</category><category domain="http://blogs.msdn.com/edhild/archive/tags/MOSS/default.aspx">MOSS</category></item><item><title>How To: Add security trimming info to custom actions in SharePoint</title><link>http://blogs.msdn.com/edhild/archive/2008/01/16/how-to-add-security-trimming-info-to-custom-actions-in-sharepoint.aspx</link><pubDate>Thu, 17 Jan 2008 04:23:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:7137804</guid><dc:creator>edhild</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/edhild/comments/7137804.aspx</comments><wfw:commentRss>http://blogs.msdn.com/edhild/commentrss.aspx?PostID=7137804</wfw:commentRss><description>&lt;P&gt;I have been asked the same question a few times in the last few weeks about custom actions in SharePoint and how to hide or show them depending on the user's identity. This information is spelled out in the SDK but I haven't seen much of it written in blogs, etc so I just thought I would post a quick summary. &lt;/P&gt;
&lt;P&gt;From the SDK, you can find that the schema for defining a custom action is as follows:&lt;/P&gt;&lt;PRE&gt;&amp;lt;CustomAction
  ContentTypeId = "&lt;SPAN class=parameter&gt;Text&lt;/SPAN&gt;"
  ControlAssembly = "&lt;SPAN class=parameter&gt;Text&lt;/SPAN&gt;"
  ControlClass = "&lt;SPAN class=parameter&gt;Text&lt;/SPAN&gt;"
  ControlSrc = "&lt;SPAN class=parameter&gt;Text&lt;/SPAN&gt;"
  Description = "&lt;SPAN class=parameter&gt;Text&lt;/SPAN&gt;"
  GroupId = "&lt;SPAN class=parameter&gt;Text&lt;/SPAN&gt;"
  Id = "&lt;SPAN class=parameter&gt;Text&lt;/SPAN&gt;"
  ImageUrl = "&lt;SPAN class=parameter&gt;Text&lt;/SPAN&gt;"
  Location = "&lt;SPAN class=parameter&gt;Text&lt;/SPAN&gt;"
  RegistrationId = "&lt;SPAN class=parameter&gt;Text&lt;/SPAN&gt;"
  RegistrationType = "&lt;SPAN class=parameter&gt;Text&lt;/SPAN&gt;"
  RequireSiteAdministrator = "TRUE" | "FALSE"
  Rights = "&lt;SPAN class=parameter&gt;Text&lt;/SPAN&gt;"
  Sequence = "&lt;SPAN class=parameter&gt;Integer&lt;/SPAN&gt;"
  ShowInLists = "TRUE" | "FALSE"
  ShowInReadOnlyContentTypes = "TRUE" | "FALSE"
  ShowInSealedContentTypes = "TRUE" | "FALSE"
  Title = "&lt;SPAN class=parameter&gt;Text&lt;/SPAN&gt;"&amp;gt;
&amp;lt;/CustomAction&amp;gt;&lt;/PRE&gt;The key to security trimming your custom action is the Rights attribute. This attribute allows you to specify SharePoint permissions that the user must have for the action to be visible. This can be a comma delimited list. For example: &lt;PRE&gt;&lt;FONT face="Courier New"&gt;"ViewListItems,ManageAlerts"&lt;/FONT&gt;&lt;FONT face="Courier New"&gt; &lt;/FONT&gt;&lt;/PRE&gt;When more than one value is specified, the set of rights are treated with an AND. This means the user must have all of the specified rights for it to be visible. Here is a list of the valid Microsoft.SharePoint.SPBasePermissions you could use: &lt;PRE&gt;&lt;A href="http://msdn2.microsoft.com/en-us/library/microsoft.sharepoint.spbasepermissions.aspx" mce_href="http://msdn2.microsoft.com/en-us/library/microsoft.sharepoint.spbasepermissions.aspx"&gt;http://msdn2.microsoft.com/en-us/library/microsoft.sharepoint.spbasepermissions.aspx&lt;/A&gt;&lt;/PRE&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=7137804" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/edhild/archive/tags/MOSS/default.aspx">MOSS</category></item><item><title>Video: Demo of Extending SharePoint to Collab on Document Fragments</title><link>http://blogs.msdn.com/edhild/archive/2007/09/03/video-demo-of-extending-sharepoint-to-collab-on-document-fragments.aspx</link><pubDate>Tue, 04 Sep 2007 02:57:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:4731454</guid><dc:creator>edhild</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.msdn.com/edhild/comments/4731454.aspx</comments><wfw:commentRss>http://blogs.msdn.com/edhild/commentrss.aspx?PostID=4731454</wfw:commentRss><description>I have had many requests from customers and peers to have a look at my solution for supporting collaboration on fragments (or sections) of a MS Word document. In fact, few have referred to it as "slide libraries for word documents". It leverages the some custom actions in SharePoint with the Open XML file format to modify Word documents on the server. I'm a bit flattered, but thought I would take the time to capture a demonstration of the solution as a video to share. If you don't follow this blog, this solution is one of the chapters in my book: &lt;A class="" title="Pro SharePoint Solution Development" href="http://blogs.msdn.com/edhild/pages/pro-sharepoint-solution-development-combining-net-sharepoint-and-office-2007.aspx" mce_href="http://blogs.msdn.com/edhild/pages/pro-sharepoint-solution-development-combining-net-sharepoint-and-office-2007.aspx"&gt;Pro SharePoint Solution Development&lt;/A&gt;. You can get the code off of Apress' web site as well as get a more thorough code walkthrough in the book. This demonstration is more how an end-user would use the solution. My first attempt at "podcasting". Anyway, I placed the video on MSN SoapBox so it should be easy to get. See the link and info below. &lt;BR&gt;&lt;EMBED pluginspage=http://macromedia.com/go/getflashplayer src=http://images.soapbox.msn.com/flash/soapbox1_1.swf width=432 height=364 type=application/x-shockwave-flash mce_src="http://images.soapbox.msn.com/flash/soapbox1_1.swf" quality="high" wmode="transparent" flashvars="c=v&amp;amp;v=d7e6e173-a18a-4b98-8cf5-40d5b4fe42c6"&gt;&lt;/EMBED&gt;&lt;BR&gt;&lt;A title="Using SharePoint to Collab on Document Fragments" href="http://soapbox.msn.com/video.aspx?vid=d7e6e173-a18a-4b98-8cf5-40d5b4fe42c6" target=_new mce_href="http://soapbox.msn.com/video.aspx?vid=d7e6e173-a18a-4b98-8cf5-40d5b4fe42c6"&gt;Video: Using SharePoint to Collab on Document Fragments&lt;/A&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=4731454" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/edhild/archive/tags/MOSS/default.aspx">MOSS</category><category domain="http://blogs.msdn.com/edhild/archive/tags/SharePoint+2007+book/default.aspx">SharePoint 2007 book</category></item><item><title>New MOSS SDK includes new BDC Tool</title><link>http://blogs.msdn.com/edhild/archive/2007/08/24/new-moss-sdk-includes-new-bdc-tool.aspx</link><pubDate>Fri, 24 Aug 2007 19:41:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:4544782</guid><dc:creator>edhild</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/edhild/comments/4544782.aspx</comments><wfw:commentRss>http://blogs.msdn.com/edhild/commentrss.aspx?PostID=4544782</wfw:commentRss><description>&lt;P&gt;There is a gold nugget in the new MOSS SDK that was just released. Included in the download is a new BDC tool that allows you to more easily create those XML application definition files. Here are some of the highlights:&lt;/P&gt;
&lt;H3 style="MARGIN: 10pt 0in 0pt"&gt;&lt;SPAN style="mso-fareast-font-family: 'Times New Roman'"&gt;&lt;FONT size=3&gt;&lt;FONT color=#4f81bd&gt;&lt;FONT face=Cambria&gt;Highlights:&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/H3&gt;
&lt;P class=MsoListParagraph style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo1"&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri size=3&gt;Tool supports Databases (SQL, Oracle, OLEDB, and ODBC) and Web Services &lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo1"&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri size=3&gt;Drag and drop design surface for selecting DB tables or web methods&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo1"&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri size=3&gt;Metadata is automatically extracted from Databases by dragging and dropping tables&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo1"&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri size=3&gt;Web Services require a few additional steps to completely configure the connection&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo1"&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri size=3&gt;Users can import and export Application Definition XML files &lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo1"&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri size=3&gt;Users are able to test method instances incrementally from within the tool&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo1"&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri size=3&gt;The tool is not required to run on a Web Front-End&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo1"&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri size=3&gt;Associations are created automatically when foreign keys are selected; they can also be created easily for web services by adding an Association method instance&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;And a screen shot:&lt;/P&gt;&lt;IMG src="http://blogs.msdn.com/photos/edhild/images/4544806/425x244.aspx"&gt; 
&lt;P&gt;And finally the link:&lt;BR&gt;&lt;SPAN style="FONT-SIZE: 14pt; COLOR: #1f497d; FONT-FAMILY: 'Calibri','sans-serif'; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA; mso-bidi-font-family: 'Times New Roman'"&gt;&lt;A href="http://www.microsoft.com/downloads/details.aspx?FamilyId=6D94E307-67D9-41AC-B2D6-0074D6286FA9&amp;amp;displaylang=en" mce_href="http://www.microsoft.com/downloads/details.aspx?FamilyId=6D94E307-67D9-41AC-B2D6-0074D6286FA9&amp;amp;displaylang=en"&gt;http://www.microsoft.com/downloads/details.aspx?FamilyId=6D94E307-67D9-41AC-B2D6-0074D6286FA9&amp;amp;displaylang=en&lt;/A&gt; &lt;/SPAN&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=4544782" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/edhild/archive/tags/MOSS/default.aspx">MOSS</category></item><item><title>How To: Add a feature to an out-of-the-box site definition</title><link>http://blogs.msdn.com/edhild/archive/2007/05/23/how-to-add-a-feature-to-an-out-of-the-box-site-definition.aspx</link><pubDate>Thu, 24 May 2007 02:26:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:2825803</guid><dc:creator>edhild</dc:creator><slash:comments>4</slash:comments><comments>http://blogs.msdn.com/edhild/comments/2825803.aspx</comments><wfw:commentRss>http://blogs.msdn.com/edhild/commentrss.aspx?PostID=2825803</wfw:commentRss><description>&lt;P&gt;I often get asked how one should approach adding features to the out-of-the-box site definitions. On one hand, just putting in a new GUID in the onet.xml file does not seem like a big deal. On the other, Microsoft has had a stance going back to SharePoint 2003 that organizations should avoid modifying the out-of-the-box site definitions. The solution is to use a technique referred to as "feature stapling". A staple is in fact a farm level feature which builds a relationship with an existing site definition with the new feature you want to deploy. There is a great writeup on the SharePoint blog about this technique in regards to customizing My Sites. In case you are curious, the staple only impacts new sites that are created once it is activated. Here is&amp;nbsp;the link:&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/sharepoint/archive/2007/03/22/customizing-moss-2007-my-sites-within-the-enterprise.aspx" mce_href="http://blogs.msdn.com/sharepoint/archive/2007/03/22/customizing-moss-2007-my-sites-within-the-enterprise.aspx"&gt;http://blogs.msdn.com/sharepoint/archive/2007/03/22/customizing-moss-2007-my-sites-within-the-enterprise.aspx&lt;/A&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=2825803" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/edhild/archive/tags/MOSS/default.aspx">MOSS</category></item><item><title>Book Review: Microsoft SharePoint Building Office 2007 Solutions in C# 2005</title><link>http://blogs.msdn.com/edhild/archive/2007/05/19/book-review-microsoft-sharepoint-building-office-2007-solutions-in-c-2005.aspx</link><pubDate>Sat, 19 May 2007 18:53:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:2735527</guid><dc:creator>edhild</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/edhild/comments/2735527.aspx</comments><wfw:commentRss>http://blogs.msdn.com/edhild/commentrss.aspx?PostID=2735527</wfw:commentRss><description>&lt;P&gt;This is the C# version of Scot Hillier's new book. I was really anticipating this book as Scot's last two on SharePoint 2003 were great. Especially the Advanced one. In fact, it was his books that made me consider writing my own. As expected, Scot delivers on the 2007 version providing a great introduction and tour on MOSS 2007. My favorite part of this book is the first chapter where Scot discusses how organizations can benefit from deploying SharePoint and the types of users that typically interact with such a solution. Developers will appreciate the many pages dedicated to a walk through of how to setup a virtual development environment. The workflow exercise is particularly notable. Since this book's scope is all of MOSS 2007, readers should expect a sweeping overview with moments of depth (usually in the exercises). This book does a great job of balancing, but it does show how hard it is to write a single book that tries to cover all of MOSS 2007. For example, all of the Shared Services such as Excel Services, BDC, Search, and User Profiles are covered in a single chapter. I recommend this book for those slanted towards development (there are not too many infrastructure focused chapters). And towards readers who are new to SharePoint all together or are transitioning from 2003 to 2007. &lt;/P&gt;
&lt;P&gt;&lt;A href="http://www.amazon.com/Microsoft-SharePoint-Building-Solutions-Sharepoint/dp/1590598091/ref=pd_bbs_sr_1/104-9533530-8070334?ie=UTF8&amp;amp;s=books&amp;amp;qid=1179589944&amp;amp;sr=1-1" mce_href="http://www.amazon.com/Microsoft-SharePoint-Building-Solutions-Sharepoint/dp/1590598091/ref=pd_bbs_sr_1/104-9533530-8070334?ie=UTF8&amp;amp;s=books&amp;amp;qid=1179589944&amp;amp;sr=1-1"&gt;Amazon Link&lt;/A&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=2735527" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/edhild/archive/tags/MOSS/default.aspx">MOSS</category><category domain="http://blogs.msdn.com/edhild/archive/tags/Book+Reviews/default.aspx">Book Reviews</category></item><item><title>How To: Display browser enabled InfoPath forms in a web part supporting connections</title><link>http://blogs.msdn.com/edhild/archive/2007/05/08/display-browser-enabled-infopath-forms-in-a-web-part.aspx</link><pubDate>Wed, 09 May 2007 04:10:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:2491885</guid><dc:creator>edhild</dc:creator><slash:comments>3</slash:comments><comments>http://blogs.msdn.com/edhild/comments/2491885.aspx</comments><wfw:commentRss>http://blogs.msdn.com/edhild/commentrss.aspx?PostID=2491885</wfw:commentRss><description>&lt;P&gt;Here is a little something from one of the chapters in the book (&lt;A class="" href="http://blogs.msdn.com/edhild/pages/pro-sharepoint-solution-development-combining-net-sharepoint-and-office-2007.aspx" mce_href="http://blogs.msdn.com/edhild/pages/pro-sharepoint-solution-development-combining-net-sharepoint-and-office-2007.aspx"&gt;http://blogs.msdn.com/edhild/pages/pro-sharepoint-solution-development-combining-net-sharepoint-and-office-2007.aspx&lt;/A&gt;)&lt;/P&gt;
&lt;P&gt;With MOSS, there is the new Forms Services capability that allows you to take an InfoPath designed form and present it to the user as a web based form. When associated with a document library, the user can click New and the page opens displays the web-based form in a full page view of the browser. The user fills out the form and clicks save resulting in the xml being stored as an item in the library. Another feature that is well documented is that the Forms Server capability of MOSS also ships a&amp;nbsp;ASP.NET server control (&lt;A href="http://msdn2.microsoft.com/en-us/library/aa701078.aspx"&gt;http://msdn2.microsoft.com/en-us/library/aa701078.aspx&lt;/A&gt;) that you can use in your own custom ASP.NET pages. This control is located in the &lt;B&gt;Microsoft.Office.InfoPath.Server.dll&lt;/B&gt; assembly. It is typically located at &lt;I&gt;Drive&lt;/I&gt;:\Program Files\Microsoft Office Servers\12.0\Bin, where &lt;I&gt;Drive&lt;/I&gt; is the location where Office Forms Server 2007 or Office SharePoint Server 2007 is installed.&lt;/P&gt;
&lt;P&gt;Upon closer examination of this ASP.NET server control, you may notice that it is in fact a web part. But this is not a web part that you would want to add to the SafeControls list and drag into a site as it expects to run in a full screen mode and will obliterate everything else on the page. I have had a vision that when viewing the items in the form library, a user should be able to open the form on the same page as the list of form instances. The solution is a simple one. I created a custom web part that wraps the out of the box control and adds support for connections. This way it can be dragged onto the AllItems.aspx page and connected to the view of the form library items. So a user can select a form, open it, edit the data, and save it back all in the same screen.&lt;/P&gt;
&lt;P&gt;Here is the code form the web part.&lt;/P&gt;
&lt;P&gt;Imports System.Web.UI.WebControls.WebParts&lt;BR&gt;Imports System.Web.UI.WebControls&lt;BR&gt;Imports Microsoft.SharePoint&lt;BR&gt;Imports Microsoft.SharePoint.WebControls&lt;BR&gt;Imports Microsoft.Office.InfoPath.Server.Controls&lt;BR&gt;Imports System.Xml&lt;/P&gt;
&lt;P mce_keep="true"&gt;Public Class FormViewWebPart&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Inherits System.Web.UI.WebControls.WebParts.WebPart&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Const defaultXmlLocation = ""&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Private m_xmlLocation As String = defaultXmlLocation&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Private WithEvents m_xmlFormView As XmlFormView&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Private m_errorMessage As String = String.Empty&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;WebBrowsable(), Personalizable(PersonalizationScope.User), WebDisplayName("XMLLocation"), WebDescription("URL of web-enabled InfoPath form")&amp;gt; _&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Public Property XMLLocation() As String&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Get&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Return m_xmlLocation&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End Get&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set(ByVal value As String)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; m_xmlLocation = value&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End Set&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; End Property&lt;/P&gt;
&lt;P&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Protected Overrides Sub RenderContents(ByVal writer As System.Web.UI.HtmlTextWriter)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Me.EnsureChildControls()&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; If m_errorMessage &amp;lt;&amp;gt; String.Empty Then&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; writer.Write(m_errorMessage)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Else&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; If (Me.m_xmlLocation.Length &amp;gt; 0) Then&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; m_xmlFormView.XmlLocation = m_xmlLocation&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; m_xmlFormView.DataBind()&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; m_xmlFormView.Visible = True&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End If&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MyBase.RenderContents(writer)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End If&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; End Sub&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Protected Overrides Sub CreateChildControls()&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MyBase.CreateChildControls()&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; m_xmlFormView = New XmlFormView()&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; m_xmlFormView.Visible = False&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Me.Controls.Add(Me.m_xmlFormView)&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; m_xmlFormView.EditingStatus = XmlFormView.EditingState.Editing&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; End Sub&lt;/P&gt;
&lt;P&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Private Sub m_xmlFormView_Initialize(ByVal sender As Object, ByVal e As Microsoft.Office.InfoPath.Server.Controls.InitializeEventArgs) Handles m_xmlFormView.Initialize&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;End Sub&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;lt;ConnectionConsumer("XMLLocation")&amp;gt; _&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Public Sub GetConnectionInterface(ByVal providerPart As IWebPartField)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim callback As FieldCallback = New FieldCallback(AddressOf Me.ReceiveField)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; providerPart.GetFieldValue(callback)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; End Sub&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Public Sub ReceiveField(ByVal field As Object)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Me.EnsureChildControls()&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; If (field IsNot Nothing) Then&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Me.m_xmlLocation = CType(field, String)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End If&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; End Sub&lt;/P&gt;
&lt;P&gt;End Class&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=2491885" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/edhild/archive/tags/SharePoint/default.aspx">SharePoint</category><category domain="http://blogs.msdn.com/edhild/archive/tags/MOSS/default.aspx">MOSS</category></item><item><title>How To: Connect web parts during site provisioning</title><link>http://blogs.msdn.com/edhild/archive/2007/04/17/how-to-connect-web-parts-during-site-provisioning.aspx</link><pubDate>Tue, 17 Apr 2007 21:46:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:2165393</guid><dc:creator>edhild</dc:creator><slash:comments>11</slash:comments><comments>http://blogs.msdn.com/edhild/comments/2165393.aspx</comments><wfw:commentRss>http://blogs.msdn.com/edhild/commentrss.aspx?PostID=2165393</wfw:commentRss><description>&lt;P&gt;If you have been following the How To's recently posted here, you will remember that I have a site definition that has the BDC Item web part on it. And I have a custom filter web part that pulls an ID out of the web's property bag. The only remaining item is how to get these two web parts connected during the creation of a site.&lt;/P&gt;
&lt;P&gt;Since I used the SharePoint Solution Generator in the WSS Extensions, to capture the site definition, it gives me a hook into an event handler to do exactly that. In the Site Provisioning Handler folder of the VS.NET project it creates, there is a SiteProvisioning.cs file. Here is the code I added to the OnActivated event:&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;public void OnActivated(SPFeatureReceiverProperties properties)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SPWeb web = (SPWeb)properties.Feature.Parent;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SPLimitedWebPartManager mgr = web.GetLimitedWebPartManager("default.aspx", PersonalizationScope.Shared);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //filter web part&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.Web.UI.WebControls.WebParts.WebPart part1 = mgr.WebParts[2];&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //BDC Web Part&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.Web.UI.WebControls.WebParts.WebPart part2 = mgr.WebParts[3];&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ConsumerConnectionPointCollection ccc = mgr.GetConsumerConnectionPoints(part2);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ProviderConnectionPointCollection ppp = mgr.GetProviderConnectionPoints(part1);&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TransformableFilterValuesToEntityInstanceTransformer t = new TransformableFilterValuesToEntityInstanceTransformer();&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SPWebPartConnection conn = mgr.SPConnectWebParts(part1, ppp[0], part2, ccc[0], t);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mgr.SPWebPartConnections.Add(conn);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;
&lt;P&gt;This code isn't that hard. The trick it to realize that since my custom web part is coded using the ASP.NET 2.0 style, I need to rely on the web part manager class to construct the connection. Based on the position of the web parts in my ONET.XML file, I could get a reference to each of them. Then just grabbed the consumer and provider connection points and built the connection. Since this connection requires the integer ID to be transformed into an entity instance, you need to provide an instance of the appropriate transformer when constructing the connection. In this case, the transformer is the TransformableFilterValuesToEntityInstanceTransformer&amp;nbsp; class.&lt;/P&gt;
&lt;P&gt;It is possible to debug this code. Just have Visual Studio attached before you provision the site. And your breakpoint inside this event will be fired.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=2165393" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/edhild/archive/tags/SharePoint/default.aspx">SharePoint</category><category domain="http://blogs.msdn.com/edhild/archive/tags/MOSS/default.aspx">MOSS</category></item></channel></rss>