Difference between MSXML2.XmlHttp and Microsoft.XmlHttp ProgIDs

Last post 11-13-2009 11:35 AM by Fotiman. 28 replies.

Sort Posts:

  • Difference between MSXML2.XmlHttp and Microsoft.XmlHttp ProgIDs

    06-16-2006, 4:30 AM
    • Member
      8 point Member
    • AGS777
    • Member since 06-16-2006, 8:20 AM
    • Posts 14

    Could someone explain me the difference between following version independent ProgIDs: MSXML2.XmlHttp and Microsoft.XmlHttp? Both of this will instantiate an instance MSXML2.XmlHttp.3.0 on my IE 6.0. So is there any difference? Which one is preferable or just newer? Any reference to some official documentation on the subject is greatly appreciated.

     

     

  • Re: Difference between MSXML2.XmlHttp and Microsoft.XmlHttp ProgIDs

    03-14-2007, 7:23 PM
    • Member
      8 point Member
    • AGS777
    • Member since 06-16-2006, 8:20 AM
    • Posts 14

    Well, not the exact answer but in case someone is interested too

    http://blogs.msdn.com/xmlteam/archive/2006/10/23/using-the-right-version-of-msxml-in-internet-explorer.aspx 

  • Re: Difference between MSXML2.XmlHttp and Microsoft.XmlHttp ProgIDs

    03-14-2007, 11:02 PM
    • All-Star
      20,624 point All-Star
    • A1ien51
    • Member since 05-06-2005, 6:46 PM
    • MD USA
    • Posts 3,788
  • Re: Difference between MSXML2.XmlHttp and Microsoft.XmlHttp ProgIDs

    03-15-2007, 4:07 AM
    • Member
      8 point Member
    • AGS777
    • Member since 06-16-2006, 8:20 AM
    • Posts 14

    Thanks, Eric

    But the question actually was about version-independent ProgIDs. I think I understand well enough the differences between various versions of the library

    (thanks to article I mentioned in the previous post).  And I know that MSXML2 namespace is newer than Microsoft. What puzzled me is why all major client-side

    frameworks test both version-independent ProgIDs to instantiate XmlHttp object: MSXML2.XmlHttp and Microsoft.XmlHttp while both of them stick to MSXML3 at best.

    I mean if you don't need to use a version higher than MSXML3 and just want to instantiate objects of the versions up to MSXML3 whatever is present on the machine,

    then the older Microsoft.XmlHttp does the same thing (and supported by MSXML3 version i.e. the last version whose object can be instantiated).

    So why do we need to test both? I hope I expressed myself clear.

    Best regards,

    Alexei 

     

     

     

  • Re: Difference between MSXML2.XmlHttp and Microsoft.XmlHttp ProgIDs

    03-15-2007, 8:31 AM
    • All-Star
      20,624 point All-Star
    • A1ien51
    • Member since 05-06-2005, 6:46 PM
    • MD USA
    • Posts 3,788

    Why is it done? The easy answer is to say old browser support. I normally test for 6, 3, and the orginal one.

     The biggest difference I see between them all really only effects you if you are going the XSLT way. I really saw no performance gain at all using each version to grab the textoff the server.

    Eric

  • Re: Difference between MSXML2.XmlHttp and Microsoft.XmlHttp ProgIDs

    03-15-2007, 8:51 AM
    • Member
      8 point Member
    • AGS777
    • Member since 06-16-2006, 8:20 AM
    • Posts 14

    Thanks again Eric, but sorry for my stupidity I don't see an answer in your question.

    I am asking exclusively about XmlHttp request object, not about DOM Document with all the differences regarding XSLT engine

    or Schema validation. 

    And, once again, I am talking about VERSION-INDEPENDENT ProgIDs: namely MSXML2.XmlHttp and Microsoft.XmlHttp .

    As far as I understand for the given browser on the given machine both of them will instantiate exactly the same instance of XmlHttp object of

    exactly the same version (up to MSXML3).

    And the verification I am asking about looks like:

     var progIDs = [ 'Msxml2.XMLHTTP', 'Microsoft.XMLHTTP' ];
    	    
            for (var i = 0; i < progIDs.length; i++) {
                try {
                    var xmlHttp = new ActiveXObject(progIDs[i]);
                    return xmlHttp;
                }
                catch (ex) {
                }
            }

    So  my question is not: "Why to test for different EXACT versions of Microsoft XML Parser library?"

    It sounds like: Why do we need to test for existence of newer version-independent progID MSXML2.XmlHttp

    while the older one Microsoft.XmlHttp will do the same thing? 

    I know that I missed something important about the two ProgIDs. I just don't know what it is?

     

    Best Regards,

    Alexei 

  • Re: Difference between MSXML2.XmlHttp and Microsoft.XmlHttp ProgIDs

    03-15-2007, 1:28 PM
    • All-Star
      20,624 point All-Star
    • A1ien51
    • Member since 05-06-2005, 6:46 PM
    • MD USA
    • Posts 3,788

    Maybe after 4 hours of sleep I can answer you and have your mind at ease.

     Yes it would make sense to just use Microsoft.XmlHttp, but there is an issue with it if you care about the version. The actual MSXML version that it uses is based of the version's install and the mode they were installed. I think there is like side by side and replace mode. Something like that. So it is up in the air wha you are getting. It is best to try for the best and work the way down.

     Eric

  • Re: Difference between MSXML2.XmlHttp and Microsoft.XmlHttp ProgIDs

    03-15-2007, 1:56 PM
    • Member
      8 point Member
    • AGS777
    • Member since 06-16-2006, 8:20 AM
    • Posts 14

    Eric, 

    I am terribly sorry Eric that it took three posts to understand my question :). I really thought that it was well-defined even in the subject of the thread.

    Yes I'm aware of side by side and replace installation modes. So the "something like that" doesn't help me.

    Microsoft.XMLHTTP and MSXML2.XmlHttp ARE BOTH VERSION-INDEPENDENT. 

    As far as I understand you think that MSXML version marked with Microsoft.XmlHttp ProgID can differ from one marked with MSXML2.XmlHttp.

    It doesn't correspond to my experience. As far as I understand you don't know the exact algorithm to show the actual difference.

    Sorry once again, Eric, but for me it looks like you have tried to answer the question you are not able to answer.

    Thanks anyway,

    Best regards,

    Alexei 

     

     

  • Re: Difference between MSXML2.XmlHttp and Microsoft.XmlHttp ProgIDs

    03-15-2007, 7:48 PM
    • All-Star
      20,624 point All-Star
    • A1ien51
    • Member since 05-06-2005, 6:46 PM
    • MD USA
    • Posts 3,788

    I been trying to dig around for more info on MSDN and basically came up empty. All I could find is this: http://www.faqts.com/knowledge_base/view.phtml/aid/35742

     Eric

  • Re: Difference between MSXML2.XmlHttp and Microsoft.XmlHttp ProgIDs

    03-15-2007, 8:15 PM
    • Member
      8 point Member
    • AGS777
    • Member since 06-16-2006, 8:20 AM
    • Posts 14

    Eric,

    Yes, I read the article several months ago, but it doesn't clarify the questions.

    Thanks

    Alexei 

     

  • Re: Difference between MSXML2.XmlHttp and Microsoft.XmlHttp ProgIDs

    08-13-2007, 11:26 AM
    • Member
      14 point Member
    • Wukfit
    • Member since 08-13-2007, 2:59 PM
    • Posts 7

    Just in case anyone else looks at this thread.... 

    I think I understand your question - you're right from what I've read it's pointless testing for MSXML2.XmlHttp, Microsoft.XmlHttp (AND MSXML2.XmlHttp.3.0) as they will all point to the same version - and theres no way to tell which version this is.

    The 3 progids (MSXML2.XmlHttp, Microsoft.XmlHttp and MSXML2.XmlHttp.3.0) reference v2.x to v3 of MSXML, which would have been installed in "replace mode" (installing version 3 replaced version 2).

    Starting with v4, MSXML is installed side-by-side (meaning a user might have v3, v4, v5 and v6 - so it's upto the developer to specify the required version e.g. MSXML2.XmlHttp.6.0)

    Anyway, according to MS we should only be using MSXML.XmlHttp.3.0 or  MSXML.XmlHttp.6.0...

     WukFit
     

     

  • Re: Difference between MSXML2.XmlHttp and Microsoft.XmlHttp ProgIDs

    08-13-2007, 11:55 AM
    • Member
      8 point Member
    • AGS777
    • Member since 06-16-2006, 8:20 AM
    • Posts 14

     WukFit,

    Thanks, but still nothing new. The link you have mentioned is already present in the second post of the thread.

    And I still continue to believe that MS folks writing Microsoft AJAX Framework had some reason to verify both ProgIDs.

           var progIDs = [ 'Msxml2.XMLHTTP', 'Microsoft.XMLHTTP' ]; 

    But probably this secret is doomed to stay unrevealed.

     Alexei


  • Re: Difference between MSXML2.XmlHttp and Microsoft.XmlHttp ProgIDs

    08-13-2007, 12:35 PM
    • Member
      14 point Member
    • Wukfit
    • Member since 08-13-2007, 2:59 PM
    • Posts 7

    OK I guess I'm not understanding the questions you want answered so I'll try to answer each of the questions in your initial post....

    Q: Could someone explain me the difference between following version independent ProgIDs: MSXML2.XmlHttp and Microsoft.XmlHttp?

    A: There is no difference, Microsoft decided to change the namsepace from Microsoft to MSXML2 - they will both instantiate the same version of the MSXML object - which could be MSXML 2.0, MSXML 2.6 or MSXML 3.0

    Q: Which one is preferable or just newer?

    A: MSXML2 is the newer namespace - implemented in v3.0 (so this is the prefered one), version 2.x used the Microsoft.XMLHTTP namespace

    Documentation can be found here 

     In a subsequent post you ask why most/all of the major client-side frameworks specify both MSXML2.XmlHttp and Microsoft.XmlHttp - I would suggest it's a lack of knowledge on behalf of the creators of those frameworks and/or documentation from Microsoft (the blog entry I linked to was only written less than a year ago). So I guess the writers of those frameworks were thinking they were supporting older versions of MSXML.

    Why you would use MSXML2.XmlHttp.3.0 over Microsoft.XMLHTTP would be the fact that MSXML2.XmlHttp.3.0 guarantees version 3.0 where as Microsoft.XMLHTTP might be version 2.0 or 2.6 (as when installing a newer version the older one used to be overwritten) depending on the browser/os - however IE 6 comes with MSXML3 so I'm not sure how many of the older APIs there are out there.

    Hope this helps.

    Wukfit

  • Re: Difference between MSXML2.XmlHttp and Microsoft.XmlHttp ProgIDs

    08-16-2007, 5:57 PM
    • Member
      8 point Member
    • AGS777
    • Member since 06-16-2006, 8:20 AM
    • Posts 14

    Wukfit,

     First of all, thanks for the detailed answer. I am sorry for not making my self clear in the last post.It was some time ago since I asked the question and I clarified almost all the related question to myself since then. I read all I could find, including, of course, the post from Microsoft about using right version of MSXML that I read back then in October 2006 and posted here when recalled about this thread.But it is just to explain why there is nothing new for me in your previous answer. The only question that was not answered is "... why all major client-side frameworks test both version-independent ProgIDs".The question still exist and, sorry, I can't agree with you on this subject. I am not talking about various Ajax frameworks at the moment (though I don't think that the major ones are written by uninformed authors). I am talking about Microsoft AJAX Framework. The code snippets in my posts above were taken from this library.

    And I think it would be very naive to think that members of ASP.NET AJAX team don't know their business.

     

    Best regards,

    Alexei

  • Re: Difference between MSXML2.XmlHttp and Microsoft.XmlHttp ProgIDs

    08-16-2007, 7:26 PM
    • All-Star
      20,624 point All-Star
    • A1ien51
    • Member since 05-06-2005, 6:46 PM
    • MD USA
    • Posts 3,788

    Here is the answer: They are trying to support Win98 with IE5.x!  Well I doubt they really are, but that is what it comes down too. 

    Not sure if this link [http://support.microsoft.com/kb/269238] was ever post above. I did not see it unless I missed it. The link shows all the versions, info about them, browser support, how you got it, etc.


    Now why would you use the Microsoft namespace in the detection? When I worked at a website where mom and pops would come to with there old machines, there was an a lot of people coming in with window 98 machines with IE5.5. I was surprised at the numbers and wondered what version of AOL they were running!!!   So if you need to support IE5.5 and under that are not upgraded to the latest and greatest, Microsoft.XmlHttp is needed since it lacks the MSXML2 namespace. There are a bunch of JavaScript version issues with running IE5.X so I am sure most code now a days would fail anyay so supporting Microsoft.XmlHttp is rather a waste of time! I rember the fun with IE5.5 to IE6 with new features added to the arrays! Using Array.prototype fixed all of those wonderful holes! I highly doubt anyone is really doing that anymore.

    As mention already in this thread, the Microsoft.XmlHttp means the same thing as  MSXML2.XmlHttp where  MSXML2.XmlHttp is supported. The only reason why Microsoft did this was to support  backwards capability when they changed the namespace. They still do it today since we still visit websites from back in the 1995-1998 era! Seeing Microsoft.XmlHttp is sort of like seeing code looking at document.layers, document.all, and blink tags. Someone still wants to support Netscape4.x, just incase there is that one usr reliving the good ole days of browser wars.  "640K ought to be enough for anybody."

     Personally I specify the 3 and 6, but when I want to have fun in a demo, I start up my virtaul machine with Windows98se and IE5.0 and show people that it has been around for a long time. :) Hopefully in the future we can get away from the ActiveX for good once the IE6 is put to its grave! I been seeing numbers of IE6 drop on website status and moving to IE7. Too bad in IE7, native support can be disabled! 

    Man I almost forgot about this topic. LOL, maybe I missed the point again for the 100th time.

    Eric

Page 1 of 2 (29 items) 1 2 Next >