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

<channel>
	<title>Tobias Zimmergren&#039;s thoughts on development - MOVED!</title>
	<atom:link href="http://vspug.com/zimmer/feed/" rel="self" type="application/rss+xml" />
	<link>http://vspug.com/zimmer</link>
	<description>Just another VSPUG - Virtual SharePoint User Group weblog</description>
	<lastBuildDate>Sun, 16 Mar 2008 20:53:00 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>BLOG MOVED: Please update your feeds and bookmarks! :)</title>
		<link>http://vspug.com/zimmer/2008/03/16/blog-moved-please-update-your-feeds-and-bookmarks/</link>
		<comments>http://vspug.com/zimmer/2008/03/16/blog-moved-please-update-your-feeds-and-bookmarks/#comments</comments>
		<pubDate>Sun, 16 Mar 2008 20:53:00 +0000</pubDate>
		<dc:creator>tobias zimmergren</dc:creator>
		
		<guid isPermaLink="false"></guid>
		<description><![CDATA[I&#39;ve moved my blog to http://www.zimmergren.net 
Please update your feeds and bookmarks,
Thanks!
Tobias Zimmergren
]]></description>
			<content:encoded><![CDATA[<p><font color="#ff0000">I&#39;ve moved my blog to </font><a href="http://www.zimmergren.net/"><font color="#ff0000" size="5"><strong>http://www.zimmergren.net</strong></font></a><font color="#ff0000"> </font></p>
<p><font color="#ff0000">Please update your feeds and bookmarks,</font></p>
<p><font color="#ff0000">Thanks!</font></p>
<p><font color="#990000"><a href="http://www.zimmergren.net/">Tobias Zimmergren</a></font></p>
]]></content:encoded>
			<wfw:commentRss>http://vspug.com/zimmer/2008/03/16/blog-moved-please-update-your-feeds-and-bookmarks/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Silverlight 1.0 seamless integration with SharePoint 2007 complete!</title>
		<link>http://vspug.com/zimmer/2008/03/13/silverlight-1-0-seamless-integration-with-sharepoint-2007-complete/</link>
		<comments>http://vspug.com/zimmer/2008/03/13/silverlight-1-0-seamless-integration-with-sharepoint-2007-complete/#comments</comments>
		<pubDate>Thu, 13 Mar 2008 22:28:28 +0000</pubDate>
		<dc:creator>tobias zimmergren</dc:creator>
		
		<guid isPermaLink="false"></guid>
		<description><![CDATA[Author: Tobias ZimmergrenUrl: /zimmer
Yep. It&#39;s me again&#8230;
I managed to salvage most of the data from the bluescreen a couple of hours earlier (due to the persistent use of source control).
I&#39;ll cover this topic more in details in one of the days to come, for now &#8211; this is what it looks like:
 
Please do comment!
Have [...]]]></description>
			<content:encoded><![CDATA[<p><font size="1"><font color="#c0c0c0">Author: Tobias Zimmergren<br />Url: </font><a href="/zimmer"><font color="#c0c0c0" size="1">/zimmer</font></a></font>
<p>Yep. It&#39;s me again&#8230;</p>
<p>I managed to salvage most of the data from <a href="/zimmer/archive/2008/03/13/bluescreen-of-death-on-my-vpc-setting-me-back-a-bit-with-the-tutorial-on-integrating-silverlight-1-0-seamlessly-with-sharepoint-2007.aspx" target="_blank">the bluescreen a couple of hours earlier</a> (due to the persistent use of source control).</p>
<p>I&#39;ll cover this topic more in details in one of the days to come, for now &#8211; this is what it looks like:</p>
<p><img src="/photos/zimmer/images/14046/original.aspx" alt="  " /> </p>
<p>Please do comment!</p>
<p>Have a good night everybody! I sure will, now.</p>
]]></content:encoded>
			<wfw:commentRss>http://vspug.com/zimmer/2008/03/13/silverlight-1-0-seamless-integration-with-sharepoint-2007-complete/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Bluescreen of Death on my VPC &#8211; Setting me back a bit with the tutorial on integrating Silverlight 1.0 seamlessly with SharePoint 2007</title>
		<link>http://vspug.com/zimmer/2008/03/13/bluescreen-of-death-on-my-vpc-setting-me-back-a-bit-with-the-tutorial-on-integrating-silverlight-1-0-seamlessly-with-sharepoint-2007/</link>
		<comments>http://vspug.com/zimmer/2008/03/13/bluescreen-of-death-on-my-vpc-setting-me-back-a-bit-with-the-tutorial-on-integrating-silverlight-1-0-seamlessly-with-sharepoint-2007/#comments</comments>
		<pubDate>Thu, 13 Mar 2008 21:29:04 +0000</pubDate>
		<dc:creator>tobias zimmergren</dc:creator>
		
		<guid isPermaLink="false"></guid>
		<description><![CDATA[I completed my integration project with Silverlight 1.0 and SharePoint 2007 &#8211; which doesn&#39;t requiry any configuration on your server, except to install my Web Part with the .wsp solution.
But&#8230;
Instead of giving you a nice guide on how to implement and integrate Silverlight, Microsoft gave me a Bluescreen of Death smacked in my face when [...]]]></description>
			<content:encoded><![CDATA[<p>I completed my integration project with Silverlight 1.0 and SharePoint 2007 &#8211; which doesn&#39;t requiry any configuration on your server, except to install my Web Part with the .wsp solution.</p>
<p><strong>But&#8230;</strong></p>
<p>Instead of giving you a nice guide on how to implement and integrate Silverlight, Microsoft gave me a Bluescreen of Death smacked in my face when I was copying my files to the source control environment.</p>
<p><img src="/photos/zimmer/images/14042/500x375.aspx" alt="  " /> </p>
<p>Anyhow, it&#39;s not such a big loss. I think most of the things are checked into the Source Control environment already, so i just need to set up a new VPC &#8211; seeing as this one doesn&#39;t even start anymore :S</p>
<p>Hang in there a few days and you&#39;ll have your Silverlight 1.0 integration served on a Silverplate!</p>
<p>Keep in touch.</p>
]]></content:encoded>
			<wfw:commentRss>http://vspug.com/zimmer/2008/03/13/bluescreen-of-death-on-my-vpc-setting-me-back-a-bit-with-the-tutorial-on-integrating-silverlight-1-0-seamlessly-with-sharepoint-2007/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SharePoint Cross List Queries in a custom UserControl</title>
		<link>http://vspug.com/zimmer/2008/03/09/sharepoint-cross-list-queries-in-a-custom-usercontrol/</link>
		<comments>http://vspug.com/zimmer/2008/03/09/sharepoint-cross-list-queries-in-a-custom-usercontrol/#comments</comments>
		<pubDate>Sun, 09 Mar 2008 16:56:57 +0000</pubDate>
		<dc:creator>tobias zimmergren</dc:creator>
		
		<guid isPermaLink="false"></guid>
		<description><![CDATA[Author: Tobias ZimmergrenUrl: /zimmer 
I got the question last week weather it&#39;s possible to get items from all lists of &#60;your chosen type here&#62; gathered and displayed on one page.This is &#8211; like most things &#8211; possible in SharePoint without any greater efforts. With something called Queries we can use the object model to query [...]]]></description>
			<content:encoded><![CDATA[<p><font size="1"><font color="#c0c0c0">Author: Tobias Zimmergren<br />Url: </font><a href="/zimmer"><font color="#c0c0c0" size="1">/zimmer</font></a></font> </p>
<p>I got the question last week weather it&#39;s possible to get items from all lists of &lt;your chosen type here&gt; gathered and displayed on one page.<br />This is &#8211; like most things &#8211; possible in SharePoint without any greater efforts. With something called Queries we can use the object model to query SharePoint and get a result quite painlessly.</p>
<p>To demonstrate a very simple example, I&#39;ve created a very small usercontrol (for use with <a href="http://www.codeplex.com/smartpart" target="_blank">Jan Tielen&#39;s SmartPart</a>) that looks like this:</p>
<p><img src="/photos/zimmer/images/13800/original.aspx" alt="  " /> </p>
<p>This code will combine all the items in all of the TaskLists on the current SiteCollection and display them in a simple GridView as seen above in the screenshot.</p>
<h5>Code for the Cross List Query UserControl</h5>
<p><img src="/photos/zimmer/images/13801/original.aspx" alt="  " /> </p>
<p><img src="/photos/zimmer/images/13802/original.aspx" alt="  " /> </p>
<p>Simple enough, huh? <br />Of course you can create webparts, usercontrols, application pages, or any other type of application to interact with the object model in this way. I chose to do it using a UserControl for the ease of deployment, testing, development and demonstration.</p>
<p>For your conveniance I&#39;ve uploaded the UserControl (.zip) <a href="/files/folders/zimmer/entry13803.aspx" target="_blank">here</a> so you can download it.</p>
]]></content:encoded>
			<wfw:commentRss>http://vspug.com/zimmer/2008/03/09/sharepoint-cross-list-queries-in-a-custom-usercontrol/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Silverlight (2.0) Blueprints for SharePoint</title>
		<link>http://vspug.com/zimmer/2008/03/03/silverlight-2-0-blueprints-for-sharepoint/</link>
		<comments>http://vspug.com/zimmer/2008/03/03/silverlight-2-0-blueprints-for-sharepoint/#comments</comments>
		<pubDate>Mon, 03 Mar 2008 16:07:15 +0000</pubDate>
		<dc:creator>tobias zimmergren</dc:creator>
		
		<guid isPermaLink="false"></guid>
		<description><![CDATA[Author: Tobias ZimmergrenUrl: /zimmer 
Hi people, been really busy the last couple of weeks and havn&#39;t had the time to answer your mails nor write any new blogposts.
However, I just felt that I needed to get this link out there for you guys to check out in case you havn&#39;t already: http://www.ssblueprints.net/sharepoint/
&#34;Open Source Source Code [...]]]></description>
			<content:encoded><![CDATA[<p><font size="1"><font color="#c0c0c0">Author: Tobias Zimmergren<br />Url: </font><a href="/zimmer"><font color="#c0c0c0" size="1">/zimmer</font></a></font> </p>
<p>Hi people, been really busy the last couple of weeks and havn&#39;t had the time to answer your mails nor write any new blogposts.</p>
<p>However, I just felt that I needed to get this link out there for you guys to check out in case you havn&#39;t already: <a title="http://www.ssblueprints.net/sharepoint/" href="http://www.ssblueprints.net/sharepoint/">http://www.ssblueprints.net/sharepoint/</a></p>
<p>&quot;Open Source Source Code and Full Blueprint coming soon&quot; &#8211; Sounds promising</p>
<p>While you check out that link, I&#39;ll try to figure out the topic of my next MOSS post <img src='http://vspug.com/zimmer/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://vspug.com/zimmer/2008/03/03/silverlight-2-0-blueprints-for-sharepoint/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Windows Live Alerts &#8211; Now on your blog or website</title>
		<link>http://vspug.com/zimmer/2008/02/05/windows-live-alerts-now-on-your-blog-or-website/</link>
		<comments>http://vspug.com/zimmer/2008/02/05/windows-live-alerts-now-on-your-blog-or-website/#comments</comments>
		<pubDate>Tue, 05 Feb 2008 19:49:00 +0000</pubDate>
		<dc:creator>tobias zimmergren</dc:creator>
		
		<guid isPermaLink="false"></guid>
		<description><![CDATA[Author: Tobias ZimmergrenUrl: /zimmer 
I just read a post by Michael Gannotti which was about the new features from Windows Live. Now you can use Alerts on your blog/website so people can register/sign up to receive alerts when you make changes or adds new posts to your blog.
Read more on Michael&#39;s blog here
]]></description>
			<content:encoded><![CDATA[<p><font size="1"><font color="#c0c0c0">Author: Tobias Zimmergren<br />Url: </font><a href="/zimmer"><font color="#c0c0c0" size="1">/zimmer</font></a></font> </p>
<p>I just read a post by <a href="http://sharepoint.microsoft.com/blogs/mikeg/">Michael Gannotti</a> which was about the new features from Windows Live. Now you can use Alerts on your blog/website so people can register/sign up to receive alerts when you make changes or adds new posts to your blog.</p>
<p>Read more on Michael&#39;s blog <a href="http://sharepoint.microsoft.com/blogs/mikeg/Lists/Posts/Post.aspx?ID=860">here</a></p>
]]></content:encoded>
			<wfw:commentRss>http://vspug.com/zimmer/2008/02/05/windows-live-alerts-now-on-your-blog-or-website/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Get a Web based Windows Live Messenger application on your blog or website</title>
		<link>http://vspug.com/zimmer/2008/01/13/get-a-web-based-windows-live-messenger-application-on-your-blog-or-website/</link>
		<comments>http://vspug.com/zimmer/2008/01/13/get-a-web-based-windows-live-messenger-application-on-your-blog-or-website/#comments</comments>
		<pubDate>Sun, 13 Jan 2008 17:55:39 +0000</pubDate>
		<dc:creator>tobias zimmergren</dc:creator>
		
		<guid isPermaLink="false"></guid>
		<description><![CDATA[Author: Tobias ZimmergrenUrl: /zimmer 
Short post! I just bumped into this feature of the Windows Live Messenger application which enables you to actually add a web-based messenger to your site or blog.
Check out http://settings.messenger.live.com/applications/websettings.aspx to create one for yourself.
&#160;
First off, click the little green MSN-guy (it&#39;s green if the person is online)
&#160;
You&#39;ll get some dialogs [...]]]></description>
			<content:encoded><![CDATA[<p><font size="1"><font color="#c0c0c0">Author: Tobias Zimmergren<br />Url: </font><a href="/zimmer"><font color="#c0c0c0" size="1">/zimmer</font></a></font> </p>
<p>Short post! I just bumped into this feature of the Windows Live Messenger application which enables you to actually add a web-based messenger to your site or blog.</p>
<p>Check out <a title="http://settings.messenger.live.com/applications/websettings.aspx" href="http://settings.messenger.live.com/applications/websettings.aspx">http://settings.messenger.live.com/applications/websettings.aspx</a> to create one for yourself.</p>
<p>&nbsp;</p>
<p>First off, click the little green MSN-guy (it&#39;s green if the person is online)<br /><img src="/photos/zimmer/images/11173/original.aspx" alt="  " /></p>
<p>&nbsp;</p>
<p>You&#39;ll get some dialogs asking you for either your Live Passport or if you&#39;d like to be anonymous and then you need to enter a verification code. After that, you&#39;ll see the dialog below in a browser window, being able to chat with the person. If I&#39;m online, you can try it out!</p>
<p><img src="/photos/zimmer/images/11174/original.aspx" alt="  " /></p>
]]></content:encoded>
			<wfw:commentRss>http://vspug.com/zimmer/2008/01/13/get-a-web-based-windows-live-messenger-application-on-your-blog-or-website/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MOSS 2007: Creating a custom AJAX UserControl that will query the SharePoint Search Query Object Model to perform searches</title>
		<link>http://vspug.com/zimmer/2008/01/12/moss-2007-creating-a-custom-ajax-usercontrol-that-will-query-the-sharepoint-search-query-object-model-to-perform-searches/</link>
		<comments>http://vspug.com/zimmer/2008/01/12/moss-2007-creating-a-custom-ajax-usercontrol-that-will-query-the-sharepoint-search-query-object-model-to-perform-searches/#comments</comments>
		<pubDate>Sat, 12 Jan 2008 22:10:41 +0000</pubDate>
		<dc:creator>tobias zimmergren</dc:creator>
		
		<guid isPermaLink="false"></guid>
		<description><![CDATA[Author: Tobias ZimmergrenUrl: /zimmer 
If you&#39;ve read my last two blogposts you already know how to configure ASP.NET 2.0 AJAX for your SharePoint Server and how do deploy a UserControl that uses AJAX functionality on you SharePoint Server.
You can find my previous articles here:

MOSS 2007- Add support for AJAX in your SharePoint installation
MOSS 2007 &#8211; [...]]]></description>
			<content:encoded><![CDATA[<p><font size="1"><font color="#c0c0c0">Author: Tobias Zimmergren<br />Url: </font><a href="/zimmer"><font color="#c0c0c0" size="1">/zimmer</font></a></font> </p>
<p>If you&#39;ve read my last two blogposts you already know how to configure ASP.NET 2.0 AJAX for your SharePoint Server and how do deploy a UserControl that uses AJAX functionality on you SharePoint Server.</p>
<p>You can find my previous articles here:</p>
<ul>
<li><a title="MOSS 2007- Add support for AJAX in your SharePoint installation" href="/zimmer/archive/2008/01/04/moss-2007-add-support-for-ajax-in-your-sharepoint-installation.aspx">MOSS 2007- Add support for AJAX in your SharePoint installation</a>
<li><a title="MOSS 2007- Using AJAX UserControls in SharePoint" href="/zimmer/archive/2008/01/10/moss-2007-using-ajax-usercontrols-in-sharepoint.aspx">MOSS 2007 &#8211; Using AJAX UserControls in SharePoint</a></li>
</ul>
<p>This blogpost shows a simple implementation of a UserControl that uses the Object Model to query the search service using a keyword and then using an UpdatePanel in AJAX to present the result to the user without any page reloads.</p>
<h4>Let&#39;s create an AJAX based UserControl which purpose will be to search using the Search Query Object Model</h4>
<h5></h5>
<h5>Copy the nessecary assemblies to your local bin folder (I&#39;m deploying locally to the WebApplication on port 80)</h5>
<p>To make this work (in this case, since I&#39;m deploying to the UserControls folder with inline code, not calling any own assemblies) you need to copy the two .dll files to your /bin folder of the WebApplication where you want to deploy this UserControl.</p>
<ol>
<li>Copy C:Program FilesCommon FilesMicrosoft Sharedweb server extensions12ISAPIMicrosoft.Office.Server.dll
<li>Copy C:Program FilesCommon FilesMicrosoft Sharedweb server extensions12ISAPIMicrosoft.Office.Server.Search.dll
<li>Paste the two files to C:InetpubwwwrootwssVirtualDirectories80in (Note: It can be any other port other than 80 if you&#39;re deploying to another WebApplication)</li>
</ol>
<p>The reason that we copy these files to our deployment target&#39;s /bin is simply that I&#39;m deploying locally to that WebApplication and some of the namespaces and classes that we need to use in order to be able to query the Search Object Model are availible in those assemblies. There&#39;s better ways to accomplish this, but to keep it simple I&#39;m going with this approach.</p>
<h5>Create the custom AJAX UserControl that will query the SharePoint Search Query Object Model</h5>
<p>For simplicity, I&#39;ll reference all the servercode inside the &lt;script&gt; block and not using a code-behind assembly.</p>
<ol>
<li>Launch Visual Studio 2005 (or whatever version you&#39;re running)</li>
<li>Create a new file based on the &quot;<em>Web User Control</em>&quot; template, name it as you please</li>
<li>Add the following tags just below the Control directive:
<p><em>&lt;%@ Register Assembly=&quot;System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35&quot; Namespace=&quot;System.Web.UI&quot; TagPrefix=&quot;asp&quot; %&gt;<br />&lt;%@ Import Namespace=&quot;Microsoft.Office.Server&quot; %&gt;<br />&lt;%@ Import Namespace=&quot;Microsoft.Office.Server.Search.Query&quot; %&gt;<br />&lt;%@ Register Assembly=&quot;AjaxControlToolkit&quot; Namespace=&quot;AjaxControlToolkit&quot; TagPrefix=&quot;ajaxToolkit&quot; %&gt;</em></p>
<p>It could look something like this:<br /><img src="/photos/zimmer/images/11150/original.aspx" alt="  " /> </li>
<li>Just below all the references you just added, add the following code:
<p><em>&lt;script runat=&quot;server&quot;&gt;</p>
<p>&lt;/script&gt;</em></p>
</li>
<li>Add the following code right below the references you just added. This code is simply to give us a simple user interface for the user to perform the search from:</li>
<p><em>&lt;asp:UpdateProgress ID=&quot;UpdateProgress1&quot; runat=&quot;server&quot; AssociatedUpdatePanelID=&quot;UpdatePanel1&quot;&gt;<br />&nbsp;&nbsp;&nbsp; &lt;ProgressTemplate&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;img src=&quot;http://zimmergren/hostedImages/ajax-loader.gif&quot; alt=&quot;Searching&#8230;&quot; style=&quot;border: 0px none #fff;&quot;/&gt;<br />&nbsp;&nbsp;&nbsp; &lt;/ProgressTemplate&gt;<br />&lt;/asp:UpdateProgress&gt;<br />&lt;asp:UpdatePanel ID=&quot;UpdatePanel1&quot; runat=&quot;server&quot;&gt;<br />&nbsp;&nbsp;&nbsp; &lt;ContentTemplate&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Enter a keyword to search for&lt;br /&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;asp:TextBox ID=&quot;tbSearchString&quot; runat=&quot;server&quot; Width=&quot;230px&quot;/&gt;&lt;br /&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;asp:Button ID=&quot;btnSearch&quot; runat=&quot;server&quot; Text=&quot;Search&quot; OnClick=&quot;btnSearch_Click&quot; /&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;asp:Literal ID=&quot;literalSearchResults&quot; runat=&quot;server&quot; /&gt;<br />&nbsp;&nbsp;&nbsp; &lt;/ContentTemplate&gt;<br />&lt;/asp:UpdatePanel&gt;</em></p>
<p>It could look something like this:<br /><img src="/photos/zimmer/images/11151/original.aspx" alt="  " /> </p>
<li>Insert this code <strong>inside</strong> the &lt;script&gt;-tag you created earlier:<br /><em><br />protected void btnSearch_Click(object sender, EventArgs e)<br />{<br />&nbsp;&nbsp;&nbsp; // Job insurance, to pause and show that the UpdateProgress works<br />&nbsp;&nbsp;&nbsp; System.Threading.Thread.Sleep(2000);<br />&nbsp;&nbsp;&nbsp; try<br />&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; string startTable = &quot;&lt;table style=&quot;width: 100%;&quot;&gt;&quot;;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; string endTable = &quot;&lt;/table&gt;&quot;;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; string searchResultItem =<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &quot;&lt;tr&gt;&quot; +<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &quot;&lt;td&gt;&lt;a href=&quot;{0}&quot;&gt;{1}&lt;/a&gt;&lt;/td&gt;&quot; +<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &quot;&lt;/tr&gt;&quot; +<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &quot;&lt;tr&gt;&quot; +<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &quot;&lt;td&gt;&quot; +<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &quot;&lt;em&gt;{2}&lt;/em&gt;&quot; +<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &quot;&lt;/td&gt;&quot; +<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &quot;&lt;/tr&gt;&quot; +<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &quot;&lt;tr&gt;&quot; +<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &quot;&lt;td&gt;Site: {3}&lt;/td&gt;&quot; +<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &quot;&lt;/tr&gt;&quot; +<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &quot;&lt;tr&gt;&quot; +<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &quot;&lt;td style=&quot;padding-bottom: 10px;&quot;&gt;Author: {4}, Item Size: {5}&lt;/td&gt;&quot; +<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &quot;&lt;/tr&gt;&quot;; </em></li>
<p><em>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; string outputResults = startTable; </em>
<p><em>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ServerContext context = ServerContext.GetContext(&quot;SharedServices1&quot;);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; KeywordQuery keywordQuery = new KeywordQuery(context); </em>
<p><em>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; keywordQuery.ResultTypes = ResultType.RelevantResults;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; keywordQuery.EnableStemming = true;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; keywordQuery.TrimDuplicates = true;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; keywordQuery.QueryText = tbSearchString.Text; </em>
<p><em>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ResultTableCollection results = keywordQuery.Execute();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ResultTable resultTable = results[ResultType.RelevantResults]; </em>
<p><em>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (resultTable.RowCount == 0)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; literalSearchResults.Text = &quot;Sorry, your search didn&#39;t return any results&quot;;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; while (resultTable.Read())<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; outputResults += string.Format(searchResultItem,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; resultTable.GetString(5),<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; resultTable.GetString(2),<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; resultTable.GetString(6),<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; resultTable.GetString(8),<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; resultTable.GetString(3),<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; resultTable.GetString(4));<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; outputResults += endTable;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; literalSearchResults.Text = outputResults;<br />&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp; catch (Exception ex)<br />&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; literalSearchResults.Text = ex.Message;<br />&nbsp;&nbsp;&nbsp; }<br />}</p>
<p></em></p>
<p>Instead of going all crazy about how the code actually works with the Search Query Object Model, I&#39;m just pasting the code here for you to try and will explain the Search Query Object Model in another article.</p>
</ol>
<h5>Deploy the UserControl</h5>
<ul>
<li>Copy or Save the UserControl to the following location: <em>C:InetpubwwwrootwssVirtualDirectories80UserControls</em> and you&#39;re all set.</li>
</ul>
<p>If you&#39;ve <a href="/zimmer/archive/2008/01/04/moss-2007-add-support-for-ajax-in-your-sharepoint-installation.aspx" target="_blank">configured AJAX</a> and installed the <a href="http://www.codeplex.com/smartpart" target="_blank">SmartPart</a> you should be all set and be able to use it. See this <a href="/zimmer/archive/2008/01/10/moss-2007-using-ajax-usercontrols-in-sharepoint.aspx" target="_blank">short post on using the SmartPart</a> if you don&#39;t know already.</p>
<h5>Final Result</h5>
<p>This is what it looks like when you hit the button (the red image spins around for 2 seconds (see the code, Thread.Sleep(2000)) to show how it will look if it&#39;s a heavy query and needs some loading time.<br /><img src="/photos/zimmer/images/11152/original.aspx" alt="  " /> </p>
<p>This is what the result will look like, note that everything is done within an UpdatePanel and we do not experience the page to reload, or any visual postbacks.<br /><img src="/photos/zimmer/images/11153/original.aspx" alt="  " /> </p>
<p><a href="/files/folders/zimmer/entry11148.aspx" target="_blank">Download the UserControl here</a></p>
]]></content:encoded>
			<wfw:commentRss>http://vspug.com/zimmer/2008/01/12/moss-2007-creating-a-custom-ajax-usercontrol-that-will-query-the-sharepoint-search-query-object-model-to-perform-searches/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MOSS 2007: Using AJAX UserControls in SharePoint</title>
		<link>http://vspug.com/zimmer/2008/01/10/moss-2007-using-ajax-usercontrols-in-sharepoint/</link>
		<comments>http://vspug.com/zimmer/2008/01/10/moss-2007-using-ajax-usercontrols-in-sharepoint/#comments</comments>
		<pubDate>Thu, 10 Jan 2008 13:33:00 +0000</pubDate>
		<dc:creator>tobias zimmergren</dc:creator>
		
		<guid isPermaLink="false"></guid>
		<description><![CDATA[Author: Tobias ZimmergrenUrl: /zimmer 
This post merely shows you how you can use the AJAX functionality in SharePoint by using UserControls. 
What we need to be able to follow the steps in this article

Have installed ASP.NET 2.0 AJAX 1.0 Extensions (Download here)  
Configured web.config to enable AJAX support (See my previous post here)  [...]]]></description>
			<content:encoded><![CDATA[<p><font size="1"><font color="#c0c0c0">Author: Tobias Zimmergren<br />Url: </font><a href="/zimmer"><font color="#c0c0c0" size="1">/zimmer</font></a></font> </p>
<p>This post merely shows you how you can use the AJAX functionality in SharePoint by using UserControls. </p>
<h4>What we need to be able to follow the steps in this article</h4>
<ul>
<li>Have installed ASP.NET 2.0 AJAX 1.0 Extensions (<a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=ca9d90fa-e8c9-42e3-aa19-08e2c027f5d6&amp;DisplayLang=en" target="_blank">Download here</a>)  </li>
<li>Configured web.config to enable AJAX support (<a href="/zimmer/archive/2008/01/04/moss-2007-add-support-for-ajax-in-your-sharepoint-installation.aspx" target="_blank">See my previous post here</a>)  </li>
<li>Have the SmartPart installed and deployed (See the <a href="http://www.codeplex.com/smartpart" target="_blank">SmartPart project site</a> for more information, installation &amp; deployment instructions etc)</li>
</ul>
<p>In the following sections I will describe how you an use the <a href="http://www.codeplex.com/smartpart" target="_blank">SmartPart</a> by <a href="http://weblogs.asp.net/jan/" target="_blank">Jan Tielens</a> to host your custom usercontrols in SharePoint. The SmartPart is widely used by a number of people. However, there&#39;s also the approach of writing your own wrapper if you want full control of your usercontrol wrapper. <a href="http://www.helloitsliam.com" target="_blank">Liam Cleary</a> has blogged about doing so <a href="http://www.helloitsliam.com/archive/2008/01/04/moss2007-%E2%80%93-user-control-within-a-web-part-part-1.aspx" target="_blank">here</a>.</p>
<h4>If you&#39;ve checked the aforementioned requirements, let&#39;s get started</h4>
<p>First off, we&#39;ll install the AJAX Control Toolkit</p>
<h5>Add the AJAX Control Toolkit to your SharePoint Server</h5>
<p>Download the AJAX Control Toolkit from <a href="http://www.codeplex.com/AtlasControlToolkit/Release/ProjectReleases.aspx?ReleaseId=8513" target="_blank">here</a> and extract all the files into any folder. Search for the <i>AjaxControlToolkit.dll</i> file and make sure you copy it to the same webapplication&#39;s /bin directory as you configured for AJAX use. This means that you simply copy the <i>AjaxControlToolkit.dll</i> file to e.g. <i>C:InetpubwwwrootwssVirtualDirectories80in</i> if that&#39;s the webapplication you&#39;ve configured AJAX for.</p>
<p>It might look something like this:</p>
<p><img src="/photos/zimmer/images/11022/original.aspx" alt="  " /> </p>
<h5>We&#39;re ready for some development, create a new project</h5>
<ol>
<li>Launch Visual Studio  </li>
<li>Create a new Web Site with ASP.NET AJAX Support
<p><img src="/photos/zimmer/images/11023/original.aspx" alt="  " /> <br />Note: The only reason that I create an entire Web Site project is so I can test my UserControls and debug easily on my own development machine before I actually deploy them.  </li>
<li>Create a new Web User Control by adding a new .ascx file to your project (I usually delete the .cs file and the reference to the CodeBehind for easy deployment if there&#39;s no sensitive code in order to limit the UserControl to one file with embedded code)  </li>
<li>It could now look something like this
<p><img src="/photos/zimmer/images/11024/original.aspx" alt="  " /> </li>
</ol>
<h5>Add the AJAX Control Toolkit to your Visual Studio toolbox</h5>
<ol>
<li>Right click in the Toolbox and choose &quot;<i>Add Tab</i>&quot; and choose a name for the new section. (My choice was &quot;<i>AJAX Control Toolkit</i>&quot;) </li>
<li>Right click inside the newly created tab, and click &quot;<i>Choose Items&#8230;</i>&quot;  </li>
<li>Press &quot;<i>Browse</i>&quot; and navigate to your <i>AjaxControlToolkit.dll</i> which you&#39;ve got somewhere on your machine by now and then click &quot;<i>Open</i>&quot;  </li>
<li>You now have a Toolbox filled with the AJAX Control Toolkit controls to use within your project.
<p><img src="/photos/zimmer/images/11025/original.aspx" alt="  " /> </li>
</ol>
<h5>Add a reference to the AJAX Control Toolkit in your UserControl</h5>
<ol>
<li>Switch to designview of your UserControl  </li>
<li>Dragging any chosen AJAX Control or Control Extender onto the UserControl will automatically add the reference to the correct Namespace for AJAX in your UserControl. You might want to change the TagName to something more useful than cc1 as it&#39;s named automatically.
<p>&nbsp;<img src="/photos/zimmer/images/11027/original.aspx" alt="  " /> </li>
</ol>
<h5>Create a simple Hello World UserControl</h5>
<ol>
<li>Drop a TextBox in the UserControl </li>
<li>Drop a &quot;CalendarExtender&quot; in the UserControl &#8211; It&#39;s found in the AJAX Control Toolkit toolbox&nbsp; </li>
<li>Set the CalendarExtender&#39;s <b>TargetControlID </b>property to the ID of the TextBox control.<br />The code might look something like this:<br /><i><br />&lt;%@ Control Language=&quot;C#&quot; AutoEventWireup=&quot;true&quot; %&gt;<br />&lt;%@ Register Assembly=&quot;AjaxControlToolkit&quot; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Namespace=&quot;AjaxControlToolkit&quot; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TagPrefix=&quot;ajaxToolkit&quot; %&gt; </i></li>
<p><i>&lt;script runat=&quot;server&quot;&gt; <br />&nbsp;&nbsp;&nbsp; // If there were any server side code, it would go here since I don&#39;t use a code behind or pre-compiled assembly to host the code<br /></i><i>&lt;/script&gt; </i> </p>
<p><i>Pick a date by clicking in the textbox!&lt;br /&gt;<br />&lt;asp:TextBox ID=&quot;TextBox1&quot; runat=&quot;server&quot;/&gt;<br />&lt;ajaxToolkit:CalendarExtender ID=&quot;CalendarExtender1&quot; runat=&quot;server&quot; <br /><b>TargetControlID</b>=&quot;TextBox1&quot; /&gt;</p>
<p></i>The UserControl might look something like this when you add it to a page and run:</p>
<p><img src="/photos/zimmer/images/11028/original.aspx" alt="  " />  </p>
<li>If you&#39;re happy with this very simple Hello World UserControl which uses the AJAX Control Toolkit to extend a Calendar popup, move on to the next section <img src='http://vspug.com/zimmer/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </li>
</ol>
<h5>Deploy the UserControl to SharePoint</h5>
<ol>
<li>Copy your newly created UserControl (in my case, it&#39;s called <i>ZimmerAJAX.ascx</i>)</li>
<li>Paste the UserControl to C:InetpubwwwrootwssVirtualDirectories80UserControls (assuming you&#39;re deploying on the standard port 80 site)<br />Note: The UserControls directory might not exist at this point, then you&#39;ll have to create it manually. The reason that this folder needs to exist is that the SmartPart which will host our UserControl is looking for controls placed inside that folder, unless you&#39;re creating your own UserControl Wrapper WebPart, as Liam Cleary explains <a href="http://www.helloitsliam.com/archive/2008/01/04/moss2007-%E2%80%93-user-control-within-a-web-part-part-1.aspx" target="_blank">here</a></li>
</ol>
<p>When you&#39;ve copied the file to the UserControls directory, the SmartPart will automatically be able to find it.</p>
<h5>Add the SmartPart to your site</h5>
<ol>
<li>Navigate to the site where you want to host your UserControl</li>
<li>Click <b>&quot;</b><i>Site Actions&quot; &#8211; &quot;Edit Page&quot;</i></li>
<li>Click on one of the Web Part placeholders (&quot;<i>Add a Web Part</i>&quot;)</li>
<li>Look for the SmartPart and add it to your page.
<p><img src="/photos/zimmer/images/11029/original.aspx" alt="  " /></li>
</ol>
<p><b>Note: </b>If you havn&#39;t added a ScriptManager to either the Masterpage or the default.aspx page, you&#39;ll need to use the SmartPart with AJAX instead. In my case I&#39;ve already configured my masterpage to include a ScriptManager.<br /> <br />
<h5>Configure the SmartPart to use your AJAX-based UserControl</h5>
<ol>
<li>Click on &quot;<i>Edit</i>&quot; &#8211; &quot;<i>Modify Shared Web Part</i>&quot;</li>
<li>Choose your UserControl from the DropDown at the top of the settings, and click Ok or Apply to apply your changes!
<p><img src="/photos/zimmer/images/11031/original.aspx" alt="  " /> </li>
<li>Click &quot;Exit Edit Mode&quot; to exit the edit mode of the page, and view your UserControl<br /><img src="/photos/zimmer/images/11032/original.aspx" alt="  " />&nbsp;</li>
</ol>
<h5></h5>
<h4>That&#39;s a wrap!</h4>
<p>Now your AJAX-enabled UserControl is hosted within a wrapper webpart (SmartPart) and have full AJAX Extensions support.</p>
<p>Thanks for tuning in. See you soon!</p>
<p>Cheers!</p>
]]></content:encoded>
			<wfw:commentRss>http://vspug.com/zimmer/2008/01/10/moss-2007-using-ajax-usercontrols-in-sharepoint/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MOSS 2007: Add support for AJAX in your SharePoint installation</title>
		<link>http://vspug.com/zimmer/2008/01/04/moss-2007-add-support-for-ajax-in-your-sharepoint-installation/</link>
		<comments>http://vspug.com/zimmer/2008/01/04/moss-2007-add-support-for-ajax-in-your-sharepoint-installation/#comments</comments>
		<pubDate>Fri, 04 Jan 2008 13:07:00 +0000</pubDate>
		<dc:creator>tobias zimmergren</dc:creator>
		
		<guid isPermaLink="false"></guid>
		<description><![CDATA[Author: Tobias ZimmergrenUrl: /zimmer 
In this very short and straight-on post I&#39;ll just mention how you can configure your SharePoint installation to enable support for ASP.NET AJAX 1.0 since a lot of people have been asking me about it.
Before we make any changes in the web.config we need the following:

A backup of the web.config file [...]]]></description>
			<content:encoded><![CDATA[<p><font size="1"><font color="#c0c0c0">Author: Tobias Zimmergren<br />Url: </font><a href="/zimmer"><font color="#c0c0c0" size="1">/zimmer</font></a></font> </p>
<p>In this very short and straight-on post I&#39;ll just mention how you can configure your SharePoint installation to enable support for ASP.NET AJAX 1.0 since a lot of people have been asking me about it.</p>
<h4>Before we make any changes in the web.config we need the following:</h4>
<ul>
<li>A backup of the web.config file (important, because if something goes wrong you might need to revert to the old one)
<li>SharePoint (WSS 3.0 or MOSS 2007)
<li><a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=ca9d90fa-e8c9-42e3-aa19-08e2c027f5d6&amp;displaylang=en" target="_blank">ASP.NET 2.0 AJAX 1.0 Extensions</a>
<li>Be in the mood for some copy/pasting the following 5 minutes</li>
</ul>
<h4></h4>
<h4>Copy/Paste time</h4>
<p>Locate your default web.config file (usually here: &quot;<strong>C:InetpubwwwrootwssVirtualDirectories80web.config</strong>&quot;).<br />Edit the webc.config file according to this scenario:</p>
<ol>
<li>
<h5>Locate the &lt;configSection&gt; element and add the following code inside it:<br /></h5>
<p>&nbsp; &lt;sectionGroup name=&quot;system.web.extensions&quot;<br />&nbsp; type=&quot;System.Web.Configuration.SystemWebExtensionsSectionGroup,<br />&nbsp; System.Web.Extensions, Version=1.0.61025.0, Culture=neutral<br />&nbsp; PublicKeyToken=31bf3856ad364e35&quot;&gt; </p>
<p>&nbsp; &lt;sectionGroup name=&quot;scripting&quot;<br />&nbsp; type=&quot;System.Web.Configuration.ScriptingSectionGroup,<br />&nbsp; System.Web.Extensions, Version=1.0.61025.0, Culture=neutral,<br />&nbsp; PublicKeyToken=31bf3856ad364e35&quot;&gt; </p>
<p>&nbsp; &lt;section name=&quot;scriptResourceHandler&quot;<br />&nbsp; type=&quot;System.Web.Configuration.ScriptingScriptResourceHandlerSection,<br />&nbsp; System.Web.Extensions, Version=1.0.61025.0, Culture=neutral,<br />&nbsp; PublicKeyToken=31bf3856ad364e35&quot; requirePermission=&quot;false&quot; <br />&nbsp; allowDefinition=&quot;MachineToApplication&quot;/&gt; </p>
<p>&nbsp; &lt;sectionGroup name=&quot;webServices&quot;<br />&nbsp; type=&quot;System.Web.Configuration.ScriptingWebServicesSectionGroup,<br />&nbsp; System.Web.Extensions, Version=1.0.61025.0, Culture=neutral,<br />&nbsp; PublicKeyToken=31bf3856ad364e35&quot;&gt; </p>
<p>&lt;section name=&quot;jsonSerialization&quot;<br />&nbsp; type=&quot;System.Web.Configuration.ScriptingJsonSerializationSection,<br />&nbsp; System.Web.Extensions, Version=1.0.61025.0, Culture=neutral,<br />&nbsp; PublicKeyToken=31bf3856ad364e35&quot; requirePermission=&quot;false&quot; <br />&nbsp; allowDefinition=&quot;Everywhere&quot; /&gt; </p>
<p>&nbsp; &lt;section name=&quot;profileService&quot;<br />&nbsp; type=&quot;System.Web.Configuration.ScriptingProfileServiceSection,<br />&nbsp; System.Web.Extensions, Version=1.0.61025.0, Culture=neutral,<br />&nbsp; PublicKeyToken=31bf3856ad364e35&quot; requirePermission=&quot;false&quot; <br />&nbsp; allowDefinition=&quot;MachineToApplication&quot; /&gt; </p>
<p>&nbsp; &lt;section name=&quot;authenticationService&quot;<br />&nbsp; type=&quot;System.Web.Configuration.ScriptingAuthenticationServiceSection,<br />&nbsp; System.Web.Extensions, Version=1.0.61025.0, Culture=neutral,<br />&nbsp; PublicKeyToken=31bf3856ad364e35&quot; requirePermission=&quot;false&quot; <br />&nbsp; allowDefinition=&quot;MachineToApplication&quot; /&gt; </p>
<p>&nbsp; &lt;/sectionGroup&gt;<br />&nbsp; &lt;/sectionGroup&gt;<br />&nbsp; &lt;/sectionGroup&gt;</p>
<h5></h5>
<li>
<h5>Within the &lt;system.web&gt; element, locate the &lt;pages&gt; element and insert the following snippet: </h5>
<p>&lt;controls&gt;<br />&nbsp; &lt;add tagPrefix=&quot;asp&quot; namespace=&quot;System.Web.UI&quot; <br />&nbsp; assembly=&quot;System.Web.Extensions, Version=1.0.61025.0, <br />&nbsp; Culture=neutral, PublicKeyToken=31bf3856ad364e35&quot;/&gt;<br />&lt;/controls&gt;</p>
<p><em><font size="1">EDIT: Thanks to Hardik Bhilota for pointing out that I was missing a comma after the version number. Cheers<br /></font></em></p>
<li>
<h5>Within the &lt;assemblies&gt; element, insert the following snippet:</h5>
<p>&lt;add assembly=&quot;System.Web.Extensions, Version=1.0.61025.0, <br />Culture=neutral, PublicKeyToken=31bf3856ad364e35&quot;/&gt;</p>
<li>
<h5>Within the &lt;httpHandlers&gt; element, insert the following snippet:</h5>
<p>&lt;add verb=&quot;*&quot; path=&quot;*.asmx&quot; validate=&quot;false&quot; <br />type=&quot;System.Web.Script.Services.ScriptHandlerFactory, <br />System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, <br />PublicKeyToken=31bf3856ad364e35&quot;/&gt; </p>
<p>&lt;add verb=&quot;*&quot; path=&quot;*_AppService.axd&quot; validate=&quot;false&quot; <br />type=&quot;System.Web.Script.Services.ScriptHandlerFactory, <br />System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, <br />PublicKeyToken=31bf3856ad364e35&quot;/&gt; </p>
<p>&lt;add verb=&quot;GET,HEAD&quot; path=&quot;ScriptResource.axd&quot; <br />type=&quot;System.Web.Handlers.ScriptResourceHandler, <br />System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, <br />PublicKeyToken=31bf3856ad364e35&quot; validate=&quot;false&quot;/&gt;</p>
<li>
<h5>Within the &lt;httpModules&gt; element, add the following snippet:</h5>
<p>&lt;add name=&quot;ScriptModule&quot; <br />type=&quot;System.Web.Handlers.ScriptModule, System.Web.Extensions, <br />Version=1.0.61025.0, Culture=neutral, <br />PublicKeyToken=31bf3856ad364e35&quot;/&gt;</p>
<li>
<h5>And since we need to ensure that the assembly is trusted, locate the &lt;SafeControls&gt; element ad add the following snippet:</h5>
<p>&lt;SafeControl Assembly=&quot;System.Web.Extensions, <br />Version=1.0.61025.0, Culture=neutral, <br />PublicKeyToken=31bf3856ad364e35&quot; Namespace=&quot;System.Web.UI&quot; <br />TypeName=&quot;*&quot; Safe=&quot;True&quot; /&gt;</p>
<li>
<h5>Within the &lt;configuration&gt; element, add the following snippet:</h5>
<p>&lt;system.web.extensions&gt;<br />&nbsp; &lt;scripting&gt;<br />&nbsp;&nbsp;&nbsp; &lt;webServices&gt;<br />&nbsp;&nbsp;&nbsp; &lt;!&#8211; Uncomment this line to enable the authentication <br />&nbsp;&nbsp;&nbsp; service. Include requireSSL=&quot;true&quot; if appropriate. &#8211;&gt;<br />&nbsp;&nbsp;&nbsp; &lt;!&#8211;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;authenticationService enabled=&quot;true&quot; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; requireSSL = &quot;true|false&quot;/&gt;<br />&nbsp;&nbsp;&nbsp; &#8211;&gt;<br />&nbsp;&nbsp;&nbsp; &lt;!&#8211; Uncomment these lines to enable the profile service. <br />&nbsp;&nbsp;&nbsp; To allow profile properties to be retrieved and modified in <br />&nbsp;&nbsp;&nbsp; ASP.NET AJAX applications, you need to add each property <br />&nbsp;&nbsp;&nbsp; name to the readAccessProperties and writeAccessProperties <br />&nbsp;&nbsp;&nbsp; attributes. &#8211;&gt;<br />&nbsp;&nbsp;&nbsp; &lt;!&#8211;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;profileService enabled=&quot;true&quot; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; readAccessProperties=&quot;propertyname1,propertyname2&quot; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; writeAccessProperties=&quot;propertyname1,propertyname2&quot; /&gt;<br />&nbsp;&nbsp;&nbsp; &#8211;&gt;<br />&nbsp;&nbsp;&nbsp; &lt;/webServices&gt;<br />&nbsp;&nbsp;&nbsp; &lt;!&#8211;<br />&nbsp;&nbsp;&nbsp; &lt;scriptResourceHandler enableCompression=&quot;true&quot; <br />&nbsp;&nbsp;&nbsp; enableCaching=&quot;true&quot; /&gt;<br />&nbsp;&nbsp;&nbsp; &#8211;&gt;<br />&nbsp; &lt;/scripting&gt;<br />&lt;/system.web.extensions&gt;<br />&lt;system.webServer&gt;<br />&nbsp; &lt;validation validateIntegratedModeConfiguration=&quot;false&quot;/&gt;<br />&nbsp; &lt;modules&gt;<br />&nbsp;&nbsp;&nbsp; &lt;add name=&quot;ScriptModule&quot; preCondition=&quot;integratedMode&quot; <br />&nbsp;&nbsp;&nbsp; type=&quot;System.Web.Handlers.ScriptModule, <br />&nbsp;&nbsp;&nbsp; System.Web.Extensions, Version=1.0.61025.0, <br />&nbsp;&nbsp;&nbsp; Culture=neutral, PublicKeyToken=31bf3856ad364e35&quot;/&gt;<br />&nbsp; &lt;/modules&gt;<br />&nbsp; &lt;handlers&gt;<br />&nbsp;&nbsp;&nbsp; &lt;remove name=&quot;WebServiceHandlerFactory-Integrated&quot; /&gt;<br />&nbsp;&nbsp;&nbsp; &lt;add name=&quot;ScriptHandlerFactory&quot; verb=&quot;*&quot; path=&quot;*.asmx&quot; <br />&nbsp;&nbsp;&nbsp; preCondition=&quot;integratedMode&quot; <br />&nbsp;&nbsp;&nbsp; type=&quot;System.Web.Script.Services.ScriptHandlerFactory, <br />&nbsp;&nbsp;&nbsp; System.Web.Extensions, Version=1.0.61025.0, <br />&nbsp;&nbsp;&nbsp; Culture=neutral, PublicKeyToken=31bf3856ad364e35&quot;/&gt; </p>
<p>&nbsp;&nbsp;&nbsp; &lt;add name=&quot;ScriptHandlerFactoryAppServices&quot; verb=&quot;*&quot; <br />&nbsp;&nbsp;&nbsp; path=&quot;*_AppService.axd&quot; preCondition=&quot;integratedMode&quot; <br />&nbsp;&nbsp;&nbsp; type=&quot;System.Web.Script.Services.ScriptHandlerFactory, <br />&nbsp;&nbsp;&nbsp; System.Web.Extensions, Version=1.0.61025.0, <br />&nbsp;&nbsp;&nbsp; Culture=neutral, PublicKeyToken=31bf3856ad364e35&quot;/&gt; </p>
<p>&nbsp;&nbsp;&nbsp; &lt;add name=&quot;ScriptResource&quot; preCondition=&quot;integratedMode&quot; <br />&nbsp;&nbsp;&nbsp; verb=&quot;GET,HEAD&quot; path=&quot;ScriptResource.axd&quot; <br />&nbsp;&nbsp;&nbsp; type=&quot;System.Web.Handlers.ScriptResourceHandler, <br />&nbsp;&nbsp;&nbsp; System.Web.Extensions, Version=1.0.61025.0, <br />&nbsp;&nbsp;&nbsp; Culture=neutral, PublicKeyToken=31bf3856ad364e35&quot;/&gt;<br />&nbsp; &lt;/handlers&gt;<br />&lt;/system.webServer&gt;</p>
</li>
</ol>
<h4>You&#39;re all set</h4>
<p>Save your web.config file, restart IIS (iisreset.exe for convenience) and enjoy your ASP.NET 2.0 AJAX 1.0 support in SharePoint.<br />This isn&#39;t a big deal to accomplish, so that&#39;s all you get from this blogpost. </p>
<p>In the next blogpost I&#39;ll talk about how you can easily create a UserControl, hosted with the SmartPart, with support for AJAX.</p>
]]></content:encoded>
			<wfw:commentRss>http://vspug.com/zimmer/2008/01/04/moss-2007-add-support-for-ajax-in-your-sharepoint-installation/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
