<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://www.dotnetmafia.com/utility/FeedStylesheets/atom.xsl" media="screen"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en"><title type="html">Not Necessarily Dot Net</title><subtitle type="html" /><id>http://www.dotnetmafia.com/blogs/jamesashley/atom.aspx</id><link rel="alternate" type="text/html" href="http://www.dotnetmafia.com/blogs/jamesashley/default.aspx" /><link rel="self" type="application/atom+xml" href="http://www.dotnetmafia.com/blogs/jamesashley/atom.aspx" /><generator uri="http://communityserver.org" version="3.1.20917.1142">Community Server</generator><updated>2008-05-08T19:03:00Z</updated><entry><title>Real World Dojo part 5: Custom Components</title><link rel="alternate" type="text/html" href="http://www.dotnetmafia.com/blogs/jamesashley/archive/2008/10/28/761.aspx" /><link rel="enclosure" type="application/zip" length="5466" href="http://www.dotnetmafia.com/blogs/jamesashley/attachment/761.ashx" /><id>http://www.dotnetmafia.com/blogs/jamesashley/archive/2008/10/28/761.aspx</id><published>2008-10-28T21:47:00Z</published><updated>2008-10-28T21:47:00Z</updated><content type="html">Dojo has its own built-in system for creating your own server-side controls.  It&amp;#39;s (arguably) better to use that than, say, creating a .NET user control....(&lt;a href="http://www.dotnetmafia.com/blogs/jamesashley/archive/2008/10/28/761.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://www.dotnetmafia.com/aggbug.aspx?PostID=761" width="1" height="1"&gt;</content><author><name>JamesAshley</name><uri>http://www.dotnetmafia.com/members/JamesAshley.aspx</uri></author><category term="coding" scheme="http://www.dotnetmafia.com/blogs/jamesashley/archive/tags/coding/default.aspx" /><category term="Not Dot Net" scheme="http://www.dotnetmafia.com/blogs/jamesashley/archive/tags/Not+Dot+Net/default.aspx" /><category term="open source" scheme="http://www.dotnetmafia.com/blogs/jamesashley/archive/tags/open+source/default.aspx" /><category term="AJAX" scheme="http://www.dotnetmafia.com/blogs/jamesashley/archive/tags/AJAX/default.aspx" /><category term="javascript" scheme="http://www.dotnetmafia.com/blogs/jamesashley/archive/tags/javascript/default.aspx" /></entry><entry><title>Real World Dojo part Four: User Feedback</title><link rel="alternate" type="text/html" href="http://www.dotnetmafia.com/blogs/jamesashley/archive/2008/10/23/755.aspx" /><link rel="enclosure" type="text/html" length="4300" href="http://www.dotnetmafia.com/blogs/jamesashley/attachment/755.ashx" /><id>http://www.dotnetmafia.com/blogs/jamesashley/archive/2008/10/23/755.aspx</id><published>2008-10-23T22:13:00Z</published><updated>2008-10-23T22:13:00Z</updated><content type="html">You have to let the user know what&amp;#39;s going on. That&amp;#39;s one of the main points, isn&amp;#39;t it?...(&lt;a href="http://www.dotnetmafia.com/blogs/jamesashley/archive/2008/10/23/755.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://www.dotnetmafia.com/aggbug.aspx?PostID=755" width="1" height="1"&gt;</content><author><name>JamesAshley</name><uri>http://www.dotnetmafia.com/members/JamesAshley.aspx</uri></author><category term="coding" scheme="http://www.dotnetmafia.com/blogs/jamesashley/archive/tags/coding/default.aspx" /><category term="Not Dot Net" scheme="http://www.dotnetmafia.com/blogs/jamesashley/archive/tags/Not+Dot+Net/default.aspx" /><category term="open source" scheme="http://www.dotnetmafia.com/blogs/jamesashley/archive/tags/open+source/default.aspx" /><category term="AJAX" scheme="http://www.dotnetmafia.com/blogs/jamesashley/archive/tags/AJAX/default.aspx" /></entry><entry><title>Real World Dojo part Three: AJAX</title><link rel="alternate" type="text/html" href="http://www.dotnetmafia.com/blogs/jamesashley/archive/2008/10/23/754.aspx" /><link rel="enclosure" type="text/html" length="3684" href="http://www.dotnetmafia.com/blogs/jamesashley/attachment/754.ashx" /><id>http://www.dotnetmafia.com/blogs/jamesashley/archive/2008/10/23/754.aspx</id><published>2008-10-23T21:19:00Z</published><updated>2008-10-23T21:19:00Z</updated><content type="html">I&amp;#39;ve avoided this as long as possible.  It&amp;#39;s time to bite the bullet and do some AJAX....(&lt;a href="http://www.dotnetmafia.com/blogs/jamesashley/archive/2008/10/23/754.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://www.dotnetmafia.com/aggbug.aspx?PostID=754" width="1" height="1"&gt;</content><author><name>JamesAshley</name><uri>http://www.dotnetmafia.com/members/JamesAshley.aspx</uri></author><category term="coding" scheme="http://www.dotnetmafia.com/blogs/jamesashley/archive/tags/coding/default.aspx" /><category term="Not Dot Net" scheme="http://www.dotnetmafia.com/blogs/jamesashley/archive/tags/Not+Dot+Net/default.aspx" /><category term="open source" scheme="http://www.dotnetmafia.com/blogs/jamesashley/archive/tags/open+source/default.aspx" /><category term="javascript" scheme="http://www.dotnetmafia.com/blogs/jamesashley/archive/tags/javascript/default.aspx" /></entry><entry><title>Real World Dojo part Two: File Upload</title><link rel="alternate" type="text/html" href="http://www.dotnetmafia.com/blogs/jamesashley/archive/2008/10/15/742.aspx" /><link rel="enclosure" type="text/html" length="2843" href="http://www.dotnetmafia.com/blogs/jamesashley/attachment/742.ashx" /><id>http://www.dotnetmafia.com/blogs/jamesashley/archive/2008/10/15/742.aspx</id><published>2008-10-15T06:05:00Z</published><updated>2008-10-15T06:05:00Z</updated><content type="html">The basics of using the new file uploader...(&lt;a href="http://www.dotnetmafia.com/blogs/jamesashley/archive/2008/10/15/742.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://www.dotnetmafia.com/aggbug.aspx?PostID=742" width="1" height="1"&gt;</content><author><name>JamesAshley</name><uri>http://www.dotnetmafia.com/members/JamesAshley.aspx</uri></author><category term="coding" scheme="http://www.dotnetmafia.com/blogs/jamesashley/archive/tags/coding/default.aspx" /><category term="Not Dot Net" scheme="http://www.dotnetmafia.com/blogs/jamesashley/archive/tags/Not+Dot+Net/default.aspx" /><category term="javascript" scheme="http://www.dotnetmafia.com/blogs/jamesashley/archive/tags/javascript/default.aspx" /></entry><entry><title>Real World Dojo part One: Form Validation</title><link rel="alternate" type="text/html" href="http://www.dotnetmafia.com/blogs/jamesashley/archive/2008/10/14/741.aspx" /><id>http://www.dotnetmafia.com/blogs/jamesashley/archive/2008/10/14/741.aspx</id><published>2008-10-14T22:18:00Z</published><updated>2008-10-14T22:18:00Z</updated><content type="html">Real World Dojo, part One (Basic Validation) The Scenario: I’ve kind of been nibbling around the edges of Dojo for a while, but I’m at a place in this project where I really need to buckle down and learn it. Since I’m having so much trouble finding real-life examples of the basics, I figured I’d share what I’m coming across. I have a very simple proof-of-concept form that shows the basics of the one that forced me to buckle down. It looks like this: &amp;lt;head&amp;gt; &amp;lt;title&amp;gt;Validation Test (raw...(&lt;a href="http://www.dotnetmafia.com/blogs/jamesashley/archive/2008/10/14/741.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://www.dotnetmafia.com/aggbug.aspx?PostID=741" width="1" height="1"&gt;</content><author><name>JamesAshley</name><uri>http://www.dotnetmafia.com/members/JamesAshley.aspx</uri></author><category term="coding" scheme="http://www.dotnetmafia.com/blogs/jamesashley/archive/tags/coding/default.aspx" /><category term="Not Dot Net" scheme="http://www.dotnetmafia.com/blogs/jamesashley/archive/tags/Not+Dot+Net/default.aspx" /><category term="open source" scheme="http://www.dotnetmafia.com/blogs/jamesashley/archive/tags/open+source/default.aspx" /><category term="javascript" scheme="http://www.dotnetmafia.com/blogs/jamesashley/archive/tags/javascript/default.aspx" /></entry><entry><title>Manipulating the DOM with Dojo</title><link rel="alternate" type="text/html" href="http://www.dotnetmafia.com/blogs/jamesashley/archive/2008/10/08/730.aspx" /><id>http://www.dotnetmafia.com/blogs/jamesashley/archive/2008/10/08/730.aspx</id><published>2008-10-08T12:46:00Z</published><updated>2008-10-08T12:46:00Z</updated><content type="html">This is the area where jQuery rules the roost. Or so everything I&amp;#39;ve read tells me. So, how does Dojo stack up? Still running this in parallel with Kyle&amp;#39;s series: Setting the contents of an element // Convenience function to hide query details var element = dojo.byId(&amp;#39;whatever&amp;#39;); element.innerHTML = &amp;quot;Change to this&amp;quot;; Or you could chain it jQuery style: dojo.byId(&amp;#39;whatever&amp;#39;).innerHTML = &amp;quot;Change to this&amp;quot;; Really just a matter of personal preference and what...(&lt;a href="http://www.dotnetmafia.com/blogs/jamesashley/archive/2008/10/08/730.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://www.dotnetmafia.com/aggbug.aspx?PostID=730" width="1" height="1"&gt;</content><author><name>JamesAshley</name><uri>http://www.dotnetmafia.com/members/JamesAshley.aspx</uri></author><category term="Not Dot Net" scheme="http://www.dotnetmafia.com/blogs/jamesashley/archive/tags/Not+Dot+Net/default.aspx" /><category term="open source" scheme="http://www.dotnetmafia.com/blogs/jamesashley/archive/tags/open+source/default.aspx" /><category term="AJAX" scheme="http://www.dotnetmafia.com/blogs/jamesashley/archive/tags/AJAX/default.aspx" /></entry><entry><title>Selectors in Dojo</title><link rel="alternate" type="text/html" href="http://www.dotnetmafia.com/blogs/jamesashley/archive/2008/10/06/725.aspx" /><id>http://www.dotnetmafia.com/blogs/jamesashley/archive/2008/10/06/725.aspx</id><published>2008-10-06T20:09:00Z</published><updated>2008-10-06T20:09:00Z</updated><content type="html">I&amp;#39;m still going back and forth in my mind about dojo vs. jquery.  So far, I&amp;#39;ve been able to table that question, but it&amp;#39;s getting to a point where I won&amp;#39;t be able to much longer.

Kyle&amp;#39;s recent posts made me think about writing up something similar about dojo, so I could have something a little more concrete to compare side-by-side....(&lt;a href="http://www.dotnetmafia.com/blogs/jamesashley/archive/2008/10/06/725.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://www.dotnetmafia.com/aggbug.aspx?PostID=725" width="1" height="1"&gt;</content><author><name>JamesAshley</name><uri>http://www.dotnetmafia.com/members/JamesAshley.aspx</uri></author><category term="Not Dot Net" scheme="http://www.dotnetmafia.com/blogs/jamesashley/archive/tags/Not+Dot+Net/default.aspx" /><category term="javascript" scheme="http://www.dotnetmafia.com/blogs/jamesashley/archive/tags/javascript/default.aspx" /></entry><entry><title>VB.NET vs C#</title><link rel="alternate" type="text/html" href="http://www.dotnetmafia.com/blogs/jamesashley/archive/2008/08/03/VB.NET-vs.-C_2300_.aspx" /><id>http://www.dotnetmafia.com/blogs/jamesashley/archive/2008/08/03/VB.NET-vs.-C_2300_.aspx</id><published>2008-08-03T19:07:00Z</published><updated>2008-08-03T19:07:00Z</updated><content type="html">On the Google App Engine mailing list (of all places...in case you don&amp;#39;t know, that&amp;#39;s a python-only platform), I ran across this exchange recently:

&amp;gt; &amp;gt; VB.NET is inelegant.
&amp;gt; yeah I know I have C# it&amp;#39;s more advanced,

Now, this is one of those common stereotypes that irritate me. So I figured it was time to take a stick to that dead horse again....(&lt;a href="http://www.dotnetmafia.com/blogs/jamesashley/archive/2008/08/03/VB.NET-vs.-C_2300_.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://www.dotnetmafia.com/aggbug.aspx?PostID=651" width="1" height="1"&gt;</content><author><name>JamesAshley</name><uri>http://www.dotnetmafia.com/members/JamesAshley.aspx</uri></author><category term="best practices" scheme="http://www.dotnetmafia.com/blogs/jamesashley/archive/tags/best+practices/default.aspx" /><category term="coding" scheme="http://www.dotnetmafia.com/blogs/jamesashley/archive/tags/coding/default.aspx" /><category term="theory" scheme="http://www.dotnetmafia.com/blogs/jamesashley/archive/tags/theory/default.aspx" /><category term="newb" scheme="http://www.dotnetmafia.com/blogs/jamesashley/archive/tags/newb/default.aspx" /><category term="VB" scheme="http://www.dotnetmafia.com/blogs/jamesashley/archive/tags/VB/default.aspx" /></entry><entry><title>Net Neutrality</title><link rel="alternate" type="text/html" href="http://www.dotnetmafia.com/blogs/jamesashley/archive/2008/07/21/Net-Neutrality-Basics.aspx" /><id>http://www.dotnetmafia.com/blogs/jamesashley/archive/2008/07/21/Net-Neutrality-Basics.aspx</id><published>2008-07-21T21:20:00Z</published><updated>2008-07-21T21:20:00Z</updated><content type="html">I&amp;#39;m on an unrelated mailing list with several non-technical people. Every once in a while, the topics swirl around to Net Neutrality. Most people don&amp;#39;t have enough background knowledge to even begin to understand the issues involved.  This is my attempt to explain by analogy.  This article isn&amp;#39;t technical enough to be here, but it it&amp;#39;s *way* too technical for that list. So it winds up here....(&lt;a href="http://www.dotnetmafia.com/blogs/jamesashley/archive/2008/07/21/Net-Neutrality-Basics.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://www.dotnetmafia.com/aggbug.aspx?PostID=640" width="1" height="1"&gt;</content><author><name>JamesAshley</name><uri>http://www.dotnetmafia.com/members/JamesAshley.aspx</uri></author><category term="theory" scheme="http://www.dotnetmafia.com/blogs/jamesashley/archive/tags/theory/default.aspx" /><category term="Not Dot Net" scheme="http://www.dotnetmafia.com/blogs/jamesashley/archive/tags/Not+Dot+Net/default.aspx" /><category term="Completely Off Topic" scheme="http://www.dotnetmafia.com/blogs/jamesashley/archive/tags/Completely+Off+Topic/default.aspx" /></entry><entry><title>Some Open Source Ajax Frameworks</title><link rel="alternate" type="text/html" href="http://www.dotnetmafia.com/blogs/jamesashley/archive/2008/07/19/Open-Source-AJAX-Framework-Basics.aspx" /><id>http://www.dotnetmafia.com/blogs/jamesashley/archive/2008/07/19/Open-Source-AJAX-Framework-Basics.aspx</id><published>2008-07-19T22:17:00Z</published><updated>2008-07-19T22:17:00Z</updated><content type="html">I finally got another excuse to look at Open Source AJAX frameworks.  Nothing in-depth, just skimming the surface and deciding what I want to look at in-depth....(&lt;a href="http://www.dotnetmafia.com/blogs/jamesashley/archive/2008/07/19/Open-Source-AJAX-Framework-Basics.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://www.dotnetmafia.com/aggbug.aspx?PostID=638" width="1" height="1"&gt;</content><author><name>JamesAshley</name><uri>http://www.dotnetmafia.com/members/JamesAshley.aspx</uri></author><category term="Not Dot Net" scheme="http://www.dotnetmafia.com/blogs/jamesashley/archive/tags/Not+Dot+Net/default.aspx" /><category term="AJAX" scheme="http://www.dotnetmafia.com/blogs/jamesashley/archive/tags/AJAX/default.aspx" /></entry><entry><title>Linq to SQL Designer Weirdness</title><link rel="alternate" type="text/html" href="http://www.dotnetmafia.com/blogs/jamesashley/archive/2008/06/24/617.aspx" /><id>http://www.dotnetmafia.com/blogs/jamesashley/archive/2008/06/24/617.aspx</id><published>2008-06-24T15:01:00Z</published><updated>2008-06-24T15:01:00Z</updated><content type="html">The Linq to SQL designer that&amp;#39;s built into Visual Studio 2008 is pretty, and a huge improvement over what Microsoft&amp;#39;s provided before, in terms of data modelling. I haven&amp;#39;t used enough other OR/M&amp;#39;s to really have an opinion about how it measures up to other products. But it does have its issues. For one thing, it seems to magically cache its schema somewhere internal. So you better have your database design pretty much set in stone before you start actually doing any data access....(&lt;a href="http://www.dotnetmafia.com/blogs/jamesashley/archive/2008/06/24/617.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://www.dotnetmafia.com/aggbug.aspx?PostID=617" width="1" height="1"&gt;</content><author><name>JamesAshley</name><uri>http://www.dotnetmafia.com/members/JamesAshley.aspx</uri></author><category term="coding" scheme="http://www.dotnetmafia.com/blogs/jamesashley/archive/tags/coding/default.aspx" /><category term="newb" scheme="http://www.dotnetmafia.com/blogs/jamesashley/archive/tags/newb/default.aspx" /><category term="Linq" scheme="http://www.dotnetmafia.com/blogs/jamesashley/archive/tags/Linq/default.aspx" /><category term="code generation" scheme="http://www.dotnetmafia.com/blogs/jamesashley/archive/tags/code+generation/default.aspx" /></entry><entry><title>Linq to SQL with multiple databases</title><link rel="alternate" type="text/html" href="http://www.dotnetmafia.com/blogs/jamesashley/archive/2008/06/18/611.aspx" /><id>http://www.dotnetmafia.com/blogs/jamesashley/archive/2008/06/18/611.aspx</id><published>2008-06-18T20:49:00Z</published><updated>2008-06-18T20:49:00Z</updated><content type="html">I think I&amp;#39;ve mentioned that I&amp;#39;m working on a project that dips its fingers into databases all over the place. Its main goal is to eliminate all the systems we have around that are also doing this. If it has to be done at all (and, really, it does), it should only happen once. One of the biggest issues I&amp;#39;ve run across while doing this is that Linq to SQL just does not play nice with multiple data contexts. If you&amp;#39;re working with 3 different databases, that&amp;#39;s 3 different connections...(&lt;a href="http://www.dotnetmafia.com/blogs/jamesashley/archive/2008/06/18/611.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://www.dotnetmafia.com/aggbug.aspx?PostID=611" width="1" height="1"&gt;</content><author><name>JamesAshley</name><uri>http://www.dotnetmafia.com/members/JamesAshley.aspx</uri></author><category term="best practices" scheme="http://www.dotnetmafia.com/blogs/jamesashley/archive/tags/best+practices/default.aspx" /><category term="coding" scheme="http://www.dotnetmafia.com/blogs/jamesashley/archive/tags/coding/default.aspx" /><category term="theory" scheme="http://www.dotnetmafia.com/blogs/jamesashley/archive/tags/theory/default.aspx" /><category term="Linq" scheme="http://www.dotnetmafia.com/blogs/jamesashley/archive/tags/Linq/default.aspx" /><category term="database" scheme="http://www.dotnetmafia.com/blogs/jamesashley/archive/tags/database/default.aspx" /></entry><entry><title>Some Initial Thoughts on Google App Engine</title><link rel="alternate" type="text/html" href="http://www.dotnetmafia.com/blogs/jamesashley/archive/2008/06/05/600.aspx" /><id>http://www.dotnetmafia.com/blogs/jamesashley/archive/2008/06/05/600.aspx</id><published>2008-06-06T01:19:00Z</published><updated>2008-06-06T01:19:00Z</updated><content type="html">More like observations, really. There&amp;#39;s nothing here that&amp;#39;s new or interesting, if you&amp;#39;ve been following it at all. But, if you&amp;#39;ve been mildly curious and haven&amp;#39;t taken the time to really read anything at all, this may be worth your time. I was really excited about the app engine beta. But that&amp;#39;s mainly because I like messing around with new tools and technologies. And, unlike a lot of people I know, I consider it valuable to branch out into areas which most likely won&amp;#39;t...(&lt;a href="http://www.dotnetmafia.com/blogs/jamesashley/archive/2008/06/05/600.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://www.dotnetmafia.com/aggbug.aspx?PostID=600" width="1" height="1"&gt;</content><author><name>JamesAshley</name><uri>http://www.dotnetmafia.com/members/JamesAshley.aspx</uri></author><category term="Not Dot Net" scheme="http://www.dotnetmafia.com/blogs/jamesashley/archive/tags/Not+Dot+Net/default.aspx" /><category term="python" scheme="http://www.dotnetmafia.com/blogs/jamesashley/archive/tags/python/default.aspx" /><category term="open source" scheme="http://www.dotnetmafia.com/blogs/jamesashley/archive/tags/open+source/default.aspx" /></entry><entry><title>First Impressions of Web2py</title><link rel="alternate" type="text/html" href="http://www.dotnetmafia.com/blogs/jamesashley/archive/2008/05/13/581.aspx" /><id>http://www.dotnetmafia.com/blogs/jamesashley/archive/2008/05/13/581.aspx</id><published>2008-05-14T01:51:00Z</published><updated>2008-05-14T01:51:00Z</updated><content type="html">It kicks ass. There&amp;#39;s a video that demonstrates web2py and Google appengine that pretty much says it all. If you&amp;#39;re like me, and you&amp;#39;d rather read a set of step-by-step instructions than watch a video, this is for you. (OK, this is actually for me when I start a new project 6 months down the road and have forgotten how to do this stuff). Go to the Google SDK Download page . Get the Linux/Other Platforms one. Doesn&amp;#39;t matter what platform you&amp;#39;re actually running. I&amp;#39;ve seen weird...(&lt;a href="http://www.dotnetmafia.com/blogs/jamesashley/archive/2008/05/13/581.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://www.dotnetmafia.com/aggbug.aspx?PostID=581" width="1" height="1"&gt;</content><author><name>JamesAshley</name><uri>http://www.dotnetmafia.com/members/JamesAshley.aspx</uri></author><category term="coding" scheme="http://www.dotnetmafia.com/blogs/jamesashley/archive/tags/coding/default.aspx" /><category term="Not Dot Net" scheme="http://www.dotnetmafia.com/blogs/jamesashley/archive/tags/Not+Dot+Net/default.aspx" /><category term="python" scheme="http://www.dotnetmafia.com/blogs/jamesashley/archive/tags/python/default.aspx" /><category term="open source" scheme="http://www.dotnetmafia.com/blogs/jamesashley/archive/tags/open+source/default.aspx" /></entry><entry><title>Initial Thoughts on Google App Engine</title><link rel="alternate" type="text/html" href="http://www.dotnetmafia.com/blogs/jamesashley/archive/2008/05/08/574.aspx" /><id>http://www.dotnetmafia.com/blogs/jamesashley/archive/2008/05/08/574.aspx</id><published>2008-05-09T00:03:00Z</published><updated>2008-05-09T00:03:00Z</updated><content type="html">If you haven&amp;#39;t heard of Google App Engine by now, you&amp;#39;ve probably been living under a rock. I won&amp;#39;t try to explain it, or even include any links. Go check out what google has to say about it: it&amp;#39;s intriguing, at the very worst. It&amp;#39;s really the first step toward the distributed web as a viable application platform. Sure, the web&amp;#39;s been an application platform for years now. I ran across an article (sorry, I don&amp;#39;t have a link to it) about a year back that predicted 3 phases...(&lt;a href="http://www.dotnetmafia.com/blogs/jamesashley/archive/2008/05/08/574.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://www.dotnetmafia.com/aggbug.aspx?PostID=574" width="1" height="1"&gt;</content><author><name>JamesAshley</name><uri>http://www.dotnetmafia.com/members/JamesAshley.aspx</uri></author><category term="theory" scheme="http://www.dotnetmafia.com/blogs/jamesashley/archive/tags/theory/default.aspx" /><category term="code generation" scheme="http://www.dotnetmafia.com/blogs/jamesashley/archive/tags/code+generation/default.aspx" /><category term="Not Dot Net" scheme="http://www.dotnetmafia.com/blogs/jamesashley/archive/tags/Not+Dot+Net/default.aspx" /><category term="python" scheme="http://www.dotnetmafia.com/blogs/jamesashley/archive/tags/python/default.aspx" /><category term="open source" scheme="http://www.dotnetmafia.com/blogs/jamesashley/archive/tags/open+source/default.aspx" /></entry></feed>