<?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>PeterKellner.net &#187; Atlas/AJAX</title>
	<atom:link href="http://peterkellner.net/category/atlasajax/feed/" rel="self" type="application/rss+xml" />
	<link>http://peterkellner.net</link>
	<description>Microsoft Focused, JavaScript,HTML5 (ExtJS, SenchaTouch &#38; Windows 8 Metro)</description>
	<lastBuildDate>Fri, 11 May 2012 16:43:17 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>How To Tell If Ajax is working on your site with ASP.NET&#8217;s ajax UpdatePanel and other Controls</title>
		<link>http://peterkellner.net/2008/10/12/tell-ajax-working-asp-net/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=tell-ajax-working-asp-net</link>
		<comments>http://peterkellner.net/2008/10/12/tell-ajax-working-asp-net/#comments</comments>
		<pubDate>Mon, 13 Oct 2008 01:36:26 +0000</pubDate>
		<dc:creator>Peter Kellner</dc:creator>
				<category><![CDATA[ASP.NET 2.0]]></category>
		<category><![CDATA[ASP.NET 3.5]]></category>
		<category><![CDATA[Atlas/AJAX]]></category>
		<category><![CDATA[IIS7]]></category>

		<guid isPermaLink="false">http://peterkellner.net/2008/10/12/tell-ajax-working-asp-net/</guid>
		<description><![CDATA[So, I suppose you should just be able to see the fact that Ajax is working by the lack of page flashing.&#160; That may be true on a normal page on a slow connection, but if you are testing locally, it may not be so obvious.&#160; You can certainly crank up your debugging tools like [...]]]></description>
			<content:encoded><![CDATA[<p>So, I suppose you should just be able to see the fact that <a href="http://www.asp.net/ajax/">Ajax</a> is working by the lack of page flashing.&#160; That may be true on a normal page on a slow connection, but if you are testing locally, it may not be so obvious.&#160; You can certainly crank up your debugging tools like <a href="http://getfirebug.com/">firebug</a> or <a href="http://www.asp.net/ajax/">Fiddler</a>, or you can do the cheap trip about I&#8217;m about to explain.</p>
<p>Simply, add a sleep statement to your page_load event (Thread.Sleep(3000);) and run your page.&#160; If you are using <a href="http://www.microsoft.com/windows/products/winfamily/ie/default.mspx">IE7</a> like I am, on the post back (for a full page), you will see the windows icon spinning in the tab control.&#160; If you see that, you are getting a full page post back. If not, chances are you are not.</p>
<p>Hope this helps!</p>
]]></content:encoded>
			<wfw:commentRss>http://peterkellner.net/2008/10/12/tell-ajax-working-asp-net/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>The Smallest xmlHttp I Could Do And Still Get It Wrong</title>
		<link>http://peterkellner.net/2008/09/29/xmlhttp-ajax-microsoft-pageload-virtualearth/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=xmlhttp-ajax-microsoft-pageload-virtualearth</link>
		<comments>http://peterkellner.net/2008/09/29/xmlhttp-ajax-microsoft-pageload-virtualearth/#comments</comments>
		<pubDate>Mon, 29 Sep 2008 14:11:05 +0000</pubDate>
		<dc:creator>Peter Kellner</dc:creator>
				<category><![CDATA[Atlas/AJAX]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://peterkellner.net/2008/09/29/xmlhttp-ajax-microsoft-pageload-virtualearth/</guid>
		<description><![CDATA[I&#8217;ve just started my journey into the land of JavaScript for real and am learning things most of you already know.&#160; For example, as the Silicon Valley Code Camp coordinator and web site author, I just recently decided to add a Virtual Earth Map showing attendees and speakers (see the home page).&#160; I wrote a [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve just started my journey into the land of JavaScript for real and am learning things most of you already know.&#160; For example, as the <a href="http://www.siliconvalley-codecamp.com/">Silicon Valley Code Camp</a> coordinator and web site author, I just recently decided to add a <a href="http://dev.live.com/virtualearth/">Virtual Earth</a> Map showing attendees and speakers (see the home page).&#160; I wrote a simple web response handler that returns all the data in <a href="http://www.json.org/">JSON</a> so I could plot the data.&#160; Then, after a couple searches on the web, I found a way to send a request to the service asynchronously and get the result. The code looks something like this:</p>
<p> <span id="more-172"></span>
<p>&#160;</p>
<div class="csharpcode">
<pre class="alt"> <span class="kwrd">function</span> pageLoad() {</pre>
<pre>        req = <span class="kwrd">new</span> ActiveXObject(<span class="str">&quot;Msxml2.XMLHTTP&quot;</span>);</pre>
<pre class="alt">        <span class="kwrd">if</span> (req) {</pre>
<pre>            req.onreadystatechange = processStateChange;</pre>
<pre class="alt">            req.open(<span class="str">&quot;GET&quot;</span>, <span class="str">&quot;AttendeeZipCode.ashx&quot;</span>, <span class="kwrd">true</span>);</pre>
<pre>            req.send();</pre>
<pre class="alt">        }</pre>
<pre>    }</pre>
<pre class="alt">&#160;</pre>
<pre>    <span class="kwrd">function</span> processStateChange() {</pre>
<pre class="alt">        statusDiv = document.getElementById(<span class="str">&quot;stats&quot;</span>);</pre>
<pre>        <span class="kwrd">if</span> (req.readyState == 0) { statusDiv.innerHTML = <span class="str">&quot;UNINITIALIZED&quot;</span>; }</pre>
<pre class="alt">        <span class="kwrd">if</span> (req.readyState == 1) { statusDiv.innerHTML = <span class="str">&quot;LOADING&quot;</span>; }</pre>
<pre>        <span class="kwrd">if</span> (req.readyState == 2) { statusDiv.innerHTML = <span class="str">&quot;LOADED&quot;</span>; }</pre>
<pre class="alt">        <span class="kwrd">if</span> (req.readyState == 3) { statusDiv.innerHTML = <span class="str">&quot;INTERACTIVE&quot;</span>; }</pre>
<pre>        <span class="kwrd">if</span> (req.readyState == 4) {</pre>
<pre class="alt">            <span class="rem">//statusDiv.innerHTML = &quot;COMPLETE&quot;;</span></pre>
<pre>            GetMap();</pre>
<pre class="alt">            <span class="rem">//statusDiv.innerHTML = req.responseText;</span></pre>
<pre>            <span class="kwrd">var</span> dataObject = json_parse(req.responseText);</pre>
<pre class="alt">&#160;</pre>
<pre>            CreateLayerAttendees();</pre>
<pre class="alt">            CreateLayerSpeakers();</pre>
<pre>            <span class="kwrd">var</span> points = <span class="kwrd">new</span> Array();</pre>
<pre class="alt">            <span class="kwrd">for</span> (<span class="kwrd">var</span> i = 0; i &lt; dataObject.length; i++) {</pre>
<pre>                <span class="kwrd">var</span> lattitude = dataObject[i].lattitude;</pre>
<pre class="alt">                <span class="kwrd">var</span> longitude = dataObject[i].longitude;</pre>
<pre>                points[i] = <span class="kwrd">new</span> VELatLong(lattitude, longitude);</pre>
<pre class="alt">                <span class="kwrd">if</span> (dataObject[i].isSpeaker) {</pre>
<pre>                    AddOnePin(layerSpeaker, lattitude, longitude, <span class="str">&quot;x&quot;</span>, <span class="str">&quot;x&quot;</span>, <span class="kwrd">true</span>);</pre>
<pre class="alt">                }</pre>
<pre>                <span class="kwrd">else</span> {</pre>
<pre class="alt">                    AddOnePin(layerAttendee, lattitude, longitude, <span class="str">&quot;x&quot;</span>, <span class="str">&quot;x&quot;</span>, <span class="kwrd">false</span>);</pre>
<pre>                }</pre>
<pre class="alt">                AddOnePin(layerAttendee, lattitude, longitude, <span class="str">&quot;x&quot;</span>, <span class="str">&quot;x&quot;</span>,dataObject[i].isSpeaker);</pre>
<pre>            }</pre>
<pre class="alt">            map.SetMapView(points);</pre>
<pre>        }</pre>
<pre class="alt">    }</pre>
</div>
<style type="text/css">
<p>.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }</style>
<p>Well, that worked great until I ran it on Firefox and Chrome.&#160; Basically, nothing happened.&#160; So, off to my smart friends at the local <a href="https://sv-web-jug.dev.java.net/">Java Users Group</a> and they suggested I should use a JavaScript library because my solution only works for IE.&#160; With that hint, I grabbed my favorite AJAX book by <a href="http://peterkellner.net/2007/11/26/ajaxinactionbookreview/">Alessandro Gallo, Ajax in Action</a> and started reading.&#160; Turns out, there is indeed a Microsoft Ajax Library solution to this and here it is.</p>
<div class="csharpcode">
<pre class="alt"> <span class="kwrd">function</span> pageLoad() {</pre>
<pre>            <span class="kwrd">var</span> request = <span class="kwrd">new</span> Sys.Net.WebRequest();</pre>
<pre class="alt">            request.set_url(<span class="str">&quot;AttendeeZipCode.ashx&quot;</span>);</pre>
<pre>            request.add_completed(onRequestCompleted);</pre>
<pre class="alt">            request.invoke();</pre>
<pre>        }</pre>
<pre class="alt">&#160;</pre>
<pre>        <span class="kwrd">function</span> onRequestCompleted(executor, args) {</pre>
<pre class="alt">            processResults(executor.get_responseData());</pre>
<pre>        }</pre>
</div>
<p>Now, Firefox, Chrome, and IE all work!&#160; and, look what a nice result we get.</p>
<p><a href="http://www.siliconvalley-codecamp.com/Default.aspx"><img style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" border="0" alt="image" src="http://www.peterkellner.net/FilesForWebDownload/TheSmallestxmlHttpICouldDoAndStillGetItW_64F0/image_thumb.png" width="232" height="244" /></a></p>
<p>Hope this helps!</p>
]]></content:encoded>
			<wfw:commentRss>http://peterkellner.net/2008/09/29/xmlhttp-ajax-microsoft-pageload-virtualearth/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Best Practices for Building an asp.net quality web siteBuilding the New Code Camp Web Site (Part 1)</title>
		<link>http://peterkellner.net/2008/05/13/codecampwebsiteseries1/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=codecampwebsiteseries1</link>
		<comments>http://peterkellner.net/2008/05/13/codecampwebsiteseries1/#comments</comments>
		<pubDate>Tue, 13 May 2008 18:06:25 +0000</pubDate>
		<dc:creator>Peter Kellner</dc:creator>
				<category><![CDATA[ASP.NET 2.0]]></category>
		<category><![CDATA[Atlas/AJAX]]></category>
		<category><![CDATA[Code Camp Web Site Series]]></category>
		<category><![CDATA[Community]]></category>

		<guid isPermaLink="false">http://peterkellner.net/2008/05/13/codecampwebsiteseries1/</guid>
		<description><![CDATA[<p>In this article, the first steps for building a professional web site are documented.  These steps include building requirements, working with a designer and starting the process to hire a css/html person</p>]]></description>
			<content:encoded><![CDATA[<p>(That&#8217;s right, Code Camp is coming!&#160; 11/8 and 11/9 again at Foothill College)</p>
<h2>Article Series</h2>
<table border="0" cellspacing="0" cellpadding="2">
<tbody>
<tr>
<td valign="top" width="100">Article 1:</td>
<td valign="top" width="600"><a href="http://peterkellner.net/2008/05/13/codecampwebsiteseries1/">Best Practices for Building an ASP.NET quality web site</a></td>
</tr>
<tr>
<td>Article 2:</td>
<td><a href="http://peterkellner.net/2008/05/19/codecampwebsiteseries2/">Multi Level ASP.NET Menu with CSS Friendly Control Adapters</a></td>
</tr>
<tr>
<td>Article 3:</td>
<td><a href="http://peterkellner.net/2008/05/25/codecampwebsiteseries3/">Creating a Theme For Each Year of Code Camp Using Skins in ASP.NET</a></td>
</tr>
<tr>
<td>Article 4:</td>
<td><a href="http://peterkellner.net/2008/06/29/sv-code-camp-web-site-series4/">Creating a Modal Login Window Using the Telerik Modal RadWindow Component</a></td>
</tr>
<tr>
<td>Article 5:</td>
<td><a href="http://peterkellner.net/2008/07/03/combine-email-lists-with-linq/">Using LINQ to Merge Mailing Lists and Filter Opt Outs</a></td>
</tr>
<tr>
<td>Article 6:</td>
<td><a href="http://peterkellner.net/2009/03/27/codecampwebsiteseries6-cssfriendly-adapters-aspnet-menu/">Multi Level ASP.NET Menu with CSS Friendly Control Adapters (The Source Code!)</a></td>
</tr>
</tbody>
</table>
<p> 
<p>So, first, a little background.&#160; As many of you know, I&#8217;ve been the ring leader of <a href="http://www.siliconvalley-codecamp.com/">Silicon Valley Code Camp</a> here in northern California for the past 2 years.&#160; Since Code Camp is a limited budget, 100% volunteer effort, the most important thing is to have efficient communications between everyone.&#160; Attendees, Speakers, Organizer, Sponsors and everyone else involved in the event.&#160; To that end, the first code camp web site was created.&#160; It was based on CSS provided by Microsoft.&#160; Check out the post I made two years ago about it titled <a href="http://peterkellner.net/2006/08/28/msprofcsshowto/">&quot;Zero to Professional Web Site in Two Days&quot;</a>.</p>
</p>
<p> <span id="more-111"></span>
</p>
<p>This year, we are planning on a different format.&#160; I don&#8217;t want to give too much away because we have not formally announced the changes, but if you look carefully at the designs, you might get an idea what these changes are going to be.&#160; I&#8217;m getting slightly off topic.&#160; The purpose of this series of articles to take you with me, step by step through building the web site.&#160; This time,    <br />we are going to do it right.&#160; Professional Designer (volunteer) and Professional CSS Implementer (not me, but we do have some budget for this from last year).</p>
<p>So, here are the steps.</p>
<ol>
<li>Decide on what changes need to be made </li>
<li>Work with a professional designer to make mock ups (photoshop, fireworks, etc.) </li>
<li>Create css and html pages from the designers work </li>
<li>Implement the css and html in asp.net </li>
<li>Test </li>
<li>Publish </li>
</ol>
<p>So far, we have done steps 1,2 and are working on step 3.&#160; I&#8217;ve alluded to the requirements above, but don&#8217;t want to spoil too many surprises.&#160; Suffice to say, that is done already.&#160; Step 2 is also now complete.&#160; The professional designer gave us very detailed PSD files that we can turn over to a css wizard.&#160; First, let me show you some of the designs and peek into fireworks to see what is actually under the covers.</p>
<p>First, here are some screen shots of what pages will look like (png files created from the PSD files)</p>
<table border="0" cellspacing="0" cellpadding="2" width="400">
<tbody>
<tr>
<td valign="top" width="200"><a href="http://peterkellner.net/wp/wp-content/uploads/2008/05/svc-home2.png">           <br /><img style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" border="0" alt="svc_home[2]" src="http://peterkellner.net/wp/wp-content/uploads/2008/05/svc-home2-thumb.png" width="244" height="224" /></a>           </td>
<td valign="top" width="200"><a href="http://peterkellner.net/wp/wp-content/uploads/2008/05/svc-news.png">           <br /><img style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" border="0" alt="svc_news" src="http://peterkellner.net/wp/wp-content/uploads/2008/05/svc-news-thumb.png" width="244" height="224" /></a>           </td>
</tr>
<tr>
<td valign="top" width="200"><a href="http://peterkellner.net/wp/wp-content/uploads/2008/05/svc-reg.png">           <br /><img style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" border="0" alt="svc_reg" src="http://peterkellner.net/wp/wp-content/uploads/2008/05/svc-reg-thumb.png" width="244" height="224" /></a>           </td>
<td valign="top" width="200"><a href="http://peterkellner.net/wp/wp-content/uploads/2008/05/svc-sessions.png">           <br /><img style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" border="0" alt="svc_sessions" src="http://peterkellner.net/wp/wp-content/uploads/2008/05/svc-sessions-thumb.png" width="244" height="224" /></a>           </td>
</tr>
</tbody>
</table>
<p>Include is also a PDF file.&#160; It allows the person doing the css and html to really do a good job of pulling the pieces apart to make great web content.</p>
<p><a href="http://peterkellner.net/wp/wp-content/uploads/2008/05/fw.jpg"><img style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" border="0" alt="fw" src="http://peterkellner.net/wp/wp-content/uploads/2008/05/fw-thumb.jpg" width="376" height="445" /></a></p>
<p>(notice the detailed names for all the layers!&#160; this kind of consistency makes it much easier to implement in html and css).</p>
<p>Step 3 is to hand this over to a designer.&#160; I did not have someone to use locally, so I decided to take a shot at using <a href="http://www.rentacoder.com">rentacoder</a>.&#160; I posted a detailed specification which you can see on that site if you navigate to this url:&#160; <a title="http://www.rentacoder.com./RentACoder/misc/BidRequests/ShowBidRequest.asp?lngBidRequestId=924960" href="http://www.rentacoder.com./RentACoder/misc/BidRequests/ShowBidRequest.asp?lngBidRequestId=924960">     <br />http://www.rentacoder.com./RentACoder/misc/BidRequests/ShowBidRequest.asp?lngBidRequestId=924960</a>&#160; </p>
<p>Notice the detailed specifications as well as the 13 bids that have been made ranging from $100 to $1000.&#160; I posted a question on the forums asking if anyone had used any of these services and the response was yes, but don&#8217;t take the lowest bid and also make sure you use someone with lots of experience.&#160; I haven&#8217;t decided next steps yet (that is who to choose), but I will keep posting as I build this web site.</p>
<p>Stay tuned!</p>
]]></content:encoded>
			<wfw:commentRss>http://peterkellner.net/2008/05/13/codecampwebsiteseries1/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Really good Ajax using asp.net Book By Alessandro Gallo, ASP.NET AJAX in Action</title>
		<link>http://peterkellner.net/2007/11/26/ajaxinactionbookreview/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=ajaxinactionbookreview</link>
		<comments>http://peterkellner.net/2007/11/26/ajaxinactionbookreview/#comments</comments>
		<pubDate>Mon, 26 Nov 2007 18:29:19 +0000</pubDate>
		<dc:creator>Peter Kellner</dc:creator>
				<category><![CDATA[ASP.NET 2.0]]></category>
		<category><![CDATA[Atlas/AJAX]]></category>
		<category><![CDATA[Book Reviews]]></category>

		<guid isPermaLink="false">http://peterkellner.net/2007/11/26/ajaxinactionbookreview/</guid>
		<description><![CDATA[<br /><p>Alessandro Gallo has written a great book on Ajax in ASP.NET.  I strongly recommend this book.  Read on for more details.</p>]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m basically a back end database kind of guy, but over the past years have been doing more front end web stuff.&#160; Asp.Net has been a huge help for me, and now with Visual Studio 2008 and the JavaScript debugging capabilities, I&#8217;m finding doing web stuff is just not so bad.&#160; Many of you know I&#8217;ve written several MSDN articles and one of them was over a year ago on how to add Ajax to my Membership solution (back then it was called Atlas).&#160; The <a title="Third Article Published on MSDN! ASP.NET 2.0, Membership Meets Atlas" href="http://peterkellner.net/2006/08/02/third-article-published-on-msdn-aspnet-20-membership-meets-atlas/">article</a> is still out there though now a little out dated.&#160; In it, I extensively use Alessandro&#8217;s code he posted on his blog.&#160; My point here is Alessandro keeps up with this stuff, and as it turns out, he wrote an excellent book that&#8217;s been helping me out.</p>
<p>I enthusiastically recommend it to anyone trying to incorporate Ajax into their asp.net applications.&#160; It&#8217;s not only got a great introduction, but also goes into lots of useful details for day to day programming.</p>
<table border="0" cellspacing="0" cellpadding="2" width="400">
<tbody>
<tr>
<td valign="top" width="400"><a title="Amazon.com: ASP.NET AJAX in Action" href="http://www.amazon.com/exec/obidos/ASIN/1933988142/petkelsblo-20"><img border="0" align="left" src="http://images.amazon.com/images/P/1933988142.01.MZZZZZZZ.jpg" />Amazon.com: ASP.NET AJAX in Action</a></td>
</tr>
</tbody>
</table>
]]></content:encoded>
			<wfw:commentRss>http://peterkellner.net/2007/11/26/ajaxinactionbookreview/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Silicon Valley Code Camp Integrates the DevExpress Cloud Control for Sessions</title>
		<link>http://peterkellner.net/2007/09/04/cloudcontrolforcodecamp/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=cloudcontrolforcodecamp</link>
		<comments>http://peterkellner.net/2007/09/04/cloudcontrolforcodecamp/#comments</comments>
		<pubDate>Tue, 04 Sep 2007 19:11:58 +0000</pubDate>
		<dc:creator>Peter Kellner</dc:creator>
				<category><![CDATA[ASP.NET 2.0]]></category>
		<category><![CDATA[Atlas/AJAX]]></category>
		<category><![CDATA[Best Practices]]></category>
		<category><![CDATA[Community]]></category>
		<category><![CDATA[ObjectDataSource]]></category>
		<category><![CDATA[Visual Studio]]></category>

		<guid isPermaLink="false">http://peterkellner.net/2007/09/04/cloudcontrolforcodecamp/</guid>
		<description><![CDATA[Using the DevExpress CloudControl in the ASP.NET 2.0 Silicon Valley Code Camp's web site was easy.  In this short post, you'll hear about the details and see some code.]]></description>
			<content:encoded><![CDATA[<p>Recently, is seems that many web sites and blogs are starting to use a navigation technique where you have multiple hyperlinks grouped in a box, with size, color, or brightness giving some meaning.&#160; I like this very much and have been on the lookout for a while for a control to do this in ASP.NET.&#160; Turns out, DevExpress has one!&#160; It&#8217;s called the CloudControl and you can read more about it at the following URL.</p>
<p> <span id="more-74"></span>
<p>&#160;<a href="http://www.devexpress.com/Products/NET/WebForms/ASPxCloudControl/Index.xml">http://www.devexpress.com/Products/NET/WebForms/ASPxCloudControl/Index.xml</a></p>
<p>So, now, where to use it?&#160; Code Camp of course!&#160; Now, if you browse to the Sessions listing, you&#8217;ll see the DevExpress Cloud Control in use.</p>
<p><img alt="Silicon Valley Code Camp Cloud Control" src="http://peterkellner.net/wp/Images/misc/cloudcontrol.jpg" /></p>
<p>You can see this control in action at our web site here:&#160; <br /><a href="http://www.siliconvalley-codecamp.com/Sessions.aspx">     <br />http://www.siliconvalley-codecamp.com/Sessions.aspx</a></p>
<p>My experience with using this control was great!&#160; Easy to setup.&#160; Below is all the code I needed on my asp page to make it happen.</p>
<p>&#160;<!--<br />
{\rtf1\ansi\ansicpg\lang1024\noproof1252\uc1 \deff0{\fonttbl{\f0\fnil\fcharset0\fprq1 Courier New;}}{\colortbl;??\red0\green0\blue255;\red255\green255\blue255;\red163\green21\blue21;\red0\green0\blue0;\red255\green0\blue0;}??\fs20 \cf1 &lt;\cf3 dxcc\cf1 :\cf3 ASPxCloudControl\cf0  \cf5 ID\cf1 =&#8221;ASPxCloudControl1&#8243;\cf0  \cf5 runat\cf1 =&#8221;server&#8221;\cf0  \par ??           \cf5 DataSourceID\cf1 =&#8221;ObjectDataSourceCloudControl&#8221;\cf0  \cf5 ShowValues\cf1 =&#8221;True&#8221;\cf0  \par ??           \cf5 HorizontalAlign\cf1 =&#8221;NotSet&#8221;\cf0  \cf5 TextField\cf1 =&#8221;TagName&#8221;\cf0  \cf5 ValueField\cf1 =&#8221;TagCount&#8221;\cf0  \par ??           \cf5 NavigateUrlField\cf1 =&#8221;TagId&#8221;\cf0  \par ??           \cf5 NavigateUrlFormatString\cf1 =&#8221;Sessions.aspx?sortby=title&amp;by=category&amp;tag=\{0\}&#8221;\cf0  \par ??           \cf5 ToolTip\cf1 =&#8221;CloudControl Provided From DevExpress&#8221;&gt;\par ??\cf0                 \cf1 &lt;\cf3 RankProperties\cf1 &gt;\par ??\cf0                     \cf1 &lt;\cf3 dxcc\cf1 :\cf3 RankProperties\cf0  \cf1 /&gt;\par ??\cf0                     \cf1 &lt;\cf3 dxcc\cf1 :\cf3 RankProperties\cf0  \cf1 /&gt;\par ??\cf0                     \cf1 &lt;\cf3 dxcc\cf1 :\cf3 RankProperties\cf0  \cf1 /&gt;\par ??\cf0                     \cf1 &lt;\cf3 dxcc\cf1 :\cf3 RankProperties\cf0  \cf1 /&gt;\par ??\cf0                     \cf1 &lt;\cf3 dxcc\cf1 :\cf3 RankProperties\cf0  \cf1 /&gt;\par ??\cf0                     \cf1 &lt;\cf3 dxcc\cf1 :\cf3 RankProperties\cf0  \cf1 /&gt;\par ??\cf0                     \cf1 &lt;\cf3 dxcc\cf1 :\cf3 RankProperties\cf0  \cf1 /&gt;\par ??\cf0                 \cf1 &lt;/\cf3 RankProperties\cf1 &gt;\par ??\cf0         \cf1 &lt;/\cf3 dxcc\cf1 :\cf3 ASPxCloudControl\cf1 &gt;\par ??\cf0         \cf1 &lt;\cf3 asp\cf1 :\cf3 ObjectDataSource\cf0  \cf5 ID\cf1 =&#8221;ObjectDataSourceCloudControl&#8221;\cf0  \cf5 runat\cf1 =&#8221;server&#8221;\cf0  \par ??            \cf5 SelectMethod\cf1 =&#8221;GetAllTags&#8221;\cf0  \cf5 TypeName\cf1 =&#8221;CodeCampSV.SessionTagsODS&#8221;&gt;\par ??\cf0         \cf1 &lt;/\cf3 asp\cf1 :\cf3 ObjectDataSource\cf1 &gt;}<br />
&#8211;></p>
<div style="font-family: courier new; background: white; color: black; font-size: 10pt">
<p style="margin: 0px"><span style="color: #2b91af">&#160;&#160; 52</span>&#160;<span style="color: blue">&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;</span><span style="color: #a31515">dxcc</span><span style="color: blue">:</span><span style="color: #a31515">ASPxCloudControl</span> <span style="color: red">ID</span><span style="color: blue">=&quot;ASPxCloudControl1&quot;</span> <span style="color: red">runat</span><span style="color: blue">=&quot;server&quot;</span></p>
<p style="margin: 0px"><span style="color: #2b91af">&#160;&#160; 53</span>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <span style="color: red">DataSourceID</span><span style="color: blue">=&quot;ObjectDataSourceCloudControl&quot;</span> <span style="color: red">ShowValues</span><span style="color: blue">=&quot;True&quot;</span></p>
<p style="margin: 0px"><span style="color: #2b91af">&#160;&#160; 54</span>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <span style="color: red">HorizontalAlign</span><span style="color: blue">=&quot;NotSet&quot;</span> <span style="color: red">TextField</span><span style="color: blue">=&quot;TagName&quot;</span> <span style="color: red">ValueField</span><span style="color: blue">=&quot;TagCount&quot;</span></p>
<p style="margin: 0px"><span style="color: #2b91af">&#160;&#160; 55</span>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <span style="color: red">NavigateUrlField</span><span style="color: blue">=&quot;TagId&quot;</span></p>
<p style="margin: 0px"><span style="color: #2b91af">&#160;&#160; 56</span>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <span style="color: red">NavigateUrlFormatString</span><span style="color: blue">=&quot;Sessions.aspx?sortby=title&amp;by=category&amp;tag={0}&quot;</span></p>
<p style="margin: 0px"><span style="color: #2b91af">&#160;&#160; 57</span>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <span style="color: red">ToolTip</span><span style="color: blue">=&quot;CloudControl Provided From DevExpress&quot;&gt;</span></p>
<p style="margin: 0px"><span style="color: #2b91af">&#160;&#160; 58</span>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <span style="color: blue">&lt;</span><span style="color: #a31515">RankProperties</span><span style="color: blue">&gt;</span></p>
<p style="margin: 0px"><span style="color: #2b91af">&#160;&#160; 59</span>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <span style="color: blue">&lt;</span><span style="color: #a31515">dxcc</span><span style="color: blue">:</span><span style="color: #a31515">RankProperties</span> <span style="color: blue">/&gt;</span></p>
<p style="margin: 0px"><span style="color: #2b91af">&#160;&#160; 60</span>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <span style="color: blue">&lt;</span><span style="color: #a31515">dxcc</span><span style="color: blue">:</span><span style="color: #a31515">RankProperties</span> <span style="color: blue">/&gt;</span></p>
<p style="margin: 0px"><span style="color: #2b91af">&#160;&#160; 61</span>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <span style="color: blue">&lt;</span><span style="color: #a31515">dxcc</span><span style="color: blue">:</span><span style="color: #a31515">RankProperties</span> <span style="color: blue">/&gt;</span></p>
<p style="margin: 0px"><span style="color: #2b91af">&#160;&#160; 62</span>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <span style="color: blue">&lt;</span><span style="color: #a31515">dxcc</span><span style="color: blue">:</span><span style="color: #a31515">RankProperties</span> <span style="color: blue">/&gt;</span></p>
<p style="margin: 0px"><span style="color: #2b91af">&#160;&#160; 63</span>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <span style="color: blue">&lt;</span><span style="color: #a31515">dxcc</span><span style="color: blue">:</span><span style="color: #a31515">RankProperties</span> <span style="color: blue">/&gt;</span></p>
<p style="margin: 0px"><span style="color: #2b91af">&#160;&#160; 64</span>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <span style="color: blue">&lt;</span><span style="color: #a31515">dxcc</span><span style="color: blue">:</span><span style="color: #a31515">RankProperties</span> <span style="color: blue">/&gt;</span></p>
<p style="margin: 0px"><span style="color: #2b91af">&#160;&#160; 65</span>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <span style="color: blue">&lt;</span><span style="color: #a31515">dxcc</span><span style="color: blue">:</span><span style="color: #a31515">RankProperties</span> <span style="color: blue">/&gt;</span></p>
<p style="margin: 0px"><span style="color: #2b91af">&#160;&#160; 66</span>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <span style="color: blue">&lt;/</span><span style="color: #a31515">RankProperties</span><span style="color: blue">&gt;</span></p>
<p style="margin: 0px"><span style="color: #2b91af">&#160;&#160; 67</span>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <span style="color: blue">&lt;/</span><span style="color: #a31515">dxcc</span><span style="color: blue">:</span><span style="color: #a31515">ASPxCloudControl</span><span style="color: blue">&gt;</span></p>
<p style="margin: 0px"><span style="color: #2b91af">&#160;&#160; 68</span>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <span style="color: blue">&lt;</span><span style="color: #a31515">asp</span><span style="color: blue">:</span><span style="color: #a31515">ObjectDataSource</span> <span style="color: red">ID</span><span style="color: blue">=&quot;ObjectDataSourceCloudControl&quot;</span> <span style="color: red">runat</span><span style="color: blue">=&quot;server&quot;</span></p>
<p style="margin: 0px"><span style="color: #2b91af">&#160;&#160; 69</span>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <span style="color: red">SelectMethod</span><span style="color: blue">=&quot;GetAllTags&quot;</span> <span style="color: red">TypeName</span><span style="color: blue">=&quot;CodeCampSV.SessionTagsODS&quot;&gt;</span></p>
<p style="margin: 0px"><span style="color: #2b91af">&#160;&#160; 70</span>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <span style="color: blue">&lt;/</span><span style="color: #a31515">asp</span><span style="color: blue">:</span><span style="color: #a31515">ObjectDataSource</span><span style="color: blue">&gt;</span></p>
</p></div>
<p style="margin: 0px">&#160;</p>
<p style="margin: 0px">This is my first trip into the Developer Express toolbox and so far, I&#8217;m very impressed!</p>
]]></content:encoded>
			<wfw:commentRss>http://peterkellner.net/2007/09/04/cloudcontrolforcodecamp/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Third Article Published on MSDN! ASP.NET 2.0, Membership Meets Atlas</title>
		<link>http://peterkellner.net/2006/08/02/third-article-published-on-msdn-aspnet-20-membership-meets-atlas/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=third-article-published-on-msdn-aspnet-20-membership-meets-atlas</link>
		<comments>http://peterkellner.net/2006/08/02/third-article-published-on-msdn-aspnet-20-membership-meets-atlas/#comments</comments>
		<pubDate>Wed, 02 Aug 2006 22:30:55 +0000</pubDate>
		<dc:creator>Peter Kellner</dc:creator>
				<category><![CDATA[ASP.NET 2.0]]></category>
		<category><![CDATA[Atlas/AJAX]]></category>
		<category><![CDATA[Membership]]></category>
		<category><![CDATA[MSDN Articles]]></category>
		<category><![CDATA[ObjectDataSource]]></category>

		<guid isPermaLink="false">http://peterkellner.net/?p=41</guid>
		<description><![CDATA[Microsoft published my third article in a series on how to use Membership in ASP.NET 2.0 with an ObjectDataSource.  That is, extending Membership into three tiers.  This article takes what was developed in article two and adds Atlas extensions to make it work even better.  The Article on MSDN uses the March CTP (Community Technology Preview).  There is an update on my blog as well as a download to make it work correctly with the June CTP.]]></description>
			<content:encoded><![CDATA[<p>Microsoft just published my third article. This one is titled: &quot;Member/Role Management with IIS, Part 3: AJAX Enhancements with Microsoft’s Atlas&quot;.</p>
<p>You can find it on <a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnaspp/html/membershipeditoratlas.asp">MSDN here</a>, or on <a href="http://peterkellner.net/?p=1">my blog here</a>.</p>
<p>Here is the introduction.</p>
<h2>Introduction</h2>
<p>This article extends one of the web pages developed in Part II of this series using Microsoft’s implementation of AJAX called Atlas. It utilized two techniques for reducing web server traffic to the browser to enhance the users web experience. The first technique uses the UpdatePanel tags to limit the refreshed area of the web page to limited areas and the second has to do with implementing some javascript using Atlas techniques so that the web page is updated on every key stroke in a textbox. A user list is displayed based on what is actively typed into this textbox. After reading this article the developer will be able to implement AJAX (Microsoft’s implementation Atlas) in their own application.</p>
]]></content:encoded>
			<wfw:commentRss>http://peterkellner.net/2006/08/02/third-article-published-on-msdn-aspnet-20-membership-meets-atlas/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Atlas Membership Management Upgrade (June CTP)</title>
		<link>http://peterkellner.net/2006/07/17/atlasjunectpsource/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=atlasjunectpsource</link>
		<comments>http://peterkellner.net/2006/07/17/atlasjunectpsource/#comments</comments>
		<pubDate>Tue, 18 Jul 2006 06:52:29 +0000</pubDate>
		<dc:creator>Peter Kellner</dc:creator>
				<category><![CDATA[ASP.NET 2.0]]></category>
		<category><![CDATA[Atlas/AJAX]]></category>

		<guid isPermaLink="false">http://peterkellner.net/?p=39</guid>
		<description><![CDATA[Atlas is still in beta from Microsoft and because of this, code that worked in previous CTP versions of Atlas may not work with later CTP's. This is exactly what happened with the version of the MSDN article built with the March CTP version of Atlas. The link below is to revised Atlas Membeship Management source.

Update Source For June CTP of Atlas]]></description>
			<content:encoded><![CDATA[<h2>June CTP (Community Technical Preview)</h2>
<p>Atlas is still in beta from Microsoft and because of this, code that worked in previous CTP versions of Atlas may not work with later CTP&#8217;s. This is exactly what happened with the version of the <a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnaspp/html/membershipeditoratlas.asp">MSDN article</a> built with the March CTP version of Atlas. The link below is to revised Atlas Membeship Management source.</p>
<p><a href="http://peterkellner.net/zdm_1_2/index.php?file=10">Update Source For June CTP of Atlas</a></p>
]]></content:encoded>
			<wfw:commentRss>http://peterkellner.net/2006/07/17/atlasjunectpsource/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using disk: basic
Page Caching using disk: enhanced (User agent is rejected)
Database Caching 32/37 queries in 0.037 seconds using disk: basic
Content Delivery Network via Amazon Web Services: S3: PetersBlogCDN.s3.amazonaws.com

Served from: peterkellner.net @ 2012-05-22 09:38:56 -->
