New Blob Constructor in IE10


IE10 in Windows 8 Release Preview adds support for a Blob constructor. We earlier wrote about and demonstrated IE10’s support for a BlobBuilder interface, an in-progress interface in the File API: Writer W3C Working Draft. This interface enables developers to work with files on the client PC. Recently, the W3C working group deprecated the BlobBuilder interface in favor of a new Blob constructor. This post explains the differences between the two.

Comparing Blob Constructor and BlobBuilder Interface

Both the Blob constructor and the BlobBuilder interface enable Web developers to create files on the client. The difference is in the syntax. Whereas BlobBuilder requires each portion of the blob to be appended during a separate call to the append method, the Blob constructor can take an array of arguments. Here’s how to create a simple text file using both BlobBuilder and the Blob constructor:

// using the Blob constructor

var textBlob1 = new Blob(["Hello", " world!"], { type: "text/plain", endings: "transparent" });

 

// using the MSBlobBuilder interface

var bb = new MSBlobBuilder();

bb.append("Hello");

bb.append(" world!");

var textBlob2 = bb.getBlob("text/plain");

The Blob constructor takes two arguments, the array of content to put into the blob and an optional dictionary object which can include two members, type and endings. The array of content for the blob may contain blob objects, text strings or array buffers.

Recent versions of Firefox and Chrome also support the Blob constructor. IE10 still supports the prefixed MSBlobBuilder interface in addition to the new Blob constructor. At this time, Firefox and Chrome also support their vendor-prefixed BlobBuilder interface.

Feature Detecting the Blob Constructor

As with all new features, we recommend using feature detection to determine if the Blob constructor is available in the browser your code is running on. You can use something like this:

if (typeof Blob !== "undefined") {

// use the Blob constructor

} else if (window.MSBlobBuilder || window.WebKitBlobBuilder || window.MozBlobBuilder) {

// use the supported vendor-prefixed BlobBuilder

} else {

// neither Blob constructor nor BlobBuilder is supported

}

If you run the BlobBuilder Test Drive demo with the F12 developer tools console window open, it will log whether the blobs are being built via the Blob constructor or via BlobBuilder.

The addition of the Blob constructor to IE10 enables you to write standards-compliant code that works across browsers.

—Sharon Newman, Program Manager, Internet Explorer

Comments (50)

  1. warrens says:

    This is good progress on the File API, both from W3C and MS.  

    But will MSBlobBuilder be removed?  Seems pointless to keep it around with the final release of IE10.

  2. Blob Constructor normalization says:

    I made the following short script which will normalize existing BlobBuilder interfaces to the new Blob constructor interface and also normalize prefixes. The Blob constructor interface exposes the same total functionality as the BlobBuilder, so it's possible to fully shim in support for `new Blob` if you have `BlobBuilder.

    gist.github.com/2793006

    void function(){

     function resolvePrefix(name, o){

       o = o || window;

       var cased = name[0].toUpperCase() + name.slice(1);

       return ['', '', 'Moz', 'WebKit', 'Ms', 'O'].reduce(function(r, s){

         return r || o[s + name] || o[s.toLowerCase() + cased];

       });

     }

     var VendorBlob = resolvePrefix('Blob');

     if (VendorBlob === undefined)

       return;

     VendorBlob.prototype.slice = resolvePrefix('slice', VendorBlob.prototype);

     try {

       new VendorBlob;

       return window.Blob = VendorBlob;

     } catch (e) {}

     var VendorBlobBuilder = resolvePrefix('BlobBuilder');

     function Blob(parts, properties){

       var builder = new VendorBlobBuilder;

       var type = (properties && properties.type) || '';

       var endings = (properties && properties.endings) || '';

       if (Array.isArray(parts)) {

         parts.forEach(function(part){

           if (typeof part === 'string')

             builder.append(part, endings);

           else

             builder.append(part);

         });

       }

       return builder.getBlob(type);

     }

     Blob.prototype = VendorBlob.prototype;

     window.Blob = Blob;

    }();

  3. Microsofts Monday July 23rd Agenda says:

    Microsofts Monday July 23rd Agenda

    1.) Fix the IE Blog Comment system

    2.) Post an update about full flash support in Metro without the censorship list

    3.) Windows 7 version of IE10 beta so that developers can actually test IE10 – something they can't easily do now

    4.) Publish a post regarding Metro support of other browsers – will we be able to upgrade IE10 Metro to a Metro version of Chrome or Firefox?! Especially if that is the only way businesses and users can get complete flash support

    5.) Publish an updated UserAgent string for IE10 that indicates if IE is running in Metro mode or not

    All of this should be accomplish-able by lunchtime.

  4. ieblog says:

    @warrens: MSBlobBuilder will remain in IE10 to support sites and apps which may have adopted it between its first introduction and Windows 8 Release Preview.

  5. AlfonsoML says:

    If MSBlobBuilder remains, at the very least it should put a warning in the console advising not to use it and switch to Blob instead. And state clearly that it will be removed in the next release. The shorter that API is out there, the less chance that someone missuses it.

  6. Yannick says:

    @Microsofts Monday July 23rd Agenda: Are you planning to post this comment on every blogpost? By the way: its the July 21st.

    @TS: Nice! Date for launch of IE10?

  7. mSri says:

    @Yannick

    Hey, he is right. It's weekend. 21st & 22nd are holidays. Next working day is 23rd.

  8. Martijn says:

    Good and all, but not a soul can use it, since YOU REFUSE TO RELEASE A WIN7 VERSION.

    Opera releases snapshot at least weekly, and those snapshots practically run on every existing system.

  9. Klimax says:

    Calm down, IE10 will be RTMed for Win7 too, it's just dev version not available.

  10. Adam says:

    Microsoft you are seriously messed up!!!

    If you created a temp MSBlobBuilder implementation in an alpha/beta browser while it was under construction and now it's done then SHIP IT with the final unprefixed name!!!

    No Exceptions!!!!

    You only maintain legacy support for RTM'd features.

    Do not waste our time with adding proprietary features to IE10 that are going to be removed later when you haven't shipped yet!!!

    Heck you haven't even released IE10 beta for developers yet!! (win7 version that we've been waiting for!!!)

  11. Metro sickness says:

    @Klimax

    If Microsoft wants to sale at least some Win8, they shouldn't release IE10 on Win7.

    I say that because I don't see any other reason why a sane person would downgrade their OS from win7 to Win8.

  12. Eric says:

    It doesn't matter if they release ie10 on windows7, because if ie10 is so slow as ie9 on win7 then the don't have to release it, because people will use googlechroome or firefox or opera instead, much faster and it will not slow down while surfing as with ie9 + ie10

  13. Larry says:

    The lack of a version of IE10 for Windows 7 shows developers several things about Microsoft.

    1.> Microsoft doesn't care about developers at all

    2.> Microsoft is blissfully ignorant of the fact that 100% of windows user are on a desktop or laptop… 99%+ are not touch enabled

    3.> Microsoft is betting the farm on windows 8… Which has got nothing but bad reviews from anyone that isn't in Microsofts pocket – even Jeff Atwoods post failed to attract anything but criticism from all the developers that left comments http://www.codinghorror.com/…/betting-the-company-on-windows-8.html

    4.> The hybrid mix of a tablet OS on a desktop and a desktop OS on a tablet is a recipe for disaster.

    5.> Even well versed computer users find windows 8 confusing and cumbersome to use

    6.> Microsoft has actively shut down all user efforts to fix the win8 boot process to skip metro and get straight to work… This shows ZERO COMPASSION for users that vigerously oppose being forced to use metro.

    7.> Not publishing the registry settings for businesses, enterprise, and knowledgable consumers and IT administrators to turn metro off by default is an insult all of us

    8.> the lack of a useful user agent for developers to distinguish metro vs desktop is beyond frustrating! Developers depend on signatures in the user agent string to provide a better experience based on the browser and now in IE10 it is critical in order to inform visitors that if they opened a web application in metro by mistake that they need to reopen it in desktop IE

    9.> shipping finished products with MS-implimentations shows that MSFT is still attempting to get Ie-only code into production websites which the web development community will not tolerate IE6 nearly killed the Internet.

    10.> Staying absolutely silent when developers all over this blog are asking questions about IE10 that need answering is rude, disrespectful and shows an arrogance that is beyond belief… If I didn't absolutely have to support IE I would drop it entirely not just because of the hundreds of bugs but because Microsoft shows daily that it doesn't care about us developers.

    All Faith In Microsoft now lost

    Larry

  14. Klimax says:

    @Metro sickness:

    It doesn't work that way. (Not on consumer side, nor corporations side)

    Second, Win8 is no downgrade, that's just idiocy stuck in some heads. (And quite telling too; at least that said person is stuck…)

  15. Walter says:

    For all those Microsoft fan boys that claim there is nothing wrong with metro please answer this question.

    When I boot my windows PC I want to go straight to my critical desktop apps (web browser, email, text editor, console, 3D modeling software, photoshop etc.

    Please tell me how inserting any number of steps that I have to go through before I can access my desktop is an upgrade!?!?

    This is the problem… And Microsoft is making this worse by forcefully removing all abilities to circumvent metro.

    #MicrosoftDoesntListen

    #WindowsMetroFail

  16. slyi says:

    The blob support is great. I created a basic sample creating dynamic audio on jsfiddle.net/…/HkNXk

  17. Eric says:

    can someone please tell us when IE10 will be released in windows7 as Beta ??? ??

  18. pmbAustin says:

    I'm sorry, @Walter, but I really don't understand your problem.

    Boot up is MUCH faster.  Directly to start screen.  Your commonly used desktop apps are then right there on that screen… click and go.  Any other apps you use in desktop are pinned to the taskbar.  There are no "additional steps".  You're still getting to your apps FASTER than before.  I don't undrstand what you're complaining about.

  19. Walter says:

    @pmbAustin – Boot up is faster… thats great…

    However I want to get to my desktop so I can choose which apps I want to launch… either from icons on my desktop or from the start menu etc.

    As a power user I have no (read: Nada, Zip, Zero, Zilch) interest in seeing anything in Metro.  I have full access to 3 hires monitors… why on earth would I want to waste a second looking at big dumb tiles that only show a tiny overview of what I want to see.

    If you can show me how I can skip seeing and having to use any part of Metro you will win a prize!  however so far there has been no solution to this problem created by Windows 8.

  20. Harv says:

    Before we get into new concepts has this basic CSS stuff been fixed in IE yet?

    Creating style rules on the fly fails under numerous conditions ":focus", ":active" "input[type=password]" etc.

    This selector works:

    document.styleSheets[0].addRule("body", "display:none");

    The following selector won't work:

    document.styleSheets[0].addRule("body>table:nth-of-type(2)", "display:none");

    You get an "Invalid argument" error message.

  21. pmbAustin says:

    @Walter, stop making mountains out of mole-hills.  It takes you less than a second to click the Desktop tile to get to the desktop.  Or it's one keystroke away if you don't want to use the mouse and hunt for the tile.  And on a multi-monitor set up, metro is only on one screen anyway (and you can move it to whatever screen you want, including over to the side).  Save 8 seconds on boot, add one second to hit a keypress or click the desktop tile, you still come out 7 seconds ahead.  And it's not like you're constantly booting like it's a major part of your day… So what are you whining about?  I have no idea.  I really don't.  I'm a power-user, and a developer too.

    Besides, there's "Start8" from Stardock which is an add on you can buy that will let you boot directly to the desktop.  So there's even less reason for your whining because you WILL be able to do exactly what you want, though there's really no reason to need to do that.  Arrange your start screen with your most used apps.  Or just have one tile on it ("Desktop") if that's all you want.  Pin the rest of your apps to your task bar (which can now span multiple screens), or put short-cuts on the desktop.

    Again, it's NOT a big deal, certainly not this show-stopper you're trying to make it out to be.  I have no idea what it is you're actually objecting to other than "it's different (whine!)".  Spend even a few minutes getting used to it, and you'll find yourself every bit as productive if not more so.  Sure, you might have to learn a few new keyboard short-cuts.  Big deal.  The tiny investment is more than worth it, ultimately.

  22. jens says:

    Hurra HTML5 is an standard . Or not

    lists.w3.org/…/0119.html

    Startup into Metro Mode is the hell for an Desktop User.  .

  23. Ed says:

    @pmbAustin – you are obviously not a power user or you would be up in arms about this too!

    I don't want metro, we don't want metro, no one wants metro!!!

    If you are part of the minority group that thinks metro is awesome then congrats and we hope the 3 of you have a great time together in "launcher" land.

    4 words…

    We – Don't – Want – Metro!

    Stop trying to convince us that we do!

    We all have 2 monitors now… Why would I want to use one scren to show black?

    Can I please have it so that when I scroll up and down that the screen scrolls left and right!

    Can you please hide the start button on me? It was always to easy to find right there on the screen!

    Oh can you hide all my open apps too! That way I never quite know where I am or if I have an app open.

    Watching flash wrapped audio, video and multimedia content in my browser is too easy and convenient – can you please make it so that I have to click a confirmation message then leave the site I'm logged in on and open up my browser again in a different mode, re-login to my site and then.. Oh wait… Where was I?! I was going to watch something wasn't I?!

    The amount of "useless" in metro/win8 is beyond nuts.  Yes you're 5 years late to the tablet game!! Don't make your desktop users suffer cause you are desperate to try and convert users to your new device.

    Don't even get me started on the ARM fiasco… There's a help desk nightmare just waiting to explode!

  24. Microsofts Tuesday July 24th Agenda says:

    Microsofts Tuesday July 24th Agenda

    1.) Fix the IE Blog Comment system

    2.) Post an update about full flash support in Metro without the censorship list

    3.) Windows 7 version of IE10 beta so that developers can actually test IE10 – something they can't easily do now

    4.) Publish a post regarding Metro support of other browsers – will we be able to upgrade IE10 Metro to a Metro version of Chrome or Firefox?! Especially if that is the only way businesses and users can get complete flash support

    5.) Publish an updated UserAgent string for IE10 that indicates if IE is running in Metro mode or not

    All of this should be accomplish-able by lunchtime.

  25. pmbAustin says:

    @Ed, I'm a total power user.  I'm a software developer.  I have two dozen windows open most times, spread across two screens.

    And I think you're being ridiculous.  You must not be much of a "power user" if you cannot figure out how to configure and optimize your desktop experience in Windows 8.  Seriously.

    I have two monitors.  I have no idea what you're saying when you say "one shows black".

    And your whine about the start button is utterly ridiculous.  You have the Windows key on the keyboard.  And if your hand is on the mouse, moving to ANY of the four corners can get you back to the start screen.  There is no reason to waste task-bar realestate for yet another completely redundant way to get to the start screen.

    NO idea what you're babbling about with "hiding all my open apps" either.  You can easily see them any number of ways.  But since you "hate metro", then the task bar is right there showing all your desktop apps just as it always did.

    All I can say is that it's clear you've made zero effort to actually use Windows 8 on a desktop.  It works fine.  It works great.  You don't need to have any Metro apps.  You can configure (easily!) all apps to launch on the desktop… images, videos, browser, etc.  Pin your most used apps on the taskbar, add a few short-cuts to the desktop fi you want, and configure your start screen to show just what you want and delete everything else.

    I still have no idea what you're ranting and whining about.  Almost nothing you've said is even remotely true.

  26. gabe says:

    do not track wont work in internet explorer it should be something consumers need to choose for themselves not the defuailt

    i wish the us goverment would make such a move illegal its worse then anything ieteam has ever done (in fact this makes me think they way they stagnated on ie6 and waited years for ie7 was perhaps a good thing if this is the crap they pull)

    no one will honer do not track it will just be a waste of bandwith code and time and should just be abandoned and left to third party apps to handle

  27. Eric says:

    We have updated the release date for IE10. It looks like we will get the IE10 RTM very soonish.

    Microsoft will supposedly release Windows 8 RTM in early August. Together with the RTM release ships a copy of IE10 RTM.

  28. Jacob says:

    @Eric – OMG! Are you serious? Neither Windows 8 nor IE10 is ready for prime time! please point to your source!

    We haven't even had the IE10 Beta on Windows 7 yet! (when the f_u_d_g_e was Microsoft thinking we were going to do ALL OF OUR TESTING?!?!?)

  29. Gill says:

    @pmbAustin (get over yourself dude!)

    I've seen and talked to several developers and power users that have tried out Windows 8. (~20 so far)

    Its a small sample size but the verdict was the same.

    New Task Manager – Awesome!

    New Boot Time – Awesome!

    Everything else that is new or has changed in Windows 8 (and especially Metro) – Hate it with a burning passion!

    If I extend my sample size to what I've heard and read online?… by users that have actually *tried* it and suffered through it for a while.. they feel similar but as many are not power users the "hate" for it is much less.

    Windows 8 is the new Vista – only worse.

    #Windows8 #TheElCaminoOS

  30. pmbAustin says:

    @Gill,

    Most people hate change with a burning passion, especially if it affects muscle-memory.  Get over yourself:  take a few minutes to actualy learn the new system before bashing it, and you might surprise yourself.

    You're wrong.  Other people are wrong.  Yes, I'm not being arrogant in saying that.  People HATED Windows XP when it came out.  Now people say it's the best thing ever.  What's changed?  FAMILIARITY.  Nothing more.

    I know someone who HATED the Office Ribbon with a passion.  Kept fighting it.  For months and months, nothing but curses.  Finally, I over-hear it, sit down with her for litterally just five minutes… and now she likes it.  I just had to point out a few things to her..

    Sometimes change is something you have to ALLOW yourself to wrap your mind around.  Open mindedness is a good thing.  Closed-minded bashing of something just because it's different is not a good thing.  There is method to the madness here, there is a bigger picture and a level of consistency.  I didn't love this stuff at first.  And there are still several issues I have with it (but none of them involve most of the whinging around the startmenu/button/screen, which is all just silly and ridiculous and dumb).  But I am every bit as productive under Win8 (with no touch hardware) as I am on Win7 (which I love).  In fact, I frequently find myself wishing for some Win8 features when I go back to using Win7.

    I dont' use any metro apps (I feel most of them are pretty lame at this point), though I do love the game "Wordament".

    I do hope that Microsoft is going to have a really good little tutorial that runs the first time you fire it up, to give people the big picture, to help them understand how to think of things, and thus how to find things.  I still shake my head at people who have been using Windows 8 for a long time, yet still *** that they can't search for anything in the Windows Store.  It just shows me how little effort they've made in understanding what they're using.  Of course they hate it.

  31. Marshall says:

    @pmbAustin – you've hit the nail on the head… There are no good Metro apps because there can't be an really good Metro apps… For a desktop!

    I think Metro will be great for tablets! It's the correct, simple UI for a touch based OS on a tablet.

    Simple consumption apps for a consumer on the go, at the airport, on the bus, at lunch, whenever.

    However on a desktop where you want to get serious work done, little touch tic-tac-toe, checkers, weather, twitter, and cut-the-rope games/gadgets are just a waste of time.

    I suspect that when win8 gets out, productivity across the board will drop…

    To sum up:

    I love Metro on a Tablet, but think it is a complete waste of disk space on a laptop.  I will be installing whatever hack works to get rid of Metro and I won't look back… As there won't be a reason to since it doesn't offer desktop users anything they need – its pure fluff.

  32. Jean says:

    @Marshall, then "don't use Metro". Treat is like a start menu. Consider yourself blind for a moment, and try out ALLL THE SHORTCUTS YOU ARE FAMILIAR WITH FROM WINDOWS 7 ON WINDOWS 8.. yes they all work… then whats the problem???

    Hit Start > type cmd press enter.

    Try it in Windows 7 and 8 both work the same.. You can actually type ON the Start screen .. like you type on start menu.. For YOU & ME Start screen = start menu.. Use desktop apps .. run desktop version of everything.. use shortcuts and when you leave your couch press WindowKey + L so you dont see the only aspect you dont like… BUT there are tons of improvements in Windows 8 otherwise.. in the areas of performance boost, memory management, task management, file system, builtin ISO/VHD support, boot from VHD, built in antivirus etc.

    In reality, Start screen offsets the functionality of start menu and has much more features.. it acts like a core interface for tables and mobile devices…developers can publish their web/silverlight/xna/dotnet/c++ apps offline as metro app… the whole metro mode is using hardware accelerated graphics (means you –a developer– dont need to do anything for leveraging GPU resources) your metro apps can consume services like roaming, sharing, versioning, resuming etc.. your can earn revenue via ads and selling apps in wind8app store for different form factors.. your apps can consume various hardware devices like wireless printers, scanners, cameras and there's (much(much)) MOAR to discover…

    if you are a software developer.. then for a change consider yourself an unbiased person and try VS2012 and build a simple metro app with the language of your choice (c++,c#, vb, html/javascript).. after that you will understand how easy is for a developer to port the project from other platform to windows 8 metro.. By the time its released 100s of thousands of apps would be sitting in app store. The release date is October 26 2012 and the price is USD=40.00/ if you already have genuine XP/Vista/7.. not bad right?

    — Jean de La Hyre

  33. Prior Semblance says:

    I am unable to test IE10, does it support the CSS3 tab-size property?  If not, the IE team should consider adding support =]

  34. Nick says:

    I develop apps for iOS, BlackBerry, and Android.

    I was going to port them to Windows 8 metro too but Microsofts total lack of responses to all the questions on this blog has made me bitter.

    I will therefore not be porting any of my apps/games to Windows 8.

    This bridge has already burned to the ground.

  35. acidcode says:

    I think Microsoft's assumption is that every developer who wants to check out the beta bits of IE10 simply installs Windows 8. Because that might not be a good decision on a production machine, I think they assume you simply virtualize it.

    Well, it works, but seriously: This is hell of a lot of overhead just to test a new browser release and not very elegant. Why would anyone virtualize a whole OS just to check out a browser when a simple platform preview binary would do its job? And do they really think developers will stand in line to upgrade to Windows 8 as soon as its available? I don't think so. Especially developers will stick with Windows 7 (or have to because of corporate policy), at least the ones I know and they have no intention to develop for Windows Runtime (why would a web developer care about apps when he can accomplish the same in the browser?), and that's because all the changes to the desktop environment bring zero benefit over the traditional approach. The mouse and keyboard solution they came up with is a joke. Hot corners, seriously? A crippled Start menu substitute called WinX? This feels very much like a compromise rather than a sophisticated concept.

    I remember when NT was developed and the mantra was "let's make it as portable as it can be". Well, where are we now? IE10 seems to be not even portable across it's own platform, it only seems to work on Windows 8 at the moment, nothing else. It's never a good idea to integrate a piece of technology too deep into a specific platform, at least in my opinion.

    Now, I guess there are two scenarios: We will get IE10 on Windows 7 when it hits RTM with Windows 8 – no beta, no preview, no nothing: Straight to RTM for Windows 7 as well. Or, more likely, there will be a beta or preview release for Windows 7 because although it will be finished for Windows 8, it might require additional work to port it back to Windows 7 (by removing all the Windows 8-specific bits and they better test how that works out). Maybe IE10 on Windows 7 will also lack some features that are Windows 8-exclusive.

    Well, we'll see.

    PS: How many releases will they need to finally make CSS work properly?

  36. Prior Semblance says:

    @acidcode

    Actually all my attempts at virtualizing windows 8 failed, it doesn't like something on my laptop.  But anyway, while this prerelease situation has been less than ideal, they did confirm a very long time ago that there would be a release candidate version for Windows 7 before IE10 is done.  blogs.msdn.com/…/html5-for-applications-the-fourth-ie10-platform-preview.aspx

  37. Mysticial says:

    @Nick, I don't see your question? What are you are whining? Smokes and mirrors? What exactly made you bitter? The level of detail provided on MSDN library is neither available in Android documentation nor Mac's Objective C Library. If its something new for you, then I can show you the errors on Mac Dev Library.. (ObjectC's official documentation has number of errors.. Then the cocoa framework documentation has enough discrepancies)

    Do you know a basic thing that Blog is not a place to ask the offtopic programing questions? You don't know that? And  since people are not answering your concern on blog, you started whining! You are call yourself a developer? Maybe you are but I am sure a highly arrogant kind… Secondly, the visual studio blog is meant for technical discussion about software development blogs.msdn.com/…/visualstudio I wonder what is the developer like yourself asking around and overkilling himself on IE blog?

    BTW, what is your question about Metro app development? Try the following platforms:

    – social.msdn.microsoft.com/Forums/en-us/category/windowsapps

    – stackoverflow.com

    – Podcast run by community enthusiasts themetrodevelopershow.com/

    Further Windows 8 Resources:

    – msdn.microsoft.com/en-US/windows

    – msdn.microsoft.com/en-us/windows/apps/br229512.aspx

    – apps Samples -> code.msdn.microsoft.com/…/windowsapps

    – tools -> msdn.microsoft.com/…/br229516

    Windows 8 Video tutorials:

    – channel9.msdn.com/events/BUILD/BUILD2011

    – channel9.msdn.com/Events/Windows-Camp/MSDN-Webcast-Series-Building-Windows-8-Metro-Style-Apps

    – channel9.msdn.com/Events/Windows-Camp/Developing-Windows-8-Metro-style-apps-in-Cpp

    – channel9.msdn.com/Events/Windows-Camp/Windows-8-Developer-Camp-On-Demand

    More on Windows 8 development can be found on:

    bing.com

    youtube.com

    Now tell me honestly, did you actually have any question or you were just screwing around the  IE blog? Do you really think a member of IE team would tell you how to develop a metro app? Are you even a developer? Can you prove it? What is your handle on stackoverflow (can you undisclose your SO id)?

  38. Steve says:

    @Mystical re:Nick  I think Nick is like all developers in that he builds web content too (even if just to provide a site to support mobile apps)

    If you follow this blog since IE10 was announced and the features/bugs/changes that have been brought up then you know that there are a lot of unanswered questions right now.  In fact here's a few of them (in no particular order)

    1.) Full Flash Support in IE10 Metro (yes or no?)

    When Microsoft indicated that flash would be supported they also indicated that it would only be possible through an extremely convoluted process that had several fatal flaws:

    a.) Private sites (B2B, B2C, Enterprise, Intranet, and any site that requires a signin) can NOT apply to be included in the whitelist.

    b.) A whitelist is absolutely the WRONG way to implement a worldwide filter for EXCLUDING the content that you feel won't work well in Metro.

    c.) Microsoft controlling a master whitelist is a MASSIVE conflict of interest.

    d.) The 10 week delay in getting site content added to the whitelist is COMPLETELY unacceptable in the modern REAL-TIME world.

    e.) Having to run a huge matrix of tests and then disclose the internal components of your site in order to get approval to run content that has run perfectly fine on every browser out there for a decade seems EXTREMELY anti-open-web

    f.) No information was provided for how often content would need to be re-scanned, or if this was a 1 way ticket to eternal access (and thus defeating the entire purpose of the list)

    g.) Submitting our requests REQUIRED that we test on PHYSICAL hardware that is CURRENTLY not even available (not to mention the FINANCIAL cost of this requirement

    h.) and so many more issues

    2.) Plugin content redirection (From Metro to the Desktop)

    It has been discussed and shown that there are many issues with Metro IE and Desktop IE not talking to each other and the problems is causes:

    a.) Session data is not maintained thus users that get bumped from the Metro IE browser to the desktop loose their Login, their settings, and more importantly… in many cases… the page they were on.

    b.) Plugin content that is served up in an iFrame doesn't trigger the "You need to use the Real IE Browser to see this content" notification

    c.) Metro IE is left as a black page when the user returns from the desktop (not user friendly and a bad user experience)

    d.) Plugin content that is added in real-time through JavaScript doesn't always trigger the notification bar

    3.) Metro IE doesn't support other JavaScript features that the desktop version does – where's the list that we can use to verify that our content will still work?

    e.g. window.prompt() is no longer supported.  It is still defined as a function and you can still call it but it fails silently without any indication to the developer that it failed, nor halted script execution before getting a response.

    4.) User Agent

    We've indicated very clearly that the current proposed user agent for IE10 is NOT SUFFICIENT.  It does not indicate whether the user is in Metro IE or desktop IE (something we NEED to know in order to be able to triage issues and or provide notifications to our users that they should switch from Metro to the Desktop for full support).

    In addition no user agent info was provided for Windows 7 which is something else we'll need to test.

    5.) Windows 7 version of IE10

    Developers don't have extra hardware lying around to install Windows 8 betas on just to test out IE10 rendering and behaviors.  As a result, 90%+ of the developer community HAVE NOT TESTED A DARN THING in IE10 yet because they CAN'T!

    You know full well that developers find all kinds of issues and bugs in IE when a new beta/RC is released to the masses.  You're currently under a false sense of comfort that IE10 is stable and near-production ready – something that I'm almost positive is not the case… it would be epic if Microsoft didn't mess up at least a dozen things in this new version… but we can't test yet.

    6.) NonStandard implementations

    Microsoft has announced many new additions to IE10 that are vendor prefixed.  If the items are "bleeding edge" and the specs at the W3C or ECMAScript have not been finalized then OK… however some of the things you are adding have been finalized thus there is NO REASON WHATSOEVER to include a vendor prefixed implementation! Stop ruining the Web!

    7.) This IE Blog Comment Form

    I think its been mentioned at least a 1,000 times that the comment form on this blog is broken!  We've told you why it is broken (completely broken ASP postback technology), how it is broken and we've told you what the fix is however you have not even acknowledged that there is a MAJOR issue here and it is INFURIATING to us developers/readers that YOU DON'T EVEN CARE to address or even acknowledge the issue.  I know full well just writing this post that I will HAVE TO COPY IT TO MY CLIPBOARD OR THE ENTIRE MESSAGE WILL BE LOST!

    8.) The deafening silence

    Again this has been said many times.  Pete L. and Dean both promised transparency and open communication with developers.  You said you weren't going to go Silent Running on us, hide in your Microsoft Silos and ignore the community.  By not responding to developer concerns you have ALIENATED US and we are not happy about it.  We are holding onto our grudges now and the "hate" for not just IE, but Microsoft at large continues to grow.

    I suspect these and many more reasons are why developers are NOT INTERESTED in building Windows 8 apps or anything for the Microsoft Phone.  I personally feel the same.  I will not being porting any of my apps to Windows Phone or Windows 8 tablets until Microsoft does a 180 degree attitude adjustment.

    Steve

    10+ years Web & Mobile Application Developer

  39. James says:

    Its sad to see what the IE Blog has become.  A simple post about the new Blob Constructor has become a discussion, or rather a gripe session, on all the short-comings of IE.  As a developer, I am by no means a fan of IE, but do appreciate the leaps forward it has taken.  Its too bad that the IE team cant wrangle this thing in and open a dialog with developers on what concerning us.  Was it not Steve Ballmer who said "Web developers, Web developers, Web developers!"?  So what happened?  As a developer, I feel left behind; as if what concerns me about IE and the future of the web is unimportant to MS and the IE team.  It quite apparent that either this blog is not an efficient tool for the IE team to communicate to its developers or the team simply doesn't have time/desire to respond to concerns.

    So whats the solution?  I for one am tired of griping and reading others complaints over and over again and getting little to no response from the IE team.  Should we abandoned this blog and leave it to IE team?  Should we start our own community/developer blog to help one another through the myriad issues with IE and Win8?  I for one, am interested in hearing any idea that can move us forward and make us more productive.

  40. Xero says:

    @Steve, about 7.) This IE Blog Comment Form

    The blog system running on blogs.office.com, blogs.msdn.com, windowsteamblog.com etc. is a product of "Telligent" corp.

    I have reported this bug to Ted Johnson -> Microsoft IE blogger. He reffered me to the guys responsible at telligent team. I sent them the whole list of bugs including:

    For the anonymous users:

    – The session timeout (15 minutes for anonymous users and unlimited for signed-in users)

    – Lack of error & warning notifications

    – Lack of retaining the message in the <textarea> when the page is refreshed without posting your comment

    – If the message was moderated out due to inappropriate statement show notification while retaining the message in the textarea with "consider-reviewing" notification, so the user can edit

    …yada yada

    The bug reports on telligent issue tracker are still opened (T00020087 & T00020932  on 04/26 and 06/23 respectively). Never heard back from them. If you know someone personally in Telligent, please ask him to escalade these annoying bugs in their product.

    Talking about a decent blogging system, there are number of blog system example (with source code) on MSDN tutorials for ASP-MVC3 Entity Framework alone!! So why don't they just deploy one of their own example rather buying the product from crippled Telligent… Looks like someone at Microsoft has made a fishy deal with Telligent guys.. *mutual benefits*.. Microsoft needs to laywer up and sue his caboose… (pardon my French)…

  41. Xero says:

    @Jean, about 6) NonStandard implementations

    You mean Microsoft, LIKE OTHER VENDORS specially GOOGLE and APPLE (who have implemented lot of new/under development  vendor prefix CSS properties and JavaScript entites specific to their devices), have implemented some yet-to-commit-in-W3-recommendations entriers like HTML5 grid etc., then its not a big deal man! Have you asked Mozilla why they had implemented NonStandards like :-moz-ui-invalid which neither W3 has any "hint" in any proposed paper nor any other browser support it! Hey Apple/Google, why did you implement NonStandards like  ::-webkit-validation-bubble, —webkit–animation–delay, ::-webkit-validation-bubble-message etc. "specific" to your browsers?

    You really sound like this pattern is exclusive to Microsoft, although Opera, Mozilla, Apple and your beloved <3"Gooooogle"<3

  42. Xero says:

    @Steve, (the last post was addressed to you as well).

    I totally agree with you on point #2 and #4, I suppose you have submitted the bug report on the issue tracker at http://connect.microsoft.com? Please send us the link so we can vote up. You see blog comment is not a place to send a bug report.  

  43. Xero says:

    @Steve, about point #6 again. IE is gearing towards dropping prefixes as soon as the working draft reaches in recommendations stage. Even IE10 previews has support vendor prefixed version as well as without vendor version of most of the newly introduced properties. (you can try one by one using prefiexed, unprefiexed or both on each browser. Also checkout these posts blogs.msdn.com/…/under-the-hood-bubbles.aspx and htp://msdn.microsoft.com/en-us/library/windows/apps/br211385.aspx)  Remember: "support" for this tentative vendor prefixed version is not dropped by any vendor even after the recommendation is published — for backward compatibility.

    Finally your point #1. I HIGHLY doubt that they drop the list filtering. I really hope that they simplify the whitelisting process and reduce the verification timings. But overall concept is sane and its for our own benefit. Some old/poorly-written flash apps especially ads are real resource hogs. They consume batteries even the battery status is critical. However the newer versions of Flash are environment aware and the developers can get the battery status events and handle the scenarios to keep it user friendly. Even Javascript is about to get introduced with the battery object called "window.navigator.battery" which will inform the battery conditions and provides battery events. Now the flash plugin/engine cannot moderate out the application at runtime, Neither do Microsoft want to ban Flash like Apple. So Microsoft has joined with Adobe to bring all the old flash/flex apps to next level. Ofcourse the delay is annoying  but I am pretty sure that it will get better eventually (like Windows Phone and Windows 8 apps processing periods are now reduced to 2 or 3 days).

  44. Steve says:

    @Xero – thanks for all the feedback and notes.

    I only have a few minutes but here goes…

    For #2 & #4 I have not submitted issues to connect and unfortunately I will not be doing so.  Connect being used for public bug tracking was a major failure and I got burned by it multiple times.  I will not be going back to it – ever.

    For #6, I was speaking mainly to things like this post.  IE10 has not been released to market yet (RTM) and thus having "backwards compatibility" to a shipped product is not an issue.

    The MSBlobBuilder Interface was built based on the File API stuff…

    http://www.w3.org/…/file-writer-api

    However it has already been deprecated in favor of the constructor API.

    I'm totally OK with that… in fact if they want to keep it in the remaining betas/previews… and have it emit a console log message that it is deprecated thats fine.  However they already know it is deprecated and they already have the replacement built therefore SHIPPING an RTM version of IE10 with the prefixed MSBlobBuilder Interface is **NOT** acceptable.

    I'll be really frank here… any developer out there that "depends" on vendor prefixed APIs that were created during a beta development phase that expects them to work in production sites when the browser goes RTM… I've got 2 words for ya… "Suck It!"

    You knew full well going into it that this was a temporary thing and that it could change at any time.

    I do not support Microsoft keeping this in the IE10 RTM code stream at all – I'm 100% against it.

    and finally, Flash.

    I get what Microsoft was trying to do – but they failed, and failed hard!

    If I am running metro on my windows 8 desktop PC… plugged into the wall and I want to play flash based games or watch flash based videos, slide shows, whatever – LET ME!  This content works now in any browser I have and I'll be honest I don't care what power it may or may not be consuming.

    The problem here is Microsoft is trying to ensure good battery life on their new tablets that have an uphill battle against Apple's iPad. and because they failed to separate their Tablet OS from their Desktop OS… Desktop users suffer.

    More importantly *ME* the actual user of the device (tablet or desktop) should be in control of this – not Microsoft.  If I use SAP's management reporting tool then I want to see the damn flash charts in the browser… I shouldn't have to wait until SAP has been granted exclusive permission from Microsoft in order to show the charts.  In fact I don't care if they suck twice the power they need to to run… I just need to see the numbers to run my business!

    Software vendors are going to be hounded by their customers complaining that the charts/media/video/audio/conferencing/whatever content doesn't load in Windows 8.  The customers will have no clue that Microsoft shipped a partial browser in the "tiled part" of windows 8 – they just know that it worked in Windows 7 and now it doesn't…  Microsoft won't be "taking the heat" from annoyed customers… WE WILL be getting all the blame.

    Sadly, even if the whitelist is published and there is nothing we can do to convince Microsoft that this is a major catastrophe… many developers have no Idea that Microsoft is doing this… and when Windows 8 ships, and they find out their sites don't work providing a fix for Microsoft's blunder will still take us developers OVER 2 MONTHS to fix!

    I can't stress this enough… if there is only time left in IE10 development to fix 1 thing… then please REMOVE THE FLASH WHITELIST!

    If there is anyone in the IE team at Microsoft reading this blog… quickly read up on everything that developers must do in order to get flash content to work in Metro IE.

    Pretend for 5 minutes you are the web application developer that wants to have your flash content work in Metro IE and step through the rules/steps to get on the whitelist.  Count how many WTFs you hit as you go.  Come to the same conclusion that it is PHYSICALLY IMPOSSIBLE for you to meet the requirements and even SUBMIT your request to be included because Microsoft can not verify any of your content because it is all private and requires a login (security clearance, regulatory clearance, medical record clearance, financial clearance, government security clearance, etc.)

    The whole thing is a complete mess.

    I hope whomever is pushing for this at Microsoft to go into production is willing to put their job on the line for this.  When it fails and the news comes back to management that its a disaster, and you were well informed of all the issues yet insisted it went to production.

    Instant grounds for dismissal in my books.

    /end rant

  45. Jean says:

    @Steve, you know how many legit bugs on Mozilla issue tracker (bugzilla) are pending since 2007 and still not addressed? Is it a good idea to quit submitting feedback and instead flooding their blogs and forums where there is almost no chance of productive outcome just slapping on their publicity. but wait.. since its not the product of Microsoft so we should put it in dont care category.. is it so? If you are implying; it never happened that any of connect bug reports got Fixed, then its a joke! But you are not saying that right? It just your personal bad experience thats all… could happen to anybody at any time & place..  Thats okay. but:

    "I will not be doing so"… " I will not be going back to it – ever."

    I would suggest that its not good idea at all. If you have a bug report and according to "bad exprience" and the worse case scenario that can happen on Connect, they will change the status to Won't fix. In that case you can always come to this blog or WindowsTeamBlog or other webdev msdn blogs and discuss the issue, ask people to vote, but in you ought to secure a bug report so you or anyone can follow up with IE team.

    "You knew full well going into it that this was a temporary thing and that it could change at any time."

    Like they followed the working draft proposed guidlines and eventually realized that they had implemented the wrong "Gradient" in chrome, safari and firefox? Now developers would have to update gradient everywhere blogs.msdn.com/…/unprefixed-css3-gradients-in-ie10.aspx.. Do you know how many people knowingly build websites using this unfinished draft definition. And now they will suffer. But since Microsoft looks clean in it, you will ignore it.

    "…because they failed to separate their Tablet OS from their Desktop OS… Desktop users suffer."

    "they fail to"??

    Do you know that no OS vendor to this day has delivered same OS for desktop/laptop/tablet/phone. And integration and collaboration in systems is a real innovation in Computer Science.. Ask your penguin loving friend when he finish "resolving the dependencies" for a simple software installation… Do you have any idea that how much effort it takes to develop a unified platform on varios form factors and hardware architecture (inter,amd,arm,soc)? Do you know that Apple and Google are trying hard to run "same app" on various pltforms and hardware & Microsoft just did it in time ? Do you even know that its a BIG PLUS that you as a developer have one platform to address and it would run on devices of multiple form factors (desktop/laptop/netbook/tablet/phone) and you just call it a failure because some crappy flash app wont run on it? Have you tried reading what I suggested in the previous comment about being desktop W8 user.. that you don't have to use Metro and how? But then you don't have anything left to troll about.. tut-tut… therefore you deny all the advices preventing you to mess around.

    You sound more and more like a typical whining trolling hater.. but thats not true? its just your way of rantin.

    "REMOVE THE FLASH WHITELIST!"

    As if FLASH is the ONLY platform running the web? Have you ever heard of "Without flash the web is more than complete" notion? Have you ever look at the future roadmap of Adobe corp. that how eagerly they are converging their toolsset towards HTML5 while embrasing and adapting the shift? In my personal opinion, web is better without flash, so NO we  DON'T share your ranting, sealed-mindedness, biased opinions, extreme trolling and sociopathic behavior wholly solely "against" Microsoft corp. It looks like you don't belong here, so next time I see you on…where…iPad blog? or are you a niche Goo-fy sucker? By the way how much shillings they pay you to pull this cheap errand?

    /end nip the troll in the bud

  46. Gord says:

    @Jean what does it look like on your planet? Does it look anything like planet earth?

    A single OS for multiple platforms has been proven tint and time again to fail.  I don't want my phone to work like my laptop nor like my tablet. They are 3 separate platforms.

    Touch does not belong on the desktop -period!

    If someone ever touches my screen they will get slapped!

    Flash is a part of the web… Deal with it!

    Microsofts problem here is with the support… It's either all in or nothing.

    As far as the whitelist goes, not only is it outright censorship by a convivted software monopolist but a significant conflict of interest having one browser vendor control what all other browser vendors are allowed to run in their metro browsers!

    Worst of all it's the wrong solution!  If you want users to have control over their flash content then give THE USERS the power to choose what they want to view/use!!!

    As a user I do not want Microsoft to have ANY CONTROL over what flash content I want to view – not now, and not EVER!

    As a developer it sickens me that Microsoft ever even thought this was a good idea and actually went to the lengths of publishing this as their stance without consulting the developer community about it even once.

    As for using Connect I'll save you countless hours right now.

    1.) submit a legit bug report

    2.) include a test case

    3.) wait

    4.) read the comments that no other users can see your test case to verify it or refine it

    5.) wait

    6.) wait weeks

    7.) wait months

    8.) bug marked as "won't fix"

    9.) next day browser released

    10.) connect closed, all bugs will NOT be put into the next release bug tracker

    11.) hours and hours of your hard work down the drain

    This is why no one is willing to submit bugs to connect any more.

    Hundreds of bug reports all deleted all marked as won't fix… The whole thing was a "save face" attempt during IE7/IE8 catch up development – cant believe we fell for it.

    Lastly this comment form… Why do we have to save our posts to the clipboard in order to ensure we don't lose them every single time we try to comment?!

    Is there not someone at Microsoft in charge of this blog that is not beyond horribly embarrassed that the single most important feature on it has been broken for like 8 friken years!?!?!?

    Truly embarrassing Microsoft.

    #WhatWouldYouLikeTheIEBlogToEraseToday?

  47. Jean says:

    @Gord, then what on the earth you are doing here on MSDN blog? Embarrasing yourself? GTFOH you trolling pigs.

  48. Xero says:

    @Jean, now by all means that was "harsh". You should stay out of the conversation if you can't avoid profanity. This is not a chatroom where you can express your feelings and foul-mouthed about other audience. So "behave" and "avoid profanity". Otherwise you are not welcome here.

    @Gord,

    thanks for taking your time in drafting and compiling these issues on behalf of the entire community! I totally agree with the bug report delays as many of us have seen this pattern. Since long, I have been chasing issues on Microsoft Connect and Apple Bugreport platforms, and honestly, when they don't think "its worth it" they don't go for it, no matter how genuine the issue is. I guess its like they have outsourced their public bug reporting system to some online customer services center to create a "shield" between their development-teams and consumers (copy/paste the canned replies and try to least bother the development team as much as you can). Some issues in their bug trackers are there for years now but have no response whatsoever.

    OTOH, some issues get prompt attention, like in "days" they resolve the issue. Its obviously about the priorities and the "current" focus of their recent developments. Like, on connect, if you have identify a bug about some recently implemented HTML5 API, I am sure they will resolve or otherwise provide you with the satisfactory answers with references if it you were mistaken. But I would like to bring your attention to the blog post from last year about the top-voted bug reports on Connect where they evidently felt pressure and implemented some top requests in one go. At least we got them talking!

    The idea is, report bugs and "PUSH HARDER" on MSDN blog and social communities. Discuss with people and you will get the votes. The votes *might* get your post the attention of the responsible team. Like in the last comment, had you submitted a bug report and posted a link, you get alteast my vote on that. Just don't get too personal with it if they respond poorly. IE on Connect has the highest number of bug reports than any other Microsoft product because web is an ongoing-rapidly-evolving platform. If it gets Won't Fix status and you think its liget. You can edit your post, reason with them and change the status back to Open all by yourself. Submit a report and don't go with the high expectations. The least you will get is avoid repeating yourself, a link would work anywhere, anytime to wit your concern.

    Finally there is a difference between bug report and a feature request. "Please implement missing X". If X is a whole new concept or a feature request (like something about a browser UI, plugin/extensions or in case of Metro, Flash whitelist), then probably you will get the most famous canned reply from the check-in chick (or the dumb customer service guy?): "…Since its a feature request, we close this issue as By Design.." This because the new feature, unfortunately, are introduced on their own timetable.

  49. Steve says:

    @Xero – I appreciate your passion, but like most I poured hundreds of hours into connect filing legit bug reports, with test cases (not feature requests) and Microsoft sat on all of them… if I got a response it was "can't reproduce" even though it was 100% reproducible in very simple steps.

    In the end they all got marked as Won't Fix or By Design (or both) with no explanation.  Any that were re-opened (with explanation) were again sat on, and re-closed later on… and then NOT PORTED to the next IE release in Connect when it the next release started to track bugs.

    I (like all the submitters) was ABSOLUTELY LIVID!!!!!! that all the work was lost… hundreds of hours down the drain.

    Like everyone else now… I have ZERO INTEREST WHATSOEVER in participating in bug reporting for Internet Explorer now **UNLESS** Microsoft comes on the IE BLOG and COMMITS to running public, open bug tracking properly (where users can review test cases and confirm them) and Microsoft COMMITS to porting over the open bugs into the new system whenever there is an IE release… I DON'T DO THROWAWAY WORK (esp. when it is VOLUNTARY!)

  50. Xero says:

    @Steve. well I don't think everyone else is so biased about it. People are contributing on Connect regularly on daily basis.

    100 of hours! Then you must have submitted tons of bugs there. Give us the URL of some reports where you have 100% legit reproducible bug and they closed it as "can't reproduce".  

Skip to main content