<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://v900u039rux.maximumasp.com/Web/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>Raheel Hussain : AJAX</title><link>http://v900u039rux.maximumasp.com/Web/blogs/raheel/archive/tags/AJAX/default.aspx</link><description>Tags: AJAX</description><dc:language>en</dc:language><generator>CommunityServer 2007 SP2 (Build: 20611.960)</generator><item><title>Working with AJAX - Part 2 - Speed &amp; Page Size</title><link>http://v900u039rux.maximumasp.com/Web/blogs/raheel/archive/2008/01/03/working-with-ajax-part-2-speed-vs-page-size.aspx</link><pubDate>Thu, 03 Jan 2008 07:22:00 GMT</pubDate><guid isPermaLink="false">3790bee0-d05b-4b84-a272-3ed522a0473a:132</guid><dc:creator>Raheel Hussain</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://v900u039rux.maximumasp.com/Web/blogs/raheel/rsscomments.aspx?PostID=132</wfw:commentRss><comments>http://v900u039rux.maximumasp.com/Web/blogs/raheel/archive/2008/01/03/working-with-ajax-part-2-speed-vs-page-size.aspx#comments</comments><description>&lt;p&gt;The Purpose of the AJAX (as also discussed&amp;nbsp;by many writters and many websites) is to improve the user experience, as well as&amp;nbsp;client centric&amp;nbsp;operations and development. Instead of fetching the entire page contents, or displaying a completely new page, AJAX enables browsers to fetch and update/alter particular sections of page through the HTML, XML or through Javascript.&lt;br /&gt;&lt;br /&gt;I launched my website all&amp;nbsp;full with AJAX, though a very simple one, but it appeared to be very expensive in sense of it&amp;#39;s loading time as well as data size.&lt;br /&gt;&lt;br /&gt;I received couple of comments on my Guest Book as well as some of my collegues verbally told me of reducing the page load time, for atleast the home page. &lt;br /&gt;&lt;br /&gt;Since then, I started doing my research on particularly reducing the page size and then in general, the appropriate combination of AJAX.&lt;br /&gt;&lt;br /&gt;Consider the following general Scenario for your website size and images : - &lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;&lt;strong&gt;Bigger than 60k in size&lt;/strong&gt; : Your visitors will be unlikely to wait around and see your homepage.&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;&lt;strong&gt;50k to 60k&lt;/strong&gt; : You visitors may see your first page, but may wary to wait and see second page.&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;&lt;strong&gt;40k to 50k&lt;/strong&gt; : Better, but you may still loose visitors.&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;&lt;strong&gt;30k to 40k&lt;/strong&gt; : Absolute, largest and serious sites would be. &lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;&lt;strong&gt;20k to 30k&lt;/strong&gt; : Responsive, and likely to get second visit.&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;&lt;strong&gt;10k to 20k&lt;/strong&gt; : Very responsive and a pleasure for your visitors.&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;Obvisouly!&amp;nbsp;&amp;nbsp;my website had gone above 500k and it was Huge difference, and to make it shorter upto the mark, lots of changes were required. &lt;br /&gt;&lt;br /&gt;Since the &lt;strong&gt;&lt;em&gt;&lt;u&gt;HomePage&lt;/u&gt;&lt;/em&gt;&lt;/strong&gt; of your web-site is&amp;nbsp;considered as a &lt;u&gt;&lt;strong&gt;&lt;em&gt;Gateway&lt;/em&gt;&lt;/strong&gt;&lt;/u&gt;, that would lead you to the&amp;nbsp;( text and graphics based&amp;nbsp;) content. If the &lt;strong&gt;&lt;em&gt;&lt;u&gt;HomePage&lt;/u&gt;&lt;/em&gt;&lt;/strong&gt; is very heavy just like what I have at &lt;a href="http://www.raheelhussain.com/"&gt;http://www.raheelhussain.com/&lt;/a&gt; , it is possible that the &lt;strong&gt;&lt;em&gt;&lt;u&gt;Search Engine Spider&lt;/u&gt;&lt;/em&gt;&lt;/strong&gt; that might want to index your&amp;nbsp;&lt;strong&gt;&lt;em&gt;&lt;u&gt;HomePage&lt;/u&gt;&lt;/em&gt;&lt;/strong&gt; and entire site, might skip you (I mean your website) if it gets &lt;strong&gt;&lt;u&gt;&lt;em&gt;Timed Out&lt;/em&gt;&lt;/u&gt;&lt;/strong&gt; while loading your page.&lt;/p&gt;
&lt;p&gt;The page size of your HomePage for such a case (recommended by many experience webmasters) should be less than 125k.&lt;/p&gt;
&lt;p&gt;While analysing my website, I found of couple of more things : &lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;&lt;strong&gt;A huge amount of ViewState - Hidden Data&lt;/strong&gt;&amp;nbsp; &lt;br /&gt;Due to AJAX implementation,&amp;nbsp;the View State gets increased, unless we explicitly disable it on all occurances except wherever required.&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;&lt;strong&gt;Script Source Files with AJAX may increase your page size&lt;/strong&gt;&lt;br /&gt;When you use AJAX in your site, it includes lots of&amp;nbsp;Script Sources files&amp;nbsp;in the page sources, to support the functionalities like as follows : &lt;br /&gt;&lt;br /&gt;&lt;u&gt;&amp;lt;script src=&amp;quot;/ScriptResource.axd?d=e0Z5w1xlI94kfI-ca3Wnd_wh0&amp;amp;amp;t=633309435532426250&amp;quot; type=&amp;quot;text/javascript&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;/u&gt;You will find a big number of References to such files... the more you use different AJAX functionalities on to the site. &lt;br /&gt;So the recommendation is that you may use very less AJAX functionality on the HomePage at least.&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;&lt;strong&gt;Too many External Http Objects references.&lt;br /&gt;&lt;/strong&gt;To further explain this, each reference to an external file is refered as an external HTTP Object, You may take the example of &lt;a href="http://www.google.ae/"&gt;http://www.google.ae/&lt;/a&gt; or &lt;br /&gt;&lt;a href="http://www.yahoo.com/"&gt;http://www.yahoo.com/&lt;/a&gt; as these sites are with very less references to external object and are really fast loading. &lt;br /&gt;&lt;br /&gt;To demonstrate this, I went to &lt;a href="http://www.websiteoptimization.com/services/analyze/"&gt;http://www.websiteoptimization.com/services/analyze/&lt;/a&gt;&amp;nbsp;which is a free tool to analyze your site. &lt;br /&gt;I did that for &lt;a href="http://www.yahoo.com/"&gt;http://www.yahoo.com/&lt;/a&gt;&amp;nbsp;, &amp;nbsp;&lt;a href="http://www.google.ae/"&gt;http://www.google.ae/&lt;/a&gt; and finally for my website &lt;a href="http://www.raheelhussain.com/"&gt;http://www.raheelhussain.com/&lt;/a&gt; for comparision. &lt;br /&gt;&lt;br /&gt;Though the site for &lt;a href="http://www.asp.net/"&gt;http://www.asp.net/&lt;/a&gt; is also heavy, but my website (being very simple) was more havier than it. &lt;br /&gt;&lt;br /&gt;You when you do it, you&amp;#39;ll see the external object references, listed in a separate table. &lt;br /&gt;&lt;br /&gt;&lt;a href="http://dnfug.com/Web/blogs/raheel/ajax2_1.GIF"&gt;&lt;/a&gt;&lt;a href="http://dnfug.com/Web/blogs/raheel/ajax2_1.GIF"&gt;&lt;/a&gt;&lt;a href="http://dnfug.com/Web/blogs/raheel/ajax2_2.GIF"&gt;&lt;img src="http://dnfug.com/Web/blogs/raheel/ajax2_2.GIF" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Above is for &lt;a href="http://www.yahoo.com/"&gt;http://www.yahoo.com/&lt;/a&gt; and &lt;a href="http://www.google.ae/"&gt;http://www.google.ae/&lt;/a&gt;&amp;nbsp;&amp;nbsp;is even better with less load time. &lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;&lt;strong&gt;Image sizes&lt;/strong&gt;&amp;nbsp;&lt;br /&gt;Offcourse the image sizes&amp;nbsp;need to be lesser&amp;nbsp;unless there&amp;#39;s&amp;nbsp;really a need to put a bigger&amp;nbsp;image file on the homepage.&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;&lt;strong&gt;And the Important One - The GuestBook&lt;/strong&gt;&amp;nbsp; &lt;br /&gt;Since the Guestbook&amp;nbsp;consumes/implements&amp;nbsp;most of the AJAX functionalitiy. The conclusion to this is, that unless you do not have&amp;nbsp;a requirement, keep all the &lt;br /&gt;functionality in the inside pages, rather than keeping it on the Homepage. &amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;Working out further, I gathered following Tips and Tricks to make a website, or at least the home page efficient and fast loading. &lt;br /&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;Fewer external Objects, means try to group them maximum into&amp;nbsp;one combined, rather than many.&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;Turn on &lt;a href="http://httpd.apache.org/docs/2.0/mod/core.html#keepalive"&gt;HTTP keepalives&lt;/a&gt; for external objects. Otherwise you add an extra round-trip to do another &lt;a href="http://en.wikipedia.org/wiki/Transmission_Control_Protocol#Connection_establishment"&gt;TCP three-way handshake&lt;/a&gt; for every HTTP request. If you are worried about hitting global server connection limits, set the keepalive timeout to something short, like 5-10 seconds. Also look into serving your static content from a different webserver than your dynamic content. Having thousands of connections open to a stripped down static file webserver can happen in like 10 megs of RAM total, whereas your main webserver might easily eat 10 megs of RAM per connection.&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
&lt;p&gt;If your users regularly load a dozen or more uncached or uncacheable objects per page, consider evenly spreading those objects over four hostnames. This usually means your users can have 4x as many outstanding connections to you. Without HTTP pipelining, this results in their average request latency dropping to about 1/4 of what it was before.&lt;/p&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;p&gt;Minimize HTTP response size by enabling gzip compression for HTML and XML for browsers that support it. For example, the 17k document you are reading takes 90ms of the full downstream bandwidth of a user on 1.5Mbit DSL. Or it will take 37ms when compressed to 6.8k. That&amp;#39;s 53ms off of the full page load time for a simple change. If your HTML is bigger and more redundant, you&amp;#39;ll see an even greater improvement.&lt;/p&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;
&lt;p&gt;I&amp;#39;ve implemented most of the changes on my website but it is yet to go live again. &lt;br /&gt;Possibly by the end of this month. &lt;br /&gt;&lt;br /&gt;Regards - raheel Hussain&lt;br /&gt;&lt;br /&gt;References : &lt;br /&gt;&lt;a href="http://www.websiteoptimization.com/services/analyze/wso.php"&gt;http://www.websiteoptimization.com/services/analyze/wso.php&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.websiteoptimization.com/services/analyze/"&gt;http://www.websiteoptimization.com/services/analyze/&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;&lt;img src="http://v900u039rux.maximumasp.com/Web/aggbug.aspx?PostID=132" width="1" height="1"&gt;</description><category domain="http://v900u039rux.maximumasp.com/Web/blogs/raheel/archive/tags/SEO/default.aspx">SEO</category><category domain="http://v900u039rux.maximumasp.com/Web/blogs/raheel/archive/tags/AJAX/default.aspx">AJAX</category></item><item><title>Page Load with AJAX &amp; XML </title><link>http://v900u039rux.maximumasp.com/Web/blogs/raheel/archive/2007/12/03/page-load-with-ajax-amp-xml.aspx</link><pubDate>Mon, 03 Dec 2007 09:01:00 GMT</pubDate><guid isPermaLink="false">3790bee0-d05b-4b84-a272-3ed522a0473a:120</guid><dc:creator>Raheel Hussain</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://v900u039rux.maximumasp.com/Web/blogs/raheel/rsscomments.aspx?PostID=120</wfw:commentRss><comments>http://v900u039rux.maximumasp.com/Web/blogs/raheel/archive/2007/12/03/page-load-with-ajax-amp-xml.aspx#comments</comments><description>&lt;p&gt;&lt;a href="http://dnfug.com/Web/blogs/raheel/ajax_ek_3.GIF"&gt;&lt;/a&gt;With the arrival of AJAX, lots of things have improved as well as it also adds interactivity and fanciness in your applications. &lt;br /&gt;&lt;br /&gt;Here it is about no rocket science but an interesting scenario, that is&amp;nbsp;to display&amp;nbsp;the data received&amp;nbsp;from the web service in the&amp;nbsp;XML format the AJAX way during the page loading of a website. &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Scenario : -&lt;/strong&gt; &lt;br /&gt;&lt;br /&gt;I&amp;#39;ve a web service, which returns a XML data. The requirement is to display that XML in tabular format during the page_load of your web site as well as with the AJAX style of fanciness with some update progress animations etc.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;There were two reasons for which I had to go with the client side script rather than returning a dataset and binding it with a GridView. &lt;br /&gt;&lt;br /&gt;First was that a I was unable to find way to control or manipulate a DataSet through javascript, and second was that it is something about incremental page load which involve AJAX style loading of the page&amp;nbsp;involving update progress animation, and hence requires a client side script to come into action.&lt;br /&gt;&lt;br /&gt;Lets start with a simple web service which returns XML records, Here&amp;#39;s the code which I did&lt;/p&gt;
&lt;div style="BORDER-RIGHT:1px solid;BORDER-TOP:1px solid;OVERFLOW:scroll;BORDER-LEFT:1px solid;WIDTH:546px;BORDER-BOTTOM:1px solid;BACKGROUND-COLOR:#f5f5f5;"&gt;&lt;pre&gt;Imports System.Data
Imports System.Web
Imports System.Web.Services
Imports System.Web.Services.Protocols
Imports System.Web.Script.Services

&amp;lt;WebService(Namespace:=&amp;quot;http://tempuri.org/&amp;quot;)&amp;gt; _
&amp;lt;WebServiceBinding(ConformsTo:=WsiProfiles.BasicProfile1_1)&amp;gt; _
&amp;lt;Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()&amp;gt; _
&amp;lt;System.Web.Script.Services.ScriptService()&amp;gt; _
Public Class WebService
    Inherits System.Web.Services.WebService
    &amp;lt;WebMethod()&amp;gt; _
    Public Function getIndianTeam() As String
        Dim ds As New DataSet
        System.Threading.Thread.Sleep(2000)
        ds.ReadXml(Server.MapPath(&amp;quot;App_Data/IND.xml&amp;quot;))
        Return ds.GetXml()
    End Function

    &amp;lt;WebMethod()&amp;gt; _
    Public Function getPakistanTeam() As String
        Dim ds As New DataSet
        System.Threading.Thread.Sleep(4000)
        ds.ReadXml(Server.MapPath(&amp;quot;App_Data/PK.xml&amp;quot;))
        Return ds.GetXml()
    End Function
End Class

&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;br /&gt;Note: In my application, I&amp;#39;m retreiving the records (into the DataSet) from the database though, but here I&amp;#39;m reading an XML file rather (for example purpose).&lt;br /&gt;Another thing to notice is that you need to add&amp;nbsp;&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&lt;font size="2"&gt;&amp;quot;Imports System.Web.Script.Services&amp;quot;&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;statement on the top of your code file in the webservice. as well as the following code &lt;br /&gt;&lt;br /&gt;&amp;quot;&lt;font size="2"&gt;&amp;lt;System.Web.Script.Services.ScriptService()&amp;gt; _&amp;quot;&lt;br /&gt;&lt;/font&gt;&lt;br /&gt;which can be seen in the code given above. These two statements are not by-default part of the code, when you add a new webservice page into your project.&lt;font size="2"&gt;&lt;br /&gt;&lt;/font&gt;We are going to consume the web service in the default.aspx page. &lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;div style="BORDER-RIGHT:1px solid;BORDER-TOP:1px solid;OVERFLOW:scroll;BORDER-LEFT:1px solid;WIDTH:546px;BORDER-BOTTOM:1px solid;BACKGROUND-COLOR:#f5f5f5;"&gt;&lt;a href="http://dnfug.com/Web/blogs/raheel/ajax_ek_1.GIF"&gt;&lt;img src="http://dnfug.com/Web/blogs/raheel/ajax_ek_1.GIF" border="0" alt="" /&gt;&lt;/a&gt; &lt;/div&gt;
&lt;p&gt;&lt;br /&gt;The image&amp;nbsp;above describes you what you need to do in your default.aspx page. I&amp;#39;ve placed an&amp;nbsp;HTML&amp;nbsp;Table with four rows.&amp;nbsp;Row1 and Row3 has labels with&amp;nbsp;headings &amp;quot;Pakistan Team&amp;quot; and &amp;quot;Indian Team&amp;quot; respectively. Row2 and Row4 has Label controls as&amp;nbsp;well as an animated GIF (can&amp;nbsp;be of your choice) which&amp;nbsp;will act as what the name suggests the Update Progress animation.&lt;br /&gt;&lt;br /&gt;Also note that the cell at Row2 and that of Row4 has been named as &amp;quot;tdPak&amp;quot; and &amp;quot;tdInd&amp;quot; respectively.&lt;/p&gt;
&lt;p&gt;For this example, I&amp;#39;ve placed two XML files PK.xml and IND.xml inside the App_Data folder of the project. following image shows the solution explorer with the complete file and directory structure of this project.&lt;/p&gt;
&lt;div style="BORDER-RIGHT:1px solid;BORDER-TOP:1px solid;OVERFLOW:scroll;BORDER-LEFT:1px solid;WIDTH:546px;BORDER-BOTTOM:1px solid;BACKGROUND-COLOR:#f5f5f5;"&gt;&lt;a href="http://dnfug.com/Web/blogs/raheel/ajax_ek_2.GIF"&gt;&lt;img src="http://dnfug.com/Web/blogs/raheel/ajax_ek_2.GIF" border="0" alt="" /&gt;&lt;/a&gt; &lt;/div&gt;
&lt;p&gt;Next thing we need to do is to write client side code which will interact with the webservice. Before doing that select the Script Manager in the design mode of your default.aspx file and click on properties (or press F4) and click on the Service Collection, which will open up the following window.&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;div style="BORDER-RIGHT:1px solid;BORDER-TOP:1px solid;OVERFLOW:scroll;BORDER-LEFT:1px solid;WIDTH:546px;BORDER-BOTTOM:1px solid;BACKGROUND-COLOR:#f5f5f5;"&gt;&lt;a href="http://dnfug.com/Web/blogs/raheel/ajax_ek_3.GIF"&gt;&lt;img src="http://dnfug.com/Web/blogs/raheel/ajax_ek_3.GIF" border="0" alt="" /&gt;&lt;/a&gt; &lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Click the Add button to add a new service reference to your Script Manager, this will enable you to use the web service in your code. Also since the webservice.asmx file is a part of your project, hense there&amp;#39;s no need to write the whole path i.e. &lt;a href="http://www.xyz.com/services/myservice.asmx"&gt;http://www.xyz.com/services/myservice.asmx&lt;/a&gt; etc. but you may only specify the name of the webservice file that is webservice.asmx. 
&lt;p&gt;Now you are able to use the webservice in your client script. Here&amp;#39;s what we need to do now.&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;div style="BORDER-RIGHT:1px solid;BORDER-TOP:1px solid;OVERFLOW:scroll;BORDER-LEFT:1px solid;WIDTH:546px;BORDER-BOTTOM:1px solid;BACKGROUND-COLOR:#f5f5f5;"&gt;&lt;pre&gt;&amp;lt;head runat=&amp;quot;server&amp;quot;&amp;gt;
    &amp;lt;title&amp;gt;AJAX With XML&amp;lt;/title&amp;gt;
    &amp;lt;LINK rel=&amp;quot;stylesheet&amp;quot; type=&amp;quot;text/css&amp;quot; href=&amp;quot;StyleSheet.css&amp;quot; /&amp;gt;
    &amp;lt;script language=&amp;quot;javascript&amp;quot;&amp;gt;
        function pageLoad() {
        vResult = WebService.getPakistanTeam(onRetreivePK,onError);
        vResult = WebService.getIndianTeam(onRetreiveIN,onError);        
        }
        
        function onRetreivePK(vResult){
            loadXML(vResult,1);
            }
            
        function onRetreiveIN(vResult){
            loadXML(vResult,2);
            }
            
        var xmlDoc = new ActiveXObject(&amp;quot;Microsoft.XMLDOM&amp;quot;);
        function loadXML(xmlString,obj) { 
          xmlDoc.async=&amp;quot;false&amp;quot;;
          xmlDoc.onreadystatechange=verify;
          xmlDoc.loadXML(xmlString);
          displayXMLGrid(xmlDoc,obj);
        }
        
        function displayXMLGrid(xmlDoc,obj) {
            var root = xmlDoc.firstChild;
            var i=0;
            var strResult=&amp;quot;&amp;lt;table border=&amp;#39;0&amp;#39; style=&amp;#39;width:100%&amp;#39;&amp;gt;&amp;quot;;
            var tClass = &amp;quot;tdA&amp;quot;;
            
            if (root.hasChildNodes) {
                var v = root.childNodes[0];
                while (v != null) {
                    v = root.childNodes[ i ];
                    if      (v==null) break;
                    if (tClass==&amp;quot;tdA&amp;quot;) tClass = &amp;quot;tdB&amp;quot;;
                    else tClass = &amp;quot;tdA&amp;quot;;
                    
                    strResult +=&amp;quot;&amp;lt;tr&amp;gt;&amp;quot;;
                    strResult +=&amp;quot;&amp;lt;td class=&amp;#39;&amp;quot; + tClass + &amp;quot;&amp;#39;&amp;gt;&amp;quot; + v.attributes[0].text + &amp;quot;&amp;lt;/td&amp;gt;&amp;quot;;
                    strResult +=&amp;quot;&amp;lt;td class=&amp;#39;&amp;quot; + tClass + &amp;quot;&amp;#39;&amp;gt;&amp;quot; + v.attributes[1].text + &amp;quot;&amp;lt;/td&amp;gt;&amp;quot;;
                    strResult +=&amp;quot;&amp;lt;/tr&amp;gt;&amp;quot;;
                    i++;
                    }                    
                }
                strResult += &amp;quot;&amp;lt;/table&amp;gt;&amp;quot;;
                
                if      (obj==1)    document.getElementById(&amp;quot;tdPak&amp;quot;).innerHTML=strResult;
                else if (obj==2)    document.getElementById(&amp;quot;tdInd&amp;quot;).innerHTML=strResult;
            }
            
        
        function verify() {
          // 0 Object is not initialized // 1 Loading object is loading data // 2 Loaded object has loaded data
          // 3 Data from object can be worked with // 4 Object completely initialized
          if (xmlDoc.readyState != 4) {
            return false;
          }
        }        
        function onError(vResult){  alert(vResult);  }
    &amp;lt;/script&amp;gt;
&amp;lt;/head&amp;gt;

&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;In the above code, as you can see that I&amp;#39;m calling the Webservice methods to retreive the&amp;nbsp;data in the form of XML. while the&amp;nbsp;function calls have two arguments&amp;nbsp;one is OnRetreivePK and second is OnError. These are&amp;nbsp;basically&amp;nbsp;sub routines ( or events&amp;nbsp;) rather than arguments, telling the method call that to call the OnRetreivePK method upon successfully receiving data and go to the OnError event if some error occurs.&lt;/p&gt;
&lt;p&gt;I&amp;#39;ve used Microsoft.XMLDOM class with couple of methods of it to iterate through the nodes of the XML data retreived which very easy to understand, and then populating the cells of the table&amp;nbsp;depending on&amp;nbsp;the argument received. &lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;div style="BORDER-RIGHT:1px solid;BORDER-TOP:1px solid;OVERFLOW:scroll;BORDER-LEFT:1px solid;WIDTH:546px;BORDER-BOTTOM:1px solid;BACKGROUND-COLOR:#f5f5f5;"&gt;&lt;a href="http://dnfug.com/Web/blogs/raheel/ajax_ek_4.GIF"&gt;&lt;img src="http://dnfug.com/Web/blogs/raheel/ajax_ek_4.GIF" border="0" alt="" /&gt;&lt;/a&gt; &lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Your&amp;nbsp;application is ready to perform now. &lt;br /&gt;You can now run the application and it will show up with some nice and fancy style loading that is light weight as well as faster. &lt;br /&gt;&lt;br /&gt;You can download the source code by clicking on the Following link. &lt;a href="http://dnfug.com/Web/blogs/raheel/AJAXWeb2.zip"&gt;AJAXWeb2.zip&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Happy Coding &amp;amp; Regards - raheel &lt;br /&gt;&lt;img src="http://v900u039rux.maximumasp.com/Web/aggbug.aspx?PostID=120" width="1" height="1"&gt;</description><category domain="http://v900u039rux.maximumasp.com/Web/blogs/raheel/archive/tags/XML/default.aspx">XML</category><category domain="http://v900u039rux.maximumasp.com/Web/blogs/raheel/archive/tags/Web+Services/default.aspx">Web Services</category><category domain="http://v900u039rux.maximumasp.com/Web/blogs/raheel/archive/tags/AJAX/default.aspx">AJAX</category><category domain="http://v900u039rux.maximumasp.com/Web/blogs/raheel/archive/tags/Page+Load/default.aspx">Page Load</category><category domain="http://v900u039rux.maximumasp.com/Web/blogs/raheel/archive/tags/Update+Progress/default.aspx">Update Progress</category></item><item><title>Working with AJAX - Part 1</title><link>http://v900u039rux.maximumasp.com/Web/blogs/raheel/archive/2007/11/24/working-with-ajax-1-0.aspx</link><pubDate>Sat, 24 Nov 2007 09:23:00 GMT</pubDate><guid isPermaLink="false">3790bee0-d05b-4b84-a272-3ed522a0473a:116</guid><dc:creator>Raheel Hussain</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://v900u039rux.maximumasp.com/Web/blogs/raheel/rsscomments.aspx?PostID=116</wfw:commentRss><comments>http://v900u039rux.maximumasp.com/Web/blogs/raheel/archive/2007/11/24/working-with-ajax-1-0.aspx#comments</comments><description>&lt;p&gt;If you have not yet started working with AJAX, then this article will help you quick with it. You will AJAX style of development&amp;nbsp;a fun-to-do. Lets have a look.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;u&gt;The Installation&lt;/u&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;The installation of AJAX extensions 1.0 is fairly easy. &lt;br /&gt;&lt;br /&gt;We need to install the &amp;quot;ASPAJAXExtSetup.msi&amp;quot; this can be downloaded from&amp;nbsp; &lt;a href="http://www.asp.net/ajax/downloads/"&gt;http://www.asp.net/ajax/downloads/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Note that the AJAX Extensions 1.0.11119.0. are meant to be used with ASP.NET 2.0 and with Visual Studio 2005, while AJAX Library 3.5&amp;nbsp;is now&amp;nbsp;also available for .NET framework 3.5 and Visual Studio 2008.&amp;nbsp; However, we will still talk about AJAX 1.0 extensions. &lt;br /&gt;&lt;br /&gt;When you run the AJAX 1.0 extensions setup, this will instal the &amp;quot;System.Web.Extensions.dll&amp;quot; and&amp;nbsp; System.Web.Extensions.Design.dll&amp;quot; to your machine or to the your Global Assembly Cache of your machine.&lt;/p&gt;
&lt;p&gt;You can go an see both of the files under the following path C:\Windows\Assembly\&lt;br /&gt;&lt;br /&gt;Congratulations ! your Visual Studio 2005 is ready for doing AJAX style of development. Start your VS 2005 right a way and start a new website. You will notice that the toolbox now has an additional Tab by the name of AJAX Extensions &lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;div style="BORDER-RIGHT:1px solid;BORDER-TOP:1px solid;OVERFLOW:scroll;BORDER-LEFT:1px solid;WIDTH:546px;BORDER-BOTTOM:1px solid;BACKGROUND-COLOR:#f5f5f5;"&gt;&lt;a href="http://dnfug.com/Web/blogs/raheel/ajax_1.gif"&gt;&lt;img src="http://dnfug.com/Web/blogs/raheel/ajax_1.gif" border="0" alt="" /&gt;&lt;/a&gt; &lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;u&gt;&lt;strong&gt;Making the First Program .. Hello AJAX World &lt;/strong&gt;&lt;/u&gt;
&lt;p&gt;Start a new website and double click on default.aspx (from project explorer view) to open it in design mode.&lt;/p&gt;
&lt;p&gt;Place a label control, and a&amp;nbsp;button on the page. Name the label control as &amp;quot;lblMessage&amp;quot; and the button as &amp;quot;cmdTest&amp;quot; or whatever you like.&lt;/p&gt;
&lt;p&gt;Change the text of the button as &amp;quot;Test the AJAX&amp;quot;. &lt;/p&gt;
&lt;p&gt;Double click on the button, to go to the code view and write the following code:&lt;/p&gt;
&lt;div style="BORDER-RIGHT:1px solid;BORDER-TOP:1px solid;OVERFLOW:scroll;BORDER-LEFT:1px solid;WIDTH:546px;BORDER-BOTTOM:1px solid;BACKGROUND-COLOR:#f5f5f5;"&gt;&lt;pre&gt;Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles cmdTest.Click
        lblMessage.Text = &amp;quot;Hello to AJAX World. Today&amp;#39;s Date is &amp;quot; &amp;amp; System.DateTime.Now.ToString(&amp;quot;dd-MMM-yyyy hh:mm:ss&amp;quot;)
    End Sub
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Now, press F5 to run the project, &lt;/p&gt;
&lt;p&gt;Click the Button on the page to test the results.&lt;/p&gt;
&lt;p&gt;You will notice that as soon as you click the button, the page Posts back itself (or the page Refreshes) to display the Message with date/time.&lt;/p&gt;
&lt;p&gt;However, this is not the end of the story&amp;nbsp;because AJAX has not yet come into the picture.&lt;/p&gt;
&lt;p&gt;While the page open in design mode, go to the toolbox and double click on Script Manager under the AJAX extensions&lt;br /&gt;This will put a Script Manager control on your page, which is responsible for managing/handling all AJAX scripts at the&amp;nbsp;runtime&lt;br /&gt;&lt;br /&gt;Select an UpdatePanel from the toolbox (under the AJAX Extensions menu) and place it on the form &lt;/p&gt;
&lt;p&gt;Next, drag and place the Label control as well as the Button inside the UpdatePanel as shown in the figure below&lt;/p&gt;
&lt;div style="BORDER-RIGHT:1px solid;BORDER-TOP:1px solid;OVERFLOW:scroll;BORDER-LEFT:1px solid;WIDTH:546px;BORDER-BOTTOM:1px solid;BACKGROUND-COLOR:#f5f5f5;"&gt;&lt;a href="http://dnfug.com/Web/blogs/raheel/ajax_ek_5.GIF"&gt;&lt;img src="http://dnfug.com/Web/blogs/raheel/ajax_ek_5.GIF" border="0" alt="" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;p&gt;Now Press F5 to run the application again. This time you&amp;#39;ll notice that the page doesn&amp;#39;t post back, but still displays the results on each click. This is basically running the server side code you&amp;#39;ve written under the click event of the button but, since we&amp;#39;ve used the UpdatePanel in the page and the purpose of the update panel is to tell the scriptmanager that which particular section&amp;nbsp;of the page needs to be updated rather than the whole Page Postback.&lt;/p&gt;
&lt;p&gt;With the AJAX tecnique, the data is posted back and retreived using the XMLHTTP (or XML over HTTP protocol).&lt;/p&gt;
&lt;div&gt;Also, It is not necessary that you should place the button inside the Updatepanel, but you can put the button outside the Panel and control the Postback by specifying the Triggers inside the UpdatePanel triggers collection property.&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;Here&amp;#39;s how we do it. &lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;Put the button somewhere outside the Updatepanel (Drag it outside) &lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;Click on the updatepanel in the design mode of the page, and then press F4 to open the properties window.&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;Click the Trigges property to open the &amp;quot;UpdatepanelTriggers Collection Editor&amp;quot; window shown in below image&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style="BORDER-RIGHT:1px solid;BORDER-TOP:1px solid;OVERFLOW:scroll;BORDER-LEFT:1px solid;WIDTH:546px;BORDER-BOTTOM:1px solid;BACKGROUND-COLOR:#f5f5f5;"&gt;&lt;a href="http://dnfug.com/Web/blogs/raheel/ajax_ek_6.GIF"&gt;&lt;img src="http://dnfug.com/Web/blogs/raheel/ajax_ek_6.GIF" border="0" alt="" /&gt;&lt;/a&gt; &lt;/div&gt;&lt;br /&gt;&lt;br /&gt;The above diagram shows that when you click on the Add button it will show you two triggers, AsyncPostBackTrigger and PostBackTrigger. &lt;br /&gt;You need to add the AsyncPostBackTrigger, we will&amp;nbsp;talk about the PostbackTrigger later discussions. 
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;The diagram exaplains you everything, that you need to select the &lt;strong&gt;ControlID &lt;/strong&gt;and the Event of the TargetControl. &lt;br /&gt;&lt;br /&gt;After setting all up, press Ok, and then press F5 to run the application. You will notice that, even though the button is outside the Updatepanel, but has the same result. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;u&gt;Conclusion&lt;/u&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;AJAX stands for Asynchronous JavaScript and XML. &lt;/div&gt;
&lt;div&gt;AJAX fine tunes your pages to have greater user experience.&lt;/div&gt;
&lt;div&gt;Particular parts or section of the page can be loaded without posting back the whole page with the help of XMLHttp (the technique of AJAX)&lt;/div&gt;
&lt;div&gt;If a button is inside the Updatepanel, there is no need to define a trigger for that button inside the Updatepanel.&lt;/div&gt;
&lt;div&gt;There can be more than one Updatepanel inside a page, each of which can be used for updating and retrieving content separately without page postback.&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;In working with AJAX Part 2, we are going to discuss about the AJAX Control and&amp;nbsp;Control extenders&amp;nbsp;shipped with the AJAX Control Toolkit.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Regards - raheel&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;img src="http://v900u039rux.maximumasp.com/Web/aggbug.aspx?PostID=116" width="1" height="1"&gt;</description><category domain="http://v900u039rux.maximumasp.com/Web/blogs/raheel/archive/tags/XML/default.aspx">XML</category><category domain="http://v900u039rux.maximumasp.com/Web/blogs/raheel/archive/tags/AJAX/default.aspx">AJAX</category><category domain="http://v900u039rux.maximumasp.com/Web/blogs/raheel/archive/tags/Updatepanel/default.aspx">Updatepanel</category></item><item><title>Lets Go AJAX ! </title><link>http://v900u039rux.maximumasp.com/Web/blogs/raheel/archive/2007/10/05/lets-go-ajax.aspx</link><pubDate>Fri, 05 Oct 2007 21:28:00 GMT</pubDate><guid isPermaLink="false">3790bee0-d05b-4b84-a272-3ed522a0473a:73</guid><dc:creator>Raheel Hussain</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://v900u039rux.maximumasp.com/Web/blogs/raheel/rsscomments.aspx?PostID=73</wfw:commentRss><comments>http://v900u039rux.maximumasp.com/Web/blogs/raheel/archive/2007/10/05/lets-go-ajax.aspx#comments</comments><description>&lt;p&gt;It had been long since I last planned to update my skills on AJAX &lt;/p&gt;
&lt;p&gt;I&amp;nbsp;did work on it while when I was in my previous firm, since I had to start couple of new applications and got a chance to implement AJAX&lt;/p&gt;
&lt;p&gt;But that was past, and in current organization (&amp;nbsp;6+ months now&amp;nbsp;)&amp;nbsp;I had to work on some existing software which were huge applications but in .NET 1.1.&lt;/p&gt;
&lt;p&gt;So, finally and fortunately&amp;nbsp;now I got chance to work again with AJAX&amp;nbsp;when we planned to migrate one of our application from ASP.NET 1.1 to ASP.NET 2.0&lt;/p&gt;
&lt;p&gt;Hope that everybody know that NET 1.1 doesnt support AJAX.&lt;br /&gt;&lt;br /&gt;Some next posts of mine will be on AJAX sharing my experiences and some useful links and works by other developers in the industry....etc. &lt;/p&gt;
&lt;p&gt;Stay tuned... &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://v900u039rux.maximumasp.com/Web/aggbug.aspx?PostID=73" width="1" height="1"&gt;</description><category domain="http://v900u039rux.maximumasp.com/Web/blogs/raheel/archive/tags/AJAX/default.aspx">AJAX</category></item><item><title>Microsoft's Project codename Astoria - online service </title><link>http://v900u039rux.maximumasp.com/Web/blogs/raheel/archive/2007/09/09/a-test-drive-to-ms-project-codename-astoria.aspx</link><pubDate>Sun, 09 Sep 2007 05:28:00 GMT</pubDate><guid isPermaLink="false">3790bee0-d05b-4b84-a272-3ed522a0473a:64</guid><dc:creator>Raheel Hussain</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://v900u039rux.maximumasp.com/Web/blogs/raheel/rsscomments.aspx?PostID=64</wfw:commentRss><comments>http://v900u039rux.maximumasp.com/Web/blogs/raheel/archive/2007/09/09/a-test-drive-to-ms-project-codename-astoria.aspx#comments</comments><description>&lt;p&gt;&lt;a href="http://yukonizer.com/Web/blogs/raheel/astoria_2.GIF"&gt;&lt;/a&gt;My experience to use ASTORIA online service was&amp;nbsp;good !&amp;nbsp; &lt;br /&gt;&lt;br /&gt;For using the online service, it requires Microsoft .NET Passport login. After logging in .. I created my entity model, a simple one by creating four tables. &lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;Books&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;Borrowers&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;Librarians&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;Transactions&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;You also need to specify the User ID, Password and the Service name through which&amp;nbsp;the URI for your service will be decided.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;div style="BORDER-RIGHT:#000000 1px solid;BORDER-TOP:#000000 1px solid;OVERFLOW:scroll;BORDER-LEFT:#000000 1px solid;WIDTH:546px;BORDER-BOTTOM:#000000 1px solid;"&gt;&lt;a href="http://yukonizer.com/Web/blogs/raheel/astoria_3.GIF"&gt;&lt;img src="http://yukonizer.com/Web/blogs/raheel/astoria_3.GIF" border="0" alt="" /&gt;&lt;/a&gt;&lt;/div&gt;&amp;nbsp; 
&lt;p&gt;With the simple interface for creating the Entities, and Properties (Data Base Fields) of the Entities and the Associations (Relationships)&lt;br /&gt;Following Images will show you the steps &lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;div style="BORDER-RIGHT:#000000 1px solid;BORDER-TOP:#000000 1px solid;OVERFLOW:scroll;BORDER-LEFT:#000000 1px solid;WIDTH:546px;BORDER-BOTTOM:#000000 1px solid;"&gt;&lt;a href="http://yukonizer.com/Web/blogs/raheel/astoria_1.JPG"&gt;&lt;img src="http://yukonizer.com/Web/blogs/raheel/astoria_1.JPG" border="0" alt="" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;p&gt;In the above image, you can see the Button for Creating a new Entity as well as for Creating Properties and Associations.&lt;/p&gt;
&lt;p&gt;You can find all of the instructions for creating the EDM on the same page. You can click on the &amp;quot;Finish&amp;quot; button at the bottom of the page to proceed further. &lt;/p&gt;
&lt;p&gt;After finishing, you&amp;#39;ll be shown the conceptual model (CSDL) file for your EDM, as you can see below the one which I created.&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;div style="BORDER-RIGHT:#000000 1px solid;BORDER-TOP:#000000 1px solid;OVERFLOW:scroll;BORDER-LEFT:#000000 1px solid;WIDTH:546px;BORDER-BOTTOM:#000000 1px solid;"&gt;&lt;a href="http://yukonizer.com/Web/blogs/raheel/astoria_2.GIF"&gt;&lt;img src="http://yukonizer.com/Web/blogs/raheel/astoria_2.GIF" border="0" alt="" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;The above image shows the URI to test the above service. this is &lt;br /&gt;&lt;br /&gt;&lt;a href="https://astoria.sandbox.live.com/users/MYTESTDBSERVICE/MYTESTDBSERVICE.rse"&gt;https://astoria.sandbox.live.com/users/MYTESTDBSERVICE/MYTESTDBSERVICE.rse&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Note that the service can only be access through the secure HTTP channel, and your UserID/Password is required to access it.&lt;br /&gt;That is, in my case I&amp;#39;ve to enter my User ID and Password, while others cannot access my EDM through their login credentials. &lt;br /&gt;&lt;br /&gt;For the demonstration, you can have a look at NWind Data Service, Adventure Works Data service etc. which can be accessed through &lt;br /&gt;Project Astoria Website &lt;a href="http://astoria.mslivelabs.com/OnlineService.aspx"&gt;http://astoria.mslivelabs.com/OnlineService.aspx&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Also the service which I created, can be accessed through a simple tool which allows to interact with the service is as follows:&lt;br /&gt;&lt;br /&gt;&lt;a href="https://astoria.sandbox.live.com/Tools/raw.htm"&gt;https://astoria.sandbox.live.com/Tools/raw.htm&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;div style="BORDER-RIGHT:#000000 1px solid;BORDER-TOP:#000000 1px solid;OVERFLOW:scroll;BORDER-LEFT:#000000 1px solid;WIDTH:546px;BORDER-BOTTOM:#000000 1px solid;"&gt;&lt;a href="http://yukonizer.com/Web/blogs/raheel/astoria_4.GIF"&gt;&lt;img src="http://yukonizer.com/Web/blogs/raheel/astoria_4.GIF" border="0" alt="" /&gt;&lt;/a&gt;&amp;nbsp;&lt;/div&gt;
&lt;p&gt;&lt;br /&gt;&lt;br /&gt;The tool allows for the following Http-Verbs ( or Actions) &lt;br /&gt;GET = Retreive&lt;br /&gt;PUT = Update&lt;br /&gt;POST = Insert&lt;br /&gt;DELETE = Insert&lt;br /&gt;&lt;br /&gt;While in the above image, you can see in the Request Data Section, that I did put a test XML with the HTTP Verb as Post to insert data.&lt;br /&gt;Currently in the Image you can see HTTP Verb = Get, but the Request data is not subject to use with GET, but only PUT&amp;nbsp;&amp;amp; POST.&lt;br /&gt;&lt;br /&gt;You can see in the Output section that the data is displayed as the result of HTTP-GET operation&amp;nbsp;along with the URI value which I have specified as&lt;br /&gt;&lt;a href="https://astoria.sandbox.live.com/users/MYTESTDBSERVICE/MYTESTDBSERVICE.rse/Books"&gt;https://astoria.sandbox.live.com/users/MYTESTDBSERVICE/MYTESTDBSERVICE.rse/Books&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The &amp;quot;Books&amp;quot; refers to the Entity which was created earlier.&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;I hope this gave enough insight to you about the Project &amp;quot;Microsoft codename Astoria&amp;quot; and lets stay tuned for more updates to come as the project is under&lt;br /&gt;active development and we expect major security features and certain more features to be added to it.&lt;br /&gt;&lt;br /&gt;Best Of Luck&amp;nbsp; &lt;/p&gt;
&lt;p&gt;raheel Hussain&lt;/p&gt;&lt;img src="http://v900u039rux.maximumasp.com/Web/aggbug.aspx?PostID=64" width="1" height="1"&gt;</description><category domain="http://v900u039rux.maximumasp.com/Web/blogs/raheel/archive/tags/JSON/default.aspx">JSON</category><category domain="http://v900u039rux.maximumasp.com/Web/blogs/raheel/archive/tags/Microsoft+Codename+Astoria/default.aspx">Microsoft Codename Astoria</category><category domain="http://v900u039rux.maximumasp.com/Web/blogs/raheel/archive/tags/XML/default.aspx">XML</category><category domain="http://v900u039rux.maximumasp.com/Web/blogs/raheel/archive/tags/Web+Services/default.aspx">Web Services</category><category domain="http://v900u039rux.maximumasp.com/Web/blogs/raheel/archive/tags/AJAX/default.aspx">AJAX</category><category domain="http://v900u039rux.maximumasp.com/Web/blogs/raheel/archive/tags/Javascript+Object+Notation/default.aspx">Javascript Object Notation</category></item><item><title>Microsoft Codename Astoria ! </title><link>http://v900u039rux.maximumasp.com/Web/blogs/raheel/archive/2007/09/05/microsoft-codename-astoria.aspx</link><pubDate>Wed, 05 Sep 2007 09:18:00 GMT</pubDate><guid isPermaLink="false">3790bee0-d05b-4b84-a272-3ed522a0473a:61</guid><dc:creator>Raheel Hussain</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://v900u039rux.maximumasp.com/Web/blogs/raheel/rsscomments.aspx?PostID=61</wfw:commentRss><comments>http://v900u039rux.maximumasp.com/Web/blogs/raheel/archive/2007/09/05/microsoft-codename-astoria.aspx#comments</comments><description>&lt;span style="FONT-FAMILY:Arial;mso-ansi-language:EN-GB;"&gt;Hello folks ! &lt;br /&gt;&lt;br /&gt;A recommended read&amp;nbsp;about&amp;nbsp;Microsoft codename &amp;quot;Astoria&amp;quot;, an experimental project by Microsoft. &lt;br /&gt;&lt;br /&gt;I&amp;#39;m listing down some of the highlights, I was able to understand from the mannual I downloaded. &lt;br /&gt;&lt;br /&gt;This is a very interesting read, as well as the&amp;nbsp;you can make your own data store upto 100 MB and&amp;nbsp;use the Astoria &lt;br /&gt;service to build the data service and access it from any where on the internet, while the toolkit can also be &lt;br /&gt;downloaded to be used on your system with VS &amp;amp; AJAX&amp;nbsp;enabled.&lt;br /&gt;&lt;br /&gt;Here are the few&amp;nbsp;extracts/highlights for your ease!&lt;/span&gt;&lt;span style="FONT-FAMILY:Arial;"&gt;&lt;/span&gt; 
&lt;ul&gt;
&lt;li class="MsoNormal" style="MARGIN:0cm 0cm 0pt;mso-list:l0 level1 lfo1;tab-stops:list 36.0pt;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;"&gt;&lt;span style="FONT-FAMILY:Arial;"&gt;Project Astoria consists of a combination of patterns, libraries and an online service that explores the concept of data services for the web.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="FONT-FAMILY:Arial;"&gt;&lt;/span&gt;&lt;span style="FONT-FAMILY:Arial;"&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;mso-list:l0 level1 lfo1;tab-stops:list 36.0pt;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;"&gt;&lt;br /&gt;&lt;/p&gt;&lt;/span&gt;
&lt;ul&gt;
&lt;li class="MsoNormal" style="MARGIN:0cm 0cm 0pt;mso-list:l0 level1 lfo1;tab-stops:list 36.0pt;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;"&gt;&lt;span style="FONT-FAMILY:Arial;"&gt;The goal of Astoria is to facilitate the creation of flexible data services that are naturally integrated with the web.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class="MsoNormal" style="MARGIN:0cm 0cm 0pt;mso-list:l0 level1 lfo1;tab-stops:list 36.0pt;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;"&gt;&lt;span style="FONT-FAMILY:Arial;"&gt;Astoria&lt;/span&gt;&lt;span style="FONT-FAMILY:Arial;"&gt; uses URIs to point to pieces of data and simple, well-known formats to represent that data, such as JSON (Javascript Simple Object Notation)&amp;nbsp;and plain XML, while the default representation is XML.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="FONT-FAMILY:Arial;"&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;mso-list:l0 level1 lfo1;tab-stops:list 36.0pt;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;"&gt;&lt;br /&gt;&lt;/p&gt;&lt;/span&gt;
&lt;ul&gt;
&lt;li class="MsoNormal" style="MARGIN:0cm 0cm 0pt;mso-list:l0 level1 lfo1;tab-stops:list 36.0pt;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;"&gt;&lt;span style="FONT-FAMILY:Arial;"&gt;JSON format is naturally and simply integrated with Javascript environments such as AJAX, can be retreived by simply setting a Acceptheader to application/json.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="FONT-FAMILY:Arial;"&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;mso-list:l0 level1 lfo1;tab-stops:list 36.0pt;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;"&gt;&lt;br /&gt;&lt;/p&gt;&lt;/span&gt;
&lt;ul&gt;
&lt;li class="MsoNormal" style="MARGIN:0cm 0cm 0pt;mso-list:l0 level1 lfo1;tab-stops:list 36.0pt;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;"&gt;&lt;span style="FONT-FAMILY:Arial;"&gt;Codename Astoria is released in two forms, A &lt;u&gt;downloadable toolkit&lt;/u&gt; and an &lt;u&gt;online service&lt;/u&gt;. Both are focused on creation and operation of data services, but are aimed at difference scenarios.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="FONT-FAMILY:Arial;"&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;mso-list:l0 level1 lfo1;tab-stops:list 36.0pt;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;"&gt;&lt;br /&gt;&lt;/p&gt;&lt;/span&gt;
&lt;ul&gt;
&lt;li class="MsoNormal" style="MARGIN:0cm 0cm 0pt;mso-list:l0 level1 lfo1;tab-stops:list 36.0pt;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;"&gt;&lt;span style="FONT-FAMILY:Arial;"&gt;The Astoria toolkit is a downloadable package that contains the Astoria runtime, documentation and examples that show how to use the toolkit. The toolkit is designed to allow ASP.NET developers to create data services directly in their ASP.NET applications, accessing their own database.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class="MsoNormal" style="MARGIN:0cm 0cm 0pt;mso-list:l0 level1 lfo1;tab-stops:list 36.0pt;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;"&gt;&lt;span style="FONT-FAMILY:Arial;"&gt;The Astoria online service is an experimental service that aims at exploring programming models for data on the web, offered in the form of a service.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="FONT-FAMILY:Arial;"&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;mso-list:l0 level1 lfo1;tab-stops:list 36.0pt;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;"&gt;&lt;br /&gt;&lt;/p&gt;&lt;/span&gt;
&lt;ul&gt;
&lt;li class="MsoNormal" style="MARGIN:0cm 0cm 0pt;mso-list:l0 level1 lfo1;tab-stops:list 36.0pt;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;"&gt;&lt;span style="FONT-FAMILY:Arial;"&gt;Using the Astoria online service, web developers can create custom structured data stores on the web and access them from anywhere that they have internet access, This experimental release also includes a set of sample data-sets that are preloaded and readily accessible as data services.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="FONT-FAMILY:Arial;mso-ansi-language:EN-GB;"&gt;Please you can visit &lt;a href="http://astoria.mslivelabs.com/"&gt;http://astoria.mslivelabs.com&lt;/a&gt;&amp;nbsp;for&amp;nbsp;further information about the project.&lt;br /&gt;Also,&amp;nbsp;visit the &lt;a href="http://blogs.msdn.com/astoriateam/archive/2007/08/03/create-your-own-hosted-astoria-data-service.aspx#comments"&gt;Astoria Blog&lt;/a&gt; at Microsft MSDN.&lt;/span&gt;&lt;span style="FONT-FAMILY:Arial;"&gt;&lt;/span&gt;&lt;span style="FONT-FAMILY:Arial;"&gt;Regards ! &lt;br /&gt;raheel Hussain &lt;/span&gt;&lt;span style="FONT-FAMILY:Arial;mso-ansi-language:EN-GB;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="FONT-FAMILY:Arial;"&gt;&amp;nbsp;&lt;/span&gt; 
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://v900u039rux.maximumasp.com/Web/aggbug.aspx?PostID=61" width="1" height="1"&gt;</description><category domain="http://v900u039rux.maximumasp.com/Web/blogs/raheel/archive/tags/JSON/default.aspx">JSON</category><category domain="http://v900u039rux.maximumasp.com/Web/blogs/raheel/archive/tags/XML/default.aspx">XML</category><category domain="http://v900u039rux.maximumasp.com/Web/blogs/raheel/archive/tags/Web+Services/default.aspx">Web Services</category><category domain="http://v900u039rux.maximumasp.com/Web/blogs/raheel/archive/tags/AJAX/default.aspx">AJAX</category><category domain="http://v900u039rux.maximumasp.com/Web/blogs/raheel/archive/tags/Microsoft+Project+Codename+Astoria/default.aspx">Microsoft Project Codename Astoria</category><category domain="http://v900u039rux.maximumasp.com/Web/blogs/raheel/archive/tags/Javascript+Object+Notation/default.aspx">Javascript Object Notation</category></item></channel></rss>