<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><!--RSS generated by Windows SharePoint Services V3 RSS Generator on 7/10/2009 6:28:55 PM--><rss xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0"><channel><title>SharePoint Happenings</title><link>http://philwicklund.com</link><description>RSS feed for the Posts list.</description><lastBuildDate>Sat, 11 Jul 2009 01:28:55 GMT</lastBuildDate><generator>SharePoint CKS:EBE</generator><ttl>60</ttl><image><link>http://philwicklund.com/aboutme/default.aspx</link><url>http://philwicklund.com/Lists/Photos/Phil%20120x180.jpg</url><title>Me</title></image><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/SharepointHappenings" type="application/rss+xml" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><item><title>SharePoint Files that should get backed up, but often don’t</title><link>http://feedproxy.google.com/~r/SharepointHappenings/~3/R4Wz0RLlkvs/files-that-should-get-backed-up-but-often-don’t.aspx</link><guid isPermaLink="false">/archive/2009/07/01/files-that-should-get-backed-up-but-often-don’t.aspx</guid><description>&lt;div class="ExternalClass2C0BF6CF1CE648729386B1894B31A6E7"&gt;&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;So today I ran into a disaster scenario at a client where we needed to restore a SharePoint backup because the SQL instance got hosed. Turns out all the SQL database logins were deleted by accident and nobody could connect or login to the database server. What we needed to do was create a new instance of SQL on the same server and move the SharePoint databases from the old, non functional instance, onto the new one, and thereafter restore the farm backup.
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;This post is pretty good at describing the backup/restore process:
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.sharepointblogs.com/llowevad/archive/2008/01/02/moving-to-a-new-database-server-or-instance.aspx"&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;http://www.sharepointblogs.com/llowevad/archive/2008/01/02/moving-to-a-new-database-server-or-instance.aspx&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;
		&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;However, I would add that there are two important things to backup &lt;strong&gt;BEFORE&lt;/strong&gt; you start this process:
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;&lt;strong&gt;&lt;em&gt;Web.config(s) and other Web Application root files
&lt;/em&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;This is because when you run the SharePoint configuration wizard and disconnect from the server farm, it will delete all your web applications and all web.config and other files/settings you have specified therein will be lost. If you have custom app settings, connection strings, etc, you'll in quite a panic if you don't back these up FIRST.
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;&lt;strong&gt;&lt;em&gt;SharePoint Solution Packages
&lt;/em&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;The SharePoint farm backup doesn't backup solution packages (.wsp files) that are installed into the farm. Make sure your solutions are backed up FIRST, otherwise your sites may suffer the lack of important functionality when you restore them. Most of the time I see people sticking the solutions in some sort of source control to get them backed up on regular bases. Alternatively, some people back up the entire inetpub/wwwroot directory, and sticking the solutions in there can be sufficient to get them backup regularly. Either way, make sure you have these files because they're GONE after you disconnect from the farm...
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;To check to see if you have Solutions that need to be backed up, go to Central Administration, Operations:
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;img src="http://philwicklund.com/Lists/Photos/070109_1658_SharePointF1.png" alt=""&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;
		&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;That's all for today!
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;Phil&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/89bN6RjYdCd3IPXh2xfaLLsNHbE/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/89bN6RjYdCd3IPXh2xfaLLsNHbE/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/89bN6RjYdCd3IPXh2xfaLLsNHbE/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/89bN6RjYdCd3IPXh2xfaLLsNHbE/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=JN0uyP2rgIc:vW0EU3LSAW0:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=JN0uyP2rgIc:vW0EU3LSAW0:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=JN0uyP2rgIc:vW0EU3LSAW0:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?i=JN0uyP2rgIc:vW0EU3LSAW0:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=JN0uyP2rgIc:vW0EU3LSAW0:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=JN0uyP2rgIc:vW0EU3LSAW0:KwTdNBX3Jqk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?i=JN0uyP2rgIc:vW0EU3LSAW0:KwTdNBX3Jqk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=JN0uyP2rgIc:vW0EU3LSAW0:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=JN0uyP2rgIc:vW0EU3LSAW0:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?i=JN0uyP2rgIc:vW0EU3LSAW0:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=JN0uyP2rgIc:vW0EU3LSAW0:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?i=JN0uyP2rgIc:vW0EU3LSAW0:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=JN0uyP2rgIc:vW0EU3LSAW0:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/SharepointHappenings/~4/R4Wz0RLlkvs" height="1" width="1"/&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">BENDER\pwicklund</dc:creator><pubDate>Wed, 01 Jul 2009 11:56:57 GMT</pubDate><feedburner:origLink>http://philwicklund.com/archive/2009/07/01/files-that-should-get-backed-up-but-often-don’t.aspx</feedburner:origLink></item><item><title>Slide deck and source code for SharePoint Saturday Charlotte</title><link>http://feedproxy.google.com/~r/SharepointHappenings/~3/ptUD7KItnrA/slide-deck-and-source-code-for-sharepoint-saturday-charlotte.aspx</link><guid isPermaLink="false">/archive/2009/06/20/slide-deck-and-source-code-for-sharepoint-saturday-charlotte.aspx</guid><description>&lt;div class="ExternalClass7E64A887CC804A82B689C986C702E469"&gt;
&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;Thanks to everyone at today's SharePoint Saturday Charlotte event! It was a really fun day, and I got to meet a lot of really nice people. I was quite surprised at the hospitality at this event – lots of people approached me afterward and I had some wonderful conversations. Even my cab drivers were pleasant to talk to. Thanks Charlotte! &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;To keep with my promise to my students, here is my power point deck as well as my Visual Studio project that we built in class. Good luck, and please let me know if you have any questions! &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;Phil &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;Slide Deck: &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://philwicklund.com/Downloads/How%20to%20manage%20your%20SharePoint%20development%20team.pdf"&gt;&lt;img border="0" alt="" src="http://philwicklund.com/Lists/Photos/062009_2143_Slidedeckan1.png"&gt;&lt;/a&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;Visual Studio Project: &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://philwicklund.com/Downloads/PhilsCompany.zip"&gt;&lt;img border="0" alt="" src="http://philwicklund.com/Lists/Photos/062009_2143_Slidedeckan2.png"&gt;&lt;/a&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt; &lt;/span&gt;&lt;/p&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/IcHObGgB_HviZAilTgf5LnGYxKM/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/IcHObGgB_HviZAilTgf5LnGYxKM/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/IcHObGgB_HviZAilTgf5LnGYxKM/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/IcHObGgB_HviZAilTgf5LnGYxKM/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=cs2h3_96BKo:9YlkpV1PX1w:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=cs2h3_96BKo:9YlkpV1PX1w:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=cs2h3_96BKo:9YlkpV1PX1w:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?i=cs2h3_96BKo:9YlkpV1PX1w:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=cs2h3_96BKo:9YlkpV1PX1w:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=cs2h3_96BKo:9YlkpV1PX1w:KwTdNBX3Jqk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?i=cs2h3_96BKo:9YlkpV1PX1w:KwTdNBX3Jqk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=cs2h3_96BKo:9YlkpV1PX1w:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=cs2h3_96BKo:9YlkpV1PX1w:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?i=cs2h3_96BKo:9YlkpV1PX1w:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=cs2h3_96BKo:9YlkpV1PX1w:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?i=cs2h3_96BKo:9YlkpV1PX1w:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=cs2h3_96BKo:9YlkpV1PX1w:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/SharepointHappenings/~4/ptUD7KItnrA" height="1" width="1"/&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">BENDER\pwicklund</dc:creator><pubDate>Sat, 20 Jun 2009 16:42:00 GMT</pubDate><category domain="http://philwicklund.com/archive/tags/Speaking Events/default.aspx">Speaking Events</category><feedburner:origLink>http://philwicklund.com/archive/2009/06/20/slide-deck-and-source-code-for-sharepoint-saturday-charlotte.aspx</feedburner:origLink></item><item><title>Google AdSense vs SharePointAds.com – A Case Study (Part 1)</title><link>http://feedproxy.google.com/~r/SharepointHappenings/~3/kCdbXUDa4AY/google-adsense-vs-sharepointads-com-–-a-case-study-part-1.aspx</link><guid isPermaLink="false">/archive/2009/06/10/google-adsense-vs-sharepointads-com-–-a-case-study-part-1.aspx</guid><description>&lt;div class="ExternalClass7EB2C8C7AA7E4FF0A38CED05E1709476"&gt;
&lt;p&gt;&lt;a href="http://sharepointads.com/"&gt;&lt;img border="0" alt="" align="right" src="http://philwicklund.com/Lists/Photos/061009_2040_GoogleAdSen1.png"&gt;&lt;/a&gt;&lt;span style="font-size:12pt"&gt;&lt;span style="font-family:Verdana"&gt;From a publisher's perspective, I've always thought Google AdSense is a great tool. It's really easy to setup, and thereafter there's NOTHING needed to maintain. Even better is your checks come on time every month &lt;/span&gt;&lt;span style="font-family:Wingdings"&gt;J&lt;/span&gt;&lt;span style="font-family:Verdana"&gt;. Well, ever since SharePointAds.com started, I've been considering a move. However, I've also been very hesitant. How can a small timer compete with a goliath like Google? Would SharePointAds.com attract enough advertisers such that demand for real-estate would be high enough to generate high earnings for publishers? I'm still not sure, and since no publishers are quick to release to the public what they earn by letting people advertise on their sites, it has been impossible to know how the dollars add up. &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.google.com/adsense"&gt;&lt;img border="0" alt="" align="left" src="http://philwicklund.com/Lists/Photos/061009_2040_GoogleAdSen2.png"&gt;&lt;/a&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;Thus, I figured I should write up this two part post. I'm going to start a public case study, comparing my success with Google AdSense, to what I hope will be even more Success with SharePointAds.com. Below you'll see my traffic for the Month of May, as well as how much I earned with Google AdSense for that month. On August 1&lt;sup&gt;st&lt;/sup&gt; I will publish my earnings with SharePointAds.com with my hit counts again, and we can compare the two advertising companies. Hopefully we will see something concrete around which is better for SharePoint bloggers. Some criteria I aim to abide by are as follows: &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;ul style="margin-left:54pt"&gt;
&lt;li&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;I will try to write 6 posts in July, to remain consistent with May's post count. Since traffic on my site seems to go up and down with the frequency of posting, I want to maintain the same level. (this will be hard because I'm taking 2 weeks of vacation in July) &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;I will not add or remove from the number of ads on my site. I will use the same number of ads with SharePointAds.com as I did with AdSense. &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;I will (try) not to move/re-position/resize the ads (assuming I have the same sizing options). &lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;All in all, I am really excited to see how SharePointAds.com will do. Hopefully in the end this case study will help others that are on the fence like I have been… &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;h1&gt;Google AdSense Results for May of 2009 &lt;/h1&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt"&gt;&lt;span style="font-family:Verdana"&gt;In May I received 7,412 unique visits to my blog, with almost 16 thousand page views (a far cry from &lt;a href="http://www.sharepointjoel.com/default.aspx"&gt;Joel Oleson's&lt;/a&gt; claimed 64k hits/month, but good enough for this small-timer &lt;/span&gt;&lt;span style="font-family:Wingdings"&gt;J&lt;/span&gt;&lt;span style="font-family:Verdana"&gt;) : &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;img alt="" src="http://philwicklund.com/Lists/Photos/061009_2040_GoogleAdSen3.png"&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt"&gt;&lt;span style="font-family:Verdana"&gt;From the Google ads on my pages, I received 113 clicks translating into a meager $48.60. While it's certainly nothing to retire on, it at least it pays my internet bill &lt;/span&gt;&lt;span style="font-family:Wingdings"&gt;J&lt;/span&gt;&lt;span style="font-family:Verdana"&gt;. That and my wife stays happy because she sees some benefit to me spending all this time outside of work blogging! &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;img alt="" src="http://philwicklund.com/Lists/Photos/061009_2040_GoogleAdSen4.png"&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;What's interesting about the $48.60 I made at AdSense is that SharePointAds.com says I will receive 70% of the revenue if I switch! At a fixed click through rate of $4 (during the beta), this would translate to $316.40!!! HUGE increase! But the critical question is will the number of clicks be as high? &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;How do you think SharePointAds.com will compare? Leave your predictions below! &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;&lt;strong&gt;Look for the results of the study on August 1&lt;sup&gt;st&lt;/sup&gt;! &lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;Phil &lt;/span&gt;&lt;/p&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/jH1VitS9Vn_VQDEO55y1lEXLMrk/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/jH1VitS9Vn_VQDEO55y1lEXLMrk/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/jH1VitS9Vn_VQDEO55y1lEXLMrk/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/jH1VitS9Vn_VQDEO55y1lEXLMrk/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=VODhVmqpg5o:FHHTnyOHIZc:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=VODhVmqpg5o:FHHTnyOHIZc:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=VODhVmqpg5o:FHHTnyOHIZc:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?i=VODhVmqpg5o:FHHTnyOHIZc:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=VODhVmqpg5o:FHHTnyOHIZc:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=VODhVmqpg5o:FHHTnyOHIZc:KwTdNBX3Jqk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?i=VODhVmqpg5o:FHHTnyOHIZc:KwTdNBX3Jqk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=VODhVmqpg5o:FHHTnyOHIZc:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=VODhVmqpg5o:FHHTnyOHIZc:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?i=VODhVmqpg5o:FHHTnyOHIZc:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=VODhVmqpg5o:FHHTnyOHIZc:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?i=VODhVmqpg5o:FHHTnyOHIZc:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=VODhVmqpg5o:FHHTnyOHIZc:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/SharepointHappenings/~4/kCdbXUDa4AY" height="1" width="1"/&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">BENDER\pwicklund</dc:creator><pubDate>Wed, 10 Jun 2009 15:40:00 GMT</pubDate><category domain="http://philwicklund.com/archive/tags/Random/default.aspx">Random</category><feedburner:origLink>http://philwicklund.com/archive/2009/06/10/google-adsense-vs-sharepointads-com-–-a-case-study-part-1.aspx</feedburner:origLink></item><item><title>Speaking at SharePoint Saturday Charlotte!</title><link>http://feedproxy.google.com/~r/SharepointHappenings/~3/GN10pfkFhI4/speaking-at-sharepoint-saturday-charlotte.aspx</link><guid isPermaLink="false">/archive/2009/06/10/speaking-at-sharepoint-saturday-charlotte.aspx</guid><description>&lt;div class="ExternalClass49A8FA7B992744CA84B8B22FD657D653"&gt;
&lt;p&gt;&lt;a href="http://www.sharepointsaturday.org/charlotte/default.aspx"&gt;&lt;img border="0" alt="" align="right" src="http://philwicklund.com/Lists/Photos/061009_1711_SpeakingatS1.jpg"&gt;&lt;/a&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;Some exciting news is that I'll be speaking at the upcoming SharePoint Saturday event in Charlotte North Carolina! The event is next Saturday, June 20. If you're from out of town, it is worth noting that the Microsoft office in Charlotte is only 10 miles away from the airport. Doesn't get easier than that! &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;My topic for the weekend is &amp;quot;&lt;span style="color:black"&gt;&lt;strong&gt;&lt;em&gt;How to Effectively Manage your SharePoint Customizations, Deployments, and Environments with Solution Packages, Source Control, and Solid Governance&lt;/em&gt;&lt;/strong&gt;&amp;quot;. &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p style="margin-left:36pt"&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;&lt;strong&gt;&lt;em&gt;Development deployments across your farms are difficult to manage, especially if you have a large team. Chaos can reign, all the way from coding, to testing, and to environment consistency and stability. The solution lies with implementing best practices and good, clearly defined leadership. Come learn how to control the chaos!&lt;/em&gt; &lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;&lt;strong&gt;EVENT LOGISTICS: &lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;&lt;strong&gt;HTTP&lt;/strong&gt;: &lt;a href="http://www.sharepointsaturday.org/charlotte/default.aspx"&gt;http://www.sharepointsaturday.org/charlotte/default.aspx&lt;/a&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;&lt;strong&gt;Registration&lt;/strong&gt;: &lt;a href="https://www.clicktoattend.com/invitation.aspx?code=138669"&gt;https://www.clicktoattend.com/invitation.aspx?code=138669&lt;/a&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;&lt;strong&gt;Directions&lt;/strong&gt;:    &lt;a href="http://www.bing.com/maps/?v=2&amp;amp;where1=8050 Microsoft Way, Charlotte, NC 28273-8105&amp;amp;encType=1"&gt;http://www.bing.com/maps/?v=2&amp;amp;where1=8050%20Microsoft%20Way,%20Charlotte,%20NC%2028273-8105&amp;amp;encType=1&lt;/a&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;See you there! &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;Phil &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.sharepointsaturday.org/charlotte/default.aspx"&gt;&lt;img border="0" alt="" src="http://philwicklund.com/Lists/Photos/061009_1711_SpeakingatS2.jpg"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/bsoyCkGZCD23dY-kFM3YIFtZbbc/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/bsoyCkGZCD23dY-kFM3YIFtZbbc/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/bsoyCkGZCD23dY-kFM3YIFtZbbc/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/bsoyCkGZCD23dY-kFM3YIFtZbbc/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=ApgpDgnD-30:kOVCyq3e4dg:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=ApgpDgnD-30:kOVCyq3e4dg:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=ApgpDgnD-30:kOVCyq3e4dg:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?i=ApgpDgnD-30:kOVCyq3e4dg:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=ApgpDgnD-30:kOVCyq3e4dg:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=ApgpDgnD-30:kOVCyq3e4dg:KwTdNBX3Jqk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?i=ApgpDgnD-30:kOVCyq3e4dg:KwTdNBX3Jqk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=ApgpDgnD-30:kOVCyq3e4dg:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=ApgpDgnD-30:kOVCyq3e4dg:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?i=ApgpDgnD-30:kOVCyq3e4dg:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=ApgpDgnD-30:kOVCyq3e4dg:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?i=ApgpDgnD-30:kOVCyq3e4dg:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=ApgpDgnD-30:kOVCyq3e4dg:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/SharepointHappenings/~4/GN10pfkFhI4" height="1" width="1"/&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">BENDER\pwicklund</dc:creator><pubDate>Wed, 10 Jun 2009 12:10:00 GMT</pubDate><category domain="http://philwicklund.com/archive/tags/Speaking Events/default.aspx">Speaking Events</category><feedburner:origLink>http://philwicklund.com/archive/2009/06/10/speaking-at-sharepoint-saturday-charlotte.aspx</feedburner:origLink></item><item><title>Consume Reusable Content outside of Page Content field Controls</title><link>http://feedproxy.google.com/~r/SharepointHappenings/~3/fYGrmaVcUZs/consume-reusable-content-outside-of-page-content-field-controls.aspx</link><guid isPermaLink="false">/archive/2009/05/21/consume-reusable-content-outside-of-page-content-field-controls.aspx</guid><description>&lt;div class="ExternalClassBB732FF56902437996FE0048F7DFC0BA"&gt;
&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;Ever want to use some reusable content, but you don't have one of those handy Page Content field controls to consume it with? Well that was my situation because I was in a publishing site, but I was on a generic web part page with no page content field controls. Dang! However, I knew I didn't want to maintain the same HTML in two places, so I had to come up with a work around. Also, I didn't want to recreate the page with a new template. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;The solution I came up with involves creating a view on the Reusable content list and using jQuery to hide the toolbar. See below for the steps: &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;h2&gt;Step 1: Create a View on the Reusable Content List &lt;/h2&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;On the reusable content list, create a new standard view. Deselect all the columns except the Reusable HTML column: &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;img alt="" src="http://philwicklund.com/Lists/Photos/052109_2253_ConsumeReus1.png"&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;Next, set a filter to show ONLY the piece of reusable content you want to consume: &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;img alt="" src="http://philwicklund.com/Lists/Photos/052109_2253_ConsumeReus2.png"&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;This will create a view that only shows one piece of reusable content and only one column: &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;img alt="" src="http://philwicklund.com/Lists/Photos/052109_2253_ConsumeReus3.png"&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;h2&gt;Step 2: Drop the List View Web Part on the Page &lt;/h2&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;Now – drop a List View Web Part on the page where you want the reusable content, and change its view to point to your newly created view: &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;img alt="" src="http://philwicklund.com/Lists/Photos/052109_2253_ConsumeReus4.png"&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;img alt="" src="http://philwicklund.com/Lists/Photos/052109_2253_ConsumeReus5.png"&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;Also – make sure to turn off the toolbar and set the Chrome Type to be &amp;quot;None&amp;quot;: &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;img alt="" src="http://philwicklund.com/Lists/Photos/052109_2253_ConsumeReus6.png"&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;h2&gt;Step 3: Leverage jQuery to Hide that Annoying Column Header!!! &lt;/h2&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;After you hit Ok you'll see your reusable content on the page and it's not in a Page Content field control: &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;img alt="" src="http://philwicklund.com/Lists/Photos/052109_2253_ConsumeReus7.png"&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;The only problem is when you exit edit mode; you'll see that darn column header!! Well, to get rid of that, stick a Content Editor Web Part on the page and drop some jQuery in there to remove it: &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;img alt="" src="http://philwicklund.com/Lists/Photos/052109_2253_ConsumeReus8.png"&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;Here's the jQuery I pasted in my Content Editor Web Part: &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p style="background:#9bbb59"&gt;&lt;span style="font-family:Courier New;font-size:10pt"&gt;&lt;br&gt;&amp;lt;script type=&amp;quot;text/javascript&amp;quot; src=&amp;quot;http://ajax.googleapis.com/ajax/libs/jquery/1.3/jquery.min.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br&gt;&amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br&gt;$(&amp;quot;.ms-vh2-nograd&amp;quot;).hide();&lt;br&gt;&amp;lt;/script&amp;gt;&lt;br&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;Neat trick huh? Essentially, all the jQuery is doing is hiding all objects that bare the class of &amp;quot;ms-vh2-nograd&amp;quot;. Since that class is only used on reusable content List View Web Part's columns, it's safe to go ahead and hide them. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;h2&gt;DONE! &lt;/h2&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;Phil&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/gaT7NGykmDJwhaYr5a7vQSomTrE/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/gaT7NGykmDJwhaYr5a7vQSomTrE/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/gaT7NGykmDJwhaYr5a7vQSomTrE/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/gaT7NGykmDJwhaYr5a7vQSomTrE/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=ohcwNFkkFVs:RD9wp_XIrp4:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=ohcwNFkkFVs:RD9wp_XIrp4:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=ohcwNFkkFVs:RD9wp_XIrp4:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?i=ohcwNFkkFVs:RD9wp_XIrp4:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=ohcwNFkkFVs:RD9wp_XIrp4:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=ohcwNFkkFVs:RD9wp_XIrp4:KwTdNBX3Jqk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?i=ohcwNFkkFVs:RD9wp_XIrp4:KwTdNBX3Jqk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=ohcwNFkkFVs:RD9wp_XIrp4:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=ohcwNFkkFVs:RD9wp_XIrp4:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?i=ohcwNFkkFVs:RD9wp_XIrp4:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=ohcwNFkkFVs:RD9wp_XIrp4:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?i=ohcwNFkkFVs:RD9wp_XIrp4:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=ohcwNFkkFVs:RD9wp_XIrp4:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/SharepointHappenings/~4/fYGrmaVcUZs" height="1" width="1"/&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">PSW\Administrator</dc:creator><pubDate>Thu, 21 May 2009 17:59:00 GMT</pubDate><category domain="http://philwicklund.com/archive/tags/SharePoint Development/default.aspx">SharePoint Development</category><category domain="http://philwicklund.com/archive/tags/jQuery/default.aspx">jQuery</category><feedburner:origLink>http://philwicklund.com/archive/2009/05/21/consume-reusable-content-outside-of-page-content-field-controls.aspx</feedburner:origLink></item><item><title>The target location you specified is not supported by the report server</title><link>http://feedproxy.google.com/~r/SharepointHappenings/~3/cNzzaAeQ2qM/the-target-location-you-specified-is-not-supported-by-the-report-server.aspx</link><guid isPermaLink="false">/archive/2009/05/20/the-target-location-you-specified-is-not-supported-by-the-report-server.aspx</guid><description>&lt;div class="ExternalClass64CE39A64EE34019944682A1F7C1C4B7"&gt;
&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;I was getting another obnoxious error message with a reporting services report in my SharePoint site. This one won't win me a Nobel prize, but figured I'd type it up anyhow… &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;This is the error I was getting: &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;ul style="margin-left:54pt"&gt;
&lt;li&gt;
&lt;div&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;&lt;strong&gt;&lt;em&gt;An error occurred during client rendering. &lt;/em&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;&lt;strong&gt;&lt;em&gt;The target location you specified is not supported by the report server. A report definition (.rdl), report model (.smdl), resource, or shared data source (.rsds) file must be located within a library or a folder within it. &lt;/em&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;Well it turns out it was because I was fooling around with the actions on a placeholder within the report designer itself. I wanted the Title field to be clickable and when click it would send the user to another URL. The problem is I put the server name/port number in the url when it requires a host header instead. Notice my expression with the server name and port 82 in it: &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;img alt="" src="http://philwicklund.com/Lists/Photos/052009_1848_Thetargetlo1.png"&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;This apparently doesn't work and causes the afore mentioned error (for me anyways). When I changed the URL to something like &lt;a href="http://reports.contoso.com/"&gt;http://reports.contoso.com/&lt;/a&gt; it worked just fine. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;Phil&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/Qhm9FULzKC8_-8mh8IUqBS1sS6Y/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Qhm9FULzKC8_-8mh8IUqBS1sS6Y/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/Qhm9FULzKC8_-8mh8IUqBS1sS6Y/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Qhm9FULzKC8_-8mh8IUqBS1sS6Y/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=jhWImpd-rps:RI6BxxcComE:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=jhWImpd-rps:RI6BxxcComE:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=jhWImpd-rps:RI6BxxcComE:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?i=jhWImpd-rps:RI6BxxcComE:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=jhWImpd-rps:RI6BxxcComE:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=jhWImpd-rps:RI6BxxcComE:KwTdNBX3Jqk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?i=jhWImpd-rps:RI6BxxcComE:KwTdNBX3Jqk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=jhWImpd-rps:RI6BxxcComE:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=jhWImpd-rps:RI6BxxcComE:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?i=jhWImpd-rps:RI6BxxcComE:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=jhWImpd-rps:RI6BxxcComE:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?i=jhWImpd-rps:RI6BxxcComE:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=jhWImpd-rps:RI6BxxcComE:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/SharepointHappenings/~4/cNzzaAeQ2qM" height="1" width="1"/&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">PSW\Administrator</dc:creator><pubDate>Wed, 20 May 2009 13:49:00 GMT</pubDate><category domain="http://philwicklund.com/archive/tags/Reporting Services/default.aspx">Reporting Services</category><feedburner:origLink>http://philwicklund.com/archive/2009/05/20/the-target-location-you-specified-is-not-supported-by-the-report-server.aspx</feedburner:origLink></item><item><title>SSRS Reports do not work within SharePoint when using Host Headers</title><link>http://feedproxy.google.com/~r/SharepointHappenings/~3/cnmOV4tyKt4/ssrs-reports-do-not-work-within-sharepoint-when-using-host-headers.aspx</link><guid isPermaLink="false">/archive/2009/05/20/ssrs-reports-do-not-work-within-sharepoint-when-using-host-headers.aspx</guid><description>&lt;div class="ExternalClass2A5BC1A188B4495188C35DE020E317B5"&gt;
&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;WOW – integrating Reporting Services into SharePoint will get the blood pressure up! I just spent a morning diagnosing some aggravating errors with reporting services and I figured I'd blog about the solution. The only problem is I think everybody and their mom gets this error, but everyone has a different resolution… nevertheless, I hope this write up will help someone… &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;I was getting this error when browsing a reporting services report within a SharePoint site: &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;&lt;strong&gt;&lt;em&gt;&amp;quot;An unexpected error occurred while connecting to the report server. Verify that the report server is available and configured for SharePoint integrated mode.&amp;quot; &lt;/em&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;If I viewed the report with the report viewer web part I got this different error: &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;&lt;strong&gt;&lt;em&gt;&amp;quot;The request failed with HTTP status 401: Unauthorized.&amp;quot; &lt;/em&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;img alt="" src="http://philwicklund.com/Lists/Photos/052009_1834_SSRSReports1.png"&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;What's especially interesting is the report renders just fine when I was browsing the SharePoint site using the server name and port number. I only got the errors when using a host header! &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;&lt;strong&gt;FOR EXAMPLE: &lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;Reports render fine when hitting the SharePoint site using this URL: &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt;text-decoration:underline"&gt;http://servername:82 &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;but they don't work when using this fully qualified domain name \ FQDN (although the rest of the SharePoint content works just fine – just the reports are broke): &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt;text-decoration:underline"&gt;http://reports.contoso.com &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;My reporting services Web Service URL does not use a host header but rather just uses the server name and a port: &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt;text-decoration:underline"&gt;http://ssrsserver:8989 &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;&lt;strong&gt;SOLUTION! &lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;After 4 hours of toying with settings and reading a MILLION blog posts, I finally found one that worked. I found this KB article that discusses why you may get a 401 unauthorized error: &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;a href="http://support.microsoft.com/default.aspx?scid=kb;en-us;896861"&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;http://support.microsoft.com/default.aspx?scid=kb;en-us;896861&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;The solution involves disabling the loop back check. Follow these instructions to fix: &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;ol style="margin-left:72pt"&gt;
&lt;li&gt;&lt;span style="font-family:Verdana;color:black;font-size:12pt"&gt;Click &lt;strong&gt;Start&lt;/strong&gt;, click &lt;strong&gt;Run&lt;/strong&gt;, type &lt;strong&gt;regedit&lt;/strong&gt;, and then click &lt;strong&gt;OK&lt;/strong&gt;. &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;&lt;span style="font-family:Verdana;color:black;font-size:12pt"&gt;In Registry Editor, locate and then click the following registry key: &lt;/span&gt;&lt;/div&gt;
&lt;p&gt;&lt;span style="font-family:Verdana;color:black;font-size:12pt"&gt;&lt;strong&gt;HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa&lt;/strong&gt; &lt;/span&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family:Verdana;color:black;font-size:12pt"&gt;Right-click &lt;strong&gt;Lsa&lt;/strong&gt;, point to &lt;strong&gt;New&lt;/strong&gt;, and then click &lt;strong&gt;DWORD Value&lt;/strong&gt;. &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family:Verdana;color:black;font-size:12pt"&gt;Type &lt;strong&gt;DisableLoopbackCheck&lt;/strong&gt;, and then press ENTER. &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family:Verdana;color:black;font-size:12pt"&gt;Right-click &lt;strong&gt;DisableLoopbackCheck&lt;/strong&gt;, and then click &lt;strong&gt;Modify&lt;/strong&gt;. &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family:Verdana;color:black;font-size:12pt"&gt;In the &lt;strong&gt;Value data&lt;/strong&gt; box, type &lt;strong&gt;1&lt;/strong&gt;, and then click &lt;strong&gt;OK&lt;/strong&gt;. &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family:Verdana;color:black;font-size:12pt"&gt;Quit Registry Editor, and then restart your computer. &lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt"&gt;&lt;span style="font-family:Verdana"&gt;I have to admit the theory behind this is a bit vague in my mind – but if it's not broke, don't complain &lt;/span&gt;&lt;span style="font-family:Wingdings"&gt;J&lt;/span&gt;&lt;span style="font-family:Verdana"&gt;. &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;Hope that helps someone! &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;Phil&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/9t-vngF0nAJnptW5UI7M_gjlRj0/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/9t-vngF0nAJnptW5UI7M_gjlRj0/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/9t-vngF0nAJnptW5UI7M_gjlRj0/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/9t-vngF0nAJnptW5UI7M_gjlRj0/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=eD29GkEufW8:aXyNVo8yZyo:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=eD29GkEufW8:aXyNVo8yZyo:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=eD29GkEufW8:aXyNVo8yZyo:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?i=eD29GkEufW8:aXyNVo8yZyo:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=eD29GkEufW8:aXyNVo8yZyo:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=eD29GkEufW8:aXyNVo8yZyo:KwTdNBX3Jqk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?i=eD29GkEufW8:aXyNVo8yZyo:KwTdNBX3Jqk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=eD29GkEufW8:aXyNVo8yZyo:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=eD29GkEufW8:aXyNVo8yZyo:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?i=eD29GkEufW8:aXyNVo8yZyo:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=eD29GkEufW8:aXyNVo8yZyo:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?i=eD29GkEufW8:aXyNVo8yZyo:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=eD29GkEufW8:aXyNVo8yZyo:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/SharepointHappenings/~4/cnmOV4tyKt4" height="1" width="1"/&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">PSW\Administrator</dc:creator><pubDate>Wed, 20 May 2009 13:35:00 GMT</pubDate><category domain="http://philwicklund.com/archive/tags/Reporting Services/default.aspx">Reporting Services</category><feedburner:origLink>http://philwicklund.com/archive/2009/05/20/ssrs-reports-do-not-work-within-sharepoint-when-using-host-headers.aspx</feedburner:origLink></item><item><title>Prepare to be assimilated! Resistance is futile! For Groove...</title><link>http://feedproxy.google.com/~r/SharepointHappenings/~3/Hk0TS9NP_WU/prepare-to-be-assimilated-resistance-is-futile-for-groove-that-is-.aspx</link><guid isPermaLink="false">/archive/2009/05/14/prepare-to-be-assimilated-resistance-is-futile-for-groove-that-is-.aspx</guid><description>&lt;div class="ExternalClass2AD0E59C171C4B5CBE86853ACAEFD256"&gt;
&lt;p&gt;&lt;img alt="" align="right" src="http://philwicklund.com/Lists/Photos/051409_1919_Preparetobe1.png"&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;Groove is no more – or should I say it has been assimilated into the SharePoint hive mind and now goes by &lt;strong&gt;&lt;em&gt;SharePoint Workspace 2010. &lt;/em&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;&lt;span style="text-decoration:line-through"&gt;Pro-Clarity&lt;/span&gt; Performance Point has fallen, now &lt;span style="text-decoration:line-through"&gt;Groove&lt;/span&gt; SharePoint Workspace 2010 has as well… What's next, the Alpha Quadrant itself !?!?!? &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;See the &lt;a href="http://blogs.msdn.com/groove_development_team/archive/2009/05/13/makeover-for-groove-sharepoint-workspace-2010.aspx"&gt;write up&lt;/a&gt; from Microsoft: &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Verdana;color:black;font-size:10pt"&gt;&lt;strong&gt;&lt;em&gt;&amp;quot;Makeover for Groove: SharePoint Workspace 2010! &lt;/em&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Verdana;color:black;font-size:10pt"&gt;&lt;em&gt;Heads up – Groove is getting a new name as of the coming release of Office 2010.  Please welcome SharePoint Workspace 2010!  &lt;/em&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Verdana;color:black;font-size:10pt"&gt;&lt;em&gt;The name makeover is in concert with the direction the product is going.  SharePoint Workspace will provide easy access to SharePoint content (or content from any server that implements the publicly documented protocols) in an effort to provide a seamless online/offline experience. &lt;/em&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Verdana;color:black;font-size:10pt"&gt;&lt;em&gt;SharePoint Workspace 2010 will be easier to deploy and easier to manage, and it supports a new set of scenarios to help Office and SharePoint users be more productive.  It will also make it easier for IT folks to implement a consistent information strategy based on SharePoint technology throughout the organization. &lt;/em&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Verdana;color:black;font-size:10pt"&gt;&lt;em&gt;There will be changes in the way the product is delivered, as well – e.g. SharePoint Workspace (and OneNote, for that matter) will be added to the Microsoft Office Professional Plus 2010 release.  Keep an eye peeled for further announcements from Microsoft on new product plans for Office.&amp;quot; &lt;/em&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;img alt="" align="left" src="http://philwicklund.com/Lists/Photos/051409_1919_Preparetobe2.png"&gt;&lt;/p&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/9g-_75QmgEgy9tvy2cMB-owMhGo/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/9g-_75QmgEgy9tvy2cMB-owMhGo/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/9g-_75QmgEgy9tvy2cMB-owMhGo/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/9g-_75QmgEgy9tvy2cMB-owMhGo/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=YxkgHCGcqyY:KqCSHkBLYBA:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=YxkgHCGcqyY:KqCSHkBLYBA:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=YxkgHCGcqyY:KqCSHkBLYBA:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?i=YxkgHCGcqyY:KqCSHkBLYBA:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=YxkgHCGcqyY:KqCSHkBLYBA:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=YxkgHCGcqyY:KqCSHkBLYBA:KwTdNBX3Jqk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?i=YxkgHCGcqyY:KqCSHkBLYBA:KwTdNBX3Jqk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=YxkgHCGcqyY:KqCSHkBLYBA:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=YxkgHCGcqyY:KqCSHkBLYBA:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?i=YxkgHCGcqyY:KqCSHkBLYBA:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=YxkgHCGcqyY:KqCSHkBLYBA:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?i=YxkgHCGcqyY:KqCSHkBLYBA:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=YxkgHCGcqyY:KqCSHkBLYBA:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/SharepointHappenings/~4/Hk0TS9NP_WU" height="1" width="1"/&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">PSW\Administrator</dc:creator><pubDate>Thu, 14 May 2009 14:20:00 GMT</pubDate><category domain="http://philwicklund.com/archive/tags/Random/default.aspx">Random</category><feedburner:origLink>http://philwicklund.com/archive/2009/05/14/prepare-to-be-assimilated-resistance-is-futile-for-groove-that-is-.aspx</feedburner:origLink></item><item><title>Speaking at the Twin Cities Cloud Computing User Group</title><link>http://feedproxy.google.com/~r/SharepointHappenings/~3/PDfR6nR0zg4/speaking-at-the-twin-cities-cloud-computing-user-group.aspx</link><guid isPermaLink="false">/archive/2009/05/14/speaking-at-the-twin-cities-cloud-computing-user-group.aspx</guid><description>&lt;div class="ExternalClass93F088624D66410AB5BD394FD1A4FFA1"&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;img alt="" src="http://philwicklund.com/Lists/Photos/051409_1524_Speakingatt1.png"&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;Exciting news! I'll be speaking at June's cloud computing user group meeting on June 11&lt;sup&gt;th&lt;/sup&gt;. My topic is as follows: &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;h2&gt;SharePoint, Online Services, and Windows Azure – What does it mean for my business? &lt;/h2&gt;
&lt;p&gt;&lt;span style="font-family:Verdana;color:#1f497d;font-size:12pt"&gt;&lt;em&gt;Come learn the basics of SharePoint and cloud computing! We'll go through what cloud computing brings to the table for SharePoint, why you care, and how to get started and be successful. &lt;/em&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;&lt;strong&gt;CHECK IT OUT! &lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;TCCUG: &lt;a href="http://www.tccloud.com/"&gt;http://www.tccloud.com/&lt;/a&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;June Meeting: &lt;a href="http://www.tccloud.com/events/june-meeting"&gt;http://www.tccloud.com/events/june-meeting&lt;/a&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;Driving Directions: &lt;a href="http://tinyurl.com/cljtlc"&gt;&lt;span style="color:#283f4b"&gt;http://tinyurl.com/cljtlc&lt;/span&gt;&lt;/a&gt;&lt;span style="color:#333333"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;When: 6/11/2009, from 3pm-5pm &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;Phil&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/7QllkiqdKV25s4kwXKrepeVULFE/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/7QllkiqdKV25s4kwXKrepeVULFE/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/7QllkiqdKV25s4kwXKrepeVULFE/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/7QllkiqdKV25s4kwXKrepeVULFE/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=APq_hN_ZG3A:TUlQKPLko5Q:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=APq_hN_ZG3A:TUlQKPLko5Q:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=APq_hN_ZG3A:TUlQKPLko5Q:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?i=APq_hN_ZG3A:TUlQKPLko5Q:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=APq_hN_ZG3A:TUlQKPLko5Q:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=APq_hN_ZG3A:TUlQKPLko5Q:KwTdNBX3Jqk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?i=APq_hN_ZG3A:TUlQKPLko5Q:KwTdNBX3Jqk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=APq_hN_ZG3A:TUlQKPLko5Q:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=APq_hN_ZG3A:TUlQKPLko5Q:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?i=APq_hN_ZG3A:TUlQKPLko5Q:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=APq_hN_ZG3A:TUlQKPLko5Q:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?i=APq_hN_ZG3A:TUlQKPLko5Q:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=APq_hN_ZG3A:TUlQKPLko5Q:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/SharepointHappenings/~4/PDfR6nR0zg4" height="1" width="1"/&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">PSW\Administrator</dc:creator><pubDate>Thu, 14 May 2009 10:25:00 GMT</pubDate><category domain="http://philwicklund.com/archive/tags/Speaking Events/default.aspx">Speaking Events</category><feedburner:origLink>http://philwicklund.com/archive/2009/05/14/speaking-at-the-twin-cities-cloud-computing-user-group.aspx</feedburner:origLink></item><item><title>Steps to get the Reporting Services SharePoint Add-on Installed</title><link>http://feedproxy.google.com/~r/SharepointHappenings/~3/OccL9DZ-Cco/steps-to-get-the-reporting-services-sharepoint-add-on-installed.aspx</link><guid isPermaLink="false">/archive/2009/05/13/steps-to-get-the-reporting-services-sharepoint-add-on-installed.aspx</guid><description>&lt;div class="ExternalClassEBD2C089CE064A20B9D5FEBFE11A781B"&gt;
&lt;p&gt;&lt;span style="color:black;font-size:12pt"&gt;&lt;span style="font-family:Verdana"&gt;For some reason I've been having troubles getting the SharePoint add on for Reporting Services 2008 installed. Seems like the 2005 one was easier, but it's been many months since I've gone through the install so maybe I'm coming down with amnesia &lt;/span&gt;&lt;span style="font-family:Wingdings"&gt;J&lt;/span&gt;&lt;span style="font-family:Verdana"&gt;. So anyways, to save myself some sanity, and potentially other would be integrators, here are the steps that worked for me: &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Verdana;color:black;font-size:12pt"&gt;Firstly, I was getting this stupid error: &amp;quot;the system administrator has set policies to prevent this installation&amp;quot;. To overcome this I had to disable some security policies on the server (and on the other web front ends for that matter): &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;img alt="" src="http://philwicklund.com/Lists/Photos/051309_2110_Stepstogett1.png"&gt;&lt;span style="font-family:Verdana;color:black;font-size:12pt"&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Verdana;color:black;font-size:12pt"&gt;(NOTE: Make sure to reboot after making these policy changes) &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;After I did that I stopped getting the &lt;span style="color:black"&gt;&amp;quot;the system administrator has set policies to prevent this installation&amp;quot; error, but the install kept failing and rolling back the changes. ARGG! &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Verdana;color:black;font-size:12pt"&gt;This is the next error I was getting: &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p style="background:#9bbb59"&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;&lt;br&gt;SQL database login failed. Additional error information from SQL Server is included below.&lt;br&gt;Login failed for user 'NT AUTHORITY\ANONYMOUS LOGON'.&lt;br&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;&lt;span style="color:black"&gt;Well with a bit of conjecture I noticed that I stood a better chance running the MSI through the command window since I could tell it what user to run as. I opened command prompt and executed the following command to switch user accounts to the SharePoint service account:&lt;/span&gt; Run &amp;quot;runas /profile /user:[domain]\[user] cmd&amp;quot; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;img alt="" src="http://philwicklund.com/Lists/Photos/051309_2110_Stepstogett2.png"&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;Then I executed the RS Add-on MSI, but in Files only mode: Run &amp;quot;rsSharePoint_x64.msi SKIPCA=1&amp;quot; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;img alt="" src="http://philwicklund.com/Lists/Photos/051309_2110_Stepstogett3.png"&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;This command will open the MSI installer wizard and should successfully complete. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;Lastly I browsed to temp directory (do start, run, %temp% and copy the path into command prompt) and ran a second command against an EXE that was just deployed: Run &amp;quot;rsCustomAction.exe /i&amp;quot; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;img alt="" src="http://philwicklund.com/Lists/Photos/051309_2110_Stepstogett4.png"&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;… runs for a few minutes … &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;img alt="" src="http://philwicklund.com/Lists/Photos/051309_2110_Stepstogett5.png"&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;Done! &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;Oh – and Central Administration will now have the Reporting Services configuration pages: &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;img alt="" src="http://philwicklund.com/Lists/Photos/051309_2110_Stepstogett6.png"&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;(note: make sure to do this on ALL web front ends)&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/Hj9S_HvdrHvXxDAnygoaw4Uf3FA/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Hj9S_HvdrHvXxDAnygoaw4Uf3FA/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/Hj9S_HvdrHvXxDAnygoaw4Uf3FA/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Hj9S_HvdrHvXxDAnygoaw4Uf3FA/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=yhU-2rpCJ_w:piNwv0n4q5U:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=yhU-2rpCJ_w:piNwv0n4q5U:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=yhU-2rpCJ_w:piNwv0n4q5U:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?i=yhU-2rpCJ_w:piNwv0n4q5U:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=yhU-2rpCJ_w:piNwv0n4q5U:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=yhU-2rpCJ_w:piNwv0n4q5U:KwTdNBX3Jqk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?i=yhU-2rpCJ_w:piNwv0n4q5U:KwTdNBX3Jqk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=yhU-2rpCJ_w:piNwv0n4q5U:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=yhU-2rpCJ_w:piNwv0n4q5U:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?i=yhU-2rpCJ_w:piNwv0n4q5U:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=yhU-2rpCJ_w:piNwv0n4q5U:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?i=yhU-2rpCJ_w:piNwv0n4q5U:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=yhU-2rpCJ_w:piNwv0n4q5U:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/SharepointHappenings/~4/OccL9DZ-Cco" height="1" width="1"/&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">PSW\Administrator</dc:creator><pubDate>Wed, 13 May 2009 16:14:00 GMT</pubDate><category domain="http://philwicklund.com/archive/tags/Reporting Services/default.aspx">Reporting Services</category><feedburner:origLink>http://philwicklund.com/archive/2009/05/13/steps-to-get-the-reporting-services-sharepoint-add-on-installed.aspx</feedburner:origLink></item><item><title>An Introduction to jQuery for SharePoint Developers</title><link>http://feedproxy.google.com/~r/SharepointHappenings/~3/ZfYIvRrkR18/an-introduction-to-jquery-for-sharepoint-developers.aspx</link><guid isPermaLink="false">/archive/2009/04/20/an-introduction-to-jquery-for-sharepoint-developers.aspx</guid><description>&lt;div class="ExternalClass7020E9B6719640C3847DCB30D554587F"&gt;
&lt;p&gt;&lt;a href="http://www.sharepointsaturday.org/atlanta"&gt;&lt;img border="0" alt="" align="right" src="http://philwicklund.com/Lists/Photos/042009_1333_AnIntroduct1.png"&gt;&lt;/a&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;I couple days ago I was in Atlanta and gave a presentation at the &lt;a href="http://www.sharepointsaturday.org/atlanta"&gt;SharePoint Saturday&lt;/a&gt; event there on how to build the next generation of SharePoint web parts by using jQuery and Silverlight. I must say that I thought this Atlanta event was INCREDIBLY successful, and I talked with several attendees who were thoroughly satisfied, and even excited, about being there. What's more is I believe my presentation went well, to which I'm very thankful. I promised my students that I would blog about my presentation so they could reference the techniques I discussed at a later date – hence this post (and a second post in a day or two on the Silverlight half). &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;a href="http://philwicklund.com/Downloads/jQuery%20and%20Silverlight.pdf"&gt;&lt;img border="0" alt="" align="left" src="http://philwicklund.com/Lists/Photos/042009_1333_AnIntroduct2.png"&gt;&lt;/a&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;Click the slide to the left if you wish to download my PowerPoint slides. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;The first half of the presentation covered how to leverage jQuery in your SharePoint sites. For any jQuery beginner, I felt it would be important to discuss what jQuery is, how to use it (Syntax), and how to leverage a plugin. Keep reading, as this post will walkthrough those introductory concepts. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;h2&gt;&lt;span style="font-family:Verdana"&gt;What is jQuery, and why use it in my SharePoint Sites? &lt;/span&gt;&lt;/h2&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;I'm not sure if it is the most appropriate term to describe jQuery with, but &amp;quot;Easy Javascript&amp;quot; seems to fit the bill to me. Essentially jQuery is a Javascript library/API that lets you be able to do with one line of code, what would take ten or even worse, one hundred lines of javascript. Not only does it simplify your javascript code, but jQuery faster, lighter (only 55 KB!), and more widely supported (tier 1 and 2 browsers) than javascript. What's more is whether or not you like it, jQuery IS your future. It's being prepackaged in Visual Studio 2010 with intellesense and everything! If you're not on 2010 yet, no worries because 2008 has a &lt;a href="http://weblogs.asp.net/scottgu/archive/2008/02/08/vs-2008-web-development-hot-fix-roll-up-available.aspx"&gt;hot fix&lt;/a&gt; that installs the intellesense. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;To download jQuery, go here: &lt;a href="http://docs.jquery.com/Downloading_jQuery"&gt;http://docs.jquery.com/Downloading_jQuery&lt;/a&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;While all that is fun and all – it pales in comparison to the great user community behind it. The VAST community of jQuery developers has freely released HUNDREDS of plugins that can easily be consumed by your ASP.NET and SharePoint sites. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;Because of this – jQuery fits my bill of the &amp;quot;next generation of SharePoint web parts&amp;quot;, because tomorrow's web parts will be built by someone else, be consumed by non-developer folks, and are HIGHLY USABLE and GRAPHICALLY CHARMING. You'll be surprised by jQuery – in fact some of the plugins are so rich you'd expect to find Silverlight or Flash powering them. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;Check out some of my favorite plugins here: &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;a href="http://plugins.jquery.com/"&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;http://plugins.jquery.com&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.noupe.com/jquery/50-amazing-jquery-examples-part1.html"&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;http://www.noupe.com/jquery/50-amazing-jquery-examples-part1.html&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.noupe.com/ajax/37-more-shocking-jquery-plugins.html"&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;http://www.noupe.com/ajax/37-more-shocking-jquery-plugins.html&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;After the Syntax demonstration, a walkthrough of the famous &lt;a href="http://leandrovieira.com/projects/jquery/lightbox/"&gt;Lightbox plugin&lt;/a&gt; will be given. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;h2&gt;&lt;span style="font-family:Verdana"&gt;How to Program jQuery – What is the Syntax? &lt;/span&gt;&lt;/h2&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;When learning jQuery, the place to start is with selectors. Selectors give you the ability to select one or many DOM objects without directly calling the DOM, and then you can perform some action on that object(s). Look at these examples: &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt"&gt;&lt;span style="font-family:Courier New"&gt;$(&amp;quot;#someId&amp;quot;)&lt;/span&gt;&lt;span style="font-family:Verdana"&gt;&lt;br&gt;This will select any object on the page that has the ID of &amp;quot;someId&amp;quot; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt"&gt;&lt;span style="font-family:Courier New"&gt;$(&amp;quot;:text&amp;quot;)&lt;/span&gt;&lt;span style="font-family:Verdana"&gt;&lt;br&gt;This will select ALL the text boxes (&amp;lt;input type=&amp;quot;text&amp;quot; /&amp;gt;) on the page &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt"&gt;&lt;span style="font-family:Courier New"&gt;$(&amp;quot;.someClass&amp;quot;)&lt;/span&gt;&lt;span style="font-family:Verdana"&gt;&lt;br&gt;This will select ALL the object given the &amp;quot;someClass&amp;quot; class (class=&amp;quot;someClass&amp;quot;) &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt"&gt;&lt;span style="font-family:Courier New"&gt;$(&amp;quot;#sometable tr:even&amp;quot;)&lt;/span&gt;&lt;span style="font-family:Verdana"&gt;&lt;br&gt;This will search for an object with an ID of &amp;quot;sometable&amp;quot;, and will select all the tr objects therein. An example of this would be to select all the even rows within a table. &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;In addition to selecting objects, you can animate objects by using jQuery events. The following are some events you can use to animate your pages: &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;ul style="margin-left:72pt"&gt;
&lt;li&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;click &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;focus &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;show &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;hide &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;slideDown &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;slideUp &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;fadeIn &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;fadeout &lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;See this example: &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Courier New;font-size:12pt"&gt;$(&amp;quot;.philsClass&amp;quot;).show(&amp;quot;slow&amp;quot;, someFunction) &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;This example selects all the objects on the page that have a class of &amp;quot;philsClass&amp;quot;, and then runs the show event on those objects. If those objects are hidden they will now display. What's more is that you can optionally pass two parameters. The first is the speed, and the second is a callback method you can use to run some code when the object is finished is displaying. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;What's worth noting is the &amp;quot;show&amp;quot; event is a combination of the &amp;quot;slideDown&amp;quot; event and the &amp;quot;fadeIn&amp;quot; event when this &lt;a href="http://www.amazon.com/jQuery-Action-Bear-Bibeault/dp/1933988355/ref=pd_bbs_sr_1?ie=UTF8&amp;amp;s=books&amp;amp;qid=1240234548&amp;amp;sr=8-1"&gt;&lt;img border="0" alt="" align="right" src="http://philwicklund.com/Lists/Photos/042009_1333_AnIntroduct3.png"&gt;&lt;/a&gt;speed parameter is passed. Without the speed paremter there will be no transitional effect. The fadeIn event changes opacity gradually from 0% to 100%, while the slideDown event gradually makes the object vertically taller until it is it's intended size. Calling a show() with no parameters is similar to setting the display on a div to block, where the display will immediately change. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;By using fades and slides, you can bring transitional effects into your pages, WITHOUT server side code! Now that's cool. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;As an FYI, a great jQuery book I will not hesitate to recommend is jQuery in Action by Bear Bibeault and Yehuda Katz. It's written very well. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;h2&gt;&lt;span style="font-family:Verdana"&gt;The LightBox – A jQuery Plugin &lt;/span&gt;&lt;/h2&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;a href="http://philwicklund.com/pages/LightboxExample.aspx"&gt;&lt;img border="0" alt="" align="left" src="http://philwicklund.com/Lists/Photos/042009_1333_AnIntroduct4.png"&gt;&lt;/a&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;Like I said, one of the most powerful features of jQuery is the community behind it. LightBox is a sleek plugin that renders a modal diaglog and a picture viewer therein. Notice the screen shot to the left. This plugin has an AJAX feel with no post backs, and lets you scroll through pictures. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;Each plugin works a bit different as far as how to use them. To install this plugin, simply download it and upload the files into a document library. Once there, you can use a content editor web part to drop source on the page that renders the plugin. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p style="background:#c2d69b"&gt;&lt;span style="font-family:Courier New;font-size:10pt"&gt;&amp;lt;div id=&amp;quot;gallery&amp;quot;&amp;gt;&lt;br&gt;    &amp;lt;a href=&amp;quot;code/photos/image1.jpg&amp;quot; title=&amp;quot;Image1&amp;quot;&amp;gt;&lt;br&gt;        &amp;lt;img src=&amp;quot;/atltest/code/photos/thumb_image1.jpg&amp;quot; width=&amp;quot;72&amp;quot; height=&amp;quot;72&amp;quot; alt=&amp;quot;&amp;quot; /&amp;gt; &lt;/span&gt;&lt;/p&gt;
&lt;p style="background:#c2d69b"&gt;&lt;span style="font-family:Courier New;font-size:10pt"&gt;    &amp;lt;/a&amp;gt;&lt;br&gt;    &amp;lt;a href=&amp;quot;code/photos/image2.jpg&amp;quot; title=&amp;quot;Image2&amp;quot;&amp;gt;&lt;br&gt;        &amp;lt;img src=&amp;quot;/atltest/code/photos/thumb_image2.jpg&amp;quot; width=&amp;quot;72&amp;quot; height=&amp;quot;72&amp;quot; alt=&amp;quot;&amp;quot; /&amp;gt;&lt;br&gt;    &amp;lt;/a&amp;gt;&lt;br&gt;&amp;lt;/div&amp;gt; &lt;/span&gt;&lt;/p&gt;
&lt;p style="background:#c2d69b"&gt;&lt;span style="font-family:Courier New;font-size:10pt"&gt;&amp;lt;script type=&amp;quot;text/javascript&amp;quot; src=&amp;quot;/atltest/code/js/jquery.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br&gt;&amp;lt;script type=&amp;quot;text/javascript&amp;quot; src=&amp;quot;/atltest/code/js/jquery.lightbox-0.5.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br&gt;&amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br&gt;    $(function() {&lt;br&gt;        $('#gallery a').lightBox();&lt;br&gt;    });&lt;br&gt;&amp;lt;/script&amp;gt; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;Notice how easy this is to use. There's a DIV with some links in it. A link's HREF points to a big image, and within the link there's an image tag that points to the thumbnail version. Later you'll see some script tags pointing to the jQeury API as well as the lightbox plugin, followed by a function that executes as the page loads. The function gets all the objects on the page with an ID of &amp;quot;gallery&amp;quot;, call calls the lightBox() method on them. That's IT! &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;Pretty easy huh? Go here to see a working example: &lt;a href="http://philwicklund.com/pages/LightboxExample.aspx"&gt;http://philwicklund.com/pages/LightboxExample.aspx&lt;/a&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;To download the lightbox, go here: &lt;a href="http://leandrovieira.com/projects/jquery/lightbox/"&gt;http://leandrovieira.com/projects/jquery/lightbox/&lt;/a&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;h2&gt;&lt;span style="font-family:Verdana"&gt;Integrating into SharePoint &lt;/span&gt;&lt;/h2&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;The most straight forward way to integrate jQuery into SharePoint is to upload the API into a document library or stick it in the LAYOUTS directory on the web front ends. Whichever way you take, from there it is easy to put jQuery code on the page by simply using the content editor web part. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;Notice this simple example: &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;img alt="" src="http://philwicklund.com/Lists/Photos/042009_1333_AnIntroduct5.png"&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;The jQuery in this example does a select on all the text boxes on the page and changes their background color to be yellow. Here are the contents of the content editor: &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p style="background:#c2d69b"&gt;&lt;span style="font-family:Courier New;font-size:10pt"&gt;&amp;lt;script type=&amp;quot;text/javascript&amp;quot; src=&amp;quot;code/jquery-1.3.2.min.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br&gt;&lt;br&gt;&amp;lt;input type=&amp;quot;text&amp;quot; /&amp;gt;&lt;br&gt;&lt;br&gt;&amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br&gt;$(&amp;quot;:text&amp;quot;).css(&amp;quot;background-color&amp;quot;, &amp;quot;yellow&amp;quot;);&lt;br&gt;&amp;lt;/script&amp;gt; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;It's not the most thrilling example, but it serves to demonstrate the concept. Notice the &amp;quot;code&amp;quot; in the URL for the jQuery API file. That's the name of the document library I place the API in, as you'll also notice that library is on the quick launch. You'll want to change this URL to reflect where you placed your API. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;My next post will be about how to spice up your web parts with Silverlight – so Stay tuned! &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;Phil&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/3SoKfIcwjYoNnDZrP4HAY6cz8o0/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/3SoKfIcwjYoNnDZrP4HAY6cz8o0/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/3SoKfIcwjYoNnDZrP4HAY6cz8o0/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/3SoKfIcwjYoNnDZrP4HAY6cz8o0/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=D9Rec8dQgAM:A92XN1QlMjQ:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=D9Rec8dQgAM:A92XN1QlMjQ:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=D9Rec8dQgAM:A92XN1QlMjQ:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?i=D9Rec8dQgAM:A92XN1QlMjQ:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=D9Rec8dQgAM:A92XN1QlMjQ:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=D9Rec8dQgAM:A92XN1QlMjQ:KwTdNBX3Jqk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?i=D9Rec8dQgAM:A92XN1QlMjQ:KwTdNBX3Jqk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=D9Rec8dQgAM:A92XN1QlMjQ:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=D9Rec8dQgAM:A92XN1QlMjQ:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?i=D9Rec8dQgAM:A92XN1QlMjQ:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=D9Rec8dQgAM:A92XN1QlMjQ:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?i=D9Rec8dQgAM:A92XN1QlMjQ:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=D9Rec8dQgAM:A92XN1QlMjQ:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/SharepointHappenings/~4/ZfYIvRrkR18" height="1" width="1"/&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Phillip S. Wicklund</dc:creator><pubDate>Mon, 20 Apr 2009 08:27:00 GMT</pubDate><category domain="http://philwicklund.com/archive/tags/jQuery/default.aspx">jQuery</category><category domain="http://philwicklund.com/archive/tags/SharePoint Development/default.aspx">SharePoint Development</category><feedburner:origLink>http://philwicklund.com/archive/2009/04/20/an-introduction-to-jquery-for-sharepoint-developers.aspx</feedburner:origLink></item><item><title>Using the Data View Web Part to search a SharePoint List</title><link>http://feedproxy.google.com/~r/SharepointHappenings/~3/8CcBqr3Tcw8/using-the-data-view-web-part-to-search-a-sharepoint-list.aspx</link><guid isPermaLink="false">/archive/2009/04/11/using-the-data-view-web-part-to-search-a-sharepoint-list.aspx</guid><description>&lt;div class="ExternalClassCFB787EE00DC4AFCB36055DD071894FA"&gt;
&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;&lt;strong&gt;Table of Contents: &lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ul style="margin-left:54pt"&gt;
&lt;li&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;Business Reason behind this Post &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;Think &amp;quot;Filter&amp;quot; = &amp;quot;Search&amp;quot; = &amp;quot;End user won't know the Difference&amp;quot;! &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;Connecting your Data View to a Form Web Part &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;Clearing, or Resetting the Search Results &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;Adding Wildcard Searching &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;Removing Case Sensitivity on Searches &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;Conclusion &lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;h1&gt;&lt;span style="font-family:Verdana"&gt;Business Reason behind this Post &lt;/span&gt;&lt;/h1&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;You may be thinking why in the world would you want to search a SharePoint list using a Data View Web Part? Well the answer to that question revolves around how much control you may want on the search results. Consider these three business cases: &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;ul style="margin-left:54pt"&gt;
&lt;li&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;&lt;em&gt;&lt;strong&gt;You only want to search on one column in the list, rather than all the (indexed) columns&lt;/strong&gt;.&lt;br&gt;&lt;/em&gt;&lt;br&gt;&lt;br&gt;In the settings of a SharePoint list, you can set what columns are in the search results when a user performs an out of box search on the list (image below). Well if you only &amp;quot;index&amp;quot; one column, you'll only get search results on one column, so this bullet is nullified. But what if you have selected several columns to be indexed, perhaps for performance benefit reasons, but you still want to provide to your end users the ability to search on only one of those columns and not all of them? If they go to the out of box search, they may get results from other columns which might not be desirable. With a data view web part we can trim a search down to one or many columns, as our requirements dictate.&lt;br&gt;&lt;br&gt;&lt;img alt="" src="http://philwicklund.com/Lists/Photos/041109_2347_UsingtheDat1.png"&gt; &lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt; &lt;/p&gt;
&lt;ul style="margin-left:54pt"&gt;
&lt;li&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;&lt;em&gt;&lt;strong&gt;You want to perform a search on multiple lists, but not all the lists on a web&lt;/strong&gt;. &lt;br&gt;&lt;br&gt;&lt;img alt="" align="right" src="http://philwicklund.com/Lists/Photos/041109_2347_UsingtheDat2.png"&gt;&lt;/em&gt;&lt;br&gt;If you go to a site in SharePoint you'll see the out of box search. You can do a search on that site (image to the right) to search on all the content within the site. However, say there are 10 lists on the site, but you want to give you end users the ability to search just three of the lists and not all of them. You can do this with a Data View search by creating a Data Source off of a &amp;quot;merge&amp;quot; of the desired SharePoint lists, and searching on that &amp;quot;merged&amp;quot; data.&lt;br&gt;&lt;br&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;&lt;em&gt;&lt;strong&gt;You want to have a very specific Look and Feel that the search results use&lt;/strong&gt;.&lt;br&gt;&lt;/em&gt;&lt;br&gt;&lt;br&gt;The Out of box search results can be customized to some extent, but in the end a Data View with the actual Data Source available to it will be a more robust solution if your user interface needs heavy customization. Consider the difference between search results within the figure just below. On the left you'll notice the out of box results, and on the right you'll notice a Data View Web Part. The web part shows a search off just the &amp;quot;Project Name&amp;quot; column in a list of Projects. You'll notice the UI looks very different than the out of box results, and this UI can be customized to meet your requirements. Notice also the out of box web part shows results from all sorts of places because the search was performed at the site level. Using a Data View can help make your site more usable.&lt;br&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p style="margin-left:18pt"&gt;&lt;img alt="" src="http://philwicklund.com/Lists/Photos/041109_2347_UsingtheDat3.png"&gt;&lt;span style="font-family:Verdana"&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p style="margin-left:18pt"&gt; &lt;/p&gt;
&lt;p style="margin-left:18pt"&gt; &lt;/p&gt;
&lt;h1&gt;&lt;span style="font-family:Verdana"&gt;Think &amp;quot;Filter&amp;quot; = &amp;quot;Search&amp;quot; = &amp;quot;End user won't know the Difference&amp;quot;! &lt;/span&gt;&lt;/h1&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;Now that I've gotten you stoked about using Data Views to search on list data, I must share the &amp;quot;bad news&amp;quot; with you. To implement a &amp;quot;search&amp;quot; with a Data View, you're actually not searching like you'd expect to be, rather you're &amp;quot;filtering&amp;quot; the data. WSS doesn't provide out of box search web parts like MOSS does, so we're left with the Form web part. Essentially what we do to simulate a search experience for the end user is use a Form web part to provide a parameter to the Data View, which uses that parameter to filter down the data and only show the resulting sub set. It's not a true search, but sure feels like it to the end user, and I bet in most cases they would never know the difference! &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;What we're going to build in this walkthrough is the connection between the Form web part and the Data View. It is implied that you'll have a Data View already built that you want users to be able to search on. Notice how the solution will look in SharePoint Designer: &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;img alt="" src="http://philwicklund.com/Lists/Photos/041109_2347_UsingtheDat4.png"&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;h1&gt;&lt;span style="font-family:Verdana"&gt;Connecting your Data View to a Form Web Part &lt;/span&gt;&lt;/h1&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;After you have a Data View built out that you're satisfied with, you can add the Form web part to filter (&amp;quot;search&amp;quot;) the data. Click on a web part zone, and the web parts pane will appear to the right. Click next a few times and drag and drop the Form web part into the zone. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;img alt="" align="right" src="http://philwicklund.com/Lists/Photos/041109_2347_UsingtheDat5.png"&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;After I dropped the web part in the zone, I set the Title property to something other than &amp;quot;Form Web Part&amp;quot;, as well as set the width to 250px and aligned the text to be centered. Another thing you can do is right click the &amp;quot;Go&amp;quot; button and choose properties. From there you can rename &amp;quot;Go&amp;quot; to &amp;quot;Search&amp;quot;. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;After which I'm left with a web part looking like this: &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;img alt="" src="http://philwicklund.com/Lists/Photos/041109_2347_UsingtheDat6.png"&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;Now we need to connect the two web parts and make the search web part pass a filter value to the Data View. To do this, right click the search web part and choose &amp;quot;Web Part Connections…&amp;quot;. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;Note: if you get an error popup like the one below, you're on a publishing site and you need to save the page, and then try it again. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;img alt="" src="http://philwicklund.com/Lists/Photos/041109_2347_UsingtheDat7.png"&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;After you click Web Part Connections, a dialog will appear – leave the default set to provide form values to – and click next: &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;img alt="" src="http://philwicklund.com/Lists/Photos/041109_2347_UsingtheDat8.png"&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;Choose connect to another web part on this page – and click next again. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;Next, select the Data View you want to search, and choose Get Form Values From – and click next: &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;img alt="" src="http://philwicklund.com/Lists/Photos/041109_2347_UsingtheDat9.png"&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;The next step you need to map what was typed in the search box to a particular field in the Data View's Data Source. On my data source, I have a field called &amp;quot;Project Name&amp;quot;. I want to create a way for people to search project names, so I'm mapping the &amp;quot;T1&amp;quot; search box to this project name field – click next: &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;img alt="" src="http://philwicklund.com/Lists/Photos/041109_2347_UsingtheDat10.png"&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;Click Finish. Click Save in SharePoint Designer. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;Refresh the browser page and you'll see the new form web part. Try searching for something! &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;img alt="" src="http://philwicklund.com/Lists/Photos/041109_2347_UsingtheDat11.png"&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;Now – the rest of this post goes through making what you just built better. You'll quickly notice TONS of nuances – let's take each annoyance one at a time. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;h1&gt;&lt;span style="font-family:Verdana"&gt;Clearing, or Resetting the Search Results &lt;/span&gt;&lt;/h1&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;The first thing you'll notice about this system that kind of stinks is the search only seems to work once – where consecutive searches don't seem to return anything. The problem goes back to that fact that we're filtering, not searching the data. So, after we search something, and then search again, what we're really doing is adding a second filter on what was already filtered. So if you get 10 results back from the original search, your second search is only searching those 10 results. Well obviously this is lame, and unfortunately the only thing I could come up with is to add a &amp;quot;Search Reset&amp;quot; link bellow the search box. When clicked, the user is just redirected back to the page they're currently on, thus resetting the filter. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;img alt="" src="http://philwicklund.com/Lists/Photos/041109_2347_UsingtheDat12.png"&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;h1&gt;&lt;span style="font-family:Verdana"&gt;Adding Wildcard Searching &lt;/span&gt;&lt;/h1&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;Another thing with this search is that it is an exact match search only. This of course is really not a search because you need to know exactly what to type to get anything back. Take for instance my search term of &amp;quot;Develop Searching System&amp;quot;. If I had searched for &amp;quot;Develop Searching&amp;quot; it would not have returned any results. To get this to return something, we need to implement a wild card search. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;To implement a wildcard search we're going to use an XSL Contains method to search the data to see if it contains the term, rather than exactly matches it. Follow these 3 steps to convert to a wildcard search: &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p style="margin-left:36pt"&gt;&lt;span style="font-family:Verdana"&gt;&lt;span style="font-size:16pt"&gt;&lt;strong&gt;1.&lt;/strong&gt;&lt;/span&gt;&lt;span style="font-size:12pt"&gt; The first thing we need to do is setup a parameter on our Data View. The reason is because if you remember we choose to &amp;quot;Get Filter Value From&amp;quot; earlier, and filter values are exact matches. Because of that we need to load our search term into a variable that can be leveraged in our custom XSL code. &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin-left:36pt"&gt; &lt;/p&gt;
&lt;p style="margin-left:36pt"&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;Click on your data view properties icon and choose &amp;quot;Parameters&amp;quot;: &lt;/span&gt;&lt;/p&gt;
&lt;p style="margin-left:36pt"&gt; &lt;/p&gt;
&lt;p style="margin-left:36pt"&gt;&lt;img alt="" src="http://philwicklund.com/Lists/Photos/041109_2347_UsingtheDat13.png"&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p style="margin-left:36pt"&gt; &lt;/p&gt;
&lt;p style="margin-left:36pt"&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;Click &amp;quot;New Parameter&amp;quot; and title it something like &amp;quot;SearchTerm&amp;quot;. Leave the other defaults, and click ok. &lt;/span&gt;&lt;/p&gt;
&lt;p style="margin-left:36pt"&gt; &lt;/p&gt;
&lt;p style="margin-left:36pt"&gt;&lt;img alt="" src="http://philwicklund.com/Lists/Photos/041109_2347_UsingtheDat14.png"&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p style="margin-left:36pt"&gt; &lt;/p&gt;
&lt;p style="margin-left:36pt"&gt;&lt;span style="font-family:Verdana"&gt;&lt;span style="font-size:16pt"&gt;&lt;strong&gt;2.&lt;/strong&gt;&lt;/span&gt;&lt;span style="font-size:12pt"&gt; Go back to the Web Part Connections interface on the search box, and modify the connection we setup earlier: &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin-left:36pt"&gt; &lt;/p&gt;
&lt;p style="margin-left:36pt"&gt;&lt;img alt="" src="http://philwicklund.com/Lists/Photos/041109_2347_UsingtheDat15.png"&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p style="margin-left:36pt"&gt; &lt;/p&gt;
&lt;p style="margin-left:36pt"&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;Note: you may get that same error message we saw earlier. Save the page and try again. &lt;/span&gt;&lt;/p&gt;
&lt;p style="margin-left:36pt"&gt; &lt;/p&gt;
&lt;p style="margin-left:36pt"&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;Click next twice. Change the drop down to be &amp;quot;Get Parameters From&amp;quot;: &lt;/span&gt;&lt;/p&gt;
&lt;p style="margin-left:36pt"&gt; &lt;/p&gt;
&lt;p style="margin-left:36pt"&gt;&lt;img alt="" src="http://philwicklund.com/Lists/Photos/041109_2347_UsingtheDat16.png"&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p style="margin-left:36pt"&gt; &lt;/p&gt;
&lt;p style="margin-left:36pt"&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;Click Next. &lt;/span&gt;&lt;/p&gt;
&lt;p style="margin-left:36pt"&gt; &lt;/p&gt;
&lt;p style="margin-left:36pt"&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;Set the &amp;quot;SearchTerm&amp;quot; parameter to be that of our search box ID: &lt;/span&gt;&lt;/p&gt;
&lt;p style="margin-left:36pt"&gt; &lt;/p&gt;
&lt;p style="margin-left:36pt"&gt;&lt;img alt="" src="http://philwicklund.com/Lists/Photos/041109_2347_UsingtheDat17.png"&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p style="margin-left:36pt"&gt; &lt;/p&gt;
&lt;p style="margin-left:36pt"&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;Click next. Click Finish. &lt;/span&gt;&lt;/p&gt;
&lt;p style="margin-left:36pt"&gt; &lt;/p&gt;
&lt;p style="margin-left:36pt"&gt;&lt;span style="font-family:Verdana"&gt;&lt;span style="font-size:16pt"&gt;&lt;strong&gt;3.&lt;/strong&gt;&lt;/span&gt;&lt;span style="font-size:12pt"&gt; Lastly we need to edit the rows query that the Data View uses. In the Code view, search for &lt;em&gt;name=&amp;quot;Rows&amp;quot;&lt;/em&gt;. Notice the select on that variable contains a query – this is what we need to modify. By default it brings back all rows, but we need filter out the rows that do not match our search term. &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin-left:36pt"&gt; &lt;/p&gt;
&lt;p style="margin-left:36pt"&gt;&lt;img alt="" src="http://philwicklund.com/Lists/Photos/041109_2347_UsingtheDat18.png"&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p style="margin-left:36pt"&gt; &lt;/p&gt;
&lt;p style="margin-left:36pt"&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;After the &amp;quot;/Row&amp;quot;, add &amp;quot;[]&amp;quot;. Within the [], add &amp;quot;contains(,)&amp;quot;. Notice the contains method takes two parameters. The first is the string you're looking in, and the second is the string you're looking for. If the second string is contained within the first, the result is true and that row will be added to the Data View and the search result set. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p style="margin-left:36pt"&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;For me, I want to see if my search term (the parameter we added to the Data View earlier) is present within the Project Name column. Before we did an exact match, but now we will alter the Rows variable to use a contains method, and thereby supporting wildcard searches (some would call it &amp;quot;poor man's&amp;quot; wildcard searching, but it is good enough for me). &lt;/span&gt;&lt;/p&gt;
&lt;p style="margin-left:36pt"&gt; &lt;/p&gt;
&lt;p style="margin-left:36pt"&gt;&lt;img alt="" src="http://philwicklund.com/Lists/Photos/041109_2347_UsingtheDat19.png"&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p style="margin-left:36pt"&gt; &lt;/p&gt;
&lt;p style="margin-left:36pt"&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;Click Save – and search again! &lt;/span&gt;&lt;/p&gt;
&lt;p style="margin-left:36pt"&gt; &lt;/p&gt;
&lt;p style="margin-left:36pt"&gt;&lt;img alt="" src="http://philwicklund.com/Lists/Photos/041109_2347_UsingtheDat20.png"&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p style="margin-left:36pt"&gt; &lt;/p&gt;
&lt;p style="margin-left:36pt"&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;Or better yet! &lt;/span&gt;&lt;/p&gt;
&lt;p style="margin-left:36pt"&gt; &lt;/p&gt;
&lt;p style="margin-left:36pt"&gt;&lt;img alt="" src="http://philwicklund.com/Lists/Photos/041109_2347_UsingtheDat21.png"&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;h1&gt;&lt;span style="font-family:Verdana"&gt;Removing Case Sensitivity on Searches &lt;/span&gt;&lt;/h1&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Verdana"&gt;Wildcards (more specifically, contains) searching is pretty cool, but what about case sensitivity? If I take the solution we've built thus far, and search for &amp;quot;develop searching&amp;quot; rather than &amp;quot;Develop Searching&amp;quot;, we don't get any results back! Obviously we NEED to make our search case IN-sensitive! &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Verdana"&gt;To do this, add the following variable directly before the Rows variable: &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Courier New;font-size:12pt"&gt;&amp;lt;xsl:variable name=&amp;quot;smallcase&amp;quot; select=&amp;quot;'abcdefghijklmnopqrstuvwxyz'&amp;quot; /&amp;gt;&lt;br&gt;&amp;lt;xsl:variable name=&amp;quot;uppercase&amp;quot; select=&amp;quot;'ABCDEFGHIJKLMNOPQRSTUVWXYZ'&amp;quot; /&amp;gt;&lt;br&gt;&amp;lt;xsl:variable name=&amp;quot;searchcaps&amp;quot; select=&amp;quot;translate($SearchTerm, $smallcase, $uppercase)&amp;quot; /&amp;gt; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Verdana"&gt;Essentially what we're going to do is take our SearchTerm parameter and translate all the lower case values to be upper case. Next, we'll translate the data source parameter in the Rows query, just like how we translated the SearchTerm. Thus, both the data and the search term will be upper case, and our search queries will be case insensitive. The final code looks like this: &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;img alt="" src="http://philwicklund.com/Lists/Photos/041109_2347_UsingtheDat22.png"&gt;&lt;span style="font-family:Verdana"&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Verdana"&gt;Try your search again! &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;img alt="" src="http://philwicklund.com/Lists/Photos/041109_2347_UsingtheDat23.png"&gt;&lt;span style="font-family:Verdana"&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;h1&gt;&lt;span style="font-family:Verdana"&gt;Conclusion &lt;/span&gt;&lt;/h1&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;As you can see, you can do some pretty cool stuff with Data View Web Parts. Combined with the Form Web Part, you can really build a nice searching solution that just couldn't be accomplished with the out of box search. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;I hope this helps! &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;Phil&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/1ERnuL9ALFs0AJ5ZjjIZMM27ldw/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/1ERnuL9ALFs0AJ5ZjjIZMM27ldw/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/1ERnuL9ALFs0AJ5ZjjIZMM27ldw/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/1ERnuL9ALFs0AJ5ZjjIZMM27ldw/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=UJdAvDiaNeA:3U9tuMJDEYk:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=UJdAvDiaNeA:3U9tuMJDEYk:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=UJdAvDiaNeA:3U9tuMJDEYk:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?i=UJdAvDiaNeA:3U9tuMJDEYk:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=UJdAvDiaNeA:3U9tuMJDEYk:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=UJdAvDiaNeA:3U9tuMJDEYk:KwTdNBX3Jqk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?i=UJdAvDiaNeA:3U9tuMJDEYk:KwTdNBX3Jqk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=UJdAvDiaNeA:3U9tuMJDEYk:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=UJdAvDiaNeA:3U9tuMJDEYk:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?i=UJdAvDiaNeA:3U9tuMJDEYk:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=UJdAvDiaNeA:3U9tuMJDEYk:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?i=UJdAvDiaNeA:3U9tuMJDEYk:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=UJdAvDiaNeA:3U9tuMJDEYk:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/SharepointHappenings/~4/8CcBqr3Tcw8" height="1" width="1"/&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Phillip S. Wicklund</dc:creator><pubDate>Sat, 11 Apr 2009 18:42:00 GMT</pubDate><category domain="http://philwicklund.com/archive/tags/Search/default.aspx">Search</category><feedburner:origLink>http://philwicklund.com/archive/2009/04/11/using-the-data-view-web-part-to-search-a-sharepoint-list.aspx</feedburner:origLink></item><item><title>Announcing Version 2.0 of the SharePoint Polling Web Part!</title><link>http://feedproxy.google.com/~r/SharepointHappenings/~3/-i-ldLklB9Y/announcing-version-2-0-of-the-sharepoint-polling-web-part.aspx</link><guid isPermaLink="false">/archive/2009/03/27/announcing-version-2-0-of-the-sharepoint-polling-web-part.aspx</guid><description>&lt;div class="ExternalClassECE008C6D17D4A88AEE350F296E2B058"&gt;
&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;I'm pleased to announce I've publish a new, and MUCH improved version of my polling web part. The best new feature of the web part is that it now uses a nice looking doughnut chart to render the poll results. Much more presentable! &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;img alt="" src="http://philwicklund.com/Lists/Photos/032709_1739_AnnouncingV1.png"&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;&lt;strong&gt;Other bug fixes in 2.0: &lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;ul style="margin-left:54pt"&gt;
&lt;li&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;Fixed issue with allowing for only one response per user. When a new poll is created, users were not able to respond to it because they had responded to the previous poll. Now when a new poll is created, the user will be able to respond to it (still only once).&lt;strong&gt; &lt;/strong&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt; &lt;/p&gt;
&lt;ul style="margin-left:54pt"&gt;
&lt;li&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;Redirection to the polls list was breaking when the poll web part was placed on publishing sites.&lt;strong&gt; &lt;/strong&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;For more information: &lt;a href="http://philwicklund.com/freeware/polling/default.aspx"&gt;&lt;/a&gt;&lt;/span&gt;http://philwicklund.com/freeware/polling/default.aspx &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;Happy &lt;strong&gt;&lt;em&gt;POLLING&lt;/em&gt;&lt;/strong&gt;! &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;Phil&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/IA6mC0fmXPfhWOwE1sv9f_lK7s0/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/IA6mC0fmXPfhWOwE1sv9f_lK7s0/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/IA6mC0fmXPfhWOwE1sv9f_lK7s0/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/IA6mC0fmXPfhWOwE1sv9f_lK7s0/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=-F4wdGl9Hao:QucVsSfH2Nk:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=-F4wdGl9Hao:QucVsSfH2Nk:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=-F4wdGl9Hao:QucVsSfH2Nk:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?i=-F4wdGl9Hao:QucVsSfH2Nk:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=-F4wdGl9Hao:QucVsSfH2Nk:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=-F4wdGl9Hao:QucVsSfH2Nk:KwTdNBX3Jqk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?i=-F4wdGl9Hao:QucVsSfH2Nk:KwTdNBX3Jqk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=-F4wdGl9Hao:QucVsSfH2Nk:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=-F4wdGl9Hao:QucVsSfH2Nk:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?i=-F4wdGl9Hao:QucVsSfH2Nk:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=-F4wdGl9Hao:QucVsSfH2Nk:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?i=-F4wdGl9Hao:QucVsSfH2Nk:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=-F4wdGl9Hao:QucVsSfH2Nk:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/SharepointHappenings/~4/-i-ldLklB9Y" height="1" width="1"/&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Phillip S. Wicklund</dc:creator><pubDate>Fri, 27 Mar 2009 12:33:00 GMT</pubDate><category domain="http://philwicklund.com/archive/tags/Freeware Releases/default.aspx">Freeware Releases</category><feedburner:origLink>http://philwicklund.com/archive/2009/03/27/announcing-version-2-0-of-the-sharepoint-polling-web-part.aspx</feedburner:origLink></item><item><title>WSSSpWebAlreadyLinkedToProject error when publishing a Project plan</title><link>http://feedproxy.google.com/~r/SharepointHappenings/~3/UCyR5EingT8/wssspwebalreadylinkedtoproject-error-when-publishing-a-project-plan.aspx</link><guid isPermaLink="false">/archive/2009/03/25/wssspwebalreadylinkedtoproject-error-when-publishing-a-project-plan.aspx</guid><description>&lt;div class="ExternalClass2AE68BE0E619499F9091D3A0714B891C"&gt;
&lt;p&gt;&lt;span style="font-family:Verdana;color:black;font-size:12pt"&gt;I was getting this WSSSpWebAlreadyLinkedToProject error in the SharePoint error logs. It occurred when publishing a Project plan to Project Server from the Office Project client. The publish action would correctly provision a new workspace, but problems with the workspace were quickly apparent. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Verdana;color:black;font-size:12pt"&gt;Firstly, only the system account had access to the site. For example, I would publish from the Project client using my pwicklund Active Directory account. When things were working, pwicklund would have access to the site that was just published. Well, not this time. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Verdana;color:black;font-size:12pt"&gt;Secondly, I noticed the Site Address was not getting populated in the Project Workspaces page within Project Web Access! &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;img alt="" src="http://philwicklund.com/Lists/Photos/032509_1749_WSSSpWebAlr1.png"&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;This was definitely a problem because the site was not getting listed on the project workspaces list on the home page of project web access: &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;img alt="" src="http://philwicklund.com/Lists/Photos/032509_1749_WSSSpWebAlr2.png"&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;So now I'm stuck with an Orphaned workspace that I end users can't see, nor do they have access to! &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;Well after a while of thinking cap time, I realized what I did wrong. When I created the site template used to create the workspace off of, I created it off of an existing workspace that already had a project plan associated with it. What I had to do was create a new site template off of Microsoft's out of box template – WITHOUT a plan associated with it! So I created a new site with the browser, NOT the MS project client. Then I went into Project Workspace Provisioning Settings and change to the new template, and everything worked! &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;img alt="" src="http://philwicklund.com/Lists/Photos/032509_1749_WSSSpWebAlr3.png"&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;Hopefully this will save someone a bit of time…. &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;Phil&lt;/p&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/C9-rSB4E6y8a5s3MYvrkjDGUGdc/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/C9-rSB4E6y8a5s3MYvrkjDGUGdc/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/C9-rSB4E6y8a5s3MYvrkjDGUGdc/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/C9-rSB4E6y8a5s3MYvrkjDGUGdc/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=aMZBBbw7qDs:1QmaVUPoieI:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=aMZBBbw7qDs:1QmaVUPoieI:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=aMZBBbw7qDs:1QmaVUPoieI:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?i=aMZBBbw7qDs:1QmaVUPoieI:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=aMZBBbw7qDs:1QmaVUPoieI:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=aMZBBbw7qDs:1QmaVUPoieI:KwTdNBX3Jqk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?i=aMZBBbw7qDs:1QmaVUPoieI:KwTdNBX3Jqk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=aMZBBbw7qDs:1QmaVUPoieI:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=aMZBBbw7qDs:1QmaVUPoieI:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?i=aMZBBbw7qDs:1QmaVUPoieI:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=aMZBBbw7qDs:1QmaVUPoieI:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?i=aMZBBbw7qDs:1QmaVUPoieI:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=aMZBBbw7qDs:1QmaVUPoieI:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/SharepointHappenings/~4/UCyR5EingT8" height="1" width="1"/&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Phillip S. Wicklund</dc:creator><pubDate>Wed, 25 Mar 2009 12:44:00 GMT</pubDate><category domain="http://philwicklund.com/archive/tags/Project Server/default.aspx">Project Server</category><feedburner:origLink>http://philwicklund.com/archive/2009/03/25/wssspwebalreadylinkedtoproject-error-when-publishing-a-project-plan.aspx</feedburner:origLink></item><item><title>The Power of Sharing SharePoint Content on Facebook</title><link>http://feedproxy.google.com/~r/SharepointHappenings/~3/MZJSdPjhp4U/the-power-of-sharing-sharepoint-content-on-facebook.aspx</link><guid isPermaLink="false">/archive/2009/03/11/the-power-of-sharing-sharepoint-content-on-facebook.aspx</guid><description>&lt;div class="ExternalClass43D864FC03164BD2AE589BB0A4724FE3"&gt;
&lt;p&gt;&lt;img alt="" align="right" src="http://philwicklund.com/Lists/Photos/031109_1340_ThePowerofS1.png"&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt; Now that the &lt;a href="http://philwicklund.com/freeware/fks/default.aspx"&gt;Facebook Kit for SharePoint&lt;/a&gt; (FKS) has been RTM for a few weeks, I wanted to take a quick opportunity to discuss some of the business value I see an organization can gain by using the kit. In particular, I want to call out the &lt;a href="http://philwicklund.com/archive/2009/03/04/embedded-sharing-with-the-facebook-kit-for-sharepoint-–-fks-version-0-5.aspx"&gt;embedded sharing&lt;/a&gt; feature and the comments web part that is available in the FKS. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;Both of these features to me are really exciting because of their potential to take a piece of content and rapidly distribute that content to millions of potential consumers. I think the term &amp;quot;Viral Growth&amp;quot; fits well with this because of the recursive nature of how the content can be distributed. For instance, say I Share to all my friends a new feature I released at my software company. Facebook now takes that content and opens a window of proliferation and exponential distribution. Not only will my friends get a notification on their wall that I've release this new product, but any of their friends that see or follow their wall will also see the product release. What's more is when a friend, or a friend of a friend sees a published piece of content, they can react to it by leaving comments on the post. This will create a new post on their wall saying they've reacted to some content, and now all their friends will see that reaction and they can also react. And then their friends, and their friends' friends, and so on. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt"&gt;&lt;span style="font-family:Verdana"&gt;Bottom line – no need to send SPAM emails; just share the content to FACEBOOK! (that doesn't mean it's not still SPAM though &lt;/span&gt;&lt;span style="font-family:Wingdings"&gt;J&lt;/span&gt;&lt;span style="font-family:Verdana"&gt;) &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;Case in point, I'm using the comments web part to capture comments on my blog posts. Notice how I can see when people leave comments on my blog posts: &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;img alt="" src="http://philwicklund.com/Lists/Photos/031109_1340_ThePowerofS2.png"&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;And my friends can see when I reply to their comments: &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;img alt="" src="http://philwicklund.com/Lists/Photos/031109_1340_ThePowerofS3.png"&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;These same reactions occur when you share a piece of content using the &lt;a href="http://philwicklund.com/archive/2009/03/04/embedded-sharing-with-the-facebook-kit-for-sharepoint-–-fks-version-0-5.aspx"&gt;embedded sharing&lt;/a&gt; feature: &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;img alt="" src="http://philwicklund.com/Lists/Photos/031109_1340_ThePowerofS4.png"&gt;&lt;span style="font-family:Verdana;font-size:8pt"&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Verdana"&gt;&lt;span style="font-size:12pt"&gt;&lt;br&gt;&lt;/span&gt;&lt;span style="font-size:8pt"&gt;(&lt;a href="http://philwicklund.com/archive/2009/03/04/embedded-sharing-with-the-facebook-kit-for-sharepoint-–-fks-version-0-5.aspx"&gt;http://philwicklund.com/archive/2009/03/04/embedded-sharing-with-the-facebook-kit-for-sharepoint-–-fks-version-0-5.aspx&lt;/a&gt;)&lt;/span&gt;&lt;span style="font-size:12pt"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;As you can imagine, by using the FKS you can easily &amp;quot;push&amp;quot; content to world. A few business sectors I see that would really benefit by using this approach are: &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;-Manufacturers &amp;amp; Software Companies: publish new feature releases, etc. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;-Think Tanks: Political organizations or philosophical groups who want to proliferate their ideas. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;-Religious Organizations &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;-ANYONE WHO HAS A BLOG! – why settle for commenting engines that don't get your blog posts distributed to a larger audience? FYI, Facebook claims that bloggers on average see a &lt;strong&gt;40% increase in comments&lt;/strong&gt; when using their commenting engine!!! Sounds like a no brainer to me. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;So, now that I'm wrapping up the post, one question remains… Is this the dawn of a new generation of social networking? It seems to me that Facebook is becoming less of a tool used to connect people to each other, and is &amp;quot;maturing&amp;quot; into a tool used to distribute ideas, news, and information. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;Call it &amp;quot;Social Communication&amp;quot; perhaps? &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;Phil &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Verdana;font-size:10pt"&gt;Facebook Kit for SharePoint - Home Page &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://philwicklund.com/freeware/fks/default.aspx"&gt;&lt;span style="font-family:Verdana;font-size:10pt"&gt;http://philwicklund.com/freeware/fks/default.aspx&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:Verdana;font-size:10pt"&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;&lt;/span&gt; &lt;/p&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/fEkE9FJfh4Xwpo3ITuc_kN6brIE/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/fEkE9FJfh4Xwpo3ITuc_kN6brIE/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/fEkE9FJfh4Xwpo3ITuc_kN6brIE/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/fEkE9FJfh4Xwpo3ITuc_kN6brIE/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=2MtCHcNK5Ow:0rrGrrEtasE:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=2MtCHcNK5Ow:0rrGrrEtasE:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=2MtCHcNK5Ow:0rrGrrEtasE:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?i=2MtCHcNK5Ow:0rrGrrEtasE:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=2MtCHcNK5Ow:0rrGrrEtasE:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=2MtCHcNK5Ow:0rrGrrEtasE:KwTdNBX3Jqk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?i=2MtCHcNK5Ow:0rrGrrEtasE:KwTdNBX3Jqk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=2MtCHcNK5Ow:0rrGrrEtasE:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=2MtCHcNK5Ow:0rrGrrEtasE:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?i=2MtCHcNK5Ow:0rrGrrEtasE:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=2MtCHcNK5Ow:0rrGrrEtasE:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?i=2MtCHcNK5Ow:0rrGrrEtasE:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=2MtCHcNK5Ow:0rrGrrEtasE:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/SharepointHappenings/~4/MZJSdPjhp4U" height="1" width="1"/&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Phillip S. Wicklund</dc:creator><pubDate>Wed, 11 Mar 2009 08:35:00 GMT</pubDate><category domain="http://philwicklund.com/archive/tags/Social Networking/default.aspx">Social Networking</category><feedburner:origLink>http://philwicklund.com/archive/2009/03/11/the-power-of-sharing-sharepoint-content-on-facebook.aspx</feedburner:origLink></item><item><title>Bug fix, Facebook Kit for SharePoint Version 0.5.3</title><link>http://feedproxy.google.com/~r/SharepointHappenings/~3/eNBDmpNgEM4/bug-fix-facebook-kit-for-sharepoint-version-0-5-3.aspx</link><guid isPermaLink="false">/archive/2009/03/06/bug-fix-facebook-kit-for-sharepoint-version-0-5-3.aspx</guid><description>&lt;div class="ExternalClassBEABC6679B9348E8BCFF73A5B9232BB0"&gt;
&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;Short update on the FKS: I recently published version 0.5, but a while thereafter noticed a bug when Sharing a list item or document via the edit control block: &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;a href="http://philwicklund.com/archive/2009/03/04/embedded-sharing-with-the-facebook-kit-for-sharepoint-–-fks-version-0-5.aspx"&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;http://philwicklund.com/archive/2009/03/04/embedded-sharing-with-the-facebook-kit-for-sharepoint-–-fks-version-0-5.aspx&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;img alt="" src="http://philwicklund.com/Lists/Photos/030709_0253_BugfixFaceb1.png"&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;Well, I just updated the 0.5 release on codeplex to version 0.5.3, so you can re-download it to get the working version: &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;img alt="" align="right" src="http://philwicklund.com/Lists/Photos/030709_0253_BugfixFaceb2.png"&gt;&lt;a href="http://fks.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=24241"&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;http://fks.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=24241&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt"&gt;&lt;span style="font-family:Verdana"&gt;Cheers! (and what better to do than coding/blogging on a Friday night! &lt;/span&gt;&lt;span style="font-family:Wingdings"&gt;J&lt;/span&gt;&lt;span style="font-family:Verdana"&gt;) &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;Phil&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/m_UrKgtU1DeIFb0CrZVq5vQG68Q/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/m_UrKgtU1DeIFb0CrZVq5vQG68Q/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/m_UrKgtU1DeIFb0CrZVq5vQG68Q/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/m_UrKgtU1DeIFb0CrZVq5vQG68Q/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=ChM3WeObL-M:kV7HlVGxHk0:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=ChM3WeObL-M:kV7HlVGxHk0:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=ChM3WeObL-M:kV7HlVGxHk0:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?i=ChM3WeObL-M:kV7HlVGxHk0:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=ChM3WeObL-M:kV7HlVGxHk0:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=ChM3WeObL-M:kV7HlVGxHk0:KwTdNBX3Jqk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?i=ChM3WeObL-M:kV7HlVGxHk0:KwTdNBX3Jqk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=ChM3WeObL-M:kV7HlVGxHk0:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=ChM3WeObL-M:kV7HlVGxHk0:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?i=ChM3WeObL-M:kV7HlVGxHk0:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=ChM3WeObL-M:kV7HlVGxHk0:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?i=ChM3WeObL-M:kV7HlVGxHk0:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=ChM3WeObL-M:kV7HlVGxHk0:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/SharepointHappenings/~4/eNBDmpNgEM4" height="1" width="1"/&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Phillip S. Wicklund</dc:creator><pubDate>Fri, 06 Mar 2009 20:48:00 GMT</pubDate><category domain="http://philwicklund.com/archive/tags/Freeware Releases/default.aspx">Freeware Releases</category><feedburner:origLink>http://philwicklund.com/archive/2009/03/06/bug-fix-facebook-kit-for-sharepoint-version-0-5-3.aspx</feedburner:origLink></item><item><title>Programmatically Convert an InfoPath Form into a PDF</title><link>http://feedproxy.google.com/~r/SharepointHappenings/~3/nNCBPEhQ6Zo/programmatically-convert-an-infopath-form-into-a-pdf-document.aspx</link><guid isPermaLink="false">/archive/2009/03/06/programmatically-convert-an-infopath-form-into-a-pdf-document.aspx</guid><description>&lt;div class="ExternalClass22B5079088324FCDBAEE1E44A05567D9"&gt;
&lt;p&gt;&lt;img alt="" align="right" src="http://philwicklund.com/Lists/Photos/030709_0229_Programmati1.png"&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;This morning I set out on a journey to convert an InfoPath form into a PDF document programmatically. The journey came about in a Visual Studio workflow, because after a user submits the associated InfoPath form, the workflow was to take that form, convert it to a PDF, and thereafter archive the PDF into a separate site collection. This turned out to be a neat little business process when all was said and done. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;As far as generating the PDF goes, I decided to elicit a little help from a third party. I ran into &lt;a href="http://www.winnovative-software.com/Html-To-Pdf-Converter.aspx"&gt;Winnovative PDF&lt;/a&gt;, and they have a tool that takes HTML and converts that HTML into a PDF. While this isn't the silver bullet I would have hope it would have been (take the form itself, rather than HTML), I knew it wasn't that hard to convert an InfoPath form into HTML. Then the tool can do the dirty work for me to build the PDF. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;h1&gt;Convert an InfoPath form to HTML &lt;/h1&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;The basic steps are to grab the SPFile object that is the InfoPath form you want to convert to a PDF. Then, open a Stream that has the XSL that you can use to transform the form data (XML) into HTML. You can get the XSL from an InfoPath form out of the XSN file itself. The XSN file that is an InfoPath form is actually just a CAB that has many kinds of files in it, one of which is our XSL file. You'll see one XSL file for every view you've built in the InfoPath form. This is the XSL file you want: &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="" src="http://philwicklund.com/Lists/Photos/030709_0229_Programmati2.png"&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;After you have the XSL (one file for each view in the InfoPath form) in your Visual Studio project, use the following code to transform the form XML data into HTML: &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p style="background:#c2d69b"&gt; &lt;/p&gt;
&lt;p style="background:#c2d69b"&gt;&lt;span style="font-family:Courier New"&gt;string html = &amp;quot;&amp;quot;;&lt;br&gt;using (SPSite site = new SPSite(&amp;quot;http://contoso.com/acceptance&amp;quot;))&lt;br&gt;{&lt;br&gt;    using (SPWeb web = site.RootWeb)&lt;br&gt;    {&lt;br&gt;        // grab the folder that contains the form&lt;br&gt;        SPFolder folder = web.Folders[&amp;quot;InfoPath Forms&amp;quot;];&lt;br&gt;&lt;br&gt;        // grab the InfoPath form itself&lt;br&gt;        SPFile file = folder.Files[&amp;quot;SomeForm.xml&amp;quot;];&lt;br&gt;&lt;br&gt;        XslCompiledTransform transform = new XslCompiledTransform();&lt;br&gt;&lt;br&gt;        // embedded rource file name (this is your XSL document&lt;br&gt;        // you pulled out of the XSN/Cab).&lt;br&gt;        string resourceName = @&amp;quot;AssemblyName.SomeForm.xsl&amp;quot;;&lt;br&gt;&lt;br&gt;        // Load resource out of dll and into a stream&lt;br&gt;        using (Stream res =&lt;br&gt;            Assembly.GetExecutingAssembly().GetManifestResourceStream(resourceName))&lt;br&gt;        {&lt;br&gt;            // load stylesheet into the transformer&lt;br&gt;            using (XmlTextReader stylesheet = new XmlTextReader(res))&lt;br&gt;            {&lt;br&gt;                transform.Load(stylesheet);&lt;br&gt;            }&lt;br&gt;        }&lt;br&gt;&lt;br&gt;        StringWriter sWriter = new StringWriter();&lt;br&gt;        HtmlTextWriter writer = new HtmlTextWriter(sWriter);&lt;br&gt;&lt;br&gt;        // read the contents (XML) out of the InfoPath form&lt;br&gt;        using (XmlReader reader = new XmlTextReader(file.OpenBinaryStream()))&lt;br&gt;        {&lt;br&gt;            XmlTextWriter results = new XmlTextWriter(writer.InnerWriter);&lt;br&gt;&lt;br&gt;            // Perform the transformation&lt;br&gt;            transform.Transform(reader, results);&lt;br&gt;            reader.Close();&lt;br&gt;        }&lt;br&gt;&lt;br&gt;         // the transformation will load the resulting HTML into a string&lt;br&gt;        html = sWriter.ToString();&lt;br&gt;    }&lt;br&gt;}&lt;br&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;h1&gt;Convert HTML into a PDF &lt;/h1&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;For this second stage in the process, I used a tool from &lt;a href="http://www.winnovative-software.com/Html-To-Pdf-Converter.aspx"&gt;Winnovative&lt;/a&gt; to do the heavy lifting. It's a great tool that integrates into Visual Studio and comes in inexpensive at $350. Their API is rather intuitive, as you can see: &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p style="background:#c2d69b"&gt; &lt;/p&gt;
&lt;p style="background:#c2d69b"&gt;&lt;span style="font-family:Courier New"&gt;PdfConverter pdfConverter = new PdfConverter();&lt;br&gt;&lt;br&gt;// set the license key (this is the public trialwear license&lt;br&gt;pdfConverter.LicenseKey = &amp;quot;Q2hzY3Jjc2N3bXNjcHJtcnFtenp6eg==&amp;quot;;&lt;br&gt;&lt;br&gt;// set the converter options&lt;br&gt;pdfConverter.PdfDocumentOptions.PdfPageSize = PdfPageSize.A4;&lt;br&gt;pdfConverter.PdfDocumentOptions.PdfCompressionLevel = PdfCompressionLevel.Normal;&lt;br&gt;pdfConverter.PdfDocumentOptions.PdfPageOrientation = PDFPageOrientation.Portrait;&lt;br&gt;pdfConverter.PdfDocumentOptions.ShowHeader = false;&lt;br&gt;pdfConverter.PdfDocumentOptions.ShowFooter = false;&lt;br&gt;&lt;br&gt;// set to generate selectable pdf or a pdf with embedded image&lt;br&gt;pdfConverter.PdfDocumentOptions.GenerateSelectablePdf = true;&lt;br&gt;&lt;br&gt;// Performs the conversion and get the pdf document bytes&lt;br&gt;byte[] pdfBytes = null;&lt;br&gt;pdfBytes = pdfConverter.GetPdfBytesFromHtmlString(html); &lt;/span&gt;&lt;/p&gt;
&lt;p style="background:#c2d69b"&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;At the end of this code block, you're left with a byte array. This byte array contains all the bytes that make up the PDF file. Let's now take those bytes and re-write them back into SharePoint, but this time as a PDF! &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p style="background:#c2d69b"&gt; &lt;/p&gt;
&lt;p style="background:#c2d69b"&gt;&lt;span style="font-family:Courier New"&gt;// open SPWeb/SPFolder that will be taking the PDF&lt;br&gt;SPFolder archive = someSPWeb.Folders[&amp;quot;Archived Forms&amp;quot;];&lt;br&gt;&lt;br&gt;// grab the SPFile that is the InfoPath form, and use the&lt;br&gt;// name for the new PDF's name, but change the extension&lt;br&gt;string filename = file.Name.Replace(&amp;quot;.xml&amp;quot;, &amp;quot;.pdf&amp;quot;);&lt;br&gt;&lt;br&gt;// Add the file to the Files collection and commit to database&lt;br&gt;SPFile archivedFile = archive.Files.Add(archive.Url + &amp;quot;/&amp;quot; +&lt;br&gt;filename, pdfBytes, true);&lt;br&gt;archive.Update(); &lt;/span&gt;&lt;/p&gt;
&lt;p style="background:#c2d69b"&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;SWEET! Now we have an archived InfoPath for that's in a PDF format! Optionally, you could write the file to the file system: &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p style="background:#c2d69b"&gt; &lt;/p&gt;
&lt;p style="background:#c2d69b"&gt;&lt;span style="font-family:Courier New"&gt;string filename = file.Name.Replace(&amp;quot;.xml&amp;quot;, &amp;quot;.pdf&amp;quot;);&lt;br&gt;&lt;br&gt;// Outputs the document to the current web page&lt;br&gt;FileStream s = new FileStream(&amp;quot;c:\\somefolder\\onserver\\harddrive\\&amp;quot; + filename, FileMode.Create);&lt;br&gt;    s.Write(pdfBytes, 0, pdfBytes.Length); &lt;/span&gt;&lt;/p&gt;
&lt;p style="background:#c2d69b"&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt"&gt;&lt;span style="font-family:Verdana"&gt;What CAN'T you do with code? And ain't workflows sweet? I'm such a geek (and a &lt;span style="color:black"&gt;pseudo&lt;/span&gt; hick) &lt;/span&gt;&lt;span style="font-family:Wingdings"&gt;J&lt;/span&gt;&lt;span style="font-family:Verdana"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;Phil&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/LUY6hh7PDprYSTQyWSwhxHCSlkg/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/LUY6hh7PDprYSTQyWSwhxHCSlkg/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/LUY6hh7PDprYSTQyWSwhxHCSlkg/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/LUY6hh7PDprYSTQyWSwhxHCSlkg/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=C35-rlbhOHU:iXK_w-wKY9o:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=C35-rlbhOHU:iXK_w-wKY9o:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=C35-rlbhOHU:iXK_w-wKY9o:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?i=C35-rlbhOHU:iXK_w-wKY9o:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=C35-rlbhOHU:iXK_w-wKY9o:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=C35-rlbhOHU:iXK_w-wKY9o:KwTdNBX3Jqk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?i=C35-rlbhOHU:iXK_w-wKY9o:KwTdNBX3Jqk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=C35-rlbhOHU:iXK_w-wKY9o:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=C35-rlbhOHU:iXK_w-wKY9o:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?i=C35-rlbhOHU:iXK_w-wKY9o:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=C35-rlbhOHU:iXK_w-wKY9o:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?i=C35-rlbhOHU:iXK_w-wKY9o:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=C35-rlbhOHU:iXK_w-wKY9o:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/SharepointHappenings/~4/nNCBPEhQ6Zo" height="1" width="1"/&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Phillip S. Wicklund</dc:creator><pubDate>Fri, 06 Mar 2009 20:24:00 GMT</pubDate><category domain="http://philwicklund.com/archive/tags/InfoPath/default.aspx">InfoPath</category><feedburner:origLink>http://philwicklund.com/archive/2009/03/06/programmatically-convert-an-infopath-form-into-a-pdf-document.aspx</feedburner:origLink></item><item><title>Embedded Sharing with the Facebook Kit for SharePoint!</title><link>http://feedproxy.google.com/~r/SharepointHappenings/~3/sHlL3LGxqsY/embedded-sharing-with-the-facebook-kit-for-sharepoint-–-fks-version-0-5.aspx</link><guid isPermaLink="false">/archive/2009/03/04/embedded-sharing-with-the-facebook-kit-for-sharepoint-–-fks-version-0-5.aspx</guid><description>&lt;div class="ExternalClassB8FC5FEB7043453398D178E77EB5D8C3"&gt;
&lt;p&gt;&lt;a href="http://philwicklund.com/freeware/fks/default.aspx"&gt;&lt;img alt="" src="http://philwicklund.com/Lists/Photos/030409_2225_EmbeddedSha1.png" border="0"&gt;&lt;/a&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;This post serves to also announce the release of version 0.5 of my &lt;a href="http://philwicklund.com/freeware/fks/default.aspx"&gt;Facebook Kit for SharePoint&lt;/a&gt;. This new version contains a great new feature titled &amp;quot;Embedded Sharing with the Facebook Kit for SharePoint&amp;quot;. The feature allows for all content within a site collection to be easily shared between employees and friends who are members of the Facebook community and users on a given SharePoint site. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;img alt="" src="http://philwicklund.com/Lists/Photos/030409_2225_EmbeddedSha2.png" align="right"&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;How it works is custom actions are deployed throughout the site(s) in convenient places, and a user can click the action and share that content with their friends. When they click an action, they can either share the content with a select group of friends, or they can publish the content on their public profile for optional consumption. This will provide excellent business value to your organization and SharePoint sites because it will help generate more sharing of content, more collaboration, and easier/quicker access to content that is important. On a security note, any security concerns are mitigated because SharePoint will still prompt the user to log in when/if the user clicks the link back to the content. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;Here are the screen shots for what a user sees when they click an action (loads in modal dialog): &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;&lt;strong&gt;Post to profile: &lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="" src="http://philwicklund.com/Lists/Photos/030409_2225_EmbeddedSha3.png"&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;&lt;strong&gt;Share with specific friends: &lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="" src="http://philwicklund.com/Lists/Photos/030409_2225_EmbeddedSha4.png"&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;&lt;strong&gt;Final result: &lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="" src="http://philwicklund.com/Lists/Photos/030409_2225_EmbeddedSha5.png"&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;As you can imagine, this sort of &amp;quot;sharing&amp;quot; of content can greatly make your SharePoint sites more &amp;quot;Social&amp;quot;. I see a lot of collaboration potential since more and more corporations are leveraging Facebook to connect their employees to one another, and now those businesses can use it to help make their employees more efficient. I also see a unique opportunity to communicate with clients and customers. Facebook is a very non-intimidating way to communicate, and this content sharing feature provides a nice way to &amp;quot;Push&amp;quot; content to clients on Facebook. In the end, I hope this sharing will provide a lot more fluidity for corporations to get their employees collaborating more effectively. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;&lt;strong&gt;MORE SCREEN SHOTS &lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;&lt;strong&gt;Share a Site &lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="" src="http://philwicklund.com/Lists/Photos/030409_2225_EmbeddedSha6.png"&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;&lt;strong&gt; &lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;&lt;strong&gt;Share a List or Document Library &lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="" src="http://philwicklund.com/Lists/Photos/030409_2225_EmbeddedSha7.png"&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;&lt;strong&gt; &lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;&lt;strong&gt;Share a Document or List Item &lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="" src="http://philwicklund.com/Lists/Photos/030409_2225_EmbeddedSha8.png"&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;&lt;strong&gt; &lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="" src="http://philwicklund.com/Lists/Photos/030409_2225_EmbeddedSha9.png"&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;&lt;strong&gt; &lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;Neat huh? &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;Phil&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/I_4IvOD9qLhHLF-bjyqCGJayjts/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/I_4IvOD9qLhHLF-bjyqCGJayjts/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/I_4IvOD9qLhHLF-bjyqCGJayjts/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/I_4IvOD9qLhHLF-bjyqCGJayjts/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=ApeLz_IEW_4:bV-nQehGDhE:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=ApeLz_IEW_4:bV-nQehGDhE:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=ApeLz_IEW_4:bV-nQehGDhE:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?i=ApeLz_IEW_4:bV-nQehGDhE:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=ApeLz_IEW_4:bV-nQehGDhE:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=ApeLz_IEW_4:bV-nQehGDhE:KwTdNBX3Jqk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?i=ApeLz_IEW_4:bV-nQehGDhE:KwTdNBX3Jqk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=ApeLz_IEW_4:bV-nQehGDhE:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=ApeLz_IEW_4:bV-nQehGDhE:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?i=ApeLz_IEW_4:bV-nQehGDhE:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=ApeLz_IEW_4:bV-nQehGDhE:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?i=ApeLz_IEW_4:bV-nQehGDhE:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=ApeLz_IEW_4:bV-nQehGDhE:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/SharepointHappenings/~4/sHlL3LGxqsY" height="1" width="1"/&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Phillip S. Wicklund</dc:creator><pubDate>Wed, 04 Mar 2009 16:20:00 GMT</pubDate><category domain="http://philwicklund.com/archive/tags/Freeware Releases/default.aspx">Freeware Releases</category><feedburner:origLink>http://philwicklund.com/archive/2009/03/04/embedded-sharing-with-the-facebook-kit-for-sharepoint-–-fks-version-0-5.aspx</feedburner:origLink></item><item><title>Checking if a Timer Job is running before you delete it…</title><link>http://feedproxy.google.com/~r/SharepointHappenings/~3/CWxyQJVnpWs/checking-if-a-timer-job-is-running-before-you-delete-it….aspx</link><guid isPermaLink="false">/archive/2009/03/03/checking-if-a-timer-job-is-running-before-you-delete-it….aspx</guid><description>&lt;div class="ExternalClass113D6DE7DBE043FB89A5AEAF8388A4EB"&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;I'm working with a custom timer job and a custom ASPX page allowing end users to change the schedule for when the job runs. However, before they change or delete a job, I want to ensure the job is not running first. Here's the code on how I did this: &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p style="background:#fbd4b4"&gt; &lt;/p&gt;
&lt;p style="background:#fbd4b4"&gt;&lt;span style="font-size:10pt;font-family:Courier New"&gt;SPSite site = SPContext.Current.Site; &lt;/span&gt;&lt;/p&gt;
&lt;p style="background:#fbd4b4"&gt;&lt;span style="font-size:10pt;font-family:Courier New"&gt;bool IsJobRunning = false; &lt;/span&gt;&lt;/p&gt;
&lt;p style="background:#fbd4b4"&gt;&lt;span style="font-size:10pt;font-family:Courier New"&gt;foreach (SPRunningJob job in site.WebApplication.RunningJobs)&lt;br&gt;{ &lt;/span&gt;&lt;/p&gt;
&lt;p style="background:#fbd4b4"&gt;&lt;span style="font-size:10pt;font-family:Courier New"&gt;    if (job.JobDefinitionTitle == &amp;quot;JobName&amp;quot;)&lt;br&gt;    { &lt;/span&gt;&lt;/p&gt;
&lt;p style="background:#fbd4b4"&gt;&lt;span style="font-size:10pt;font-family:Courier New"&gt;        IsJobRunning = true; &lt;/span&gt;&lt;/p&gt;
&lt;p style="background:#fbd4b4"&gt;&lt;span style="font-size:10pt;font-family:Courier New"&gt;    } &lt;/span&gt;&lt;/p&gt;
&lt;p style="background:#fbd4b4"&gt;&lt;span style="font-size:10pt;font-family:Courier New"&gt;} &lt;/span&gt;&lt;/p&gt;
&lt;p style="background:#fbd4b4"&gt; &lt;/p&gt;
&lt;p style="background:#fbd4b4"&gt;&lt;span style="font-size:10pt;font-family:Courier New"&gt;if (IsJobRunning)&lt;br&gt;{ &lt;/span&gt;&lt;/p&gt;
&lt;p style="background:#fbd4b4"&gt;&lt;span style="font-size:10pt;font-family:Courier New"&gt;    // show an error message of some sort &lt;/span&gt;&lt;/p&gt;
&lt;p style="background:#fbd4b4"&gt;&lt;span style="font-size:10pt;font-family:Courier New"&gt;}&lt;br&gt;else&lt;br&gt;{ &lt;/span&gt;&lt;/p&gt;
&lt;p style="background:#fbd4b4"&gt;&lt;span style="font-size:10pt;font-family:Courier New"&gt;    site.WebApplication.JobDefinitions[&amp;quot;JobName&amp;quot;].Delete(); &lt;/span&gt;&lt;/p&gt;
&lt;p style="background:#fbd4b4"&gt;&lt;span style="font-size:10pt;font-family:Courier New"&gt;} &lt;/span&gt;&lt;/p&gt;
&lt;p style="background:#fbd4b4"&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;Not rocket science, but seemed interesting enough to post… &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;Phil&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/KyjRuIfUuGPW81auQ29JZpRH14Q/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/KyjRuIfUuGPW81auQ29JZpRH14Q/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/KyjRuIfUuGPW81auQ29JZpRH14Q/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/KyjRuIfUuGPW81auQ29JZpRH14Q/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=tzOsVzVFGZA:ZcNm7oYdJvY:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=tzOsVzVFGZA:ZcNm7oYdJvY:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=tzOsVzVFGZA:ZcNm7oYdJvY:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?i=tzOsVzVFGZA:ZcNm7oYdJvY:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=tzOsVzVFGZA:ZcNm7oYdJvY:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=tzOsVzVFGZA:ZcNm7oYdJvY:KwTdNBX3Jqk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?i=tzOsVzVFGZA:ZcNm7oYdJvY:KwTdNBX3Jqk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=tzOsVzVFGZA:ZcNm7oYdJvY:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=tzOsVzVFGZA:ZcNm7oYdJvY:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?i=tzOsVzVFGZA:ZcNm7oYdJvY:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=tzOsVzVFGZA:ZcNm7oYdJvY:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?i=tzOsVzVFGZA:ZcNm7oYdJvY:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=tzOsVzVFGZA:ZcNm7oYdJvY:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/SharepointHappenings/~4/CWxyQJVnpWs" height="1" width="1"/&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Phillip S. Wicklund</dc:creator><pubDate>Tue, 03 Mar 2009 14:20:00 GMT</pubDate><category domain="http://philwicklund.com/archive/tags/SharePoint Development/default.aspx">SharePoint Development</category><feedburner:origLink>http://philwicklund.com/archive/2009/03/03/checking-if-a-timer-job-is-running-before-you-delete-it….aspx</feedburner:origLink></item><item><title>Speaking at SharePoint Saturday Atlanta!</title><link>http://feedproxy.google.com/~r/SharepointHappenings/~3/s0jgfkTLgQQ/speaking-at-sharepoint-saturday-atlanta.aspx</link><guid isPermaLink="false">/archive/2009/03/02/speaking-at-sharepoint-saturday-atlanta.aspx</guid><description>&lt;div class="ExternalClass92C02EA854744ADB93836558535102C7"&gt;
&lt;p&gt;&lt;img alt="" src="http://philwicklund.com/Lists/Photos/030209_1441_SpeakingatS1.png" align="right"&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;Next month I'll be in Atlanta speaking at the SharePoint Saturday conference! The conference a couple weeks ago in &lt;a href="http://sharepointsaturday.org/ny"&gt;New York City&lt;/a&gt; was a blast, and I know everyone really enjoyed themselves. I'm sure this event in Atlanta will be just as successful, so stop on by and say hi! &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.sharepointsaturday.org/atlanta/default.aspx"&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;&lt;strong&gt;http://www.sharepointsaturday.org/atlanta/default.aspx&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;&lt;strong&gt; &lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;&lt;strong&gt;Saturday, April 18&lt;sup&gt;th &lt;/sup&gt;from 8:30 – 6:00pm &lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://maps.live.com/default.aspx?v=2&amp;amp;cp=34.047788~-84.302859&amp;amp;style=r&amp;amp;lvl=14&amp;amp;scene=329206&amp;amp;sp=Point.pp7drg7z6j80_1125 Sanctuary Pkwy, Alpharetta, GA 30004, United States___"&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;&lt;strong&gt;Driving Directions&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;&lt;strong&gt; &lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;Here's my topic abstract: &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.sharepointsaturday.org/atlanta/meetings/1/Building-the-next-Generation-of-SharePoint-Web-Parts----how-to-Leverage-JQuery-and-Silverlight!.aspx"&gt;&lt;span style="font-size:12pt;color:#2c567e;font-family:Verdana"&gt;&lt;strong&gt;Development: Building the next Generation of SharePoint Web Parts - how to Leverage JQuery and Silverlight!&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size:12pt;color:#2c567e;font-family:Verdana"&gt;&lt;strong&gt; &lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;color:black;font-family:Verdana"&gt;&lt;em&gt;Simple, static pages are a thing of the past – today's standard is becoming rich in usability and graphical charm. Come learn how to leverage JQuery and/or Silverlight so you can really &amp;quot;light up&amp;quot; your SharePoint sites! &lt;/em&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;color:black;font-family:Verdana"&gt;So, if you live in Atlanta you have no excuses to miss this FREE event. Even if you don't like SharePoint, there's breakfast and lunch available for FREE too! How can you beat that? You cannot. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;color:black;font-family:Verdana"&gt;See you then! &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;color:black;font-family:Verdana"&gt;Phil&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/spehfYafYF0FSsKcGXfqNh8whpY/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/spehfYafYF0FSsKcGXfqNh8whpY/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/spehfYafYF0FSsKcGXfqNh8whpY/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/spehfYafYF0FSsKcGXfqNh8whpY/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=FvbnE9rfxFs:slelq1LtRzU:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=FvbnE9rfxFs:slelq1LtRzU:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=FvbnE9rfxFs:slelq1LtRzU:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?i=FvbnE9rfxFs:slelq1LtRzU:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=FvbnE9rfxFs:slelq1LtRzU:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=FvbnE9rfxFs:slelq1LtRzU:KwTdNBX3Jqk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?i=FvbnE9rfxFs:slelq1LtRzU:KwTdNBX3Jqk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=FvbnE9rfxFs:slelq1LtRzU:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=FvbnE9rfxFs:slelq1LtRzU:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?i=FvbnE9rfxFs:slelq1LtRzU:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=FvbnE9rfxFs:slelq1LtRzU:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?i=FvbnE9rfxFs:slelq1LtRzU:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=FvbnE9rfxFs:slelq1LtRzU:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/SharepointHappenings/~4/s0jgfkTLgQQ" height="1" width="1"/&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Phillip S. Wicklund</dc:creator><pubDate>Mon, 02 Mar 2009 08:36:00 GMT</pubDate><category domain="http://philwicklund.com/archive/tags/Speaking Events/default.aspx">Speaking Events</category><feedburner:origLink>http://philwicklund.com/archive/2009/03/02/speaking-at-sharepoint-saturday-atlanta.aspx</feedburner:origLink></item><item><title>Installation Instructions, Facebook Kit for SharePoint</title><link>http://feedproxy.google.com/~r/SharepointHappenings/~3/pOClsR9vy0w/installation-instructions-facebook-kit-for-sharepoint.aspx</link><guid isPermaLink="false">/archive/2009/03/01/installation-instructions-facebook-kit-for-sharepoint.aspx</guid><description>&lt;div class="ExternalClassEF0476C485704855844230B0DA28E88A"&gt;&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;This post is a &amp;quot;living post&amp;quot;, and will be updated as necessary to ensure the latest instructions are available to FKS users. As an FYI, I hope to soon publish a release of the FKS that cuts back on these installation steps dramatically. I choose instead to release the FKS sooner to get it out to the community, but I do desire to make the installation much more streamlined in the future. So stay tuned!
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;&lt;strong&gt;FKS Details: &lt;a href="http://philwicklund.com/freeware/fks/default.aspx"&gt;http://philwicklund.com/freeware/fks/default.aspx&lt;/a&gt;
			&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;&lt;strong&gt;1. Setup Facebook Connect Application (if you haven't already)
&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p style="margin-left:36pt"&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;Go to &lt;a href="http://facebook.com/developers"&gt;http://facebook.com/developers&lt;/a&gt; and click Setup new Application:
&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left:36pt"&gt;
 &lt;/p&gt;&lt;p style="margin-left:36pt"&gt;&lt;img src="http://philwicklund.com/Lists/Photos/030109_0628_Installatio1.png" alt=""&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;
		&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left:36pt"&gt;
 &lt;/p&gt;&lt;p style="margin-left:36pt"&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;Type in an application name, and click submit.
&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left:36pt"&gt;
 &lt;/p&gt;&lt;p style="margin-left:36pt"&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;The only other thing you MUST do, is specify a callback URL:
&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left:36pt"&gt;
 &lt;/p&gt;&lt;p style="margin-left:36pt"&gt;&lt;img src="http://philwicklund.com/Lists/Photos/030109_0628_Installatio2.png" alt=""&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;
		&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left:36pt"&gt;
 &lt;/p&gt;&lt;p style="margin-left:36pt"&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;Version 1.0 of FKS only supports a web application deployment, so specify the root relative URL for your SharePoint web application. For instance, &lt;a href="http://philwicklund.com"&gt;http://philwicklund.com/&lt;/a&gt;. Type your SharePoint Web Application URL and click Save Settings.
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;&lt;strong&gt;2. Deploy Cross-Domain Receiver Page
&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p style="margin-left:36pt"&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;In the Web Application folder on each web front end in the farm, deploy the xd_receiver.htm file:
&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left:36pt"&gt;
 &lt;/p&gt;&lt;p style="margin-left:36pt"&gt;&lt;img src="http://philwicklund.com/Lists/Photos/030109_0628_Installatio3.png" alt=""&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;
		&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left:36pt"&gt;
 &lt;/p&gt;&lt;p style="margin-left:36pt"&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;In IIS, make sure anonymous access is enabled on the file/folder and set the security permissions for &amp;quot;Everyone&amp;quot; to have read/execute permissions (alternatively, grant the IUSR account anonymous access is running as). Lastly, TEST the deployment by browsing to http://www.[your domain].com/xd_receiver.htm. Make sure to test this first! You'll get a page that is empty, but the title will show &amp;quot;Cross-Domain Receiver Page&amp;quot;:
&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left:36pt"&gt;
 &lt;/p&gt;&lt;p style="margin-left:36pt"&gt;&lt;img src="http://philwicklund.com/Lists/Photos/030109_0628_Installatio4.png" alt=""&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;
		&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left:36pt"&gt;
 &lt;/p&gt;&lt;p style="margin-left:36pt"&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;Works! You can download the xd_receiver file(s) from the latest release of FKS on codeplex:
&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left:36pt"&gt;&lt;img src="http://philwicklund.com/Lists/Photos/030109_0628_Installatio5.png" alt=""&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;
		&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;&lt;strong&gt;3. Add and Deploy the Facebook SharePoint solution package
&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p style="margin-left:36pt"&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;Download the latest solution package and drop it onto one of your web front ends in your farm. Execute the addsolution command, followed by the deploysolution command, and finally the execadmsvcjobs command:
&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left:36pt"&gt;
 &lt;/p&gt;&lt;p style="margin-left:36pt"&gt;&lt;img src="http://philwicklund.com/Lists/Photos/030109_0628_Installatio6.png" alt=""&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;
		&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;&lt;strong&gt;4. Make 2 changes to the master page(s) that will be hosting the SharePoint web parts
&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p style="margin-left:36pt"&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;Unfortunately, two lines of code need to be added into EVERY master page that is hosting SharePoint sites where you plan on deploying the Facebook Connect web parts to. Firstly, in the &amp;lt;html&amp;gt; tag at the top of the master page, add another namespace, xmlns:fb=&amp;quot;http://www.facebook.com/2008/fbml&amp;quot;:
&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left:36pt"&gt;
 &lt;/p&gt;&lt;p style="margin-left:36pt"&gt;&lt;img src="http://philwicklund.com/Lists/Photos/030109_0628_Installatio7.png" alt=""&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;
		&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left:36pt"&gt;
 &lt;/p&gt;&lt;p style="margin-left:36pt"&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;Secondly, at the bottom of the master page, just before the &amp;lt;/body&amp;gt; tag, add the following:
&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left:36pt"&gt;
 &lt;/p&gt;&lt;p style="margin-left:36pt"&gt;&lt;span style="font-family:Courier New;font-size:10pt"&gt;&amp;lt;SharePoint:DelegateControl runat=&amp;quot;server&amp;quot; ControlId=&amp;quot;AdditionalPageFoot&amp;quot; AllowMultipleControls=&amp;quot;true&amp;quot;/&amp;gt;
&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left:36pt"&gt;
 &lt;/p&gt;&lt;p style="margin-left:36pt"&gt;&lt;img src="http://philwicklund.com/Lists/Photos/030109_0628_Installatio8.png" alt=""&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;
		&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left:36pt"&gt;
 &lt;/p&gt;&lt;p style="margin-left:36pt"&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;Save and deploy your master page changes as necessary…
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;&lt;strong&gt;5. Activate the FacebookParts feature on each Site Collection you want the web parts to be available
&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p style="margin-left:36pt"&gt;&lt;img src="http://philwicklund.com/Lists/Photos/030109_0628_Installatio9.png" alt=""&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;
		&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;&lt;strong&gt;6. Set your Facebook Connect Settings
&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p style="margin-left:36pt"&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;Within Site Settings at the root site in the Site Collection, click Facebook Connect Settings:
&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left:36pt"&gt;
 &lt;/p&gt;&lt;p style="margin-left:36pt"&gt;&lt;img src="http://philwicklund.com/Lists/Photos/030109_0628_Installatio10.png" alt=""&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;
		&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left:36pt"&gt;
 &lt;/p&gt;&lt;p style="margin-left:36pt"&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;Specify your Facebook Connect Application Key created in step 1, and click Save.
&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left:36pt"&gt;
 &lt;/p&gt;&lt;p style="margin-left:36pt"&gt;&lt;img src="http://philwicklund.com/Lists/Photos/030109_0628_Installatio11.png" alt=""&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;
		&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;&lt;strong&gt;7. Add your web parts!
&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p style="margin-left:36pt"&gt;&lt;img src="http://philwicklund.com/Lists/Photos/030109_0628_Installatio12.png" alt=""&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;
		&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;For more instructions and details, view the User Guide (coming soon). Also, feel free to &lt;a href="http://philwicklund.com/contact.aspx"&gt;CONTACT ME&lt;/a&gt; with your questions/feedback/feature suggestions.
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;Sincerely,
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;Phil Wicklund
&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/u5VfLDgK6OiLOysjYV3AxLq3LCc/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/u5VfLDgK6OiLOysjYV3AxLq3LCc/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/u5VfLDgK6OiLOysjYV3AxLq3LCc/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/u5VfLDgK6OiLOysjYV3AxLq3LCc/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=nRR25OT_neo:A1ZvkxpMlmY:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=nRR25OT_neo:A1ZvkxpMlmY:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=nRR25OT_neo:A1ZvkxpMlmY:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?i=nRR25OT_neo:A1ZvkxpMlmY:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=nRR25OT_neo:A1ZvkxpMlmY:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=nRR25OT_neo:A1ZvkxpMlmY:KwTdNBX3Jqk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?i=nRR25OT_neo:A1ZvkxpMlmY:KwTdNBX3Jqk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=nRR25OT_neo:A1ZvkxpMlmY:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=nRR25OT_neo:A1ZvkxpMlmY:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?i=nRR25OT_neo:A1ZvkxpMlmY:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=nRR25OT_neo:A1ZvkxpMlmY:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?i=nRR25OT_neo:A1ZvkxpMlmY:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=nRR25OT_neo:A1ZvkxpMlmY:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/SharepointHappenings/~4/pOClsR9vy0w" height="1" width="1"/&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Phillip S. Wicklund</dc:creator><pubDate>Sun, 01 Mar 2009 00:23:00 GMT</pubDate><category domain="http://philwicklund.com/archive/tags/Freeware Releases/default.aspx">Freeware Releases</category><feedburner:origLink>http://philwicklund.com/archive/2009/03/01/installation-instructions-facebook-kit-for-sharepoint.aspx</feedburner:origLink></item><item><title>Announcing the Facebook Kit for SharePoint!</title><link>http://feedproxy.google.com/~r/SharepointHappenings/~3/70yLY0X7PyQ/announcing-the-facebook-kit-for-sharepoint.aspx</link><guid isPermaLink="false">/archive/2009/03/01/announcing-the-facebook-kit-for-sharepoint.aspx</guid><description>&lt;div class="ExternalClass80BCB405BBB04500ADC6908FAE599B1B"&gt;&lt;p&gt;&lt;img align="right" src="http://philwicklund.com/Lists/Photos/030109_0626_Announcingt1.png" alt=""&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;With great excitement, I'm announcing Version 0.2 (Beta) of my Facebook Kit for SharePoint! The Facebook Kit for SharePoint (FKS) leverages the Facebook Connect API to bring to your end users fingers tips great web parts that will help make your SharePoint sites more &amp;quot;Social&amp;quot; and integrated with Facebook! Version 0.3 comes with FIVE great web parts:
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;&lt;strong&gt;FKS Details: &lt;a href="http://philwicklund.com/freeware/fks/default.aspx"&gt;http://philwicklund.com/freeware/fks/default.aspx&lt;/a&gt;
			&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;&lt;strong&gt;Facebook Login Web Part
&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;&lt;em&gt;This web part allows you to login to Facebook from your SharePoint sites. You can use this web part in conjunction with other FKS web parts to enable their functionalities, when a logged in user is required.
&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p style="margin-left:36pt"&gt;&lt;img src="http://philwicklund.com/Lists/Photos/030109_0626_Announcingt2.png" alt=""&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;&lt;em&gt;
			&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;&lt;strong&gt;Facebook Profile Picture Web Part
&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;&lt;em&gt;This web part allows you to display your Facebook profile picture in your SharePoint pages.
&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p style="margin-left:36pt"&gt;&lt;img src="http://philwicklund.com/Lists/Photos/030109_0626_Announcingt3.png" alt=""&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;&lt;strong&gt;
			&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;&lt;strong&gt;Facebook Status Web Part
&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;&lt;em&gt;This web part allows you to display your status to other logged in end users that are browsing your SharePoint pages.
&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p style="margin-left:36pt"&gt;&lt;img src="http://philwicklund.com/Lists/Photos/030109_0626_Announcingt4.png" alt=""&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;&lt;em&gt;&lt;br&gt;(noticing some inconsistency with the Connect API with this web part)
&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;&lt;strong&gt;Facebook SharePart Web Part
&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:#332015;font-family:Verdana;font-size:12pt"&gt;&lt;em&gt;This web part allows your end users to share any SharePoint content with their friends on Facebook. Its a great alternative to email to get important information distributed throughout your organization.
&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left:36pt"&gt;
 &lt;/p&gt;&lt;p style="margin-left:36pt"&gt;&lt;img src="http://philwicklund.com/Lists/Photos/030109_0626_Announcingt5.png" alt=""&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;
		&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left:36pt"&gt;
 &lt;/p&gt;&lt;p style="margin-left:36pt"&gt;&lt;img src="http://philwicklund.com/Lists/Photos/030109_0626_Announcingt6.png" alt=""&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;
		&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;&lt;strong&gt;Facebook Comments Web Part
&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;&lt;em&gt;This web part allows for your end users to comment on any SharePoint content you have in the farm! Simply drop the web part on the page, and end users can start commenting on the content and sharing their thoughts with others!
&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p style="margin-left:36pt"&gt;&lt;img src="http://philwicklund.com/Lists/Photos/030109_0626_Announcingt7.png" alt=""&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;&lt;em&gt;
			&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;I have A TON more ideas for web parts, and I plan on publishing updates frequently. However, I would LOVE any ideas you have for features or other web parts that fit well into this tool kit, so please &lt;a href="http://philwicklund.com/contact.aspx"&gt;EMAIL ME&lt;/a&gt; with any suggestions! Also, the status web part seems to be acting a bit flaky, works sometimes, doesn't work others. I'm currently looking into this…
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;Sincerely,
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;Phil&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/64bP5kBdKKokRCOmmGu15DhYbO4/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/64bP5kBdKKokRCOmmGu15DhYbO4/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/64bP5kBdKKokRCOmmGu15DhYbO4/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/64bP5kBdKKokRCOmmGu15DhYbO4/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=sWekpVg6_gE:5_12fXUfX3w:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=sWekpVg6_gE:5_12fXUfX3w:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=sWekpVg6_gE:5_12fXUfX3w:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?i=sWekpVg6_gE:5_12fXUfX3w:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=sWekpVg6_gE:5_12fXUfX3w:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=sWekpVg6_gE:5_12fXUfX3w:KwTdNBX3Jqk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?i=sWekpVg6_gE:5_12fXUfX3w:KwTdNBX3Jqk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=sWekpVg6_gE:5_12fXUfX3w:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=sWekpVg6_gE:5_12fXUfX3w:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?i=sWekpVg6_gE:5_12fXUfX3w:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=sWekpVg6_gE:5_12fXUfX3w:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?i=sWekpVg6_gE:5_12fXUfX3w:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=sWekpVg6_gE:5_12fXUfX3w:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/SharepointHappenings/~4/70yLY0X7PyQ" height="1" width="1"/&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Phillip S. Wicklund</dc:creator><pubDate>Sun, 01 Mar 2009 00:21:00 GMT</pubDate><category domain="http://philwicklund.com/archive/tags/Freeware Releases/default.aspx">Freeware Releases</category><feedburner:origLink>http://philwicklund.com/archive/2009/03/01/announcing-the-facebook-kit-for-sharepoint.aspx</feedburner:origLink></item><item><title>Tricking the Content Editor Web Part Width to 100%</title><link>http://feedproxy.google.com/~r/SharepointHappenings/~3/vwciyrwMD2E/trick-on-how-to-get-a-content-editor-web-part’s-width-to-100-when-it-in-a-horizontally-aligned-web-part-zone.aspx</link><guid isPermaLink="false">/archive/2009/02/26/trick-on-how-to-get-a-content-editor-web-part’s-width-to-100-when-it-in-a-horizontally-aligned-web-part-zone.aspx</guid><description>&lt;div class="ExternalClass61B38D8BDF3D48D68061C5929911A124"&gt;&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;One big pain that I continually run into with web parts is when you want two web parts side by side. The problem is when Web Part Zones that have a horizontal alignment, they always SCRUNCH the web parts together. This is fine if the web parts have their own predefined width, but is sucks for text. The content editor web part is especially susceptible to ugliness when in horizontally aligned zones:
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;&lt;img src="http://philwicklund.com/Lists/Photos/022609_1853_Trickonhowt1.png" alt=""&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;
		&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;Well, I found a neat way to tell the content editor web part to set its parent table cell's width to be 100%. The trick is to grab the parent table cell's ID and run some javascript in the content editor to set the width.
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;When you view the page source, you'll see the web part resides in a DIV, and always resides in a table cell that has a unique ID:
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;&lt;img src="http://philwicklund.com/Lists/Photos/022609_1853_Trickonhowt2.png" alt=""&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;
		&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;You'll see in the id, it's unique because of the trailing number at the end. Turns out that &amp;quot;4&amp;quot; is the fourth web part on the page and therefore 4 is stuck at the end of the ID. The MSOZoneCell_WebPartWPQ is constant, so you can use that in all your web parts regardless of ID. To programmatically get the ID of the current web part, all we need to do is stick in the _WPQ_ token in our script. The _WPQ_ token comes with the &lt;a href="http://msdn.microsoft.com/en-us/library/ms415880.aspx"&gt;Web Part Page Services Component&lt;/a&gt; which is available for client side scripting on all your SharePoint sites.
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;Take a look at the code I entered at the end of my content editor:
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;&lt;img src="http://philwicklund.com/Lists/Photos/022609_1853_Trickonhowt3.png" alt=""&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;
		&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;By adding the document.getElementByID javascript statement, and passing the table cell ID with the _WPQ_ web part token, we can get at that object and are able to set its width to 100%.
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;Here's a much better presentation with two web parts side by side:
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;&lt;img src="http://philwicklund.com/Lists/Photos/022609_1853_Trickonhowt4.png" alt=""&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;
		&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;Good luck!
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;Phil&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/io2qZbUelSk7rShe721DNCj9mkU/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/io2qZbUelSk7rShe721DNCj9mkU/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/io2qZbUelSk7rShe721DNCj9mkU/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/io2qZbUelSk7rShe721DNCj9mkU/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=7MFgoZFd3MQ:fyNpIoKjPXU:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=7MFgoZFd3MQ:fyNpIoKjPXU:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=7MFgoZFd3MQ:fyNpIoKjPXU:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?i=7MFgoZFd3MQ:fyNpIoKjPXU:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=7MFgoZFd3MQ:fyNpIoKjPXU:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=7MFgoZFd3MQ:fyNpIoKjPXU:KwTdNBX3Jqk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?i=7MFgoZFd3MQ:fyNpIoKjPXU:KwTdNBX3Jqk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=7MFgoZFd3MQ:fyNpIoKjPXU:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=7MFgoZFd3MQ:fyNpIoKjPXU:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?i=7MFgoZFd3MQ:fyNpIoKjPXU:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=7MFgoZFd3MQ:fyNpIoKjPXU:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?i=7MFgoZFd3MQ:fyNpIoKjPXU:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=7MFgoZFd3MQ:fyNpIoKjPXU:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/SharepointHappenings/~4/vwciyrwMD2E" height="1" width="1"/&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Phillip S. Wicklund</dc:creator><pubDate>Thu, 26 Feb 2009 12:49:00 GMT</pubDate><category domain="http://philwicklund.com/archive/tags/SharePoint Development/default.aspx">SharePoint Development</category><feedburner:origLink>http://philwicklund.com/archive/2009/02/26/trick-on-how-to-get-a-content-editor-web-part’s-width-to-100-when-it-in-a-horizontally-aligned-web-part-zone.aspx</feedburner:origLink></item><item><title>InfoPath and Visual Studio Workflows – 3 Great Tricks (3 of 3)</title><link>http://feedproxy.google.com/~r/SharepointHappenings/~3/2Xqc80n-7hw/infopath-and-visual-studio-workflows-–-3-great-tricks-3-of-3.aspx</link><guid isPermaLink="false">/archive/2009/02/23/infopath-and-visual-studio-workflows-–-3-great-tricks-3-of-3.aspx</guid><description>&lt;div class="ExternalClass6E454B64C66A4B06861EA98532CCFB21"&gt;&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;My last trick in this three part series (&lt;a href="http://philwicklund.com/archive/2009/01/22/infopath-and-visual-studio-workflows-–-3-great-tricks.aspx"&gt;part 1&lt;/a&gt;, &lt;a href="http://philwicklund.com/archive/2009/02/20/infopath-and-visual-studio-workflows-–-3-great-tricks-2-of-3.aspx"&gt;part 2&lt;/a&gt;) is how to leverage a custom InfoPath form within your task modification pages. Whenever working with workflows and the task management framework, it is a much more elegant to use InfoPath forms rather than the out of box SharePoint forms. See below:
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;&lt;strong&gt;Out of box task edit form:
&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;img src="http://philwicklund.com/Lists/Photos/022309_1321_InfoPathand1.png" alt=""&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;
		&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;&lt;strong&gt;Custom InfoPath Form (Anything you want!):
&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;img src="http://philwicklund.com/Lists/Photos/022309_1321_InfoPathand2.png" alt=""&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;&lt;strong&gt;
			&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;Other than task forms, just like how SharePoint Designer can generate initiation forms and status forms, you can also leverage your own forms for them as well with Visual Studio workflows. Now rather than build a workflow from scratch I'm going to extend the workflow built in the &lt;a href="http://philwicklund.com/archive/2009/02/20/infopath-and-visual-studio-workflows-–-3-great-tricks-2-of-3.aspx"&gt;second part&lt;/a&gt; of this series, and add to that workflow another form and some more activities.
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;The first thing we need to do to the workflow we created in the last post is edit the Feature.xml and Elements.xml files. We need to specify to the feature/workflow that we are going to use custom edit forms rather than the out of box form. Make these additions to the Feature.xml file:
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p style="background:#fabf8f"&gt;&lt;span style="font-family:Courier New;font-size:10pt"&gt;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br&gt;&amp;lt;Feature  Id=&amp;quot;[Guid]&amp;quot;&lt;br&gt;     Title=&amp;quot;Expense Report Workflow&amp;quot;&lt;br&gt;     Description=&amp;quot;desc.&amp;quot;&lt;br&gt;     Version=&amp;quot;1.0.0.0&amp;quot;&lt;br&gt;     Scope=&amp;quot;Site&amp;quot;&lt;br&gt;&lt;span style="background-color:#76923c"&gt;     ReceiverAssembly=&amp;quot;Microsoft.Office.Workflow.Feature, Version=12.0.0.0, Culture=neutral, PublicKeyToken=[Token]&amp;quot;&lt;br&gt;     ReceiverClass=&amp;quot;Microsoft.Office.Workflow.Feature.WorkflowFeatureReceiver&amp;quot;&lt;br&gt;&lt;/span&gt;     xmlns=&amp;quot;http://schemas.microsoft.com/sharepoint/&amp;quot;&amp;gt;&lt;br&gt;&lt;br&gt;     &amp;lt;ElementManifests&amp;gt;&lt;br&gt;         &amp;lt;ElementManifest Location=&amp;quot;Elements.xml&amp;quot; /&amp;gt;&lt;br&gt;     &amp;lt;/ElementManifests&amp;gt;&lt;br&gt;&lt;span style="background-color:#76923c"&gt;     &amp;lt;Properties&amp;gt;&lt;br&gt;         &amp;lt;Property Key=&amp;quot;GloballyAvailable&amp;quot; Value=&amp;quot;true&amp;quot; /&amp;gt;&lt;br&gt;         &amp;lt;Property Key=&amp;quot;RegisterForms&amp;quot; Value=&amp;quot;Forms\*.xsn&amp;quot; /&amp;gt;&lt;br&gt;     &amp;lt;/Properties&amp;gt;&lt;/span&gt;&lt;br&gt;&amp;lt;/Feature&amp;gt;
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;Adding the receiver will allow us to deploy a form into InfoPath Forms Services when the feature is installed. The properties specify where our form is located that the feature needs to deploy.
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;Next, add these updates to the Elements.xml file:
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p style="background:#fabf8f"&gt;&lt;span style="font-family:Courier New;font-size:10pt"&gt;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot; ?&amp;gt;&lt;br&gt;&amp;lt;Elements xmlns=&amp;quot;http://schemas.microsoft.com/sharepoint/&amp;quot;&amp;gt;&lt;br&gt;     &amp;lt;Workflow&lt;br&gt;         Name=&amp;quot;Expense Report Workflow&amp;quot;&lt;br&gt;         Description=&amp;quot;desc.&amp;quot;&lt;br&gt;         Id=&amp;quot;[Guid]&amp;quot;&lt;br&gt;         CodeBesideClass=&amp;quot;TestInfoPathWorkflow.Workflow1&amp;quot;&lt;br&gt;         CodeBesideAssembly=&amp;quot;TestInfoPathWorkflow, Version=1.0.0.0, Culture=neutral, PublicKeyToken=[Token]&amp;quot;&lt;br&gt;&lt;span style="background-color:#76923c"&gt;         TaskListContentTypeId=&amp;quot;0x01080100C9C9515DE4E24001905074F980F93160&amp;quot;&lt;br&gt;         ModificationUrl=&amp;quot;_layouts/ModWrkflIP.aspx&amp;quot;&lt;/span&gt;&lt;br&gt;         &amp;gt;&lt;br&gt;&lt;span style="background-color:#76923c"&gt;         &amp;lt;MetaData&amp;gt;&lt;br&gt;             &amp;lt;Task0_FormURN&amp;gt;urn:schemas-microsoft-com:office:infopath:EditForm-xsn:-myXSD-2009-02-21T03-35-27&amp;lt;/Task0_FormURN&amp;gt;&lt;br&gt;         &amp;lt;/MetaData&amp;gt;&lt;/span&gt;&lt;br&gt;     &amp;lt;/Workflow&amp;gt;&lt;br&gt;&amp;lt;/Elements&amp;gt;
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;The TaskListContentTypeId specifies what the Task content type you're leveraging. The content type I have specified above is the default, out of box content type for task, but if you've built your own, you'd enter it here. The ModificationUrl tag points to an aspx page that is deployed when you install MOSS, and this page hosts and renders the InfoPath form. The metadata Task0_FormURN tag holds the unique ID that is given out form when it is uploaded into Forms Server. This essentially tells the workflow which form to load in the ModWrkflIP.aspx page.
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;Next add two more activities onto the workflow1.cs designer surface. Add a CreateTask and OnTaskChanged activities. After you drop the activities onto the surface, you'll see a red exclamation point. This is because these activities need to a correlation token. Make sure you give the new activities the same token (can be any text you want), but make it a different token from the other activities:
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;&lt;img src="http://philwicklund.com/Lists/Photos/022309_1321_InfoPathand3.png" alt=""&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;
		&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;The reason they need to be different is a token is needed for every list the workflow interacts with. In our case, we have two lists, the workflow origination (host) list, and a tasks list.
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;Essentially, my workflow above will wait for the form to be edited (part 2 of the series), and after it is edited it will create a new task in a tasks list and then wait for that task to be edited. To get the create task activity to work; we need to wire up a few things. First, in the code behind add the following properties at the top of the class:
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p style="background:#fabf8f"&gt;&lt;span style="font-family:Courier New;font-size:10pt"&gt;public Guid taskId = Guid.NewGuid();&lt;br&gt;public SPWorkflowTaskProperties properties = new SPWorkflowTaskProperties();
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;Then, the two new activities need to point to these fields. Go to the properties of both activities and on the TaskId property, click the &amp;quot;…&amp;quot; box:
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;&lt;img src="http://philwicklund.com/Lists/Photos/022309_1321_InfoPathand4.png" alt=""&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;
		&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;Choose the tasked field that was just added, and click ok:
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;img src="http://philwicklund.com/Lists/Photos/022309_1321_InfoPathand5.png" alt=""&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;
		&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;Do the same for the TaskProperties property, but point it the the &amp;quot;properties&amp;quot; field.
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;The last thing to do is add some code into the event handler of the CreateTask. Right click the CreateTask activity and choose Generate Handlers and add the following code into the method that was generated:
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p style="background:#fabf8f"&gt;&lt;span style="font-family:Courier New;font-size:10pt"&gt;properties.TaskType = 0;&lt;br&gt;properties.Title = &amp;quot;HI!&amp;quot;;
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;The TaskType property corresponds to the TaskForm0_URN piece of Meta-Data that was added to the Elements.xml file. The &amp;quot;0&amp;quot; after &amp;quot;Form&amp;quot; is the TaskType. This is needed because you may want to have multiple forms for each task type. For instance, if you drop several tasks assigned to different people, the person's role may be different which may necessitate is different form for that person. The TaskFormX_URN distinguishes which form you want to loaded for which task type (person).
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;Other than TaskType, you can set all kinds of task properties like Title, AssignedTo, Status, etc. These values will get stuffed into the new task that is created. After this, we're ready to BUILD the project and update the assembly in the GAC (c:\windows\assembly). However, we also need to get our feature updated in the 12 Hive, Features directory. Copy the Feature.xml and Elements.xml files to the feature folder they were deployed to originally (post 2 of the series). The only other step before we restart IIS is to drop the form we want loaded in a &amp;quot;Forms&amp;quot; folder within the feature's folder.
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;Remember the &amp;quot;RegisterForms&amp;quot; property that was added to the Feature.xml file? This property tells the feature where the form that will be leveraged in the workflow resides, so the form can get deployed to Forms Server. Notice the value is &amp;quot;Forms\*.xsn&amp;quot;. This means that within the feature's directory, there is a folder called Forms, and all those forms need to get loaded into Form Server. Create this directory and copy your InfoPath form into it:
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;&lt;img src="http://philwicklund.com/Lists/Photos/022309_1321_InfoPathand6.png" alt=""&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;
		&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;Now this feature will need to be Installed (uninstalled first if updating an existing) to get the form deployed to Form Server. Run the STSADM InstallFeature command to do this (IISRESET beforehand!). Thereafter, you should see your form in Form Server:
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;&lt;img src="http://philwicklund.com/Lists/Photos/022309_1321_InfoPathand7.png" alt=""&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;
		&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;&lt;span style="font-size:12pt"&gt;&lt;span style="font-family:Verdana"&gt;One thing to note, the &amp;quot;Workflow Enabled&amp;quot; column MUST be YES for this to work. Yes means that the form was added to Form Server via a feature workflow, and if it is &amp;quot;No&amp;quot;, the form was added manually. Manually added forms will not work! &lt;/span&gt;&lt;span style="font-family:Wingdings"&gt;J&lt;/span&gt;&lt;span style="font-family:Verdana"&gt; took me a while to figure this out…
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;Ok! The assembly and feature have been updated, the task edit form we're using has been deployed, now it's time to start the workflow which will create a task in a task list, and when that task is edited, our custom form will load instead of the out of box SharePoint form. Sweet!
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;Phil&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/dGrtsMzuZU0LyhPqVziIsFeXwhc/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/dGrtsMzuZU0LyhPqVziIsFeXwhc/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/dGrtsMzuZU0LyhPqVziIsFeXwhc/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/dGrtsMzuZU0LyhPqVziIsFeXwhc/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=bI9gjheHRMw:upPwKrViDKA:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=bI9gjheHRMw:upPwKrViDKA:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=bI9gjheHRMw:upPwKrViDKA:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?i=bI9gjheHRMw:upPwKrViDKA:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=bI9gjheHRMw:upPwKrViDKA:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=bI9gjheHRMw:upPwKrViDKA:KwTdNBX3Jqk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?i=bI9gjheHRMw:upPwKrViDKA:KwTdNBX3Jqk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=bI9gjheHRMw:upPwKrViDKA:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=bI9gjheHRMw:upPwKrViDKA:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?i=bI9gjheHRMw:upPwKrViDKA:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=bI9gjheHRMw:upPwKrViDKA:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?i=bI9gjheHRMw:upPwKrViDKA:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=bI9gjheHRMw:upPwKrViDKA:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/SharepointHappenings/~4/2Xqc80n-7hw" height="1" width="1"/&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Phillip S. Wicklund</dc:creator><pubDate>Mon, 23 Feb 2009 07:16:00 GMT</pubDate><category domain="http://philwicklund.com/archive/tags/SharePoint Development/default.aspx">SharePoint Development</category><category domain="http://philwicklund.com/archive/tags/Workflow Foundation/default.aspx">Workflow Foundation</category><category domain="http://philwicklund.com/archive/tags/InfoPath/default.aspx">InfoPath</category><feedburner:origLink>http://philwicklund.com/archive/2009/02/23/infopath-and-visual-studio-workflows-–-3-great-tricks-3-of-3.aspx</feedburner:origLink></item><item><title>Task correlation tokens MUST be different!</title><link>http://feedproxy.google.com/~r/SharepointHappenings/~3/kUf24yaqeNA/task-correlation-tokens-must-be-different.aspx</link><guid isPermaLink="false">/archive/2009/02/20/task-correlation-tokens-must-be-different.aspx</guid><description>&lt;div class="ExternalClassA94C5B7B8FB44A08A56B69DAE5597705"&gt;&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;ARGG!! Today marks at least the 3&lt;sup&gt;rd&lt;/sup&gt; time I've allowed myself to waist pointless hours because I forgot about what an error in my SharePoint workflows meant. This post may be horribly redundant, but hopefully it will at the very least help me NOT to forget again!
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;Anyways, I've been getting this error in my logs (again!) for one of my SharePoint workflows:
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p style="background:#fabf8f"&gt;&lt;span style="font-family:Courier New;font-size:10pt"&gt;System.InvalidOperationException: The event receiver context for Workflow is invalid.     at Microsoft.SharePoint.SPEventReceiverDefinition.ValidContext()     at Microsoft.SharePoint.SPEventReceiverDefinition.ValidReceiverFields()     at Microsoft.SharePoint.SPEventReceiverDefinition.GetSqlCommandToAddEventReceivers(IList`1 erds)     at Microsoft.SharePoint.Workflow.SPWinOESubscriptionService.CommitNewSubscriptions(Transaction txn, IList`1 erds)
&lt;/span&gt;&lt;/p&gt;&lt;p style="background:#fabf8f"&gt;&lt;span style="font-family:Courier New;font-size:10pt"&gt;    
&lt;/span&gt;&lt;/p&gt;&lt;p style="background:#fabf8f"&gt;&lt;span style="font-family:Courier New;font-size:10pt"&gt;Error in commiting pending workflow batch items: System.InvalidOperationException: The event receiver context for Workflow is invalid.     at Microsoft.SharePoint.SPEventReceiverDefinition.ValidContext()     at Microsoft.SharePoint.SPEventReceiverDefinition.ValidReceiverFields()     at Microsoft.SharePoint.SPEventReceiverDefinition.GetSqlCommandToAddEventReceivers(IList`1 erds)     at Microsoft.SharePoint.Workflow.SPWinOESubscriptionService.CommitNewSubscriptions(Transaction txn, IList`1 erds)     at Microsoft.SharePoint.Workflow.SPPendingWorkBatch.ProcessWorkItemBatch(Transaction transaction, Work method, IList`1 workItemBatch)     at Microsoft.SharePoint.Workflow.SPPendingWorkBatch.Commit(Transaction transaction, ICollection items)    
&lt;/span&gt;&lt;/p&gt;&lt;p style="background:#fabf8f"&gt; 
 &lt;/p&gt;&lt;p style="background:#fabf8f"&gt;&lt;span style="font-family:Courier New;font-size:10pt"&gt;WinWF Internal Error, terminating workflow Id# 7567684a-6a18-4bef-810d-18443ef466e2    
&lt;/span&gt;&lt;/p&gt;&lt;p style="background:#fabf8f"&gt; 
 &lt;/p&gt;&lt;p style="background:#fabf8f"&gt;&lt;span style="font-family:Courier New;font-size:10pt"&gt;Unexpected    System.Workflow.Runtime.Hosting.PersistenceException: The event receiver context for Workflow is invalid. ---&amp;gt; System.InvalidOperationException: The event receiver context for Workflow is invalid.     at Microsoft.SharePoint.SPEventReceiverDefinition.ValidContext()     at Microsoft.SharePoint.SPEventReceiverDefinition.ValidReceiverFields()     at Microsoft.SharePoint.SPEventReceiverDefinition.GetSqlCommandToAddEventReceivers(IList`1 erds)     at Microsoft.SharePoint.Workflow.SPWinOESubscriptionService.CommitNewSubscriptions(Transaction txn, IList`1 erds)     at Microsoft.SharePoint.Workflow.SPPendingWorkBatch.ProcessWorkItemBatch(Transaction transaction, Work method, IList`1 workItemBatch)     at Microsoft.SharePoint.Workflow.SPPendingWorkBatch.Commit(Transaction transaction, ICollection i...     
&lt;/span&gt;&lt;/p&gt;&lt;p style="background:#fabf8f"&gt;
 &lt;/p&gt;&lt;p style="background:#fabf8f"&gt;&lt;span style="font-family:Courier New;font-size:10pt"&gt;Unexpected    ...tems)     at System.Workflow.Runtime.WorkBatch.PendingWorkCollection.Commit(Transaction transaction)     at System.Workflow.Runtime.WorkBatch.Commit(Transaction transaction)     at System.Workflow.Runtime.Hosting.WorkflowCommitWorkBatchService.CommitWorkBatch(CommitWorkBatchCallback commitWorkBatchCallback)     at System.Workflow.Runtime.Hosting.DefaultWorkflowCommitWorkBatchService.CommitWorkBatch(CommitWorkBatchCallback commitWorkBatchCallback)     at System.Workflow.Runtime.WorkflowExecutor.CommitTransaction(Activity activityContext)     at System.Workflow.Runtime.WorkflowExecutor.Persist(Activity dynamicActivity, Boolean unlock, Boolean needsCompensation)     --- End of inner exception stack trace ---     at System.Workflow.Runtime.WorkflowExecutor.Persist(Activity dynamicActivity, Boo...     
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;The key is the &amp;quot;The event receiver context for Workflow is invalid&amp;quot; message. Well, not much of a key really because it's a horrible message as far as what to do to fix the issue. Long story short, I had a CreateTask activity that had the same correlation token as the rest of my activities. This is a problem because correlation tokens are a 1 to 1 ratio for SharePoint lists, and since the Create Task activity drops a task into a SEPARATE list from my originating workflow list, that activity needed a new DIFFERENT TOKEN. Dang. Should that be so hard to remember? Maybe 3&lt;sup&gt;rd&lt;/sup&gt; time's the charm!
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;&lt;span style="font-size:12pt"&gt;&lt;span style="font-family:Verdana"&gt;Here's a helpful screen shot of the FIX &lt;/span&gt;&lt;span style="font-family:Wingdings"&gt;J&lt;/span&gt;&lt;span style="font-family:Verdana"&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;&lt;img src="http://philwicklund.com/Lists/Photos/022109_0511_Taskcorrela1.png" alt=""&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;
		&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;Phil&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/DMaWVcMgDUfUmDHXxnuwqPq8sTI/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/DMaWVcMgDUfUmDHXxnuwqPq8sTI/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/DMaWVcMgDUfUmDHXxnuwqPq8sTI/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/DMaWVcMgDUfUmDHXxnuwqPq8sTI/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=dELeGfIE"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=lxIPSElU"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?d=129" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=zxsGFiJU"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?i=zxsGFiJU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=gxDmFgxq"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?d=54" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=w0Jp0oiF"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?i=w0Jp0oiF" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=VSoFaxCr"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?d=52" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=gAtKWfyw"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?i=gAtKWfyw" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=yHxMS7lK"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?i=yHxMS7lK" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=gQJlsXA2"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?d=43" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/SharepointHappenings/~4/kUf24yaqeNA" height="1" width="1"/&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Phillip S. Wicklund</dc:creator><pubDate>Fri, 20 Feb 2009 23:06:00 GMT</pubDate><category domain="http://philwicklund.com/archive/tags/Workflow Foundation/default.aspx">Workflow Foundation</category><feedburner:origLink>http://philwicklund.com/archive/2009/02/20/task-correlation-tokens-must-be-different.aspx</feedburner:origLink></item><item><title>InfoPath and Visual Studio Workflows – 3 Great Tricks (2 of 3)</title><link>http://feedproxy.google.com/~r/SharepointHappenings/~3/7nEH0v7Z1pA/infopath-and-visual-studio-workflows-–-3-great-tricks-2-of-3.aspx</link><guid isPermaLink="false">/archive/2009/02/20/infopath-and-visual-studio-workflows-–-3-great-tricks-2-of-3.aspx</guid><description>&lt;div class="ExternalClassA6ECBF92FDD048BFA59C1EE068315515"&gt;&lt;p&gt;&lt;span style="font-size:12pt"&gt;&lt;span style="font-family:Verdana"&gt;In my second part of my three part series (&lt;a href="http://philwicklund.com/archive/2009/01/22/infopath-and-visual-studio-workflows-–-3-great-tricks.aspx"&gt;Part 1&lt;/a&gt; – Part 3), I'm going to show how you can use a visual studio workflow to programmatically react to and read user entered data in a custom InfoPath form. Now I could jump right to the chase and just talk about what code you use to get at the data in an InfoPath form, however I think it may benefit some to see how you leverage that code in a SharePoint workflow, and how to build that workflow from scratch. Hence, I'll be taking the scenic route with this post &lt;/span&gt;&lt;span style="font-family:Wingdings"&gt;J&lt;/span&gt;&lt;span style="font-family:Verdana"&gt;. If you're just looking for code to copy, skip to step X below.
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;Of the three posts in this series, the business case for this post is the most straight forward. There are many reasons why one would want to programmatically access InfoPath form data. What will be demonstrated in this post is reading data out of a submitted expense report, possibly because one would want to send the expense report dollar amount to some accounting system – who knows… The expense report example is rather generic, but I hope it will serve to demonstrate the concept.
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;&lt;strong&gt;Here are the steps to accomplish this at a high level:
&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;1.  Create a new Visual Studio sequential workflow project&lt;br&gt;2.  Create necessary feature files to deploy the workflow to SharePoint&lt;br&gt;3.  Generate a proxy class off your InfoPath form&lt;br&gt;4.  Add appropriate workflow activities that Serialize the form's XML into the proxy object&lt;br&gt;5.  Deploy and Test!
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;&lt;strong&gt;Step by Step Walkthrough (10 EASY STEPS!):
&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;&lt;strong&gt;1. Create a new Visual Studio sequential workflow project
&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p style="margin-left:36pt"&gt;&lt;img src="http://philwicklund.com/Lists/Photos/022109_0253_InfoPathand1.png" alt=""&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;
		&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left:36pt"&gt;
 &lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;&lt;strong&gt;2. Sign the assembly – this is necessary because all SharePoint workflows need to be deployed to the GAC (c:\windows\assembly)
&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p style="margin-left:36pt"&gt;&lt;img src="http://philwicklund.com/Lists/Photos/022109_0253_InfoPathand2.png" alt=""&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;
		&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left:36pt"&gt;
 &lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;&lt;strong&gt;3. Add feature files to deploy the workflow
&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p style="margin-left:36pt"&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;Right click on the project and add two XML files, named Feature.xml and Elements.xml:
&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left:36pt"&gt;
 &lt;/p&gt;&lt;p style="margin-left:36pt"&gt;&lt;img src="http://philwicklund.com/Lists/Photos/022109_0253_InfoPathand3.png" alt=""&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;
		&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left:36pt"&gt;
 &lt;/p&gt;&lt;p style="margin-left:36pt"&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;&lt;em&gt;[Note: The better way to deploy features is to use Solutions, however for the sake of brevity; I'll be deploying this feature manually.]
&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left:36pt"&gt;
 &lt;/p&gt;&lt;p style="margin-left:36pt"&gt;&lt;img src="http://philwicklund.com/Lists/Photos/022109_0253_InfoPathand4.png" alt=""&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;
		&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left:36pt"&gt;
 &lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;&lt;strong&gt;4. Replace code in feature files
&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p style="margin-left:36pt"&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;Feature.xml:
&lt;/span&gt;&lt;/p&gt;&lt;p style="background:#fabf8f;margin-left:36pt"&gt;&lt;span style="font-family:Courier New;font-size:10pt"&gt;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br&gt;&amp;lt;Feature  Id=&amp;quot;[Guid]&amp;quot;&lt;br&gt;         Title=&amp;quot;Expense Report Workflow&amp;quot;&lt;br&gt;         Description=&amp;quot;desc.&amp;quot;&lt;br&gt;         Version=&amp;quot;1.0.0.0&amp;quot;&lt;br&gt;         Scope=&amp;quot;Site&amp;quot;&lt;br&gt;         xmlns=&amp;quot;http://schemas.microsoft.com/sharepoint/&amp;quot;&amp;gt;&lt;br&gt;     &amp;lt;ElementManifests&amp;gt;&lt;br&gt;         &amp;lt;ElementManifest Location=&amp;quot;Elements.xml&amp;quot; /&amp;gt;&lt;br&gt;     &amp;lt;/ElementManifests&amp;gt;&lt;br&gt;&amp;lt;/Feature&amp;gt;
&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left:36pt"&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;&lt;br&gt;Elements.xml:
&lt;/span&gt;&lt;/p&gt;&lt;p style="background:#fabf8f;margin-left:36pt"&gt;&lt;span style="font-family:Courier New;font-size:10pt"&gt;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot; ?&amp;gt;&lt;br&gt;&amp;lt;Elements xmlns=&amp;quot;http://schemas.microsoft.com/sharepoint/&amp;quot;&amp;gt;&lt;br&gt;     &amp;lt;Workflow&lt;br&gt;         Name=&amp;quot;Expense Report Workflow&amp;quot;&lt;br&gt;         Description=&amp;quot;desc.&amp;quot;&lt;br&gt;         Id=&amp;quot;[Guid]&amp;quot;&lt;br&gt;         CodeBesideClass=&amp;quot;TestInfoPathWorkflow.Workflow1&amp;quot;&lt;br&gt;         CodeBesideAssembly=&amp;quot;TestInfoPathWorkflow, Version=1.0.0.0, Culture=neutral, PublicKeyToken=[TOKEN]&amp;quot;&lt;br&gt;     &amp;gt;&lt;br&gt;     &amp;lt;/Workflow&amp;gt;&lt;br&gt;&amp;lt;/Elements&amp;gt;
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;&lt;strong&gt;5.  Replace [Guid] with new, unique Guid
&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;&lt;strong&gt;6.  Replace [Token] with the unique public key token from your workflow
&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p style="margin-left:36pt"&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;Build the project and then drop the assembly into the GAC (c:\windows\assembly). Then, right click on the assembly and click properties. Lastly copy and paste the token:
&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left:36pt"&gt;
 &lt;/p&gt;&lt;p style="margin-left:36pt"&gt;&lt;img src="http://philwicklund.com/Lists/Photos/022109_0253_InfoPathand5.png" alt=""&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;
		&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left:36pt"&gt;
 &lt;/p&gt;&lt;p style="margin-left:36pt"&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;Example:
&lt;/span&gt;&lt;/p&gt;&lt;p style="background:#fabf8f;margin-left:36pt"&gt;&lt;span style="font-family:Courier New;font-size:10pt"&gt;&amp;lt;Workflow&lt;br&gt;     Name=&amp;quot;Expense Report Workflow&amp;quot;&lt;br&gt;     Description=&amp;quot;desc.&amp;quot;&lt;br&gt;     Id=&amp;quot;51EE11E4-CC2B-44c6-B599-2D2B25793E95&amp;quot;&lt;br&gt;     CodeBesideClass=&amp;quot;TestInfoPathWorkflow.Workflow1&amp;quot;&lt;br&gt;     CodeBesideAssembly=&amp;quot;TestInfoPathWorkflow, Version=1.0.0.0, Culture=neutral, PublicKeyToken=7ee59b283157fb98&amp;quot;&lt;br&gt;     &amp;gt;&lt;br&gt;&amp;lt;/Workflow&amp;gt;
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;&lt;strong&gt;7. Generate a proxy class off your InfoPath form
&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p style="margin-left:36pt"&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;Within your InfoPath form, click File – Save as Source Files:
&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left:36pt"&gt;
 &lt;/p&gt;&lt;p style="margin-left:36pt"&gt;&lt;img src="http://philwicklund.com/Lists/Photos/022109_0253_InfoPathand6.png" alt=""&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;
		&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left:36pt"&gt;
 &lt;/p&gt;&lt;p style="margin-left:36pt"&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;After you specify a location to save the files to, it will spit out a whole lot of stuff:
&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left:36pt"&gt;
 &lt;/p&gt;&lt;p style="margin-left:36pt"&gt;&lt;img src="http://philwicklund.com/Lists/Photos/022109_0253_InfoPathand7.png" alt=""&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;
		&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left:36pt"&gt;
 &lt;/p&gt;&lt;p style="margin-left:36pt"&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;What is most special to us is the myschema.xsd file. This file contains the schema for the InfoPath form and will be used to generate our proxy class. To generate the proxy, open Visual Studio tools command prompt:
&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left:36pt"&gt;
 &lt;/p&gt;&lt;p style="margin-left:36pt"&gt;&lt;img src="http://philwicklund.com/Lists/Photos/022109_0253_InfoPathand8.png" alt=""&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;
		&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left:36pt"&gt;
 &lt;/p&gt;&lt;p style="margin-left:36pt"&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;And run the following command:
&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left:36pt"&gt;
 &lt;/p&gt;&lt;p style="margin-left:36pt"&gt;&lt;img src="http://philwicklund.com/Lists/Photos/022109_0253_InfoPathand9.png" alt=""&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;
		&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left:36pt"&gt;
 &lt;/p&gt;&lt;p style="margin-left:36pt"&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;&lt;em&gt;[If you get an error that is similar to &amp;quot;Error: The process cannot access the file 'c:\users\administrator\desktop\published\myschema.xsd' because it is being used by another process.&amp;quot;, you have to close the InfoPath form first. When the form is open, it has a lock on the schema file.]
&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left:36pt"&gt;
 &lt;/p&gt;&lt;p style="margin-left:36pt"&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;This will spit out a new file called myschema.cs that contains all the properties for the fields in our InfoPath form. We can instantiate this class to get at our form data (more on this in a bit). Add this new class to your Visual Studio project, and then rename the file to whatever the class name is (in my case it's ExpenseReportFields):
&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left:36pt"&gt;
 &lt;/p&gt;&lt;p style="margin-left:36pt"&gt;&lt;img src="http://philwicklund.com/Lists/Photos/022109_0253_InfoPathand10.png" alt=""&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;
		&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left:36pt"&gt;
 &lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;&lt;strong&gt;8. Drop the OnWorkflowInstanciated and WorkflowItemChanged activites onto the design surface
&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p style="margin-left:36pt"&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;You should see these activities in the toolbox:
&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left:36pt"&gt;
 &lt;/p&gt;&lt;p style="margin-left:36pt"&gt;&lt;img src="http://philwicklund.com/Lists/Photos/022109_0253_InfoPathand11.png" alt=""&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;
		&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left:36pt"&gt;
 &lt;/p&gt;&lt;p style="margin-left:36pt"&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;After you get them on the surface, you'll notice that each has an exclamation point in the upper right had corner of the activity:
&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left:36pt"&gt;
 &lt;/p&gt;&lt;p style="margin-left:36pt"&gt;&lt;img src="http://philwicklund.com/Lists/Photos/022109_0253_InfoPathand12.png" alt=""&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;
		&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left:36pt"&gt;
 &lt;/p&gt;&lt;p style="margin-left:36pt"&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;You resolve the error, set a correlation token for each. On the first activity, right click the activity and choose properties. Find the CorrelationToken property and type in a token (this can be any text you want):
&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left:36pt"&gt;
 &lt;/p&gt;&lt;p style="margin-left:36pt"&gt;&lt;img src="http://philwicklund.com/Lists/Photos/022109_0253_InfoPathand13.png" alt=""&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;
		&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left:36pt"&gt;
 &lt;/p&gt;&lt;p style="margin-left:36pt"&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;&lt;em&gt;[Note: make sure AFTER you type a token, that you hit the plus sign and specify the OwnerActivityName property]
&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left:36pt"&gt;
 &lt;/p&gt;&lt;p style="margin-left:36pt"&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;On the second activity, rather than type a new token, select from the dropdown the token you typed in the first activity. Now, both activities will be correlated to one another, and to the same workflow list item. (The red exclamation points should disappear as well)
&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left:36pt"&gt;
 &lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;&lt;strong&gt;9. Add code to the WorkflowItemChanged activities to handle when the form is edited
&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p style="margin-left:36pt"&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;As was stated, the example being demonstrated is handling whenever an expense report is submitted/edited. The code we're going add in this step will get ran when the form has been edited. It will load the form's XML from it's SPFile object, and then serialize that XML into our proxy object. We will then be able to program against that object with all the data that was entered into the form. To add this code, right click the onWorkflowItemChanged activity and choose Generate Handlers. This will create a method called onWorkflowItemChanged1_Invoked and any code you put in there will run when the form is edited.
&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left:36pt"&gt;
 &lt;/p&gt;&lt;p style="margin-left:36pt"&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;Copy the following code into the onWorkflowItemChanged1_Invoked method:
&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left:36pt"&gt;
 &lt;/p&gt;&lt;p style="background:#fabf8f;margin-left:36pt"&gt;&lt;span style="font-size:10pt"&gt;&lt;span style="font-family:Courier New"&gt;// Create an SPFile object off the list item – this is our Form&lt;br&gt;SPFile file = onWorkflowActivated1.WorkflowProperties.Item.File;&lt;br&gt;&lt;br&gt;// Load the contents of the file into an Xml reader&lt;br&gt;XmlTextReader reader = new XmlTextReader(file.OpenBinaryStream());&lt;br&gt;XmlSerializer serializer = new XmlSerializer(typeof(ExpenseReportFields));&lt;br&gt;&lt;br&gt;// Deserialize the xml content into an instance of our proxy class&lt;br&gt;ExpenseReportFields fields = (ExpenseReportFields) serializer.Deserialize(reader);&lt;br&gt;&lt;br&gt;// Do something cool! (I'm just updating a field on the list item, not too cool &lt;/span&gt;&lt;span style="font-family:Wingdings"&gt;L&lt;/span&gt;&lt;span style="font-family:Courier New"&gt;)&lt;br&gt;file.Item[&amp;quot;Money&amp;quot;] = fields.money;&lt;br&gt;file.Item.Update();
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;&lt;strong&gt;10.  Deploy and Test!
&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p style="margin-left:36pt"&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;The first thing to do is to build the project and drop it in the GAC (again). This will get the latest code available. Next you need to install and activate our feature. In the Features directory in the 12 Hive, create a new folder (named whatever you want) and copy/paste the Feature.xml and Elements.xml files into the new folder. 
&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left:36pt"&gt;
 &lt;/p&gt;&lt;p style="margin-left:36pt"&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;IISRESET!
&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left:36pt"&gt;
 &lt;/p&gt;&lt;p style="margin-left:36pt"&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;Then run the InstallFeature STSADM command: stsadm –o installfeature –name foldername
&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left:36pt"&gt;
 &lt;/p&gt;&lt;p style="margin-left:36pt"&gt;&lt;img src="http://philwicklund.com/Lists/Photos/022109_0253_InfoPathand14.png" alt=""&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;
		&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left:36pt"&gt;
 &lt;/p&gt;&lt;p style="margin-left:36pt"&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;Now on the site, activate the feature (in my case it's called Expense Report Workflow) and add the workflow to one of your form libraries. To do this, go to form library settings, workflow settings, select the workflow and configure the rest of the settings per your requirements:
&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left:36pt"&gt;
 &lt;/p&gt;&lt;p style="margin-left:36pt"&gt;&lt;img src="http://philwicklund.com/Lists/Photos/022109_0253_InfoPathand15.png" alt=""&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;
		&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left:36pt"&gt;
 &lt;/p&gt;&lt;p style="margin-left:36pt"&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;DONE!
&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left:36pt"&gt;
 &lt;/p&gt;&lt;p style="margin-left:36pt"&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;Now when I start the workflow and edit my form, the code grabs the &amp;quot;money&amp;quot; field out of the form and updates the &amp;quot;Money&amp;quot; column on the SharePoint list. Pretty neat!
&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left:36pt"&gt;
 &lt;/p&gt;&lt;p style="margin-left:36pt"&gt;&lt;img src="http://philwicklund.com/Lists/Photos/022109_0253_InfoPathand16.png" alt=""&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;
		&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;Phil
&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/a7DFjk83ZH4US6yXffbnNAnxTiM/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/a7DFjk83ZH4US6yXffbnNAnxTiM/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/a7DFjk83ZH4US6yXffbnNAnxTiM/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/a7DFjk83ZH4US6yXffbnNAnxTiM/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=cehQqbFKkcM:IUDQ1aebV9E:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=cehQqbFKkcM:IUDQ1aebV9E:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=cehQqbFKkcM:IUDQ1aebV9E:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?i=cehQqbFKkcM:IUDQ1aebV9E:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=cehQqbFKkcM:IUDQ1aebV9E:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=cehQqbFKkcM:IUDQ1aebV9E:KwTdNBX3Jqk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?i=cehQqbFKkcM:IUDQ1aebV9E:KwTdNBX3Jqk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=cehQqbFKkcM:IUDQ1aebV9E:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=cehQqbFKkcM:IUDQ1aebV9E:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?i=cehQqbFKkcM:IUDQ1aebV9E:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=cehQqbFKkcM:IUDQ1aebV9E:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?i=cehQqbFKkcM:IUDQ1aebV9E:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=cehQqbFKkcM:IUDQ1aebV9E:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/SharepointHappenings/~4/7nEH0v7Z1pA" height="1" width="1"/&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Phillip S. Wicklund</dc:creator><pubDate>Fri, 20 Feb 2009 20:48:00 GMT</pubDate><category domain="http://philwicklund.com/archive/tags/InfoPath/default.aspx">InfoPath</category><category domain="http://philwicklund.com/archive/tags/Workflow Foundation/default.aspx">Workflow Foundation</category><feedburner:origLink>http://philwicklund.com/archive/2009/02/20/infopath-and-visual-studio-workflows-–-3-great-tricks-2-of-3.aspx</feedburner:origLink></item><item><title>Speaking at the SharePoint Saturday New York Conference!</title><link>http://feedproxy.google.com/~r/SharepointHappenings/~3/bndUVuOic10/speaking-at-the-upcoming-sharepoint-saturday-new-york-conference.aspx</link><guid isPermaLink="false">/archive/2009/02/04/speaking-at-the-upcoming-sharepoint-saturday-new-york-conference.aspx</guid><description>&lt;div class="ExternalClass918CB38781814C54AF8C2EFA29245A47"&gt;&lt;p&gt;&lt;img align="right" src="http://philwicklund.com/Lists/Photos/020409_1649_Speakingatt1.png" alt=""&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;With much excitement, I will be speaking at the upcoming SharePoint Saturday New York conference! 
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;&lt;a href="http://www.sharepointsaturday.org/ny/Pages/default.aspx"&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;http://www.sharepointsaturday.org/ny/Pages/default.aspx&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;
		&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;I've heard a ton of great things about these events, and I hope to frequently contribute towards their unique and generous efforts for the SharePoint community. If you live nearby New York City, the event is FREE and the topics that will be presented are AWESOME! I'm stoked! Here's the registration link: &lt;a href="https://www.clicktoattend.com/invitation.aspx?code=134661"&gt;https://www.clicktoattend.com/invitation.aspx?code=134661&lt;/a&gt;
		&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;I'm presenting on Leveraging Custom InfoPath forms in your Visual Studio SharePoint Workflows. Here's the brief:
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p style="margin-left:36pt"&gt;&lt;span style="color:black;font-family:Verdana;font-size:12pt"&gt;&lt;em&gt;Visual Studio workflows and InfoPath Forms Services are a powerful team for your company's business processes. Three examples of how you can leverage InfoPath within your custom Visual Studio workflows will be demonstrated. 1: how to deploy a workflow enabled form into a form library programmatically. 2: how to programmatically retrieve form data entered by a user. 3: how to leverage an InfoPath form to collect custom workflow initiation data and task edit data.
&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;My special thanks goes out to the organizers of SharePoint Saturday for the opportunity. Thanks! And I look forward to meeting you all in person!
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;Phil&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/H9nKSPf1TUa3JW5dDjoL-gnv3MU/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/H9nKSPf1TUa3JW5dDjoL-gnv3MU/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/H9nKSPf1TUa3JW5dDjoL-gnv3MU/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/H9nKSPf1TUa3JW5dDjoL-gnv3MU/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=9JclSH0A"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=UL8iURyf"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?d=129" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=n6S3C8mw"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?i=n6S3C8mw" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=Zkvn2A2m"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?d=54" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=2Alqe1ch"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?i=2Alqe1ch" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=AcZC1uq9"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?d=52" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=QBugpYNR"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?i=QBugpYNR" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=np4iHOC9"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?i=np4iHOC9" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=e8R3MIrP"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?d=43" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/SharepointHappenings/~4/bndUVuOic10" height="1" width="1"/&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Phillip S. Wicklund</dc:creator><pubDate>Wed, 04 Feb 2009 10:46:00 GMT</pubDate><category domain="http://philwicklund.com/archive/tags/Speaking Events/default.aspx">Speaking Events</category><feedburner:origLink>http://philwicklund.com/archive/2009/02/04/speaking-at-the-upcoming-sharepoint-saturday-new-york-conference.aspx</feedburner:origLink></item><item><title>InfoPath and Visual Studio Workflows – 3 Great Tricks (1 of 3)</title><link>http://feedproxy.google.com/~r/SharepointHappenings/~3/8KUyjEHDvxU/infopath-and-visual-studio-workflows-–-3-great-tricks.aspx</link><guid isPermaLink="false">/archive/2009/01/22/infopath-and-visual-studio-workflows-–-3-great-tricks.aspx</guid><description>&lt;div class="ExternalClassFE6BAE5ADA6B4356A93DE6440890AC5F"&gt;&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;Trick #1: Programmatically dropping InfoPath forms into a forms library
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Verdana;font-size:14pt"&gt;&lt;strong&gt;Business Case:
&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;I've come so notice that SharePoint isn't the easiest platform for end users to learn. When the IT department decides they want to &amp;quot;virtualize&amp;quot; their processes and will leverage InfoPath to do so, end users quickly reach for their panic buttons. The business case in my mind for programmatically deploying an InfoPath form is that sometimes even the &amp;quot;New&amp;quot; button is too complicated for users. Dropping a new form on behalf of the user, and saving them a few clicks can save on YOUR support budget.
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;&lt;span style="font-size:12pt"&gt;&lt;span style="font-family:Verdana"&gt;Take an expense report, for example. On an HR site, you may have a link on the quick launch for &amp;quot;Expense Reports&amp;quot;. This takes the user to a form library. They somehow at this point need to know to click the &amp;quot;New&amp;quot; button – and possibly the New dropdown to choose between various content types. This in turn will lead to opening of the InfoPath thick client – which they probably don't have installed. If form server is configured, they should've known to upload the XML data file, rather than click New, and then click Edit In Browser. Funny how them end users struggle with this? &lt;/span&gt;&lt;span style="font-family:Wingdings"&gt;J&lt;/span&gt;&lt;span style="font-family:Verdana"&gt;
			&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;Alternative – On the HR site, create a link called &amp;quot;Submit an Expense Report&amp;quot;. This, when clicked, programmatically drops an empty form in a library, and automatically redirects the user to the URL for browser based editing. They fill out the form and clicks submit, and are redirected back to the HR site – never even seeing the underlying form library. &lt;strong&gt;Completely brainless.&lt;/strong&gt;
		&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Verdana;font-size:14pt"&gt;&lt;strong&gt;Walkthrough:
&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;With all that said, here are the steps to programmatically drop an InfoPath form in a form library:
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;&lt;strong&gt;1.&lt;/strong&gt; Create a form, save the form, and then check Preview – Form:
&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left:36pt"&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;&lt;br&gt;&lt;img src="http://philwicklund.com/Lists/Photos/012309_0506_InfoPathand1.png" alt=""&gt;
		&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;&lt;strong&gt;2.&lt;/strong&gt; Fill out the form, and then click Save. This will save the data as an XML file.
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;&lt;strong&gt;3.&lt;/strong&gt; Add that XML file to a Visual Studio Project.
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;&lt;strong&gt;4.&lt;/strong&gt; Set the compile action to be Embedded Resource (right click – properties):
&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left:36pt"&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;&lt;br&gt;&lt;img src="http://philwicklund.com/Lists/Photos/012309_0506_InfoPathand2.png" alt=""&gt;
		&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;&lt;strong&gt;5.&lt;/strong&gt; Optional – If using Forms Server, edit the XML file's name and URL tag to point to the template loaded in Forms Server:
&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left:36pt"&gt;
 &lt;/p&gt;&lt;p style="margin-left:36pt"&gt;&lt;img src="http://philwicklund.com/Lists/Photos/012309_0506_InfoPathand3.png" alt=""&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;
		&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left:36pt"&gt;
 &lt;/p&gt;&lt;p style="margin-left:36pt"&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;(to get the name, go to Central Administration, Application Settings, manage form templates. Then, view the properties on the form and look for the &amp;quot;Form ID&amp;quot; property.)
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;&lt;strong&gt;6.&lt;/strong&gt; Use the following code to deploy the form:
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;font-size:12pt"&gt;&lt;span style="color:#4f81bd"&gt;using&lt;/span&gt; System; 
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;font-size:12pt"&gt;&lt;span style="color:#4f81bd"&gt;using&lt;/span&gt; System.IO; 
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;font-size:12pt"&gt;&lt;span style="color:#4f81bd"&gt;using&lt;/span&gt; System.Reflection; 
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;font-size:12pt"&gt;&lt;span style="color:#4f81bd"&gt;using&lt;/span&gt; Microsoft.SharePoint; 
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;font-size:12pt"&gt;&lt;span style="color:#4f81bd"&gt;public&lt;/span&gt;
			&lt;span style="color:#4f81bd"&gt;class&lt;/span&gt; Class1 
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;font-size:12pt"&gt;{
&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left:36pt"&gt;&lt;span style="font-family:Courier New;font-size:12pt"&gt;&lt;span style="color:#4f81bd"&gt;public&lt;/span&gt; void foo() 
&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left:36pt"&gt;&lt;span style="font-family:Courier New;font-size:12pt"&gt;{
&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left:72pt"&gt;&lt;span style="font-family:Courier New;font-size:12pt"&gt;Stream stream = 
&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left:108pt"&gt;&lt;span style="font-family:Courier New;font-size:12pt"&gt;Assembly.GetExecutingAssembly()
&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left:144pt"&gt;&lt;span style="font-family:Courier New;font-size:12pt"&gt;.GetManifestResourceStream(@&amp;quot;AssemblyName.FormName.xml&amp;quot;); 
&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left:72pt"&gt;
 &lt;/p&gt;&lt;p style="margin-left:72pt"&gt;&lt;span style="font-family:Courier New;font-size:12pt"&gt;&lt;span style="color:#4f81bd"&gt;byte&lt;/span&gt;[] content = &lt;span style="color:#4f81bd"&gt;new&lt;/span&gt;
			&lt;span style="color:#4f81bd"&gt;byte&lt;/span&gt;[stream.Length]; 
&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left:72pt"&gt;&lt;span style="color:#00b050;font-family:Courier New;font-size:12pt"&gt;// Read the file from the stream into the byte array 
&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left:72pt"&gt;
 &lt;/p&gt;&lt;p style="margin-left:72pt"&gt;&lt;span style="font-family:Courier New;font-size:12pt"&gt;stream.Read(content, 0, (&lt;span style="color:#4f81bd"&gt;int&lt;/span&gt;)stream.Length); 
&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left:72pt"&gt;&lt;span style="font-family:Courier New;font-size:12pt"&gt;stream.Close();
&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left:72pt"&gt;
 &lt;/p&gt;&lt;p style="margin-left:72pt"&gt;&lt;span style="font-family:Courier New;font-size:12pt"&gt;&lt;span style="color:#4f81bd"&gt;using&lt;/span&gt; (SPSite mySiteCollection = &lt;span style="color:#4f81bd"&gt;new&lt;/span&gt; SPSite(&amp;quot;http://foobar.com&amp;quot;)) 
&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left:72pt"&gt;&lt;span style="font-family:Courier New;font-size:12pt"&gt;{
&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left:108pt"&gt;&lt;span style="font-family:Courier New;font-size:12pt"&gt;&lt;span style="color:#4f81bd"&gt;using&lt;/span&gt; (SPWeb myWeb = mySiteCollection.RootWeb) 
&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left:108pt"&gt;&lt;span style="font-family:Courier New;font-size:12pt"&gt;{
&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left:144pt"&gt;&lt;span style="font-family:Courier New;font-size:12pt"&gt;&lt;span style="color:#4f81bd"&gt;string&lt;/span&gt; libraryName = &amp;quot;HR Forms&amp;quot;; 
&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left:144pt"&gt;
 &lt;/p&gt;&lt;p style="margin-left:144pt"&gt;&lt;span style="color:#00b050;font-family:Courier New;font-size:12pt"&gt;// Get the folder that should store the document 
&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left:144pt"&gt;&lt;span style="font-family:Courier New;font-size:12pt"&gt;SPFolder root = myWeb.Folders[libraryName]; 
&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left:144pt"&gt;
 &lt;/p&gt;&lt;p style="margin-left:144pt"&gt;&lt;span style="font-family:Courier New;font-size:12pt"&gt;&lt;span style="color:#4f81bd"&gt;string&lt;/span&gt; fileNameOnceInLibrary = &amp;quot;UniqueFileName&amp;quot;; 
&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left:144pt"&gt;
 &lt;/p&gt;&lt;p style="margin-left:144pt"&gt;&lt;span style="color:#00b050;font-family:Courier New;font-size:12pt"&gt;// Add the file to the Files collection and commit to database 
&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left:144pt"&gt;&lt;span style="font-family:Courier New;font-size:12pt"&gt;SPFile file = root.Files.Add(
&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left:180pt"&gt;&lt;span style="font-family:Courier New;font-size:12pt"&gt;root.Url + &amp;quot;/&amp;quot; + fileNameOnceInLibrary, content, &lt;span style="color:#4f81bd"&gt;true&lt;/span&gt;); 
&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left:144pt"&gt;
 &lt;/p&gt;&lt;p style="margin-left:144pt"&gt;&lt;span style="font-family:Courier New;font-size:12pt"&gt;root.Update();
&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left:108pt"&gt;&lt;span style="font-family:Courier New;font-size:12pt"&gt;}
&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left:72pt"&gt;&lt;span style="font-family:Courier New;font-size:12pt"&gt;}
&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left:72pt"&gt;&lt;span style="color:#00b050;font-family:Courier New;font-size:12pt"&gt;// Send user to edit/submit new form via Form Server
&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left:72pt"&gt;&lt;span style="font-family:Courier New;font-size:12pt"&gt;Page.Response.Redirect(
&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left:108pt"&gt;&lt;span style="font-family:Courier New;font-size:12pt"&gt;&amp;quot;/HR/_layouts/formserver.aspx?XmlLocation=&amp;quot; +
&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left:108pt"&gt;&lt;span style="font-family:Courier New;font-size:12pt"&gt;&amp;quot;/HR%20Forms/&amp;quot; + fileNameOnceInLibrary + &amp;quot;.xml&amp;amp;OpenIn=Browser&amp;quot;);
&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left:36pt"&gt;&lt;span style="font-family:Courier New;font-size:12pt"&gt;}
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;font-size:12pt"&gt;}
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;This code opens a stream on the embedded resource and loads that stream into a byte array. Then the SharePoint web and folder (form library) are opened and a new document is added to the form library using the byte array as its content source. Lastly the user is redirected to Form Server to edit/submit the form, and after they have submitted the form, logic in the form can send them back to the HR landing page – thus removing any need to know anything about SharePoint!
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;Trick #2 and #3 will be out it a couple days…
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;Phil
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;&lt;span style="font-size:12pt"&gt;&lt;span style="font-family:Verdana"&gt;(ps – if you know how to load form server, rather than the thick client, when a user clicks the New button, let me know &lt;/span&gt;&lt;span style="font-family:Wingdings"&gt;J&lt;/span&gt;&lt;span style="font-family:Verdana"&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/dVYsS-HK5rTEXyIxWktBI21fqNI/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/dVYsS-HK5rTEXyIxWktBI21fqNI/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/dVYsS-HK5rTEXyIxWktBI21fqNI/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/dVYsS-HK5rTEXyIxWktBI21fqNI/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=jmXv7mZqwFs:NnBBE7hdRkI:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=jmXv7mZqwFs:NnBBE7hdRkI:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=jmXv7mZqwFs:NnBBE7hdRkI:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?i=jmXv7mZqwFs:NnBBE7hdRkI:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=jmXv7mZqwFs:NnBBE7hdRkI:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=jmXv7mZqwFs:NnBBE7hdRkI:KwTdNBX3Jqk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?i=jmXv7mZqwFs:NnBBE7hdRkI:KwTdNBX3Jqk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=jmXv7mZqwFs:NnBBE7hdRkI:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=jmXv7mZqwFs:NnBBE7hdRkI:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?i=jmXv7mZqwFs:NnBBE7hdRkI:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=jmXv7mZqwFs:NnBBE7hdRkI:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?i=jmXv7mZqwFs:NnBBE7hdRkI:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=jmXv7mZqwFs:NnBBE7hdRkI:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/SharepointHappenings/~4/8KUyjEHDvxU" height="1" width="1"/&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Phillip S. Wicklund</dc:creator><pubDate>Thu, 22 Jan 2009 23:01:00 GMT</pubDate><category domain="http://philwicklund.com/archive/tags/InfoPath/default.aspx">InfoPath</category><category domain="http://philwicklund.com/archive/tags/SharePoint Development/default.aspx">SharePoint Development</category><feedburner:origLink>http://philwicklund.com/archive/2009/01/22/infopath-and-visual-studio-workflows-–-3-great-tricks.aspx</feedburner:origLink></item><item><title>Version 2.0 of my Virtual Earth Web Part is Available!</title><link>http://feedproxy.google.com/~r/SharepointHappenings/~3/tw50-IGrFeg/version-2-0-of-my-virtual-earth-web-part-is-available.aspx</link><guid isPermaLink="false">/archive/2009/01/13/version-2-0-of-my-virtual-earth-web-part-is-available.aspx</guid><description>&lt;div class="ExternalClassD06E69D3C8DA4662A4F2E88887DC5B66"&gt;&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;It's finally ready!
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;For those who downloaded my web part a year or so ago, it worked perfectly until around October of 2008 when version 4.0 of the virtual earth API either changed or became unsupported. Well, since then I've been working in my free time to get the web part upgraded to the 6.2 version of the virtual earth API. This proved to be no five minute task!
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;My apologies for the delay (sincerest apologies actually – I know it was disappointing for some). But I've finally got it there.
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;Version 2.0 has a couple notable changes from version 1.0:
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;Deploys to the GAC so people won't get the security exceptions
&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;I implemented a time delay between searches. This is because the 6.2 API &amp;quot;moves&amp;quot; the map after it finds something which causes problems when I try capture the lat/long coordinates. In essence, I must wait for the map to finish moving. The time is configurable and the problem is mostly seen when you have a few, tightly grouped addresses.
&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;I minimized the address view and included &amp;quot;plus&amp;quot; symbols to expand the nodes. I had complaints of it becoming unusable if you have more than 5 or so addresses:&lt;br&gt;&lt;img src="http://philwicklund.com/Lists/Photos/011309_1352_Version20of1.png" alt=""&gt;
			&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;There are some known bugs too. If you have a tight grouping of address over a small geographic radius, it will sometimes duplicate the last point. Stay tuned for a version 2.1 when I hope to have this fixed, as well as add functionality to accommodate lan/long entries for our friends who reside in other countries.
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;More information: &lt;a href="http://philwicklund.com/freeware/virtualearth"&gt;http://philwicklund.com/freeware/virtualearth&lt;/a&gt;
		&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;Phil&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/0UmAW0vt5yUQlyG9BPytaDgUcps/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/0UmAW0vt5yUQlyG9BPytaDgUcps/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/0UmAW0vt5yUQlyG9BPytaDgUcps/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/0UmAW0vt5yUQlyG9BPytaDgUcps/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=WOhelxiD"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=MsLiyTnE"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?d=129" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=sidbUh2C"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?i=sidbUh2C" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=oW84C3ki"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?d=54" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=d0ZGX1xy"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?i=d0ZGX1xy" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=qTct14kB"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?d=52" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=VB7O1cWm"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?i=VB7O1cWm" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=y82aytD6"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?i=y82aytD6" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=5gCuEobI"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?d=43" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/SharepointHappenings/~4/tw50-IGrFeg" height="1" width="1"/&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Phillip S. Wicklund</dc:creator><pubDate>Tue, 13 Jan 2009 07:47:00 GMT</pubDate><category domain="http://philwicklund.com/archive/tags/Freeware Releases/default.aspx">Freeware Releases</category><feedburner:origLink>http://philwicklund.com/archive/2009/01/13/version-2-0-of-my-virtual-earth-web-part-is-available.aspx</feedburner:origLink></item><item><title>Phil’s Top 10 Best Practices for Branding SharePoint (Part 6 of 10)</title><link>http://feedproxy.google.com/~r/SharepointHappenings/~3/42_OD0gAryc/phil’s-top-10-best-practices-for-branding-sharepoint-part-6-of-10.aspx</link><guid isPermaLink="false">/archive/2009/01/09/phil’s-top-10-best-practices-for-branding-sharepoint-part-6-of-10.aspx</guid><description>&lt;div class="ExternalClass940D6CC2BEA74F7696ECF6D0DF661053"&gt;&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;It's been many months since my &lt;a href="http://philwicklund.com/archive/2008/06/27/phil’s-top-10-best-practices-for-branding-sharepoint-part-4-amp-5-of-10.aspx"&gt;last branding post&lt;/a&gt; back in June, so I figured I ought to renew my efforts to get this &lt;a href="http://philwicklund.com/archive/2008/06/16/phil’s-top-10-best-practices-for-branding-sharepoint-listed.aspx"&gt;10 part series&lt;/a&gt; published. I left off with best practice number 6, which I will now reveal is &amp;quot;&lt;strong&gt;&lt;em&gt;Use SharePoint Solution Packages to enforce consistency across all the web front ends in the farm&lt;/em&gt;&lt;/strong&gt;&amp;quot;.
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;Now, I'm not going to beat the horse dead on this point because this is a highly documented feature within SharePoint, both the why and the how-to. But I will say that Solutions MUST be in a top 10 branding best practice list!
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;In an average SharePoint engagement where I'm doing some UI customizations, I'd say I end up deploying around 50+ files into the 12 hive. Without solution packages, you're forced to manually copy/paste those files which opens yourself up to mistakes and inconsistencies. Understanding how to use solutions is a MUST for any SharePoint developer.
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;Phil&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/OS7ru5nXWWpBb1EFCV9aaRZQMRs/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/OS7ru5nXWWpBb1EFCV9aaRZQMRs/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/OS7ru5nXWWpBb1EFCV9aaRZQMRs/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/OS7ru5nXWWpBb1EFCV9aaRZQMRs/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=ghRBJN48s9E:-6vk2c9zVC0:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=ghRBJN48s9E:-6vk2c9zVC0:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=ghRBJN48s9E:-6vk2c9zVC0:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?i=ghRBJN48s9E:-6vk2c9zVC0:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=ghRBJN48s9E:-6vk2c9zVC0:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=ghRBJN48s9E:-6vk2c9zVC0:KwTdNBX3Jqk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?i=ghRBJN48s9E:-6vk2c9zVC0:KwTdNBX3Jqk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=ghRBJN48s9E:-6vk2c9zVC0:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=ghRBJN48s9E:-6vk2c9zVC0:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?i=ghRBJN48s9E:-6vk2c9zVC0:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=ghRBJN48s9E:-6vk2c9zVC0:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?i=ghRBJN48s9E:-6vk2c9zVC0:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=ghRBJN48s9E:-6vk2c9zVC0:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/SharepointHappenings/~4/42_OD0gAryc" height="1" width="1"/&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Phillip S. Wicklund</dc:creator><pubDate>Fri, 09 Jan 2009 07:02:00 GMT</pubDate><category domain="http://philwicklund.com/archive/tags/Best Practices/default.aspx">Best Practices</category><category domain="http://philwicklund.com/archive/tags/SharePoint Development/default.aspx">SharePoint Development</category><feedburner:origLink>http://philwicklund.com/archive/2009/01/09/phil’s-top-10-best-practices-for-branding-sharepoint-part-6-of-10.aspx</feedburner:origLink></item><item><title>My Thoughts: On SharePoint and the Economy</title><link>http://feedproxy.google.com/~r/SharepointHappenings/~3/fjji475ZmXc/my-thoughts-on-sharepoint-and-the-economy.aspx</link><guid isPermaLink="false">/archive/2009/01/06/my-thoughts-on-sharepoint-and-the-economy.aspx</guid><description>&lt;div class="ExternalClassE401507611EB4DB3888022C4E85F4E24"&gt;
&lt;p&gt;&lt;img alt="" src="http://philwicklund.com/Lists/Photos/010709_0231_MyThoughtsO1.png" align="right"&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;There are a lot of people talking on the WWW about the economy these days. You'll see things like, &amp;quot;&lt;a href="http://money.cnn.com/2009/01/06/news/economy/10.tips.fortune/index.htm?postversion=2009010710"&gt;Keep your job: a 10 point survival guide&lt;/a&gt;&amp;quot;, or &amp;quot;&lt;a href="http://money.cnn.com/2008/10/22/pf/saving/toptips/index.htm?postversion=2008102212"&gt;Protect yourself in a recession&lt;/a&gt;&amp;quot;. While I don't think these sorts of commentary are destructive, I do think if you're all of a sudden altering your work habits because of a fear of losing your job, you may already be too late in your thinking. The concept of working hard is not dependent upon the status of the economy in my opinion. Good employees are good before things get bad. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;With that said, I do have a few economical points to mention around SharePoint in a tough economy, and why I like being in this space during these difficult times. This is not a guide to becoming &amp;quot;irreplaceable&amp;quot; like other commentaries suggest you ought to strive toward (since that's a fool's errand in my opinion – nobody is irreplaceable). These thoughts are more simplistic in nature than that. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;&lt;strong&gt;Why I'm glad to be in the SharePoint space: &lt;/strong&gt;&lt;em&gt;In a down economy, SharePoint still sells &lt;/em&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;SharePoint is a powerful tool, even out of box. What's more important for a business during a recession is how SharePoint provides a strong ROI immediately. For a relatively small investment, you can introduce a tool that greatly improves the collaborative efforts of your employees, which reduces costs and improves efficiency (and in some cases boosts revenue!). &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;All that boils down to is a tool that sells well. In a bad economy, I want to be employed around a technology that is still selling. Tools with strong ROI (low initial investment, short implementation time, and lots of value to the business) are such tools. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;Case in point: &lt;a href="http://rbaconsulting.com/"&gt;RBA Consulting&lt;/a&gt; (my employer) has seen outstanding utilization marks in its SharePoint practice during Q4 of 2008. We've even had to pass up on work because we're not staffed for it. This is partly because of RBA's reputation and strong client relationships, but also because of the strong demand for SharePoint in general, even during a bad economy. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;&lt;strong&gt;Why I'm glad to be a consultant: &lt;/strong&gt;&lt;em&gt;In a down economy, consulting still sells &lt;/em&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;When you see budget cuts, the stereotype typically is the consultants are the first to get cut. While I believe this is largely true, I also believe they're the first to come back when there is work that needs doing. My point is that when things get especially bad in a company, full time employees become a less and less viable option, and consultants become more and more attractive. After all, the IT department doesn't just stop on a dime. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;SharePoint largely supports this thinking because of its relatively short project lifecycle. If you're up against a yearlong project, a full time employee may be a better buy (if a yearlong project survives the budget cuts that is). However, if you're looking at a 4-6 week project, demand for consultants skyrockets compared to full timers. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;&lt;strong&gt;Summary: &lt;/strong&gt;&lt;em&gt;To me, if you're a developer in a recession, being a SharePoint consultant is one of the best places to be. &lt;/em&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;Well, that's my $0.02 folks! Let me know if you agree/disagree! &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;Sincerely, &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;Phil &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;PS: as I mentioned, &lt;a href="http://rbaconsulting.com/Opportunities.aspx"&gt;RBA Consulting&lt;/a&gt; is eagerly looking to hire strong SharePoint developers given the demand that I previously mentioned. If you want to be a part of a great top-notch SharePoint team, and within a great company culture, consider &lt;a href="mailto:jobs@rbaconsulting.com"&gt;applying today&lt;/a&gt;! Note: we office out of Dallas and Minneapolis/St. Paul. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;a href="http://rbaconsulting.com/Documents/BPTW 2007 RBA.pdf" target="_blank"&gt;&lt;img alt="" src="http://philwicklund.com/Lists/Photos/010709_0231_MyThoughtsO2.png" border="0"&gt;&lt;/a&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt; &lt;/span&gt;&lt;/p&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/p9_E3q43fqepzNcOdRYTbj5mW50/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/p9_E3q43fqepzNcOdRYTbj5mW50/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/p9_E3q43fqepzNcOdRYTbj5mW50/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/p9_E3q43fqepzNcOdRYTbj5mW50/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=5rrnVDkH"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=L7oq6xtj"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?d=129" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=6n6tjhFT"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?i=6n6tjhFT" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=uXQTnyFl"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?d=54" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=mRi7kCQn"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?i=mRi7kCQn" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=PsUfyUQh"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?d=52" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=n6RiEpA3"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?i=n6RiEpA3" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=vqWvi3QR"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?i=vqWvi3QR" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=eFbAYIdE"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?d=43" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/SharepointHappenings/~4/fjji475ZmXc" height="1" width="1"/&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Phillip S. Wicklund</dc:creator><pubDate>Tue, 06 Jan 2009 20:26:00 GMT</pubDate><category domain="http://philwicklund.com/archive/tags/Random/default.aspx">Random</category><feedburner:origLink>http://philwicklund.com/archive/2009/01/06/my-thoughts-on-sharepoint-and-the-economy.aspx</feedburner:origLink></item><item><title>Speaking at the Twin Cities SharePoint Code Camp Again</title><link>http://feedproxy.google.com/~r/SharepointHappenings/~3/FyHXjHfkuvo/speaking-at-the-twin-cities-sharepoint-code-camp-again.aspx</link><guid isPermaLink="false">/archive/2009/01/06/speaking-at-the-twin-cities-sharepoint-code-camp-again.aspx</guid><description>&lt;div class="ExternalClass1F49B9E0D12C418FA5BBE1845402A18F"&gt;
&lt;p&gt;&lt;img alt="" src="http://philwicklund.com/Lists/Photos/010709_0018_Speakingatt1.png"&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;I'll be speaking at the Twin Cities SharePoint Code Camp on &lt;span style="color:black"&gt;January 24, 2009 from 8:00 - 4:45 at New Horizons of MN&lt;/span&gt;! &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;The code camp is FREE and you can &lt;a href="http://www.nhmn.com/Courses/CrsDetail.aspx?C=NHTCSPCamp2"&gt;register&lt;/a&gt; through New Horizons. There are many &lt;a href="http://www.digitalconcourse.com/getdigi/DC4Main.asp?p=210&amp;amp;ConfCode=MNSPCAMP01242009&amp;amp;dSeq=5652"&gt;great presentations&lt;/a&gt; focused on the SharePoint platform, including 3 presentations from my fellow &lt;a href="http://www.rbaconsulting.com/"&gt;RBA Consulting&lt;/a&gt; colleagues. I presented at this event &lt;a href="http://philwicklund.com/archive/2008/05/15/speaking-at-the-twin-cities-sharepoint-code-camp-in-june.aspx"&gt;last June&lt;/a&gt; and it was GREAT! If I remember, there were like 150 attendees and 24 different sessions. I expect this year to be even bigger! &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;Here's the presentation I'll be giving: &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;&lt;strong&gt;Leveraging Custom InfoPath Forms within your Visual Studio SharePoint Workflows&lt;br&gt;&lt;/strong&gt;&lt;em&gt;Visual Studio workflows and InfoPath Forms Services are a powerful team for you company's business processes. Two examples of how you can leverage InfoPath within your custom Visual Studio workflows will be demonstrated. Firstly, how to deploy a workflow enabled form into a form library programmatically, and secondly, how to leverage an InfoPath form to collect custom workflow initiation data will be demonstrated.&lt;/em&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;   &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;HOPE TO SEE YOU THERE!!!! &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;Phil &lt;/span&gt;&lt;/p&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/tBtSVYNy7xc4Buy2Ip88Oa3n8vk/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/tBtSVYNy7xc4Buy2Ip88Oa3n8vk/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/tBtSVYNy7xc4Buy2Ip88Oa3n8vk/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/tBtSVYNy7xc4Buy2Ip88Oa3n8vk/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=c8lYXHh1"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=SshwTbTP"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?d=129" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=3EAbfQm1"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?i=3EAbfQm1" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=3mJvMau5"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?d=54" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=vtzmeWVY"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?i=vtzmeWVY" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=k53UivPg"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?d=52" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=vbFJ9ESV"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?i=vbFJ9ESV" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=in02nlBH"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?i=in02nlBH" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=Ym9LKz1X"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?d=43" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/SharepointHappenings/~4/FyHXjHfkuvo" height="1" width="1"/&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Phillip S. Wicklund</dc:creator><pubDate>Tue, 06 Jan 2009 18:13:00 GMT</pubDate><category domain="http://philwicklund.com/archive/tags/Random/default.aspx">Random</category><category domain="http://philwicklund.com/archive/tags/Speaking Events/default.aspx">Speaking Events</category><feedburner:origLink>http://philwicklund.com/archive/2009/01/06/speaking-at-the-twin-cities-sharepoint-code-camp-again.aspx</feedburner:origLink></item><item><title>Setting up Load Balancing on a Server 2008 SharePoint Farm</title><link>http://feedproxy.google.com/~r/SharepointHappenings/~3/olrcQvCbatQ/setting-up-network-load-balancing-on-a-server-2008-sharepoint-farm.aspx</link><guid isPermaLink="false">/archive/2009/01/06/setting-up-network-load-balancing-on-a-server-2008-sharepoint-farm.aspx</guid><description>&lt;div class="ExternalClass9C62BF6A24184C80B85B908DBD8442D9"&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;Here are some steps I put together for setting up load balancing on a SharePoint farm with Windows Server 2008. There are a lot of resources on the www about windows network load balancer (NLB), but since I like screen shots, I figured it was worth posting. Also, as an FYI Joel has a &lt;a href="http://blogs.msdn.com/joelo/archive/2007/01/05/nlb-network-load-balancing-and-sharepoint-troubleshooting-and-configuration-tips.aspx"&gt;good post&lt;/a&gt; for troubleshooting NLB as well as some &amp;quot;tips&amp;quot; that are worth perusing through. It's an older post, but I don't think NLB has changed much with Windows Server 2008 from 2003. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;Let the steps to configure load balancing commence… &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:14pt;font-family:Verdana"&gt;&lt;strong&gt;1. Install Network Load Balancing Feature on each Web Front End &lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin-left:18pt"&gt;&lt;span style="font-family:Verdana"&gt;&lt;span style="font-size:12pt"&gt;On each front end in the farm, within Server Manager, add the NLB feature:&lt;br&gt;&lt;img alt="" src="http://philwicklund.com/Lists/Photos/010609_2236_SettingupNe1.png"&gt;&lt;br&gt;&lt;br&gt;Click Install.&lt;br&gt;&lt;br&gt;Wait a bit:&lt;br&gt;&lt;img alt="" src="http://philwicklund.com/Lists/Photos/010609_2236_SettingupNe2.png"&gt;&lt;br&gt;&lt;br&gt;&lt;img alt="" src="http://philwicklund.com/Lists/Photos/010609_2236_SettingupNe3.png"&gt;&lt;br&gt;&lt;/span&gt;&lt;span style="font-size:14pt"&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin-left:18pt"&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Verdana"&gt;&lt;span style="font-size:14pt"&gt;&lt;strong&gt;2. Add a New Cluster&lt;/strong&gt;&lt;/span&gt;&lt;span style="font-size:12pt"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin-left:18pt"&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;Through the start menu, Administrator Tools, click Network Load Balancing Manager:&lt;br&gt;&lt;img alt="" src="http://philwicklund.com/Lists/Photos/010609_2236_SettingupNe4.png"&gt;&lt;br&gt;&lt;br&gt;Right click Network Load Balancing Clusters, and choose New Cluster:&lt;br&gt;&lt;img alt="" src="http://philwicklund.com/Lists/Photos/010609_2236_SettingupNe5.png"&gt;&lt;br&gt;&lt;br&gt;Type the IP address of one of the web fronts in the farm to serve as the first host in the cluster:&lt;br&gt;&lt;img alt="" src="http://philwicklund.com/Lists/Photos/010609_2236_SettingupNe6.png"&gt;&lt;br&gt;&lt;br&gt;Click Connect.&lt;br&gt;&lt;br&gt;Click next.&lt;br&gt;&lt;br&gt;Leave the defaults and click next again:&lt;br&gt;&lt;img alt="" src="http://philwicklund.com/Lists/Photos/010609_2236_SettingupNe7.png"&gt;&lt;br&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin-left:18pt"&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:14pt;font-family:Verdana"&gt;&lt;strong&gt;3. Set Cluster IP Address &lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin-left:18pt"&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;&lt;br&gt;This IP Address is the dedicated IP address for the cluster and is what DNS will point to, to get load balanced between the front ends. On the Cluster IP Addresses box, click Add and type an available dedicated IP address and subnet mask:&lt;br&gt;&lt;br&gt;&lt;img alt="" src="http://philwicklund.com/Lists/Photos/010609_2236_SettingupNe8.png"&gt;&lt;br&gt;&lt;br&gt;Optionally, you can setup many clusters IPs for fault tolerance purposes, but for most cases you'll just have one:&lt;br&gt;&lt;img alt="" src="http://philwicklund.com/Lists/Photos/010609_2236_SettingupNe9.png"&gt;&lt;br&gt;&lt;br&gt;Click next. &lt;/span&gt;&lt;/p&gt;
&lt;p style="margin-left:18pt"&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;&lt;strong&gt;4. Specify Cluster Parameters &lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin-left:18pt"&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;Select the Multicast operation mode, and click next:&lt;br&gt;&lt;br&gt;&lt;img alt="" src="http://philwicklund.com/Lists/Photos/010609_2236_SettingupNe10.png"&gt;&lt;br&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:14pt;font-family:Verdana"&gt;&lt;strong&gt;5. Specify Port Rules &lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin-left:36pt"&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;Click edit on the default port rule:&lt;br&gt;&lt;img alt="" src="http://philwicklund.com/Lists/Photos/010609_2236_SettingupNe11.png"&gt;&lt;br&gt;&lt;br&gt;Deselect the &amp;quot;All&amp;quot; checkbox, and choose the Network filtering mode:&lt;br&gt;&lt;img alt="" src="http://philwicklund.com/Lists/Photos/010609_2236_SettingupNe12.png"&gt;&lt;br&gt;&lt;br&gt;Click Ok.&lt;br&gt;&lt;br&gt;Click Finish.&lt;br&gt;&lt;br&gt;After finish, the NLB manager will show it has begun the configurations changes. If you're in a remote desktop to the server, you'll lose your connection temporarily while it re-configures:&lt;br&gt;&lt;img alt="" src="http://philwicklund.com/Lists/Photos/010609_2236_SettingupNe13.png"&gt;&lt;br&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:14pt;font-family:Verdana"&gt;&lt;strong&gt;6. Add Any Additional Hosts to the Cluster &lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin-left:36pt"&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;Now that the cluster is ready to go, you can add additional hosts/web front ends. Right click on the cluster IP address and click Add Host To Cluster and type the IP of another web front end in the farm. Repeat until they're all added.&lt;br&gt;&lt;br&gt;&lt;img alt="" src="http://philwicklund.com/Lists/Photos/010609_2236_SettingupNe14.png"&gt;&lt;br&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;Note: if you get &amp;quot;Could not locate NLB on the specified computer&amp;quot; you must first install the load balancing manager feature. See step 1. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;Phil&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/TjFIeP6jXFlLUkEqeBHwWahFmMk/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/TjFIeP6jXFlLUkEqeBHwWahFmMk/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/TjFIeP6jXFlLUkEqeBHwWahFmMk/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/TjFIeP6jXFlLUkEqeBHwWahFmMk/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=ZzH9n1d5"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=p2Wja498"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?d=129" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=J5cnG5SO"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?i=J5cnG5SO" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=Wm5P4kBt"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?d=54" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=P1jGFmwd"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?i=P1jGFmwd" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=1kx3UgCt"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?d=52" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=Af4reK44"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?i=Af4reK44" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=HyBSvAc0"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?i=HyBSvAc0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=mN9FeW8g"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?d=43" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/SharepointHappenings/~4/olrcQvCbatQ" height="1" width="1"/&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Phillip S. Wicklund</dc:creator><pubDate>Tue, 06 Jan 2009 16:32:00 GMT</pubDate><category domain="http://philwicklund.com/archive/tags/Infrastructure/default.aspx">Infrastructure</category><feedburner:origLink>http://philwicklund.com/archive/2009/01/06/setting-up-network-load-balancing-on-a-server-2008-sharepoint-farm.aspx</feedburner:origLink></item><item><title>Error publishing project server workspace from project client</title><link>http://feedproxy.google.com/~r/SharepointHappenings/~3/77-wvwfVnqI/error-publishing-project-server-workspace-from-project-client.aspx</link><guid isPermaLink="false">/archive/2009/01/02/error-publishing-project-server-workspace-from-project-client.aspx</guid><description>&lt;div class="ExternalClass11D3E4CD2CCF435CB2F00A1D4DC30E55"&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;I was setting up a project server web access site, and trying to publish new project workspaces to the server via the project client. It would publish just fine, however, the workspace wouldn't get provisioned correctly. I took a look at the event log on the project server and saw this event: &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Courier New"&gt;Standard Information:PSI Entry Point: &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Courier New"&gt;Project User: CONTOSO\spservice &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Courier New"&gt;Correlation Id: df195c38-5203-4ep1-a1hc-36376i6fe03l &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Courier New"&gt;PWA Site URL: http://contoso.com/project &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Courier New"&gt;SSP Name: ContosoPortal_SSP &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Courier New"&gt;PSError: GeneralQueueJobFailed (26000) &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Courier New"&gt;A queue job has failed. This is a general error logged by the Project Server Queue everytime a job fails - for effective troubleshooting use this error message with other more specific error messages (if any), the Operations guide (which documents more details about queued jobs) and the trace log (which could provide more detailed context). More information about the failed job follows. GUID of the failed job: 77f17dbd-4085-4aab-8dc0-8638b3f06c6d. Name of the computer that processed this job: EXTWA03 (to debug further, you need to look at the trace log from this computer). Failed job type: ReportingWSSSync. Failed sub-job type: WSSSyncMessageEx. Failed sub-job ID: 1. Stage where sub-job failed: (this is useful when one sub-job has more than one logical processing stages). &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;This event didn't do anything to help me, so I turned on verbose logging for the Project Server Queue category in central administration, operations. After verbose logging was enabled, I published again from the client which spewed a huge log. By searching on the project name, in this case &amp;quot;Phil&amp;quot;, I found a more detailed error: &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Courier New"&gt;Possible mismatch between the reported error with code = 0x81070504 and message: &amp;quot;There is no Web named &amp;quot;/project/phil&amp;quot;.&amp;quot; and the returned error with code 0x80070002. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;Not much here either, however, after hitting search a few more times I noticed an error saying a feature file was missing. Turns out I had developed a custom feature for my workspace, and those feature files were not getting deployed to my project server, and was only getting deployed to my web front ends. I resolved the issue by enabling the application server service on the project server box. This deployed those feature files to the project server, because they were wrapped in a solution package. Now my projects publish perfectly! &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;It was a random issue – but maybe someone else in the WWW will benefit from what it took for me to resolve… &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;Phil&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/KTpJKt6DT4lbJAvUWeL0SzQbRXU/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/KTpJKt6DT4lbJAvUWeL0SzQbRXU/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/KTpJKt6DT4lbJAvUWeL0SzQbRXU/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/KTpJKt6DT4lbJAvUWeL0SzQbRXU/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=kecRQyxK"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=OtWaRpmP"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?d=129" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=6hwESd7K"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?i=6hwESd7K" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=uhan4oOW"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?d=54" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=tU3tvGVN"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?i=tU3tvGVN" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=J4ErjsUx"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?d=52" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=m8RVAIhI"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?i=m8RVAIhI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=GTvVSrEU"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?i=GTvVSrEU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=FzcCfiDT"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?d=43" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/SharepointHappenings/~4/77-wvwfVnqI" height="1" width="1"/&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Phillip S. Wicklund</dc:creator><pubDate>Fri, 02 Jan 2009 13:48:00 GMT</pubDate><category domain="http://philwicklund.com/archive/tags/SharePoint Development/default.aspx">SharePoint Development</category><category domain="http://philwicklund.com/archive/tags/Project Server/default.aspx">Project Server</category><feedburner:origLink>http://philwicklund.com/archive/2009/01/02/error-publishing-project-server-workspace-from-project-client.aspx</feedburner:origLink></item><item><title>How to remove the custom columns off Wiki pages</title><link>http://feedproxy.google.com/~r/SharepointHappenings/~3/r5Si2IMaTq0/how-to-remove-the-custom-columns-off-wiki-pages.aspx</link><guid isPermaLink="false">/archive/2008/12/29/how-to-remove-the-custom-columns-off-wiki-pages.aspx</guid><description>&lt;div class="ExternalClass49FBDAD717344BF2A99DFBBA8DDDB828"&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;I was building a SharePoint wiki that utilizes custom security on each page depending on who the user is. To programmatically assign the permissions, I leveraged custom columns on the pages to identify what permissions to set. The problem is, whenever you create custom columns in a wiki, those columns show up on all the pages and you can't disable it through the UI. See below: &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="" src="http://philwicklund.com/Lists/Photos/122908_1832_Howtoremove1.png"&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;It's really easy to remove these columns from showing on the pages. Start by editing the wkpstd.aspx page under DocumentTemplates: &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;img alt="" src="http://philwicklund.com/Lists/Photos/122908_1832_Howtoremove2.png"&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;Find the PlaceHolderMain content place holder, and therein, delete the table containing the ListFieldIterator control: &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;img alt="" src="http://philwicklund.com/Lists/Photos/122908_1832_Howtoremove3.png"&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;That's it! &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;Phil &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;&amp;lt;update 1/6/09&amp;gt; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;I got some good feedback from a few individuals on a few more options to removing the columns. Ray Gaida mentioned you can override a CSS style to remove it. Just drop a content editor web part on the page with the following style in it: &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;&amp;lt;style&amp;gt;&lt;br&gt;.ms-formbody{&lt;br&gt;display:none;&lt;br&gt;}&lt;br&gt;&amp;lt;/style&amp;gt; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;Also, &lt;span style="color:#494949"&gt;Keith Dahlby mentioned a programmatic way to hide the columns by changing the ShowInDisplayForm field property to false. Read more &lt;a href="http://solutionizing.net/2008/12/29/hiding-wiki-library-custom-columns/"&gt;&lt;/a&gt;&lt;/span&gt;here&lt;span style="color:#494949"&gt;. &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;color:#494949;font-family:Verdana"&gt;Thanks for the tips guys! &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;&amp;lt;/update&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/UbmkFlx8oKJ_LfsOH-XPqOLV2u8/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/UbmkFlx8oKJ_LfsOH-XPqOLV2u8/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/UbmkFlx8oKJ_LfsOH-XPqOLV2u8/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/UbmkFlx8oKJ_LfsOH-XPqOLV2u8/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=qwJZdtqB"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=2epnEIPO"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?d=129" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=jBEpHBbY"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?i=jBEpHBbY" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=kKsR2d1O"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?d=54" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=lZyLOIiN"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?i=lZyLOIiN" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=SllVqY98"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?d=52" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=5NvV7i2l"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?i=5NvV7i2l" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=pBG6jIwv"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?i=pBG6jIwv" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=ARQgA48f"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?d=43" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/SharepointHappenings/~4/r5Si2IMaTq0" height="1" width="1"/&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Phillip S. Wicklund</dc:creator><pubDate>Mon, 29 Dec 2008 12:27:00 GMT</pubDate><category domain="http://philwicklund.com/archive/tags/SharePoint Development/default.aspx">SharePoint Development</category><feedburner:origLink>http://philwicklund.com/archive/2008/12/29/how-to-remove-the-custom-columns-off-wiki-pages.aspx</feedburner:origLink></item><item><title>Service Unavailable – HTTP Error 503. The service is unavailable.</title><link>http://feedproxy.google.com/~r/SharepointHappenings/~3/zZ_vtT1fMYw/service-unavailable-–-http-error-503-the-service-is-unavailable-.aspx</link><guid isPermaLink="false">/archive/2008/12/22/service-unavailable-–-http-error-503-the-service-is-unavailable-.aspx</guid><description>&lt;div class="ExternalClassF2A9BBFDB63B4957AF3551FE28841068"&gt;
&lt;p&gt;&lt;img alt="" src="http://philwicklund.com/Lists/Photos/122208_1651_ServiceUnav1.png"&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;While this error isn't terribly uncommon – the event log spewed something quite interesting that I didn't see much on the blogs about. All of a sudden on my web front ends I was getting this HTTP error 503. So, I quickly jumped over to the application event log and noticed the more detailed error: &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;&amp;quot;Windows Process Activation Service (WAS) encountered a failure when it started a worker process to serve the application pool&amp;quot; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="" src="http://philwicklund.com/Lists/Photos/122208_1651_ServiceUnav2.png"&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt"&gt;&lt;span style="font-family:Verdana"&gt;For others out there that see this error, my problem was the password for my service account had expired (embarrassing mistake &lt;/span&gt;&lt;span style="font-family:Wingdings"&gt;J&lt;/span&gt;&lt;span style="font-family:Verdana"&gt;). To fix it I had to: &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ol style="margin-left:54pt"&gt;
&lt;li&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;Change the service account so that the password never expires. &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;Reset the password to exactly as it was before it expired. &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;Start the application pool(s) in IIS. &lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;That did the trick! &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;Phil&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/kNEG6j0vkKsgX6mAcvTNgowLxA0/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/kNEG6j0vkKsgX6mAcvTNgowLxA0/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/kNEG6j0vkKsgX6mAcvTNgowLxA0/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/kNEG6j0vkKsgX6mAcvTNgowLxA0/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=VCtz3iZubfc:-CpNICesvI8:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=VCtz3iZubfc:-CpNICesvI8:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=VCtz3iZubfc:-CpNICesvI8:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?i=VCtz3iZubfc:-CpNICesvI8:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=VCtz3iZubfc:-CpNICesvI8:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=VCtz3iZubfc:-CpNICesvI8:KwTdNBX3Jqk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?i=VCtz3iZubfc:-CpNICesvI8:KwTdNBX3Jqk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=VCtz3iZubfc:-CpNICesvI8:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=VCtz3iZubfc:-CpNICesvI8:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?i=VCtz3iZubfc:-CpNICesvI8:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=VCtz3iZubfc:-CpNICesvI8:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?i=VCtz3iZubfc:-CpNICesvI8:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=VCtz3iZubfc:-CpNICesvI8:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/SharepointHappenings/~4/zZ_vtT1fMYw" height="1" width="1"/&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Phillip S. Wicklund</dc:creator><pubDate>Mon, 22 Dec 2008 10:46:00 GMT</pubDate><category domain="http://philwicklund.com/archive/tags/Infrastructure/default.aspx">Infrastructure</category><feedburner:origLink>http://philwicklund.com/archive/2008/12/22/service-unavailable-–-http-error-503-the-service-is-unavailable-.aspx</feedburner:origLink></item><item><title>All my OK Buttons in SharePoint are throwing javascript errors!</title><link>http://feedproxy.google.com/~r/SharepointHappenings/~3/b5G3686VyxI/all-my-ok-buttons-in-sharepoint-are-throwing-javascript-errors.aspx</link><guid isPermaLink="false">/archive/2008/12/11/all-my-ok-buttons-in-sharepoint-are-throwing-javascript-errors.aspx</guid><description>&lt;div class="ExternalClass3F4158077F2B451F9F4C189FE23FCDA0"&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;All of a sudden all my ok buttons in all my SharePoint sites started throwing javascript errors whenever they were clicked. For example, if I was in a SharePoint list and I wanted to add a new list item, it would break when I clicked ok. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;I dug into the issue deeper by enabling javascript debugging in my IE browser, and noticed it was throwing an &amp;quot;Object Expected&amp;quot; javascript error: &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;img alt="" src="http://philwicklund.com/Lists/Photos/121108_1827_AllmyOKButt1.png"&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;Well, it didn't help any to debug it, but after wasting a few hours I figured out what was causing the problem. It turns out that I had added a script tag into the head of my master page. Nothing crazy about that, or so you'd think, but for some reason it needed to be well formed: &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt"&gt;&lt;span style="font-family:Verdana"&gt;&lt;strong&gt;Breaks all the OK Buttons:&lt;/strong&gt; &lt;/span&gt;&lt;span style="font-family:Courier New"&gt;&amp;lt;script type=&amp;quot;text/javascript&amp;quot; src=&amp;quot;/_layouts/ custom/custom.js&amp;quot; /&amp;gt;&lt;/span&gt;&lt;span style="font-family:Verdana"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt"&gt;&lt;span style="font-family:Verdana"&gt;&lt;strong&gt;The Fix:&lt;/strong&gt; &lt;/span&gt;&lt;span style="font-family:Courier New"&gt;&amp;lt;script type=&amp;quot;text/javascript&amp;quot; src=&amp;quot;/_layouts/custom/custom.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;/span&gt;&lt;span style="font-family:Verdana"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;I was blown away when I realized this was the problem. Maybe there were some javascript 101 topics I failed to learn in college or something… (either that or SharePoint 101) &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;Phil &lt;/span&gt;&lt;/p&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/iglDgGtL0qcoz0NY-CyZdyfSobI/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/iglDgGtL0qcoz0NY-CyZdyfSobI/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/iglDgGtL0qcoz0NY-CyZdyfSobI/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/iglDgGtL0qcoz0NY-CyZdyfSobI/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=dOm4gaEo"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=r2gedn2E"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?d=129" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=EBnyFy0j"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?i=EBnyFy0j" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=oCgIi0Gs"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?d=54" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=N4iqOpWH"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?i=N4iqOpWH" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=o08Qs3Cz"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?d=52" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=j07v5HBj"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?i=j07v5HBj" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=l9q28snb"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?i=l9q28snb" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=MrTBQJyY"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?d=43" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/SharepointHappenings/~4/b5G3686VyxI" height="1" width="1"/&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Phillip S. Wicklund</dc:creator><pubDate>Thu, 11 Dec 2008 12:23:00 GMT</pubDate><category domain="http://philwicklund.com/archive/tags/SharePoint Development/default.aspx">SharePoint Development</category><feedburner:origLink>http://philwicklund.com/archive/2008/12/11/all-my-ok-buttons-in-sharepoint-are-throwing-javascript-errors.aspx</feedburner:origLink></item><item><title>Network and Domain Architecture for Client Portals</title><link>http://feedproxy.google.com/~r/SharepointHappenings/~3/jHDdMBoIY90/network-and-domain-architecture-for-client-portals.aspx</link><guid isPermaLink="false">/archive/2008/11/12/network-and-domain-architecture-for-client-portals.aspx</guid><description>&lt;div class="ExternalClass535274723D1544569F84CDC7CCE3F54E"&gt;
&lt;p&gt;&lt;span style="font-size:12pt"&gt;&lt;span style="font-family:Verdana"&gt;I recently helped put together a client &amp;amp; partner portal implementation with SharePoint that had a very interesting network and domain architecture that I figured was worth blogging about. Not only was it a unique architecture, but the business requirements that lead us to make those decisions were quite fun to work through as well. This post details the network and active directory domain architectures that were implemented to meet the needs of this client (will be referred to as Contoso, since I can never tell when it's appropriate to refer to clients directly &lt;/span&gt;&lt;span style="font-family:Wingdings"&gt;J&lt;/span&gt;&lt;span style="font-family:Verdana"&gt;). &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;&lt;strong&gt;Key Business Requirements driving Network Architecture:&lt;br&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;&lt;em&gt;BR1&lt;/em&gt;:    Clients and/or partners shall access the portal from either inside their company's network OR from the internet. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;&lt;em&gt;BR2&lt;/em&gt;:     The clients and partners shall be able to manage their own users, who will have access to the portal from within their company, and what role within their company they fulfill. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;&lt;em&gt;BR3&lt;/em&gt;:    The user's role within the client or partner company will impact what the user can see and do within the portal. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;&lt;em&gt;BR4&lt;/em&gt;:    Contoso will not take on the routine maintenance of user accounts, neither user account creation nor password maintenance. This administration must be completed by the client or partner. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;&lt;em&gt;BR5&lt;/em&gt;:    Clients and Partners shall not be able to view or edit user accounts from other clients or partners within the portal or user stores. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;&lt;strong&gt;ISA Server? Federated Services? Extranet Forest? &lt;br&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;Deciding on what network architecture to choose for this implementation was a rather interesting process, because there are a lot of pros and cons to decide between. There wasn't a &amp;quot;silver bullet&amp;quot;, you could say. For that reason, I am not going to &lt;a href="http://andrewconnell.com/blog/archive/2008/10/09/NOW-AVAILABLE-MSDN-Prescriptive-Guidance-for-MOSS-2007-WCM-Sites.aspx"&gt;proclaim&lt;/a&gt; a &amp;quot;best practice&amp;quot;, since there are a lot of unique variables every company will have to weigh before making a network decision if they are in a similar circumstance. Rather, I'll just walk through our decision making process. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;A few different solutions that were considered were ISA Server, Active Directory Federation Services, and an Extranet forest. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;&lt;strong&gt;&lt;em&gt;ISA Server&lt;br&gt;&lt;/em&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;ISA Server was not implemented for two reasons. First being that they were very adamant against the use of software firewalls, and secondly, they already were heavily invested in Cisco hardware firewall solutions. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;&lt;strong&gt;&lt;em&gt;Active Directory Federation Services (ADFS)&lt;br&gt;&lt;/em&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;ADFS was the first technology that came to mind when considering how to implement this architecture. The big reason ADFS was an option is because we did not want to manage user accounts in any way, shape, or form. ADFS helps solve this issue because the user logs into their domain, and is issued a token. That token is passed to any &lt;a href="http://blogs.msdn.com/sharepoint/archive/2007/02/15/how-to-use-adfs-to-turn-moss-2007-into-a-claims-aware-application.aspx"&gt;claims aware&lt;/a&gt; application (MOSS) within the federation, and thus they will not need a new user account even if they are in separate domains which are not connected with a trust. Pretty cool right? Take a look at this diagram showing the handshake it takes to authenticate to SharePoint, and you might have some doubts: &lt;/span&gt;&lt;/p&gt;
&lt;p style="text-align:center"&gt;&lt;img alt="" src="http://philwicklund.com/Lists/Photos/111208_1839_NetworkandD1.png"&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;It turns out that it takes 11 handshakes to get that token issued and accepted by the SharePoint portal! Additionally, you'll notice on the diagram that each company in the federation will require a minimum of two Federation servers setup for this to even work. Anyone knows if you're working with clients, or even partners, getting them on board to buy into new hardware will take more than a smile. This was reason enough for us to pass up on ADFS, despite the significant gains it provides on the user management side of things (or the lack thereof, you could say). To make things even worse, to my knowledge with ADFS, a user would have to VPN into their company's network before they'd be able to access any of our resources. For us, this wasn't acceptable (BR1) because we need to support users coming I from the internet. Step 1 in the diagram above shows the user going into their network to get a token, before they can access resources in the other company. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;&lt;strong&gt;&lt;em&gt;Extranet Forest&lt;br&gt;&lt;br&gt;&lt;/em&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;Since Federated Services was ruled out because of its complexities and improbable client and partner adoption, an extranet forest is the next best option, because if we have to house users, we want them separated from our internal domains. An extranet forest features a forest inside the DMZ separated by a firewall from the internal forest and network, and obviously the internet. There is a one way trust between the extranet forest and the internal forest so the extranet servers can access internal resources like databases. Ports 389, 443, and 445 (445 only during trust creation) will be opened to allow for this traffic to flow between forests. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;As I said, user account management was a big item that we didn't want to take on (BR2). It's possible to setup one way trusts between the extranet forest and the partner's forest. With that, the partners/clients will have access to the extranet forest's active directory to manage their own user accounts. This sounds great at first, but poses a big disadvantage for two reasons: &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;ol style="margin-left:54pt"&gt;
&lt;li&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;Partners/Clients will need to setup this AD trust – this could be a significant security hurdle if getting audited is a concern for the partner or client. &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;User account passwords and other meta-data won't be synchronized if it changes in the partners native domain. &lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;This is the trade off. With ADFS, you won't need to worry about these two items because the user logs into their own domain, and is issued a token that is transferred to the &lt;a href="http://blogs.msdn.com/sharepoint/archive/2007/02/15/how-to-use-adfs-to-turn-moss-2007-into-a-claims-aware-application.aspx"&gt;Claims Aware&lt;/a&gt; SharePoint portal. However, we already decided &lt;img alt="" src="http://philwicklund.com/Lists/Photos/111208_1839_NetworkandD2.png" align="right"&gt;against ADFS for various other reasons that outweighed these, but we still need a solution nevertheless. This is where &lt;a href="http://www.quest.com/activeroles-server/"&gt;ActiveRoles Server&lt;/a&gt; from &lt;a href="http://www.quest.com/"&gt;Quest&lt;/a&gt; comes into play. Here's the description Quest gives for their product: &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:10pt;font-family:Verdana"&gt;&lt;em&gt;&lt;span style="color:#323232"&gt;&amp;quot;ActiveRoles Server helps you manage, automatically provision, reprovision and, more importantly, deprovision users quickly, efficiently and securely in Active Directory, &lt;a href="http://www.quest.com/activeroles-server/adlds.aspx"&gt;&lt;/a&gt;&lt;/span&gt;&lt;span style="color:#002776"&gt;AD LDS (formerly ADAM)&lt;/span&gt;&lt;span style="color:#323232"&gt; and beyond. ActiveRoles Server provides strictly enforced role-based security, automated group management, change approval and easy-to-use Web interfaces for self service to achieve practical user and group lifecycle management for the Windows enterprise.&amp;quot; &lt;/span&gt;&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;With ActiveRoles Server, we will not require partners or clients to have a trust with our external forest. They can simply login to a web site to add/remove user accounts in the extranet forest's domain and we won't have to be responsible to identify and maintain who has access to what. Each partner is separated by having their own &lt;a href="http://technet.microsoft.com/en-us/library/cc758565.aspx"&gt;Organizational Unit&lt;/a&gt; (OU) so they can't see users from other partners or clients (fulfilling BR5). As far as password synchronization goes, we still don't have a solution for that, but with ActiveRoles Server, we are much better off than managing the users ourselves. That would be really expensive to support! What's also great about using this user management solution is now we only needed to open port 80/443 to the internet. If we needed to setup trusts, we would have to be more exposed. The diagram below shows a summary of the network architecture: &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p style="text-align:center"&gt;&lt;img alt="" src="http://philwicklund.com/Lists/Photos/111208_1839_NetworkandD3.png"&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;The diagram also shows the production servers spread across the two production domains (CONTOSO.EXT - extranet &amp;amp; CONTOSO.CORP – internal). Additionally, the two non-production domains, CONTOSO.TST and CONTOSO.DEV are shown inside the internal forest. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;All in all, I think this was an interesting design for a client/partner portal solution. Clients and Partners have access to add/remove users as they see fit, and can place those users in predefined groups which will dictate their role within the portal. Plus those partners and clients can't see other partners or clients, because they're separated by OUs. Additionally, using the extranet forest with ActiveRoles server, keeps the overhead of user management off our plate, while at the same time keeping all these OUs and users our of our internal domains. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;What do you think? &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;Phil &lt;/span&gt;&lt;/p&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/_nW8OXK7FRUI7fzP8PK9auie6cI/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/_nW8OXK7FRUI7fzP8PK9auie6cI/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/_nW8OXK7FRUI7fzP8PK9auie6cI/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/_nW8OXK7FRUI7fzP8PK9auie6cI/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=21GhoaEC"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=1HCViZSc"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?d=129" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=BwHylJmz"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?i=BwHylJmz" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=WhK26ZtY"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?d=54" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=WHaW8lj6"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?i=WHaW8lj6" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=tI3QWonb"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?d=52" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=7WRHxWEN"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?i=7WRHxWEN" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=eK2UR5VV"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?i=eK2UR5VV" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=3dnjcB3r"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?d=43" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/SharepointHappenings/~4/jHDdMBoIY90" height="1" width="1"/&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Phillip S. Wicklund</dc:creator><pubDate>Wed, 12 Nov 2008 12:35:00 GMT</pubDate><category domain="http://philwicklund.com/archive/tags/Infrastructure/default.aspx">Infrastructure</category><feedburner:origLink>http://philwicklund.com/archive/2008/11/12/network-and-domain-architecture-for-client-portals.aspx</feedburner:origLink></item><item><title>Getting IIS7 on Windows Server 2008 ready to Install SharePoint</title><link>http://feedproxy.google.com/~r/SharepointHappenings/~3/yVO27Glz8P0/steps-to-get-windows-server-2008-ready-to-install-sharepoint.aspx</link><guid isPermaLink="false">/archive/2008/11/06/steps-to-get-windows-server-2008-ready-to-install-sharepoint.aspx</guid><description>&lt;div class="ExternalClass5F694420AF324BF4BEC7F4454FD46937"&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;IIS 7 isn't much like IIS 6, and getting SharePoint to install on your web front ends running Windows Server 2008 may involve some steps you weren't used to. This post shows some of the steps necessary to configure IIS 7 to get SharePoint ready to install on Windows Server 2008. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;The following procedures must be run on all the web front ends in the farm. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;Go to server manager, and add a role:&lt;br&gt;&lt;img alt="" src="http://philwicklund.com/Lists/Photos/110608_1544_StepstogetW1.png"&gt;&lt;br&gt;&lt;br&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;Add the Web IIS role, and say yes to the required features:&lt;br&gt;&lt;img alt="" src="http://philwicklund.com/Lists/Photos/110608_1544_StepstogetW2.png"&gt;&lt;br&gt;Click next, and next again.&lt;br&gt;&lt;br&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;Add all the optional server roles, and click next:&lt;br&gt;&lt;img alt="" src="http://philwicklund.com/Lists/Photos/110608_1544_StepstogetW3.png"&gt;&lt;br&gt;&lt;br&gt;Click next again, and then install.&lt;br&gt;&lt;br&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;Once completed, go back to server manager, click Features, and choose Add Features:&lt;br&gt;&lt;img alt="" src="http://philwicklund.com/Lists/Photos/110608_1544_StepstogetW4.png"&gt;&lt;br&gt;&lt;br&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;Choose the .NET 3.0 features:&lt;br&gt;&lt;img alt="" src="http://philwicklund.com/Lists/Photos/110608_1544_StepstogetW5.png"&gt;&lt;br&gt;&lt;br&gt;click next, and then click install. &lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;After you've done these steps, you must install SharePoint with SP1 preloaded on the install. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;Phil&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/1wqagHZkvMXJSaUW0XUYJ6Hm7fI/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/1wqagHZkvMXJSaUW0XUYJ6Hm7fI/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/1wqagHZkvMXJSaUW0XUYJ6Hm7fI/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/1wqagHZkvMXJSaUW0XUYJ6Hm7fI/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=mXYZ7DF9"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=71m71yKM"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?d=129" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=fHUg2Ck4"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?i=fHUg2Ck4" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=YwlrnQLK"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?d=54" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=hZmx0Lay"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?i=hZmx0Lay" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=nlLO0mKc"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?d=52" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=yGsz9Pf6"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?i=yGsz9Pf6" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=4nluyMya"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?i=4nluyMya" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=zY3q7xea"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?d=43" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/SharepointHappenings/~4/yVO27Glz8P0" height="1" width="1"/&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Phillip S. Wicklund</dc:creator><pubDate>Thu, 06 Nov 2008 09:40:00 GMT</pubDate><category domain="http://philwicklund.com/archive/tags/Infrastructure/default.aspx">Infrastructure</category><category domain="http://philwicklund.com/archive/tags/SharePoint Administration/default.aspx">SharePoint Administration</category><feedburner:origLink>http://philwicklund.com/archive/2008/11/06/steps-to-get-windows-server-2008-ready-to-install-sharepoint.aspx</feedburner:origLink></item><item><title>What makes for good SharePoint Documentation?</title><link>http://feedproxy.google.com/~r/SharepointHappenings/~3/9VUNrZyxzAg/what-makes-for-good-sharepoint-documentation.aspx</link><guid isPermaLink="false">/archive/2008/11/06/what-makes-for-good-sharepoint-documentation.aspx</guid><description>&lt;div class="ExternalClass00BDF4E8CB5F4E55A80FA3627D1BE65B"&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;When I go to clients that I'm engaged with, I always try to make sure I leave them with good documentation so if there's an issue after I'm gone, they're not left floundering. This post details what I try to leave with a client as far as documentation goes. Please let me know if there's something major I'm missing! &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;The title of the document I leave with my clients is &amp;quot;Technical Architecture, Design, and Procedures Document&amp;quot; (TADPD). It's a rather lengthy title, but I feel is fully describes what is contained therein. The document contains details on the portal's architecture, design details on the various components/features of the portal, and procedures on how to maintain and govern the portal after I have left the client. Here are those sections broken down into what I see as the five major categories: &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;div&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;&lt;strong&gt;&lt;em&gt;Architecture Planning.&lt;/em&gt;&lt;/strong&gt;&lt;br&gt;This section details all the physical and virtual server requirements for the portal, as well as how those requirements were decided upon. Additionally, the Authentication strategy for how users authenticate to the portal is also discussed.&lt;br&gt;&lt;br&gt;&lt;em&gt;Subsections&lt;/em&gt;:&lt;span style="color:#365f91"&gt;&lt;strong&gt; &lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;ol style="margin-left:197pt"&gt;
&lt;li&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;&lt;strong&gt;&lt;em&gt;Capacity Planning&lt;/em&gt;&lt;span style="color:#365f91"&gt; &lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;&lt;strong&gt;&lt;em&gt;Physical Architecture&lt;/em&gt;&lt;span style="color:#365f91"&gt; &lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;&lt;strong&gt;&lt;em&gt;Virtual Architecture (if used)&lt;/em&gt;&lt;span style="color:#365f91"&gt; &lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;&lt;strong&gt;&lt;em&gt;Network Architecture&lt;/em&gt;&lt;span style="color:#365f91"&gt; &lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;&lt;strong&gt;&lt;em&gt;Software Strategy&lt;/em&gt;&lt;span style="color:#365f91"&gt; &lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;&lt;strong&gt;&lt;em&gt;Authentication Strategy&lt;/em&gt;&lt;span style="color:#365f91"&gt; &lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;&lt;strong&gt;&lt;em&gt;Service Accounts&lt;br&gt;&lt;/em&gt;&lt;/strong&gt;&lt;br&gt;&lt;span style="color:#365f91"&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;&lt;strong&gt;&lt;em&gt;Feature Technical Design.&lt;br&gt;&lt;/em&gt;&lt;/strong&gt;The design portion of the TADPD goes through all the major functionalities of the portal and documents their technical implementation at a high level. The purpose for this section is to document the implementation strategy, not necessarily the implementation details. Any further documentation will be supplemented as needed in a separate document for the particular feature.&lt;br&gt;&lt;br&gt;Subsections:&lt;span style="color:#365f91"&gt;&lt;strong&gt; &lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;ol style="margin-left:197pt"&gt;
&lt;li&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;&lt;strong&gt;&lt;em&gt;Overview (Application diagrams)&lt;/em&gt;&lt;span style="color:#365f91"&gt; &lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;&lt;strong&gt;&lt;em&gt;Branding and Look &amp;amp; Feel&lt;/em&gt;&lt;span style="color:#365f91"&gt; &lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;&lt;strong&gt;&lt;em&gt;Portal Site Topology Design&lt;/em&gt;&lt;span style="color:#365f91"&gt; &lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;&lt;strong&gt;&lt;em&gt;Feature &amp;quot;A&amp;quot;&lt;/em&gt;&lt;span style="color:#365f91"&gt; &lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;&lt;strong&gt;&lt;em&gt;Feature &amp;quot;B&amp;quot;&lt;/em&gt;&lt;span style="color:#365f91"&gt; &lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;&lt;strong&gt;&lt;em&gt;Search and Indexing&lt;/em&gt;&lt;span style="color:#365f91"&gt; &lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;&lt;strong&gt;&lt;em&gt;Authorization Strategy&lt;/em&gt;&lt;/strong&gt;&lt;br&gt;&lt;br&gt;&lt;span style="color:#365f91"&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;&lt;strong&gt;&lt;em&gt;Environment Governance and Implementation Strategies.&lt;br&gt;&lt;/em&gt;&lt;/strong&gt;The governance and implementation section is geared to help the company with the ongoing maintenance of the portal, as well as to document how to ramp up or transition new development and administration resources to the portal. Both environment caveats and instructions for how to work with the codebases will also be detailed in this section.&lt;br&gt;&lt;br&gt;Subsections:&lt;span style="color:#365f91"&gt;&lt;strong&gt; &lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;ol style="margin-left:197pt"&gt;
&lt;li&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;&lt;strong&gt;&lt;em&gt;Environment Governance Strategy&lt;/em&gt;&lt;span style="color:#365f91"&gt; &lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;&lt;strong&gt;&lt;em&gt;Content Governance Strategy&lt;/em&gt;&lt;span style="color:#365f91"&gt; &lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;&lt;strong&gt;&lt;em&gt;Security Governance Strategy&lt;/em&gt;&lt;span style="color:#365f91"&gt; &lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;&lt;strong&gt;&lt;em&gt;Code &amp;amp; Customizations, Development Strategy&lt;br&gt;&lt;/em&gt;&lt;/strong&gt;&lt;br&gt;&lt;span style="color:#365f91"&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;&lt;strong&gt;&lt;em&gt;Installation and Configuration.&lt;br&gt;&lt;/em&gt;&lt;/strong&gt;Documenting the installation and configuration is necessary to enable the successful transition of SharePoint expertise to the client for the sake of their ongoing administration. Either from a disaster recovery perspective, or if the client ever needs to add/edit a SharePoint farm, this section will provide guidance for these SharePoint administration tasks.&lt;br&gt;&lt;br&gt;Subsections:&lt;span style="color:#365f91"&gt;&lt;strong&gt; &lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;ol style="margin-left:197pt"&gt;
&lt;li&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;&lt;strong&gt;&lt;em&gt;Server Preparations&lt;/em&gt;&lt;span style="color:#365f91"&gt; &lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;&lt;strong&gt;&lt;em&gt;Installing SharePoint&lt;/em&gt;&lt;span style="color:#365f91"&gt; &lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;&lt;strong&gt;&lt;em&gt;Configuring SharePoint and Building a Farm&lt;/em&gt;&lt;span style="color:#365f91"&gt; &lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;&lt;strong&gt;&lt;em&gt;Installing dependant software (Project Server, Search Server, etc)&lt;/em&gt;&lt;span style="color:#365f91"&gt; &lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;&lt;strong&gt;&lt;em&gt;Deploying Customizations &amp;amp; Codebases&lt;br&gt;&lt;/em&gt;&lt;/strong&gt;&lt;br&gt;&lt;span style="color:#365f91"&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;&lt;strong&gt;&lt;em&gt;Disaster Recovery Strategy.&lt;br&gt;&lt;/em&gt;&lt;/strong&gt;The disaster recovery section details the steps necessary to recover all the client's portals if a disaster ever were to occur. Additionally, the section documents what sorts of entities need to be backed up on a regular basis to ensure a successful restore will be possible.&lt;br&gt;&lt;br&gt;Subsections:&lt;span style="color:#365f91"&gt;&lt;strong&gt; &lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;ol style="margin-left:197pt"&gt;
&lt;li&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;&lt;strong&gt;&lt;em&gt;Backup Procedures&lt;/em&gt;&lt;span style="color:#365f91"&gt; &lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;&lt;strong&gt;&lt;em&gt;Restore Procedures&lt;/em&gt;&lt;span style="color:#365f91"&gt; &lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/li&gt;&lt;/ol&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;Did I miss anything you'd see as a valuable artifact to leave a client? Thanks! &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;Phil &lt;/span&gt;&lt;/p&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/sIp2VYagbsT-B4zYXyzbbFkEhdk/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/sIp2VYagbsT-B4zYXyzbbFkEhdk/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/sIp2VYagbsT-B4zYXyzbbFkEhdk/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/sIp2VYagbsT-B4zYXyzbbFkEhdk/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=uaP4ePSD"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=gCOyFS6M"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?d=129" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=GYYxx0mv"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?i=GYYxx0mv" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=L4bolzXf"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?d=54" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=Ko053L78"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?i=Ko053L78" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=DFrr1TOF"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?d=52" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=iz5SVBQR"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?i=iz5SVBQR" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=BTXJmW6W"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?i=BTXJmW6W" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=cNKoTBwy"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?d=43" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/SharepointHappenings/~4/9VUNrZyxzAg" height="1" width="1"/&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Phillip S. Wicklund</dc:creator><pubDate>Thu, 06 Nov 2008 09:10:00 GMT</pubDate><category domain="http://philwicklund.com/archive/tags/SharePoint Business Analysis and Project Management/default.aspx">SharePoint Business Analysis and Project Management</category><feedburner:origLink>http://philwicklund.com/archive/2008/11/06/what-makes-for-good-sharepoint-documentation.aspx</feedburner:origLink></item><item><title>Access Denied Error when Updating a Solution</title><link>http://feedproxy.google.com/~r/SharepointHappenings/~3/qJu-MTsPWyY/access-denied-error-when-updating-a-solution.aspx</link><guid isPermaLink="false">/archive/2008/10/08/access-denied-error-when-updating-a-solution.aspx</guid><description>&lt;div class="ExternalClass42DEEE78281143EB8CC8AF9AF31EF613"&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;Ever get an &amp;quot;Access to the path c:\... is denied&amp;quot; error when try to deploy or upgrade a SharePoint solution package? I've been getting this error intermittently over the past couple weeks and just today I figured out why! It wasn't rocket science to figure out – but the removal of one less annoying thing in my life is always worth celebrating… &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;Here were the errors I was getting: &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;img alt="" src="http://philwicklund.com/Lists/Photos/100808_2003_AccessDenie1.png"&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;img alt="" src="http://philwicklund.com/Lists/Photos/100808_2003_AccessDenie2.png"&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;For me anyways, the problem is because I haven't been disciplined with using my solution packages. Sometimes I would deploy/upgrade the solutions, and sometimes I would do it manually. NOT GOOD! &lt;strong&gt;&lt;em&gt;When using solutions – don't cheat or be lazy by manually deploying stuff! Always use STSADM.&lt;/em&gt;&lt;/strong&gt; Otherwise your solutions will stop working. Bad Phil, bad! &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;Anyways, here are the steps I took to fix this access denied error and get my solutions up and running again: &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;ol style="margin-left:54pt"&gt;
&lt;li&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;Delete the file(s) off the file system on all web front ends where you're getting the error – in my case, I'm going to delete the ControllerCPU.aspx file.&lt;br&gt;&lt;br&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;Using STSADM, run the deploysolution command and specify &amp;quot;force&amp;quot;:&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;img alt="" src="http://philwicklund.com/Lists/Photos/100808_2003_AccessDenie3.png"&gt;&lt;br&gt;&lt;br&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;The solution should now be successfully deployed:&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;img alt="" src="http://philwicklund.com/Lists/Photos/100808_2003_AccessDenie4.png"&gt;&lt;br&gt;&lt;br&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;(optional) – if you had intended on doing an upgrade to an existing solution, you should now re-run the upgradesolution command again to be safe, just incase if in step 3 you deployed the old solution and not the new one:&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;img alt="" src="http://philwicklund.com/Lists/Photos/100808_2003_AccessDenie5.png"&gt; &lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;Phil&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/7FppauHT9wX6LZHY09_Cf705j4E/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/7FppauHT9wX6LZHY09_Cf705j4E/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/7FppauHT9wX6LZHY09_Cf705j4E/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/7FppauHT9wX6LZHY09_Cf705j4E/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=OiDj9Oh1"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=D45qvviK"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?d=129" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=2mNu56sd"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?i=2mNu56sd" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=4DyvgL87"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?d=54" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=20Yz0vvs"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?i=20Yz0vvs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=nH9g0fwq"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?d=52" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=ToypefeI"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?i=ToypefeI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=BsRxYEUe"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?i=BsRxYEUe" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=37oYW4z0"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?d=43" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/SharepointHappenings/~4/qJu-MTsPWyY" height="1" width="1"/&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Phillip S. Wicklund</dc:creator><pubDate>Wed, 08 Oct 2008 14:59:00 GMT</pubDate><category domain="http://philwicklund.com/archive/tags/SharePoint Development/default.aspx">SharePoint Development</category><feedburner:origLink>http://philwicklund.com/archive/2008/10/08/access-denied-error-when-updating-a-solution.aspx</feedburner:origLink></item><item><title>Speaking at SharePoint Connections &amp; MODIG (again)</title><link>http://feedproxy.google.com/~r/SharepointHappenings/~3/JQsiHZHjNt4/speaking-at-sharepoint-connections-amp-modig-again.aspx</link><guid isPermaLink="false">/archive/2008/09/25/speaking-at-sharepoint-connections-amp-modig-again.aspx</guid><description>&lt;div class="ExternalClassFA85329A2EC7455ABF61833CD2AA7172"&gt;
&lt;p&gt;&lt;img alt="" src="http://philwicklund.com/Lists/Photos/092508_1827_SpeakingatS1.png" align="right"&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;Great news! I was just informed that I'll be speaking at next March's &lt;a href="http://www.devconnections.com/"&gt;SharePoint Connections conference&lt;/a&gt; in Orlando Florida. I missed the deadline for November's conference in Vegas, but I am very pleased &amp;amp; excited that I was able to get my ideas submitted in time, and chosen, for March's conference. Plus, Minnesota spring weather is nasty and sloppy; what better place to go to than Orlando! Here are the topics I'm presenting on: &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;ul style="margin-left:54pt"&gt;
&lt;li&gt;
&lt;div style="background:white"&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;How to Effectively Manage your SharePoint Customizations, Deployments, and Environments with Solution Packages, Source Control, and Solid Governance &lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div style="background:white"&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;How to Build a &amp;quot;Hello World&amp;quot; SilverLight Web Part for a SharePoint Site in 10 Easy Steps &lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div style="background:white"&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;Development Ideas on how to make your SharePoint environment more SOX or HIPPA compliant &lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;color:#333333;font-family:Verdana"&gt;&lt;strong&gt;Connections Site:&lt;/strong&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.devconnections.com/"&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;http://www.devconnections.com/&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size:12pt;color:#333333;font-family:Verdana"&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;   &lt;/p&gt;
&lt;p&gt;   &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;color:#333333;font-family:Verdana"&gt;&lt;strong&gt;Event Logistics:&lt;/strong&gt;&lt;br&gt;March 21&lt;sup&gt;st&lt;/sup&gt; – 26&lt;sup&gt;th&lt;/sup&gt;, 2009 &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;color:#333333;font-family:Verdana"&gt;Orlando, Florida&lt;sup&gt; &lt;/sup&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt"&gt;&lt;span style="font-family:Verdana"&gt;Also, if March is too far away – I'll be speaking again at the Minnesota SharePoint User Group (MS Office Developer's Interest Group - MODIG) on October 28&lt;sup&gt;th&lt;/sup&gt;. I'll be talking about Code Access Security: what it is, why you care, and how to use it (this is both a developer and administrator topic). Time permitting; I'll build a workflow with visual studio, since a lot of people at our last group expressed interest in that topic as well. Thanks to Neil Iverson from Inetium for offering me a gracious welcome at the last MODIG, and for his offer to come back to speak again at the next meeting! It'll be a good time – and the pizza never fails to satisfy &lt;/span&gt;&lt;span style="font-family:Wingdings"&gt;J&lt;/span&gt;&lt;span style="font-family:Verdana"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;img alt="" src="http://philwicklund.com/Lists/Photos/092508_1827_SpeakingatS2.png"&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;&lt;span style="color:#333333"&gt;&lt;strong&gt;MODIG Site:&lt;/strong&gt;&lt;br&gt;&lt;a href="http://www.sharepointmn.com/modig/default.aspx"&gt;&lt;/a&gt;&lt;/span&gt;&lt;span style="color:#246a79;text-decoration:underline"&gt;http://www.sharepointmn.com/modig/default.aspx&lt;/span&gt;&lt;span style="color:#333333"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;   &lt;/p&gt;
&lt;p&gt;   &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;color:#333333;font-family:Verdana"&gt;&lt;strong&gt;Event Logistics:&lt;/strong&gt;&lt;br&gt;Tuesday October 28th&lt;br&gt;5:30 pm &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://maps.live.com/OneClickDirections.aspx?rtp=~pos.rg8gmp76pm0f_3500+American+Blvd+W,+Minneapolis,+MN+55431-1084___a_&amp;amp;rsd=44.8797190189362_-93.3505699038506_AVf%2bAyAOAAAAQ1GNAJoOAAA%3d_the+north+(via+Normandale+Blvd+S+/+SR-100)~44.8308303952217_-93.293"&gt;&lt;span style="font-size:12pt;color:#246a79;font-family:Verdana;text-decoration:underline"&gt;Driving Directions&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size:12pt;color:#333333;font-family:Verdana"&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;Talk to you then! &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;Phil&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/NzSYqyibcOVrjLVwBZ-6hOBw1ac/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/NzSYqyibcOVrjLVwBZ-6hOBw1ac/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/NzSYqyibcOVrjLVwBZ-6hOBw1ac/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/NzSYqyibcOVrjLVwBZ-6hOBw1ac/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=IigQwRZb"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=upfQo8VP"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?d=129" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=3kgPMJfm"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?i=3kgPMJfm" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=t13X1pHW"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?d=54" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=lS7Mk0l0"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?i=lS7Mk0l0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=lLdQuOeX"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?d=52" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=7X5jmzUx"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?i=7X5jmzUx" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=8f7bxdY9"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?i=8f7bxdY9" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=QPBnD3FA"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?d=43" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/SharepointHappenings/~4/JQsiHZHjNt4" height="1" width="1"/&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Phillip S. Wicklund</dc:creator><pubDate>Thu, 25 Sep 2008 13:24:00 GMT</pubDate><category domain="http://philwicklund.com/archive/tags/Speaking Events/default.aspx">Speaking Events</category><feedburner:origLink>http://philwicklund.com/archive/2008/09/25/speaking-at-sharepoint-connections-amp-modig-again.aspx</feedburner:origLink></item><item><title>Update to Polling Web Part: 1 Response / User</title><link>http://feedproxy.google.com/~r/SharepointHappenings/~3/1_0D38r5pbA/update-to-polling-web-part.aspx</link><guid isPermaLink="false">/archive/2008/09/16/update-to-polling-web-part.aspx</guid><description>&lt;div class="ExternalClass7B7B55EB48794C189956252852404936"&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;My &lt;a href="http://philwicklund.com/freeware/polling/default.aspx"&gt;polling web part&lt;/a&gt; now supports allowing for only 1 response per user. Thanks to Jason Mitchell (elektronisch) for providing the enhancement! &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;When you respond to a poll, a cookie is saved that keeps record of your response to that particular question. Also, the &amp;quot;Show Question&amp;quot; link has been removed because you can't respond again so there's no point in going back to the form. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;img alt="" src="http://philwicklund.com/Lists/Photos/091608_1604_UpdatetoPol1.png"&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;Also, after you've replied to the question and you come back to the site at a later date, rather than seeing the question again, you're presented with the results automatically. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;img alt="" src="http://philwicklund.com/Lists/Photos/091608_1604_UpdatetoPol2.png"&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;Thanks again to Jason for this enhancement – and for others who've downloaded my source, let me know if you have made any other neat enhancements that we could publish (I'll certainly give credit where it's due). &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;Check out &lt;a href="http://www.codeplex.com/PollingWebPart/Release/ProjectReleases.aspx?ReleaseId=17365"&gt;Version 1.2 on codeplex&lt;/a&gt; to download this latest release of my web part. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;Phil&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/zZ2fdGwOEvIPnC2k7Sal4JDAIQk/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/zZ2fdGwOEvIPnC2k7Sal4JDAIQk/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/zZ2fdGwOEvIPnC2k7Sal4JDAIQk/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/zZ2fdGwOEvIPnC2k7Sal4JDAIQk/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=9aKR1jet"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=gVTcyphS"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?d=129" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=q7No8KNN"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?i=q7No8KNN" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=nd0cLb7o"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?d=54" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=rDlbLJrT"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?i=rDlbLJrT" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=2iXVFYcC"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?d=52" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=yZdpRu6U"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?i=yZdpRu6U" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=z3ueysye"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?i=z3ueysye" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=SZ6PkE89"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?d=43" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/SharepointHappenings/~4/1_0D38r5pbA" height="1" width="1"/&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Phillip S. Wicklund</dc:creator><pubDate>Tue, 16 Sep 2008 11:01:00 GMT</pubDate><category domain="http://philwicklund.com/archive/tags/Freeware Releases/default.aspx">Freeware Releases</category><feedburner:origLink>http://philwicklund.com/archive/2008/09/16/update-to-polling-web-part.aspx</feedburner:origLink></item><item><title>I’ll be speaking at this month’s Minnesota SharePoint User Group!</title><link>http://feedproxy.google.com/~r/SharepointHappenings/~3/ozhumn0-15M/i’ll-be-speaking-at-this-month’s-minnesota-sharepoint-user-group.aspx</link><guid isPermaLink="false">/archive/2008/09/15/i’ll-be-speaking-at-this-month’s-minnesota-sharepoint-user-group.aspx</guid><description>&lt;div class="ExternalClass5BDDD649F4F0470091BF00A7483E3E9A"&gt;&lt;p&gt;&lt;img src="http://philwicklund.com/Lists/Photos/091508_1853_Illbespeaki1.png" alt=""&gt;
	&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;This month's Minneapolis Office Developers Interest Group (MODIG) event will feature a panel of SharePoint Developers that will be fielding questions from the audience. Feel free to stop by with your SharePoint questions! We'd love to help you out!
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;&lt;strong&gt;MODIG Site:&lt;/strong&gt;&lt;br&gt;&lt;a href="http://www.sharepointmn.com/modig/default.aspx"&gt;http://www.sharepointmn.com/modig/default.aspx&lt;/a&gt;
		&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;&lt;strong&gt;Event Logistics:&lt;/strong&gt;&lt;br&gt;Tuesday September 23&lt;sup&gt;rd&lt;/sup&gt;&lt;br&gt;5:30 pm
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://maps.live.com/OneClickDirections.aspx?rtp=~pos.rg8gmp76pm0f_3500+American+Blvd+W,+Minneapolis,+MN+55431-1084___a_&amp;amp;rsd=44.8797190189362_-93.3505699038506_AVf%2bAyAOAAAAQ1GNAJoOAAA%3d_the+north+(via+Normandale+Blvd+S+/+SR-100)~44.8308303952217_-93.293"&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;Driving Directions&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;
		&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;Phil&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/HIzSA_52kkcrfcxTs0lSB0dEcuE/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/HIzSA_52kkcrfcxTs0lSB0dEcuE/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/HIzSA_52kkcrfcxTs0lSB0dEcuE/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/HIzSA_52kkcrfcxTs0lSB0dEcuE/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=7NdE0D0VHC0:Y6CmrxVEmZw:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=7NdE0D0VHC0:Y6CmrxVEmZw:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=7NdE0D0VHC0:Y6CmrxVEmZw:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?i=7NdE0D0VHC0:Y6CmrxVEmZw:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=7NdE0D0VHC0:Y6CmrxVEmZw:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=7NdE0D0VHC0:Y6CmrxVEmZw:KwTdNBX3Jqk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?i=7NdE0D0VHC0:Y6CmrxVEmZw:KwTdNBX3Jqk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=7NdE0D0VHC0:Y6CmrxVEmZw:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=7NdE0D0VHC0:Y6CmrxVEmZw:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?i=7NdE0D0VHC0:Y6CmrxVEmZw:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=7NdE0D0VHC0:Y6CmrxVEmZw:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?i=7NdE0D0VHC0:Y6CmrxVEmZw:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=7NdE0D0VHC0:Y6CmrxVEmZw:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/SharepointHappenings/~4/ozhumn0-15M" height="1" width="1"/&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Phillip S. Wicklund</dc:creator><pubDate>Mon, 15 Sep 2008 13:50:00 GMT</pubDate><category domain="http://philwicklund.com/archive/tags/Speaking Events/default.aspx">Speaking Events</category><feedburner:origLink>http://philwicklund.com/archive/2008/09/15/i’ll-be-speaking-at-this-month’s-minnesota-sharepoint-user-group.aspx</feedburner:origLink></item><item><title>The SharePoint Product Manager: Get Yourself a Pit Bull</title><link>http://feedproxy.google.com/~r/SharepointHappenings/~3/OaRQ3XF-dL4/the-sharepoint-product-manager-get-yourself-a-pit-bull.aspx</link><guid isPermaLink="false">/archive/2008/09/12/the-sharepoint-product-manager-get-yourself-a-pit-bull.aspx</guid><description>&lt;div class="ExternalClassED730396850B464CB032BDD423504A4B"&gt;
&lt;p&gt;&lt;img alt="" src="http://philwicklund.com/Lists/Photos/091208_2105_TheSharePoi1.png" align="right"&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;Every SharePoint deployment needs clear leadership and accountability in order to be &amp;quot;successful&amp;quot;. Success is a loose term with SharePoint, but I like to define it as follows: &lt;em&gt;A state in which the SharePoint deployment has continued to provide tangible business value over a long period of time, with minimal cost and maximum corporate adoption. &lt;/em&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;There are a lot of obstacles that hinder achieving this status of &amp;quot;success&amp;quot;. Obstacles like ballooning cost, lack of compelling features, and lack of company adoption. You may start off with a bang, but find it harder and harder to keep the momentum up as time goes by. I've seen this so called stagnation in few companies, and I've really come to appreciate the role of Product Manger because of it. I've seen some companies that spin up a SharePoint site, and almost haphazardly put it on cruise control and expect great things to happen. The problem with this is that if it isn't someone's job to make things happen, nothing will happen and your initial &amp;quot;momentum&amp;quot; will come to a halt. Now, before you think I'm trying to make a sweeping statement here, even if you have a great Product Manager but don't have a budget, or executive by-in, you're going to have a hard time. However, there's a lot this person can and should be doing. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;img alt="" src="http://philwicklund.com/Lists/Photos/091208_2105_TheSharePoi2.png" align="left"&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;I love this quote from &lt;a href="http://www.usabilitycounts.com/2008/05/08/consultant-thursdays-dont-gather-requirements-drive-them/"&gt;usabilitycounts.com&lt;/a&gt;, &amp;quot;Don't gather requirements, drive them&amp;quot;. This driving attitude is where my idea of the Pit Bull comes from. SharePoint doesn't have an auto-pilot button, it needs leadership. I've come to see, however, that this isn't just any kind of leadership. It doesn't mean be a jerk – that wouldn't get you anything. It does however mean firmness, confidence, excitement, and a &amp;quot;go get it&amp;quot; personality. Think about the main responsibilities of a SharePoint Product Manager (not exhaustive): &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;ul style="margin-left:54pt"&gt;
&lt;li&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;Develop Product Roadmap – aka Business Requirements &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;Sell the roadmap to stakeholders, and Content Owners &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;Oversee project initiatives, sign off on functional requirements, watch budgets &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;Identify and train content owners, and oversee content development and enforce quality standards &lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;You don't necessarily need to be a Pit Bull to lead in the first three areas, but the last one is what I'm here to talk about. A big responsibility for a SharePoint Product Manager is to develop and grow business leaders that can manage and lead in their respective content areas. SharePoint is a distributive technology, and is meant to be controlled and developed by its end users, not central IT. &lt;img alt="" src="http://philwicklund.com/Lists/Photos/091208_2105_TheSharePoi3.png" align="right"&gt;However, without leadership, as I already mentioned, you won't have momentum. This leadership needs to be business leadership, not just IT leadership (otherwise nobody will care – this is what will help with &amp;quot;corporate adoption&amp;quot;). So the product manager is really the leader of leaders, which makes the necessity of the position and the quality of the individual in it, especially important. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;The problem is that the leaders he/she is leading aren't always motivated. This is especially true as time goes by. The Product Manager needs to &amp;quot;drive&amp;quot; these people – and this isn't so simple as &amp;quot;herding sheep&amp;quot;. What makes it difficult is that most of these content owners most likely have full time jobs outside of managing and leading content development. They may not even be enthusiastic that more work was put on their plate. When dealing with people with this attitude, you need a sense of fearlessness. You need a Pit Bull. If you don't have a Pit Bull, your content development will be slow and your milestones on your roadmap will slip. Company &amp;quot;excitement&amp;quot; about a new tool will dwindle as they see a lack of progress on promised features. Also, you will have sloppy and unprofessional sites because there won't be clear accountability and training on how to make good ones. The role of product manager is similar to the neighborhood police officer in this respect. Ever see a Chihuahua serving as a police dog? &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;So to summarize, when you're interviewing a SharePoint Product Manager to lead your implementation, save yourself for someone that exhibits confidence, fearlessness, good communication and leadership skills, and has a strong head on their shoulders. It's a harder job than you may realize and you shouldn't settle for anything less if you value success. I would even regard these characteristics higher than possessing a SharePoint background – and the complexity of SharePoint makes that a powerful statement (save the technical expertise for a good technical lead). &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;No toy dogs for this job please. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;Phil&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/epJ9mj1G72KN1Tb_2Ynv7-2rHt8/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/epJ9mj1G72KN1Tb_2Ynv7-2rHt8/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/epJ9mj1G72KN1Tb_2Ynv7-2rHt8/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/epJ9mj1G72KN1Tb_2Ynv7-2rHt8/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=aQg107tX"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=GkERiPFy"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?d=129" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=pewwGvXy"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?i=pewwGvXy" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=kQB1knI6"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?d=54" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=dudbACL3"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?i=dudbACL3" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=MZnpQSdM"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?d=52" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=Ol25Ky9e"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?i=Ol25Ky9e" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=yUSYvP1M"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?i=yUSYvP1M" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=wRqofE4e"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?d=43" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/SharepointHappenings/~4/OaRQ3XF-dL4" height="1" width="1"/&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Phillip S. Wicklund</dc:creator><pubDate>Fri, 12 Sep 2008 16:02:00 GMT</pubDate><category domain="http://philwicklund.com/archive/tags/SharePoint Business Analysis and Project Management/default.aspx">SharePoint Business Analysis and Project Management</category><feedburner:origLink>http://philwicklund.com/archive/2008/09/12/the-sharepoint-product-manager-get-yourself-a-pit-bull.aspx</feedburner:origLink></item><item><title>If you like what you see, join my Blog Network on Facebook!</title><link>http://feedproxy.google.com/~r/SharepointHappenings/~3/HWh82zW7Wzs/if-you-like-what-you-see-join-my-blog-network-on-facebook.aspx</link><guid isPermaLink="false">/archive/2008/09/11/if-you-like-what-you-see-join-my-blog-network-on-facebook.aspx</guid><description>&lt;div class="ExternalClass83F0042082A54299B2B88E486B3AF9EE"&gt;
&lt;p&gt;&lt;img alt="" src="http://philwicklund.com/Lists/Photos/091108_1852_Ifyoulikewh1.png" align="right"&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;**Calling all Facebook folk** – if you have comments, concerns, requests, or praises for my blog and/or SharePoint site, I'd love to hear from you! I've been at this blogging thing for about a year now, and the silence is a bit unnerving! &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt"&gt;&lt;span style="font-family:Verdana"&gt;Please join my blog network on Facebook, and while you're at it, confirm me as the author &lt;/span&gt;&lt;span style="font-family:Wingdings"&gt;J&lt;/span&gt;&lt;span style="font-family:Verdana"&gt;. Hopefully this Blog Network thingy will help connect me to my audience better. &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;a href="http://apps.facebook.com/blognetworks/blogpage.php?blogid=29852"&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;http://apps.facebook.com/blognetworks/blogpage.php?blogid=29852&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;Thanks! And never hesitate to give me a shout with your SharePoint questions – I love helping out my fellow &lt;a href="http://philwicklund.com/Lists/Photos/060908_2212_PhilsTop10B1.png"&gt;peons&lt;/a&gt;! &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;Phil&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/ibEP_MkN6uO7_maPVWGwgVty7CA/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/ibEP_MkN6uO7_maPVWGwgVty7CA/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/ibEP_MkN6uO7_maPVWGwgVty7CA/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/ibEP_MkN6uO7_maPVWGwgVty7CA/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=dPh7g8D8"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=QhtymxES"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?d=129" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=FHVH0Wf9"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?i=FHVH0Wf9" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=H2Wg4qgS"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?d=54" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=qtD3ybTf"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?i=qtD3ybTf" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=VuQuVFqO"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?d=52" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=1N70cobx"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?i=1N70cobx" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=RdUqr3RZ"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?i=RdUqr3RZ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=ZFiHjVjE"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?d=43" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/SharepointHappenings/~4/HWh82zW7Wzs" height="1" width="1"/&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Phillip S. Wicklund</dc:creator><pubDate>Thu, 11 Sep 2008 13:49:00 GMT</pubDate><category domain="http://philwicklund.com/archive/tags/Random/default.aspx">Random</category><feedburner:origLink>http://philwicklund.com/archive/2008/09/11/if-you-like-what-you-see-join-my-blog-network-on-facebook.aspx</feedburner:origLink></item><item><title>When your DLL needs to be in the GAC…</title><link>http://feedproxy.google.com/~r/SharepointHappenings/~3/Qu3ecyRTMRM/when-your-dll-needs-to-be-in-the-gac….aspx</link><guid isPermaLink="false">/archive/2008/09/10/when-your-dll-needs-to-be-in-the-gac….aspx</guid><description>&lt;div class="ExternalClass4FA6C39653264597BB6426C6E1C02E1A"&gt;
&lt;p&gt;&lt;img alt="" src="http://philwicklund.com/Lists/Photos/091008_2216_WhenyourDLL1.png" align="right"&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;Code Access Security (CAS) is a hot topic these days, and for good reasons. CAS is an important thing to have an understanding of if you work in a security conscious company, or if you're striving to understand best practices. If you're new to CAS, there are many &lt;a href="http://msdn.microsoft.com/en-us/library/930b76w0.aspx"&gt;articles&lt;/a&gt;, but I like to describe it with an analogy that we all can identify with. Think of &amp;quot;User Access Security&amp;quot;. It's not a coined phrase like CAS is, but essentially it is a conglomerate of rules and measures that enable a given user or person the ability to do something on their computer/network/domain. CAS is the same thing, except with code. If we say John Doe user doesn't have access to crawl files in a sensitive network share, why would we say that third party DLLs (code) can? CAS says &amp;quot;this code can only do X, and nothing more&amp;quot; – much like &amp;quot;John Doe can only do X, and nothing more&amp;quot;. CAS is just as important as user access security. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;With SharePoint, the thing we try to avoid doing is giving our web applications &amp;quot;Full&amp;quot; trust. Full trust is essentially a CAS policy that gives unlimited access to all assemblies that run within the context of that web application. The main reason in my opinion this is bad is you expose yourself to third party vendors, whose code can essentially do ANYTHING that the app pool identity has privileges to do (which is a lot). Find a nice web part that a guy built in his basement? You've just empowered that guy in his basement to view/play with a ton of your resources – and even phone home with the details. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;However, it's not just third party assemblies I'd be concerned with. If you're a large firm with thousands of employees, you don't necessarily even trust yourself. This makes defining your own custom CAS policies all the more important. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;&lt;strong&gt;NOW THAT WE KNOW CAS IS IMPORTANT… &lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;img alt="" src="http://philwicklund.com/Lists/Photos/091008_2216_WhenyourDLL2.png" align="right"&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;So you're set on CAS, but you run into an interesting problem with your SharePoint assemblies. Two main SharePoint development practices REQUIRE the assembly to be in the GAC! &lt;em&gt;[The GAC – global assembly cache – is bad because it runs under Full trust all the time.]&lt;/em&gt; The GAC equals an open lock and you should only use it when you must! But how do we not use it? &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;Workflows and Event Recievers are two things you can't build and run them under your own CAS policy, period. Bummer. Since you can't get around it, I always recommend at least two assemblies for each client I work with. One for GAC dependant activities, and one for everything else. For instance, if your company's name is &amp;quot;Contoso&amp;quot; and you're writing SharePoint code for their intranet, the assemblies/projects I would suggest are at a minimum: &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;Contoso.Intranet.dll &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;Contoso.Intranet.Global.dll &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;img alt="" src="http://philwicklund.com/Lists/Photos/091008_2216_WhenyourDLL3.png" align="right"&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;The global assembly ONLY has workflow and receiver code in it – and nothing else. This way, the majority of your code can run under your custom CAS policies, and you're ensured a more secured future! Note – I wouldn't even put your workflow business logic in the GAC. The workflow can call out to your business logic that is stored in the non-global assembly. So in reality, your global assemblies should be very thin in numbers of lines of code! Only calls to other assemblies that are more secure! &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;Phil&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/FgvM3LcY503TDQbCqBEJP-bzDrc/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/FgvM3LcY503TDQbCqBEJP-bzDrc/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/FgvM3LcY503TDQbCqBEJP-bzDrc/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/FgvM3LcY503TDQbCqBEJP-bzDrc/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=OUPD10h4xzs:wIhhMWz_5X0:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=OUPD10h4xzs:wIhhMWz_5X0:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=OUPD10h4xzs:wIhhMWz_5X0:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?i=OUPD10h4xzs:wIhhMWz_5X0:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=OUPD10h4xzs:wIhhMWz_5X0:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=OUPD10h4xzs:wIhhMWz_5X0:KwTdNBX3Jqk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?i=OUPD10h4xzs:wIhhMWz_5X0:KwTdNBX3Jqk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=OUPD10h4xzs:wIhhMWz_5X0:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=OUPD10h4xzs:wIhhMWz_5X0:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?i=OUPD10h4xzs:wIhhMWz_5X0:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=OUPD10h4xzs:wIhhMWz_5X0:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?i=OUPD10h4xzs:wIhhMWz_5X0:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=OUPD10h4xzs:wIhhMWz_5X0:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/SharepointHappenings/~4/Qu3ecyRTMRM" height="1" width="1"/&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Phillip S. Wicklund</dc:creator><pubDate>Wed, 10 Sep 2008 17:13:00 GMT</pubDate><category domain="http://philwicklund.com/archive/tags/Best Practices/default.aspx">Best Practices</category><category domain="http://philwicklund.com/archive/tags/SharePoint Development/default.aspx">SharePoint Development</category><feedburner:origLink>http://philwicklund.com/archive/2008/09/10/when-your-dll-needs-to-be-in-the-gac….aspx</feedburner:origLink></item><item><title>Consolidating Master Pages Customized By SP Designer</title><link>http://feedproxy.google.com/~r/SharepointHappenings/~3/YENo2JGLSDA/consolidating-master-pages-customized-by-sp-designer.aspx</link><guid isPermaLink="false">/archive/2008/09/08/consolidating-master-pages-customized-by-sp-designer.aspx</guid><description>&lt;div class="ExternalClass787E26DE754A4C7FB5F9507AA8794099"&gt;&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;&amp;lt;update 9/11/08&amp;gt;
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;Corro'll Driskell posted a counter post to my &amp;quot;SharePoint Designer Blues&amp;quot; that I feel is a good read. I admit my disdain for Designer in this post is too sweeping, and isn't even a holistic expression of my views on Designer, which are much warmer than I made them out to be. Anyways, check out his post at:
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;&lt;a href="http://mindsharpblogs.com/Driskell/archive/2008/09/11/8427.aspx"&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;http://mindsharpblogs.com/Driskell/archive/2008/09/11/8427.aspx&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;
		&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;&lt;span style="font-size:12pt"&gt;&lt;span style="font-family:Verdana"&gt;Be sure to check out my comments to his post that clarified my original hastiness. Enticing dialog at its best &lt;/span&gt;&lt;span style="font-family:Wingdings"&gt;J&lt;/span&gt;&lt;span style="font-family:Verdana"&gt;
			&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;&amp;lt;/update&amp;gt;
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;I hate Designer for SharePoint Master page development. My biggest issue is that after you start customizing master pages with Designer, 6-12 months later you realize you have a huge mess on your hands. You end up maintaining hundreds of copies of the same file. Say you need to make a minor change to a master page, you'd have to go back and crack open every site, one at a time. This could take hours. Also, you may not even know the places that need the change, or you think you changed them all, but turns out you missed some. Designer means inconsistency and costliness in the long run.
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;So, off the soap box, what if you're down this road and want to get back to a better practice? Here are the steps: 
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;&lt;strong&gt;BUILD &amp;amp; INSTALL A MASTER PAGE FEATURE
&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;The key to consolidating your master pages is to have one page on the file system (12 Hive) that is the central page for all sites everywhere that need the master page. The best approach to this is to use a feature that you can activate on the sites that need the master page. Paul Stork (MVP) has a &lt;a href="http://mindsharpblogs.com/pauls/archive/2007/06/18/1903.aspx"&gt;great article&lt;/a&gt; on how to build this feature.
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;Download a master page from one of the SharePoint sites that has the latest code for you to use as the template within the feature.
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;&lt;strong&gt;REVERT TO SITE DEFINITION AND ACTIVATE FEATURE
&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;Under site settings look and feel, click reset to site definition. This will disregard all your SharePoint Designer changes. Thereafter, active the feature to start using the customized master page again. Repeat this step on every site that you want to use the central copy of the master page on the file system.
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;img src="http://philwicklund.com/Lists/Photos/090808_2136_Consolidati1.png" alt=""&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;
		&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;Now all your sites that have that feature activated will be using ONE copy of your code. Edit that master page ONCE, and that change will get propagated EVERWHERE! This will save you a lot of time and money in the long run!
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;&lt;strong&gt;DISABLE DESIGNER SO THE MISTAKE WON'T HAPPEN AGAIN
&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;This step is optional, but highly recommended. Designer can be suicide for your power users, because they can easily break your sites and cause inconsistency in your farm. If you want to be certain your sites are using YOUR master page, and won't get customized by someone not in IT, you should consider this step. The only downfall is that you won't be able to build workflows with Designer, but you should use Visual Studio for that anyways (check &lt;a href="http://philwicklund.com/archive/2008/02/09/deploying-a-net-visual-studio-workflow-into-a-sharepoint-list-in-10-easy-steps-part-1-of-2-creating-the-workflow.aspx"&gt;here&lt;/a&gt; if you're not convinced on how easy it is).
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt; You disable designer at the site definition level. For every site type that you don't want people using designer in, you'll need to edit its ONET.XML file.
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;&lt;br&gt;&lt;img src="http://philwicklund.com/Lists/Photos/090808_2136_Consolidati2.png" alt=""&gt;
		&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt; Inside the project tag, add the DisableWebDesignFeatures tag, and specify wdfopensite to prevent all sites using this site definition from opening them with designer:
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;&lt;img src="http://philwicklund.com/Lists/Photos/090808_2136_Consolidati3.png" alt=""&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;
		&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;Save the file and do an IISRESET. Repeat this process on other site definitions in your farm, and on each web front end.
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;Good luck!&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/nBtJcsqgyWTsGMrpY_90Up2v-zI/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/nBtJcsqgyWTsGMrpY_90Up2v-zI/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/nBtJcsqgyWTsGMrpY_90Up2v-zI/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/nBtJcsqgyWTsGMrpY_90Up2v-zI/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=X0Ynsxgb"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=lylHAptf"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?d=129" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=iXM13qeb"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?i=iXM13qeb" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=U8zW17Ub"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?d=54" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=JXqYM7pS"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?i=JXqYM7pS" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=uhG8qneM"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?d=52" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=3yn2XorY"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?i=3yn2XorY" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=BiyvJPuT"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?i=BiyvJPuT" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=M6mhQE8l"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?d=43" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/SharepointHappenings/~4/YENo2JGLSDA" height="1" width="1"/&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Phillip S. Wicklund</dc:creator><pubDate>Mon, 08 Sep 2008 16:33:00 GMT</pubDate><category domain="http://philwicklund.com/archive/tags/SharePoint Development/default.aspx">SharePoint Development</category><feedburner:origLink>http://philwicklund.com/archive/2008/09/08/consolidating-master-pages-customized-by-sp-designer.aspx</feedburner:origLink></item><item><title>A Picture is worth 1,000 Words: Achieving Good SharePoint Usability</title><link>http://feedproxy.google.com/~r/SharepointHappenings/~3/UMwwX_GxCtw/a-picture-is-worth-1000-words-achieving-good-sharepoint-usability.aspx</link><guid isPermaLink="false">/archive/2008/08/22/a-picture-is-worth-1000-words-achieving-good-sharepoint-usability.aspx</guid><description>&lt;div class="ExternalClassB1ED604865334B1E9389E0E97786695D"&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;One common situation I see with many clients I interact with is that their SharePoint sites are loaded down with wordiness. It's my opinion that sites that are overly wordy can kill usability fast, and it seems to me that SharePoint lends itself easily to be an extremely wordy application. This to me is the biggest issue that faces the SharePoint user interface (UI). Why don't people like SharePoint's UI? Too Wordy! &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;When you start dragging those ListViewWebParts on your pages, you quickly become a very textual site. For example, a few months ago I wrote a blog post about implementing a &lt;a href="http://philwicklund.com/archive/2008/05/02/enhancement-to-the-announcements-list-view-web-part.aspx"&gt;better Announcements web part&lt;/a&gt; because the one that comes out of box is SOOOO wordy and takes up a ton of real estate. See below: &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;&lt;strong&gt;&lt;em&gt;Out of box look and feel: &lt;/em&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="" src="http://philwicklund.com/Lists/Photos/082208_2122_APictureisw1.png"&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;&lt;strong&gt;&lt;em&gt;Customized Look and Feel:&lt;br&gt;&lt;br&gt;&lt;img alt="" src="http://philwicklund.com/Lists/Photos/082208_2122_APictureisw2.png"&gt; &lt;/em&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;img alt="" src="http://philwicklund.com/Lists/Photos/082208_2122_APictureisw3.png" align="right"&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;I think the difference is striking. The out of box one is so wordy, you don't know where to start, whereas the bottom is clear and articulate, allowing for the user to quickly scan through the information. Most of the out of box SharePoint web parts are overly wordy like this in my opinion, that is why I suggest you don't clutter your pages with too many web parts! This is especially true for things like calendars, documents, and discussion boards. As soon as you start dropping those on the page, end users are lost in a wordy mess and will have a harder time finding information. The trick is that you NEED to make it EASY for them to find stuff. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;Instead, I suggest a approach that leverages the left navigation to drive users to content, especially for calendars, documents, and discussion boards and other built in lists/libraries. Those three especially should never be on main landing pages. Rather, link the user straight to the library or list itself. The user is less likely to glaze over information because there's only one type of information on the page and that makes it easier to know what they are looking at. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;Another big area that people need to pay attention to is &lt;strong&gt;using graphics, not words&lt;/strong&gt;, to drive users to the main areas of the site. Like I said earlier, people glaze over text and it is rarely ever even read! So don't rely on it! However, people's eyes connect well with graphics, which draw their attention much more easily. Use graphics, not words to drive navigation and highlight main areas/features of your sites. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;img alt="" src="http://philwicklund.com/Lists/Photos/082208_2122_APictureisw4.png" align="right"&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;The image below features a site I put together for a company (logo and name of company removed) that uses graphics to help drive end users to the main areas of the site. Rather than cram a ton of info on one page, I'm using the left nav to link to all the activities and content, as well as using graphics in the main area to call out &amp;quot;featured activities&amp;quot;. This is a much more usable approach because users are drawn to the graphics to tell them what they can do, and are not bogged down with a wordy page that they won't read (in which case they'll feel lost and get mad). &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;(click image for full size)&lt;br&gt;&lt;a href="http://philwicklund.com/Lists/Photos/customerpage.png"&gt;&lt;img alt="" src="http://philwicklund.com/Lists/Photos/082208_2122_APictureisw5.png" border="0"&gt;&lt;/a&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;With just a few seconds of looking, a user can quickly identify the value of the site and what they can do with it. If you have an overly wordy and overly crowded SharePoint site, it won't be used or adopted, and it will leave a bad taste in your end user's mouths. This is because they can't quickly find what they want and they give up. Do you remember what first attracted people to &lt;a href="http://google.com/"&gt;Google&lt;/a&gt;, amidst notable competition? Less is more. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt"&gt;&lt;span style="font-family:Verdana"&gt;I believe the same is true for your SharePoint sites. However, that is &amp;quot;just my 2 cents&amp;quot; &lt;/span&gt;&lt;span style="font-family:Wingdings"&gt;J&lt;/span&gt;&lt;span style="font-family:Verdana"&gt;. &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;Phil &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;&lt;strong&gt;&lt;em&gt;&lt;/em&gt;&lt;/strong&gt;&lt;/span&gt; &lt;/p&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/V-3sjycAcuXwPEWWk7Am8KPy00s/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/V-3sjycAcuXwPEWWk7Am8KPy00s/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/V-3sjycAcuXwPEWWk7Am8KPy00s/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/V-3sjycAcuXwPEWWk7Am8KPy00s/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=y1vHGITv"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=oWO39aDC"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?d=129" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=MnJoscCP"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?i=MnJoscCP" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=kXxoK97w"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?d=54" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=pfshZC8H"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?i=pfshZC8H" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=tFIk6Hox"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?d=52" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=0YW9Gmqy"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?i=0YW9Gmqy" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=FtjJFS3S"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?i=FtjJFS3S" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=n1Uw2PHp"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?d=43" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/SharepointHappenings/~4/UMwwX_GxCtw" height="1" width="1"/&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Phillip S. Wicklund</dc:creator><pubDate>Fri, 22 Aug 2008 16:19:00 GMT</pubDate><category domain="http://philwicklund.com/archive/tags/Best Practices/default.aspx">Best Practices</category><category domain="http://philwicklund.com/archive/tags/SharePoint Development/default.aspx">SharePoint Development</category><feedburner:origLink>http://philwicklund.com/archive/2008/08/22/a-picture-is-worth-1000-words-achieving-good-sharepoint-usability.aspx</feedburner:origLink></item><item><title>SQL Data in SharePoint? DataFormWebPart vs. SPGridView</title><link>http://feedproxy.google.com/~r/SharepointHappenings/~3/bbPLV4g29Ag/displaying-sql-data-in-sharepoint-dataformwebpart-vs-spgridview.aspx</link><guid isPermaLink="false">/archive/2008/08/15/displaying-sql-data-in-sharepoint-dataformwebpart-vs-spgridview.aspx</guid><description>&lt;div class="ExternalClassAC1F1B87DAC14A13BAD07B78E1759489"&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;When it comes to displaying SQL data (really any data set), there are two main approaches to take to get that data in your SharePoint Sites. The first is the SPGridView, and the Second is the DataFormWebPart. Both approaches have very clear strengths and weaknesses, and this is what I intend to discuss in this post. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:14pt;font-family:Verdana"&gt;&lt;strong&gt;DataFormWebPart &lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt"&gt;&lt;span style="font-family:Verdana"&gt;The DataFormWebPart is most commonly seen and used in conjunction with SharePoint Designer. It comes with Designer right out of box, and is exceptionally convenient and an easy way to build your own web parts to display data from various sources. What is great for some people, is that you never need to write a single line of code, however, I often get to a place where I need to customize the auto-generated XSL to meet custom business needs, but I don't consider that programming (just finessing &lt;/span&gt;&lt;span style="font-family:Wingdings"&gt;J&lt;/span&gt;&lt;span style="font-family:Verdana"&gt; ). &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;In fact, the DataFormWebPart is the one of only two reasons I ever use Designer for anything (the other being workflows). I would say that I build three quarters of all my web parts as DataFormWebParts because of the flexibility, speed of creation, and their ease of use. However, the problem poised to developers that use the DataFormWebPart is that connections to SQL databases has been disabled by Microsoft. It was enabled in FrontPage 2003 with V2 of SharePoint, but many speculate that because of security concerns, they pulled the plug just prior to the release of V3. This however, you can circumvent. Read my post on &lt;a href="http://philwicklund.com/archive/2007/06/28/writing-your-own-custom-dataformwebpart-with-c-rather-than-sharepoint-designer.aspx"&gt;writing your own customer DataFormWebPart with C# rather than SharePoint designer&lt;/a&gt;, to learn how to connect a DataFormWebPart programmatically to a custom web service that returns SQL data as XML, and is in turn transformed to HTML via XSL. This process is a lot more overhead than it once was, however, there are clear benefits to taking these extra steps: &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;&lt;strong&gt;&lt;em&gt;Advantages &lt;/em&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ul style="margin-left:54pt"&gt;
&lt;li&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;Very Flexible Presentation – With XSL you can do almost anything. The base GridView control, conversely, is rather limited in how the DataSet that is bound to the control can be rendered. With a DataFormWebPart, all that data comes back as XML and can be transformed any way you like. See the &lt;em&gt;Approaches in Action&lt;/em&gt; section to view some examples. &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;Sorting, Filtering, and Grouping with the DataFormWebPart is a no-brainer, it is all done for you, automatically! The only drawback is that it forces a post back, so if your requirements need AJAX, you're out of luck. &lt;/span&gt;&lt;/div&gt;
&lt;p&gt; &lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;&lt;strong&gt;&lt;em&gt;Disadvantages &lt;/em&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ul style="margin-left:54pt"&gt;
&lt;li&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;A lot of overhead required to get a DataFormWebPart to connect to a SQL resource. However, this &amp;quot;overhead&amp;quot; is about the same as the other approach, so it is more of a mute point. I point it out though, just to say it is not your typical SharePoint Designer experience that you may be used to. &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;No debugging. You can't debug XSL (step through XSL), so this leaves you needing to take the Pac-Man approach to development. Build a little. Test a lot. Rinse, lather, and repeat. &lt;/span&gt;&lt;/div&gt;
&lt;p&gt; &lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;&lt;strong&gt;&lt;em&gt;Main Business Driver &lt;/em&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;Your usability requirements will usually cause you to choose the DataFormWebPart over the SPGridView. The XSL is INCREDIBLY flexible, allowing you to do all kinds of cool things that you may not be able to do with a GridView control, for example. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:14pt;font-family:Verdana"&gt;&lt;strong&gt;SPGridView &lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt"&gt;&lt;span style="font-family:Verdana"&gt;The SPGridView is fundamentally a 'jazzed-up&amp;quot; GridView control. You take a DataSet, possibly from a stored procedure, and you set it to the DataSource's property of a DataView object, to whom you bind to a SPGridView. All nice and simple, the way we've always done things even since the beginning of time as we know it (or at least since ADO.NET has been around &lt;/span&gt;&lt;span style="font-family:Wingdings"&gt;J&lt;/span&gt;&lt;span style="font-family:Verdana"&gt;). &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;However, the SPGridView gives us some things that the base GridView doesn't, mainly being the SharePoint &amp;quot;look and feel&amp;quot;. All the SharePoint styles will apply themselves, making the SPGridView look very similar to a SharePoint list. This in it of itself isn't an advantage over the DataFormWebPart, because that control does the same thing, but would leave to you conclude that you would rarely ever use just a GridView in a SharePoint environment because most of the time you'd enjoy that consistency. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;&lt;strong&gt;&lt;em&gt;Advantages &lt;/em&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ul style="margin-left:54pt"&gt;
&lt;li&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;Familiarity. Most people are familiar with how to use a GridView, so it wouldn't take much to upgrade to an SPGridView. &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;Typical debugging experience. You debug the SPGridView just like you would any .NET code. This is a BIG advantage over the DataFormWebPart. &lt;/span&gt;&lt;/div&gt;
&lt;p&gt; &lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;&lt;strong&gt;&lt;em&gt;Disadvantages &lt;/em&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ul style="margin-left:54pt"&gt;
&lt;li&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;Not a very flexible user interface. If you have complicated usability requirements or UI Mock-ups, the SPGridView may not be flexible enough for you.&lt;strong&gt; &lt;/strong&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;A lot more overhead is required for sorting, filtering, and grouping, whereas the DataFormWebPart is seamless in this regard.&lt;strong&gt; &lt;/strong&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;&lt;strong&gt;&lt;em&gt;Main Business Driver &lt;/em&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;The relative ease of use of a SPGridView is a large bonus, and what is even bigger is the ability to debug and step through your code. People without a lot of XSL experience will want to go this route as well. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:14pt;font-family:Verdana"&gt;&lt;strong&gt;Approaches in Action &lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;Notice how the presentation of the DataFormWebPart is highly customizable (figure 1). The report below is of a number of SharePoint sites, and some meta-data. My usability requirements specified that there needs to be a check box next to each site, and when the user checks the box, the entire row is highlighted. Additionally, at the top of the web part I added some aggregate data. This would not be &lt;strong&gt;AS&lt;/strong&gt; easy with a SPGridView (it is possible), but with the DataFormWebPart's XSL, it was a snap! Lastly, look at the built-in sorting, filtering, and grouping. All that functionality was effortless! Figure 1 really only demonstrates the basic concept of the potential here. Within the XSL, you could input any HTML you want, and in effect the sky is really the limit. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="" src="http://philwicklund.com/Lists/Photos/081508_2120_DisplayingS1.png"&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="color:#4f81bd"&gt;&lt;strong&gt;&lt;span style="font-size:9pt"&gt;Figure 1&lt;/span&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt; &lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;The SPGridView example is a screen shot (figure 2) from my &lt;a href="http://philwicklund.com/freeware/splimitedaccessdiscovery/default.aspx"&gt;SPLimitedAccessDiscovery&lt;/a&gt; tool you can download for free. That tool features a SPGridView that is used to present the results of my report in a grid format (right image, under &amp;quot;Understanding!&amp;quot;). However, notice the how the styling looks almost identical to the SharePoint look and feel (left image, under &amp;quot;Confusion?&amp;quot;). They look almost identical. In fact, I bet SharePoint is using SPGridView through the product. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="" src="http://philwicklund.com/Lists/Photos/081508_2120_DisplayingS2.png"&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="color:#4f81bd"&gt;&lt;strong&gt;&lt;span style="font-size:9pt"&gt;Figure 2&lt;/span&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt; &lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;So there you have it! I would say that I most often pick the SPGridView these days; however, if I know I'm working toward a highly sophisticated interface, the DataFormWebPart remains a very strong approach to presenting SQL data. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;Good luck! &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;Phil &lt;/span&gt;&lt;/p&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/bNhlv8NCfL-rE5U8rzZHA_hje2o/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/bNhlv8NCfL-rE5U8rzZHA_hje2o/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/bNhlv8NCfL-rE5U8rzZHA_hje2o/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/bNhlv8NCfL-rE5U8rzZHA_hje2o/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=n0SdNJoR"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=K8BqHZPR"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?d=129" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=8m6Bi0FB"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?i=8m6Bi0FB" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=CtfEENUT"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?d=54" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=8bFw1TkJ"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?i=8bFw1TkJ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=jDuGg8ba"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?d=52" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=wThXrH3w"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?i=wThXrH3w" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=qzdQbF6s"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?i=qzdQbF6s" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=C0oqBCC7"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?d=43" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/SharepointHappenings/~4/bbPLV4g29Ag" height="1" width="1"/&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Phillip S. Wicklund</dc:creator><pubDate>Fri, 15 Aug 2008 16:17:00 GMT</pubDate><category domain="http://philwicklund.com/archive/tags/SharePoint Development/default.aspx">SharePoint Development</category><feedburner:origLink>http://philwicklund.com/archive/2008/08/15/displaying-sql-data-in-sharepoint-dataformwebpart-vs-spgridview.aspx</feedburner:origLink></item><item><title>Business Intelligence webparts via Dundas OLAP Services</title><link>http://feedproxy.google.com/~r/SharepointHappenings/~3/MXKaCvZhppg/business-intelligence-via-dundas-olap-services-within-sharepoint.aspx</link><guid isPermaLink="false">/archive/2008/08/06/business-intelligence-via-dundas-olap-services-within-sharepoint.aspx</guid><description>&lt;div class="ExternalClass1F3CD2DEA073438DAD47D01DF069976C"&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;Hey All! I've been REALLY heads down lately, putting in big hours at a company, and I haven't had much free time to blog over the past couple weeks. Sorry for that! However, I've been keeping busy with some really cool stuff! &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;I'm on a Business Intelligence (BI) project right now, and I'm writing some web parts that present data via &lt;a href="http://www.dundas.com/"&gt;Dundas OLAP Services&lt;/a&gt; from some SQL Analysis Services cubes. Tangent – BI work rocks! It's been my most fun project to work on, to date! &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;Here are some screen shots of my web parts: &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="" src="http://philwicklund.com/Lists/Photos/080608_2205_BusinessInt1.png"&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;Dundas is a great tool to leverage. They have inherit SharePoint web parts, right out of box. Unfortunately, my business requirements were too complicated to leverage these, but they also publish the base OLAP services charting that can be leveraged programmatically via any ASP.NET application. In my case, I simply dropped the Dundas chart on a CONTROL TEMPLATE, and loaded that template via my web part. So easy! Notice the red box, you can load many reports into one chart, and the end users can toggle between them. Also, you through that toolbar, the end user can toggle chart colors as well as chart type (bar, line, area, etc.). Very slick indeed. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;Here's a sample of some averages plotted with a column chart: &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="" src="http://philwicklund.com/Lists/Photos/080608_2205_BusinessInt2.png"&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt"&gt;&lt;span style="font-family:Verdana"&gt;What's REALLY SWEET is that you can drill into the data. For example, if you click on a date or a column, you can see how that metric is composed. For me, when the user clicks the column, they get an hourly breakdown for that day's data (it's in military time – gotta fix that &lt;/span&gt;&lt;span style="font-family:Wingdings"&gt;J&lt;/span&gt;&lt;span style="font-family:Verdana"&gt;): &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="" src="http://philwicklund.com/Lists/Photos/080608_2205_BusinessInt3.png"&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;So, to summarize, Microsoft is getting it right with the track they're taking on business intelligence – and I totally see why they bought out Dundas, it's an impressive tool! &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;Good luck! &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;Phil&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/lBuotD8KmlLIsahY8kuWnG-vY38/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/lBuotD8KmlLIsahY8kuWnG-vY38/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/lBuotD8KmlLIsahY8kuWnG-vY38/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/lBuotD8KmlLIsahY8kuWnG-vY38/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=7iZTqzXE"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=1FtylYY8"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?d=129" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=uCjLakRH"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?i=uCjLakRH" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=g72NoQIj"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?d=54" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=xBQro0zk"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?i=xBQro0zk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=Kilk0kiL"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?d=52" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=sDC30Gae"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?i=sDC30Gae" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=IViE408u"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?i=IViE408u" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=sqG0ZZdS"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?d=43" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/SharepointHappenings/~4/MXKaCvZhppg" height="1" width="1"/&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Phillip S. Wicklund</dc:creator><pubDate>Wed, 06 Aug 2008 17:02:00 GMT</pubDate><category domain="http://philwicklund.com/archive/tags/Business Intelligence/default.aspx">Business Intelligence</category><category domain="http://philwicklund.com/archive/tags/SharePoint Development/default.aspx">SharePoint Development</category><feedburner:origLink>http://philwicklund.com/archive/2008/08/06/business-intelligence-via-dundas-olap-services-within-sharepoint.aspx</feedburner:origLink></item><item><title>Announcing “Happenings Lunch &amp; Learns”!!!</title><link>http://feedproxy.google.com/~r/SharepointHappenings/~3/k5n5zY_ryxs/announcing-“happenings-lunch-amp-learns”.aspx</link><guid isPermaLink="false">/archive/2008/07/28/announcing-“happenings-lunch-amp-learns”.aspx</guid><description>&lt;div class="ExternalClass696F0975E5B3428F806EDAFA4E1E88E2"&gt;&lt;p&gt;&lt;img align="right" src="http://philwicklund.com/Lists/Photos/072908_0305_AnnouncingH1.jpg" alt=""&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;Hello all!
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;I'm excited to announce a little experiment I'm going to start doing, Lunch &amp;amp; Learns! My hope is that through short presentations, SharePoint professionals will be able to pick up on many of the experiences, tips and tricks, and best practices that I've come to know around SharePoint development and administration.&lt;strong&gt;
			&lt;/strong&gt;I've come to realize that everybody doesn't necessarily learn in the same way. Some prefer reading, and some prefer watching. With these Lunch &amp;amp; Learns, I hope to reach that other audience of professionals – those who like to sit back and watch!
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;The format for my lunch &amp;amp; learns is going to be one hour sessions held over Microsoft Live meeting. Since all the sessions will be free and I have no motive, save community contribution, I have no reason to collect any personal information so joining the lunch &amp;amp; learns will be a snap. Just click a URL! Additionally, I'm going to record all the meetings, so individuals who can't make it so a session, will be able to view it at their leisure at a later date.
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;&lt;strong&gt;THE FIRST THREE LUNCH &amp;amp; LEARNS ARE…
&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;&lt;span style="color:#ffad57;font-family:Verdana;font-size:12pt"&gt;&lt;strong&gt;What you Need to Know to Effectively Manage your SharePoint Development Team
&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;&lt;span style="color:#ffad57;font-family:Verdana;font-size:12pt"&gt;&lt;strong&gt;Visual Studio Workflows deployed to SharePoint in 10 Easy Steps
&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;&lt;span style="color:#ffad57;font-family:Verdana;font-size:12pt"&gt;&lt;strong&gt;SPGridView, Displaying Data is as Easy as 1, 2, 3!
&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;Go to &lt;a href="http://philwicklund.com/lunchandlearn"&gt;http://philwicklund.com/lunchandlearn&lt;/a&gt; to learn more, or click on the top navigation. Hope to see you on August 7&lt;sup&gt;th&lt;/sup&gt; for my inaugural Lunch &amp;amp; Learn!
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;Phil&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/sM6eb2pvZ3fIBizkXxQIwnSKBjg/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/sM6eb2pvZ3fIBizkXxQIwnSKBjg/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/sM6eb2pvZ3fIBizkXxQIwnSKBjg/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/sM6eb2pvZ3fIBizkXxQIwnSKBjg/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=x2hIOT5zuNY:Z4xwENvcLn0:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=x2hIOT5zuNY:Z4xwENvcLn0:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=x2hIOT5zuNY:Z4xwENvcLn0:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?i=x2hIOT5zuNY:Z4xwENvcLn0:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=x2hIOT5zuNY:Z4xwENvcLn0:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=x2hIOT5zuNY:Z4xwENvcLn0:KwTdNBX3Jqk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?i=x2hIOT5zuNY:Z4xwENvcLn0:KwTdNBX3Jqk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=x2hIOT5zuNY:Z4xwENvcLn0:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=x2hIOT5zuNY:Z4xwENvcLn0:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?i=x2hIOT5zuNY:Z4xwENvcLn0:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=x2hIOT5zuNY:Z4xwENvcLn0:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?i=x2hIOT5zuNY:Z4xwENvcLn0:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=x2hIOT5zuNY:Z4xwENvcLn0:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/SharepointHappenings/~4/k5n5zY_ryxs" height="1" width="1"/&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Phillip S. Wicklund</dc:creator><pubDate>Mon, 28 Jul 2008 22:02:00 GMT</pubDate><category domain="http://philwicklund.com/archive/tags/Lunch &amp; Learn Events/default.aspx">Lunch &amp; Learn Events</category><feedburner:origLink>http://philwicklund.com/archive/2008/07/28/announcing-“happenings-lunch-amp-learns”.aspx</feedburner:origLink></item><item><title>FREEWARE Release of SPLimitedAccessDiscovery!</title><link>http://feedproxy.google.com/~r/SharepointHappenings/~3/GStkkFAZtGA/freeware-release-of-splimitedaccessdiscovery-1.aspx</link><guid isPermaLink="false">/archive/2008/07/22/freeware-release-of-splimitedaccessdiscovery-1.aspx</guid><description>&lt;div class="ExternalClass4B02D66F34DD468699156C0829BA2C26"&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;I am pumped to release this great free tool, SPLimitedAccessDiscovery! This tool breaks down what &amp;quot;Limited Access&amp;quot; means on your SharePoint sites, showing all the SharePoint objects (folders, lists, and items) that are breaking inheritance when the account given permissions doesn't have access to the parent site! &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;Ever wonder what &amp;quot;limited access&amp;quot; meant in your SharePoint permissions? Ever try to uncover the instances of unique permissions within your SharePoint sites, trying to find out what is causing &amp;quot;limited access&amp;quot; for your account(s)? Did you become angry when you realized it could take hours of clicking around trying to find all these instances of broken inheritance? &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;&lt;br&gt;Well, Never Fear! SPLimitedAccessDiscovery is here! &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;&lt;br&gt;SPLimitedAccessDiscovery provides you with a report on the &amp;quot;why&amp;quot; behind your limited access instances within your SharePoint sites. Go to &lt;a href="http://philwicklund.com/freeware/splimitedaccessdiscovery"&gt;http://philwicklund.com/freeware/splimitedaccessdiscovery&lt;/a&gt; to download, view installation instructions, screen shots, and a more detailed solution description. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;&lt;strong&gt;SOME SCREEN SHOTS! &lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="" src="http://philwicklund.com/Lists/Photos/072208_2151_FREEWARERel1.png"&gt;&lt;strong&gt; &lt;/strong&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;img alt="" src="http://philwicklund.com/Lists/Photos/072208_2151_FREEWARERel2.png"&gt;&lt;strong&gt; &lt;/strong&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:16pt;font-family:Verdana"&gt;&lt;strong&gt;ENJOY! &lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;Phil&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/lEJ2E1CrIFPOCW6jKLkPb1gz4Ks/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/lEJ2E1CrIFPOCW6jKLkPb1gz4Ks/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/lEJ2E1CrIFPOCW6jKLkPb1gz4Ks/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/lEJ2E1CrIFPOCW6jKLkPb1gz4Ks/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=HkXXByxc"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=wDATCfXu"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?d=129" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=V2TEnLRw"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?i=V2TEnLRw" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=GKEelzWE"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?d=54" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=vysdzDDg"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?i=vysdzDDg" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=NGQZLOwa"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?d=52" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=260ly0YK"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?i=260ly0YK" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=OUUIFulN"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?i=OUUIFulN" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=pNBmFfpz"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?d=43" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/SharepointHappenings/~4/GStkkFAZtGA" height="1" width="1"/&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Phillip S. Wicklund</dc:creator><pubDate>Tue, 22 Jul 2008 16:49:00 GMT</pubDate><category domain="http://philwicklund.com/archive/tags/Freeware Releases/default.aspx">Freeware Releases</category><feedburner:origLink>http://philwicklund.com/archive/2008/07/22/freeware-release-of-splimitedaccessdiscovery-1.aspx</feedburner:origLink></item><item><title>Governance Strategy for SharePoint Development</title><link>http://feedproxy.google.com/~r/SharepointHappenings/~3/H2RXLl8dWiU/phil’s-ivory-tower-governance-strategy-for-sharepoint-development.aspx</link><guid isPermaLink="false">/archive/2008/07/20/phil’s-ivory-tower-governance-strategy-for-sharepoint-development.aspx</guid><description>&lt;div class="ExternalClassBED8AD8F359840679FC134038E026707"&gt;&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;I'm a big fan of delegation and accountability when it comes to governance strategies, and the SharePoint development lifecycle stands for no exception. If any of you remember, I lead a large SharePoint team at a fortune 500 company for a few years, and I have some battle wounds to prove it. Fortunately for me, the IT department had great senior management, who valued environment isolation which saved us a lot of pain in the end, and I was able to glean some great wisdom from their experiences. However, looking back to those days I can't help but to wish I had done a few things differently. I can't help but to think that more accountability and even more environment isolation would've been a great asset to us, despite what could've been perceived as an inconvenience.
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;Many companies I see don't even have a development lifecycle governance plan, and those that do typically structure it so that Production servers are locked down, but everything else is fair game. Developers, testers, business analysts, and all their moms are all poking around in the various environments and before you know it, you have a mess to clean up and you're always crossing your fingers when you make a production change.  I definitely know from experience that when I was working in a test environment, I would often get frustrated because my web front end's configurations are not consistent and didn't know why, or something was working a few days ago, but for some reason it is not now. The of the root problem always goes back to there are just &amp;quot;too many hens in the kitchen&amp;quot;. You can spend a lot of wasted time fighting fires in environments, and a little more governance can save you a lot of money when you think of how much that time is costing you.
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;The figure below is my White Ivory Tower model of how I would structure the deployment process in a medium or large server farm. Much of this article isn't necessary SharePoint specific, but I am often surprised as how often people ask me how I would go about this, so it seemed like a relevant &amp;quot;brain dump&amp;quot; for a SharePoint blog nevertheless.
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;You'll notice the three recommended farms for any one production farm, as well as the different &amp;quot;gates&amp;quot; where I will later be describing the roles of the different gate keepers and how those individuals will fit into the proposed governance model.
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;&lt;img src="http://philwicklund.com/Lists/Photos/072008_0527_GovernanceS1.png" alt=""&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;
		&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Verdana;font-size:14pt"&gt;&lt;strong&gt;Key Features of this Model
&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;SharePoint Solution Packages are the key to deploying updates and customizations across the farms.
&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;Each farm has an individual that is the dedicated gatekeeper, and is held accountable to environment quality and cleanliness, as well as knowing what is changing when, and for what reasons, and how to back out those changes if something goes wrong.
&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;Each &amp;quot;gate&amp;quot; requires approval from a designated Change Approval Board (CAB), before changes can be made to the environment.
&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Verdana;font-size:14pt"&gt;&lt;strong&gt;Key Benefits of this Model
&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;Environment stability and dependability across all farms is sure to be high because of the required change approval process. If something breaks, you'll know what change broke it, and how to roll it back.
&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;Quality Assurance and test results are sure to be more dependable because of the stability and consistency in the environments, making for a better product in the end.
&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;Production roll-outs are sure to be less risky because the implementation steps have been tried and tested.
&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Verdana;font-size:14pt"&gt;&lt;strong&gt;Environment Roles
&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;&lt;strong&gt;DEVELOPER VPCs
&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p style="margin-left:36pt"&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;Individual development virtual personal computers (VPC) are changing what the role of a development environment is. It is no longer the &amp;quot;sandbox&amp;quot; it once was, where every developer has full administrator rights, and can actively develop and unit test their code. The major downfall to this sandbox mentality is the inevitability of developers stepping on each other's toes, and the environment is sure to become a mess. It is especially necessary with SharePoint development to provide each developer with their own isolated environment, because SharePoint development involves a lot of hands on server configuring and deploying. If each developer has their own private and isolated sandbox they will be much more effective because they won't have to worry about other people messing up your work, and they will always have their own stable place to work – no more development delays because you need to rebuild the server because it got too irregular. With VPCs, you can play, prototype, and dig in to your heart's content, because if you ever can't get something working, just throw the VPC away and grab a working copy. This is much faster than re-installing Win2k3 and MOSS on physical hardware.
&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left:36pt"&gt;
 &lt;/p&gt;&lt;p style="margin-left:36pt"&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;Another key feature with VPCs in this model is the development of SharePoint Solution Packages. Solutions are pivotal to keeping things consistent in SharePoint, and they also make for a great tool for a team of developers. Notice on the left of the diagram that these solutions have their roots at the VPC level, and are promoted all the way up to Production. For more information, see this blog post of mine on how to &lt;a href="http://philwicklund.com/archive/2007/06/13/how-to-effectively-manage-your-"&gt;effectively manage your SharePoint customizations across a large team&lt;/a&gt;.
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;&lt;strong&gt;DEVELOPMENT
&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p style="margin-left:36pt"&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;The development environment should be where all the work of the individual developers comes together before it goes to the test environment. A better name for it might be the &amp;quot;integration&amp;quot; environment. 
&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left:36pt"&gt;
 &lt;/p&gt;&lt;p style="margin-left:36pt"&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;This should be a clean, stable, and dependable environment. Ever lose a day or two of development because this wasn't the case? As the diagram shows, it doesn't need to be a complicated farm, one server will do. However, a big feature of this farm is what it doesn't have. Two key things it doesn't have are that no developers have access to remote into it, and visual studio is not installed on it (except remote debugger of course). The team technical lead, lead architect, or developer resource manager should be the traffic cop of this environment and should facilitate the integration of the different efforts of his/her developers. In doing this, the environment itself will be reliable, but just as important, the integration of the software itself will be more dependable and you'll catch more problems yourself, before test or (God forbid) production does. A big aspect of the accountability that is placed on Gate 1, is the quality of the software that is being promoted to test. Isolating the majority of the development team out of this environment will help immensely in the gatekeeper's effort to do this, because they'll know what changed, when, and why.
&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left:36pt"&gt;
 &lt;/p&gt;&lt;p style="margin-left:36pt"&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;GATE 1&lt;br&gt;&lt;em&gt;Gate Keeper: Technical Lead or Lead SharePoint Architect
&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left:36pt"&gt;
 &lt;/p&gt;&lt;ul style="margin-left:72pt"&gt;&lt;li&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;Key Point of integration of updates coming from various developers on the team.
&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;Gatekeeper can better hold developers accountable to well unit tested code because of tighter control and a closer eye on changes and integration points.
&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;The gatekeeper is responsible to develop the implementation steps for product launches and updates, and the beginnings of any documentation for updates start at Gate 1.
&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;&lt;strong&gt;QUALITY ASSURANCE (TEST)
&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p style="margin-left:36pt"&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;Obviously no developers should have access to this environment, because of the need to have quality and reliable tests. A frequently changing test environment is sure to produce a poorly tested product because the variables are uncontrollable and ever changing. I will even go so far to say that the Technical Lead should not have access here either. This is for two reasons. Firstly, a good production roll-out should have properly documented implementation steps as well as back out steps if something goes wrong. These steps NEED to be tested as well! Good migration steps are just as important as good code! The only way to test these steps is by having somebody other than the author walk through them, and the best place to do that is the test environment. Secondly, SharePoint solution packages make deployments really easy in SharePoint, and you won't need someone very technical to do updates. Your QA staff should be doing a &amp;quot;dry run&amp;quot; of your production roll-out steps. Even if solution packages where not available, the documented steps themselves should be detailed enough for a monkey to walkthrough them, and if they're not, you shouldn't go to production.
&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left:36pt"&gt;
 &lt;/p&gt;&lt;p style="margin-left:36pt"&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;Another key note about this environment is that it really needs to be treated like production. Things shouldn't change here hap hazardly, and I'd even recommend setting a Change Approval Board (CAB) for gate 2, and putting a max of two changes per week. Too many changes per week will result in bad tests, unless you don't have very many test cases I suppose.
&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left:36pt"&gt;
 &lt;/p&gt;&lt;p style="margin-left:36pt"&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;GATE 2&lt;br&gt;&lt;em&gt;Gate Keeper: Quality Assurance Lead
&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left:36pt"&gt;
 &lt;/p&gt;&lt;ul style="margin-left:72pt"&gt;&lt;li&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;First line of defense for bad production roll-outs, and the first place where a CAB is necessary. The Technical Lead, QA Lead, and typically the project manager should mutually sing-off on any updates to the QA environment.
&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;Typically the QA Lead will perform all the updates that get approved through the gate, not the Technical Lead. This will fool-proof the steps for an eventual production roll-out and the steps themselves will be of higher quality. This will reduce the risk of the eventual production upgrade.
&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;Rough draft of implementation steps should be provided as a deliverable to the project manager during the CAB approval request, showing additional due diligence and preparation for an eventual production roll-out.
&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;&lt;strong&gt;PRODUCTION
&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p style="margin-left:36pt"&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;This is the environment that most companies get right. Nobody has access to this except for individuals in central IT operations, and changes to this environment are never hap hazard. A good IT department will usually have a department wide production change approval process to get through, and changes will usually never happen more than twice per month, unless it's an emergency.
&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left:36pt"&gt;
 &lt;/p&gt;&lt;p style="margin-left:36pt"&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;GATE 3&lt;br&gt;&lt;em&gt;Gate Keeper: IT Operations Administrator
&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left:36pt"&gt;
 &lt;/p&gt;&lt;ul style="margin-left:72pt"&gt;&lt;li&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;Department wide CAB approval required.
&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;Final draft of implementation steps required.
&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;Steps implemented by someone in central IT operations, not someone on the project team.
&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;&lt;strong&gt;CONTENT STAGING
&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p style="margin-left:36pt"&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;A lot of things in SharePoint don't require a strict approval process to make production changes. The point of SharePoint is easy, and fast content collaboration, and the afore mentioned gates are really meant for custom, home grown solutions - not content. A content staging environment is often desirable if you have a large company and high risk content pages with a large amount of people collaborating on that content. For instance, you can bet the home page of a billion dollar company needs an approval workflow before it can be changed. This can be done out of box with the MOSS publishing templates, but often times corporations what to further isolate the content approval to a whole separate farm, where the risk of &amp;quot;leaks&amp;quot; or unwanted changes is less likely. In that case, you'll typically have another gate keeper that is approving content, and that content is moved by pre-scheduled content deployment jobs setup in Central Administration. This is an entirely optional environment, and its usefulness depends largely on risk, and the number of individuals managing content.
&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left:36pt"&gt;
 &lt;/p&gt;&lt;p style="margin-left:36pt"&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;Additionally, I'm a firm believer that if a company is doing some internal SharePoint training to their end users, any training sites don't belong in either Production or QA. In fact, I would be closer to holding training in Production than I would QA, because of my strong feelings toward keeping that environment isolated. However, this content staging environment is the perfect place to spin up training, or other &amp;quot;sandbox&amp;quot; sites.
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;&lt;strong&gt;SQL CLUSTERS
&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p style="margin-left:36pt"&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;What can I say? Anybody with enough of a budget to build four farms with ten servers, is surly going to be able to afford to cluster their backend, right? The benefits to having redundant hardware go without saying…
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Verdana;font-size:14pt"&gt;&lt;strong&gt;Conclusions
&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;If you made it this far and you actually read everything I wrote, I'm thrilled because honestly this write up is admittedly a &amp;quot;white ivory tower&amp;quot; model. It is a model that lends itself to take short cuts. Setting up those three gates will take a lot of perseverance and determined leadership, and for many organizations will fly in the face of company culture. However, I do feel convicted that with the right individuals in those key leadership roles, this governance model will in the long run save a lot of money because of the savings in wasted time.
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;Anybody have a different model or any suggestions that have worked for them?
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Verdana;font-size:12pt"&gt;Phil&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/813jXtoA37xxfsl4qoDUOWz-qmc/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/813jXtoA37xxfsl4qoDUOWz-qmc/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/813jXtoA37xxfsl4qoDUOWz-qmc/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/813jXtoA37xxfsl4qoDUOWz-qmc/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=UPK-gdHXUZ4:OdhrSmQ0FkU:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=UPK-gdHXUZ4:OdhrSmQ0FkU:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=UPK-gdHXUZ4:OdhrSmQ0FkU:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?i=UPK-gdHXUZ4:OdhrSmQ0FkU:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=UPK-gdHXUZ4:OdhrSmQ0FkU:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=UPK-gdHXUZ4:OdhrSmQ0FkU:KwTdNBX3Jqk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?i=UPK-gdHXUZ4:OdhrSmQ0FkU:KwTdNBX3Jqk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=UPK-gdHXUZ4:OdhrSmQ0FkU:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=UPK-gdHXUZ4:OdhrSmQ0FkU:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?i=UPK-gdHXUZ4:OdhrSmQ0FkU:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=UPK-gdHXUZ4:OdhrSmQ0FkU:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?i=UPK-gdHXUZ4:OdhrSmQ0FkU:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=UPK-gdHXUZ4:OdhrSmQ0FkU:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/SharepointHappenings/~4/H2RXLl8dWiU" height="1" width="1"/&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Phillip S. Wicklund</dc:creator><pubDate>Sun, 20 Jul 2008 00:24:00 GMT</pubDate><category domain="http://philwicklund.com/archive/tags/Best Practices/default.aspx">Best Practices</category><category domain="http://philwicklund.com/archive/tags/SharePoint Development/default.aspx">SharePoint Development</category><feedburner:origLink>http://philwicklund.com/archive/2008/07/20/phil’s-ivory-tower-governance-strategy-for-sharepoint-development.aspx</feedburner:origLink></item><item><title>To my good friend in Tanzania…</title><link>http://feedproxy.google.com/~r/SharepointHappenings/~3/1By1xDmnMsc/to-my-good-friend-in-tanzania….aspx</link><guid isPermaLink="false">/archive/2008/07/18/to-my-good-friend-in-tanzania….aspx</guid><description>&lt;div class="ExternalClass5850786D98A84DE2B54D0949E967D1E1"&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;10 thousand plus unique visits in 6 months, from which the guy in Tanzania is easily my favorite! &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;img alt="" src="http://philwicklund.com/Lists/Photos/071808_1933_Tomygoodfri1.png"&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;Let me know if you start a user group, because I'd love to come speak at it for you! (Actually, it could be pretty convenient for me if I stop by next spring; I'll be going to Ethiopia around then to pick up my new son and/or daughter my wife and I are adopting!) &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;Ps. Google Analytics is pretty sweet (sorry about the plug MS - I'm still a dedicated Microsoft professional, but my heart is torn with these free tools they have..)&lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;Phil &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/iAXuGN4rag3c8JJB-0WfByhRwhY/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/iAXuGN4rag3c8JJB-0WfByhRwhY/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/iAXuGN4rag3c8JJB-0WfByhRwhY/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/iAXuGN4rag3c8JJB-0WfByhRwhY/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=-2UH1tupl20:renaQBaF210:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=-2UH1tupl20:renaQBaF210:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=-2UH1tupl20:renaQBaF210:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?i=-2UH1tupl20:renaQBaF210:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=-2UH1tupl20:renaQBaF210:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=-2UH1tupl20:renaQBaF210:KwTdNBX3Jqk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?i=-2UH1tupl20:renaQBaF210:KwTdNBX3Jqk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=-2UH1tupl20:renaQBaF210:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=-2UH1tupl20:renaQBaF210:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?i=-2UH1tupl20:renaQBaF210:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=-2UH1tupl20:renaQBaF210:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?i=-2UH1tupl20:renaQBaF210:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SharepointHappenings?a=-2UH1tupl20:renaQBaF210:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SharepointHappenings?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/SharepointHappenings/~4/1By1xDmnMsc" height="1" width="1"/&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Phillip S. Wicklund</dc:creator><pubDate>Fri, 18 Jul 2008 14:31:00 GMT</pubDate><category domain="http://philwicklund.com/archive/tags/Random/default.aspx">Random</category><feedburner:origLink>http://philwicklund.com/archive/2008/07/18/to-my-good-friend-in-tanzania….aspx</feedburner:origLink></item><item><title>Neat Calendar Rollup Webpart from KWizCom</title><link>http://feedproxy.google.com/~r/SharepointHappenings/~3/EVSJvJdS7IU/neat-calendar-rollup-webpart-from-kwizcom.aspx</link><guid isPermaLink="false">/archive/2008/07/17/neat-calendar-rollup-webpart-from-kwizcom.aspx</guid><description>&lt;div class="ExternalClass2A3BA02AD16648618D5388D5226232AA"&gt;&lt;p&gt;&lt;a href="http://www.kwizcom.com"&gt;KWizCom&lt;/a&gt; has a neat &lt;a href="http://www.kwizcom.com/ProductPage.asp?ProductID=175&amp;amp;ProductSubNodeID=176"&gt;calendar rollup webpart&lt;/a&gt; that I figured is worth showcasing. It can rollup multiple calendars across multiple sites, into one central calendar. Also, it can access exchange calendars as well, making it a pretty powerful tool. That and it is only $399 which makes it practically free!
&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;Screen shot (notice color coding, signifying the different calendar sources):
&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;&lt;img src="http://philwicklund.com/Lists/Photos/071708_1520_NeatCalenda1.png" alt=""&gt;
	&lt;/p&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/KztJQNdDoruxzMS6_T5S7gdabcY/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/KztJQNdDoruxzMS6_T5S7gdabcY/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/KztJQNdDoruxzMS6_T5S7gdabcY/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/KztJQNdDoruxzMS6_T5S7gdabcY/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=sh0Bel8u"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=rq8kPciy"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?d=129" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=dY7VqkCy"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?i=dY7VqkCy" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=lNoePI3H"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?d=54" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=YytOjoIz"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?i=YytOjoIz" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=smK17Yuw"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?d=52" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=tMMKhNlS"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?i=tMMKhNlS" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=q3xPZBQV"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?i=q3xPZBQV" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SharepointHappenings?a=5wjN6RV7"&gt;&lt;img src="http://feeds.feedburner.com/~f/SharepointHappenings?d=43" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/SharepointHappenings/~4/EVSJvJdS7IU" height="1" width="1"/&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Phillip S. Wicklund</dc:creator><pubDate>Thu, 17 Jul 2008 10:18:00 GMT</pubDate><category domain="http://philwicklund.com/archive/tags/Random/default.aspx">Random</category><feedburner:origLink>http://philwicklund.com/archive/2008/07/17/neat-calendar-rollup-webpart-from-kwizcom.aspx</feedburner:origLink></item><item><title>Application Pools and Memory Best Practices for SharePoint Front Ends</title><link>http://feedproxy.google.com/~r/SharepointHappenings/~3/brsfA_nB1cg/application-pools-and-memory-best-practices-for-sharepoint-front-ends.aspx</link><guid isPermaLink="false">/archive/2008/07/16/application-pools-and-memory-best-practices-for-sharepoint-front-ends.aspx</guid><description>&lt;div class="ExternalClassD23E741EFC2C489692439513B1C2EEB2"&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;Have you ever gotten an out of memory exception on your SharePoint web front ends and wondered why? Or how to prevent it? I started getting this error periodically, and through such experiences have drawn several best practices for managing the memory on your SharePoint web front ends. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;Best Practices: &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:16pt;font-family:Verdana"&gt;&lt;strong&gt;1.    Don't have too many Application Pools &lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;Each application pool (app pool) running on the server will consume around 100MB of memory, at a minimum. So, if you have 10 app pools that is 1GB of useless memory! Plus, app pools are like SQL server in some respects, one of which is that they both like to build up a lot of information in cache. If you have many app pools, you're getting the same files/data cached several times over because each app pool has its own cache. This of course isn't memory friendly. I usually run 3-5 app pool on each front end. Five app pools are what I try to limit myself to. I typically call them as follows: &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;- SharePoint Sites&lt;br&gt;- ASP.NET 1.0 Sites&lt;br&gt;- ASP.NET 2.0 Sites&lt;br&gt;- Sensitive Application 1 (generic name for some application in the company)&lt;br&gt;- Sensitive Application 2 &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;With this paradigm, you are bucketing all your non-critical sites into 3 categories, SharePoint, ASP 1.0, and ASP 2.0 sites. The reason for 1.0 &amp;amp; 2.0 is that the different versions of ASP.NET cannot be in the same app pool or things won't behave as desired. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;Thereafter, you can create an app pool for each critical application that you feel needs to be isolated (App. 1 &amp;amp; 2) from other non-critical application. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:16pt;font-family:Verdana"&gt;&lt;strong&gt;2.    Set Memory Capacities on Each App Pool &lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;The main avenue of confidence to not running out of memory and getting rid of the out of memory exception is to set memory caps on each app pool. This will limit how much information they can store in cache. If you take the 5 app pools I mentioned above, this is how I would allocate memory if I had 4GB of memory available: &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;- SharePoint Sites (1GB – SharePoint needs as much cache as possible to help with performance)&lt;br&gt;- ASP 1.0 Sites (500MB)&lt;br&gt;- ASP 2.0 Sites (500MB)&lt;br&gt;- Sensitive Application 1 (500MB)&lt;br&gt;- Sensitive Application 2 (500MB) &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;With this configuration, Internet Information Services (IIS) will consume at max 3GB of memory, leaving 1GB for the operating system. Obviously if you don't have any ASP.NET 1.0 applications, or other critical applications, you would allocate that memory where it made sense, like taking the 500MB from ASP 1.0 and increasing SharePoint Sites to 1.5GB. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;&lt;em&gt;NOTEWORTHY DEPENDANCY: In order to allocate 3GB on a 32bit OS for your ASP.NET worker processes, you MUST change the user mode space on the server from 2GB to 3GB. The reason for this is 32bit operating systems have a cap on their virtual memory that is 4GB. 2GB of this is dedicated to the OS. However, by making a change to the boot.ini file, you can increase that maximum to 3GB. Check out this &lt;a href="http://support.microsoft.com/kb/316739"&gt;KB article&lt;/a&gt; on how to do this. This is why 64bit operating systems are a really important upgrade to get onto ASAP. With 32bit, you'll never have more than 3GB of memory! 64bit is practically limitless in its capacity. Back to my example of the five app pools, if you don't increase the 2GB cap and you still allocate your app pools up to 3GB like what was recommended, you'll actually INCREASE your risk of getting out of memory exceptions (or memory exceeded exceptions) because IIS thinks that memory should be available, but it won't be. Only allocate 2GB on 32bit operating systems if you don't increase the boot.ini file to 3GB! &lt;/em&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;&lt;strong&gt;&lt;em&gt;Here's how to set the capacity on an app pool: &lt;/em&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;In IIS, expand the Application Pools folder, and right click the app pool you want to set a cap on, and click Properties: &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="" src="http://philwicklund.com/Lists/Photos/071708_0302_Application1.png"&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;On the recycling tab, click the check box to specify the maximum virtual memory to 1GB (1000MB): &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="" src="http://philwicklund.com/Lists/Photos/071708_0302_Application2.png"&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;Click OK (&amp;quot;used memory&amp;quot; is physical memory, which is less important because ASP runs in virtual memory. Virtual memory is physical memory plus disk, or swapped memory). &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:16pt;font-family:Verdana"&gt;&lt;strong&gt;3.    For serious traffic, plant a garden &lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;font-family:Verdana"&gt;Now if you have followed the best practice and your web front ends are all on 64 bit operating systems with 8GB of memory or more (8GB is a MUST for medium to large SharePoint environments!!!), and you're sites are expected to handle thousands of requests and hour - you need a web garden. The basic point to a garden is to make more W3WP worker process available so IIS can handle more requests and faster. If you only have one worker process, and that process is