<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="http://feeds.zevenseas.com/~d/styles/rss2full.xsl" type="text/xsl" media="screen"?><?xml-stylesheet href="http://feeds.zevenseas.com/~d/styles/itemcontent.css" type="text/css" media="screen"?><!--RSS generated by Windows SharePoint Services V3 RSS Generator on 7/23/2008 9:00:08 PM--><rss xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0"><channel><title>Daniel | zevenseas | SharePoint Blog</title><link>http://community.zevenseas.com/Blogs/Daniel</link><description>RSS feed for the Posts list.</description><lastBuildDate>Thu, 24 Jul 2008 04:00:08 GMT</lastBuildDate><generator>SharePoint CKS:EBE</generator><ttl>60</ttl><image><title>Daniel | zevenseas | SharePoint Blog</title><url>http://community.zevenseas.com/Blogs/Daniel/_layouts/images/homepage.gif</url><link>http://community.zevenseas.com/Blogs/Daniel</link></image><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.zevenseas.com/blogs_daniel" type="application/rss+xml" /><feedburner:emailServiceId>1686693</feedburner:emailServiceId><feedburner:feedburnerHostname>http://www.feedburner.com</feedburner:feedburnerHostname><item><title>Pragmatism and Mary-Jo Foley on SharePoint: New studies highlight the potential downsides of SharePoint</title><link>http://feeds.zevenseas.com/~r/blogs_daniel/~3/342833978/mary-jo-foley-on-sharepoint-new-studies-highlight-the-potential-downsides-of-sharepoint.aspx</link><guid isPermaLink="false">/Blogs/Daniel/archive/2008/07/21/mary-jo-foley-on-sharepoint-new-studies-highlight-the-potential-downsides-of-sharepoint.aspx</guid><description>&lt;div class="ExternalClass2CDC11ACE24A4B47AE2579530E3D91E6"&gt;&lt;p&gt;  &lt;p&gt;&lt;a href="http://blogs.zdnet.com/microsoft/?p=1492"&gt;New studies highlight the potential downsides of SharePoint&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;I try to keep track of articles about SharePoint that come from outside the SharePoint Bloggers “Echo Chamber”. I think it’s important to understand what the wider IT audience is thinking and hearing about SharePoint. For those who don’t know her, Mary-Jo Foley is a long time Microsoft watcher and pundit, and has a broad readership among the more senior IT ranks. Unfortunately this article doesn’t really go into enough detail to get a good understanding of the criticism and concerns that are being raised, and I don’t have the $900.00 USD spare to purchase the reports. However, that doesn’t mean I wouldn’t be very interested in reading them, and I’m sure that they will be read by key decision makers at customers zevenseas is working with right now.&lt;/p&gt;  &lt;p&gt;I actually welcome this sort of report, as I think the “gold rush” to SharePoint we are seeing right now is resulting in the nail and hammer situation. “When all you have is a hammer, then everything looks like a nail”. SharePoint is certainly not the first product to be seen as the solution to every possible business problem. Lotus Notes, which was an incredible platform for its day, almost self-destructed under this weight. People were constantly trying to make it do “relational stuff”, and even its custodian, IBM, attempted to turn it into an email server (I suspect that may be a controversial statement). Building a great SharePoint solution requires that we, as consultants, know much more than just what the product can do. &lt;/p&gt;  &lt;p&gt;Recently, during our first meeting, a customer asked me a question that went something like this: “What makes the zevenseas approach to building SharePoint solutions different?”. My answer came down to a single word. Pragmatism. &lt;/p&gt;  &lt;p&gt;While we have great enthusiasm for SharePoint, and we only create SharePoint solutions, it doesn’t mean we feel every business problem can be solved with a healthy sprinkling of SharePoint teamsites. Actually, I would much rather recommend a customer use the specific technology, designed from the ground up to meet their need, than to attempt to coerce SharePoint in to doing something it doesn’t really want to. SharePoint is our technology, and fortunately it is very good at many of the things businesses need, but all business problems should be looked at pragmatically and in the absence of any preconceived solutions or “technical religion”.&lt;/p&gt;  &lt;p&gt;The next key application of pragmatism comes when reviewing requirements, and perhaps it is here that it’s most important. Business problems are rarely simple, in fact even the simplest are actually quite complex. And complicating things further is the tendency for them trend toward greater complexity in proportion to the amount of time you spend talking about them as a group. I think you can see where I’m going here. SharePoint is a great platform because it lets you do things quickly, and easily, and often simply by tuning out of box functionality. We are big believers in rapidly prototyping solutions via weekly iterations and getting feedback via actual usage of the system. There really is nothing like actually watching people use your solution, and there are no end of surprises, its a great way to prioritise functionality and understand where your focus should be. &lt;/p&gt;  &lt;p&gt;Finally, pragmatism plays a role in the overall design of your solution and it works in partnership with a deeper understanding of the bigger picture. A SharePoint consultant needs to understand exactly why the customer has invested in SharePoint. They must understand the overall landscape in which their projects fits, asking themselves what broader business objectives are being met by the implementation of this collaboration platform. While this is likely a post all on its own, the customers I work with have implemented SharePoint &lt;strong&gt;because:&lt;/strong&gt;&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;It’s a very rich platform on which they can build rapid business solutions &lt;/li&gt;    &lt;li&gt;One they can consolidate existing business solutions onto to, thereby reducing the number of platforms they have to support. &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;It huge out of box feature-set means they can &lt;strong&gt;minimise&lt;/strong&gt; customisation, the ongoing maintenance of which is where the big costs really start creeping in. So, as a consultant, you have two jobs. The first is to make sure you build solutions that work &lt;strong&gt;with &lt;/strong&gt;SharePoint, leveraging every bit of out of box functionality you can, and avoiding wheel reinvention wherever possible. The second is to help those who define the requirements understand just how best to map them to the platform. It means not just taking a requirement on face value and mindlessly building it out, but deciding if small compromises can be made which result in bigger long term cost savings. &lt;/p&gt;  &lt;p&gt;What I’m really saying is that SharePoint projects require SharePoint consultants. It’s a discipline all on its own, you wouldn’t get a ASP.NET developer to build you a WinForms application. Just as SharePoint is not simply another Object Model for an ASP.NET developer to pick up. It requires a completely different mind-set, one focused on &lt;strong&gt;augmenting&lt;/strong&gt;, &lt;strong&gt;pragmatically,&lt;/strong&gt; rather than building.&lt;/p&gt;  &lt;p&gt;So, in summary, that’s what is different about zevenseas, we’re very pragmatic. &lt;/p&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.zevenseas.com/~f/blogs_daniel?a=6mBjTJ"&gt;&lt;img src="http://feeds.zevenseas.com/~f/blogs_daniel?i=6mBjTJ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.zevenseas.com/~f/blogs_daniel?a=EdUqOj"&gt;&lt;img src="http://feeds.zevenseas.com/~f/blogs_daniel?i=EdUqOj" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.zevenseas.com/~f/blogs_daniel?a=F2vCyJ"&gt;&lt;img src="http://feeds.zevenseas.com/~f/blogs_daniel?i=F2vCyJ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.zevenseas.com/~f/blogs_daniel?a=sVRGdj"&gt;&lt;img src="http://feeds.zevenseas.com/~f/blogs_daniel?i=sVRGdj" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.zevenseas.com/~r/blogs_daniel/~4/342833978" height="1" width="1"/&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Daniel McPherson</dc:creator><pubDate>Mon, 21 Jul 2008 23:52:54 GMT</pubDate><feedburner:origLink>http://community.zevenseas.com/Blogs/Daniel/archive/2008/07/21/mary-jo-foley-on-sharepoint-new-studies-highlight-the-potential-downsides-of-sharepoint.aspx</feedburner:origLink></item><item><title>Tagged Links – Walkthrough</title><link>http://feeds.zevenseas.com/~r/blogs_daniel/~3/339820247/tagged-links-–-walkthrough.aspx</link><guid isPermaLink="false">/Blogs/Daniel/archive/2008/07/19/tagged-links-–-walkthrough.aspx</guid><description>&lt;div class="ExternalClassC70D44D0A8C142D59C63A550B699E23D"&gt;&lt;p&gt;  &lt;p&gt;This brief walkthrough is designed to give you an idea about how Tagged Links could help you share those useful links you find on the Internet with those people your are collaborating with. You can try it on your own environments by downloading the evaluation here:&lt;/p&gt;  &lt;h2&gt;&lt;a href="http://www.zevenseas.com/en/Pages/TaggedLinks.aspx"&gt;Download Tagged Links&lt;/a&gt;&lt;/h2&gt;  &lt;p&gt;Or try it on ours here:&lt;/p&gt;  &lt;p&gt;Site: &lt;a href="http://fishtank.zevenseas.com/sites/Tagged%20Links/TaggedLinks/AllItems.aspx"&gt;Tagged Links&lt;/a&gt;     &lt;br&gt;Username: Coral\DemoUser     &lt;br&gt;Password: DemoUser&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;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;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;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;p&gt;  &lt;p&gt;  &lt;p&gt;  &lt;p&gt;  &lt;p&gt;  &lt;p&gt;  &lt;p&gt;  &lt;h3&gt;&lt;font color="#0080ff"&gt;&lt;strong&gt;Tagged Links Walkthrough&lt;/strong&gt;&lt;/font&gt;&lt;/h3&gt;  &lt;p&gt; &lt;img title="image" style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;margin:0px 0px 0px 10px;border-right-width:0px" height="91" alt="image" src="http://community.zevenseas.com/blogs/daniel/Lists/Posts/Attachments/39/image_thumb_QuoP0Q.png" width="244" align="right" border="0"&gt;&lt;strong&gt;The Tagged Links List      &lt;br&gt;&lt;/strong&gt;A “Tagged Links” list is just like any other, they are created via the “Create” page in your site, and you can have as many of them as you like. Each one has its own list of tags that can be applied to links, as you add them.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://community.zevenseas.com/blogs/daniel/Lists/Posts/Attachments/39/image_4_KbATaA.png"&gt;&lt;img title="image" style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px" height="241" alt="image" src="http://community.zevenseas.com/blogs/daniel/Lists/Posts/Attachments/39/image_thumb_1_BC1FUg.png" width="678" border="0"&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;As you can see, it looks just like every other SharePoint list, with one exception, browser integration that can be installed by following the instructions:&lt;/p&gt;  &lt;p&gt;&lt;em&gt;“To create a browser button for quickly adding links to this list, right-click the below link, select 'Add to Favorites...' and select the 'Links' folder in your favorites:      &lt;br&gt;&lt;/em&gt;&lt;em&gt;Add link to MyDemoSite - Tagged Links” &lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://community.zevenseas.com/blogs/daniel/Lists/Posts/Attachments/39/image_10_qKxnaQ.png"&gt;&lt;img title="image" style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;margin:0px 10px 10px 0px;border-right-width:0px" height="350" alt="image" src="http://community.zevenseas.com/blogs/daniel/Lists/Posts/Attachments/39/image_thumb_4_LXrZ4w.png" width="498" align="left" border="0"&gt;&lt;/a&gt;After following these directions a new button will appear in the links toolbar of your browser. Next time you are on a web site which you think other people in your team would be interested in, you can save it directly to this list by just clicking the button.&lt;/p&gt;  &lt;p&gt;What’s even better is that Tagged Links does most of the hard work for you, by automatically adding the URL and Title to the new item. So all you have to do is add the relevant Tags and enter some notes. &lt;/p&gt;  &lt;p&gt;In the screenshot to the left you can see that a number of tags already exist in the list and can be applied via a checkbox. Tagged Links makes it easy to add new tags by including a text box where you can enter new ones. &lt;/p&gt;  &lt;p&gt;When you save the item these new tags are added to the list and will be available as a checkbox items for next time. You can see this in the next screenshot.&lt;/p&gt;  &lt;p&gt;  &lt;p&gt;  &lt;p&gt;  &lt;p&gt;  &lt;p&gt;  &lt;p&gt;&lt;a href="http://community.zevenseas.com/blogs/daniel/Lists/Posts/Attachments/39/image_12_53uIA.png"&gt;&lt;img title="image" style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;margin:0px 0px 0px 5px;border-right-width:0px" height="254" alt="image" src="http://community.zevenseas.com/blogs/daniel/Lists/Posts/Attachments/39/image_thumb_5_VMd4LQ.png" width="386" align="right" border="0"&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;This is a real time saver, keeping your links organised in a more accurate and consistent way. &lt;/p&gt;  &lt;p&gt;That sort of consistency is important not just within a single “Tagged Links” list, but across all tagged links lists. For this reason we added the concept of “Global Tags”. This is a list of tags that is defined at a Site Collection, and then used by all Tagged Links lists, regardless of which site in the site collection they belong to. Global Tags are created via the “Site Settings” page.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://community.zevenseas.com/blogs/daniel/Lists/Posts/Attachments/39/image_16_Cq2IkA.png"&gt;&lt;img title="image" style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;margin:0px 5px 0px 0px;border-right-width:0px" height="200" alt="image" src="http://community.zevenseas.com/blogs/daniel/Lists/Posts/Attachments/39/image_thumb_7_4XAFbA.png" width="158" align="left" border="0"&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;  &lt;p&gt;  &lt;p&gt;  &lt;p&gt;  &lt;p&gt;  &lt;p&gt;  &lt;p&gt;  &lt;p&gt;  &lt;p&gt;  &lt;p&gt;  &lt;p&gt;  &lt;p&gt;  &lt;p&gt;Clicking on “Global Tags” takes you to a standard SharePoint list where you can maintain the list of tags which you would like to be available through all Tagged Links lists. When global tags have been defined, the following appears at the bottom of the “New Item” form:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://community.zevenseas.com/blogs/daniel/Lists/Posts/Attachments/39/image_18_JOK6dQ.png"&gt;&lt;img title="image" style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;margin:0px;border-right-width:0px" height="141" alt="image" src="http://community.zevenseas.com/blogs/daniel/Lists/Posts/Attachments/39/image_thumb_8_Z02gg.png" width="578" border="0"&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;So far we have talked about how to create a new Tagged Link, in the process describing it via tags and a note, organising it for others. However, probably the most powerful feature in tagged links, is the advanced graphical views. A Tag Cloud and a Tag List help you quickly determine what tags are most popular, and allows you to quickly filter the list of links at the click of a button. This makes it easier to find what you are looking for. Words don’t do it justice, so here are a couple of screenshots:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://community.zevenseas.com/blogs/daniel/Lists/Posts/Attachments/39/image_20_Lf48wg.png"&gt;&lt;img title="image" style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px" height="182" alt="image" src="http://community.zevenseas.com/blogs/daniel/Lists/Posts/Attachments/39/image_thumb_9_owrkZg.png" width="482" border="0"&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;a href="http://community.zevenseas.com/blogs/daniel/Lists/Posts/Attachments/39/image_22_g6VtAQ.png"&gt;&lt;img title="image" style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px" height="228" alt="image" src="http://community.zevenseas.com/blogs/daniel/Lists/Posts/Attachments/39/image_thumb_10_m9UDZw.png" width="483" border="0"&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;That pretty much wraps up Tagged Links, please do take a look, we would love to hear your &lt;a href="mailto:daniel@zevenseas.com"&gt;feedback&lt;/a&gt;. We hope it helps you work better together!&lt;/p&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.zevenseas.com/~f/blogs_daniel?a=zKHAcJ"&gt;&lt;img src="http://feeds.zevenseas.com/~f/blogs_daniel?i=zKHAcJ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.zevenseas.com/~f/blogs_daniel?a=PiT66j"&gt;&lt;img src="http://feeds.zevenseas.com/~f/blogs_daniel?i=PiT66j" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.zevenseas.com/~f/blogs_daniel?a=Tl3erJ"&gt;&lt;img src="http://feeds.zevenseas.com/~f/blogs_daniel?i=Tl3erJ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.zevenseas.com/~f/blogs_daniel?a=tUCrwj"&gt;&lt;img src="http://feeds.zevenseas.com/~f/blogs_daniel?i=tUCrwj" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.zevenseas.com/~r/blogs_daniel/~4/339820247" height="1" width="1"/&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Daniel McPherson</dc:creator><pubDate>Sat, 19 Jul 2008 04:56:48 GMT</pubDate><feedburner:origLink>http://community.zevenseas.com/Blogs/Daniel/archive/2008/07/19/tagged-links-–-walkthrough.aspx</feedburner:origLink></item><item><title>Product Release: Tagged Links – Social Bookmarking for SharePoint</title><link>http://feeds.zevenseas.com/~r/blogs_daniel/~3/339820249/product-release-tagged-links-–-social-bookmarking-for-sharepoint.aspx</link><guid isPermaLink="false">/Blogs/Daniel/archive/2008/07/19/product-release-tagged-links-–-social-bookmarking-for-sharepoint.aspx</guid><description>&lt;div class="ExternalClassDF2DD662FC0E480584B4A68B047B842F"&gt;&lt;p&gt;  &lt;p&gt;Sometime ago we released a beta version of Tagged Links, today, I’m pleased to announce the release of version 1.0!&lt;a href="http://community.zevenseas.com/blogs/daniel/Lists/Posts/Attachments/38/image_2_cuiwEw.png"&gt;&lt;img title="image" style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;margin:5px 0px 5px 5px;border-right-width:0px" height="161" alt="image" src="http://community.zevenseas.com/blogs/daniel/Lists/Posts/Attachments/38/image_thumb_uUwdeA.png" width="534" align="right" border="0"&gt;&lt;/a&gt;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://www.zevenseas.com/Product%20Library/Tagged%20Links%201.0%20Evaluation.zip"&gt;Download Tagged Links&lt;/a&gt; &lt;/h3&gt;  &lt;p&gt;&lt;strong&gt;What is “Tagged Links”?      &lt;br&gt;&lt;/strong&gt;It’s &lt;a href="http://en.wikipedia.org/wiki/Social_bookmarking"&gt;social bookmarking&lt;/a&gt; for SharePoint, taking the standard “Links List” to a new level via &lt;a href="http://www.zevenseas.com/Site%20Pictures/Tagged%20Links/BrowserIntegration.png"&gt;browser integration&lt;/a&gt;, &lt;a href="http://www.zevenseas.com/Site%20Pictures/Tagged%20Links/NewItem.png"&gt;one-click tagging&lt;/a&gt;, &lt;a href="http://www.zevenseas.com/Site%20Pictures/Tagged%20Links/TagCloud.png"&gt;advanced graphical views&lt;/a&gt; and global tags that allow you to define tags across an entire site collection. Take a look at the new “&lt;a href="http://community.zevenseas.com/blogs/daniel/archive/2008/07/19/tagged-links-–-walkthrough.aspx"&gt;Walkthrough&lt;/a&gt;”.&lt;/p&gt;  &lt;p&gt;We have spent quite a bit of time thinking about just how we release “Tagged Links”. For those who follow our blogs, you know that our instinct is to &lt;a href="http://community.zevenseas.com/blogs/daniel/Lists/Posts/ViewPost.aspx?ID=14"&gt;release&lt;/a&gt; the &lt;a href="http://community.zevenseas.com/blogs/daniel/Lists/Posts/ViewPost.aspx?ID=13"&gt;things&lt;/a&gt; we &lt;a href="http://community.zevenseas.com/blogs/daniel/Lists/Posts/ViewPost.aspx?ID=23"&gt;build&lt;/a&gt; to the &lt;a href="http://community.zevenseas.com/blogs/daniel/Lists/Posts/ViewPost.aspx?ID=25"&gt;community&lt;/a&gt; via &lt;a href="http://community.zevenseas.com/blogs/daniel/Lists/Posts/ViewPost.aspx?ID=33"&gt;CodePlex&lt;/a&gt;, its a rapidly growing portfolio, especially given we only just celebrated our 6 month anniversary, and there is more to come. Tagged Links however is a little different. The amount of time we put into developing this solution was longer than usual, and as a group of SharePoint consultants, we have lots of ideas, and would really love to be able to build more solutions just like this. Of course, the only way we can that, and eat, is by offering these solutions commercially. With that said, we want to make sure as many people as possible can take advantage of them, so pricing will reflect the modesty of our small, but useful products. We look forward to your feedback on this approach, &lt;a href="mailto:daniel@zevenseas.com"&gt;let us know what you think&lt;/a&gt;. &lt;/p&gt;  &lt;p&gt;So, &lt;a href="http://www.zevenseas.com/en/Pages/TaggedLinks.aspx"&gt;Tagged Links&lt;/a&gt; becomes our first commercial offering! &lt;/p&gt;  &lt;p&gt;While we are still finalising the details concerning exactly how you can purchase it (will have that within the week) we didn’t want to hold back any longer. An evaluation version of Tagged Links, with all functionality enabled but with a 30 item limit is available for you to download and try out here: &lt;a href="http://www.zevenseas.com/Product%20Library/Tagged%20Links%201.0%20Evaluation.zip"&gt;Download Tagged Links&lt;/a&gt;. If you do decide it offer you enough benefits to buy, the full version will easily install right over the top. &lt;/p&gt;  &lt;p&gt;We have also made a “Hosted” version available for you to test out here:&lt;/p&gt;  &lt;p&gt;Site: &lt;a href="http://fishtank.zevenseas.com/sites/Tagged%20Links/TaggedLinks/AllItems.aspx"&gt;Tagged Links&lt;/a&gt;     &lt;br&gt;Username: Coral\DemoUser     &lt;br&gt;Password: DemoUser&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;So, jump in, and feedback away!&lt;/p&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.zevenseas.com/~f/blogs_daniel?a=oSZoYJ"&gt;&lt;img src="http://feeds.zevenseas.com/~f/blogs_daniel?i=oSZoYJ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.zevenseas.com/~f/blogs_daniel?a=rsxtJj"&gt;&lt;img src="http://feeds.zevenseas.com/~f/blogs_daniel?i=rsxtJj" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.zevenseas.com/~f/blogs_daniel?a=TZDqSJ"&gt;&lt;img src="http://feeds.zevenseas.com/~f/blogs_daniel?i=TZDqSJ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.zevenseas.com/~f/blogs_daniel?a=gqmpaj"&gt;&lt;img src="http://feeds.zevenseas.com/~f/blogs_daniel?i=gqmpaj" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.zevenseas.com/~r/blogs_daniel/~4/339820249" height="1" width="1"/&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Daniel McPherson</dc:creator><pubDate>Sat, 19 Jul 2008 04:50:42 GMT</pubDate><feedburner:origLink>http://community.zevenseas.com/Blogs/Daniel/archive/2008/07/19/product-release-tagged-links-–-social-bookmarking-for-sharepoint.aspx</feedburner:origLink></item><item><title>SharePoint Magazine Launches</title><link>http://feeds.zevenseas.com/~r/blogs_daniel/~3/339749290/sharepoint-magazine-launches.aspx</link><guid isPermaLink="false">/Blogs/Daniel/archive/2008/07/19/sharepoint-magazine-launches.aspx</guid><description>&lt;div class="ExternalClassF81E2429A21F44DCBAE2236E31711726"&gt;&lt;p&gt;Our congratulations go to Arno Nel and team who today launched the “&lt;a href="http://sharepointmagazine.net"&gt;SharePoint Magazine&lt;/a&gt;”.&lt;/p&gt;  &lt;p&gt;&lt;img src="http://sharepointmagazine.net/images/logo.gif"&gt; &lt;/p&gt;  &lt;p&gt;There has been some great launch content and we look forward to more to come.&lt;/p&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.zevenseas.com/~f/blogs_daniel?a=7KIH9J"&gt;&lt;img src="http://feeds.zevenseas.com/~f/blogs_daniel?i=7KIH9J" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.zevenseas.com/~f/blogs_daniel?a=mYz2Oj"&gt;&lt;img src="http://feeds.zevenseas.com/~f/blogs_daniel?i=mYz2Oj" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.zevenseas.com/~f/blogs_daniel?a=mZjaPJ"&gt;&lt;img src="http://feeds.zevenseas.com/~f/blogs_daniel?i=mZjaPJ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.zevenseas.com/~f/blogs_daniel?a=B07Rtj"&gt;&lt;img src="http://feeds.zevenseas.com/~f/blogs_daniel?i=B07Rtj" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.zevenseas.com/~r/blogs_daniel/~4/339749290" height="1" width="1"/&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Daniel McPherson</dc:creator><pubDate>Sat, 19 Jul 2008 02:34:50 GMT</pubDate><feedburner:origLink>http://community.zevenseas.com/Blogs/Daniel/archive/2008/07/19/sharepoint-magazine-launches.aspx</feedburner:origLink></item><item><title>The International SharePoint Professionals Association is GO!</title><link>http://feeds.zevenseas.com/~r/blogs_daniel/~3/337323538/the-international-sharepoint-professionals-association-is-go.aspx</link><guid isPermaLink="false">/Blogs/Daniel/archive/2008/07/16/the-international-sharepoint-professionals-association-is-go.aspx</guid><description>&lt;div class="ExternalClass6AF9ECE80E364F5AA1ED0E358BD85DBE"&gt;&lt;p&gt;  &lt;p&gt;&lt;a href="http://bobfox.securespsite.com/FoxBlog/Lists/Posts/Post.aspx?ID=98"&gt;Announcing the International SharePoint Professionals Association&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;My congrats go to &lt;a href="http://bobfox.securespsite.com/FoxBlog"&gt;Bob&lt;/a&gt;, &lt;a href="http://www.darrinbishop.com/blog/"&gt;Darrin&lt;/a&gt;, &lt;a href="http://cregan.wordpress.com/"&gt;Christopher&lt;/a&gt; and &lt;a href="http://spforsquirrels.blogspot.com/"&gt;Natalya&lt;/a&gt; on the launch of the International SharePoint Professionals Association. I, along with &lt;a href="http://blogs.tamtam.nl/mart/"&gt;Mart Muller&lt;/a&gt;, have been lucky enough to play a small role over the last few weeks ensuring Holland is represented in this global endeavor. Certainly, anything that brings SharePoint Professional together in this still too wide world is something I support.&lt;/p&gt;  &lt;p&gt;Anyway, jump across to the site and let Bob and the team know what you think, and even more, let them know what they can do to help you!&lt;/p&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.zevenseas.com/~f/blogs_daniel?a=BLaAdJ"&gt;&lt;img src="http://feeds.zevenseas.com/~f/blogs_daniel?i=BLaAdJ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.zevenseas.com/~f/blogs_daniel?a=uUG0qj"&gt;&lt;img src="http://feeds.zevenseas.com/~f/blogs_daniel?i=uUG0qj" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.zevenseas.com/~f/blogs_daniel?a=S9XLsJ"&gt;&lt;img src="http://feeds.zevenseas.com/~f/blogs_daniel?i=S9XLsJ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.zevenseas.com/~f/blogs_daniel?a=tgJ4tj"&gt;&lt;img src="http://feeds.zevenseas.com/~f/blogs_daniel?i=tgJ4tj" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.zevenseas.com/~r/blogs_daniel/~4/337323538" height="1" width="1"/&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Daniel McPherson</dc:creator><pubDate>Wed, 16 Jul 2008 11:31:47 GMT</pubDate><feedburner:origLink>http://community.zevenseas.com/Blogs/Daniel/archive/2008/07/16/the-international-sharepoint-professionals-association-is-go.aspx</feedburner:origLink></item><item><title>SearchCoder Tool: New Build Released on CodePlex</title><link>http://feeds.zevenseas.com/~r/blogs_daniel/~3/335977636/searchcoder-new-build-released-on-codeplex.aspx</link><guid isPermaLink="false">/Blogs/Daniel/archive/2008/07/15/searchcoder-new-build-released-on-codeplex.aspx</guid><description>&lt;div class="ExternalClassB850606E7EBF49F096241EA0D4B8831A"&gt;&lt;p&gt;I added a new build of SearchCoder to CodePlex today, it is still beta, so unfortunately the OM is pretty unstable. With that said I think a number of the changes I checked in today give it a more reliable platform for building on in the future. &lt;/p&gt;  &lt;p&gt;For those who missed the &lt;a href="http://community.zevenseas.com/Blogs/Daniel/archive/2008/06/04/announcing-moss-sql-searchcoder.aspx"&gt;initial announcement&lt;/a&gt;, SearchCoder is composed of two tools:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;An SearchCoder Object Model which lets you produce MOSS SQL statements in code rather than by hand crafting SQL Strings&lt;/li&gt;    &lt;li&gt;A Windows Application which helps you build and test the SQL Statements graphically &lt;strong&gt;AND&lt;/strong&gt; produces C# code that uses the SearchCoder OM. There is a sample in &lt;a href="http://community.zevenseas.com/Blogs/Daniel/archive/2008/06/04/announcing-moss-sql-searchcoder.aspx"&gt;this blog post&lt;/a&gt; which I think explains it best.&lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;For those interested here are the improvements:&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;SearchCoder - Updated Release - V0.91     &lt;br&gt;&lt;a title="http://www.codeplex.com/MOSSSearchCoder/Release/ProjectReleases.aspx?ReleaseId=14061" href="http://www.codeplex.com/MOSSSearchCoder/Release/ProjectReleases.aspx?ReleaseId=14061"&gt;http://www.codeplex.com/MOSSSearchCoder/Release/ProjectReleases.aspx?ReleaseId=14061&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;- Changed to the use of generics   &lt;br&gt;- Changed so that all objects output their portion of the SQL Statement via &amp;quot;ToString()&amp;quot;    &lt;br&gt;- Changed the implementation of &amp;quot;WhereProperties&amp;quot; to support more functionality    &lt;br&gt;- Changed the implementation of the &amp;quot;FROM&amp;quot; statement to support more functionality    &lt;br&gt;- Added support for restricting searches by date using the DATEADD function in MOSS SQL (not yet in the graphical tool)    &lt;br&gt;- Improved support for multiple search queries    &lt;br&gt;- Fixed a number of small UI issues concerning error handling.    &lt;br&gt;- Added option for &amp;quot;Friendly Formatting&amp;quot; of the SQL Statement so that each statement begins on a new line:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;SELECT Title, Rank, Size, Description, Write, Path     &lt;br&gt;FROM portal..scope()      &lt;br&gt;WHERE ( (&amp;quot;SCOPE&amp;quot; = 'All Sites') )      &lt;br&gt;ORDER BY &amp;quot;Rank&amp;quot; DESC&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.zevenseas.com/~f/blogs_daniel?a=VULiZJ"&gt;&lt;img src="http://feeds.zevenseas.com/~f/blogs_daniel?i=VULiZJ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.zevenseas.com/~f/blogs_daniel?a=Ye8e1j"&gt;&lt;img src="http://feeds.zevenseas.com/~f/blogs_daniel?i=Ye8e1j" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.zevenseas.com/~f/blogs_daniel?a=pC6YsJ"&gt;&lt;img src="http://feeds.zevenseas.com/~f/blogs_daniel?i=pC6YsJ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.zevenseas.com/~f/blogs_daniel?a=32l7aj"&gt;&lt;img src="http://feeds.zevenseas.com/~f/blogs_daniel?i=32l7aj" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.zevenseas.com/~r/blogs_daniel/~4/335977636" height="1" width="1"/&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Daniel McPherson</dc:creator><pubDate>Tue, 15 Jul 2008 03:37:08 GMT</pubDate><feedburner:origLink>http://community.zevenseas.com/Blogs/Daniel/archive/2008/07/15/searchcoder-new-build-released-on-codeplex.aspx</feedburner:origLink></item><item><title>We are looking, for people who are looking, for the right change</title><link>http://feeds.zevenseas.com/~r/blogs_daniel/~3/332741014/we-are-looking-for-people-who-are-looking-for-the-right-change.aspx</link><guid isPermaLink="false">/Blogs/Daniel/archive/2008/07/09/we-are-looking-for-people-who-are-looking-for-the-right-change.aspx</guid><description>&lt;div class="ExternalClassD944CFB8FA1E4F3C85811AB2B6A6EA47"&gt;
&lt;p&gt;&lt;a href="http://www.zevenseas.com/"&gt;zevenseas&lt;/a&gt; is a new, small company, dedicated to SharePoint, and dedicated to making consulting the high value profession it once was.&lt;/p&gt;
&lt;p&gt;In the last 6 months we have been crafting out a boutique organisation that allows us to do the things we think are important. Things like attending &lt;a href="http://www.zevenseas.com/zevents/seattle/default.aspx"&gt;key international conferences&lt;/a&gt; and supporting the community via &lt;a href="http://community.zevenseas.com/Blogs/default.aspx"&gt;blogs&lt;/a&gt; and &lt;a href="http://www.codeplex.com/zevenseas"&gt;cool&lt;/a&gt; &lt;a href="http://www.codeplex.com/MOSSSearchCoder"&gt;tools&lt;/a&gt;. We are an organisation that always works as a team, meeting each and every Friday through our Fridays@Sea concept, providing all of us with an opportunity to share experience, work collaboratively on problems, and most importantly, ensure we never feel we are out there on our own. &lt;/p&gt;
&lt;p&gt;As SharePoint specialists we are able to focus on the product that excites us most, digging deep into the technology to ensure the best possible outcome for our customers. We bring a pragmatic, experienced and business focused approach to solving the problems our customers share with us, making the most of the strong platform SharePoint has become. &lt;/p&gt;
&lt;p&gt;If you are looking for the right change, and want to join a team of people who enjoy working with each other, with great customers and on great SharePoint projects, drop me an email at &lt;a href="mailto:daniel@zevenseas.com"&gt;daniel@zevenseas.com&lt;/a&gt;. Let us buy you a coffee.&lt;/p&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.zevenseas.com/~f/blogs_daniel?a=hN16gJ"&gt;&lt;img src="http://feeds.zevenseas.com/~f/blogs_daniel?i=hN16gJ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.zevenseas.com/~f/blogs_daniel?a=UHenwj"&gt;&lt;img src="http://feeds.zevenseas.com/~f/blogs_daniel?i=UHenwj" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.zevenseas.com/~f/blogs_daniel?a=gBq6FJ"&gt;&lt;img src="http://feeds.zevenseas.com/~f/blogs_daniel?i=gBq6FJ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.zevenseas.com/~f/blogs_daniel?a=o5S3Nj"&gt;&lt;img src="http://feeds.zevenseas.com/~f/blogs_daniel?i=o5S3Nj" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.zevenseas.com/~r/blogs_daniel/~4/332741014" height="1" width="1"/&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Daniel McPherson</dc:creator><pubDate>Fri, 11 Jul 2008 06:42:00 GMT</pubDate><feedburner:origLink>http://community.zevenseas.com/Blogs/Daniel/archive/2008/07/09/we-are-looking-for-people-who-are-looking-for-the-right-change.aspx</feedburner:origLink></item><item><title>Announcing: The zevenseas Choice Column Filter Web Part</title><link>http://feeds.zevenseas.com/~r/blogs_daniel/~3/330872530/announcing-the-zevenseas-choice-column-filter-web-part.aspx</link><guid isPermaLink="false">/Blogs/Daniel/archive/2008/07/09/announcing-the-zevenseas-choice-column-filter-web-part.aspx</guid><description>&lt;div class="ExternalClassFD7A55A3F9394F079BDC67D74555B86E"&gt;&lt;p class="ExternalClass4FF608E4320D4B56951E018CDB12F2EE"&gt;&lt;a href="http://www.codeplex.com/zevenseas/Release/ProjectReleases.aspx?ReleaseId=15157"&gt;DOWNLOAD&lt;/a&gt;&lt;/p&gt;  &lt;p class="ExternalClass4FF608E4320D4B56951E018CDB12F2EE"&gt;I really love filter web parts and I really love connections. I've always looked at this functionality is SharePoint and dreamed of the incredible hybrid interface holy grail that together it could achieve. Imagine a page that everyday delivered you a single view onto the information you need to do your job, regardless of where the data was stored or how many logins you needed to access it. Imagine being able to mix and match these building blocks in any which way you like, tuning the information, and taking you to a place where you are able to make decisions the instant an opportunity presents itself.&lt;/p&gt;  &lt;p class="ExternalClass4FF608E4320D4B56951E018CDB12F2EE"&gt;Ok, I'm getting a little carried away, but this is the first in what will be a series of simple filter web parts that in their own small way move us toward this vision. &lt;/p&gt;  &lt;p class="ExternalClass4FF608E4320D4B56951E018CDB12F2EE"&gt;The zevenseas Choice Column Filter web part does three simple things:&lt;/p&gt;  &lt;div&gt;   &lt;ol&gt;     &lt;li&gt;It pulls the choices from a choice column&lt;/li&gt;      &lt;li&gt;Displays them in a list of option buttons (drop down box to come, just I find options buttons so much more intuitive)&lt;/li&gt;      &lt;li&gt;Passes  the value you select to other web parts via a connection&lt;/li&gt;   &lt;/ol&gt; &lt;/div&gt;  &lt;p&gt;Here is a simple walk through that shows you how:&lt;/p&gt;  &lt;p&gt;1. First I added a new column called “CompanyName” to the standard “Contacts” list in SharePoint as follows:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;a href="http://community.zevenseas.com/blogs/daniel/Lists/Posts/Attachments/33/image_2_7fO6hg.png"&gt;&lt;img title="image" style="border-right:0px;border-top:0px;border-left:0px;border-bottom:0px" height="277" alt="image" src="http://community.zevenseas.com/blogs/daniel/Lists/Posts/Attachments/33/image_thumb_2yTFFg.png" width="201" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;2. Then I added in some sample data, and added a List View Web part for the list onto a new Web Part Page like so:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://community.zevenseas.com/blogs/daniel/Lists/Posts/Attachments/33/image_4_HwYtCA.png"&gt;&lt;img title="image" style="border-right:0px;border-top:0px;border-left:0px;border-bottom:0px" height="331" alt="image" src="http://community.zevenseas.com/blogs/daniel/Lists/Posts/Attachments/33/image_thumb_1_eghcRw.png" width="582" border="0"&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;3. Everything is pretty simple so far, but his is where the Choice Filter web part comes in. The Choice Filter web part is attached to the “CompanyName” column, pulling out its values, creating a list of option boxes, and allowing you to sort the list at a single click. Here we add the Web Part, and the open the tool pane:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://community.zevenseas.com/blogs/daniel/Lists/Posts/Attachments/33/image_6_qWKqzA.png"&gt;&lt;img title="image" style="border-right:0px;border-top:0px;border-left:0px;border-bottom:0px" height="244" alt="image" src="http://community.zevenseas.com/blogs/daniel/Lists/Posts/Attachments/33/image_thumb_2_WcsEeA.png" width="241" border="0"&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;4. At the top of the tool pane we can select the list we want to attach to, and then any Choice fields that exist within the list, here we have changed it to point to our Contacts list:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://community.zevenseas.com/blogs/daniel/Lists/Posts/Attachments/33/image_8_O1AU6g.png"&gt;&lt;img title="image" style="border-right:0px;border-top:0px;border-left:0px;border-bottom:0px" height="184" alt="image" src="http://community.zevenseas.com/blogs/daniel/Lists/Posts/Attachments/33/image_thumb_3_uA936w.png" width="244" border="0"&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;5. When you have finished, click on “OK” to save the changes. The Choice Filter web part will now render with each choice appearing as an Option button:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://community.zevenseas.com/blogs/daniel/Lists/Posts/Attachments/33/image_10_VXe7Rw.png"&gt;&lt;img title="image" style="border-right:0px;border-top:0px;border-left:0px;border-bottom:0px" height="186" alt="image" src="http://community.zevenseas.com/blogs/daniel/Lists/Posts/Attachments/33/image_thumb_4_sP0Pg.png" width="339" border="0"&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;6. All that remains is to connect up our new Choice Filter web part to the existing “Contacts” list view web part. First, make sure the page is in “Edit Mode”, then click on the “Choice Filter” edit drop down and select the following meni tree: “Connections” –&amp;gt; “Send Choice Filter To” –&amp;gt; “Contacts”, you will then have the following pop-up appear:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://community.zevenseas.com/blogs/daniel/Lists/Posts/Attachments/33/image_12_QwpZcg.png"&gt;&lt;img title="image" style="border-right:0px;border-top:0px;border-left:0px;border-bottom:0px" height="164" alt="image" src="http://community.zevenseas.com/blogs/daniel/Lists/Posts/Attachments/33/image_thumb_5_je796Q.png" width="327" border="0"&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;7. Match the “Choice Value” to the field you connected to earlier, in this case “CompanyName” and you are ready to go. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://community.zevenseas.com/blogs/daniel/Lists/Posts/Attachments/33/image_16_ORzl5A.png"&gt;&lt;img title="image" style="border-right:0px;border-top:0px;border-left:0px;border-bottom:0px" height="229" alt="image" src="http://community.zevenseas.com/blogs/daniel/Lists/Posts/Attachments/33/image_thumb_7_SlniCg.png" width="469" border="0"&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;a href="http://community.zevenseas.com/blogs/daniel/Lists/Posts/Attachments/33/image_18_X00Ing.png"&gt;&lt;img title="image" style="border-right:0px;border-top:0px;border-left:0px;border-bottom:0px" height="154" alt="image" src="http://community.zevenseas.com/blogs/daniel/Lists/Posts/Attachments/33/image_thumb_8_w4JZlw.png" width="473" border="0"&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;a href="http://community.zevenseas.com/blogs/daniel/Lists/Posts/Attachments/33/image_20_JDORuQ.png"&gt;&lt;img title="image" style="border-right:0px;border-top:0px;border-left:0px;border-bottom:0px" height="229" alt="image" src="http://community.zevenseas.com/blogs/daniel/Lists/Posts/Attachments/33/image_thumb_9_M9XnBw.png" width="474" border="0"&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;We have made it available via our &lt;a href="http://www.codeplex.com/zevenseas"&gt;CodePlex community solution site&lt;/a&gt; as a ready to &lt;a href="http://www.codeplex.com/zevenseas/Release/ProjectReleases.aspx?ReleaseId=15157"&gt;install solution&lt;/a&gt;, or if your the developer sort, with full source code. Let us know what you think.&lt;/p&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.zevenseas.com/~f/blogs_daniel?a=H5tgzJ"&gt;&lt;img src="http://feeds.zevenseas.com/~f/blogs_daniel?i=H5tgzJ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.zevenseas.com/~f/blogs_daniel?a=msWyaj"&gt;&lt;img src="http://feeds.zevenseas.com/~f/blogs_daniel?i=msWyaj" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.zevenseas.com/~f/blogs_daniel?a=wUJQ9J"&gt;&lt;img src="http://feeds.zevenseas.com/~f/blogs_daniel?i=wUJQ9J" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.zevenseas.com/~f/blogs_daniel?a=XUd96j"&gt;&lt;img src="http://feeds.zevenseas.com/~f/blogs_daniel?i=XUd96j" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.zevenseas.com/~r/blogs_daniel/~4/330872530" height="1" width="1"/&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Daniel McPherson</dc:creator><pubDate>Wed, 09 Jul 2008 06:42:30 GMT</pubDate><feedburner:origLink>http://community.zevenseas.com/Blogs/Daniel/archive/2008/07/09/announcing-the-zevenseas-choice-column-filter-web-part.aspx</feedburner:origLink></item><item><title>Dan Winter Writes: Migrating Wiki Pages Remotely</title><link>http://feeds.zevenseas.com/~r/blogs_daniel/~3/324842834/dan-winter-writes.aspx</link><guid isPermaLink="false">/Blogs/Daniel/archive/2008/07/02/dan-winter-writes.aspx</guid><description>&lt;div class="ExternalClass10901298FD304B24B50247114D562D3E"&gt;&lt;p&gt;I've known &lt;a href="http://blogs.msdn.com/dwinter"&gt;Dan Winter&lt;/a&gt; for years now, back when I was a Microsoft Rapid Response Engineer I would often hope he would be my point of escalation. We worked on a number of cases together, but it wasn't until the SharePoint conference in Seattle earlier this year that we finally met. He delivered a great session on supportability of customisations and we later ended up at the W drinking green apple martinis. &lt;/p&gt;  &lt;p&gt;Anyway, today he &lt;a href="http://blogs.msdn.com/dwinter/archive/2008/06/28/migrating-wiki-pages-remotely-part-01.aspx"&gt;dropped a massive series of blog posts&lt;/a&gt; (10 in all) and &lt;a href="http://www.codeplex.com/WikiMigrator"&gt;a toolkit&lt;/a&gt; that describes how to remotely migrate a Wiki. He describes it best:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;I was doing some work recently where I needed to move a large volume (thousands) of Wiki Pages from one server to another. The problem was that while if I begged and pleaded, I probably could have gotten local admin access to the farms, I didn’t really want to go through that if I didn’t have to. I wanted to be able to manage the relocation of my Wiki Libraries from my client machine and not have to touch the server locally if I could help it. How do you do this kind of thing? Web Services of course… sounds simple right? Well, that’s what I thought until I gave it a try. As it turns out, it is very easy to use lists.asmx to pull all the data you want. You can do it for Wiki Libraries just like you would for any other list type. &lt;/em&gt;&lt;/p&gt;    &lt;p&gt;&lt;em&gt;In case you didn’t already figure this out, lucky you, I’ve done all the work for you already. If you are an adventurous or savvy developer, you could stop reading right here and go give it a shot. Otherwise keep reading and see how I made this all go. I have split up a much longer document into a series of posts where I will step through the different parts of the code and talk about the logic/etc behind them. I did this so that I was more reasonable on your RSS readers (my docx is 19 pages long). I will finish the final piece with a single post providing all of the code together.&lt;/em&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.zevenseas.com/~f/blogs_daniel?a=UKC93J"&gt;&lt;img src="http://feeds.zevenseas.com/~f/blogs_daniel?i=UKC93J" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.zevenseas.com/~f/blogs_daniel?a=K5RoYj"&gt;&lt;img src="http://feeds.zevenseas.com/~f/blogs_daniel?i=K5RoYj" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.zevenseas.com/~f/blogs_daniel?a=vZWnnJ"&gt;&lt;img src="http://feeds.zevenseas.com/~f/blogs_daniel?i=vZWnnJ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.zevenseas.com/~f/blogs_daniel?a=c3mwrj"&gt;&lt;img src="http://feeds.zevenseas.com/~f/blogs_daniel?i=c3mwrj" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.zevenseas.com/~r/blogs_daniel/~4/324842834" height="1" width="1"/&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Daniel McPherson</dc:creator><pubDate>Wed, 02 Jul 2008 05:00:36 GMT</pubDate><feedburner:origLink>http://community.zevenseas.com/Blogs/Daniel/archive/2008/07/02/dan-winter-writes.aspx</feedburner:origLink></item><item><title>Congrats to the new UK MVP's</title><link>http://feeds.zevenseas.com/~r/blogs_daniel/~3/324825410/congrats-to-the-new-uk-mvps.aspx</link><guid isPermaLink="false">/Blogs/Daniel/archive/2008/07/02/congrats-to-the-new-uk-mvps.aspx</guid><description>&lt;div class="ExternalClass5B2ED318DC5D443D9003935EB82FD915"&gt;&lt;p&gt;Just back from a week diving and relaxing in Sharm El Sheik and caught the very good news that &lt;a href="http://www.sharepointnutsandbolts.com/2008/07/received-mvp-award-for-sharepoint.html"&gt;Chris O'Brien&lt;/a&gt; and &lt;a href="http://blog.thekid.me.uk/archive/2008/07/01/well-how-about-that-im-a-sharepoint-mvp.aspx"&gt;Vincent Rothwell&lt;/a&gt; have both been made MVP's. I had the pleasure of meeting both these guys at the SharePoint conference in Seattle earlier this year and at the time I actually thought they already WERE MVPs. They have been churning out great community content for a long time and its thoroughly well deserved.&lt;/p&gt;  &lt;p&gt;Congrats guys!&lt;/p&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.zevenseas.com/~f/blogs_daniel?a=dgnmaJ"&gt;&lt;img src="http://feeds.zevenseas.com/~f/blogs_daniel?i=dgnmaJ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.zevenseas.com/~f/blogs_daniel?a=N1ugFj"&gt;&lt;img src="http://feeds.zevenseas.com/~f/blogs_daniel?i=N1ugFj" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.zevenseas.com/~f/blogs_daniel?a=VqcgVJ"&gt;&lt;img src="http://feeds.zevenseas.com/~f/blogs_daniel?i=VqcgVJ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.zevenseas.com/~f/blogs_daniel?a=JRckzj"&gt;&lt;img src="http://feeds.zevenseas.com/~f/blogs_daniel?i=JRckzj" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.zevenseas.com/~r/blogs_daniel/~4/324825410" height="1" width="1"/&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Daniel McPherson</dc:creator><pubDate>Wed, 02 Jul 2008 04:38:14 GMT</pubDate><feedburner:origLink>http://community.zevenseas.com/Blogs/Daniel/archive/2008/07/02/congrats-to-the-new-uk-mvps.aspx</feedburner:origLink></item><item><title>SharePoint, Social Networking and “TownSquare”</title><link>http://feeds.zevenseas.com/~r/blogs_daniel/~3/310280558/sharepoint-social-networking-and-“townsquare”.aspx</link><guid isPermaLink="false">/Blogs/Daniel/archive/2008/06/12/sharepoint-social-networking-and-“townsquare”.aspx</guid><description>&lt;div class="ExternalClass8C552CAFEEE844CE9EC55CC564E22199"&gt;&lt;p&gt;  &lt;p&gt;  &lt;p&gt;  &lt;p&gt;  &lt;p&gt;Its a pretty safe bet that the next version of SharePoint will include functionality aimed at bringing many of the benefits people are enjoying from sites like Facebook to the Enterprise. We certainly see lots of advantages in being able to map out the connections between colleagues, thereby providing mechanisms that effortlessly communicate what people are working on and organically identify subject matter experts. Having just &lt;a href="http://www.infoworld.com/article/08/06/11/Microsoft_testing_prototype_of_Facebooklike_social_network_1.html?source=rss&amp;amp;url=http://www.infoworld.com/article/08/06/11/Microsoft_testing_prototype_of_Facebooklike_social_network_1.html"&gt;read this article&lt;/a&gt;, it looks to me like this functionality is going to be driven out of the “OfficeLabs” team, an approach which gives me some confidence given the team is led by OneNote (one of my favourite all time apps) creator Chris Pratley.&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;With a layout that is strikingly similar to Facebook.com's (in which Microsoft invested $240 million in October 2007), TownSquare is fueled by enterprise news feeds that use Web services to query SharePoint for public information, such as promotions and company anniversaries, about an employee. &lt;/em&gt;&lt;/p&gt;    &lt;p&gt;&lt;em&gt;TownSquare also notifies users when a document or file is modified. Users can customize their feeds and monitor who is receiving information about them.&lt;/em&gt; &lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;I have recently been thinking about how to build something that does just this, largely driven by the vastly improved SharePoint Search technology. Its one of the reasons why I built out the &lt;a href="http://community.zevenseas.com/Blogs/Daniel/Lists/Posts/ViewPost.aspx?ID=25"&gt;zevenseas Search OM&lt;/a&gt; that we release to codeplex last week, making search application easier to write. MOSS Search provides an excellent mechanism for aggregating information in a scalable and performant way. Anyway, be sure to watch the &lt;a href="http://www.officelabs.com/"&gt;OfficeLabs&lt;/a&gt; site.&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;Microsoft testing prototype of Facebook-like social network | InfoWorld | News | 2008-06-11 | By Heather Havenstein, Computerworld     &lt;br&gt;&lt;a href="http://www.infoworld.com/article/08/06/11/Microsoft_testing_prototype_of_Facebooklike_social_network_1.html?source=rss&amp;amp;url=http://www.infoworld.com/article/08/06/11/Microsoft_testing_prototype_of_Facebooklike_social_network_1.html"&gt;http://www.infoworld.com/article/08/06/11/Microsoft_testing_prototype_of_Facebooklike_social_network_1.html?source=rss&amp;amp;url=http://www.infoworld.com/article/08/06/11/Microsoft_testing_prototype_of_Facebooklike_social_network_1.html&lt;/a&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.zevenseas.com/~f/blogs_daniel?a=cHkaGI"&gt;&lt;img src="http://feeds.zevenseas.com/~f/blogs_daniel?i=cHkaGI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.zevenseas.com/~f/blogs_daniel?a=pKhIli"&gt;&lt;img src="http://feeds.zevenseas.com/~f/blogs_daniel?i=pKhIli" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.zevenseas.com/~f/blogs_daniel?a=7IshCI"&gt;&lt;img src="http://feeds.zevenseas.com/~f/blogs_daniel?i=7IshCI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.zevenseas.com/~f/blogs_daniel?a=1I0jzi"&gt;&lt;img src="http://feeds.zevenseas.com/~f/blogs_daniel?i=1I0jzi" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.zevenseas.com/~r/blogs_daniel/~4/310280558" height="1" width="1"/&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Daniel McPherson</dc:creator><pubDate>Thu, 12 Jun 2008 02:09:11 GMT</pubDate><feedburner:origLink>http://community.zevenseas.com/Blogs/Daniel/archive/2008/06/12/sharepoint-social-networking-and-“townsquare”.aspx</feedburner:origLink></item><item><title>PressPass: Microsoft releases a community initiative around SharePoint and Podcasting</title><link>http://feeds.zevenseas.com/~r/blogs_daniel/~3/308269510/presspass-microsoft-releases-a-community-initiative-around-sharepoint-and-podcasting.aspx</link><guid isPermaLink="false">/Blogs/Daniel/archive/2008/06/09/presspass-microsoft-releases-a-community-initiative-around-sharepoint-and-podcasting.aspx</guid><description>&lt;div class="ExternalClassF571F2DB3BDE44158D41F5CA97320D09"&gt;&lt;p&gt;Just read today on &lt;a href="https://www.microsoft.com/presspass/press/2008/jun08/06-09PlatformOfChoicePR.mspx"&gt;PressPass&lt;/a&gt; that Microsoft has kicked off another community project (much like the Community Kits) focused on Podcasting. You can check it out here:&lt;/p&gt;  &lt;p&gt;&lt;a title="" href="https://www.microsoft.com/presspass/press/2008/jun08/06-09PlatformOfChoicePR.mspx"&gt;Podcasting Kit for SharePoint&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;A quick look at it leaves me fairly impressed, as I have been with the Community Kits projects on the whole. The announcement comes during the &lt;a href="http://www.enterprise2conf.com/"&gt;Enterprise 2.0 Conference&lt;/a&gt; which is going on in the US. I would have loved to be there, as zevenseas is keen on this area, in particular around community building (podcasting being just one of the elements), having recently posted about it on the Get The Point Blog here:&lt;/p&gt;  &lt;p&gt;&lt;a title="" href="http://sharepoint.microsoft.com/blogs/GetThePoint/Lists/Posts/Post.aspx?ID=83"&gt;How can your organisation create an online community around its products and services?&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Anyway, I have a download to make, interested in your experiences.&lt;/p&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.zevenseas.com/~f/blogs_daniel?a=R3GrLI"&gt;&lt;img src="http://feeds.zevenseas.com/~f/blogs_daniel?i=R3GrLI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.zevenseas.com/~f/blogs_daniel?a=fQGZJi"&gt;&lt;img src="http://feeds.zevenseas.com/~f/blogs_daniel?i=fQGZJi" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.zevenseas.com/~f/blogs_daniel?a=hATJuI"&gt;&lt;img src="http://feeds.zevenseas.com/~f/blogs_daniel?i=hATJuI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.zevenseas.com/~f/blogs_daniel?a=1vuqqi"&gt;&lt;img src="http://feeds.zevenseas.com/~f/blogs_daniel?i=1vuqqi" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.zevenseas.com/~r/blogs_daniel/~4/308269510" height="1" width="1"/&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Daniel McPherson</dc:creator><pubDate>Mon, 09 Jun 2008 12:50:55 GMT</pubDate><feedburner:origLink>http://community.zevenseas.com/Blogs/Daniel/archive/2008/06/09/presspass-microsoft-releases-a-community-initiative-around-sharepoint-and-podcasting.aspx</feedburner:origLink></item><item><title>Announcing: MOSS SQL SearchCoder</title><link>http://feeds.zevenseas.com/~r/blogs_daniel/~3/304615586/announcing-moss-sql-searchcoder.aspx</link><guid isPermaLink="false">/Blogs/Daniel/archive/2008/06/04/announcing-moss-sql-searchcoder.aspx</guid><description>&lt;div class="ExternalClass90DB8A1DD0524C5681926EA69C26306F"&gt;&lt;p&gt;&lt;a title="" href="https://www.codeplex.com/Release/ProjectReleases.aspx?ProjectName=MOSSSearchCoder&amp;amp;ReleaseId=14061"&gt;&lt;/a&gt;&lt;a href="https://www.codeplex.com/Release/ProjectReleases.aspx?ProjectName=MOSSSearchCoder&amp;amp;ReleaseId=14061"&gt;DOWNLOAD&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Search in MOSS, from a programmatic perspective, has come a long way in MOSS, specifically it is more robust (though could still be MORE robust), more bug free and therefore more suited for use as plumbing in applications. I have found it particularly useful to get over some of the scale restrictions SharePoint places on developers, and taken advantage of it to meet the need for aggregation. &lt;/p&gt;  &lt;p&gt;In a recent project however I found myself writing this little piece of spaghetti code.&lt;/p&gt;  &lt;div style="border-right:gray 1px solid;padding-right:4px;border-top:gray 1px solid;padding-left:4px;font-size:8pt;padding-bottom:4px;margin:20px 0px 10px;overflow:auto;border-left:gray 1px solid;width:97.5%;cursor:text;line-height:12pt;padding-top:4px;border-bottom:gray 1px solid;font-family:consolas, 'Courier New', courier, monospace;background-color:#f4f4f4"&gt;   &lt;div style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none"&gt;     &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none"&gt;&lt;span style="color:#606060"&gt;   1:&lt;/span&gt; &lt;span style="color:#008000"&gt;//Build the Select Statement&lt;/span&gt;&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none"&gt;&lt;span style="color:#606060"&gt;   2:&lt;/span&gt; &lt;span style="color:#0000ff"&gt;string&lt;/span&gt; baseQuery =&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none"&gt;&lt;span style="color:#606060"&gt;   3:&lt;/span&gt;     &lt;span style="color:#006080"&gt;@&amp;quot;SELECT Title, Rank, Description, Created, Path, NumComments, NumViews, NumLinkbacks, Tags, Categories FROM portal..scope()&amp;quot;&lt;/span&gt;;&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none"&gt;&lt;span style="color:#606060"&gt;   4:&lt;/span&gt;  &lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none"&gt;&lt;span style="color:#606060"&gt;   5:&lt;/span&gt; &lt;span style="color:#008000"&gt;//Set the base scope&lt;/span&gt;&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none"&gt;&lt;span style="color:#606060"&gt;   6:&lt;/span&gt; &lt;span style="color:#0000ff"&gt;string&lt;/span&gt; baseScope = &lt;span style="color:#006080"&gt;@&amp;quot; (&amp;quot;&lt;/span&gt;&lt;span style="color:#006080"&gt;&amp;quot;SCOPE&amp;quot;&lt;/span&gt;&lt;span style="color:#006080"&gt;&amp;quot; = 'All http://&amp;quot;&lt;/span&gt; + strSiteURL.Host + &lt;span style="color:#006080"&gt;@&amp;quot;/ Blogs') &amp;quot;&lt;/span&gt;;&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none"&gt;&lt;span style="color:#606060"&gt;   7:&lt;/span&gt;  &lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none"&gt;&lt;span style="color:#606060"&gt;   8:&lt;/span&gt; &lt;span style="color:#008000"&gt;// Build the Where Clause&lt;/span&gt;&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none"&gt;&lt;span style="color:#606060"&gt;   9:&lt;/span&gt; &lt;span style="color:#0000ff"&gt;string&lt;/span&gt; baseWhere;&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none"&gt;&lt;span style="color:#606060"&gt;  10:&lt;/span&gt; &lt;span style="color:#0000ff"&gt;switch&lt;/span&gt; (tag)&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none"&gt;&lt;span style="color:#606060"&gt;  11:&lt;/span&gt; {&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none"&gt;&lt;span style="color:#606060"&gt;  12:&lt;/span&gt;     &lt;span style="color:#0000ff"&gt;case&lt;/span&gt; &lt;span style="color:#006080"&gt;&amp;quot;&amp;quot;&lt;/span&gt;:&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none"&gt;&lt;span style="color:#606060"&gt;  13:&lt;/span&gt;         baseWhere = &lt;span style="color:#006080"&gt;@&amp;quot;WHERE &amp;quot;&lt;/span&gt; + baseScope;&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none"&gt;&lt;span style="color:#606060"&gt;  14:&lt;/span&gt;         &lt;span style="color:#0000ff"&gt;break&lt;/span&gt;;&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none"&gt;&lt;span style="color:#606060"&gt;  15:&lt;/span&gt;     &lt;span style="color:#0000ff"&gt;default&lt;/span&gt;:&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none"&gt;&lt;span style="color:#606060"&gt;  16:&lt;/span&gt;         &lt;span style="color:#008000"&gt;//TODO: MUST ADD TAG FIELD SUPPORT&lt;/span&gt;&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none"&gt;&lt;span style="color:#606060"&gt;  17:&lt;/span&gt;         baseWhere = &lt;span style="color:#006080"&gt;@&amp;quot;WHERE CONTAINS (&amp;quot;&lt;/span&gt;&lt;span style="color:#006080"&gt;&amp;quot;Categories&amp;quot;&lt;/span&gt;&lt;span style="color:#006080"&gt;&amp;quot;,'&amp;quot;&lt;/span&gt;&lt;span style="color:#006080"&gt;&amp;quot;&amp;quot;&lt;/span&gt; + tag + &lt;span style="color:#006080"&gt;@&amp;quot;&amp;quot;&lt;/span&gt;&lt;span style="color:#006080"&gt;&amp;quot;') AND &amp;quot;&lt;/span&gt; + baseScope;&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none"&gt;&lt;span style="color:#606060"&gt;  18:&lt;/span&gt;         &lt;span style="color:#0000ff"&gt;break&lt;/span&gt;;&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none"&gt;&lt;span style="color:#606060"&gt;  19:&lt;/span&gt; }&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none"&gt;&lt;span style="color:#606060"&gt;  20:&lt;/span&gt;  &lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none"&gt;&lt;span style="color:#606060"&gt;  21:&lt;/span&gt; &lt;span style="color:#008000"&gt;//Build the OrderBy Clause&lt;/span&gt;&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none"&gt;&lt;span style="color:#606060"&gt;  22:&lt;/span&gt; &lt;span style="color:#0000ff"&gt;string&lt;/span&gt; localSortField;&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none"&gt;&lt;span style="color:#606060"&gt;  23:&lt;/span&gt; &lt;span style="color:#0000ff"&gt;if&lt;/span&gt; (_sortField == &lt;span style="color:#006080"&gt;&amp;quot;&amp;quot;&lt;/span&gt;)&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none"&gt;&lt;span style="color:#606060"&gt;  24:&lt;/span&gt;     localSortField = &lt;span style="color:#006080"&gt;&amp;quot;Created&amp;quot;&lt;/span&gt;;&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none"&gt;&lt;span style="color:#606060"&gt;  25:&lt;/span&gt; &lt;span style="color:#0000ff"&gt;else&lt;/span&gt;&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none"&gt;&lt;span style="color:#606060"&gt;  26:&lt;/span&gt;     localSortField = _sortField;&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none"&gt;&lt;span style="color:#606060"&gt;  27:&lt;/span&gt;  &lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none"&gt;&lt;span style="color:#606060"&gt;  28:&lt;/span&gt; &lt;span style="color:#0000ff"&gt;string&lt;/span&gt; orderQuery;&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none"&gt;&lt;span style="color:#606060"&gt;  29:&lt;/span&gt; &lt;span style="color:#0000ff"&gt;if&lt;/span&gt; (localSortField == &lt;span style="color:#006080"&gt;&amp;quot;&amp;quot;&lt;/span&gt;)&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none"&gt;&lt;span style="color:#606060"&gt;  30:&lt;/span&gt;     orderQuery = &lt;span style="color:#006080"&gt;&amp;quot;&amp;quot;&lt;/span&gt;;&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none"&gt;&lt;span style="color:#606060"&gt;  31:&lt;/span&gt; &lt;span style="color:#0000ff"&gt;else&lt;/span&gt;&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none"&gt;&lt;span style="color:#606060"&gt;  32:&lt;/span&gt;     orderQuery = &lt;span style="color:#006080"&gt;@&amp;quot;ORDER BY &amp;quot;&lt;/span&gt;&lt;span style="color:#006080"&gt;&amp;quot;&amp;quot;&lt;/span&gt; + localSortField;&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none"&gt;&lt;span style="color:#606060"&gt;  33:&lt;/span&gt;  &lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none"&gt;&lt;span style="color:#606060"&gt;  34:&lt;/span&gt; &lt;span style="color:#008000"&gt;//End the Query&lt;/span&gt;&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none"&gt;&lt;span style="color:#606060"&gt;  35:&lt;/span&gt; &lt;span style="color:#0000ff"&gt;string&lt;/span&gt; endQuery = &lt;span style="color:#006080"&gt;@&amp;quot;&amp;quot;&lt;/span&gt;&lt;span style="color:#006080"&gt;&amp;quot; DESC&amp;quot;&lt;/span&gt;;&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none"&gt;&lt;span style="color:#606060"&gt;  36:&lt;/span&gt;  &lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none"&gt;&lt;span style="color:#606060"&gt;  37:&lt;/span&gt; &lt;span style="color:#008000"&gt;//Putting it all together&lt;/span&gt;&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none"&gt;&lt;span style="color:#606060"&gt;  38:&lt;/span&gt; &lt;span style="color:#0000ff"&gt;string&lt;/span&gt; strsql = baseQuery + baseWhere + orderQuery + endQuery;&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none"&gt;&lt;span style="color:#606060"&gt;  39:&lt;/span&gt; Debug.Write(strsql);&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none"&gt;&lt;span style="color:#606060"&gt;  40:&lt;/span&gt;  &lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none"&gt;&lt;span style="color:#606060"&gt;  41:&lt;/span&gt; &lt;span style="color:#0000ff"&gt;return&lt;/span&gt; strsql;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;I'm not proud of it, and couple of small bugs aside, was revisiting it to ensure it was &amp;quot;solid&amp;quot; (as if code like this could EVER be solid) when I threw in the towel, sick of writing code to write code every time I hit a project that needs to use search. There should be an easier/better way. &lt;/p&gt;

&lt;p&gt;The result of my frustration is a tool that takes spaghetti code like this and turns it into:&lt;/p&gt;

&lt;div style="border-right:gray 1px solid;padding-right:4px;border-top:gray 1px solid;padding-left:4px;font-size:8pt;padding-bottom:4px;margin:20px 0px 10px;overflow:auto;border-left:gray 1px solid;width:97.5%;cursor:text;line-height:12pt;padding-top:4px;border-bottom:gray 1px solid;font-family:consolas, 'Courier New', courier, monospace;background-color:#f4f4f4"&gt;
  &lt;div style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none"&gt;
    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none"&gt;&lt;span style="color:#606060"&gt;   1:&lt;/span&gt; MOSSSearch mossSearch = &lt;span style="color:#0000ff"&gt;new&lt;/span&gt; MOSSSearch();&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none"&gt;&lt;span style="color:#606060"&gt;   2:&lt;/span&gt;  &lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none"&gt;&lt;span style="color:#606060"&gt;   3:&lt;/span&gt; ArrayList Scopes = &lt;span style="color:#0000ff"&gt;new&lt;/span&gt; ArrayList();&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none"&gt;&lt;span style="color:#606060"&gt;   4:&lt;/span&gt; Scopes.Add(&lt;span style="color:#006080"&gt;&amp;quot;All http://&amp;quot;&lt;/span&gt; + strSiteURL.Host + &lt;span style="color:#006080"&gt;@&amp;quot;/ Blogs&amp;quot;&lt;/span&gt;);&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none"&gt;&lt;span style="color:#606060"&gt;   5:&lt;/span&gt; mossSearch.Scopes = Scopes;&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none"&gt;&lt;span style="color:#606060"&gt;   6:&lt;/span&gt;  &lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none"&gt;&lt;span style="color:#606060"&gt;   7:&lt;/span&gt; ArrayList returnProperties = &lt;span style="color:#0000ff"&gt;new&lt;/span&gt; ArrayList();&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none"&gt;&lt;span style="color:#606060"&gt;   8:&lt;/span&gt; returnProperties.Add(&lt;span style="color:#006080"&gt;&amp;quot;Title&amp;quot;&lt;/span&gt;);&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none"&gt;&lt;span style="color:#606060"&gt;   9:&lt;/span&gt; returnProperties.Add(&lt;span style="color:#006080"&gt;&amp;quot;Path&amp;quot;&lt;/span&gt;);&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none"&gt;&lt;span style="color:#606060"&gt;  10:&lt;/span&gt; returnProperties.Add(&lt;span style="color:#006080"&gt;&amp;quot;Rank&amp;quot;&lt;/span&gt;);&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none"&gt;&lt;span style="color:#606060"&gt;  11:&lt;/span&gt; returnProperties.Add(&lt;span style="color:#006080"&gt;&amp;quot;Description&amp;quot;&lt;/span&gt;);&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none"&gt;&lt;span style="color:#606060"&gt;  12:&lt;/span&gt; returnProperties.Add(&lt;span style="color:#006080"&gt;&amp;quot;Created&amp;quot;&lt;/span&gt;);&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none"&gt;&lt;span style="color:#606060"&gt;  13:&lt;/span&gt; returnProperties.Add(&lt;span style="color:#006080"&gt;&amp;quot;NumComments&amp;quot;&lt;/span&gt;);&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none"&gt;&lt;span style="color:#606060"&gt;  14:&lt;/span&gt; returnProperties.Add(&lt;span style="color:#006080"&gt;&amp;quot;NumViews&amp;quot;&lt;/span&gt;);&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none"&gt;&lt;span style="color:#606060"&gt;  15:&lt;/span&gt; returnProperties.Add(&lt;span style="color:#006080"&gt;&amp;quot;NumLinkbacks&amp;quot;&lt;/span&gt;);&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none"&gt;&lt;span style="color:#606060"&gt;  16:&lt;/span&gt; returnProperties.Add(&lt;span style="color:#006080"&gt;&amp;quot;Tags&amp;quot;&lt;/span&gt;);&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none"&gt;&lt;span style="color:#606060"&gt;  17:&lt;/span&gt; returnProperties.Add(&lt;span style="color:#006080"&gt;&amp;quot;Categories&amp;quot;&lt;/span&gt;);&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none"&gt;&lt;span style="color:#606060"&gt;  18:&lt;/span&gt; mossSearch.ReturnProperties = returnProperties;&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none"&gt;&lt;span style="color:#606060"&gt;  19:&lt;/span&gt;  &lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none"&gt;&lt;span style="color:#606060"&gt;  20:&lt;/span&gt; WhereContains whereStatement = &lt;span style="color:#0000ff"&gt;new&lt;/span&gt; WhereContains();&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none"&gt;&lt;span style="color:#606060"&gt;  21:&lt;/span&gt; whereStatement.FirstWhereProperty = &lt;span style="color:#006080"&gt;&amp;quot;Categories&amp;quot;&lt;/span&gt;;&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none"&gt;&lt;span style="color:#606060"&gt;  22:&lt;/span&gt;  &lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none"&gt;&lt;span style="color:#606060"&gt;  23:&lt;/span&gt; &lt;span style="color:#0000ff"&gt;if&lt;/span&gt; (!&lt;span style="color:#0000ff"&gt;string&lt;/span&gt;.IsNullOrEmpty(tag))&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none"&gt;&lt;span style="color:#606060"&gt;  24:&lt;/span&gt; {&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none"&gt;&lt;span style="color:#606060"&gt;  25:&lt;/span&gt;     WhereProperty whereTags = &lt;span style="color:#0000ff"&gt;new&lt;/span&gt; WhereProperty();&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none"&gt;&lt;span style="color:#606060"&gt;  26:&lt;/span&gt;     whereTags.Property = &lt;span style="color:#006080"&gt;&amp;quot;Tags&amp;quot;&lt;/span&gt;;&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none"&gt;&lt;span style="color:#606060"&gt;  27:&lt;/span&gt;     whereTags.SearchTerm = tag;&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none"&gt;&lt;span style="color:#606060"&gt;  28:&lt;/span&gt;     whereTags.LogOperator = WhereProperty.LogicalOperator.OR;&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none"&gt;&lt;span style="color:#606060"&gt;  29:&lt;/span&gt;     whereStatement.WhereProperties.Add(whereTags);&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none"&gt;&lt;span style="color:#606060"&gt;  30:&lt;/span&gt;  &lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none"&gt;&lt;span style="color:#606060"&gt;  31:&lt;/span&gt;     WhereProperty whereCategories = &lt;span style="color:#0000ff"&gt;new&lt;/span&gt; WhereProperty();&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none"&gt;&lt;span style="color:#606060"&gt;  32:&lt;/span&gt;     whereCategories.Property = &lt;span style="color:#006080"&gt;&amp;quot;Categories&amp;quot;&lt;/span&gt;;&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none"&gt;&lt;span style="color:#606060"&gt;  33:&lt;/span&gt;     whereCategories.SearchTerm = tag;&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none"&gt;&lt;span style="color:#606060"&gt;  34:&lt;/span&gt;     whereStatement.WhereProperties.Add(whereCategories);&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none"&gt;&lt;span style="color:#606060"&gt;  35:&lt;/span&gt; }&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none"&gt;&lt;span style="color:#606060"&gt;  36:&lt;/span&gt; mossSearch.Where = whereStatement;&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none"&gt;&lt;span style="color:#606060"&gt;  37:&lt;/span&gt;  &lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none"&gt;&lt;span style="color:#606060"&gt;  38:&lt;/span&gt; SortStatement sortStatement = &lt;span style="color:#0000ff"&gt;new&lt;/span&gt; SortStatement();&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none"&gt;&lt;span style="color:#606060"&gt;  39:&lt;/span&gt; sortStatement.SortProperty = _sortField;&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none"&gt;&lt;span style="color:#606060"&gt;  40:&lt;/span&gt; sortStatement.ResultSortOrder = SortDirection.Descending;&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none"&gt;&lt;span style="color:#606060"&gt;  41:&lt;/span&gt; mossSearch.SortStatement = sortStatement;&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none"&gt;&lt;span style="color:#606060"&gt;  42:&lt;/span&gt;  &lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none"&gt;&lt;span style="color:#606060"&gt;  43:&lt;/span&gt; Debug.Write(mossSearch.GetSQLStatement());&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none"&gt;&lt;span style="color:#606060"&gt;  44:&lt;/span&gt; &lt;span style="color:#0000ff"&gt;return&lt;/span&gt; mossSearch.GetSQLStatement();&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;Which looks much more elegant to me. Of course actually creating the query in the first place is tricky too, and while a couple of test tools are available, I wanted to put one together that:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Tested the SQL generated by the OM &lt;/li&gt;

  &lt;li&gt;Output not only the SQL Statement, but the OM code as well, making using it as simple as cut and paste. &lt;/li&gt;

  &lt;li&gt;Was inspired by the now missing in action tool MossQueryTool.exe written by SharePoint legend Steve Peschka (was on GotDotNet). &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The result is the zevenseas SearchCoder and it looks like this:&lt;/p&gt;

&lt;p&gt;&lt;a href="http://community.zevenseas.com/blogs/daniel/Lists/Posts/Attachments/25/image_6.png"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px" height="427" alt="image" src="http://community.zevenseas.com/blogs/daniel/Lists/Posts/Attachments/25/image_thumb_2.png" width="517" border="0"&gt;&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;Here you build your query graphically, when done you click on the &amp;quot;Build SQL&amp;quot; or &amp;quot;Execute Query&amp;quot; buttons which take you here:&lt;/p&gt;

&lt;p&gt;&lt;a href="http://community.zevenseas.com/blogs/daniel/Lists/Posts/Attachments/25/image_4.png"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px" height="430" alt="image" src="http://community.zevenseas.com/blogs/daniel/Lists/Posts/Attachments/25/image_thumb_1.png" width="519" border="0"&gt;&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;Note the SQL Statement is generated, an on the C# SearchCoder OM Tab:&lt;/p&gt;

&lt;p&gt;&lt;a href="http://community.zevenseas.com/blogs/daniel/Lists/Posts/Attachments/25/image_8.png"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px" height="119" alt="image" src="http://community.zevenseas.com/blogs/daniel/Lists/Posts/Attachments/25/image_thumb_3.png" width="244" border="0"&gt;&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;Anyway, this is the .9 release, still a little polishing to do, including:&lt;/p&gt;

&lt;p&gt;- Add Sort order (it is in the OM, but not in the tool)&lt;/p&gt;

&lt;p&gt;- Add support for multiple sort orders&lt;/p&gt;

&lt;p&gt;- Better exception handling (of course!)&lt;/p&gt;

&lt;p&gt;But I would rather it was out there than sitting on my hard disk, so grab it now from CodePlex: &lt;/p&gt;

&lt;p&gt;&lt;a title="" href="http://www.codeplex.com/MOSSSearchCoder"&gt;&lt;/a&gt;&lt;a title="" href="http://www.codeplex.com/MOSSSearchCoder"&gt;CodePlex Project&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;&lt;/h2&gt;
&lt;a href="https://www.codeplex.com/Release/ProjectReleases.aspx?ProjectName=MOSSSearchCoder&amp;amp;ReleaseId=14061"&gt;
  &lt;h2&gt;DOWNLOAD&lt;/h2&gt;
&lt;/a&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.zevenseas.com/~f/blogs_daniel?a=JRZNvI"&gt;&lt;img src="http://feeds.zevenseas.com/~f/blogs_daniel?i=JRZNvI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.zevenseas.com/~f/blogs_daniel?a=ETaP8i"&gt;&lt;img src="http://feeds.zevenseas.com/~f/blogs_daniel?i=ETaP8i" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.zevenseas.com/~f/blogs_daniel?a=Td083I"&gt;&lt;img src="http://feeds.zevenseas.com/~f/blogs_daniel?i=Td083I" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.zevenseas.com/~f/blogs_daniel?a=LMhEci"&gt;&lt;img src="http://feeds.zevenseas.com/~f/blogs_daniel?i=LMhEci" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.zevenseas.com/~r/blogs_daniel/~4/304615586" height="1" width="1"/&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Daniel McPherson</dc:creator><pubDate>Wed, 04 Jun 2008 06:46:00 GMT</pubDate><feedburner:origLink>http://community.zevenseas.com/Blogs/Daniel/archive/2008/06/04/announcing-moss-sql-searchcoder.aspx</feedburner:origLink></item><item><title>The zevenseas Site Staple Feature Builder</title><link>http://feeds.zevenseas.com/~r/blogs_daniel/~3/286292314/the-zevenseas-site-staple-feature-builder.aspx</link><guid isPermaLink="false">/Blogs/Daniel/archive/2008/05/08/the-zevenseas-site-staple-feature-builder.aspx</guid><description>&lt;div class="ExternalClassBE75E38CE2AB4788BC4DD769A00B3520"&gt;&lt;p&gt;I recently completed the development of a feature which is attached to site definitions via a site staple. The feature is a building block, designed to be used by other solution developers when building their own custom site definitions. Rather than continually modifying the staple in my feature (requiring my solution to be rebuilt and redeployed) I wrote a quick little tool that allows them to generate their own staple. With just a little more work I made it generic enough for anyone, and today dropped it onto Codeplex. Hope it helps. &lt;/p&gt;  &lt;h2&gt;&lt;/h2&gt;  &lt;h2&gt;&lt;/h2&gt; &lt;a href="http://www.codeplex.com/zevenseas/Release/ProjectReleases.aspx?ReleaseId=13240"&gt;   &lt;h2&gt;Download the Site Staple Feature Builder&lt;/h2&gt; &lt;/a&gt;  &lt;p&gt;   &lt;br&gt;&lt;b&gt;Installation&lt;/b&gt;    &lt;br&gt;This is just a single command-line executable, so download it from here and then get started.    &lt;br&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Usage&lt;/b&gt;    &lt;br&gt;Base Site Staple Feature Generator    &lt;br&gt;-------------------------------    &lt;br&gt;Usage: zsStapleGenerator &amp;lt;StapleTitle&amp;gt; &amp;lt;SiteDefinitions&amp;gt; &amp;lt;FeatureGuid&amp;gt; &amp;lt;Scope&amp;gt; &amp;lt;FeatureFolder&amp;gt;&lt;/p&gt;  &lt;p&gt;   &lt;br&gt;&amp;lt;StapleTitle&amp;gt;         Name you would like to give the new StapleFeature    &lt;br&gt;&amp;lt;SiteDefinitions&amp;gt;  List of the SiteDefinition to be stapled (';' or ',' delimited)    &lt;br&gt;&amp;lt;FeatureGuid&amp;gt;      The Guid of the Feature that is to be stapled    &lt;br&gt;&amp;lt;Scope&amp;gt;                Either 'WebApplication' or 'Farm'    &lt;br&gt;&amp;lt;FeatureFolder&amp;gt;   The New folder where you would like to create the feature.    &lt;br&gt;&lt;/p&gt; &lt;b&gt;&lt;/b&gt;  &lt;p&gt;&lt;b&gt;Notes&lt;/b&gt;    &lt;br&gt;This is obviously just producing the feature, you would next need to wrap it up into an installable solution file. I stopped here as there are many ways to do this.     &lt;br&gt;After you have created the new feature you can obviously tweak it to your hearts content, the beauty is that all that typing is avoided.&lt;/p&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.zevenseas.com/~f/blogs_daniel?a=NvKsSH"&gt;&lt;img src="http://feeds.zevenseas.com/~f/blogs_daniel?i=NvKsSH" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.zevenseas.com/~f/blogs_daniel?a=EVGG6h"&gt;&lt;img src="http://feeds.zevenseas.com/~f/blogs_daniel?i=EVGG6h" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.zevenseas.com/~f/blogs_daniel?a=usg2nH"&gt;&lt;img src="http://feeds.zevenseas.com/~f/blogs_daniel?i=usg2nH" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.zevenseas.com/~f/blogs_daniel?a=QPCIUh"&gt;&lt;img src="http://feeds.zevenseas.com/~f/blogs_daniel?i=QPCIUh" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.zevenseas.com/~r/blogs_daniel/~4/286292314" height="1" width="1"/&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Daniel McPherson</dc:creator><pubDate>Thu, 08 May 2008 12:25:39 GMT</pubDate><feedburner:origLink>http://community.zevenseas.com/Blogs/Daniel/archive/2008/05/08/the-zevenseas-site-staple-feature-builder.aspx</feedburner:origLink></item><item><title>New Build: Tagged Links - Social Bookmarking for SharePoint</title><link>http://feeds.zevenseas.com/~r/blogs_daniel/~3/283296899/new-build-tagged-links-social-bookmarking-for-sharepoint.aspx</link><guid isPermaLink="false">/Blogs/Daniel/archive/2008/05/04/new-build-tagged-links-social-bookmarking-for-sharepoint.aspx</guid><description>&lt;div class="ExternalClassDF8595C340884A848CE257F9069B5148"&gt;&lt;div class="ExternalClassD9B29FF1F3C341AF81C985FA910436C9"&gt;   &lt;p&gt;Just wanted to let you know that I dropped a new build of the Tagged Links solution today:&lt;/p&gt;    &lt;p&gt;&lt;a href="http://community.zevenseas.com/blogs/daniel/Lists/Posts/Attachments/19/image_40.png"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px" height="410" alt="image" src="http://community.zevenseas.com/blogs/daniel/Lists/Posts/Attachments/19/image_thumb_19.png" width="651" border="0"&gt;&lt;/a&gt; &lt;/p&gt;    &lt;h3&gt;&lt;/h3&gt;    &lt;h3&gt;&lt;/h3&gt;   &lt;a href="http://www.zevenseas.com/Product Library/Tagged Links 1.0 Evaluation.zip"&gt;&lt;/a&gt;&lt;/div&gt;  &lt;h2&gt;&lt;a href="http://www.zevenseas.com/Product Library/Tagged Links 1.0 Evaluation.zip"&gt;Download Tagged Links&lt;/a&gt;&lt;/h2&gt;  &lt;div class="ExternalClassD9B29FF1F3C341AF81C985FA910436C9"&gt;&lt;a href="http://www.zevenseas.com/Product Library/Tagged Links 1.0 Evaluation.zip"&gt;&lt;/a&gt;    &lt;p&gt;I did a walk-through here: &lt;a href="http://community.zevenseas.com/Blogs/Daniel/Lists/Posts/ViewPost.aspx?ID=19"&gt;Tagged Links Walk-through&lt;/a&gt;&lt;/p&gt;    &lt;p&gt;It introduces the following fixes:&lt;/p&gt;    &lt;ol&gt;     &lt;li&gt;Site Members can now submit links (so you don’t have to be an administrator anymore) &lt;/li&gt;      &lt;li&gt;If you type a tag in the &amp;quot;Fill-in Choice&amp;quot; that already exists in the list, the tag is now checked &lt;/li&gt;      &lt;li&gt;You can turn off the “Fill-in Choice” option, and then you can't add any more tags &lt;/li&gt;      &lt;li&gt;The views now show  “No items to display” when there are no items to display &lt;/li&gt;      &lt;li&gt;Updated the feature icon (a new list graphic is on the way) &lt;/li&gt;      &lt;li&gt;Fixed the issue with feature deactivation and then later activation &lt;/li&gt;      &lt;li&gt;Fixed some general text issues, making it easier to read, added a description and fixing spelling errors &lt;/li&gt;      &lt;li&gt;Fixed a bug with the “Global Tags” site settings link, it is now visible at the site collection only &lt;/li&gt;      &lt;li&gt;Performed code analysis to pick out some best practice improvements &lt;/li&gt;   &lt;/ol&gt;    &lt;p&gt;Getting close now, looking to have it complete by mid-May, as always, would like to get your feedback, email me at: &lt;a href="mailto:daniel@zevenseas.com"&gt;daniel@zevenseas.com&lt;/a&gt; and you can always try it out here:&lt;/p&gt; Site: &lt;a href="http://fishtank.zevenseas.com/sites/Tagged Links/TaggedLinks/AllItems.aspx"&gt;Tagged Links&lt;/a&gt;     &lt;br&gt;Username: Coral\DemoUser     &lt;br&gt;Password: DemoUser &lt;/div&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.zevenseas.com/~f/blogs_daniel?a=ly2P6H"&gt;&lt;img src="http://feeds.zevenseas.com/~f/blogs_daniel?i=ly2P6H" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.zevenseas.com/~f/blogs_daniel?a=X3CxDh"&gt;&lt;img src="http://feeds.zevenseas.com/~f/blogs_daniel?i=X3CxDh" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.zevenseas.com/~f/blogs_daniel?a=0jIj1H"&gt;&lt;img src="http://feeds.zevenseas.com/~f/blogs_daniel?i=0jIj1H" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.zevenseas.com/~f/blogs_daniel?a=LuJsqh"&gt;&lt;img src="http://feeds.zevenseas.com/~f/blogs_daniel?i=LuJsqh" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.zevenseas.com/~r/blogs_daniel/~4/283296899" height="1" width="1"/&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Daniel McPherson</dc:creator><pubDate>Sun, 04 May 2008 05:43:26 GMT</pubDate><feedburner:origLink>http://community.zevenseas.com/Blogs/Daniel/archive/2008/05/04/new-build-tagged-links-social-bookmarking-for-sharepoint.aspx</feedburner:origLink></item><item><title>The IgnoreIfAlreadyExists File Element Attribute</title><link>http://feeds.zevenseas.com/~r/blogs_daniel/~3/278231547/the-ignoreifalreadyexists-file-element-attribute.aspx</link><guid isPermaLink="false">/Blogs/Daniel/archive/2008/04/26/the-ignoreifalreadyexists-file-element-attribute.aspx</guid><description>&lt;div class="ExternalClass23D4B08FBA7A49DBA833717D9692DF76"&gt;&lt;div class="ExternalClassC5877866EC5245168323711C7BC87510"&gt;   &lt;p&gt;This attribute doesn't quite work the way I expected it to, or the way I have seen it described in &lt;a href="http://sharepointnutsandbolts.blogspot.com/2007/04/deploying-master-pages-and-page-layouts.html"&gt;other places on the web&lt;/a&gt;. (The documentation is not as clear as it should be. I really wish it did work the way described in Chris's great post!)&lt;/p&gt;    &lt;p&gt;From the official documentation (&lt;a title="http://msdn2.microsoft.com/en-us/library/ms459213.aspx" href="http://msdn2.microsoft.com/en-us/library/ms459213.aspx"&gt;http://msdn2.microsoft.com/en-us/library/ms459213.aspx&lt;/a&gt;) we find that it is designed to:&lt;/p&gt;    &lt;blockquote&gt;     &lt;p&gt;&lt;b&gt;&lt;em&gt;IgnoreIfAlreadyExists&lt;/em&gt;&lt;/b&gt; &lt;/p&gt;      &lt;p&gt;&lt;em&gt;Optional &lt;b&gt;Boolean&lt;/b&gt;. &lt;b&gt;TRUE&lt;/b&gt; to provision the view even if the file already exists at the specified URL; otherwise, &lt;b&gt;FALSE&lt;/b&gt;.&lt;/em&gt;&lt;/p&gt;   &lt;/blockquote&gt;    &lt;p&gt;To fully understand how this attribute worked I set up the following test:&lt;/p&gt;    &lt;ol&gt;     &lt;li&gt;Created a Feature (ReplaceTest1) which simply provisioned a file (test.aspx) into a team sites /_catalogs/masterpage folder. The file simply contained &amp;quot;11111111&amp;quot;. &lt;/li&gt;      &lt;li&gt;I then tested this and confirmed that it worked correctly, I saw &amp;quot;11111111&amp;quot; when accessing the page. &lt;/li&gt;      &lt;li&gt;I then created another feature (ReplaceTest2) based on ReplaceTest1, except with:        &lt;ol&gt;         &lt;li&gt;A new FeatureID &lt;/li&gt;          &lt;li&gt;I added the IgnoreIfAlreadyExists parameter, and set it to TRUE &lt;/li&gt;          &lt;li&gt;Modified the test.aspx file to contain &amp;quot;22222222&amp;quot; instead.&lt;/li&gt;       &lt;/ol&gt;     &lt;/li&gt;      &lt;li&gt;I then activated this feature, and in doing so found that it didn't actually replace the existing test.aspx file. In the browser I still saw &amp;quot;11111111&amp;quot;. &lt;em&gt;I didn't expect this.&lt;/em&gt; &lt;/li&gt;      &lt;li&gt;I then decided to change ReplaceTest2 so that IgnoreIfAlreadyExists was equal to FALSE &lt;/li&gt;      &lt;li&gt;I then repeated the tests and found that this time, when activating ReplaceTest2, I received an error telling me that the file already existed. &lt;em&gt;I did expect this.&lt;/em&gt;&lt;/li&gt;   &lt;/ol&gt;    &lt;p&gt;So, in summary, it appears this attribute actually does exactly what it says (even if it really could have said it clearer), it ignores the provisioning of the file if a file with the same name already exists. At this point I have to wonder just how useful such an attribute really is! &lt;/p&gt;    &lt;p&gt;Anyway, I'm going to return to investigating the easiest way to replace an existing file via a feature, but if anyone out there has had a different experience then I would love to hear about it.&lt;/p&gt;    &lt;div class="wlWriterSmartContent" id="0767317B-992E-4b12-91E0-4F059A8CECA8:b9c83ed3-f6cd-40d3-a041-dd6283dc7ee7" style="padding-right:0px;display:inline;padding-left:0px;padding-bottom:0px;margin:0px;padding-top:0px"&gt;Technorati tags: &lt;a href="http://technorati.com/tags/WSS" rel="tag"&gt;WSS&lt;/a&gt;, &lt;a href="http://technorati.com/tags/Site Definitions" rel="tag"&gt;Site Definitions&lt;/a&gt;, &lt;a href="http://technorati.com/tags/Customisation" rel="tag"&gt;Customisation&lt;/a&gt;, &lt;a href="http://technorati.com/tags/IgnoreIfAlreadyExists" rel="tag"&gt;IgnoreIfAlreadyExists&lt;/a&gt;, &lt;a href="http://technorati.com/tags/MOSS" rel="tag"&gt;MOSS&lt;/a&gt;, &lt;a href="http://technorati.com/tags/SharePoint" rel="tag"&gt;SharePoint&lt;/a&gt;&lt;/div&gt; &lt;/div&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.zevenseas.com/~f/blogs_daniel?a=0WJFY4G"&gt;&lt;img src="http://feeds.zevenseas.com/~f/blogs_daniel?i=0WJFY4G" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.zevenseas.com/~f/blogs_daniel?a=p1QLdfg"&gt;&lt;img src="http://feeds.zevenseas.com/~f/blogs_daniel?i=p1QLdfg" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.zevenseas.com/~f/blogs_daniel?a=5cPLkUG"&gt;&lt;img src="http://feeds.zevenseas.com/~f/blogs_daniel?i=5cPLkUG" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.zevenseas.com/~f/blogs_daniel?a=tSG2xyg"&gt;&lt;img src="http://feeds.zevenseas.com/~f/blogs_daniel?i=tSG2xyg" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.zevenseas.com/~r/blogs_daniel/~4/278231547" height="1" width="1"/&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Daniel McPherson</dc:creator><pubDate>Sat, 26 Apr 2008 04:30:32 GMT</pubDate><feedburner:origLink>http://community.zevenseas.com/Blogs/Daniel/archive/2008/04/26/the-ignoreifalreadyexists-file-element-attribute.aspx</feedburner:origLink></item><item><title>Content from Point2Share</title><link>http://feeds.zevenseas.com/~r/blogs_daniel/~3/278221906/content-from-point2share.aspx</link><guid isPermaLink="false">/Blogs/Daniel/archive/2008/04/19/content-from-point2share.aspx</guid><description>&lt;div class="ExternalClass6C6312E898B847659733FEB0B59BAF77"&gt;&lt;div class="ExternalClass15F978E1D1814D2AB828CC5EA1099E3E"&gt;   &lt;p&gt;I have had a couple of people ping me about content that was available on my old Point2Share site (especially the upgrade stuff) and I'm pleased to say that I have finally got around to going through the old blog and pulling out content that remains useful today. &lt;/p&gt;    &lt;p&gt;Too much has changed now for me to just bring that server back online (not to mention maintenance effort) so I'm just going to republish them here, apologies for the duplication, you just never know when someone is going to find it useful via Google!&lt;/p&gt; &lt;/div&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.zevenseas.com/~f/blogs_daniel?a=9rR8xAG"&gt;&lt;img src="http://feeds.zevenseas.com/~f/blogs_daniel?i=9rR8xAG" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.zevenseas.com/~f/blogs_daniel?a=1N1TWQg"&gt;&lt;img src="http://feeds.zevenseas.com/~f/blogs_daniel?i=1N1TWQg" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.zevenseas.com/~f/blogs_daniel?a=jwd5cXG"&gt;&lt;img src="http://feeds.zevenseas.com/~f/blogs_daniel?i=jwd5cXG" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.zevenseas.com/~f/blogs_daniel?a=1FvIbAg"&gt;&lt;img src="http://feeds.zevenseas.com/~f/blogs_daniel?i=1FvIbAg" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.zevenseas.com/~r/blogs_daniel/~4/278221906" height="1" width="1"/&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Daniel McPherson</dc:creator><pubDate>Sun, 20 Apr 2008 07:15:27 GMT</pubDate><feedburner:origLink>http://community.zevenseas.com/Blogs/Daniel/archive/2008/04/19/content-from-point2share.aspx</feedburner:origLink></item><item><title>Tagged Links Walk-through</title><link>http://feeds.zevenseas.com/~r/blogs_daniel/~3/273499665/tagged-links-walkthrough.aspx</link><guid isPermaLink="false">/Blogs/Daniel/archive/2008/04/13/tagged-links-walkthrough.aspx</guid><description>&lt;div class="ExternalClass4CAAF225407C425EB8A10BC9467591C6"&gt;&lt;div class="ExternalClass844F1EA98A3446E5A4E9EC2D510E1BEB"&gt;   &lt;div class="ExternalClassDDC6C5006DDE4D508656E463639D051B"&gt;     &lt;p class="ExternalClass8529BAD2BEAE4037A4981E19B333D3BE"&gt;Last week we released &amp;quot;Tagged Links&amp;quot;, a solution that brings Social Bookmarking to SharePoint (WSS/MOSS). Today I would like to take you on a walk-through of how it works and the capabilities it provides.&lt;/p&gt;      &lt;h3&gt;&lt;/h3&gt;     &lt;a href="http://community.zevenseas.com/Blogs/Daniel/Releases/RETIRED.zevenseas.TaggedLinks_Beta1.zip"&gt;&lt;/a&gt;&lt;/div&gt;    &lt;h2&gt;&lt;a href="http://www.zevenseas.com/Product%20Library/Tagged%20Links%201.0%20Evaluation.zip"&gt;Download Tagged Links&lt;/a&gt;&lt;/h2&gt;    &lt;div class="ExternalClassDDC6C5006DDE4D508656E463639D051B"&gt;&lt;a href="http://community.zevenseas.com/Blogs/Daniel/Releases/RETIRED.zevenseas.TaggedLinks_Beta1.zip"&gt;&lt;/a&gt;      &lt;h3&gt;First Things First&lt;/h3&gt;      &lt;p class="ExternalClass8529BAD2BEAE4037A4981E19B333D3BE"&gt;What is the one thing you should know about the &amp;quot;Tagged Links&amp;quot; solution? &lt;/p&gt;      &lt;p class="ExternalClass8529BAD2BEAE4037A4981E19B333D3BE"&gt;Well, that it has everything the &amp;quot;Links List&amp;quot; has, but a lot more! Take a look through the walk-through below, email me at &lt;a href="mailto:daniel@zevenseas.com"&gt;daniel@zevenseas.com&lt;/a&gt; for more information, or try it yourself:&lt;/p&gt; Site: &lt;a href="http://fishtank.zevenseas.com/sites/Tagged%20Links/TaggedLinks/AllItems.aspx"&gt;Tagged Links&lt;/a&gt;       &lt;br&gt;Username: Coral\DemoUser       &lt;br&gt;Password: DemoUser       &lt;h4 class="ExternalClass8529BAD2BEAE4037A4981E19B333D3BE"&gt;&lt;strong&gt;The Tagged Links List&lt;/strong&gt;&lt;/h4&gt;      &lt;p class="ExternalClass8529BAD2BEAE4037A4981E19B333D3BE"&gt;&lt;a href="http://community.zevenseas.com/Blogs/Daniel/Lists/Posts/Attachments/19/image_18.png"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px" height="504" alt="image" src="http://community.zevenseas.com/Blogs/Daniel/Lists/Posts/Attachments/19/image_thumb_8.png" width="798" border="0"&gt;&lt;/a&gt; &lt;/p&gt;      &lt;p class="ExternalClass8529BAD2BEAE4037A4981E19B333D3BE"&gt;As you can see a &amp;quot;Tagged Links&amp;quot; list looks like any other SharePoint List, the only exception is the text appearing just above the view.&lt;/p&gt;      &lt;blockquote&gt;       &lt;p&gt;&lt;em&gt;To create a browser button for quickly adding links to this list, right-click the below link, select 'Add to Favorites...' and select the 'Links' folder in your favorites:            &lt;br&gt;&lt;/em&gt;&lt;em&gt;Add link to MyDemoSite - Tagged Links&lt;/em&gt;&lt;/p&gt;     &lt;/blockquote&gt;      &lt;p&gt;This will appear above all &amp;quot;Tagged Links&amp;quot; lists and provides you with a way to add a shortcut to your browser that quickly adds useful websites you find to the list. &lt;/p&gt;      &lt;p&gt;&lt;strong&gt;This is how it works:&lt;/strong&gt;&lt;/p&gt;      &lt;p&gt;1) Right click on the &amp;quot;Add link to Tagged Links - Tagged Links&amp;quot; link, and select &amp;quot;Add to Favorites&amp;quot;&lt;/p&gt;      &lt;blockquote&gt;       &lt;p&gt;You may be prompted with the following:&lt;/p&gt;     &lt;/blockquote&gt;      &lt;blockquote&gt;       &lt;p&gt;&lt;a href="http://community.zevenseas.com/Blogs/Daniel/Lists/Posts/Attachments/19/image_6.png"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px" height="91" alt="image" src="http://community.zevenseas.com/Blogs/Daniel/Lists/Posts/Attachments/19/image_thumb_2.png" width="322" border="0"&gt;&lt;/a&gt; &lt;/p&gt;     &lt;/blockquote&gt;      &lt;blockquote&gt;       &lt;p&gt;If so, select &amp;quot;Yes&amp;quot; because the &amp;quot;Tagged Links&amp;quot; list is a trusted source. &lt;/p&gt;     &lt;/blockquote&gt;      &lt;p&gt;2) When prompted by your browser, place the shortcut in the &amp;quot;Links&amp;quot; folder:&lt;/p&gt;      &lt;p&gt;&lt;a href="http://community.zevenseas.com/Blogs/Daniel/Lists/Posts/Attachments/19/image_16.png"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px" height="130" alt="image" src="http://community.zevenseas.com/Blogs/Daniel/Lists/Posts/Attachments/19/image_thumb_7.png" width="244" border="0"&gt;&lt;/a&gt; &lt;/p&gt;      &lt;p&gt;3) After clicking &amp;quot;Add&amp;quot;, notice that a new button has been placed on the &amp;quot;Links&amp;quot; toolbar in your browser (if that has been turned on):&lt;/p&gt;      &lt;p&gt;&lt;a href="http://community.zevenseas.com/Blogs/Daniel/Lists/Posts/Attachments/19/image_20.png"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px" height="80" alt="image" src="http://community.zevenseas.com/Blogs/Daniel/Lists/Posts/Attachments/19/image_thumb_9.png" width="481" border="0"&gt;&lt;/a&gt; &lt;/p&gt;      &lt;p&gt;4) Finally, lets see what this shortcut can do for us. Browse to a page, for example my blog &lt;a href="http://community.zevenseas.com/Blogs/Daniel"&gt;http://community.zevenseas.com/blogs/daniel&lt;/a&gt;, then, lets pretend (yes I know it is difficult) that you wanted to add my site into your tagged links list. With a standard links list you would have to copy the URL, browse to your links list, create a new item, paste in the URL and then enter a title. With a &amp;quot;Tagged Links&amp;quot; browser shortcut we do that for you! &lt;/p&gt;      &lt;p&gt;Click on the &amp;quot;Add link to MyDemoSite - Tagged Links&amp;quot;&lt;/p&gt;      &lt;p&gt;&lt;a href="http://community.zevenseas.com/Blogs/Daniel/Lists/Posts/Attachments/19/image_24.png"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px" height="466" alt="image" src="http://community.zevenseas.com/Blogs/Daniel/Lists/Posts/Attachments/19/image_thumb_11.png" width="738" border="0"&gt;&lt;/a&gt; &lt;/p&gt;      &lt;p&gt;Notice that the URL and Title fields are already completed for you and that you are taken directly to the &amp;quot;New Item&amp;quot; form from the web site you were viewing when you clicked the button. All you need to do now, is tag it. &lt;/p&gt;      &lt;h3&gt;Tagging with Tagged Links&lt;/h3&gt;      &lt;p&gt;While you can tag information in SharePoint with &amp;quot;Choice&amp;quot; or &amp;quot;Lookup&amp;quot; fields, it's not quite as easy as we wanted it to be, so we have introduced a new &amp;quot;Tags&amp;quot; field. Behind the scenes it is a standard &amp;quot;Choice&amp;quot; field with a &amp;quot;Fillin&amp;quot; option, however, unlike the standard Choice field with the Fill-in enabled, when you enter a new fill-in value, it's automatically added to the list of choices in the field itself. This means that next time you save a link, that tag is already available and just a checkbox tick away. &lt;/p&gt;      &lt;p&gt;&lt;strong&gt;Lets see it in action. &lt;/strong&gt;&lt;/p&gt;      &lt;p&gt;In this example lets say we wanted to tag my blog with our company name &amp;quot;zevenseas&amp;quot;. Unfortunately this value has not yet been added to the Choice list. In a standard links list this would mean going into list settings, modifying the &amp;quot;Tags&amp;quot; field, adding the choice and then refreshing my page. With &amp;quot;Tagged Links&amp;quot; we just type it in, along with any other Tags separated by a &amp;quot;,&amp;quot; or a &amp;quot;;&amp;quot;. &lt;/p&gt;      &lt;p&gt;&lt;a href="http://community.zevenseas.com/Blogs/Daniel/Lists/Posts/Attachments/19/image_26.png"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px" height="211" alt="image" src="http://community.zevenseas.com/Blogs/Daniel/Lists/Posts/Attachments/19/image_thumb_12.png" width="487" border="0"&gt;&lt;/a&gt; &lt;/p&gt;      &lt;p&gt;Now watch