<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://weblogs.asp.net/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>David Findley's Blog : AJAX</title><link>http://weblogs.asp.net/dfindley/archive/tags/AJAX/default.aspx</link><description>Tags: AJAX</description><dc:language>en</dc:language><generator>CommunityServer 2007 SP1 (Build: 20510.895)</generator><item><title>ASP.NET AJAX 1.0 (excitement builds)</title><link>http://weblogs.asp.net/dfindley/archive/2006/10/20/ASP.NET-AJAX-1.0-_2800_excitement-builds_2900_.aspx</link><pubDate>Sat, 21 Oct 2006 03:38:14 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:699734</guid><dc:creator>findleyd</dc:creator><author>findleyd</author><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/dfindley/rsscomments.aspx?PostID=699734</wfw:commentRss><comments>http://weblogs.asp.net/dfindley/archive/2006/10/20/ASP.NET-AJAX-1.0-_2800_excitement-builds_2900_.aspx#comments</comments><description>&lt;p&gt;I just downloaded beta 1 of ASP.NET AJAX today. Wow! Lots and lots of changes. The type system has been greatly simplified. I like this. The move to prototypes over closures was a good decision. The core scripts are much easier to read and comprehend as well. The CTP download has been a 404 for me this evening so I haven't had a chance to dive into it. &lt;/p&gt; &lt;p&gt;Looking through the core scripts there seem to many improvements. There used to be a bunch of prototype extensions to the Function object that were really only applicable to ctor functions. This seemed like it was pretty inefficient. That doesn't seem to be the case anymore.&lt;/p&gt; &lt;p&gt;All in all the script library feels less like a hodge podge of techniques from around the web and has more of a cohesive feel to it. Maybe that'll change once I get into the CTP add-ons. Overall I'm&amp;nbsp;impressed with what I've seen so far. This definitely seems like a big step forward.&lt;/p&gt; &lt;p&gt;We used the CTPs for some back-end admin functionality on &lt;a href="http://www.learnvisualstudio.net/"&gt;http://www.learnvisualstudio.net/&lt;/a&gt;&amp;nbsp;so as soon as I can lay my hands on the new CTP bits I'll have to see what the migration process is like.&lt;/p&gt; &lt;p&gt;Ok, time to get back to playing... :)&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;em&gt;Update: looks like the CTP download is working now. I think its going to be a long weekend. ;)&lt;/em&gt;&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=699734" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/dfindley/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://weblogs.asp.net/dfindley/archive/tags/.NET/default.aspx">.NET</category><category domain="http://weblogs.asp.net/dfindley/archive/tags/JavaScript/default.aspx">JavaScript</category><category domain="http://weblogs.asp.net/dfindley/archive/tags/Atlas/default.aspx">Atlas</category><category domain="http://weblogs.asp.net/dfindley/archive/tags/AJAX/default.aspx">AJAX</category></item><item><title>A great article on functional programming...</title><link>http://weblogs.asp.net/dfindley/archive/2006/06/20/A-great-article-on-functional-programming_2E002E002E00_.aspx</link><pubDate>Wed, 21 Jun 2006 04:39:45 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:454145</guid><dc:creator>findleyd</dc:creator><author>findleyd</author><slash:comments>3</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/dfindley/rsscomments.aspx?PostID=454145</wfw:commentRss><comments>http://weblogs.asp.net/dfindley/archive/2006/06/20/A-great-article-on-functional-programming_2E002E002E00_.aspx#comments</comments><description>&lt;a href="http://www.defmacro.org/ramblings/fp.html"&gt;http://www.defmacro.org/ramblings/fp.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This article was a great overview of many of the aspects of functional programming. With what Micosoft is doing to the CLR and C# and VB it would seem that functional programming is making advances into the main stream. His article has imaginary Java samples and if you squint your eyes when he creates a class to hold a function you can see delegates.&lt;br /&gt;&lt;br /&gt;I studied functional languages such as LISP and ML in college but quickly lost track of them after years of programming in corporate IT. To catch back up I've been spending the better part of a year studying functional programming concepts. While its been challenging at times, there have been alot of aha and oh yeah moments. &lt;br /&gt;&lt;br /&gt;Since I have a great comfort level with C syntax I started my ride on the functional wagon with COmega. This is where I really began to "get" things like closures. I even found myself purposfully writing my own code to mimic a closure in good ol C# 1.0 for certain situations like Regex match evaluators. Once you see the "patterns" that higher order functions exhibit you can write them in plain imperative code. This will make you hunger for language constructs to do this work for you. Its like writing OO code in assembly language.&lt;br /&gt;&lt;br /&gt;C# 2.0 Added true closures to the language with anonymous delegates. Woo hoo no more private nested classes to hold lexical context! (at least not that I write).&lt;br /&gt;&lt;br /&gt;At PDC I got to see the preview of C# 3. This takes anonymous delegates a step further with "lambdas". There's lazy evaluation galore with LINQ. It would seem that MS has been bitten by the functional bug. Even the Atlas client APIs make good use of the functional elements of JavaScript.&lt;br /&gt;&lt;br /&gt;I've also ventured out into IronPython and Ruby. These are great places to practice functional programming techniques.&lt;br /&gt;
&lt;br /&gt;The real challenge moving forward is finding the right balance. Theres no doubt in my mind that functional programming techniques are headed to the main stream. With the populatrity of Ruby and Rails and Microsoft adding functional capabilites into C# and VB the winds of change are blowing. &lt;br /&gt;&lt;br /&gt;Link dump so I can keep track of what I'm researching:&lt;br /&gt;COmega: &lt;a href="http://research.microsoft.com/Comega/"&gt;http://research.microsoft.com/Comega/&lt;/a&gt;&lt;br /&gt;LINQ: &lt;a href="http://msdn.microsoft.com/data/ref/linq/"&gt;http://msdn.microsoft.com/data/ref/linq/&lt;/a&gt;&lt;br /&gt;F#: &lt;a href="http://research.microsoft.com/fsharp/fsharp.aspx"&gt;http://research.microsoft.com/fsharp/fsharp.aspx&lt;/a&gt;&lt;br /&gt;IronPython: &lt;a href="http://www.codeplex.com/Wiki/View.aspx?ProjectName=IronPython"&gt;http://www.codeplex.com/Wiki/View.aspx?ProjectName=IronPython&lt;/a&gt;&lt;br /&gt;Ruby: &lt;a href="http://www.ruby-lang.org/en/"&gt;http://www.ruby-lang.org/en/&lt;/a&gt;&lt;br /&gt;Ruby.NET: &lt;a href="http://www.plas.fit.qut.edu.au/rubynet/"&gt;http://www.plas.fit.qut.edu.au/rubynet/&lt;/a&gt;&lt;br /&gt;IronRuby: &lt;a href="http://wilcoding.xs4all.nl/Wilco/IronRuby.aspx"&gt;http://wilcoding.xs4all.nl/Wilco/IronRuby.aspx&lt;/a&gt;&lt;br /&gt;RubyCLR: &lt;a href="http://www.iunknown.com/articles/2006/06/19/rubyclr-drop-4"&gt;http://www.iunknown.com/articles/2006/06/19/rubyclr-drop-4&lt;/a&gt;&lt;br /&gt;Atlas: &lt;a href="http://atlas.asp.net/Default.aspx?tabid=47"&gt;http://atlas.asp.net/Default.aspx?tabid=47&lt;/a&gt;&lt;br /&gt;#Smalltalk: &lt;a href="http://www.refactory.com/Software/SharpSmalltalk/index.html"&gt;http://www.refactory.com/Software/SharpSmalltalk/index.html&lt;/a&gt;&lt;br /&gt;brianbec's blog:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;a href="http://weblogs.asp.net/brianbec/default.aspx"&gt;http://weblogs.asp.net/brianbec/default.aspx&lt;/a&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;a href="http://weblogs.asp.net/brianbec/archive/2006/06/01/Lambdas_2C00_-Closures_2C00_-Currying_2C00_-and-All-That.aspx"&gt;http://weblogs.asp.net/brianbec/archive/2006/06/01/Lambdas_2C00_-Closures_2C00_-Currying_2C00_-and-All-That.aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=454145" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/dfindley/archive/tags/C_2300_/default.aspx">C#</category><category domain="http://weblogs.asp.net/dfindley/archive/tags/Ruby/default.aspx">Ruby</category><category domain="http://weblogs.asp.net/dfindley/archive/tags/.NET/default.aspx">.NET</category><category domain="http://weblogs.asp.net/dfindley/archive/tags/Tools/default.aspx">Tools</category><category domain="http://weblogs.asp.net/dfindley/archive/tags/JavaScript/default.aspx">JavaScript</category><category domain="http://weblogs.asp.net/dfindley/archive/tags/Atlas/default.aspx">Atlas</category><category domain="http://weblogs.asp.net/dfindley/archive/tags/LINQ/default.aspx">LINQ</category><category domain="http://weblogs.asp.net/dfindley/archive/tags/DLINQ/default.aspx">DLINQ</category><category domain="http://weblogs.asp.net/dfindley/archive/tags/XLINQ/default.aspx">XLINQ</category><category domain="http://weblogs.asp.net/dfindley/archive/tags/AJAX/default.aspx">AJAX</category><category domain="http://weblogs.asp.net/dfindley/archive/tags/Rails/default.aspx">Rails</category><category domain="http://weblogs.asp.net/dfindley/archive/tags/Programming+Languages/default.aspx">Programming Languages</category></item><item><title>Microsoft Product Name Generator</title><link>http://weblogs.asp.net/dfindley/archive/2006/06/20/Microsoft-Product-Name-Generator.aspx</link><pubDate>Tue, 20 Jun 2006 23:13:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:454125</guid><dc:creator>findleyd</dc:creator><author>findleyd</author><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/dfindley/rsscomments.aspx?PostID=454125</wfw:commentRss><comments>http://weblogs.asp.net/dfindley/archive/2006/06/20/Microsoft-Product-Name-Generator.aspx#comments</comments><description>&lt;a href="http://weblogs.asp.net/lhunt/"&gt;Lance&lt;/a&gt; and I were musing over some of the recent product renamings and it gave me the idea to throw together a product name generator. Here's my first stab at it:&lt;br&gt;&lt;br&gt;

&lt;hr&gt;
&lt;script&gt;
var pfx = new Array("", "Visual ", "Compact ", "Embedded ", "Expression ");
var prd = new Array("", "Windows ", "Office ", "SQL ", "FoxPro ", "BizTalk ");
var trm = new Array("Web ", "Robotics ", "Network ", "Testing ", "Project ", "Small Business ", "Team ", "Management ", "Graphic ", "Presentation ", "Communication ", "Workflow ", "Ajax ", "XML ", "Content ", "Source Control ");
var typ = new Array("", "Client ", "Workstation ", "Server ", "System ", "Console ", "Shell ", "Designer ");
var sfx = new Array("", "Express ", "Standard ", "Professional ", "Enterprise ", "Ultimate ", "Foundation ", ".NET ", "Framework ");

function pick(ar) { return ar[Math.round((ar.length-1)*Math.random())]; }
function getProductName()
{
	var name = "";

	name += pick(pfx);
	name += pick(prd);
	name += pick(trm);
	name += pick(typ);
	name += pick(sfx);

    var p = document.getElementById("p");
    p.innerHTML = name;
}
&lt;/script&gt;
&lt;a href="#" onclick="getProductName()"&gt;Get Product Name&lt;/a&gt;: &lt;b&gt;&lt;span id="p"&gt;&lt;/span&gt;&lt;/b&gt;
&lt;hr&gt;

&lt;p&gt;Feel free to customize your own. Here's the srcipt source:&lt;/p&gt;

&lt;div class="csharpcode"&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;script&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;&lt;span class="kwrd"&gt;var&lt;/span&gt; pfx = &lt;span class="kwrd"&gt;new&lt;/span&gt; Array(&lt;span class="str"&gt;""&lt;/span&gt;, &lt;span class="str"&gt;"Visual "&lt;/span&gt;, &lt;span class="str"&gt;"Compact "&lt;/span&gt;, &lt;span class="str"&gt;"Embedded "&lt;/span&gt;, &lt;span class="str"&gt;"Expression "&lt;/span&gt;);&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;&lt;span class="kwrd"&gt;var&lt;/span&gt; prd = &lt;span class="kwrd"&gt;new&lt;/span&gt; Array(&lt;span class="str"&gt;""&lt;/span&gt;, &lt;span class="str"&gt;"Windows "&lt;/span&gt;, &lt;span class="str"&gt;"Office "&lt;/span&gt;, &lt;span class="str"&gt;"SQL "&lt;/span&gt;, &lt;span class="str"&gt;"FoxPro "&lt;/span&gt;, &lt;span class="str"&gt;"BizTalk "&lt;/span&gt;);&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;&lt;span class="kwrd"&gt;var&lt;/span&gt; trm = &lt;span class="kwrd"&gt;new&lt;/span&gt; Array(&lt;span class="str"&gt;"Web "&lt;/span&gt;, &lt;span class="str"&gt;"Robotics "&lt;/span&gt;, &lt;span class="str"&gt;"Network "&lt;/span&gt;, &lt;span class="str"&gt;"Testing "&lt;/span&gt;, &lt;span class="str"&gt;"Project "&lt;/span&gt;, &lt;span class="str"&gt;"Small Business "&lt;/span&gt;, &lt;span class="str"&gt;"Team "&lt;/span&gt;, &lt;span class="str"&gt;"Management "&lt;/span&gt;, &lt;span class="str"&gt;"Graphic "&lt;/span&gt;, &lt;span class="str"&gt;"Presentation "&lt;/span&gt;, &lt;span class="str"&gt;"Communication "&lt;/span&gt;, &lt;span class="str"&gt;"Workflow "&lt;/span&gt;, &lt;span class="str"&gt;"Ajax "&lt;/span&gt;, &lt;span class="str"&gt;"XML "&lt;/span&gt;, &lt;span class="str"&gt;"Content "&lt;/span&gt;, &lt;span class="str"&gt;"Source Control "&lt;/span&gt;);&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   5:  &lt;/span&gt;&lt;span class="kwrd"&gt;var&lt;/span&gt; typ = &lt;span class="kwrd"&gt;new&lt;/span&gt; Array(&lt;span class="str"&gt;""&lt;/span&gt;, &lt;span class="str"&gt;"Client "&lt;/span&gt;, &lt;span class="str"&gt;"Workstation "&lt;/span&gt;, &lt;span class="str"&gt;"Server "&lt;/span&gt;, &lt;span class="str"&gt;"System "&lt;/span&gt;, &lt;span class="str"&gt;"Console "&lt;/span&gt;, &lt;span class="str"&gt;"Shell "&lt;/span&gt;, &lt;span class="str"&gt;"Designer "&lt;/span&gt;);&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   6:  &lt;/span&gt;&lt;span class="kwrd"&gt;var&lt;/span&gt; sfx = &lt;span class="kwrd"&gt;new&lt;/span&gt; Array(&lt;span class="str"&gt;""&lt;/span&gt;, &lt;span class="str"&gt;"Express "&lt;/span&gt;, &lt;span class="str"&gt;"Standard "&lt;/span&gt;, &lt;span class="str"&gt;"Professional "&lt;/span&gt;, &lt;span class="str"&gt;"Enterprise "&lt;/span&gt;, &lt;span class="str"&gt;"Ultimate "&lt;/span&gt;, &lt;span class="str"&gt;"Foundation "&lt;/span&gt;, &lt;span class="str"&gt;".NET "&lt;/span&gt;, &lt;span class="str"&gt;"Framework "&lt;/span&gt;);&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   7:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   8:  &lt;/span&gt;&lt;span class="kwrd"&gt;function&lt;/span&gt; pick(ar) { &lt;span class="kwrd"&gt;return&lt;/span&gt; ar[Math.round((ar.length-1)*Math.random())]; }&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   9:  &lt;/span&gt;&lt;span class="kwrd"&gt;function&lt;/span&gt; getProductName()&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  10:  &lt;/span&gt;{&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  11:  &lt;/span&gt;    &lt;span class="kwrd"&gt;var&lt;/span&gt; name = &lt;span class="str"&gt;""&lt;/span&gt;;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  12:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  13:  &lt;/span&gt;    name += pick(pfx);&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  14:  &lt;/span&gt;    name += pick(prd);&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  15:  &lt;/span&gt;    name += pick(trm);&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  16:  &lt;/span&gt;    name += pick(typ);&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  17:  &lt;/span&gt;    name += pick(sfx);&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  18:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  19:  &lt;/span&gt;    &lt;span class="kwrd"&gt;var&lt;/span&gt; p = document.getElementById(&lt;span class="str"&gt;"p"&lt;/span&gt;);&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  20:  &lt;/span&gt;    p.innerHTML = name;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  21:  &lt;/span&gt;}&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  22:  &lt;/span&gt;&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;script&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  23:  &lt;/span&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;A&lt;/span&gt; &lt;span class="attr"&gt;href&lt;/span&gt;&lt;span class="kwrd"&gt;="#"&lt;/span&gt; &lt;span class="attr"&gt;onclick&lt;/span&gt;&lt;span class="kwrd"&gt;="getProductName()"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;Get Product Name&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;a&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;: &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;b&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;span&lt;/span&gt; &lt;span class="attr"&gt;id&lt;/span&gt;&lt;span class="kwrd"&gt;="p"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;span&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;b&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=454125" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/dfindley/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://weblogs.asp.net/dfindley/archive/tags/.NET/default.aspx">.NET</category><category domain="http://weblogs.asp.net/dfindley/archive/tags/JavaScript/default.aspx">JavaScript</category><category domain="http://weblogs.asp.net/dfindley/archive/tags/Atlas/default.aspx">Atlas</category><category domain="http://weblogs.asp.net/dfindley/archive/tags/AJAX/default.aspx">AJAX</category><category domain="http://weblogs.asp.net/dfindley/archive/tags/Vista/default.aspx">Vista</category><category domain="http://weblogs.asp.net/dfindley/archive/tags/Windows/default.aspx">Windows</category></item><item><title>Atlas declarative blocks</title><link>http://weblogs.asp.net/dfindley/archive/2006/04/03/Atlas-declarative-blocks.aspx</link><pubDate>Tue, 04 Apr 2006 04:51:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:441822</guid><dc:creator>findleyd</dc:creator><author>findleyd</author><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/dfindley/rsscomments.aspx?PostID=441822</wfw:commentRss><comments>http://weblogs.asp.net/dfindley/archive/2006/04/03/Atlas-declarative-blocks.aspx#comments</comments><description>&lt;p&gt;The text/xml-script declarative model is great. I'd just like to see it declared outside of the .aspx file. Semething like an "ajax" behind file.&lt;/p&gt; &lt;p&gt;Imagine:&lt;br /&gt;&amp;nbsp;Default.aspx&lt;br /&gt;&amp;nbsp;Default.aspx.cs&lt;br /&gt;&amp;nbsp;Default.aspx.ajax &amp;lt;-- declarative text/xml-script&lt;/p&gt; &lt;p&gt;Most of the Atlas markup I've seen in demo apps is just control bindings and web service proxy declarations. The contents of the tex/xml-script blocks seem to more resemble a mapping file than ui component instantiation.&lt;/p&gt; &lt;p&gt;This should be possible to do by just setting src attribute on the &amp;lt;SCRIPT&amp;gt; element. e.g.:&lt;/p&gt;&lt;pre class="code"&gt;&amp;lt;script type="text/xml-script" src="Default.aspx.ajax"&amp;gt;&amp;lt;/script&amp;gt;&lt;/pre&gt; &lt;p&gt;This currently doesnt seem to work. I'm sure its because the content type is mixed up. I know this is nit picky but having the atlas declarative block in the HTML markup feels like putting css or script inline.&lt;/p&gt; &lt;p&gt;This also leads to the possiblity of using a "js" behind where you can do all of your client side declarations with simple javascript calls to the atlas script library. This seems on par with everything else coming out of Microsft. If you like to just write code you can do that. If you like to "declare" things with angle brackets your good to go there as well.&lt;/p&gt; &lt;p&gt;For now its back to experimenting...&lt;/p&gt; &lt;p&gt;P.S. The documentation for the March CTP is&amp;nbsp;soooooo much better.&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=441822" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/dfindley/archive/tags/Atlas/default.aspx">Atlas</category><category domain="http://weblogs.asp.net/dfindley/archive/tags/AJAX/default.aspx">AJAX</category></item><item><title>AJAX thoughts</title><link>http://weblogs.asp.net/dfindley/archive/2006/04/03/AJAX-thoughts.aspx</link><pubDate>Mon, 03 Apr 2006 22:55:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:441810</guid><dc:creator>findleyd</dc:creator><author>findleyd</author><slash:comments>3</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/dfindley/rsscomments.aspx?PostID=441810</wfw:commentRss><comments>http://weblogs.asp.net/dfindley/archive/2006/04/03/AJAX-thoughts.aspx#comments</comments><description>&lt;p&gt;I was just reading through this post: &lt;A href="http://weblogs.asp.net/mschwarz/archive/2006/04/03/441767.aspx"&gt;http://weblogs.asp.net/mschwarz/archive/2006/04/03/441767.aspx&lt;/a&gt;&amp;nbsp;and it reminded me of some of the worries that I have about the various AJAX libraries.&lt;/p&gt; &lt;p&gt;We have some devs here&amp;nbsp;that are&amp;nbsp;prototyping some AJAX features. They are mainly using the controls from Component Art (which are great btw). The Component Art controls have alot in common with the things that ATLAS is doing. The idea here is to enable "ASP.NET" developers to come in and AJAXify their web apps. The thing is they end up getting completely thrown for a loop when the ASP.NET postback model starts getting in their way (viewstate issues etc.). For simple little autocomplete boxes and such this is no problem. But once you go off and try to do anything complex it just confuses the developers. The notion that you can remain AJAX ignorant and just sling controls is seeming farther and farther away from reality each day. Maybe theres an 80/20 rule here but so far it sure seems to be more like 20/80. &lt;/p&gt; &lt;p&gt;This also smacks of the orginal goals of the&amp;nbsp;Web Forms&amp;nbsp;design time: let the VB windows programmers come on over and play in the web sandbox. While this sounds great on paper and works for demos and one off sites, it leads to piles of spaghetti code for large web sites. &lt;/p&gt; &lt;p&gt;If your serious about doing AJAX then make sure you understand JavaScript. It will be the most important thing you learn when you go to code and debug an AJAX app.&lt;/p&gt; &lt;p&gt;I've been looking forward to ATLAS so I havnt really looked at AJAX.Net that closely. I know more about it through the posts here on weblogs than I do from actually diving into it. Looks like I will be correcting that very soon now. :)&lt;/p&gt; &lt;p&gt;I've been looking at Ruby on Rails recently to see what all the noise has been about. I have to say I'm pretty impressed. The front controller design has enabled them to graft on&amp;nbsp;AJAX features pretty cleanly. The &lt;a href="http://prototype.conio.net/"&gt;prototype&lt;/a&gt; javascript library has the same feel as ruby does which is great for keeping the programming model as consistant as possible. &lt;/p&gt; &lt;p&gt;ATLAS is trying to do the same thing for ASP.NET but fitting it into the page controller model may be a bit more challenging.&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=441810" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/dfindley/archive/tags/AJAX/default.aspx">AJAX</category></item><item><title>The official I spoke too soon post.</title><link>http://weblogs.asp.net/dfindley/archive/2005/08/16/The-official-I-spoke-too-soon-post_2E00_.aspx</link><pubDate>Wed, 17 Aug 2005 01:13:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:422781</guid><dc:creator>findleyd</dc:creator><author>findleyd</author><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/dfindley/rsscomments.aspx?PostID=422781</wfw:commentRss><comments>http://weblogs.asp.net/dfindley/archive/2005/08/16/The-official-I-spoke-too-soon-post_2E00_.aspx#comments</comments><description>It seems that I was taken in by the "Releasing 8/8/2005" line that was on the &lt;a href="http://www.technicalpursuit.com/"&gt;TIBET&lt;/a&gt; home page. This definite release date was replaced with the most indefinite "Coming Soon" early the morning of 8/8. Hopefully the &lt;a href="http://www.technicalpursuit.com/"&gt;TIBET&lt;/a&gt; project is not total vapor ware. Oh well, I'm back to pinning my hopes on MS's Atlas project. I too will be going to PDC this year and look forward to getting my hands on the first preview of Atlas.&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=422781" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/dfindley/archive/tags/AJAX/default.aspx">AJAX</category></item><item><title>The most complete AJAX library I've ever seen!</title><link>http://weblogs.asp.net/dfindley/archive/2005/08/06/The-most-complete-AJAX-library-I_2700_ve-ever-seen_2100_.aspx</link><pubDate>Sat, 06 Aug 2005 05:08:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:421737</guid><dc:creator>findleyd</dc:creator><author>findleyd</author><slash:comments>14</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/dfindley/rsscomments.aspx?PostID=421737</wfw:commentRss><comments>http://weblogs.asp.net/dfindley/archive/2005/08/06/The-most-complete-AJAX-library-I_2700_ve-ever-seen_2100_.aspx#comments</comments><description>WOW! Check out &lt;a href="http://www.technicalpursuit.com/"&gt;TIBET&lt;/a&gt;&lt;br /&gt;&lt;br /&gt; This has to be the most advanced JS library I've seen. I'll have to pick my jaw off the floor before I can write any more about it. Just click the link and be amazed.&lt;br /&gt; &lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=421737" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/dfindley/archive/tags/AJAX/default.aspx">AJAX</category></item></channel></rss>